数据库期末复习题总结 下载本文

内容发布更新时间 : 2024/5/12 2:59:07星期一 下面是文章的全部内容请认真阅读。

如有你有帮助,请购买下载,谢谢!

第二章作业题

1、设有关系R、S如下所示,计算R÷S。

R: S: A B C D C D E 除法运算步骤a b c d c d 1 1) 将被除关系的属性分为象集属性和结果属性:与除关系相同的属性属于象集属性,不相同的属性属于结果属性 a b e f e f 2 2) 在除关系中,对与被除关系相同的属性(象集属性)进行投影,得到除目标数据集。 a b h k 3) 将被除关系分组,原则是,结果属性值一样的元组分为一组。 b d e f 4) 逐一考察每个组,如果它的象集属性值中包括除目标数据集,则对应的结果属性值应属于该除法运算结果集。 b 5题d d l 2、书74页第c J1零件的供应商号码k c d SNO 1)求供应工程c jno=’J1’k (SPJe ))f – πsno(σ2) 求供应工程J1零件P1的供应商号码SNO – πsno(σ jno=’J1’^ PNO =’P1’(SPJ)) 3)求供应工程J1零件为红色的供应商号码SNO

–πsno(πpno(σ color=’红色’(P)) σjno=’J1’(SPJ)) 4)求没有使用天津供应商生产的红色零件的工程号JNO

– πjno(SPJ)-πjno(πsno(σcity=’天津’(S)) SPJπpno(σcolor=’红色’(P)) 5)求至少用了供应商S1所供应的全部零件的工程号JNO – πjno,pno(SPJ) πpno(σsno=’S1’(SPJ))

3、设有如图所示的关系S、C和SC,它们分别表示学生、课程和学生选课。试用关系代数表达式表示下列查询。 S: C: SC: S# SNAME SEX AGE C# CNAME TEACHER S# C# 李明 GRADE 男 1001 19 C语言 王华 C1 1001 C1 89 刘强 女 1002 18 数据结构 李大利 C2 1001 C2 67 张丽娟女 2001 20 操作系统 周明 C3 2001 C3 56 赵丹 男 3002 19 周明 C4 数据库原理 3002 C3 92 (1) 检索年龄大于19岁的女同学的学号(S#)和姓名(SNAME)。 (2) 检索\周明\老师所授课程的课程号(C#)和课程名(CNAME)。 (3) 检索选修课程名为\操作系统\的学生学号(S#)和姓名(SNAME)。 (4) 检索选修了全部课程的学生姓名(SNAME)。

