数据库--关系数据库重点知识总结(一)


一、基础知识点

有些基础概念是苦涩难懂的,但是你要尽量耐下心来过一遍,了解其中的含义,再结合相关练习题进行理解。

1. 关系模式定义

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

2. 第一范式

在这里插入图片描述

3. 数据库设计原则

  • 规范化
    在这里插入图片描述

4. 逻辑设计问题⭐

在这里插入图片描述

5. 关系模式中存在的问题

  • 数据冗余大
    在这里插入图片描述
    在这里插入图片描述
  • 更新异常
    在这里插入图片描述
    在这里插入图片描述
  • 插入异常
    在这里插入图片描述
    在这里插入图片描述
  • 删除异常
    在这里插入图片描述
    在这里插入图片描述
  • 结论
    在这里插入图片描述

6. 规范性设计

在这里插入图片描述
在这里插入图片描述

7. 数据依赖

在这里插入图片描述

  • 函数依赖分类
  • 函数依赖
    • 平凡/非平凡函数依赖
    • 完全/部分函数依赖
    • 传递函数依赖
  • 多值依赖
  • 连接依赖
  • 函数依赖
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

在学生表(学号,姓名,年级)中,(学号,姓名)可以推出学号和姓名其中的任何一个,这就是平凡函数依赖。直白点说,就是只要Y是X的子集,Y就依赖于X。

在学生表(学号,姓名,年级)中,通过(学号,姓名)可以推出这个学生所在的年级,但年级不是(学号,姓名)的子集,这是非平凡函数依赖.((学号,姓名)就是一个x,学号或者姓名就是一个x’)。

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

8. 键的定义

  • 候选键
    在这里插入图片描述
    在这里插入图片描述

  • 主键
    在这里插入图片描述

  • 外键
    在这里插入图片描述
    在这里插入图片描述

9. 范式⭐⭐⭐

在这里插入图片描述
在这里插入图片描述

  • 第一范式(1NF)
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
  • 第二范式(2NF)
    在这里插入图片描述
    在这里插入图片描述

