【数据库原理】数据库系统概述(二)

数据库系统.

数据库系统(DataBase System,DBS)是在计算机系统中引入了数据库之后的系统。它主要由数据库、数据库用户、计算机硬件系统和计算机软件系统等几部分组成,如下图中所示:
在这里插入图片描述

1.数据库.

数据库(DataBase,DB)是存储在计算机内、有组织的、可共享的数据和数据对象(如表、视图、存储过程和触发器等)的集合,这种集合按一定的数据模型(或结构)组织,描述并长期存储,同时能以安全和可靠的方法进行数据的检索和存储。DB有如下两个特点:

  1. 集成性。将某特定应用环境中的各种应用相关的数据及其数据之间的联系全部集中地,并且按照一定的结构形式地,来进行存储。或者说,我们可以将数据库看成是若干个性质不同的数据文件的联合和统一的数据整体。
  2. 共享性。数据库中的数据可为多个不同的用户所共享,即多个不同的用户可使用多种不同的语言,为了不同的应用目的,而同时存取数据库,甚至如我们前面所示,同时存取数据库中的同一数据。

2.用户.

前面的描述中一直出现【用户】这个词,这里我们对用户的概念进行明确,在这里它是指使用DB的人,用户可以对DB进行维护、存储以及检索等操作。用户可以分为以下三类:

  1. 最终用户(End User)。最终用户主要是使用DB的技术人员和科研人员,一般为非计算机专业人员。EU主要利用已经编写好的API使用数据库。
  2. 应用程序员(Application Programmer)。AP负责为EU设计和编写应用程序,并进行调试和安装,以便EU的使用。
  3. 数据库管理员(DataBase Administrator,DBA)。DBA是负责设计、建立、管理和维护DB以及协调用户对DB要求的个人或工作团队。DBA需要熟悉计算机的软硬件系统,具有较全面的数据处理知识,熟悉EU的业务、数据及流程。DBA不仅需要有较高的技术水平,而且应该具有了解、阐明管理要求的能力。

3.硬件系统.

硬件(Hardware)系统指存储和运行数据库系统的硬件设备,包括CPU、内存、大容量的存储设备、I/O设备以及外部设备等。

4.软件系统.

软件(Software)系统主要包括操作系统(Operating System,OS),数据库管理系统DBMS以及应用开发工具和应用系统等。在计算机硬件层之上,OS统一管理计算机资源,这样一来DBMS就可以借助OS完成对硬件的访问,并且能够对DB中的数据进行存取、维护和管理。另外,DBS的各类人员、应用程序对于DB的各种操作请求,都必须通过DBMS来完成,所以我们说DBMS是DBS的核心软件。DBMS在OS的支持下才能工作,应用程序在DBMS的支持下才能使用DB。DBMS在整个计算机系统的地位如下图所示:
在这里插入图片描述

数据库系统内部体系结构.

从DBMS的角度看,虽然不同的DBS的实现方式存在差异,但它们在体系结构上均可表示为三级模式结构,这是DBS内部的体系结构。DB中的数据是按照一定的数据模型(结构)组织起来的,而在数据模型中有【型(Type)】和【值(Value)】的概念。Type是指对某一类数据的结构和属性的说明,而Value是Type的一个具体赋值。举例来说,我们在描述一个学生的基本情况时,将其Type定义为【学号,姓名,性别,年龄,系别】,而【X123,Sam,男,21,计算机】则是某一个学生的具体Value。模式(Schema)是数据库中全体数据的逻辑结构和特征的描述,它仅涉及Type的描述,而不涉及具体的Value。模式的一个具体值称为模式的一个实例(Instance),同一个模式可以有很多的实例。对于DB描述的业务而言,模式相对稳定,而由于DB中的数据不断更新变化,所以实例会频繁改变。模式反映的是数据的结构,而实例反映的是DB在某一时刻的状态。举例来说,在描述学生基本情况的DB中,2018级和2019级的所有学生的基本情况形成了两个年级学生基本情况的数据库实例,显然它们的模式是相同的,其Type不妨就认为是我们前面给出的【学号,姓名,性别,年龄,系别】,然而很显然,这两个实例的数据是截然不同的(一个学生他不可能既是2018级又是2019级)。同时,当一名学生在学习过程中出现退学、转系等情况时,以上两个数据库实例都会发生变化,但很显然,数据库模式并没有发生变化。
DBS内部体系结构从逻辑上分为外模式、模式和内模式的三级抽象模式结构和二级映像功能(外模式/模式映像和模式/内模式映像)。
在这里插入图片描述

