基本知识点
本章阐述了数据库的基本概念,介绍了数据管理技术的进展、数据库技术产生和发展的背景,数据库系统的组成。
学习本章的重点在于将注意力放在基本概念和基本知识的把握方面,从而为以后各个章节的学习打下扎实的基础,
对所涉及的知识点进行如下分类:
①需要了解的:了解数据管理技术的产生和发展过程、数据库系统的优点、层次数据模型及网络数据模型的基本概念、数据库系统的组成、数据库管理员(DBA)的职责等。
1.1.1数据库技术的发展
数据库技术是应数据管理任务的需求而产生的,随着计算机技术的发展,对数据管理技术也不断地提出更高的要求,其先后经历了人工管理、文件系统和数据库系统3个阶段,下面分别进行介绍。
1.人工管理阶段
20世纪50年代中期以前,计算机主要用于科学计算。当时硬件和软件设备都很落后,数据基本依赖于人工管理。人工管理阶段具有以下特点。
(1)数据不保存。
(2)使用应用程序管理数据。
(3)数据不共享。
(4)数据不具有独立性。
2.文件系统管理
20世纪50年代后期到20世纪60年代中期,硬件和软件技术都有了进一步发展,有了磁盘等存储设备和专门的数据管理软件(即文件系统)。该阶段具有如下特点。
(1)数据可以长期保存。
(2)由文件系统管理数据。
(3)共享性差,数据冗余大。
(4)数据独立性差。
3.数据库系统阶段
20世纪60年代中期依赖,计算机应用于管理系统,而且规模越来越大,应用越来越广泛,数据量急速增长,对共享功能的要求越来越强烈,这样使用文件系统管理已经不能满足要求,于是出现了数据库管理系统来统一管理数据。数据库系统的出现,满足了多用户、多应用共享数据的需求,比文件系统具有明显的优点,标志着数据管理技术的飞跃。
表1.1 数据管理三个阶段的比较
人工管理阶段 | 文件系统阶段 | 数据库系统阶段 | ||
背 景 | 应用背景 | 科学计算 | 科学计算、数据管理 | 大规模数据管理 |
硬件背景 | 无直接存取存储设备 | 磁盘、磁鼓 | 大容量磁盘、磁盘阵列 | |
软件背景 | 没有操作系统 | 有文件系统 | 有数据库管理系统 | |
处理方式 | 批处理 | 联机实时处理、批处理 | 联机实时处理、分布处理、批处理 | |
特 点 | 数据的管理者 | 用户(程序员) | 文件系统 | 数据库管理系统 |
数据面向的对象 | 某一应用程序 | 某一应用 | 现实世界(一个部门、企业、跨国组织等) | |
数据的共享程度 | 无共享 | 共享性差,冗余度大 | 共享性高;冗余度小 | |
数据的独立性 | 不独立,完全依赖于程序 | 独立性差 | 具有高度的物理独立性和一定的逻辑独立性 | |
数据的结构化 | 无结构 | 记录内有结构、整体无结构 | 整体结构化,用数据模型描述 | |
数据控制能力 | 应用程序自己控制 | 应用程序自己控制 | 有数据库管理系统提供数据安全性、完整性、并发性控制和恢复能力 |
1.1.2数据库系统的特点(优点)
(1)数据结构化。数据库系统实现整体数据的结构化,这是数据库系统与文件系统的本质区别。
注意这里的“整体”两个字。在数据库系统中,数据不再仅仅针对某一个应用,而是面向全组织,可以支持许多应用;不仅数据内部是结构化的,而且数据之间是具有联系的,整体是结构化的。
(2)数据的共享性高,冗余度低,易扩充。数据库的数据可以被多个用户、多个应用,用多钟不同的程序设计语言共享使用,而且容易增加新的应用,这就使得数据库系统易于扩充,称之为“弹性大”。数据共享可以大大减少数据冗余,节约存储空间,同时还能够避免数据之间的不相容性与不一致性。
所谓“弹性大”是指应用系统容易扩充也容易收缩,即应用增加或减少不必修改整个数据库的结构,或者只要做很少的修改。我们可以取整体数据的各种子集用于不同的应用系统,当应用需要改变或增加时,只要重新选取不同的子集或加上一部分数据便可满足新的需求。
(3)数据独立性高。数据独立性包括数据的物理独立性和数据的逻辑独立性。
所谓“独立性”即相互不依赖。数据独立性是指数据和程序相互不依赖。即数据的逻辑结构或物理结构改变了,程序不会跟着改变。数据域程序的独立吧数据的定义从程序中分离出去,加上数据的存取又由DBMS负责,简化了应用程序的编制,大大减少了应用程序的维护和修改。
(4)数据由DBMS统一管理和控制。数据库的共享是并发的共享,即多个用户可以同时存取数据,库中的数据甚至可以同时存取数据中的同一个数据。为此,DBMS必须提供统一的数据控制功能,包括:
● 数据的安全性保护:保护数据以防止不合法的使用造成的数据泄密和破坏;
● 数据的完整性检查:将数据控制在有效的范围内或保证数据之间满足一定的关系,一定的约束条件;
● 并发控制:对多用户的并发操作加以控制和协调,保证并发操作的正确性;
● 数据库恢复:当计算机系统发生硬件故障、软件故障,或者由于操作员的失误以及故意的破坏影响数据库中数据的正确性,甚至造成数据库部分或全部数据的丢失时,能将数据库从错误状态恢复到某一已知的正确状态,亦称为完整状态或一只状态。
1.1.3数据模型
数据模型是数据库系统的核心与基础,是关于描述数据与数据之间的联系、数据的定义、数据一致性约束的概念性工具的集合。
数据模型通常是由数据结构、数据操作和完整性约束3部分组成的,分别如下。
(1)数据结构:是对系统静态特征的描述,描述对象包括数据的类型、内容、性质和数据之间的相互关系。
(2)数据操作:是对系统动态特征的描述,是对数据库各种对象实例的操作。
(3)完整性约束:是完整性规则的集合,它定义了给定数据模型中数据及其联系所具有的约束和依存规则。
层次模型(层次数据模型)
层次模型:用树状结构表示实体类型及实体间联系的数据模型称为层次模型,如图1.1所示。它具有以下特点。
(1)每棵树有且仅有一个无双亲结点,称为根。
(2)树中除根外所有结点有且仅有一个双亲。
图1.1 层次模型
网状模型(网状数据模型)
网状模型:用有向图结构表示实体类型及实体间联系的数据模型称为网状模型,如图1.2所示。用网状模型编写应用程序极其复杂,数据的独立性较差。
图1.2 网状模型
关系模型(关系数据模型)
关系模型:以二维表来描述数据。关系模型中,每个表有多个字段列和记录列,每个字段列有固定的属性(数字、字符、日期等),如图1.3所示。关系模型数据结构简单、清晰、具有很高的数据独立性,是目前主流的数据库数据模型。
关系模型的基本术如下。
(1)关系:一个二维表就是一个关系。
(2)元组:二维表中的一行,即表中的记录。
(3)属性:二维表中的一列,用数据和值表示。
(4)域:每个属性取值的变化范围,如性别的域为{男,女}。
(5)码:表中的某个属性值,它可以唯一确定一个元组。
(6)分量:元组中的一个属性值。
(7)关系模型:对关系的描述,一般表示为
关系名(属性1,属性2,……,属性n)
关系中的数据约束如下。
(1)实体完整性约束:约束关系的主键中属性值不能为空值。
(2)参照完整性约束:关系之间的基本约束。
(3)用户定义的完整性约束,反映了具体应用中数据的语义要求。
学生信息表
学生姓名 | 年级 | 家庭住址 |
张三 | 2000 | 成都 |
李四 | 2000 | 北京 |
王五 | 2000 | 上海 |
学生成绩表
学生姓名 | 课程 | 成绩 |
张三 | 数学 | 100 |
张三 | 物理 | 95 |
张三 | 社会 | 90 |
李四 | 数学 | 85 |
李四 | 社会 | 90 |
王五 | 数学 | 80 |
王五 | 物理 | 75 |
图1.3 关系模型
1.1.4数据库系统的组成
数据库系统(Database System,DBS)是采用数据库技术的计算机系统,是由数据库(数据)、数据库管理系统、数据库管理员(人员)、支持数据库系统的硬件和软件(应用开发工具、应用系统等)以及用户5部分构成的运行实体,如图1.4所示。其中,数据库管理员(Database Administrator,DBA)是对数据库进行规划、设计、维护和监视等的专业管理人员,在数据库系统中起着非常重要的作用。
图1.4 数据库系统的组成
1.1.5数据库管理员(DBA)的职责
数据库管理员全面负责管理和控制数据库系统。具体职责包括:
(1)决定数据库的信息内容和结构;
(2)决定数据库的存储结构和存取策略;
(3)定义数据的安全性要求和完整性约束条件;
(4)监控数据库的使用和运行;
(5)数据库系统的改进和重组重构。
②需要牢固掌握的:掌握概念模型的基本概念、关系数据模型的相关概念、数据库系统三级模型和两级映像的体系结构、数据库系统的逻辑独立性和物理独立性等。
1.2.1概念模型
概念模型实际上是现实世界到机器世界的一个中间层次。
概念模型用于信息世界的建模,是现实世界到信息世界的第一层抽象,是数据库设计人员进行数据库设计的有力工具,也是数据库设计人员和用户之间进行交流的语言,因此概念模型一方面应该具有较强的语义表达能力,能够方便、直接地表达应用中的各种语义知识,另一方面它还应该简单、清晰、易于用户理解。
信息世界主要涉及以下一些概念。
(1)实体(entity)
客观存在并可相互区别的事物称为实体。实体可以是具体的人、物、事,也可以是抽象的概念或联系,例如,一个职工、一个学生、一个部门、一门课、学生的一次选课、部门的一次订单、教师与院系的工作关系(即某位教师在某院系工作)等都是实体。
(2)属性(attribute)
实体所具有的某一特性称为属性。一个实体可以有若干个属性来刻画。例如,学生实体可以由学号、姓名、性别、出生日期、所在院系、入学时间等属性组成,属性组合(201815121,张三,男,199505,计算机系,2018)即代表了一个学生。
(3)码(key)
唯一标识实体的属性集称为码。例如学号是学生实体的码。
(4)实体型(entity type)
具有相同属性的实体必然具有共同的特征和性质。用实体名及其属性名集合来抽象和刻画同类实体,称为实体型。例如,学生(学号,姓名,性别,出生年月,所在院系,入学时间)就是一个实体型。
(5)实体集(entity set)
同一类型实体的集合称为实体集。例如,全体学生就是一个实体集。
(6)联系(relationship)
在现实世界中,事物内部以及事物之间是由联系的,这些联系在信息世界中反馈为实体(型)内部的联系和实体(型)之间的联系。实体内部的联系通常是指组成实体的各属性之间的联系,实体之间的联系通常是指不同实体集之间的联系。
实体之间的联系有一对一、一对多和多对多等多种类型。
1.2.2关系数据模型
补充1.3数据模型:
表2.1 数据模型优缺点
层次模型 | 网状模型 | 关系模型 | |
优 点 | ①层次模型的数据结构比较简单清晰。 ②层次数据库的查询效率高。 | ①能够更为直接地描述现实世界。 ②具有良好的性能,存取效率高。 | ①关系模型与格式化模型不同,它是建立在严格的数学概念上的。 ②关系模型的概念单一。无论实体还是实体之间的联系都用关系来表示。对数据的检索和更新结果也是关系(即表)。所以其数据结构简单、清晰,用户易懂易用。 ③关系模型的存取路劲对用户透明,从而具有更高的数据独立性、更好的安全保密性,也简化了程序员的工作和数据库开发建立的工作。 |
缺 点 | ①现实世界中许多联系是非层次的,如结点之间具有多对多联系,不适合用层次模型表示。 ②如果一个结点具有多个双亲结点等,用层次模型表示这类联系就很笨拙,只能通过引入冗余数据(易产生不一致性)或创建非自然的数据结构(引入虚拟结点)来解决。对插入和删除操作的限制比较多,因此应用程序的编写比较复杂。 ③查询子女结点必须通过双亲结点。 ④由于结构严密,层次命令趋于程序化。 | ①结构比较复杂,而且随着应用环境的扩大,数据库的结构就变得越来越复杂,不利于最终用户掌握。 ②网络模型的DDL、DML复杂,并且要嵌入某一种高级语言中。用户不容易掌握,不容易使用。 ③由于记录之间的联系是通过存取路劲实现的,应用程序在访问数据时必须选择适当的存取位置,因此用户必须了解系统结构的细节,加重了编写应用程序的负担。 | ①由于存取路径岛屿用户是隐蔽的,查询效率往往不如格式化数据模型。 ②为了提高性能,数据库管理系统必须到用户的查询请求进行优化,因此增加了开发数据库管理系统的难度。 |
1.2.3数据库系统三级模式
模式(schema)
模式也称逻辑模式,是数据库中安全数据的逻辑结构和特征的描述,是所有用户的公共数据视图。它是数据库系统模式结构的中间层,即不涉及数据的物理存储细节和硬件环境,又与具体的应用程序、所使用的应用开发工具及高级程序设计语言无关。
模式实际上是数据库数据在逻辑级上的视图。一个数据库只有一个模式。数据库模式以某一种数据模型为基础,统一综合地考虑了所有用户的需求,并将这些需求有机地结合成一个逻辑整体。定义模式时不仅要定义数据的逻辑结构,例如数据记录由哪些数据项构成,数据项的名字、类型、取值范围等;而且要定义数据之间的联系,定义与数据有关的安全性、完整性要求。
数据库管理系统提供模式数据定义语言(模式DLL)来严格地定义模式。
外模式(external schema)
外模式也称子模式(subschema)或用户模式,它是数据库用户(包括应用程序员和最终用户)能够看见和使用的局部数据的逻辑结构和特征的描述,是数据库用户的数据视图,是与某一应用有关的数据的逻辑表示。
外模式通常是模式的子集。一个数据库可以有多个外模式。由于它是各个用户的数据视图,如果不同的用户在应用需求、看待数据的方式、对数据保密的要求等方面存在差异,则其外模式描述就是不同的。即使对模式中同一数据,在外模式中的结构、类型、长度、保密级别等都可以不同。另一方面,同一外模式也可以为某一用户的多个应用系统所使用,但是一个应用程序只能使用一个外模式。
外模式是保证数据库安全性的一个有力措施。每个用户只能看见和访问所对应的外模式中的数据,数据库中的其余数据是不可见的。
数据库管理系统提供外模式数据定义语言(模式DDL)来严格地定义外模式。
内模式(internal scheme)
内模式也称存储模式(storage schema),一个数据库只有一个内模式。它是数据物理结构和存储方式的描述,是数据在数据库内部的组织方式。
1.2.4数据库的两级映像体系结构(三级模式之间的映射)
为了能够在内部实现数据库的3个抽象层次的联系和转换,数据库管理系统在三级模式之间提供了两层映射,分别为外模式/模式映射和模式/内模式映射,下面分别介绍。
外模式/模式映射
对于同一个模式可以有任意多个外模式。对于每一个外模式,数据库系统都有一个外模式/模式映射。当模式改变时,由数据库管理员对各个外模式/模式映射做相应的改变,可以使外模式保持不变。这样,依据数据外模式编写的应用程序就不用修改,保证了数据与程序的逻辑独立性。
模式/内模式映射
数据库中只有一个模式和一个内模式,所有模式/内模式映射是唯一的,它定义了数据库的全局逻辑结构与存储结构之间的对应关系。当数据库的存储结构改变时,有数据库管理员对模式/内模式映射做相应改变,可以使模式保持不变,应用程序相应也不做变动。这样,保证了数据与程序的物理独立性。
1.3.1补充习题
1.选择题
(1)数据库系统的核心和基础是( )。
A.物理模型 B.概念模型 C.数据模型 D.逻辑模型
(2)实现将现实世界抽象为信息世界的是( )。
A.物理模型 B.概念模型 C.关系模型 D.逻辑模型
(3)数据管理技术经历了若干阶段,其中人工管理阶段和文件系统阶段相比文件系统的一个显著优势是( )。
A.数据可以长期保存 B.数据共享性很强 C.数据独立性很好 D.数据整体结构化
(4)能够保证数据库系统中的数据具有较好的逻辑独立性的是( )。
A.外模式/模式映像 B.模式 C.模式/内模式映像 D.外模式
(5)IBM公司的IMS数据库管理系统采用的数据模型是( )。
A.层次模型 B.网状模型 C.关系模型 D.面向对象模型。
(6)DBMS是一类系统软件,它是建立在下列哪种系统之上的?( )
A.应用系统 B.编译系统 C.操作系统 D.硬件系统
(7)关于网状数据库,以下说法正确的是( )。
A.只有一个节点可以无双亲 B.一个节点可以有多于一个的双亲
C.两个节点之间只能有一种联系 D.每个节点有且只能有一个双亲
(8)下列说法中,正确的是( )。
A.数据库的概念模型与具体的DBMS有关。
B.三级模式中描述全体数据的逻辑结构和特征的是外模式。
C.数据库管理员负责设计和编写应用程序的程序模块。
D.从逻辑模型到物理模型的转换一般是由DBMS完成的。
(9)长期存储在计算机内,有组织的、可共享的大量数据的集合是( )。
A.数据(Data) B.数据库(DataBase)
C.数据库管理系统(DBMS) D.数据库系统(DBM)
(10)在数据管理技术发展过程中,需要应用程序管理数据的是( )。
A.人工管理阶段 B.人工管理阶段和文件管理阶段
C.文件系统阶段和数据库系统阶段 D.数据库系统阶段
2.判断题
(1)在文件系统管理阶段,由文件系统提供数据存取方法,所以数据已经达到很强的独立性。( )
(2)通常情况下,外模式是模式的子集。( )
(3)数据库管理系统是指在计算机系统中引入数据库后的系统,一般由DB、DBS、应用程序和DBA组成。( )
(4)在数据模式的组成要素中,数据结构是刻画一个数据模型性质最重要的方向,人们通常按照数据结构的类型来命名数据模型。( )
(5)数据库系统的三级模式是对数据进行抽象的3个级别,把数据的具体组织留给DBMS管理。( )
(6)层次模型是比网状模型更具普遍性的结构,网状模型是层次模型的一个特例。( )
3.填空题
(1)数据库系统的逻辑模型按照计算机的观点对数据建模,主要包括 、 、 、面向对象模型、对象关系模型和半结构化数据模型等。
(2)最经常使用的概念模型是 。
(3)数据独立性是数据库领域的重要概念,包括数据的 独立性和数据的 独立性。
(4)数据库系统的三级模式结构是指数据库系统是由 、 和 三级构成。
(5)两个实体性之间的联系可以分为三种:一对一联系、 和 。
(6)数据库管理系统提供的数据控制方面的功能包括数据的 保护、数据的 检查、 和数据库恢复。
(7)数据库的三级模式结构中,描述局部数据的逻辑结构和特征的是 。
(8)层次模型和网状模型中的单位是基本层次联系,这是指两个 以及它们之间的 (包括一对一)的联系。
(9)数据模型的组成要素中描述系统的静态特性和动态特性的分别是 和 。
4.问答题
*(1)试述数据管理的文件系统阶段和数据库系统阶段“数据独立性”有何不同。
(2)叙述使用文件系统管理数据的缺点。
1.3.2补充习题答案
购买或注册会员即可查看。
已注册会员点击登录。
参考文献:
[1]王珊,萨师煊.数据库系统概论(第五版)[M]. 北京:高等教育出版社, 2014.
[2]王珊,张俊.数据库系统概论(第五版)习题解析与实验指导[M]. 北京:高等教育出版社, 2015.
[3]明日科技.MySQL从入门到精通[M]. 北京:清华大学出版社, 2017.
#cmt7