从数据模型到分布式数据库的完整体系
用户视图,局部逻辑结构
逻辑结构,全局数据视图
物理结构,存储方式
树形结构,父子关系
结构简单,查询效率高
不能表示多对多关系
网状结构,多对多关系
能表示复杂关系
结构复杂,难以理解
二维表格,关系代数
概念简单,理论完善
目前主流数据库模型
一个二维表格
表中的一行记录
表中的一列字段
唯一标识元组
设X和Y是关系R的两个属性集合,如果对于R的任意一个可能的关系r,r中不可能存在两个元组在X上的属性值相等,而在Y上的属性值不等,则称X函数确定Y或Y函数依赖于X。
Y完全函数依赖于X,当且仅当Y函数依赖于X,但Y不函数依赖于X的任何真子集。
Y函数依赖于X,但Y也函数依赖于X的某个真子集。
如果X→Y,Y→Z,且Y不包含于X,Z不包含于Y,则称Z传递函数依赖于X。
范式是符合某一种级别的关系模式的集合,是为了消除关系中不合适的数据依赖。
关系模式R的所有属性都是不可分的基本数据项。
关系模式R∈1NF,且每一个非主属性完全函数依赖于主键。
关系模式R∈2NF,且每一个非主属性都不传递依赖于主键。
关系模式R∈1NF,且对于R的每个函数依赖X→Y,若Y不包含于X,则X必含有R的某个候选键。
关系模式R∈BCNF,且对于R的每个多值依赖X→→Y,X都含有R的某个候选键。
| 学号 | 姓名 | 系名 | 系主任 | 课程号 | 课程名 | 成绩 |
|---|---|---|---|---|---|---|
| 001 | 张三 | 计算机系 | 李教授 | C001 | 数据库 | 85 |
| 001 | 张三 | 计算机系 | 李教授 | C002 | 操作系统 | 90 |
| 学号 | 姓名 | 系号 |
|---|---|---|
| 001 | 张三 | D01 |
| 系号 | 系名 | 系主任 |
|---|---|---|
| D01 | 计算机系 | 李教授 |
| 学号 | 课程号 | 成绩 |
|---|---|---|
| 001 | C001 | 85 |
| 001 | C002 | 90 |
事务是数据库操作的基本单位,必须满足ACID四个特性。
事务是不可分割的工作单位
事务执行前后数据库保持一致状态
并发执行的事务相互隔离
已提交事务的修改永久保存
两个事务同时修改同一数据,一个事务的修改被另一个覆盖
事务内多次读取同一数据,结果不一致
读取了其他事务未提交的数据
事务内多次查询,结果集不一致
最低级别,可能出现所有并发问题
避免脏读,但可能不可重复读
避免脏读和不可重复读
最高级别,避免所有并发问题
用户感觉不到数据分布
数据复制对用户透明
数据分片对用户透明
数据位置对用户透明
按行分割表,每个分片包含表的部分行
数据量大,按某个属性值分布
按列分割表,每个分片包含表的部分列
不同应用访问不同属性
水平分片和垂直分片的组合
复杂的分布式环境
协调者询问所有参与者是否可以提交
根据参与者响应决定提交或回滚
询问是否可以提交
预提交阶段
正式提交