一、数据库基本概念
1.数据(Data)
- 数据的定义:描述事物的符号记录
- 数据的种类:数字、文本、图形、图像、音频、视频等
- 数据的特点:数据与其语义是不可分的(数据的含义称为数据的语义)
- 信息是对数据的解释,即“信息=数据+语义”。
- 数据是信息的符号表示,信息则是对数据的语义解释。
2.数据库(DataBase)
- 数据库的定义:数据库(简称DB)是长期储存在计算机内、有组织的、可共享的大量数据的集合。
- 数据库中存储的基本对象是数据(Data)
- 数据库的基本特点:永久存储、有组织、可共享
3.数据库管理系统(DataBase Management System)
- 数据库管理系统:位于用户与操作系统之间的一层数据管理软件。(是系统软件,是数据库系统的核心)
主要功能:
- 数据定义功能
- 数据组织、存储和管理
- 数据操纵功能(插入、删除、修改和查询)
- 数据库的事务管理和运行管理
- 数据库的建立和维护功能(实用程序)
- 其它功能(异构数据库之间的互访等)
4.数据库系统(DataBase System)
- 数据库系统(DBS): 计算机系统中引入数据库后的系统构成
- 数据库系统的构成:由数据库、数据库管理系统、应用系统、应用开发工具、用户、应用程序员、数据库管理员(Database Administrator,DBA)等组成 。
二、数据库管理技术的发展
1.人工管理阶段
在20世纪50年代中期以前,计算机主要用于科学计算。当时的计算机硬件和软件都不完善,因此只能采用人工方式对数据进行管理。
人工管理阶段特点:
- 人工管理阶段的数据无法保存。
- 该阶段的数据无法共享,数据是面向应用程序的,一组数据只对应一个应用程序。
2.文件系统阶段
在20世纪50年代后期至60年代中期,计算机硬件和软件技术都得到了极大发展,计算机开始用于数据管理。
文件系统优点:
- 数据能够以文件的形式长期存储;
- 文件系统提供的文件管理功能及存取方法,使得应用程序与数据具有了一定的独立性;
- 文件形式多样化,数据间具有一定的共享性等。
文件系统缺点:
- 数据共享性差,冗余度较大;
- 数据不一致性;
- 数据独立性差;
- 数据间联系弱。
3.数据库系统阶段
到了20世纪60年代后期,文件系统的数据管理方法无法适应各种应用程序的需要,于是数据库技术应运而生,人们转向使用数据库对数据进行统一管理。
与文件系统相比,数据库系统阶段特点:
- 数据结构化;
- 数据共享性高、冗余度小;
- 数据独立性高;
- 有统一的数据管理和控制功能。
三、数据库系统的体系结构
数据库系统的三级模式结构从逻辑上分为外模式、模式和内模式三级抽象模式,并提供外模式/模式、模式/内模式二级映像。
1.数据库系统的三级模式结构
(1)外模式
- 外模式又称子模式或用户模式,它是三级结构的最外层,是数据库用户能够看到并允许使用的那部分数据的逻辑结构和特征的描述,是数据库用户的数据视图。
- 外模式是模式的子集,一个数据库可以有多个外模式。用户可以根据系统所给的外模式,用查询语言或应用程序去操作部分数据,数据库中的其余数据对于用户来说是不可见的,所以外模式也是保证数据库安全的一种有力措施。
(2)模式
- 模式也称为概念模式或概念视图,是数据库中全体数据的逻辑结构和特征的描述,处于三级模式结构的中间层,不涉及数据的物理存储和硬件环境,同时与开发工具及程序设计语言无关。
- 一个数据库只有一个模式,模式是数据的逻辑表示,它描述了数据库中存储的具体数据及其之间存在的联系。
(3)内模式
- 内模式又称存储模式或物理模式,是三层结构中的最内层,也是最靠近物理存储的一层。它是对数据库存储结构的描述,是数据在数据库内部的表达方式。
注意:一个数据库系统,实际存在的只有物理级数据库,也就是内模式,它是数据访问的基础。概念级数据库是物理级数据库的一种抽象描述,用户级数据库是用户与数据库的接口。用户根据外模式进行的操作,通过外模式到模式的映射与概念级数据库联系起来,又通过模式到内模式的映射与物理级数据库联系起来。实际上,DBMS的工作之一就是完成三级数据库模式之间的转换,把用户对数据库的操作转化到物理层面去执行。
在数据库系统中,外模式可以有多个,但是模式与内模式只能各有一个。
2.数据库系统的二级映像
(1)外模式/模式映像
- 数据库的模式可以对应任意多个外模式,对于每一个外模式,都存在一个外模式/模式映像。
- 当一个关系的逻辑结构(模式)发生变化时,由数据库管理员对外模式/模式映像做出相应改变,就可以保证外模式不变。
(2)模式/内模式映像
- 数据库中只有一个模式和一个内模式,所以模式/内模式映像是唯一的。模式/内模式映像定义了数据的全局逻辑结构与存储结构,也就是模式与内模式之间的关系。当数据的存储结构发生变化,只需数据库管理员对模式/内模式映像做出相应的改变,就能使模式保持不变,从而使应用程序也不用发生改变,确保了数据的物理独立性。
四、三个世界及其有关概念
1.现实世界
- 现实世界是存在于人们头脑之外的客观世界。现实世界存在各种事物,事物与事物之间存在联系,这种联系是由事物本身的性质决定的。
- 例如,学校中有教师、学生、课程,教师为学生授课,学生选修课程并取得成绩;图书馆中有图书、管理员和读者,读者借阅图书,管理员对图书和读者进行管理等。
2.信息世界
- 信息世界是现实世界在人们头脑中的反映,人们把它用文字或符号记载下来。
- 信息世界的相关概念
- 实体(Entity):客观存在并且可以相互区别的事物称为实体。实体可以是具体的事物,也可以是抽象的事件。
- 属性(Attribute):描述实体的特性。一个实体可以用若干个属性来描述。
- 键(Key):唯一标识实体的属性或属性的组合。
- 域(Domain):属性的取值范围称为该属性的域。
- 实体型(Entity Type):具有相同属性的实体必然具有共同的特征和性质,用实体名及其属性名的集合来抽象和刻画同类实体,称为实体型。例如,学生(学号,姓名,性别,出生日期,系)
- 实体集(Entity Set):同类实体的集合称为实体集。例如全体学生、一批图书等。
- 联系(Relationship):在现实世界中,事物之间是有联系的,这些联系在信息世界中反映为实体(型)内部的联系和实体(型)之间的联系。实体内部的联系通常是指组成实体的各属性之间的联系;实体之间的联系通常是指不同实体集之间的联系。
-
两个实体型之间的联系可以分为3类。
一对一联系(One-to-One Relationship)
一对多联系(One-to-Many Relationship)
多对多联系(Many-to-Many Relationship)
-
3.数据世界(计算机世界)
- 数据世界又称机器(计算机)世界。信息世界的信息在机器世界中以数据形式存储,在这里,每一个实体用记录表示,相应于实体的属性用数据项(又称字段)来表示,现实世界中的事物及其联系用数据模型来表示。
- 数据世界相关概念
- 字段:标记实体属性的命名单位称为字段。
- 记录:字段的有序集合称为记录。如,一个学生(990001,张立,20,男,计算机)为一个记录。
- 文件:同一类记录的集合称为文件。如,所有学生的记录组成了一个学生文件。
- 关键字:能唯一标识文件中每个记录的字段或字段集,称为记录的关键字 。
4.三个世界之间的联系
- 在实际的数据处理过程中,首先将现实世界的事物及联系抽象成信息世界的概念模型,然后再抽象成计算机世界的数据模型。概念模型并不依赖于具体的计算机系统,不是某一个DBMS所支持的数据模型,它是计算机内部数据的抽象表示;概念模型经过抽象,转换成计算机上某一DBMS支持的数据模型。
五、数据模型
数据模型是对现实世界数据特征的抽象描述。现实世界中的数据要转换为抽象的数据库数据,需要经过现实世界、信息世界、计算机世界3个阶段,因此可以说数据模型是现实世界两级抽象的结果。
数据模型按应用层次可分为概念模型、逻辑模型和物理模型。
- 概念模型也称为信息模型,是属于信息世界中的模型。它按照用户的目标对数据信息建模,是对现实世界的事物及其联系的第一级抽象。
- 逻辑模型属于计算机世界中的模型,它从计算机的角度对数据进行建模,是对现实世界的第二级抽象。
- 物理模型是对数据最底层的抽象,是面向计算机系统的模型,它描述数据在磁盘或磁带上的存储方式和存取方法。
1.概念模型
- 概念数据模型简称为概念模型,表示实体类型及实体间的联系,是独立于计算机系统的模型。
- 概念模型用于建立信息世界的数据模型,强调其语义表达功能,要求概念简单、清晰,易于用户理解,它是现实世界的第1层抽象,是用户和数据库设计人员之间进行交流的工具。
-
概念模型可采用实体联系模型 ( Entity Relationship Model,E-R模型)用E-R图来描述。
概念模型中的相关概念:
- 实体(entity)。客观存在并且可以相互区别的事物称为实体。
- 实体可以是具体的人、事或物,如一名学生、一本书或一所学校等;也可以是抽象的事件,如学生选课等。
- 属性(attribute)。实体所具有的某一特性称为属性。一个实体可以由多个属性刻画。
- 例如,学生实体由学号、姓名、性别、年龄和系别等属性组成,它们共同构成了学生实体的特征。
- 实体型(entity type)。一般用实体名及其属性名集合来抽象描述同类实体,这种描述称为实体型。
- 例如,学生(学号,姓名,性别,年龄,系别)就是一个实体型,它描述的是学生这一类实体。
- 实体集(entity set)。同一类型实体的集合称为实体集。
- 例如,所有学生就是一个实体集。
- 码(key)或称键、关键字、关键码等。在实体型中,能够唯一标识一个实体的属性或属性集称为实体的码。
- 例如,学生的学号就是学生实体的码。
- 域(domain)。某一属性的取值范围称为该属性的域。
- 例如,学号的域为8位整数,性别的域为“男”和“女”等。
- 联系(relationship)。在现实世界中,事物内部及事物之间是有联系的,这些联系同样也要反映到信息世界中来。
- 例如,学生的学号与姓名之间的联系,学生与课程之间的联系等。
- 实体型之间的联系按照联系中实体的个数可分为3种情况:
- 一对一联系(1∶1)
- 一对多联系(1∶n)
- 多对多联系(m∶n)
- E-R图。E-R图是陈品山于1976年提出的概念模型表示方法,也称实体-联系方法(entity-relationship approach),是目前最著名的概念模型表示方法。
- E-R图能够清晰地表现出实体、属性和联系之间的关系。
2.逻辑模型
- 逻辑模型也称结构模型,它是直接面向数据库的逻辑结构,是现实世界的第2层抽象。数据模型涉及计算机系统和数据库管理系统。数据模型有严格的形式化定义,以便于在计算机系统中实现。
- 数据模型是严格定义的一组概念的集合。概念精确地描述了系统的静态特性、动态特性和完整性约束条件。
- 数据模型的组成要素:
- 数据结构
- 描述数据库的组成对象以及对象之间的联系。
- 描述对象类型的集合,反映的是系统的数据静态特性。
- 按照数据结构的类型来命名数据模型。
- 数据操作
- 对数据库中各种对象( 型 )的实例( 值 )允许执行的操作及操作规则的集合。
- 反映的是系统数据的动态变化。
- 主要有查询和更新( 插入、删除和修改 )两大类操作。
- 数据模型必须定义实现这些操作的操作符号、确切含义、操作规则以及实现操作的语言。
- 数据的完整性约束
- 一组完整性约束规则。
- 数据模型中数据及其联系所具有的制约和依存关系,用以限定符合数据模型的数据库状态以及状态的变化,以保证数据的正确、有效和相容。
- 数据库必须遵守的基本的通用的完整性约束条件。
- 反映具体应用所涉及的数据必须遵守的特定的语义约束条件。
- 数据结构
数据模型应该满足三方面的要求:比较真实地模拟现实世界、容易为人所理解、便于在计算机上实现
(1)层次模型
- 用树形结构表示实体类型及实体间联系的数据模型称为层次模型。
- 结构特点:
① 一个模型中有且只有一个节点没有父节点,这个节点称为根节点;
② 根节点以外的其他节点有且只有一个父节点;
③ 父子节点之间的联系是一对多联系(1∶n)。
- 优点:
①数据结构简单清晰,提供了良好的完整性支持;
②结构间联系简单;
③数据查询效率高。
- 缺点:
①不能直接表示两个以上实体集间的复杂联系;
②不能表示实体集间的多对多联系;
③不能用于表示非层次性的联系。
(2)网状模型
- 网状模型在层次模型的基础上去掉了两个限制,可以更直接地描述现实世界中的信息。
- 结构特点:
① 允许一个以上的节点没有父节点;
② 允许一个节点有多个父节点;
③ 允许两个节点之间有多种联系。
- 优点:
比层次模型更好的性能和更高效的存储方式。
- 缺点:
数据结构比较复杂,数据模式和系统实现均不够理想。
(3)关系模型
- 在关系模型中,数据结构是一张规范化的二维表,每个二维表都可以称为关系,实体与实体之间的联系也用关系表示。
- 不同于前两种模型,关系模型具有严格的数学理论依据,结构简单易懂,存取路径对用户透明,具有更高的数据独立性和安全保密性。
- 后面会对关系模型进行详细介绍。
六、关系数据模型
1.数据模型的演变
- 数据模型的演变是数据库技术发展的一条主线
- 层次模型( Hierarchical Model )
- 网状模型( Network Model )
- 关系模型( Relational Model )
- 半结构化数据模型( Semistructured-data Model )
- 面向对象模型( Object Oriented Model )
- 对象关系模型( Object Relational Model )
2.关系数据模型
- 常用的DBMS基本是关系型数据库管理系统( RDBMS )
- 关系数据库系统采用关系模型作为数据的组织方式
- 数据库领域的研究工作基本上以关系模型为基础
- 关系模型是目前使用最广泛的一种数据模型,IBM的E.F.Codd于20世纪70年代初提出的,E.F.Codd于1981年获得了ACM图灵奖
3.关系数据结构
- 关系数据模型的数据结构建立在集合论中“关系”概念的基础之上,有着严格的数学基础。
- 关系中的数据操作是集合操作。
- 数据结构单一,关系既可以表示实体也可以用来描述实体间的联系。
-
在集合论中,关系不是通过描述其内涵来刻划事物间联系的,而是通过列举其外延(具有这种联系的对象组合全体)来描述这种联系。
-
集合论中的关系本身也是一个集合,是具有某种联系的对象(称为“序组”)组合。
4.关系模式
- R(U, D, Dom, F)
- R:关系名
- U:组成该关系的属性集合
- D:属性组U中属性所来自的域
- Dom:属性向域的映像的集合
- F:属性间数据的依赖关系集合
- R(U, D, Dom, F)