模式分解例题

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

模式分解例题
设有关系模式R(U, F),其中U={A ,B, C, D, E } , F = {AB C,B D, D E, C B },
试问R最高为第几范式,并解释原因?如果R不是3NF或BCNF,要求将其分解为3NF和
BCNF
关系R中的函数依赖如下图表示
R :
A,B C ;
B D ;
D E ;
C B
第一范式规定关系的每一个分量必须是一个不可分的数据项。

可以看出,该关系满足第一范式。

如果关系模式R满足第一范式,且它的任何一个非主属性都完全函数依赖于任一个候选
码,则R满足第二范式(简记为2NF)。

所以不是第二范式
分解成第二范式
R1 :
A,B C ;
C B
R2:
B D ;
D E ;
如果关系模式R满足2NF,并且它的任何一个非主属性都不传递依赖于任何候选码,则
称R是第三范式(3NF),记作R 3NF。

分解成第三范式
R1 :
A,B C ;
C B
R21:
B D
R22:
D E
? 如果关系模式R是1NF,且每个属性都不传递依赖于R的候选码,那么称R
是BCNF的模式。

R1 :
A ,
B C;
C B
R21:
B D
R22:
D E
R1中属性B传递依赖于R的候选码AB,故R1不是BCNF范式
关系模式R 1NF,若X Y,且Y X时,X必含有候选码,则R BCNF。

R1中C B,且B C,但B不含有任何候选码,故R1不是BCNF范式分解成BCNF范式
R11 :
A,B
R12 :
C B
R21:
B D
R22:
D E
候选码是什么?
能够唯一标识一个元组的某一属性或属性组。

候选码:(A,B)和(A,C)
假设有一个名为参加的关系,该关系有属性:职工(职工名)、工程(工程名)、时数(花费
在工程上的小时数)和工资(职工的工资);一个参加记录描述一个职工花费在一个工程上
的总时数和他的工资;另外,一个职工可以参加多个工程,多个职工可以参加同一个工程(用A、B、C、D 分别代表属性职工、工程、时数和工资)。

请回答如下各问题:
1)确定这个关系的关键字;AB
2)找出这个关系中的所有函数依赖;AB->C , A->D
3)指出这个关系上的哪些函数依赖会带来操作异常现象;D对关键字AB的部分函数依赖可能会带来如下问题:数据冗余:一个职工参加多个工程,则职工的工资值会重复;
更新异常:当改变职工的工资时,可能会只修改了一部分,从而造成数据不一致;插入异常:当一个职工尚未承担工程,但要插入职工信息(如工资)则不允许(因为没有完整的关键字);
删除异常:当某个工程结束,删除工程信息时,可能会将职工信息(如工资)一同删除(如果职工只参加了一项工程)。

4)这个关系是第几范式关系?2NF
5)计算该关系上函数依赖集的最小覆盖;Fm={AB->C, A->D}
6)将该关系分解成尽可能高的范式,并指明是第几范式?
分解为R1(A,B,C)和R2(A,D)结果为4NF
对于学生选课关系,其关系模式为: 学生(学号,姓名,年龄,所在系)课程(课程名,课程号,先行课)选课(学号,课程号成绩)。

用关系代数完成如下查询。

1)求学过数据库课程的学生的姓名和学号。

2)求学过数据库和数据结构的学生姓名和学号。

3)求没学过数据库课程的学生学号。

4)求学过数据库的先行课的学生学号。

程序设计题现有关系数据库如下:
学生(学号,姓名,性别,专业、奖学金)
课程(课程号,名称,学分)
学习(学号,课程号,分数)
用关系代数表达式实现下列 1 —4小题;用SQL语言实现下列5 —8小题。

