题型四

分解关系模式:考点:关系模式的基本函数依赖、关系候选键、关系属于第几范式、

关系属于第几NF、分解NF模式集(10分)

要掌握本题首先要掌握很多基本概念,我们来浅看一下吧,只讲要考的和做题会用到的、我不讲书上的官方话了,怎么好理解怎么来

一、基本概念

1、函数依赖(FD):函数依赖是同一关系内部属性与属性之间的约束关系,也就是在R(A1,A2...)中讲A1与A2的关系之类的,比如设属性学号为X、姓名为Y,由于学号可以决定姓名,则有X决定Y或者说Y依赖于X,记作:X->Y

2、FD集(函数依赖集):将多个FD放到一起即可:如函数依赖集F={A->B,B->C,A->C},有集合就会出现蕴含关系,于是F逻辑蕴含X->Y,记作:F|=X->Y

3、超键:设某一关系R的属性集为U,X是U的子集,如果U中的部分属性X可以决定U,即X->U,那么称X是R的一个超键(去掉超键中的任何一个属性,X->U依旧可能成立)

4、候选键:在超键中,如果去掉超键中的任何一个属性,X->U就会不成立(也就是该超键中无冗余属性),那么称此超键为候选键

5、L类:F={A->B,B->C,A->C}中所有->左边的属性,即A、B

6、R类:F={A->B,B->C,A->C}中所有->右边的属性,即B、C

7、最小函数依赖:题出的难点的话,会考到,但近两年大题中未见,是考点,想学的可以自己看看书,这里就不讲了

8、关系模式的分解:我们可以将R(A1,A2,A3,A4)分解成R1(A1,A2),R2(A3,A4)

9、完全函数依赖:有属性集X和属性集Y,对函数依赖X->Y,去掉X中的任何一个属性,X->Y就不成立(也就是该X中无冗余属性),那么Y完全函数依赖于X,否则称局部依赖

10、非主属性:是指关系中不包含在任何一个候选码中的属性。 例如:在关系——学生(学号,姓名,年龄,性别,班级)中,主属性、候选码是“学号”,那么其他的“姓名”、“年龄”、“性别”、“班级”就都可以称为非主属性

(类似判定候选键,都是看依赖关系中的L类是否有冗余属性)

11、大题中会出现的传递依赖:有候选键X、非主属性Y、A,若X->Y,Y->A,Y!->X,A不属于Y,那么称X->A是传递依赖(A传递依赖于X)

二、关系模式的范式

范式之间存在包含关系:1NF包含2NF包含3NF包含BCNF

1、第一范式(1NF)

只要关系模式R(A1,A2...)中所有属性A1、A2......都是不可再分的属性,都是原子属性,那么就满足第一范式

对不满足1NF的关系模式R,我们要将R变成满足1NF的关系模式:要么分解其非原子属性,要么分解其关系模式,一般题目中给你都满足1NF

2、第二范式(2NF)

若关系模式R是1NF,且每个非主属性完全函数依赖于候选键,则R为第二范式(2NF)

判断是否是2NF:将候选键(大题中常见的候选键一般包含2个属性)依次去决定每一个非主属性,判断函数依赖右侧(L类)是否有冗余属性,若没有,则符合2NF ,反之不符合

对不满足2NF的关系模式R,我们要将R变成满足2NF的关系模式:其实就是个简单分类,我们把R分解成R1、R2.......将与候选键发生冗余现象的非主属性、及其对应候选键放在R1中;将与候选键未发生冗余现象的非主属性、及其对应候选键放在R2中。我们看个例子理解一下:

例:设某关系R(客户编号,购买商品的编号,数量,生产企业的名称,企业地址),判断R是否属于2NF,如果R不属于2NF,请将R分解为第2NF模式集

解:候选键为客户编号,购买商品的编号,有(客户编号,购买商品的编号)->(生产企业的名称,企业地址),由于单个属性“购买商品的编号”就可以决定“生产企业的名称,企业地址”,所以存在非主属性局部依赖于候选键的情况,R不属于2NF

将R分解为第2NF模式集思路(卷子上不写,只在草稿纸上写)

将R分解为第2NF模式集为:

R1(购买商品的编号,生产企业的名称,企业地址)

R2(客户编号,购买商品的编号,数量)

3、第三范式(3NF)

温习一下:11、大题中会出现的传递依赖:有候选键X、非主属性Y、A,若X->Y,Y->A,Y!->X,A不属于Y,那么称X->A是传递依赖(A传递依赖于X)

若关系模式R是2NF,且每个非主属性都不传递依赖于候选键,则R为第三范式(3NF)

判断是否是3NF:就是根据定义,看在关系模式中是否存在非主属性传递依赖于候选键的现象。

对不满足3NF的关系模式R,我们要将R变成满足3NF的关系模式:

如在R(X,Y,A,B,C)中,候选键为X、非主属性为Y、A、B、C,存在X->Y,Y->A,Y!->X,A不属于Y(即X->A,A传递依赖于X),那么仅需将R分解为R1(X,Y,B,C),R2(Y,A)即可满足3NF,可以理解为R1只去掉了位于传递位置末尾的Y,R2只保留了与候选键发生传递依赖的两个非主属性Y,A

