【数据库】数据库设计
设计 :table view
开发 :SQL 数据操作(select update insert delete grant revoke)
软件系统 子系统独立 数据共享
设计 理论 判断证明设计好?如果不好 变成好?
过程 需求分析 – ER – table/view 实现DDL
关系模型 实体 1、码不重复 2、主属性不能为空
参照 自定义
设计不好的后果:
1、插入异常
2、删除异常
3、数据冗余
4、修改复杂
-
R(U,F) U-属性集合 F-属性间关系集合 属性依赖关系集合
-> 函数依赖 语义(不是公理或定理) 需求规定
Y包含与X 平凡的函数 X->Y 一定成立 函数依赖的自反律
如果X->Y, Y->Z 那么 X->Z 一定成立 函数依赖的传递率
如果X->Y 成立 XZ->YZ 一定成立 函数依赖的增广率
X->Y 如果存在真子集 X1真包含于X X1->Y X-p>Y(部分函数依赖)
X1-f>Y -
函数的右边可以任意的分解与合成
-
Fmin 关系模式最小覆盖 最小函数依赖集 和 最大是等价
1、右边只包含一个属性 分解右侧
2、不存在可传递的函数依赖 消除传递
3、不存在部分函数依赖 消除部分函数依赖 -
属性闭包+ 由该属性决定的属性集合
1、将属性加入集合
2、再将当前属性能够决定的属性加入集合
3、判断是否有变化,如果变化继续迭代直到没有变化 -
根据最小覆盖 求出关系的码(U 完全函数依赖于码)
码的属性是主属性 其他是非主属性