您的位置:首页 > 数据库

理论 [ 数据库设计 ]

2011-07-28 11:36 218 查看

关系模式设计问题:





信息的不可表示问题
插入异常:如果没有职工具有8级工资,则8级工资的工资数额就难以插入
删除异常:如果仅有职工赵明具有4级工资,如果将赵明删除,则有关4级工资的工资数额信息也随之删除了

信息的冗余问题
数据冗余:职工很多,工资级别有限,每一级别的工资数额反复存储多次
更新异常:如果将5级工资的工资数额调为620,则需要找到每个具有5级工资的职工,逐一修改
函数依赖

X函数决定Y”,或“Y函数依赖于X”,记作X->Y,称X为决定因素
如S# -> SN, (S#,C#)-> G
如果X -> Y,但Y 不包含于 X,则称其为非平凡的函数依赖,否则称为平凡的函数依赖
如(S#,SN)-> SN是平凡的函数依赖
在R(U)中,如果X->Y,且对于任意X的真子集X′,都有X′->Y,则称Y对X完全函数依赖,否则为部分函数依赖
传递函数依赖 S# ->SD,SD -> DEAN

范式

范式是对关系的不同数据依赖程度的要求
通过模式分解将一个低级范式转换为若干个高级范式的过程称作规范化(概念的纯粹化)
1NF:关系中每一分量不可再分。即不能以集合、序列等作为属性值





2NF:若R属于1NF,且每个非主属性完全依赖于码,则称R属于2NF;消除非主属性对码的部分依赖


分解为


3NF: 消除非主属性对码的传递依赖
S_SD 不属于3NF,因为有S#->SD,SD->DEAN
BCNF:

(S# , C# , ORDER),表示学生选修课程的名次

n被F所逻辑蕴涵的函数依赖的全体所构成的集合称作F的闭包,记作F+ = {X->Y | F├ X->Y}

Armstrong公理

X,Y,Z是属性集,

自反律(reflexivity):若Y 包含于 X, 则X -> Y
增广律(augmentation):若X -> Y ,则XZ -> YZ传递律(transitivity):若X -> Y,Y -> Z,则X -> Z 合并律(union rule):若X -> Y,X -> Z,则X ®->YZ分解律(decomposition rule):若X -> YZ ,则X -> Y,X ->Z伪传递律(pseudotransitivityrule): 若X -> Y,WY-> Z,则WX -> Z
【例】 属性集U={A,B,C}, 函数依赖集F={A ® B,B ® C}

A+ = ABC
B+ = BC
C+ = C
【例】 R<U, F >, U = (A, B, C, G, H, I), F = {A->B, A->C, CG->H, CG->I, B->H},计算 (AG)F+ 所用依赖
A->B AGB
A->C AGBC
CG->H AGBCH
CG->I AGBCHI
= AGBCH I

模式分解

分解的基本代数运算投影
自然连接
分解的目标无损连接分解
保持函数依赖
达到更高级范式



判断无损连接方法:



无损连接分解方法:

关系模式R(U)的分解r={R1,R2},则r是一个无损连接分解的充要条件是 R1∩R2->R1-R2(或R1∩R2->R2-R1)成立


判断是否保持函数依赖



数据库表的设计















内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: