当前位置:网站首页>TYUT太原理工大学2022数据库大题之分解关系模式
TYUT太原理工大学2022数据库大题之分解关系模式
2022-07-06 09:19:00 【啦啦噜噜^_^】
题型四
分解关系模式:考点:关系模式的基本函数依赖、关系候选键、关系属于第几范式、
关系属于第几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(读者号,姓名,单位)只去掉了位于传递位置末尾的地址
单位(单位,地址)只保留了与候选键发生传递依赖的两个非主属性:单位,地址
真题:

边栏推荐
- C code implementation of robust estimation in rtklib's pntpos function (standard single point positioning spp)
- 几道高频的JVM面试题
- RTKLIB: demo5 b34f.1 vs b33
- Sharing ideas of on-chip transplantation based on rtklib source code
- 初识指针笔记
- isEmpty 和 isBlank 的用法区别
- Record: solution of 404 error of servlet accessing database in dynamic web project
- [algorithm] sword finger offer2 golang interview question 5: maximum product of word length
- 抗差估计在rtklib的pntpos函数(标准单点定位spp)中的c代码实现
- On March 15, the official version of go 1.18 was released to learn about the latest features and usage
猜你喜欢

Experience summary of autumn recruitment of state-owned enterprises

Ten minutes to thoroughly master cache breakdown, cache penetration, cache avalanche

系统设计学习(一)Design Pastebin.com (or Bit.ly)
![[untitled]](/img/b1/9a2bebebb24132a405fc4e7d854e51.png)
[untitled]

Music playback (toggle & playerprefs)
![[算法] 剑指offer2 golang 面试题12:左右两边子数组的和相等](/img/11/ee0628a68542236fc641966579a31a.png)
[算法] 剑指offer2 golang 面试题12:左右两边子数组的和相等

【GNSS数据处理】赫尔默特(helmert)方差分量估计解析及代码实现

编辑距离(多源BFS)

C code implementation of robust estimation in rtklib's pntpos function (standard single point positioning spp)
![[algorithm] sword finger offer2 golang interview question 1: integer division](/img/e6/f17135207b3540ec58e5a9eed54220.png)
[algorithm] sword finger offer2 golang interview question 1: integer division
随机推荐
What are the functions and features of helm or terrain
[untitled]
Implementation of Excel import and export functions
KF UD分解之UD分解基础篇【1】
MySQL shutdown is slow
MySQL 30000 word essence summary + 100 interview questions, hanging the interviewer is more than enough (Collection Series
Record: the solution of MySQL denial of access when CMD starts for the first time
121道分布式面试题和答案
Fairygui loop list
几道高频的JVM面试题
10 minutes pour maîtriser complètement la rupture du cache, la pénétration du cache, l'avalanche du cache
雇佣收银员【差分约束】
[Chongqing Guangdong education] reference materials for regional analysis and planning of Pingdingshan University
Fairygui bar subfamily (scroll bar, slider, progress bar)
TYUT太原理工大学2022软工导论大题汇总
wsl常用命令
Heap sort [handwritten small root heap]
Several high-frequency JVM interview questions
[算法] 剑指offer2 golang 面试题3:前n个数字二进制形式中1的个数
Novatel board oem617d configuration step record
