第二章作业题
1、设有关系R、S如下所示,计算R÷S。
R: S: A B C D C D a b c d c d a b e f e f a b h k b d e f b d d l c k c d c k e f E 1 2
除法运算步骤
1) 将被除关系的属性分为象集属性和结果属性:与除关系相同的属性属于象集属性,不相同的属性属于结果属性 2) 在除关系中,对与被除关系相同的属性(象集属性)进行投影,得到除目标数据集。 3) 将被除关系分组,原则是,结果属性值一样的元组分为一组。
4) 逐一考察每个组,如果它的象集属性值中包括除目标数据集,则对应的结果属性值应属于该除法运算结果集。
2、书74页第5题
1)求供应工程J1零件的供应商号码SNO – πsno(σjno=’J1’(SPJ))
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: S# SNAME SEX AGE C# CNAME TEACHER 李明 男 1001 19 C语言 王华 C1 刘强 女 1002 18 数据结构 李大利 C2 张丽娟 女 2001 20 操作系统 周明 C3 赵丹 男 3002 19 周明 C4 数据库原理 SC: S# C# GRADE 1001 C1 89 1001 C2 67 2001 C3 56 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 CSC)) (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. SELECT SNAME,CITYFROM S ;
2. SELECT PNAME, COLOR, WEIGHTFROM P
3. SELECTDISTINCT(JNO)FROM SPJWHERE SNO=‘S1’; 4. SELECT PNAME,QTYFROM P, SPJ
WHERE P.PNO=SPJ.PNO ANDSPJ. JNO=‘J2’; 5.
解1:SELECT DISTINCT(PNO)FROM S, SPJ
WHERE S.SNO=SPJ.SNO ANDS.CITY=‘上海’ 解2:SELECT DISTINCT(PNO)FROM SPJ
WHERE SNO IN(SELECT SNO FROM SWHERE CITY=‘上海’ 6. SELECT JNAMEFROM S,SPJ,J
WHERE J.JNO=SPJ.JNO ANDS.SNO=SPJ.SNOAND S.CITY=‘上海’ 7. SELECT JNOFROM S,SPJ
WHERE S.SNO=SPJ.SNO AND S.CITY<>’天津’
7. SELECT JNOFROMSPJ
WHERE SNO!=ALL(SELECT SNO FROM SWHERE CITY=’天津’) 8. Update pset color=‘蓝’where color=‘红’
9. Update SPJsetsno=‘s3’where sno=‘s5’and jno=‘j4’andpno=‘p6’ 10. Delete from S where sno=‘s2’
11.insert into SPJvalues(‘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 LNOFROM Loan 2. SELECT TitleFROMBook
WHERE Price BETWEEN 50 AND 100AND Publisher IN(‘高等’, ‘机械’, ‘清华’) 3. SELECT Title, Author FROM BookWHERE Title LIKE ‘数据库%’ 4. SELECT Title, PriceFROM Book
WHERE Publisher=‘高等’ORDER BY Price DESC
5. SELECT MAX(Price), MIN(Price), COUNT(BNO)FROM Book GROUP BY Publisher
6. SELECT *FROM ReaderWHERE LNO IN
( SELECT LNO FROM LoanGROUP BY LNOHAVING COUNT(*)>3) 7. SELECT Book .Title, Loan .DateFROM Reader,Loan,Book
WHERE Reader. LNO=Loan.LNOAND Loan. BNO=Book.BNOAND Reader. Name=‘李小波’ AND Loan.Date<‘2001-1-1’ 8.(没有答案)
9. SELECT LNOFROM Loan AS A, Loan AS B
WHERE A.LNO=B.LNO ANDA.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)项目名—>部门名
部门名—>部门经理
存在传递函数依赖,不是3NF R2分解为:(项目名,部门名)
(部门名,部门经理)
(第七章作业)数据库设计篇作业1
考核要点
– 对E-R图的理解和掌握 – E-R图转换为关系模式的应用 ?回答情况
– 规范:E-R图没有标明关系的类型 – 关系模式中主码没有标明/标识(下划线)
– 两个实体的关系确定依靠语义
– 如何抽象实体和属性
1、课本P38-13题
13.某工厂生产若干产品,每种产品由不同的零件组成,有的零件可用在不同的产品上。这些零件由不同的原材料制成,不同零件所用的材料可以相同。这些零件按所属的不同产品分别放在仓库中,原材料按照类别放在若干仓库中。
?请用E 一R 图画出此工厂产品、零件、材料、仓库的概念模型。
2、P234-19题
19.请设计一个图书馆数据库,此数据库中对每个借阅者保存读者记录,包括:读者号,姓名,地址,性别,年龄,单位。对每本书存有:书号,书名,作者,出版社。对每本被借出的书存有读者号、借出日期和应还日期。
?给出E 一R 图,再将其转换为关系模型。
1:N 或M:N
如果读者借书记录删除:1:N
如果读者借书记录不删除:M:N
读者(读者号、姓名,性别,年龄,地址,单位) 图书(书号,书名,作者,出版社)
借书(读者号,书号,借出日期,应还日期)
3、根据下列业务规则画出网上书店的E-R图,并给出对应的关系模式。 假设网上书店的业务规则如下:
(1) 网站有多名职工经办售书业务,职工有职工号、姓名和职务等属性。 (2) 网上书店经营各种图书,图书有书号、书名、出版社等属性。 (3) 客户有客户编号、客户名称和地址等属性。
(4) 客户购买图书需填写并提交订单。订单中有订单号、日期和客户编号,
以及所购图书的书号、数量等属性。
(5) 一名职工可经办多个订单,一个订单只能由一名职工经办。 (6) 一个客户可有多个订单,一个订单只能属于一个客户。
(7) 一个订单中可包含多本图书。
图书信息(书号,书名,出版社); 客户信息(客户编号,姓名,地址); 职工信息(职工号,姓名,职务);
订单信息(订单编号,订单日期,客户编号,职工号)
订购信息(订单编号,图书编号,数量);