看一道例题理解一下

例:有关系模式:读者(读者号,姓名,单位,地址),其中每个单位只有一个地址,请将其规范化为3NF

解:

由题意知:读者号->单位->地址

读者1(读者号,姓名,单位)只去掉了位于传递位置末尾的地址

单位(单位,地址)只保留了与候选键发生传递依赖的两个非主属性:单位,地址

真题:

TYUT太原理工大学2022数据库大题之分解关系模式相关推荐

  1. TYUT太原理工大学2022数据库大题之概念模型设计

    题型二 题中给出对某数据库的一段描述,让画该数据库的E-R图,并在图上注明属性.联系的类型 ("并在图上注明属性.联系的类型"考试出现这句话,就当他没有:因为属性就是椭圆,类型就是 ...

  2. TYUT太原理工大学2022数据库题库选择题总结

    第1章 一.单选题 1.数据库(DataBase,DB)是存储在计算机上的(  结构化的)相关数据集合. 2.反映现实世界中实体及实体间联系的信息模型是(   实体联系(ER)模型 ) 3.学生实体( ...

  3. TYUT太原理工大学2022操作系统学习通总结

    第1章 选择 (高级程序设计语言的编译器)不是操作系统关心的主要问题 多道批处理系统的主要缺点是( 缺少交互性  ) 在操作系统中,( 进程通信服务例行子程序   )部分属于微内核 通常在分时系统中运 ...

  4. TYUT太原理工大学2022“mao gai”必背

    老师说只考课后题,只能从课本中总结,因为我不想背太多,所以我只总结了要点,浅参考一下吧 涉及......的东西,为了过csdn审核,所以发百度网盘链接 链接:https://pan.baidu.com ...

  5. 数据库大题——学生课程查询

    遇到一道数据库大题,考察SQL语句基础,很有代表性,决定记下来. 数据库 student--学生表 字段名 注释 类型 id 学号 bigint(20) name 姓名 varchar(32) cit ...

  6. 太原理工大学软件学院数据库实验四(2021.4.26)

    太原理工大学软件学院数据库实验四(2021.4.26) -- (1)创建Student 表 CREATE TABLE Student ( Sno CHAR(8) PRIMARY KEY, Sname ...

  7. 太原理工大学软件学院 数据库实验 实验二(2021.4.8)

    太原理工大学软件学院 数据库实验 实验二(2021.4.8) 实验内容 以下内容直接全部复制到console窗口即可 需要逐句运行 -- (1)创建Student表 CREATE TABLE Stud ...

  8. MOOC战德臣数据库课程自用笔记_2_关系模式

    关系模式 一. 关系模式研究内容 一个关系就是一个Table 关系模型就是处理Table的,有三个部分: 描述DB各种数据的基本结构形式(Table/Relation) 描述Table与Table之间 ...

  9. 数据库:第二章 《关系模式》概念总结

    一.关系数据结构及形式化定义 1. 关系模式的相关概念: 域: 域是一组具有相同数据类型的值的集合 笛卡尔积: 域上的一种集合运算 其中每一个元素(d1,d2,d3,--dn)叫做一个元祖,元祖中的每 ...

最新文章

  1. findclass java_Java Context.findClass方法代码示例
  2. 解决ubuntu上opengl的问题
  3. 《Dojo构建Ajax应用程序》随书源码
  4. 电子小帮手电路中的设计原理
  5. [YTU]_2444( C++习题 对象转换)
  6. ubuntu16安装mysql8.0
  7. win7系统如何提高电脑运行速度
  8. c++ 高效解析url算法
  9. mysql 并行复制原理_MySQL 5.7 并行复制实现原理与调优
  10. cocos2dx打飞机项目笔记三:HeroLayer类和坐标系
  11. Java集合框架和重要接口、类
  12. 大漠插件最新版7.2111
  13. SPSS23第二版课后习题答案_全新版大学进阶英语综合教程3 Unit1unit3课后习题答案...
  14. STM32开发环境安装
  15. Android设置TabLayout及下划线宽度
  16. 二进制文件转化成文本文件
  17. Pluck Cms文件上传结合命令执行复现
  18. 2018国赛数学建模B题两道工序代码
  19. 2012科技业大公司与大事件:苹果不再创新垄断(转)(二)
  20. Java——打印九宫格的算法思路(任意维奇数行方阵)

热门文章

  1. python怎么安装pymysql_python pymysql安装
  2. thinkphp5.1获取当前域名的方法
  3. CS【1】:巴科斯范式(BNF: Backus-Naur Form)介绍与例子
  4. [AHK]用AutoHotkey实现中银国际通达信版自动登录
  5. 人工智能基础:迁移学习对抗学习简述
  6. 算法练习工具之代码对拍
  7. 娜迦:规范app市场 遏制恶意app的生存空间
  8. mysql查询第11到20条数据_数据库查询语句怎样查询一个表中的第15到第20条数据...
  9. c3p0连接池版本错误
  10. 在c语言中sqrt如何用,sqrt在c语言中怎么用?