三级模式
外模式:视图级,用户模式
模式:概念模式,表级,逻辑结构
内模式:文件级,存储模式
逻辑独立性:数据的逻辑结构发生变化后,用户程序也可以不修改,但是为了保证应用程序能够正确执行,需要修改外模式和概念模式之间的映像
物理独立性:当数据的物理结构发生改变后,应用程序不用改变,但是为了保证应用程序能够正确执行,需要修改概念模式和内模式之间的映像
数据库设计
需求分析
当前和未来应用的数据要求,数据处理需求,产物有:数据流图,数据字典,需求说明书
概念结构设计
ER模型
ER图
逻辑结构设计
转换规则,规范化理论,生成关系模式
关系模式
例:学生(学号,姓名,)
候选键:唯一标识元组,且无冗余,学号是候选键
主属性:组成候选码的属性就是主属性,其他的就是非主属性,学号是主属性
概念设计阶段的ER图转逻辑设计阶段的关系模式:
物理设计:聚簇索引
关系代数
笛卡尔积
投影
选择
自然连接:去掉重复的列
性能优:有选择条件要先选择,先对两边的表做条件选择,再做笛卡尔积
规范化理论
函数依赖:由x可以推出y x->y
传递函数依赖:x->y y->z x->z
伪传递:x->y,wy->z,xw-z
增广律:x->y xz->yz
合并规则:x->y,x-z x->yz
候选键
图示法求候选键
找入度为0的属性,以该属性为起点
可以代入,看入度是否为0,以当前属性为起点,是否能推出其他所有的属性
候选键有多个的
范式判断
未到第三范式:3NF 存在
- 数据冗余
- 修改异常
- 插入异常
- 删除异常
第一范式:所有域只包含原子值,即每个属性都是不可再分的数据项
第二范式:且每一个非主属性完全依赖候选键 单属性至少满足2NF
第三范式:没有非主属性传递依赖于候选键
BC范式:BCNF:
没有非主属性,至少满足3NF
模式分解
保持函数依赖分解:将关系模式几个小关系模式后,函数依赖和未拆解之前要一样
无损连接分解:指将一个关系模式分解成若干关系模式后,通过自然连接等运算仍能还原到原来的关系模式
事务
ACID
A:Atomicity 原子性 ,要么都做,要么都不做
C:Consistency 一致性,事务执行的结果必须保证数据库从一个一致性状态变到另一个一致性状态
转账:A转100给B,各自的钱状态A减100,B加100
I:Isolation 隔离性,多个事务并发执行时,互不影响
D:Durability,一量事务成功提交,即使数据库崩溃,其对数据库的更新操作也永久有效 binlog