第八章 关系数据理论
lix_uan 94 3

为什么引入范式

  • 数据冗余
  • 更新异常
  • 插入异常
  • 删除异常

范式分类

  • 设计关系数据库时,遵从不同的规范要求,这些不同的规范要求被称为不同的范式
  • 各种范式呈递次规范,越高的范式数据库冗余越小
  • 目前关系数据库有六种范式:1NF、2NF、3NF、BCNF、4NF、5NF
  • 一般来说,数据库只需要满足第三范式就行了

依赖

1

  • 完全函数依赖:学号+课号 可以决定 成绩 但只有学号or只有课号无法决定成绩
  • 部分函数依赖:只有学号就能决定姓名(课号是冗余的)

候选码

  • 可以推出所有属性
  • 如何选出候选码: 1.只出现在左边的一定是候选码 2.只出现在右边的一定不是候选码 3.左右都出现的不一定是候选码 4.左右都不出现的一定是候选码 2

超码

  • 能表示出所有属性的集合,比如(BDA),(BDC),(BDE),BDCA,BDEA,ABCDE
  • 候选码是最小的超码
  • 主码:从候选码里面任意挑出一个,作为主码
  • 主属性:包含在所有候选码的属性,入ABCDE
  • 非主属性:不包含在候选码中的属性,上题为G
  • 全码:所有的属性都是主码

三大范式

  • 1NF:确保每列保持原子性(属性不可再分
  • 2NF:确保表中的每列都和主键相关(消除冗余
  • 3NF:确保每列都和主键列直接相关,而不是间接相关(消除函数传递依赖

1NF

4

  • 地址可再分,违反了第一范式

2NF

3

  • 一个表中只能保存一种数据,不可以把多种数据保存在同一张数据库表中
  • 该表商品名称、单位、商品价格不与该表的主键相关,而仅与商品编号相关,违反了第二范式的设计原则 5)6

3NF

-在设计一个订单数据表的时候,可以将客户编号作为一个外键和订单表建立相应的关系,而不可以在订单表中添加关于客户其它信息(比如姓名、所属公司)的字段 7

公理系统

1

求最小函数的依赖集

  • 依赖:指关系中一个或一组属性的值可以决定其它属性的值,如A->B就是一个依赖
  • 求最小依赖集: 1.拆右边为多个元素的 如A->BC 拆为 A->B和A->C 2.除去当前元素,求它的闭包,把集合里面所有元素都弄完 3.左边最小化(通过遮住元素来看能不能推出其它元素)
    例:U=(A,B,C,D,E,G)   F={BG->C,BD->E,DG->C,ADG->BC,AG->B,B->D},求F最小依赖集
    

第一步:右边单一化 F1={BG->C,BD->E,DG->C,ADG->B,ADG->C,AG->B,B->D}

第二步:逐个求,在去掉它的F中求闭包,如果包含右边属性,则表示这个函数依赖要去掉。 BG->C:求(BG)+=BCDEG,包含右边属性C,所以去掉。 BD->E:(BD)+=BD,不包含右边E,所以不用去掉。 DG->C:(DG)+=DG,也不用去掉。 ADG->B:(ADG)+=U,包含B,所以去掉。 ADG->C:(ADG)+包含C,去掉。(在这里,求闭包的时候,不能再用前面去掉的函数依赖了,所以如果从后往前判断,可能不用去掉ADG->B,所以最小依赖集不唯一,写出一个即可。) AG->B:(AG)+=AG,不用去掉。 B->D:(B)+=B,不用去掉。 所以F2={BD->E,DG->C,AG->B,B->D}

第三步:对左边属性单一化,判断冗余,代替。 BD->E:B->E,求(B)+=BD,包含D,所以D冗余。 D->E,求(D)+=D,所以B不冗余。所以用B->E代替BD->E。 DG->C:D->C,(D)+=D,所以G不冗余。G->C,(G)+=G,所以D不冗余。 AG->B:A->B,(A)+=A,所以G不冗余。 G->B,(G)+=G,所以A不冗余。 所以Fm={B->E,DG->C,AG->B,B->D}。


### 模式分解
- **准则**:无损连接、保持函数依赖
- **无损**:分解后再次连接,和分解之前一样
- **依赖**:依赖不变

已知R(ABCDEGH),F={A->D,E->D,D->B,BC->D,DC->A},求保持函数依赖的3NF的分解

1.求出最小函数依赖集 2.把不在F里面的属性都找出来,单独分一类 3.把每个依赖左边相同的分成一类,没有一样的,那么就把A->D改为{AD},如果一样{A->B,A->C},那么就改为{ABC} 4.如果候选码没有出现在里面,把任意一个候选码作为一类

最小函数依赖集Fmin={A->D,E->D,D->B,BC->D,DC->A GH没在F里面,单独一类{GH} 候选码CE

{AD}{ED}{DB}{BCD}{DCA }{CE}{GH} ```

预览图
评论区

索引目录