关系数据回顾
参考中科大金培权ppt
数据库体系结构
ANSI/SPARC体系结构——三级模式结构+两级映像
数据库模式的概念
- 模式:数据库中全体数据的逻辑结构和特征的描述(不涉及到具体的值)
- 实例:模式的一个具体值
- 三级模式结构:
- 二级映像和数据独立性
二级映像实现三级模式结构间的联系和转换,使用户可以逻辑地处理数据,不必关心数据的底层表示方式和存储方式
外模式/模式映像
模式/内模式映像
- SQL数据库体系结构
关系数据模型
数据模型是描述现实世界实体、实体间联系以及数据语义和一致性约束的模型
数据模型的分类
目的分类
- 概念数据模型:按用户的观点建模,应用于数据库的概念设计
- 结构数据模型:按计算机系统的观点建模,面向数据库的逻辑结构
数据模型实例
- 现实世界(客户存款)
- 概念模型(E-R模型)
- 机器世界(数据模型(关系模型))
数据模型要素
- 数据结构
- 数据操作
- 数据的完整性约束(数据及数据间联系应具有的制约和依赖规则)
关系模型
- 结构:
术语
- 属性:二维表格的每一列称为关系的一个属性
- 度:列的数目
- 元组:每一行称为关系的一个元组
- 势:元组的数目
- 域:一组具有相同数据类型的值的集合,每个属性有一个域
- 关系:元组的集合
- 超码:在关系中能唯一标识一个元组的属性集称为关系模式的超码
- 候选码:不含多余属性的超码
- 主码:用户选择元组标识的一个候选码称为主码(注意不一定是主属性)
- 替换码:除主码的其余的候选码
关系的性质
一个关系是一个规范的二维表格
- 属性值不可分解(不允许表中有表)
- 元组不可重复(因此一定存在至少一个候选码)
- 没有行序,即元组之间无序
- 没有列序,即属性之间无序
关系模式与关系数据库
- 关系模式:关系的逻辑结构和特征的描述,对应表头,通常由属性集和各属性域表示(不关心域时可以去除)
- 关系:关系模式的实例,元组的集合(二维表)
- 关系数据库模式:关系模式的集合
- 关系数据库:关系数据库模式的实例
关系模式的形式化定义
- 定义:R(U,D,dom,F)
其中R为关系模式名,U是一个属性集,D是域,dom是属性到域的映射集合,F是属性间的依赖关系
函数依赖
R(U,D,dom,F)中的F在实际中一般只考虑函数依赖
- 定义:函数依赖是指一个关系模式中一个属性集和另一个属性集间的多对一关系
- 例子:SC(S#,C#,Score)中给定的S#值和C#值,只有一个Score对应;反过来可以存在多个S#和C#它们对应的Score值相等
- 形式化定义:
关系模型的形式化定义
- 数据结构:关系,数据库中全部数据及数据间联系都以关系来表示
- 数据操作:关系运算(关系代数、关系演算)
- 数据的完整性约束:关系模型的三类完整性规则
关系代数
操作 | 并 | 交 | 差 | 笛卡尔积 | 选择 | 投影 | 联接 | 除 | 重命名 | 赋值 |
---|---|---|---|---|---|---|---|---|---|---|
数学表达 | ∨ \lor ∨ | ∧ \land ∧ | − - − | × | σ \sigma σ | π \pi π | ⋈ \Join ⋈ | ÷ | ρ x ( E ) \rho_x(E) ρx(E) | ← \gets ← |
英文表达 | Union | Intersect | Minus | Times | Where | All but… | Join | Divideby |
- 其中笛卡尔乘积为
- 联接有三种方式
- 关系代数具有封闭性:任何关系代数操作的结果仍然是一个关系
关系模型的三类完整性规则
- 实体完整性:主码不为空
- 参照完整性:R的任一外码值必须等于被参照关系S中所参照的候选码的某个值,否则为空
- 用户自定义完整性:具体应用的特殊语义要求
SQL
SQL基本组成
DDL | 数据定义语言 | 模式操作 | Create(Alert、Drop) Table |
DML | 数据修改语言 | 记录操作 | Insert |
DCL | 数据控制语言 | 权限操作 | Grant |