逻辑数据模型

文章目录

  • 数据模型
    • 层次模型
      • Ex1
      • Ex2:教员学生层次模型
      • 层次模型的数据操作&&完整性约束
      • 层次模型存储结构
      • 层次模型优缺点
    • 网状模型
      • Ex1
      • Ex2:学生选课数据库模型
      • 网状模型的数据操作&&完整性约束
      • 网状模型存储结构
      • 网状模型优缺点
    • 关系模型
      • 关系模型的数据操作&&完整性约束
      • 关系模型优缺点
      • 关系模型举例
    • 面向对象数据模型
    • 对象关系数据模型
    • 半结构化数据模型

数据模型

时间 数据库
20世纪70年代至80年代初 层次数据库或网状数据库
20世纪80年代 对象关系数据模型

用户易视,计算机易理解,数据管理系统支持的。

层次模型

层次模型(hierachical model)满足下面两个条件的基本层次联系的集合为层次模型。

  1. 有且只有一个结点没有双亲,这个结点称为根结点
  2. 根以外的其它结点有且只有一个双亲结点

兄弟结点(twin):同一双亲的子女结点互为兄弟结点
叶结点:没有子女的结点称为叶结点

记录类型(字段1,字段2,字段3,…,字段n)
记录类型:描述实体
字段:实体属性

  • 各个记录类型及其字段都必须命名
  • 各个记录类型,同一记录类型中各个字段不能同名

排序字段(码字段):每个记录类型可以定义一个排序字段,称为码字段。排序字段值唯一,它也能唯一标识一个记录值。

Ex1

R1
R2
R3
R4
R5

R1:根结点
R2与R3:互为兄弟结点
R4与R5:互为兄弟节点
R4和R5:叶结点

Ex2:教员学生层次模型

记录类型 字段
系编号、系号、办公地点
教研室 教研室编号、教研室名
学生 学号、姓名、成绩
教员 职工号、姓名、研究方向
系编号 系名 办公地点
教研室编号 教研室名
学号 姓名 成绩
职工号 姓名 研究方向

层次模型的数据操作&&完整性约束

 查询
 插入:无相应的双亲结点值就不能插入子女结点值
 删除:如果删除双亲结点值,则相应的子女结点值也被同时删除
 更新:更新操作时,应更新所有相应记录,以保证数据的一致性

层次模型存储结构

方法 具体
邻接法 按照层次树前序遍历的顺序把所有记录值依次邻接存,即通过物理空间的位置相邻来实现层次顺序
链接法 用指针来反映数据之间的层次联系,1.子女-兄弟链接法;2.层次序列链接法

层次模型优缺点

优点:

  1. 层次数据模型简单,对具有一对多的层次关系的部门描述自然、直观,容易理解;
  2. 性能:层次模型>关系模型,层次>=网状模型;
  3. 层次数据模型提供了良好的完整性支持。

缺点:

  1. 多对多联系表示不自然;
  2. 对插入和删除操作的限制多;
  3. 查询子女结点必须通过双亲结点;
  4. 层次命令趋于程序化。

网状模型

网状模型(network model)满足下面两个条件的基本层次联系的集合为网状模型。

  1. 允许一个以上的结点无双亲
  2. 一个结点可以有多于一个的双亲
  3. 允许两个结点之间有多种联系(复合联系)

1:同层次模型比较,根结点不止一个
2:同层次模型比较,结点的双亲不止一个

Ex1

c
b
a
L1
L2
L1
L2
L1
L2
L3
L4
L5
R1
R2
R3
R4
R5
R1
R2
R1
R2
R3

对于图a:R3有两个双亲,R1和R2没有双亲
对于图b:R1与R2复合联系
对于图c:R1和R2没有双亲,R3和R5有两个双亲

Ex2:学生选课数据库模型

记录类型 字段
学号、姓名、系别
学生 教研室编号、教研室名
课程 课程号、课程名、学分
选课 学号、课程号、成绩
S-SC
C-SC
学号 姓名 系别
课程号 课程名 学分
学号 课程号 成绩

网状模型的数据操作&&完整性约束

 查询
 插入:允许插入尚未确定双亲结点值的子女结点值
 删除:允许只删除双亲结点值
 更新

唯一标识记录的数据项的集合
双亲结点与子女结点之间是一对多联系
支持双亲记录和子女记录之间某些约束条件

网状模型存储结构

用指针实现记录之间的联系
单向链接
双向链接
环状链接
向首链接

网状模型优缺点

优点:

  1. 能够更为直接地描述现实世界,如一个结点可以有多个双亲;
  2. 具有良好的性能,存取效率较高。

缺点:

  1. 结构比较复杂,而且随着应用环境的扩大,数据库的结构就变得越来越复杂,不利于最终用户掌握;
  2. DDL、DML语言复杂,用户不容易使用。

关系模型

关系模型(relational model):在用户观点下(背后有严格的数学基础),关系模型中数
据的逻辑结构是一张二维表,它由行和列组成。

关系(Relation):一个关系对应通常说的一张表。
元组(Tuple):表中的一行即为一个元组。
属性(Attribute):表中的一列即为一个属性,给每一个属性起一个名称即属性名
主码(Key):表中的某个属性组,它可以唯一确定一个元组。
域(Domain):属性的取值范围。
分量:元组中的一个属性值。
关系模式(型的概念,对关系的描述):关系名(属性1,属性2,…,属性n)。
模式的实例(值的概念,关系模式的一个具体值):对属性1,属性2,…,属性n进行具体的赋值。

关系模型的数据操作&&完整性约束

 查询
 插入
 删除
 更新

  1. 实体完整性
  2. 参照完整性
  3. 用户定义的完整性

关系模型优缺点

优点:

  1. 建立在严格的数学概念的基础上;
  2. 概念单一,数据结构简单清晰,用户易懂易用;
  • 实体和各类联系都用关系来表示。
  • 对数据的检索结果也是关系。
  1. 关系模型的存取路径对用户透明。
  • 具有更高的数据独立性,更好的安全保密性
  • 简化了程序员的工作和数据库开发建立的工作

缺点:

  1. 存取路径对用户透明导致查询效率往往不如非关系数据模型;
  2. 为提高性能,必须对用户的查询请求进行优化,增加了开发数据库管理系统的难度。

关系模型举例

ORACLE
SYBASE
INFORMIX
SQL Server
DB/2
COBASE(北大、人大与中软)
PBASE(中国人民大学)
EasyBase(中国人民大学)
DM/2(华中理工大学)
OpenBase(东大阿尔派)

面向对象数据模型

面向对象关系模型(object oriented data model)

对象关系数据模型

对象关系数据模型(object relational data model)

半结构化数据模型

半结构化数据模型(semistructrue data model)

你可能感兴趣的:(数据库,数据库)