1.常用的数据模型
格式化模型:层次模型+网状模型
关系模型(目前最常用)
对象模型:面向数据对象+对象关系数据模型
半结构化数据库(XML)、非机构化数据库模型、图模型....
*格式化模型中数据结构的单位:基本层次联系
2.层次模型
它是用树形结构来表示各类实体以及实体间的联系
表示方法:实体型,属性,联系
定义:满足以下条件的基本层次联系的集合 1.有且只有一个结点是没有双亲结点,这个结点称为根结点。2.根以外的其他结点有且只有一个双亲结点。
总结:结点的双亲是唯一! 只能处理1:N的关系! 树形!
任何记录按路径查看,没有子女记录能脱离双亲而独立存在!
数据操纵:查询,插入,删除,更新
完整性约束:无父母则不允许插入子女;删父母则子女同时被删除;更新时需全部更新保证一致性
优点 | 缺点 |
数据结构比较清晰 | 多对多联系表示不自然 |
查询效率高,性能优于关系,不低于网状 | 插入、删除限制多,编写复杂 |
提供良好的完整性支持 | 查询子女结点必须通过双亲 |
3.网状模型
它是采用网状结构来表示实体及实体之间的联系,同样包含实体型、属性、联系。
特点:1.允许多个结点无双亲(☆)
2.一个结点可以有多个双亲(☆)
3.两个结点之间多个联系
4.每个联系都需命名,并指出相关的双亲及子女
表示:网状模型间接表示N:N联系,可以将此分解为1:N联系
数据操纵:1.导航式的查询,插入,删除,更新;
2.完整性约束条件不严格(允许插入尚未确定双亲结点值的子女;允许只删除双亲)
具有一定的完整性约束:
1.具有支持码,唯一标识记录的数据项集合
2.一个联系中的双亲与子女1:N
3.可以定义双亲与子女的某些约束
优点 | 缺点 |
更直观描述现实 | 应用扩大后易浮渣 |
具有良好性能,效率还行 | DDL\DML语句复杂,用户不易使用 |
记录联系必须选择存储路径,加重开发人员操作 |
4.关系模型(☆)
CODD 首次提出了数据库的关系模型,被授予图灵奖。
在用户观点下,关系模型中的数据逻辑结构是一张二维表,关系必须是规范化(不允许表中有表)。
概念:
1.关系relation,一个关系就是一张表
2.元组tuple,表的一行为一个元组
3.属性attribute,表的一列为一个属性
4.主码key,表中某些属性组,可以唯一确定一个元组
5.域domain,一张具有相同数据类型的值的集合。例如性别的域是:男女
存储路径对用户隐蔽,提高数据的独立性。
完整性约束条件:实体完整性、参照完整性、用户定义的完整性
优点 | 缺点 |
建立严格的数学概念 | |
概念单一 实体和联系用关系表示 对数据的查询结果也是关系 | 为了提高性能,需要对查询进行优化,会增加开发数据库系统的难度 |
存储路径是对用户透明 数据独立性高,保密性好 简化开发工作 | 查询效率不如格式化模型高 |