现实世界中的事物及其联系,经过两级抽象和转换后形成了计算机世界中的数据及其联系,而数据模型就是用来描述数据及其联系的。
数据库中存放数据的结构是由数据模型决定的,数据模型是数据库的框架,是数据库系统的核心和基础
数据模型是描述数据、数据联系、数据的语义和完整性约束的概念集合,由数据结构、数据操作和完整性约束三要素组成。
数据模型的组成要素
数据结构
即数据组织的结构,用于描述系统的静态特征,描述数据库的组成对象以及对象间的联系。即:
一是描述数据对象的类型、内容、性质等;
二是描述数据对象间的联系。
常用的数据结构
数据操作
对数据库中的数据允许执行的操作的集合,包括操作及相应的操作规则(优先级)等,描述了数据库的动态特性。
一类是查询操作
一类是更新操作(含插入、删除和修改)
数据的完整性约束
一组完整性规则的集合。
完整性规则是数据模型中数据及其联系所具有的制约和依存规则。用以限定符合数据模型的数据库状态以及状态的变化,以保证数据的正确、有效、相容。
常用的数据模型
层次模型
层次模型是采用树型结构(有根树)来表示实体及其实体间的联系的模型。树形结构中的结点表示实体型,实体型间的联系用指针表示。
采用层次模型的数据库的典型代表是IBM公司1968年推出的IMS数据库管理系统
特点
1.有且仅有一个结点没有双亲,根结点
2.根以外的其他结点有且仅有一个双亲结点
3.父子结点之间的联系是一对多(1:n)的联系
4.任何一个给定的记录值只有按其路径查看时,才能显出它的全部意义
层次模型的数据操纵与数据完整性约束
1.进行插入操作时,如果没有相应的双亲结点值就不能插入子女结点值 。
2.进行删除操作时,如果删除双亲结点值,则相应的子女结点值也被同时删除。
3.修改操作时,应修改所有相应的记录,以保证数据的一致性。
优点
1.结构简单,层次分明
2.查询效率高 ,从根结点到树中任一结点均存在一条唯一的层次路径
3.提供良好的数据完整性支持
缺点
1.不能直接表示多对多联系
2.插入和删除数据限制太多
3.查询子女结点必须通过双亲结点
网状模型
1.网状模型是采用有向图结构表示实体以及实体之间联系的数据模型 。
2.每个结点表示一个实体型。
3.结点间的带箭头的连线(或有向边)表示记录型间的1:n的父子联系。
比较有代表性的系统是,20世纪70年代,数据系统语言研究会CODASYL提出的DBTG系统
特点
1.有一个以上的结点没有双亲结点
2.允许结点有多个双亲结点
3.允许两个结点之间有多种联系(复合联系)
网状模型的数据操纵与完整性约束
1.插入数据时,允许插入尚未确定双亲结点值的子女结点值。
2.删除数据时,允许只删除双亲结点值。
3.修改数据时,只需更新指定记录即可。
优点
1.可表示实体间的多种复杂联系
2.具有良好的性能和存储效率
缺点
1.数据结构复杂
2.数据定义语言、数据操纵语言复杂
3.用户需要了解网状模型的实现细节
关系模型
以二维表(关系)的形式表示实体和实体之间联系的数据模型。
1970年美国IBM公司的研究员E.F.Codd提出,1977年IBM公司研制的关系数据库的代表System R。
关系模型的数据结构是一张规范化的二维表,它由表名、表头和表体三部分构成
分量 每一行对应的列的属性值,即为元组中的一个属性值。
候选码 可惟一标识一个元组的属性或属性集。如S表中学号可以惟一确定一个学生,为学生关系的主码。
关系模式 关系模式是对关系的描述,是关系模型的“型” 。一般表示为:关系名(属性1,属性2,……属性n)。
如:学生(学号,姓名,性别,年龄,系别)
关系模型的数据操纵与完整性约束
关系模型的数据操纵主要包括查询、插入、删除和修改
关系模型中的数据操作是集合操作,操作对象和操作结果都是关系,即若干元组的集合。
关系模型把对数据的存取路径隐蔽起来,用户只要指出“干什么”,而不必详细说明“怎么干”, 从而大大地提高了数据的独立性,提高了用户操作效率。
优点
1.有严格的数学理论根据
2.数据结构简单、清晰,用关系描述实体及其联系
3.具有更高的数据独立性、更好的安全保密性
缺点
查询效率不如非关系模型