2.1 数据模型的概念
数据模型(Data Model)
是对现实世界客观事物的数据抽象描述,这种抽象描述能确切的反映事物、事物的特征和事物之间的联系,形成一组严格定义的概念的集合。
通俗地讲,数据模型就是现实世界的模拟
数据模型是数据库系统的核心
研究的问题是如何以逻辑和物理方式安排和识别数据。
2.1 数据模型的概念
数据模型的分类
数据模型应满足三方面的性能要求
能比较真实地模拟或抽象表示现实世界
容为人所理解
便于在计算机上实现
2.1 数据模型的概念
数据模型的分类
根据不同的抽象层次分
概念数据模型(conceptual data model)
结构数据模型(structural data model)
物理数据模型(physical data model)
概念数据模型
用户容易理解的、对现实世界特征的数据抽象。其基本特征是按用户观点对数据和信息进行建模,与具体的DBMS无关,用于数据库设计员与用户之间进行交流的语言。
常用的概念数据模型是实体–联系(E-R)模型,简称E-R模型。
结构数据模型
又称逻辑数据模型(Logical Data Model),是用户从数据库中所看到的数据模型,是具体的DBMS所支持的数据模型,如网状数据模型、层次数据模型、关系数据模型和面向对象数据模型等。
按计算机系统的观点对数据建模,用于DBMS实现
物理数据模型
是对数据最底层的抽象,用于描述数据在存储介质
上的表示方式和存取方法,它不但与具体的DBMS
有关,而且还与操作系统和硬件有关,是物理层次
的数据模型。
2.1 数据模型的概念
2.1 数据模型的概念
数据模型的构成(三要素)
数据结构:是对计算机的数据组织方式和数据之间联系进行框架性描述的集合,是对数据库静态特性的描述。
数据操作:是数据库中各种对象类的实例(或取值)所允许执行的操作的集合,是对数据库动态特性的描述。
完整性约束:是关于数据状态和状态变化的一组完整性约束条件(规则)的集合。
概念数据模型的用途
概念模型用于信息世界的建模
是现实世界到机器世界的一个中间层次
是数据库设计的有力工具
数据库设计人员和用户之间进行交流的语言
对概念数据模型的基本要求
较强的语义表达能力
简单、清晰、易于用户理解
实体-联系(E-R)模型的几个基本概念
实体(entity):客观存在并可互相区别的事物。 例如:学生、课程、教学楼。
属性(attribute):实体具有若干特征,每个特征称为实体的一个属性。
例如,每个学生实体都具有学号、姓名、年龄、性别、系别、年级等属性。
每个属性赋予确定的值,就抽象地表示了一个确定的实体。
实体型(entity type):对具有相同属性的一类实体的特征和性质的结构描述。
实体名(属性1,属性2,…,属性n)
例如,学生(学号,姓名,性别,年龄,系,入学时间)就是一个实体型
实体集(entity set):同一类型实体的集合称为实体集。
例如,计算机系的学生就是一个实体集。 实体-联系(E-R)模型的几个基本概念
关键字(Key):能唯一地标识实体集中每个实体的属性集合称为关键字(码)。
例如,学号可以作为一个学校的学生实体集的关键字;一个实体集可以有若干个关键字,通常选择一个作为主关键字 (Primary Key)。
联系(Relationship):E-R模型中实体之间的联系,它反映的是现实世界中事物之间联系。
实体集内部的联系:是指同一实体集内部各实体之间的联系
实体集之间的联系:是指不同实体集之间的联系
例如:实体集内部:学生与学生的联系
实体集之间:学生与课程的联系
2.2 概念数据模型
两个实体集之间的联系可以分为三类:
一对一联系(1:1)
例:班级与班长,部门与经理
一对多联系(1: n)
例:班主任与学生,部门与职工
多对多联系(m:n)
例:学生与课程,客户与商品
2.2 概念数据模型
实体集内部也存在联系
例:1:1:夫妻
1:n:班长与学生
m:n:无结构零件与有结构零件
多个实体集间也存在联系
例:课程、教师与参考书:1:m:n
出版社、教材、大学:m:n:p
E-R模型到关系模式的转换
实体型的转换
关系模式中包含实体型的所有属性
联系的转换
1:1:将联系的属性和其中一个实体型对应关系模式的主键属性加入到另
一个关系模式中
1:n:将联系的属性和1端对应关系模式的主键属性加入到n端对应的关系
模式中
n:m:将联系转换为一个关系型,其属性有联系的属性和前面两个关系
模式的主键属性构成
数据库技术是以数据模型为主线而发展的
早期开拓者之一:C. W. Bachman
第一代数据库技术,即层次数据库和网状数据库技术; 第二代数据库技术,即关系数据库技术;
第三代数据库技术,即新一代数据库技术,以面向对象模型为主要特征的数据库技术;
第四代数据库技术,即NoSQL,泛指非关系型的数据库
2.3 结构数据模型
常用的结构数据模型(以数据结构的类型命名)
层次模型(Hierarchical Model)
网状模型(Network Model)
关系模型(Relational Model)
面向对象模型(Object Oriented Model)
(树)
(有向图)
(表格)
第一代数据库技术
即层次数据库和网状数据库技术。这一代的数据库管理系统主要支持层次和网状数据模型,其主要特点是:
★支持三级模式结构;
★用存取路径(指针)来表示数据之间的联系;
★数据定义语言(Data Definition Language,简称DDL)和数据操纵语言(Data Manipulation Language,简称DML)相对独立;
★ 数据库语言采用过程性(导航式)语言。
2.3.1 层次模型
满足下面两个条件的基本层次联系的集合为层次模型。
有且只有一个结点没有双亲(Parent)结点,这个结点称为根结点; 除根结点以外的其他结点有且只有一个双亲结点与之相连。层次模型的优点:
模型比较简单,使用较方便。
对于实体间联系固定且预先定义好的应用系统,层次模型性能优于关系模型,不低于网状模型。
层次数据模型提供了良好的完整性支持。 层次模型的缺点:
只能表示1:n联系,虽有辅助手段实现m:n联系,但方法笨拙和复杂,不易掌握。
数据的查询和更新操作也很复杂,导致应用程序编写困难。
2.3.2 网状模型
满足两个条件的基本层次联系的集合称为网状模型: 允许一个以上的结点无双亲;
一个结点可以有两个或两个以上的双亲。网状数据模型的优点:
能够更为直接地描述现实世界,如一个结点可以有多个双亲。 具有良好的性能,存取效率较高。
网状数据模型的缺点:
结构比较复杂,不利于最终用户掌握。
其DDL,DML语言复杂,用户不容易使用。 应用程序编写负担重。
第三代数据库技术
即新一代数据库技术,它是以面向对象模型为主要特征的数据库技术。这一代的数据库管理系统是基于扩展的关系数据模型或面向对象数据模型的,是尚未完全成熟的一代数据库技术,其主要特点是:
★ 支持包括数据、对象和知识的管理;
★ 在保持和继承第二代数据库技术基础上引入新技术,如面向对象技
术等,
★ 对其它系统开放,有良好的可移植性、可扩充性和可互操作性。
第二代数据库技术
即关系数据库技术。这一代的数据库管理系统主要支持关系数据模型,这种模型有严格的数学理论基础,概念简单、清晰,易于用户理解和使用。其主要特点是:
★概念单一化,数据及其数据间的联系都用关系来 表示;★以关系代数为理论基础,数据独立性强;
★ 数据库语言采用说明性语言,大大简化了用户的编程难度。
2.3.3 关系模型
关系数据库系统采用关系模型作为数据的组织方式
1970年美国IBM公司San Jose研究室的研究员E.F.Codd首
次提出了数据库系统的关系模型
计算机厂商推出的数据库管理系统几乎都支持关系模型
关系模型的数据结构
在用户观点下,关系模型中数据的逻辑结构是一张二维表(Table,简称表) 。其常用术语有:
① 关系模式(Relational Schema):对应一个二维表的表头,它对应E-R模型中的实体型,是相对稳定的。
② 属性(Attribute):二维表中的一列即为一个属性,给每一个属性起一个名称即属性名。它们与E-R模型中实体型的属性相同。
③ 关系(Relation):对应通常所说的一张二维表,它与E-R模型中的实体集对应。
在用户观点下,关系模型中数据的逻辑结构是一张二维表(Table,简称表) 。其常用术语有:
④ 元组(Tuple):二维表中除表头以外的一非空行即为一个元组,元组与E-R模型中的实体对应。
⑤ 候选键(Candidate Key):二维表中的某些属性的集合,它可以唯一确定一个元组。一个关系可以有若干个候选键,通常选择一个作为主键(Primary Key)。它们分别与E-R模型中的关键字和主关键字对应。
在用户观点下,关系模型中数据的逻辑结构是一张二维表(Table,简称表) 。其常用术语有:
⑥ 外键(Forgien Key):在一个关系中含有的与另一个关系的关键字相对应的属性(组)称为该关系的外部关键字。
⑦ 域(Domain);属性的取值范围。属性的域同E-R模型中属性的域意义相同。
⑧ 分量(Attribute Value):元组中一个属性所取的具体值。