S ( S#, SNAME,SEX,AGE) C (C#, CNAME, TEACHER ) SC ( S#,C#,GRADE)

(1)πs#,SNAME(σ AGE>19^SEX=‘女’(S)) (2)πC#,CNAME(σ TEACHER=‘周明’(C))

(3)πs#,SNAME(σ CNAME=‘操作系统’(S C SC)) (4)πSNAME(πs#,C#( SC)πC#(C)S)

第三章 作业题

1.书127页5题:(1)-(7)(对应课本75页的四个表)

S (SNO, SNAME, STATUS, CITY) P (PNO,PNAME, COLOR, WEIGHT) J (JNO, JNAME,CITY) SPJ (SNO,PNO,JNO,QTY)

1页

如有你有帮助,请购买下载,谢谢!

1. SELECT SNAME ,CITY FROM S ;

2. SELECT PNAME, COLOR, WEIGHT FROM P

3. SELECT DISTINCT(JNO) FROM SPJ WHERE SNO=‘S1’; 4. SELECT PNAME,QTY FROM P, SPJ

WHERE P.PNO=SPJ.PNO AND SPJ. JNO=‘J2’; 5.

解1: SELECT DISTINCT(PNO) FROM S, SPJ

WHERE S.SNO=SPJ.SNO AND S.CITY=‘上海’ 解2:SELECT DISTINCT(PNO) FROM SPJ

WHERE SNO IN (SELECT SNO FROM S WHERE CITY=‘上海’ 6. SELECT JNAME FROM S,SPJ,J

WHERE J.JNO=SPJ.JNO AND S.SNO=SPJ.SNO AND S.CITY=‘上海’ 7. SELECT JNO FROM S,SPJ

WHERE S.SNO=SPJ.SNO AND S.CITY<>’天津’ 7. SELECT JNO FROM SPJ

WHERE SNO!=ALL (SELECT SNO FROM S WHERE CITY=’天津’) 8. Update p set color=‘蓝’ where color=‘红’

9. Update SPJ set sno=‘s3’ where sno=‘s5’and jno=‘j4’ and pno=‘p6’ 10. Delete from S where sno=‘s2’

11.insert into SPJ values(‘s2’, ’p4’,’j6’, 200) 2.补充练习:

设有一个简单的图书管理数据库,包含如下三个关系表: 图书关系表:Book(BNO, Title, Author, Publisher, Price),

其中BNO, Title, Author, Publisher, Price分别表示图书的总编号、书名、 作者、出版单位和单价;

读者关系表:Reader(LNO, Name, Unit),

其中LNO, Name, Unit分别表示读者的借书证号、姓名和所在单位; 借阅关系表:Loan(LNO, BNO, Date)

其中LNO, BNO, Date分别表示借阅图书的借书证号、所借图书的总编号和借书 日期。

用SQL语言实现下述功能。

1. 查询所有借阅了图书的学生号。

2. 查询图书的价格在50—100元的高等教育出版社、机械工业出版社和清华大学出版社的书名。 3. 查询数据库方面(以“数据库”开头)的图书的书名和作者。

4. 查找高等教育出版社的所有图书的书名和单价,结果按单价降序排列。 5. 求出各个出版社图书的最高价格、最低价格和图书册数。 6. 查询借阅三本以上图书的读者的借书证号、姓名和所在单位。

7. 读者“李小波”于2001年元旦前所借的所有图书的书名及借书日期。 8. 查询2000年7月以后没有借书的读者的姓名和单位。 9. 查询至少借阅了0287号图书和0398号图书的读者号。 1. SELECT DISTINCT LNO FROM Loan 2. SELECT Title FROM Book

WHERE Price BETWEEN 50 AND 100AND Publisher IN(‘高等’, ‘机械’, ‘清华’) 3. SELECT Title, Author FROM Book WHERE Title LIKE ‘数据库%’ 4. SELECT Title, Price FROM Book

WHERE Publisher=‘高等’ ORDER BY Price DESC

2页

如有你有帮助,请购买下载,谢谢!

5. SELECT MAX(Price), MIN(Price), COUNT(BNO) FROM Book GROUP BY Publisher

6. SELECT * FROM Reader WHERE LNO IN

( SELECT LNO FROM Loan GROUP BY LNO HAVING COUNT(*)>3) 7. SELECT Book .Title, Loan .Date FROM Reader,Loan,Book

WHERE Reader. LNO=Loan.LNO AND Loan. BNO=Book.BNO AND Reader. Name=‘李小波’ AND Loan.Date<‘2001-1-1’ 8.(没有答案)

9. SELECT LNO FROM Loan AS A, Loan AS B

WHERE A.LNO=B.LNO AND A.BNO=0287 AND B.BNO=0398; (自身连接)

第六章作业

作业1:

判断下列模式分别属于哪个范式并说明理由。

1. 在关系模式R(A,B,C,D)中,存在函数依赖关系{A→B,A→C,A→D,(B,C)→A}, 则候选码是A或(B,C)。

2. 在关系模式R(D,E,G)中,存在函数依赖关系{ E→D,(D,G)→E },则候选码 是(D,G)或(E,G),关系模式R(D,E,G)属于 3NF 范式。 作业2:

关系模式R(职工名,项目名,工资,部门名,部门经理)

语义:每个职工可参加多个项目,各领一份工资;每个项目只属于一个部门管理;每个部门只有一个经理。

1. 试写出关系模式R的函数依赖关系和关键码。

2. 说明R不是2NF的理由,并把R分解成2NF的模式。 3. 进而把R分解成3NF的模式,并说明理由。 (1)(职工名,项目名)—>工资

项目名—>部门名 部门名—>部门经理

码:(职工名,项目名)

每个职工可参加多个项目,各领一份工资; 每个项目只属于一个部门管理; 每个部门只有一个经理。

(2)(职工名,项目名)—>(部门名,部门经理)

项目名—>(部门名,部门经理)

存在部分函数依赖,不是2NF 原因没写?? R分解为 R1(项目名,部门名,部门经理)

R2(职工名,项目名,工资) (3) 项目名—>部门名

3页