当前位置:网站首页>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(读者号,姓名,单位)只去掉了位于传递位置末尾的地址
单位(单位,地址)只保留了与候选键发生传递依赖的两个非主属性:单位,地址
真题:

边栏推荐
- [algorithm] sword finger offer2 golang interview question 4: numbers that appear only once
- Record: solution of 404 error of servlet accessing database in dynamic web project
- 记录:动态Web项目servlet访问数据库404错误之解决
- Comparative analysis of the execution efficiency of MySQL 5.7 statistical table records
- Exception: ioexception:stream closed
- Problems and solutions of robust estimation in rtklib single point location spp
- Iterable、Collection、List 的常见方法签名以及含义
- 一文搞定 UDP 和 TCP 高频面试题!
- Record: I accidentally wrote a recursion next time
- MySQL 30000 word essence summary + 100 interview questions, hanging the interviewer is more than enough (Collection Series
猜你喜欢

RTKLIB: demo5 b34f. 1 vs b33

Application architecture of large live broadcast platform

十分钟彻底掌握缓存击穿、缓存穿透、缓存雪崩

Iterable、Collection、List 的常见方法签名以及含义

Fairygui loop list

Wechat applet development experience

On March 15, the official version of go 1.18 was released to learn about the latest features and usage

2-year experience summary, tell you how to do a good job in project management
![[算法] 剑指offer2 golang 面试题4:只出现一次的数字](/img/f7/23ffc81ec8e9161c15d863c1a67916.png)
[算法] 剑指offer2 golang 面试题4:只出现一次的数字

国企秋招经验总结
随机推荐
[algorithm] sword finger offer2 golang interview question 8: the shortest subarray with a sum greater than or equal to K
阿里云微服务(一)服务注册中心Nacos以及REST Template和Feign Client
Implementation of Excel import and export functions
[algorithm] sword finger offer2 golang interview question 9: subarray with product less than k
RTKLIB: demo5 b34f.1 vs b33
Several high-frequency JVM interview questions
记录:Navicat Premium初次无法连接数据库MySQL之解决
Realization of the code for calculating the mean square error of GPS Height Fitting
Heap sort [handwritten small root heap]
平衡二叉树详解 通俗易懂
Novatel board oem617d configuration step record
Compile GDAL source code with nmake (win10, vs2022)
Knowledge system of digital IT practitioners | software development methods -- agile
Matlab读取GNSS 观测值o文件代码示例
Exception: ioexception:stream closed
All in one 1405: sum and product of prime numbers
What are the functions and features of helm or terrain
2022国赛Re1 baby_tree
The earth revolves around the sun
[rtklib] preliminary practice of using robust adaptive Kalman filter under RTK
