• 数据库系统与应用复习——第六章关系数据理论


    一、关系模式的设计问题

            关系数据库是以关系模型为基础的数据库。

            一个关系既可以用来描述一个实体及其属性,也可以用来描述实体间的联系。

            关系实质上就是一张二维表,表的行称为元组,列称为属性。

            关系模式是用来定义关系的,表的结构,一个关系数据库包含一组关系

            数据库的模式(数据库的结构):二维表结构体的集合。

            关系数据库设计理论:数据依赖(包括函数依赖与多值依赖)、范式、模式设计方法。

            关系模式的存储异常:

    •                 数据冗余:重复出现, 好的关系模式的判断标准
    •                 更新异常:更换一个值要修改很多
    •                 插入异常:没有元组,无法插入信息
    •                 删除异常:不该删掉的也删掉了

    一个好的模式应当不会发生插入异常、删除异常和更新异常,数据冗余应当尽可能的少。

    二、函数依赖(FD)

    1、函数依赖的定义:设有关系模式R(A1,A2,...An)或简记为R(U),X,Y是U的子集,r是R的任一具体关系,如果对r的任意两个元组t1,t2,由t1[X]=t2[X]导致t1[Y]=t2[Y],则称X函数决定Y,或Y函数依赖于X,记为X→Y。X→Y为模式R的一个函数依赖。(若在表中的第t1行,和第t2行上的X值相等,那么必有t1行和t2行上的Y值也相等,这就是说Y函数依赖于X)

    设有函数依赖W→A,若存在XW(真子集),有X→A成立,那么称W→A是局部依赖,否则就称W→A是完全函数依赖。

    • 完全函数依赖:与局部依赖相对,W是决定A的最小集合
    • 部分函数依赖:仍然存在W的子集能够完全函数决定A(例:若X→Y,但Y不完全函数依赖于X,Y对X部分函数依赖)
    • 传递依赖:在关系模式中,如果Y→X,X→A,且X不决定Y和A不属于X,那么Y→A是传递依赖。

    2、键和FD的关系

    键:唯一标识实体的属性集

    候选键:指可以唯一决定关系模式R中某元组值且不含有多余属性的属性集。

    非主属性(非键属性):关系模式R中不包含在任何建中的属性。

    主属性:包含在任何一个候选键中的属性,即所有候选键中都要有

    关系:

    设关系模式R(A1,A2...An),F是R上的函数依赖集,X是R的一个子集

    (1)X→A1A2...An∈F+ (它的意思是X能够决定唯一的一个元组)

    (2)不存在X的真子集Y,使得Y也能决定唯一的一个元组,则X就是R的一个候选键。(X能决定唯一的一个元组但又没有多余的属性集)

    三、关系模式的范式

    种类:

    • 1NF:原子性,R中所有的属性都是不可分基本数据项(不满足1NF,则不能称为关系模式)
    • 2NF:R\epsilon1NF,且不存在非主属性对于候选码的部分依赖
    • 3NF:R\epsilon2NF,且不存在非主属性对于候选码的传递依赖
    • BCNF:R\epsilon1NF,且不存在所有属性对于候选码的部分与传递依赖(每个决定因素都包含码)
    • 4NF:R\epsilonBCNF,且不存在非平凡非函数依赖的多值依赖

    1NF>2NF>3NF>BCNF>4NF>5NF

    规范化:模式分解,从低级->高级的操作(概念的单一化)

    模式的彻底分解(函数依赖范围内):所有关系模式都属于BCNF

    全码关系一定是BCNF

    二元关系一定是4NF

    若表中的属性全都不是非主属性,它一定是3NF,但不一定是BCNF

    四、函数依赖(FD)的公理系统

    1、函数依赖的逻辑蕴涵

    设F是关系模式R的一个函数依赖集,X,Y是R的属性子集

    F逻辑蕴涵X→Y:能从F中的函数依赖能够推出X→Y

    函数依赖的闭包F+:被F逻辑蕴涵的函数依赖的全体构成的集合。

    2、设有关系模式R(U),X,Y,Z,W均是U的子集,F是R上只涉及到U中属性的函数依赖集

    Armstrong公理系统:

    • 自反律:如果Y\epsilonX\epsilonU,则X→Y在R上成立。   
    • 增广律:如果X→Y为F所蕴涵,ZU,则XZ→YZ在R上成立。(XZ表示X∪Z,下同)
    • 传递律:如果X→Y和Y→Z在R上成立,则X→Z在R上成立。

    进而推出:

    • 合并律:如果X→Y和X→Z成立,那么X→YZ成立。
    • 伪传递律:如果X→Y和WY→Z成立,那么WX→Z成立。
    • 分解律:如果X→Y和ZY成立,那么X→Z成立。

    习题:(解题过程见复习笔记)

    1)有关系模式R(U,F),属性集合U ={A,B,C,D,E}, 函数依赖集合F = {A->BC, B->D, CD->E, E->B},请回答如下的问题:

            (1) R的候选码是:

            (2) R的主码是:

            (3) R最高属于第几范式? 说明理由;

            (4) R是否为第三范式 , 解释原因;

            (5) 请分解R为符合第三范式的关系模式集合,并给出每个关系模式的主码。

    2)设关系模式R(S#,C#,GRADE,TNAME,TADDR),其属性分别表示学生学号、选修课程的编号,成绩、任课教师地址等意义。如果规定,每个学生每学一门课只有一个成绩;每门课只有一个教师任教;每个教师只有一个地址(此处不允许教师同名同姓)。

            (1)试写出关系模式R基本的函数依赖和候选键。

            (2)试把R分解成2NF模式集并说明理由。

            (3)试把R分解成3NF模式集,并说明理由。

    3)假设关系模式R如下:R ( Sno,Sdept,Sloc,Cno,Grade ) 其中Sno为学号,Sdept为学生所在系,Sloc为学生的住处,Cno为学生所选修课程号,Grade为成绩。规定一个系有若干名学生,但一个学生只属于一个系;一个学生可以选修多门课,每门课有若干名学生选修;每个学生学习每门课只有一个成绩;每个系的学生住在同一个地方。

            (1).写出关系模式R的基本函数依赖 ;确定R的码,并求解属性组(Sno,Cno)的闭包。

            (2).分析关系模式R最高达到了几范式,为什么?如果R不属于2NF,请将R分解到2NF。

          (3)进行分解,使其满足3NF。

  • 相关阅读:
    .netcore+vue新生分班系统的设计与实现
    Pytorch分布式训练,其他GPU进程占用GPU0的原因
    matplotlib——折线图(python)
    Linux进程间通信
    虚拟机安装mysql步骤
    SwiftUI 布局大全之探索 SwiftUI 布局协议——创建自定义布局
    我的创作纪念日
    QT开发使用的技巧、遇到的坑
    SpringBoot二手车管理系统
    vue 克隆代码块
  • 原文地址:https://blog.csdn.net/m0_54674275/article/details/126399883