现实世界
现实世界也就是客观存在的世界,这一概念在数据库中指的是对某一事物的描述,描述其各方面特征以及是否与其他事物存在联系
信息世界
信息世界是对客观事物的抽象描述,是对现实世界经过分析、归纳和抽象得到的信息,这样的信息具有一定的格式。
信息世界中存在以下概念:
- 实体:指现实世界中一个客观存在的事物
- 属性:实体的某一特征
- 属性型:指属性名
- 属性值:某一属性名的一个具体值
- 实体集:同一类型实体的集合,比如所有学生是一个实体集
- 实体型:实体名 + 所有属性名,如学生(姓名,学号,年龄,性别,··)
- 码:能为一标识一个实体的属性或属性集称为实体的码
- 域:属性的取值范围,比如性别这一属性的域就是{男,女}
- 联系:单个实体型内部的属性存在着联系,不同实体型之间也存在着联系
对于两个实体型之间的联系有如下三种类型
- 一对一:A实体集中的每一个实体最多对应B实体集中的一个实体
- 一对多:A实体集中的每一个实体可以对应B实体集中的多个实体
- 多对多:A实体集对实体集B一对多,同时实体集B对实体集A也是一对多的关系
两个实体型之间的联系是实体与实体的对应关系,而单个实体型内部联系通常是属性与属性的关系
一对一中,强调最多是因为,一对一关系中,不是所有A实体集中的实体在B中都有一个与它对应
另外,多于多个实体型之间的联系,其说到底也是由多个两个实体型之间的联系组合形成的
计算机世界
计算机世界是对信息世界的再一次抽象,将其信息化,使得信息能够存储在计算机中,有如下点:
- 字段:就是属性名,有型和值
- 记录:字段的有序集合,有型和值
- 文件:同类记录的集合,也就是一个实体集
- 关键字:能够唯一标识每个记录的字段或字段集
从数据模型角度看三个世界
概念模型:也叫信息模型,对现实世界的一级抽象的结果
数据模型:也叫逻辑模型是对数据及其联系的描述,包括了组织方式、表达方式和存储路径,它是对现实世界的两级抽象的结果
数据模型的一般组成要素
- 数据结构:包括了数据的类型、内容、性质以及数据之间的联系
- 有层次结构、网状结构、关系结构
- 数据操作:对数据的增、删、改、查、排序等
- 数据的完整性约束:对数据的约束,比如规定值域,规定对数据的操作
数据模型的常用类型
- 层次模型
单个树形结构,只有一个根节点
层次结构的数据操纵与数据完整性约束
- 插入时(操纵),没有双亲的不能插入子女结点值(约束)(下同)
- 删除时,如果删除双亲结点,对应子女也很会被删除
- 修改时,应该修改对应的记录来保证数据的一致性(也就是会有修改双亲的可能)
优点:简单、分明、查询效率高、提供良好数据完整性支持
缺点:不能表示多对多联系,插入和删除限制多、查询子女必须通过双亲结点
- 网状模型
采用有向图结构来表示,也是离散中图论常见的形式,没有根节点
与层次模型的区别
网状可以没有双亲、可有多个双亲、两个节点多种联系
层次是网状的特例
网状结构的数据操纵与数据完整性约束
- 插入数据时,允许插入尚未确定双亲的结点
- 删除数据时,允许只删除双清
- 修改数据时,只需更新指定记录
优点:可实现多种复杂联系、具有良好性能和存储效率
缺点:数据结构复杂、数据定义、数据操纵语言复杂、用户需要了解系统结构细节
- 关系模型
通过二维表的形式来存储数据,通过关系来表示数据结构
(这里的关系抽象来说就是1:1、1:n、m:n)
分量:每一行对应的属性值
关键字:可唯一标识一元组的属性或属性集(如某个学生的学号)
关系模式:对关系的描述,如:学生(学号,姓名,性别,年龄,专业,班级)
关系实列:也就是关系模式的某一个“值”
关系模型的数据操纵与完整性约束
- 操作对象和操作结构都是关系,(集合为操作对象)
- 用户不需要知道数据存储路径,只需要指出做什么就行
- 能进行记录集合的操作
优点:有严格的数学理论依据、用关系描述实体间联系、更高的数据独立和保密性
缺点:查询效率不如非关系模型
- 面向对象模型
对象:现实世界实体的模型化
对象标识:独立于对象和存储位置,是一种逻辑标识符,通常由系统产生
对象内部相同和标识符相同才认为两个对象相同
对象中包含一组属性和方法(函数)
类:具有同样属性和方法集的对象构成
- 类的属性可以说数据类型,也可以由类
- 类的表示具有层次性和继承性
优点:能完整描述现实世界的数据结构、具有丰富的表达能力
缺点:模型相对复杂、涉及知识比较多
E-R图
E-R图中,由三部分组成:实体、属性、关系
三种对应关系的表示
实例
总结
三个世界中,现实世界于信息世界都是于计算机无关的,只有经过两级抽象后得到的数据模型才能够被计算及使用和存储
对于信息世界的描述,即概念模型是通过E-R图来描述的
在关系模型中,二维表是存储数据的一个方式,他们之间的联系是通过认为规定的“关系”来确定的