因为本例{S#,C#}中的S#也可以决定SD,Sloc,Sloc,故{SD,Sloc}是部分依赖于{S#,C#}

在这里插入图片描述
在这里插入图片描述

  • 第三范式(3NF)
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
  • BCNF
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
  • 小结
    在这里插入图片描述
    在这里插入图片描述

二、习题巩固

  1. 将非1NF转换为1NF
    在这里插入图片描述
  2. 请简述满足1NF,2NF和3NF的基本条件。并完成下题:某信息一览表如下,其是否满足3NF,若不满足请将其化为符合3NF的关系。
    在这里插入图片描述

第一范式的关系应满足的基本条件是元组中的每一个分量都必须是不可分割的数据项。
第二范式,指的是这种关系不仅满足第一范式,而且所有非主属性完全依赖于其主码。
第三范式,指的是这种关系不仅满足第二范式,而且它的任何一个非主属性都不传递依赖于任何主关键字。

在这里插入图片描述

  1. 在关系模式R(A,B,C,D)中存在函数依赖集合FD={D->A, BC->D}
  1. 指出该关系模式的码、主属性、非主属性。
  2. 该关系模式属于几范式?
  3. 将该关系模式规范化为BCNF范式。
  • 参考答案
  1. 主码:BC
    主属性:B,C
    非主属性:D,A
  2. 二范式【在该题中存在函数的传递依赖,故不可能属于第三范式,第二范式:每一个非主属性都完全函数依赖于R的码
  3. R1(BC,D)
    R2(D,A)
  1. 关系模式R(A,B,C,D)中,存在函数依赖关系{A→B,A→C,A→D,(B,C)→A},则侯选码是 A和(B,C) ,R∈ 2 NF
    在这里插入图片描述
  2. 设有关系R和函数依赖F: R(A,B,C,D,E),F = { ABC→DE,BC→D,D→E }。
    试求下列问题:

(1)关系R的侯选码是什么?R属于第几范式?并说明理由。
(2)如果关系R不属于BCNF,请将关系R逐步分解为BCNF。

  • 参考答案
    (1)关系R的候选码是(A,B,C)R∈1NF,因为R中存在非主属性D,E对候选码(A,B,C)的部分函数依赖。【2NF:每一个非主属性都完全函数依赖于R的码
    (2)首先消除部分函数依赖:
    将关系分解为:
    R1(ABC) (A,B,C)为候选码,R1中不存在非平凡的函数依赖
    R2(BC,D,E),(B,C)为候选码,R2的函数依赖集为:F2={(B,C)→D,D→E}
    在关系R2中存在非主属性E对候选码(B,C)的传递函数依赖,所以将R2进一步分解:
    R21(BC,D) ,(B,C)为候选码,R21的函数依赖集为:F21 = { (B,C)→D }
    R22(D,E) ,D为候选码,R22的函数依赖集为:F22 = { D→E }
    在R1中已不存在非平凡的函数依赖,在R21、R22关系模式中函数依赖的决定因素均为候选码,所以上述三个关系模式均是BCNF。
  1. 关系规范化中的删除异常是指(不该删除的数据被删除)

  2. 在关系A(S,SN,D)和B(D,CN,NM)中,A的主码是S,B的主码是D,则D在A中称为 外码

  3. 数据库系统中最重要的软件是 数据库管理系统(或DBMS) ,最重要的用户是 数据库管理员(或DBA)

  4. 数据库设计分为以下六个设计阶段:需求分析阶段概念结构设计阶段逻辑结构设计阶段物理结构设计阶段数据库实施阶段数据库运行和维护阶段

  5. 已知关系R(A,B,C,D)和R上的函数依赖集F={A→CD,C→B},则
    R∈ 2 NF

  6. 设有关系STUDENT(S#,SNAME,SDEPT,MNAME,CNAME,GRADE),(S#,CNAME)为候选码,设关系中有如下函数依赖:
    (S#,CNAME)→SNAME,SDEPT,MNAME
    S#→SNAME,SDEPT,MNAME
    (S#,CNAME)→GRADE
    SDEPT→MNAME

    试求下列问题:

(1) 关系STUDENT属于第几范式?并说明理由。
(2) 如果关系STUDENT不属于BCNF,请将关系STUDENT逐步分解为BCNF。

  • 参考答案
    (1)关系STUDENT是1NF,因为F中存在非主属性SNAME,SDEPT,MNAME对侯选(S#,CNAME)的部分函数依赖。【(S#,CNAME)→SNAME,SDEPT,MNAME;S#→SNAME,SDEPT,MNAME】
    (2)首先消除部分函数依赖(S#,CNAME)→SNAME,SDEPT,MNAME将关系分解为: R1(S#,SNAME,SDEPT,MNAME),S#为候选码
    R1的函数依赖集为:F1 = { S#→SNAME,SDEPT,MNAME,SDEPT→MNAME}
    R2(S#,CNAME,GRADE),S#为候选码,
    R2的函数依赖集为:F2={(S#,CNAME)→GRADE}
    在关系R1中存在非主属性MNAME对候选码S#的传递函数依赖S#→MNAME,所以将R1进一步分解:
    R11(S#,SNAME,SDEPT) ,S#为候选码,
    R11的函数依赖集为:F11 = { S#→SNAME,SDEPT}
    R12(SDEPT,MNAME) ,SDEPT为候选码,
    R12的函数依赖集为:F12 = { SDEPT→MNAME}
    在R2、R11、R12关系模式中函数依赖都是非平凡的,并且决定因素均是候选码,所以上述三个关系模式均是BCNF。
    最终分解:
    R11(S#,SNAME,SDEPT)
    R12(SDEPT,MNAME)
    R2(S#,CNAME,GRADE)
  1. 在关系A(S,SN,D)和B(D,CN,NM)中,A的主码是S,B的主码是D,则D在S中称为 外码

  2. 已知关系R(A,B,C,D)和R上的函数依赖集F={A→CD,C→B},R属于第 2 范式

  3. 设有关系R和函数依赖F: R(W,X,Y,Z),F = { X→Z,WX→Y }。试求下列问题:

(1)关系R属于第几范式?
(2)如果关系R不属于BCNF,请将关系R逐步分解为BCNF。

  • 参考答案
    (1)R是1NF。侯选码为WX,则Y,Z为非主属性,又由于X→Z,因此F 中存在非主属性对侯选码的部分函数依赖
    (2)R1(WX,Y),F1 = { WX→Y }
    R2(X,Z),F2 = { X→Z }
    消除了非主属性对码的部分函数依赖。
    F1和F2中的函数依赖都是非平凡的,并且决定因素是候选码,所以上述关系模式是BCNF。
  1. 设某商业集团数据库中有一关系模式R如下:
    R (商店编号,商品编号,数量,部门编号,负责人)
    如果规定:
    (1)每个商店的每种商品只在一个部门销售;
    (2)每个商店的每个部门只有一个负责人;
    (3)每个商店的每种商品只有一个库存数量。
    试回答下列问题:

(1)根据上述规定,写出关系模式R的基本函数依赖;

(商店编号,商品编号) →部门编号
(商店编号,部门编号) →负责人
(商店编号,商品编号) →数量。

(2)找出关系模式R的候选码;

R的候选码是 (商店编号,商品编号)

(3)试问关系模式R最高已经达到第几范式?为什么?

R最高达到2NF,因为R中存在着非主属性“负责人”对候选码 (商店编号、商品编号)的传递函数依赖,所以R属于2NF,但R不属于3NF。

(4)如果R不属于3NF,请将R分解成3NF模式集。

将R分解成:
R1 (商店编号,商品编号,数量,部门编号) (2分)
R2 (商店编号,部门编号,负责人) (2分)
  1. 现有如下关系模式:借阅(图书编号,书名,作者名,出版社,读者编号,读者姓名,借阅日期,归还日期),基本函数依赖集F={图书编号→(书名,作者名,出版社),读者编号→读者姓名,(图书编号,读者编号,借阅日期)→归还日期}

(1)读者编号是候选码吗?(2分)
(2)写出该关系模式的主码。(2分)
(3)该关系模式中是否存在非主属性对码的部分函数依赖?如果存在,请写出一个。(2分)
(4)该关系模式满足第几范式?并说明理由。(4分)

(1)不是
(2)(图书编号,读者编号,借阅日期)
(3)存在(1分)。
(图书编号,读者编号,借阅日期)→书名、
(图书编号,读者编号,借阅日期)→作者名、
(图书编号,读者编号,借阅日期)→出版社、
(图书编号,读者编号,借阅日期)→读者姓名(1分,四个函数依赖任选一个即可)
(4)1NF。因为存在非主属性对码的部分函数依赖。


Guess you like

Origin blog.csdn.net/HG0724/article/details/121151996