数据库系统
1、三级模式-两层映射
三级模式
- 外模式(用户模式,视图级)—— 逻辑 | 是用户与数据库系统的接口,是用户用到的那部分数据的描述
- 内模式(存储模式,文件级)—— 数据的存储 | 是数据物理结构和存储方式的描述
- 概念模式(模式,表级) —— 反映数据库的结构及其联系 | 数据库中全部数据的逻辑结构和特征的描述
两层映射
- 模式/内模式映射 —— 保证数据的物理独立性
- 外模式/模式映射 —— 保证数据的逻辑独立性
数据库设计过程
2、E-R模型
E-R图中主要构件
构件 | 说明 |
---|---|
矩形 | 表示实体集 |
双边矩形 | 表示弱实体集 |
菱形 | 表示联系集 |
双边菱形 | 表示弱实体集对应的标识性联系 |
椭圆 | 表示属性 |
线段 | 属性与实体集连接、实体集与联系集连接 |
双椭圆 | 表示多值属性 |
虚椭圆 | 表示派生属性 |
双实线 | 表示一个实体全部参与到联系集中 |
E-R图向关系模型转换的基本方法
1、一个实体转换为一个关系模式,实体的属性就是关系的属性
2、如果是多个实体之间的多对多的联系,那么这个联系也要转换为一个独立的关系模式,且该关系模式的属性由各实体的关键字和该联系自身的属性组成,关键字由各实体的关键字组成
3、一对一联系,可将联系合并到任意一端实体关系模式中
4、一对多联系,可将联系合并到 多 端实体关系模式中
3、关系代数
- 并:R∪S={t|t∈R∨t∈S}
- 交:R∩S={t|t∈R∧t∈S}
- 差:R-S={t|t∈R∧t∉S}
- 笛卡儿积:R×S={(t_r t_s ) ?|t_r∈R?t_s∈S},R×S列=A列+B列,R×S行=A行×B行
- 投影:选择列 πA(R)=…
- 选择:选择行
- 连接:选择相同属性的行,去掉重复列
- θ连接,从R与S的笛卡尔积中选取属性间满足一定条件的元组
- 等值连接,当θ为“=”时,称之为等值连接
- 自然连接,一种特殊的等值连接,它要求两个关系中进行比较的分量必须是相同的属性组,并且在结果集中将重复的属性列去掉
4、规范化理论
规范化理论
函数依赖:数据依赖指数据之间存在的各种联系和约束
键
- 候选键 —— 唯一标识元组,且无冗余
- 主键 —— 候选键任选一个
- 外键 —— 其他关系的主键
求候选码
关系模式码的确定,设关系模式R<U,F>
首先应该找出F中所有的决定因素,即找出出现在函数依赖规则中“→”左边的所有属性,组成集合U1;
再从U1中找出一个属性或属性组K,运用Armstrong公理系统及推论1,使得K→U,而K真子集K′→U不成立;这样就得到了关系模式R的一个候选码,找遍U1属性的所有组合,重复过程(2),最终得到关系模式R的所有候选码
范式
- 1NF —— 所有属性都是不可分的基本数据项
- 2NF —— 所有非主属性完全依赖主键(不存在部分依赖)
- 3NF —— 所有非主属性不依赖于其他非主属性(消除传递依赖)
- BCNF —— 每个属性都不部分依赖于候选键也不传递依赖于候选键(完全依赖主键)
模式分解
- 保持函数依赖分解(子模式里满足依赖关系)
- 无损分解(可以还原)
- 有损分解(不可还原)
SQL语言
CURD,建表
……
并发控制
事务
- 原子性
- 一致性
- 隔离性
- 持续性
并发产生的问题
- 丢失修改
- 不可重复读
- 读脏数据
封锁
- 排它锁(X锁):又称写锁。若事务T对数据对象A加上X锁,只允许T读取和修改A,其他事务不能再对A加任何锁,直到T释放A上的锁
- 共享锁(S锁):又称读锁。若事务T对数据对象加上S锁,只允许T读取A但不能修改,其他事务只能再对A加S锁,而不能加X锁,直到A上所有的S锁解除。保证了其他事务可以读A,但在T释放A上的S锁之前不能对A进行任何修改
死锁
……
完整性约束
- 实体完整性约束 —— 主键非空,唯一
- 参照完整性约束 —— 外键为空或者有一个正确的索引
- 用户自定义完整性约束 ——
- 触发器 —— 脚本