一、数据模型
数据模型(data model) 是一种模型,是对现实世界数据特征的抽象。
数据模型是用来描述数据、组织数据、对数据进行操作的。
现有的数据库均是基于某种数据模型的。
数据模型是数据库系统的核心和基础。
二、两类数据模型
数据模型应满足三方面要求:
①能比较真实地模拟现实世界
②容易为人们所理解
③便于在计算机上实现
根据模型应用的不同目的,可划分为两大类:
-
概念模型(conceptual model)
是按用户的观点来对数据和信息建模,主要用于数据库设计。 -
逻辑模型和物理模型
主要包括层次模型、网状模型、关系模型(relational model)、面向对象数据模型和对象关系数据模型、半结构化数据模型等。
按计算机系统观点对数据建模,主要用于数据库管理系统的实现。
物理模型是对数据最底层的抽象,描述数据在系统内部的表示方式和存取方法,或在磁盘上或磁带上的存储方式和存取方法,是面向计算机系统的。
三、数据模型的组成要素
数据模型由数据结构、数据操作和数据的完整性约束条件三部分组成。
①数据结构
描述数据库的 组成对象 以及 对象之间 的联系。
即,数据结构描述的对象有两类:
- 与对象的类型、内容、性质有关的
- 与数据之间联系有关的对象
②数据操作
是指对数据库中各种对象(型)的实例(值)允许执行的操作的集合,包括操作及有关的操作规则。
数据库主要有两大类操作:
- 查询
- 更新(插入、删除、修改)
③数据的完整性约束条件
是一组完整性规则。
完整性规则是给定的数据模型中数据及其联系所具有的制约和依存规则,用以限定符合数据模型的数据库状态以及状态的变化,以保证数据的正确、有效和相容。
数据模型应该反映和规定其必须遵守的基本的和通用的完整性约束条件。
四、概念模型
如二中的图,概念模型实际上是现实世界到机器世界的一个中间层次。
概念模型用于信息世界的建模,是现实世界到信息世界的第一层抽象。
4.1 信息世界中的基本概念
①实体(entity)
客观存在并可相互区别的事物称为实体。
实体可以是具体的人、事、物,也可以是抽象的概念或联系。
例:一个职工、一个学生、学生的一次选课、教师与院系的工作关系等
②实体型(entity type)
具有相同属性的实体必然具有共同的特征和性质。
用实体名及其属性名集合来抽象和刻画同类实体,称为实体型。
例:学生(学号,姓名,性别,出生年月,所在院系)就是一个实体型
③实体集(entity set)
同一类型实体的集合称为实体集。
例:全体学生就是一个实体集
④属性(attribute)
实体所具有的某一特性称为属性。
一个实体可由若干个属性来刻画。
例:学生实体可以由学号、姓名、性别、出生年月、所在院系等属性组成。
⑤码(key)
唯一标示实体的属性集称为码。
例:学号事学生实体的码
⑥联系(relationship)
在现实世界中,事物内部以及事物之间是有联系的,这些联系在信息世界中反应为实体(型)内部的联系和实体(型)之间的联系。
实体内部的联系通常是指组成实体的各属性之间的联系
实体之间的联系通常是指不同实体集之间的联系
实体之间的联系有一对一、一对多、多对多等类型。
4.2 实体联系法
实体-联系方法
用E-R图来描述现实世界的概念模型
五、关系模型
关系数据库采用关系模型作为数据的组织方式
关系模型建立在严格的数学概念的基础上
关系模型中的术语:
①关系(relation)
一个关系对应通常说的一张表,如图的图书管借阅证信息表
②元组(tuple)
表中的一行即为一个元组
③属性(attribute)
表中的一列即为一个属性,给每个属性起名,即属性名
例:(学号、姓名、性别、年龄、图书证号、所在系)
④码(key)
也称码键,表中的某个属性,可以唯一确定一个元组,称为码
例:表中的学号可以唯一确定一个学生,学号即为码
⑤域(domain)
域是一组具有相同数据类型的值的集合。
属性的取值范围来自某个域
例:人的年龄一般在1~120岁之间
1~120就是域
⑥分量
元组中的一个属性值
⑦关系模式
对关系的描述一般为:
关系名(属性1,属性2,…,属性n)
例 :上表的关系可描述为:
借阅证(学号、姓名、性别、年龄、图书证号、所在系)
关系模型要求关系必须是规范化的,即要求关系必须满足一定的规范条件(即范式)
最基本应满足第一范式,即表中不能再有表,每一个分量必须是一个不可再分的数据项。
六、总结
数据模型是数据库系统的核心和基础。
概念模型,是按用户的观点来对数据和信息建模,主要用于数据库设计。
逻辑模型和物理模型,是按计算机系统观点对数据建模,主要用于数据库管理系统的实现。
数据模型由数据结构、数据操作和数据的完整性约束条件三部分组成。
实体之间的联系通常是指不同实体集之间的联系
实体之间的联系有一对一、一对多、多对多等类型。
关系模型满足的基本规定是:表中不能再有表