数据模型:对现实世界数据特征的抽象,是数据库系统的核心和基础。就是对现实世界的模拟
1.2.1两类数据模型
首先一个数据模型应该满足三方面的要求:
1、真实模拟现实世界
2、容易被理解
3、便于在计算机上实现
每一种数据模型的组成:
1、数据结构(描述数据库的组成对象以及对象之间的联系、静态)
2、数据操作(查询和更新、动态)
3、数据的完整性约束条件(一组完整性规则)
第一类:概念模型(信息模型)
按照用户的观点来对数据进行信息建模
从现实世界到概念模型的转换由数据库设计人员完成
基本概念
(1)实体entity
客观存在的事物,并且可以相互区别的称为实体
实体可以是概念,抽象,也可以是一个具体的人。
比如我的其中一个室友,或者是比如水果
(2)属性attribute
实体具有的某一个特征叫做属性
一个实体可以由若干个属性来刻画
(3)码key
唯一表示实体的属性集称为码
比如一个学生,它的学号是独一无二的。比如每个人的身份证号。
都是作为这个实体的码
可以用这个属性来区分其他人
(4)实体型entity type
具有相同属性的实体必然具有相同特征和性质
用实体名及属性的集合在抽象同类实体
比如 学生(学号,姓名,年龄,入学年份)
学生是实体名
(5)实体集entity set
同一类型的实体的集合被称为实体集
比如全体的学生
因为学生是一个实体型,所以全体学生就是一个实体集
(6)联系relationship
联系有:实体内部联系和实体之间的联系
实体内部联系:实体内部的属性之类的联系
实体之间的联系:有一对多、多对多、一对一的关系。不同实体之间的联系
表示方法:E-R模型
第二类逻辑数据模型和物理模型
主要的数据模型结构:
1、格式化模型(分为层次模型和网状模型)
2、关系模型
3、面向对象数据模型
4、对象关系数据模型
5、半结构化数据模型
层次模型
树形结构来表示实体以及实体间的联系
层次模型-数据结构
(1)根节点:有且只有一个结点,没有双亲结点
(2)根以外的其他结点,有且只有一个双亲结点
(3)任何给定的一个值,只可以按层次的路径查看,没有一个子女记录可以脱离双亲记录而独立存在。
层次模型-数据操作-完整性约束
在进行数据的操作时,按照一定的约束性条件来操作
层次模型特点
(1)结构简单、查询效率高、良好的完整性支持
(2)查询子女结点时,必须通过双亲结点。不怎么适应现实需求,层次命令趋于程序化、对于插入和删除的约束性条件较多
网状模型
DBTG系统,典型的网状数据模型
网状模型-数据结构
(1)允许一个以上节点没有双亲
(2)一个结点可以有多余一个的双亲
(3)子女和双亲结点联系不唯一
网状模型-数据操作和完整性约束
数据库中不允许有重复的码
网状模型优缺点
1、更高模拟现实,存取效率更高
2、结构复杂、不易使用、添加编写程序的负担
关系模型
一个二维表
关系模型-数据结构
1、关系relation: 对应一张表
2、元组tuple:表中的一行
3、属性attribute:表的一列
4、码key:码键,某一个属性值,可以唯一确定一个元组
5、域domain:每一个属性的取值范围
6、分量:元组中的某一个属性值
7、关系模型:学生(属性1,属性2,…属性n) 一个实体型
关系模型-数据操作与完整性约束
用户只需要说明干什么找什么,不需要说明怎么干怎么找
提高了数据的独立性和用户生产效率
关系模型-优缺点
1、建立在严格的数学概念的基础上
2、概念单一,结构清晰
3、对用户透明、从而具有更高的独立性