数据库小班讨论3-第四五六七章部分习题
数据库小班讨论3
第4章习题7
今有以下两个关系模式:
职工(职工号,姓名,年龄,职务,工资,部门号)
部门(部门号,名称,经理名,地址,电话号)
请用SQL的GRANT和REVOKE语句(加上视图机制)完成以下授权定义或存取控制功能:
( a )用户王明对两个表有SELECT 权力。
GRANT SELECT ON 职工,部门
TO 王明
( b )用户李勇对两个表有INSERT 和DELETE 权力。
GRANT INSERT,DELETE ON 职工,部门
TO 李勇
( c ) 每个职工只对自己的记录有SELECT 权力。
GRANT SELECT ON 职工
WHEN USER()=NAME
TO ALL;
( d )用户刘星对职工表有SELECT 权力,对工资字段具有更新权力。
GRANT SELECT,UPDATE(工资) ON 职工
TO 刘星
( e )用户张新具有修改这两个表的结构的权力。
GRANT ALTER TABLE ON 职工,部门
TO 张新;
( f )用户周平具有对两个表所有权力(读,插,改,删数据),并具有给其他用户授权的权力。
GRANT ALL PRIVILIGES ON 职工,部门
TO 周平
WITH GRANT OPTION;
( g )用户杨兰具有从每个部门职工中SELECT 最高工资、最低工资、平均工资的权力,他不能查看每个人的工资。
CREATE VIEW 部门工资 AS
SELECT 部门.名称,MAX(工资),MIN(工资),AVG(工资)
FROM 职工,部门
WHERE 职工.部门号=部门.部门号
GROUP BY 职工.部门号
GRANT SELECT ON 部门工资
TO 杨兰;
第五章习题6
6 .假设有下面两个关系模式:
职工(职工号,姓名,年龄,职务,工资,部门号),其中职工号为主码;
部门(部门号,名称,经理名,电话),其中部门号为主码。
用 sQL 语言定义这两个关系模式,要求在模式中完成以下完整性约束条件的定义:
- 定义每个模式的主码;
- 定义参照完整性;
- 定义职工年龄不得超过 60 岁。
答:
CREATE TABLE DEPT(
Deptno NUMBER(2),
Deptname VARCHAR(10),
Manager VARCHAR(10),
PhoneNumber Char(12),
CONSTRAINT PK_SC RIMARY KEY(Deptno)
);
CREATE TABLE EMP(
Empno NUMBER(4),
Ename VARCHAR(10),
Age NUMBER(2),
CONSTRAINT C1 CHECK ( Aage<=60),
Job VARCHAR(9),
Sal NUMBER(7,2),
Deptno NUMBER(2),
CONSTRAINT FK_DEPTNO FOREIGN KEY(Deptno) REFFERENCES DEPT(Deptno)
);
第六章习题2
2.建立一个关于系、学生、班级、学会等诸信息的关系数据库。
- 学生:学号、姓名、出生年月、系名、班号、宿舍区。
- 班级:班号、专业名、系名、人数、入校年份。
- 系:系名、系号、系办公地点、人数。
- 学会:学会名、成立年份、办公地点、人数。
语义如下:一个系有若干专业,每个专业每年只招一个班,每个班有若干学生。
一个系的学生住在同一宿舍区。每个学生可参加若干学会,每个学会有若干学生。
学生参加某学会有一个入会年份。
请给出关系模式,写出每个关系模式的极小函数依赖集,指出是否存在传递函数依赖,
对于函数依赖左部是多属性的情况讨论函数依赖是完全函数依赖,还是部分函数依赖。
指出各关系模式的候选码、外部码,有没有全码存在?
答:
关系模式:
关系名 | 关系模式 |
---|---|
学生 | S(S#, SN, SB, DN, C#, SA) |
班级 | C(C#, CS, DN, CNUM, CDATE) |
系 | D(D#, DN, DA, DNUM) |
学会 | P(PN, PDATE, PA, PNUM) |
学生-学会 | SP(S#, PN, SPDATE) |
根据语义,以及实际情况,得出每个关系模式的极小函数依赖集如下:
S:
S# -> SN, S# -> SB, S# ->C#, C# ->DN, DN -> SA
C:
C# -> CS, C# -> CNUM, C# -> CDATE, CS -> DN, (CS, CDATE) -> C#
d:
D# -> DN, DN -> D#, D# -> DA, D# -> DNUM
P:
PN -> PDATE, PN -> PA, PN -> PNUM
SP:
(S#, PN) -> SPDATE
S中存在的传递函数依赖有:
C# -> DN
C# -> SA
S# -> SA
C# -> DN
函数依赖左部是多属性的依赖集:
(CS, CDATE) -> C#
(S#, PN) -> SPDATE
两个都是完全函数依赖。
各关系的候选码、外部码、以及是否存在全码:
关系 | 候选码 | 外部码 | 全码 |
---|---|---|---|
S | S# | C#,DN | 无 |
C | C#,(CS,CDATE) | DN | 无 |
D | D#,DN | 无 | 无 |
P | PN | 无 | 无 |
SP | (S#,PN) | S#,PN | 无 |
关系数据理论习题(2)
【例5.49】设属性集x={BG},函数依赖集F有下列9个函数依赖组成:
{AC->PE,PG->A,B->CE,A->P,A->B,GC->A,PAB->G,AG->BG,ABCP->H}
求X关于F的属性闭包X+。
答:
设X0 = BG,逐一扫描F集合的各个函数依赖,找左部为B、G或BG的函数依赖
- B->CE X1 = BCEG
- GC->A X2 = ABCEG
- AC->PE,A->P,A->B,AG->BG X3 = ABCEGP
- PG->A,PAB->G,ABCP->H X4 = ABCEGHP
此时 X4已等于全部属性集合,所以x关于F的属性闭包X+ = {A,B,C,E,G,H,P}
关系数据理论习题(3)
【例5.52】指出下列关系模式是第几范式?并说明理由。
某女老师:再没有多值依赖的情况下,只用判断到BCNF,4NF可以不予理会
1.R(X,Y,Z)
F=(XY->Z}
候选码:XY,
非主属性:Z
Z完全函数依赖于XY –> 2NF
不存在传递依赖 –> 3NF
每一个决定因素都包含码 –> BCNF
2.R(X,Y,Z)
F={Y->Z,XZ->Y}
候选码:XY,XZ
无非主属性
所以为3NF
3.R(X,Y,Z)
F={Y->Z,Y->X,X->YZ}
候选码:Y,X
非主属性:Z
Z直接由Y决定,所以不存在传递依赖 –> 3NF
每一个决定因素都包含码 –> BCNF
4.R(X,Y,Z)
F={X->Y,X->Z}
推断X为码:
Y,Z完全函数依赖于X –> 2NF
不存在传递依赖 –> 3NF
每个决定因素都包含码 –> BCNF
5.R(W,X,Y,Z)
F={X->Z,WX->Y}
候选码:WX
Z部分函数依赖于WX,所以不属于2NF
该关系模式为1 NF
第七章习题7
7.学校中有若干系,每个系有若干班级和教研室,每个教研室有若干教员,其中有的教授和副教授每人各带若干研究生;每个班有若干学生,每个学生选修若干课程,每门课可由若干学生选修。请用 E 一 R 图画出此学校的概念模型。
答:
各实体属性为:
- 系:系编号,系名
- 班级:班级号,班级名
- 教研室:教研室号,教研室
- 学生:学号,姓名,学历
- 课程:课程号,课程名
- 教员:职工号,姓名,职称
- 联系的属性:“选修”的属性为“成绩”
- 转换为关系模型如下:
- 系(系编号,系名,学校名)
- 班级(班级号,班级名,系编号)
- 教研室(教研室号,教研室,系编号)
- 学生(学号,姓名,学历,班级号,导师职工号)
- 课程( 课程号,课程名)
- 教员(职工号,姓名,职称,教研室号)
- 选修(学号,课程号,成绩)
第七章习题8
8 .某工厂生产若干产品,每种产品由不同的零件组成,有的零件可用在不同的产品上。这些零件由不同的原材料制成,不同零件所用的材料可以相同。这些零件按所属的不同产品分别放在仓库中,原材料按照类别放在若干仓库中。请用 E 一 R 图画出此工厂产品、零件、材料、仓库的概念模型。
答:
各实体属性为:
产品:产品号,产品名
零件:零件号,零件名
原材料:原材料号,原材料名,类别
仓库:仓库号,仓库名
各联系的属性为:
产品组成:使用零件量
零件制造:使用原材料量
零件存储:存储量
材料存放:存储量
转换为关系模型如下:
产品(产品号,产品名,仓库号)
零件:零件号,零件名
原材料:原材料号,原材料名,类别,仓库号,存放量)
仓库(仓库号,仓库名)
产品组成(产品号,零件号,使用零件量)
零件组成(零件号,原材料号,使用原材料量)
零件储存(零件号,仓库号,存储量)
补充练习1
【例6.42】嘉定一个部门的数据包括以下信息:
- 职工的信息:职工号、姓名、地址和所在部门
- 部门的信息:部门所有职工、部门名、经理和销售的产品
- 产品的信息:产品名、制造商、价格、型号及产品内部编号
- 制造商的信息:制造商名称、地址、生产的产品名和价格
试画出这个数据库的E-R图。
略
补充练习2
略
推荐阅读