当前位置:网站首页>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(读者号,姓名,单位)只去掉了位于传递位置末尾的地址
单位(单位,地址)只保留了与候选键发生传递依赖的两个非主属性:单位,地址
真题:
边栏推荐
- MYSQL索引钟B-TREE ,B+TREE ,HASH索引之间的区别和应用场景
- Experience summary of autumn recruitment of state-owned enterprises
- [算法] 剑指offer2 golang 面试题10:和为k的子数组
- Record: I accidentally wrote a recursion next time
- [algorithm] sword finger offer2 golang interview question 13: sum of numbers of two-dimensional submatrix
- Rt-ppp test using rtknavi
- 堆排序【手写小根堆】
- 图书管理系统小练习
- 记录:newInstance()过时的代替方法
- 【无标题】
猜你喜欢
121 distributed interview questions and answers
[untitled]
Rt-ppp test using rtknavi
Code example of MATLAB reading GNSS observation value o file
10 minutes pour maîtriser complètement la rupture du cache, la pénétration du cache, l'avalanche du cache
[algorithm] sword finger offer2 golang interview question 10: subarray with sum K
图书管理系统小练习
[算法] 剑指offer2 golang 面试题8:和大于或等于k的最短子数组
染色法判定二分图
阿里云微服务(一)服务注册中心Nacos以及REST Template和Feign Client
随机推荐
国企秋招经验总结
Problems and solutions of robust estimation in rtklib single point location spp
Mixed use of fairygui button dynamics
NovAtel 板卡OEM617D配置步骤记录
rtklib单点定位spp使用抗差估计遇到的问题及解决
【无标题】
Role movement in the first person perspective
记录:Navicat Premium初次无法连接数据库MySQL之解决
GNSS positioning accuracy index calculation
系统设计学习(三)Design Amazon‘s sales rank by category feature
分支语句和循环语句
On March 15, the official version of go 1.18 was released to learn about the latest features and usage
Basic DOS commands
记录:动态Web项目servlet访问数据库404错误之解决
121 distributed interview questions and answers
What are the advantages of using SQL in Excel VBA
Record: solution of 404 error of servlet accessing database in dynamic web project
The port is occupied because the service is not shut down normally
RTKLIB: demo5 b34f.1 vs b33
Knowledge system of digital IT practitioners | software development methods -- agile