层次模型
tree
- Record and field
- Parent-Child relationship(PCR)
每个记录类型只有一个父节点
无法表达多对多信息
采用虚记录解决多对多
网状数据模型
系:主记录->属记录
主记录和属记录都可以有好多个
关系模型
表:table/relation
-
拥有更高的抽象级别,可以用数学里面集合论的知识研究
-
屏蔽底层编程细节,易于理解
-
可以引入代数系统
-
非过程化查询语言
-
软链接,逻辑指针
-
属性和域
- 原子数据:要求表的每个属性是原子的,不能再分。不允许出现表中套表。(一范式)
- 允许空值
- 关系(表)和元组
属性的个数称作目
属性,列,字段
元组,行,记录
主键:一组属性
- unique
- not null
- 可以决定其他元组的其他属性
- 属性组的子集不满足上述条件。如果不满足这个条件就称作超键。
- 如果多个属性组满足上述条件,我们可以指定一个为主键,其他的为候补键
- 如果这个属性组就是元组本身,称这个属性组为全键
外键:一组属性
- 来自其他关系,并且是其他关系的主键。逻辑指针
- 且必须在另一个表里面存在这个主键
域完整性约束:每个元组的每个属性的值都必须满足值域
实体完整性约束:主键不允许为空
引用完整性约束:外键的值必须在所引用的表中存在