1•检索国际贸易”专业中获得奖学金的学生信息,包括学号、姓名、课程名和分数;
2•检索学生成绩得过满分(100分)的课程的课程号、名称和学分;
3•检索没有获得奖学金、同时至少有一门课程成绩在95分以上的学生信息,包括学号、姓
名和专业;
4•检索没有任何一门课程成绩在80分以下的学生的信息,包括学号、姓名和专业;
5•检索没有获得奖学金、同时至少有一门课程成绩在95分以上的学生信息,包括学号、姓
名和专业;
6•检索没有任何一门课程成绩在80分以下的所有学生的信息,包括学号、姓名和专业;
7•对成绩得过满分(100分)的学生,如果没有获得奖学金的,将其奖学金设为1000元;8•定义学生成绩得过满分(100分)的课程视图AAA,包括课程号、名称和学分;
1. n学号,姓名,课程名,分数(b奖学金>0人专业=国际贸易(学生R学习R课程))
2. n课程号,名称,学分 &分数=100(学习R课程))
3. n学号,姓名,专业(b奖学金<=0人分数>95(学生8学习))
4. n学号,姓名,专业(学生)一n学号,姓名,专业(b分数<80(学生学习))
5.SELECT 学生•学号,姓名,专业
FROM学生,学习
WHERE 学生学号=学习.学号
AND学习•课程号=课程.课程号
AND奖学金<=0 AND 分数>95
6.SELECT 学号,姓名,专业
FROM学生
WHERE 学号NOT IN
(SELECT 学号
FROM学习
WHERE 分数<80)
7. UPDATE 学生
SET奖学金=1000
WHERE 奖学金<=0 AND 学号IN
(SELECT 学号
FROM学习
WHERE 分数=100)
8. CREATE VIEW AAA(课程号,名称,学分)
AS SELECT课程号,名称,学分
FORM课程
WHERE课程号IN
(SELECT课程号
FROM学习
WHERE 分数=100)设关系模式R<A , B, C, D, E, F>,函数依赖集F={ AB宀E, AC宀F, AD宀B, B宀C, C T D} o
1) 证明AB、AC、AD均是候选关键宇。

2) 证明主属性C部分依赖于关键字AB,传递依赖于AD。

同时证明主属性D部分依赖于关键字AC ,传递依赖于关键字AB o
1) v = ABECDF ABCDEF €/. AB 为码
•/ = ABECDF ABCDEF € /. AC 为码
•/ = ABECDF ABCDEF € /. AD 为码
2) v B T C ••• ABC
AD T B, B T C •- ADC
C T
D •. ACC
B T C,
C T
D •. ABC
图中显示一张交通违章处罚通知书,根据这张通知书所提供的信息,设计一个并将这个E-R
E-R模型, 模型转换成关系数据模型,要求标注主码和外码。

姓名主XXX驾驻执躺号:XXXXXX
地址二XXXXXXXXXX
邙编,X X X X X其电话■ X X共其薑茎机动曲嶷号:XX X XX X
型号匸X X X X X X
詡日期=xxxxxx 锤章日肆x X X X X X Btffl]:X X X X X X 地点二KXXKKK
注章迢载=X X X X X X
处罚方武
[7] W^SHWB
宴察签字三> X X警彝号三XXX
注=一张违章通匆书可能有多项处罚,例J5h警苛■罚就
解法一
司机(驾照号,姓名,地址,邮编,电话)
PK=驾照号
机动车(牌照号,型号,制造厂,生产日期)
PK=牌照号
警察(警察编号,姓名)
PK=警察编号
处罚通知(编号,日期,时间,地点,驾照号,牌照号,警告,罚款,暂扣,警察编号)PK=编号
FK=驾照号,牌照号,警察编号
解法一
司机(驾照号,姓名,地址,邮编,电话)
PK=驾照号
机动车(牌照号,型号,制造厂,生产日期)
PK=牌照号
警察(警察编号,姓名)
PK=警察编号
通知书(编号,日期,时间,地点,驾照号,牌照号,警察编号)
PK=编号
FK=驾照号,牌照号,警察编号
处罚(编号,处罚方式)
PK=编号,处罚方式
设有一家百货商店,已知信息有:
1)每个职工的数据是职工号、姓名、地址和他所在的商品部。

2)每一商品部的数据有:它的职工,经理和它经销的商品。

3)每种经销的商品数有:商品名、生产厂家、价格、型号(厂家定的)和内部商品代号(商店规定的)。

4)关于每个生产厂家的数据有:厂名、地址、向商店提供的商品价格。

请设计该百货商店的概念模型,再将概念模型转换为关系模型。

注意某些信息可用属性表示,
其他信息可用联系表示。

百暫筒店的E占田模沖
概念模型如图所示。

关系模型为:
职工(职工号,姓名,住址,工作商品部);商品部(商品部号,名称,经理职工号,经理名)商品(商品代号,价格,型号,出厂价格);
生产厂家(厂名,地址);销售(商品代号,商品部号);生产(厂名,商品代号)。

职工:职工号,姓名,住址;
商品部:商品部号,名称;
商品:商品代号,价格,型号,出厂价格; 生产厂家:厂名,地址。

相关文档
最新文档