理论 [ 数据库设计 ]

关系模式设计问题:


信息的不可表示问题

  • 插入异常:如果没有职工具有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

模式分解

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

判断无损连接方法:

无损连接分解方法:

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

判断是否保持函数依赖





数据库表的设计


                                             

                       




  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值