对于用户而言,这三个模式分别对应于一般用户模式、概念模式和物理模式,它们分别反映了看待数据库的三个角度。

  1. 模式。模式也称为概念模式,是数据库中全体数据的逻辑结构和特征的描述,处于三级模式的中间层,不涉及数据得物理存储细节和硬件环境,与具体的应用程序、所使用的应用开发工具以及高级程序设计语言(如C++、Fortran等)无关。一个DB只有一个模式,因为模式是整个DB的数据在逻辑上的视图,即是DB的整体逻辑。
  2. 外模式。外模式(External Schema)又称为子模式(Subschema)或用户模式(User Schema)。外模式是三级结构的最外层,是数据库用户能看到并允许使用的那部分数据的逻辑结构和特征的描述,是与某一应用有关的数据的逻辑表示,也是数据库用户的数据视图。外模式一般是模式的子集,一个DB可以有多个外模式,因为不同用户的需求可能会不同,所有他们各自对应的外模式的描述也会不同。同一个外模式也可以为多个应用系统所使用。各个用户可以根据系统所给的外模式,用查询语言或应用程序取操作数据库中所需要的那部分数据,如此一来,每个用户只能看到和访问所对应的外模式中的数据,DB中的其他数据对他们来说都是不可见的。所以,外模式是保证数据库安全性的一个有力措施。
  3. 内模式。内模式(Internal Schema)又称存储模式(Storage Schema)或物理模式(Physical Schema),是三级结构中的最内层,也是最靠近物理存储的一层,即与实际存储数据方式有关的一层。它是对数据库存储结构的描述,是数据在数据库内部的表示方式。例如,以什么存储方式(顺序存储,B+树存储)来存储数据、索引按照什么方式组织、数据是否压缩、数据是否加密等。它不会涉及任何存储设备的特定约束,如磁盘磁道容量和物理块大小等。

介绍了DB的三级模式结构以后,我们发现,一个DBS实际上存在的只有物理级数据库,即内模式,它是数据访问的基础。概念数据库是物理级数据库的一种抽象描述,而用户级数据库是用户与数据库的接口。用户根据外模式进行的操作,通过外模式/模式映射与概念级数据库联系起来,再一次通过模式/内模式映射与物理级数据库联系起来。事实上,DBMS的核心工作之一就是完成三级数据库模式之间的转换,把用户对数据库的操作转化到物理级去执行。总结一下,在一个DBS中,外模式可以有很多个,而模式、内模式都只能有一个。内模式是整个DB实际存储的表示,而模式是内模式的抽象表示,外模式是模式某一部分的抽象表示。
为了能够在内部实现这三个抽象层次的联系和转换,DBMS在三级模式之间提供了二级映像功能。正是这两级映像功能保证了DBS中较高的独立性——逻辑独立性和物理独立性。

  1. 外模式/模式映像。模式描述的是数据的全局逻辑结构,而外模式描述的是数据的局部逻辑结构。我们前面说过DB中可以有任意多个外模式存在,而对于每一个外模式,都存在一个外模式/模式映像。它确定了数据的局部逻辑结构与全局逻辑结构之间的对应关系。举例说明,我们原始的学生逻辑结构为【学号,姓名,性别】,现在添加新的属性【出生日期】,逻辑结构变更为【学号,姓名,性别,出生日期】。后续由DBA对各个外模式/模式映像作相应改变,这一映像功能保证了数据的局部逻辑结构不变(即外模式保持不变)。由于应用程序是依据数据的局部逻辑结构编写的,所以应用程序不必修改,从而保证了数据与程序间的逻辑独立性。
  2. 模式/内模式映像。由于DB中模式与内模式都是唯一的,所以显然,模式/内模式映像也是唯一的,它确定了数据的全局逻辑结构与存储结构之间的对应关系。当存储结构发生了变化,例如进行了某些优化后,由DBA对模式/内模式映像做相应变化,使其模式仍然保持不变。效果也就是使得存储结构的变化产生的影响被限制在模式之下,数据的存储结构和存储方法较高地独立于应用程序,通过映像功能保证数据存储结构的变化不影响数据的全局逻辑结构,从而不必修改应用程序,也就确保了数据的物理独立性。

关于DBS中三级模式与二级映像的优点,可以总结如下:

  • 保证数据的独立性。将模式和内模式分开,保证了数据的物理独立性;将模式和外模式分开,保证了数据的逻辑独立性。
  • 简化了用户接口。按照外模式编写应用程序或输入命令,而不需了解数据库内部的存储结构,方便用户使用系统。
  • 有利于数据共享。在不同的外模式下可由多个数据共享系统中的数据,减少了数据冗余。
  • 有利于数据的安全保密。在外模式下根据要求进行操作,只能对限定的数据操作,保证了数据的安全。

数据库系统外部体系结构.

从最终用户EU的角度来看,DBS分为单用户结构、主从式结构、分布式结构以及建立在主从式和分布式基础上的客户机/服务器结构以及浏览器/服务器结构。这些就是DBS的外部体系结构。

数据库管理系统DBMS.

DBMS是对数据进行管理的大型系统软件,它是数据库系统的核心组成部分,用户在数据库系统中的一切操作,包括数据定义、查询、更新(插入、删除、修改)以及各种控制,都是通过DBMS进行的。DBMS就是把抽象逻辑数据处理转化成计算机中的具体的物理数据的处理软件。
DBMS的主要功能如下图所示:
在这里插入图片描述

  • 数据定义功能。DBMS提供数据定义语言(Data Define Language,DDL),定义数据的模式、外模式和内模式三级模式结构,定义模式/内模式和外模式/模式二级映像,以及定义有关的约束条件。例如,为保证数据库安全而定义的用户口令和存取权限,为保证正确语义而定义的完整性规则等。再比如说,DBMS提供的结构化查询语言(SQL)中,含有Create、Drop和Alter等语句来建立、删除和修改数据库。使用DDL定义的各种模式需要通过相应的模式翻译程序转换为机器内部代码表示形式,保存在数据字典(Data Dictionary,DD,也称为系统目录)中。DD是DBMS存取数据的基本依据,后面我们看到,DBMS的组成中应该包括DDL的编译程序。
  • 数据操纵功能。DBMS提供数据操纵语言(Data Manipulation Language,DML)实现对数据库的基本操作,包括检索、插入、修改以及删除等。和DDL类似的,DBMS中也应该包含对DML的编译程序。DML可以分为自主型和宿主型,前者可以独立使用,后者需要将对DB的存取语句嵌入到高级语言,比如C中,无法独立使用。
  • 数据库运行管理功能。该功能是DBMS运行的核心部分。DBMS通过对数据库的控制以确保数据正确有效和数据库系统的正常运行。DBMS对数据库的控制主要通过四个方面实现,前面我们也提到过:安全性控制、完整性控制、并发性控制以及数据恢复。
  • 数据库建立和维护功能。这一功能就是字面上的意思,建立包括初始数据的装入与数据转换;维护包括数据库的转储、恢复以及系统性能监视分析等。
  • 数据通信接口。DBMS提供与其他软件系统进行通信的功能,使得DBMS能够将数据转换为另一个DBSM或者其他文件系统能够接收的格式;或者这一过程逆转。
  • 数据组织存储与管理。DBMS负责对数据库中需要存放的各种数据(如数据字典、用户数据、存取路径等)的组织、存储和管理工作,确定以何种文件结构和存取方式从物理层面组织这些数据,以提高存储空间利用率和对数据库进行增删改查的效率。

DBMS由四个部分组成:

  • 语言编译处理程序;
  • 系统运行控制程序;
  • 系统建立维护程序;
  • 数据字典。

在DBS中,DBMS与OS、应用程序以及硬件等协同工作,共同完成数据各种存取操作,其中DBMS是关键的一环,对于数据库的一切操作,都要通过DBMS完成。DBMS对数据的存取通常需要以下几个步骤:

  • 用户通过某种DML(如SQL)向DBMS发出存取请求;
  • DBMS接受请求并将该请求解释转换成机器代码指令;
  • DBMS依次检查外模式、外模式/模式映像、模式、模式/内模式映像以及存储结构定义;
  • DBMS对存储数据库执行必要的存取操作;
  • 从对数据库的存取操作中接受结果;
  • 对得到的结果进行必要的处理,如格式转换等;
  • 将处理的结果返回给用户。

上述存取过程还包括安全性控制、完整性控制,以确保数据的正确性、有效性和一致性。
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/weixin_44246009/article/details/107992006
今日推荐