文档介绍:第二章数据模型
数据模型
静态特征:数据的类型、结构、联系、约束
动态特征:数据的操作、状态变化
(hierarchy)
用于描述按照层次关系组织起来的事务
记录和字段
记录:描述事务或事务间关系的命名的数据单位,也是存储的数据单位
字段:记录的构成部分(简单数据类型)
型与实例
双亲子女关系(PCR)
层次数据模型的基本关系,表示两个记录型间的1:N关系
双亲记录、子女记录
型与实例
层次数据模式
由双亲子女关系构成(树型)
除根以外,双亲唯一
虚拟记录
非层次关系的存在:
一个记录型是两个以上PCR的子女
多对多关系
多元关系
虚拟记录:用指针代替的记录
用虚拟记录表示非层次关系
层次数据的存储
存储器:线性
树的先序遍历
引起的问题:
任何记录(包括虚拟记录)有且只有一个双亲记录,根除外(增加、删除结点)
虚拟记录必须指向一个实际记录
虚拟记录不能成为根记录
GU (Get Unique)
GNP (Get Next Within parent)
GN (Get Next)
非层次数据的处理
数据独立性
记录和数据项
记录:数据存储单位,包含数据项
数据项:与层次模型不同,简单多值项(向量)复合多值项(重复组)
系(set)
两个记录型之间的1:N联系(首记录,属记录,多属系)
允许一个首记录型有多个属记录型
允许一个属记录型有多个首记录型
Link记录
特殊的系:无首系
系的实现
双向链表+首记录指针
网状模型评价
关系模型(1970年,Codd)
例:(关系模式,关系,元组,属性,属性值,键)
属性和域
关系模型中所有域都是原子属性
null的含义
关系、关系模式、元组
符号描述:R,r,D,A,t
关系的限制:1)属性不可重复;2)元组不可重复;3)元组间无序;4)属性间无序;5)每一属性不可再分
键
超键(Super Key)
候选键(Candidate Key)
主键(Primary Key)
外键(Foreign Key)
存储
索引/散列/堆文件
关系模型评价
数据结构
数据独立性
数学理论基础
语义对于数据的限制
域完整性约束
实体完整性约束
引用(参照)完整性约束
用户定义完整性约束
DML:查询、更新
关系DML:关系代数、关系演算(元组,域)
选择(σ)
σF(R) ≡{t | t∈R ∧ F(t) = true}
例
投影(π)
例
集合操作
并
R∪S ≡{t | t∈R∨t∈S}
例
差
R-S ≡{t | t∈R∨t/∈S}
交:R∩S≡R-(R-S) ≡ S-(S-R)
例
笛卡儿积
R×S ≡{t | t=( t(r) t(s) ) ∧ t(r)∈R ∧ t(s)∈S}
最小完备集{σ,π,∪,-,×}
连接
θ连接
F连接
自然连接
外连接
半连接
例
除
例