习题课12013
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
C 7 7 3 3 5
数据库系统
习题课一
第二章习题
R
A 3 2 7 4
B 6 5 2 4
C 7 7 3 3
S
A 3 7
B 4 2
C 5 3
R×S R.A R.B R.C S.A S.B S.C 3 6 7 3 4 5 3 6 7 7 2 3 2 5 7 3 4 5 2 5 7 7 2 3 7 2 3 3 4 5 7 2 3 7 2 3 4 4 3 3 4 5 4 4 3 7 2 3 数据库系统 习题课一
第一章
1. 试述数据库的三级模式结构及其带来的好处。
参考答案:
数据库的三级模式包括外模式、逻辑模式和内模式,以及 外模式/逻辑模式映像和逻辑模式/内模式映像。 外模式:是用户观念下局部数据结构的逻辑描述,是数据库用户 (包括应用程序员和最终用户)能够看见和使用的局部数据用逻辑 数据模型对用户用到的数据的描述。
数据库系统 习题课一 第二章习题
3)检索男学生所学课程的任课老师的工号和姓名
πT#,TNAME(σSEX=‘男’(S SC C T))
4)检索至少选修两门课的学生学号
π1(σ1=4 π2(σ2=5
∧ 2!=5(SC×SC))
5)检索至少有学号为S2和S4学生选修的课程的课程号
∧ 1=‘S2’∧4 =‘S4’(SC×SC))
3)检索男同学所学课程的任课老师的工号和姓名
SELECT T.T#,TNAME FROM S,SC,C,T WHERE S.S#=SC.S# AND SC.C#=C.C# AND C.T#=T.T# AND SEX=‘M’;
4)检索至少选修两门课的学生学号
SELECT DISTINCT X.S# FROM SC AS X,SC ASGROUP Y SELECT S# FROM SC BY S# WHERE X.S#=Y.S# AND X.C# != Y.C#; HAVING COUNT(*)>1;
逻辑模式:是数据库中全体数据的逻辑结构和特征的描述,是所 有用户的公共数据视图,外模式是逻辑模式的一个逻辑子集。
内模式:是对数据库中数据的物理结构和存储方式的描述,是
数据在数据库内部的表现形式,一个数据库只有一个内部模式。
数据库系统 习题课一 第一章习题
带来的好处:
1. 数据独立性
三级模式是对数据的三个抽象级别,它把数据 的具体组织留给DBMS管理,使用户能逻辑地抽象 地处理数据,而不必关心数据在计算机中的具体表 示形式与存储方式,提高数据的独立性。
SELECT C#, COUNT(S#) FROM SC GROUP BY C# HAVING COUNT(S#)>10 ORDEY BY 2 DESC, 1 ASC;
数据库系统 习题课一 第三章习题
5)检索学号比WANG同学大,而年龄比他小的学生姓名 SELECT SNAME FROM S WHERE S# > ALL ( SELECT S# FROM S WHERE SNAME=‘WANG’) AND AGE < ALL ( SELECT AGE FROM S WHERE SNAME=‘WANG’);
数据库系统 习题课一 第一章习题
参考答案: 商店名 地址 聘期 月薪 职工编号 姓名
商店编号
商店
m
1
聘用
m
职工
性别 业绩
销售
n 商品
月销售量
商品编号 单价 商品名 规格 数据库系统 习题课一 第一章习题
第二章
2.4.外键值何时允许为空?何时不允许为空?
参考答案:
关系模型的参照完整性约束要求不能引用不 存在的实体,通过外键实现。 当外键不是本关系主键的一部分(主属性), 允许外键为空;否则,不允许为空。
6)在表SC中检索成绩为空值的学生学号和课程号。
SELECT S#, C# FROM SC WHERE SCORE IS NULL;
数据库系统 习题课一 第三章习题
7)检索姓名以L打头的所有学生的姓名和年龄 SELECT SNAME, AGE FROM S WHERE SNAME LIKE ‘L%’; 8)检索年龄大于女同学平均年龄的男同学姓名和年龄 SELECT SNAME, AGE FROM S WHERE SEX=‘M’ AND AGE>( SELECT AVG(AGE) FROM S WHERE SEX=‘F’); 9)检索年龄大于所有女同学年龄的男同学姓名和年龄 SELECT SNAME, AGE FROM S WHERE SEX=‘M’ AND AGE> ( SELECT MAX(AGE) FROM S WHERE SEX=‘F’);
习题课一
第二章习题
评注:
◆
关系代数的运算次序: ( )、一元、二元 公共属性上的连接是自然连接,要消除结果中的 冗余属性 R中每个元组与S中每个元组比较、连接
◆
◆
数据库系统
习题课一wk.baidu.com
第二章习题
2.17 设有三个关系:
T(T#,TNAME,TITLE) C(C#,CNAME,T#)
S(S#,SNAME,AGE,SEX)
数据库系统 习题课一 第三章习题
3)求LIU老师所授课程的每门课程的平均成绩
SELECT C.C#, AVG(SCORE) FROM SC,C,T WHERE SC.C#=C.C# AND C.T#=T.T# AND TNAME=‘LIU’ GROUP BY C.C#;
4)统计每门课程的学生选修人数(超过10人的课程才 统计)。要求显示课程号和人数,查询结果按人数 降序排列,若人数相同,按课程号升序排列。
数据库系统 习题课一 第三章习题
3.7 试用SQL查询语句表达下列对3.2题的教学数据库 中四个基本表S、SC、C 、 T的查询: S (S#, SNAME, AGE, SEX) SC (S#, C#, SCORE) C (C#, CNAME, T#) T(T#, TNAME, TITLE) 1)统计有学生选修的课程门数 参考答案: SELECT COUNT( DISTINCT C# ) FROM SC; 2)求选修C4课程的女同学的平均年龄 SELECT AVG(AGE) FROM S WHERE SEX=‘女’ AND S# IN ( SELECT S# FROM SC WHERE C# =‘C4’ );
数据库系统
习题课一
第三章习题
8)检索选修课程包含LIU老师所授全部课程的学生学号 SELECT DISTINCT S# FROM SC AS X WHERE NOT EXISTS ( SELECT * FROM C ,T WHERE C.T#=T.T# AND TNAME=‘LIU’ AND NOT EXISTS ( SELECT * FROM SC AS Y WHERE Y.S#=X.S# AND Y.C#=C.C#));
数据库系统
习题课一
第二章习题
2.6. 设有关系R和S,如下:
R A 3 2 7 4 B 6 5 2 4 R-S A 3 2 4 C 7 7 3 3 S A 3 7 B 4 2 C 5 3
参考答案:
R∪S A 3 2 7 4 3
R∩S
B 6 5 4 C 7 7 3 A 7 B 2 C 3
B 6 5 2 4 4
数据库系统 习题课一 第三章习题
7)检索全部学生都选修的课程的课程号与课程名 解法二: SELECT C.C#, CNAME FROM SC,C WHERE SC.C#=C.C# GROUP BY C.C#,CNAME HAVING COUNT(*) =(SELECT COUNT(S#) FROM S)
2. 方便了数据库的设计和实现
数据库系统
习题课一
第一章习题
P179——5.13
设某商业集团数据库中有三个实体集。一是‚商 店‛实体集,属性有商店编号、商店名、地址等;二 是‚商品‛实体集,属性有商品编号、商品名、规格、 单价等;三是‚ 职工‛实体集,属性有职工编号、 姓名、性别、业绩等。 商店与商品间存在‚销售‛联系,每个商店可销 售多种商品,每种商品也可放在多个商店销售,每个 商店销售一种商品,有月销售量;商店与职工间存在 着‚聘用‛联系,每个商店有许多职工,每个职工只 能在一个商店工作,商店聘用职工有聘期和月薪。 试画出ER图,并在图上标明属性、联系的类型。
5)检索至少有学号为S2和S4的学生选修的课程的课程号
SELECT DISTINCT X.C# FROM SC AS X,SC AS Y WHERE X.C# = Y.C# AND X.S#=‘S2’ AND Y.S# =‘S4’ ;
数据库系统 习题课一 第三章习题
6)检索WANG同学不学的课程的课程号 SELECT C# FROM C WHERE C# NOT IN ( SELECT C# FROM S,SC WHERE S.S#=SC.S# AND SNAME=‘WANG’); 7)检索全部学生都选修的课程的课程号与课程名 SELECT C#, CNAME FROM C WHERE NOT EXISTS ( SELECT * FROM S WHERE NOT EXISTS ( SELECT * FROM SC WHERE C.C#=SC.C# AND SC.S#=S.S#));
数据库系统 习题课一 第三章习题
3.12 试用SQL更新语句表达下列对3.2题的教学数据库 中关系S、SC、C 、T的更新操作: 1) 往关系C中插一个课程元组(‘C8’,’VC++’,’T6’)
参考答案:
INSERT INTO C
VALUES(‘C8’,’VC++’,’T6’); 2)检索所授每门课程平均成绩均大于80分的教师 姓名,并把检索到的值送往另一个已存在的表 FACULTY(TNAME)
( πS#,C# (SC) ÷ πS#(S) )
8)检索选修课程包含LIU老师所授全部课程的学生学号
学生选课情况表示为: πS#,C#(SC)
LIU老师所授全部课程为:πC#(σTNAME=LIU’(C
πS#,C#(SC)÷πC#(σTNAME=‘LIU’(C
数据库系统 习题课一
T))
所学课程包含LIU老师所授全部课程的学生学号 T))
3,2(S) C 5 3 B 4 2
第二章习题
R
A 3 2 7 4
B 6 5 2 4
C 7 7 3 3
S
A 3 7
B 4 2
C 5 3 R S
σB<‘5’(R)
A 7 4 B 2 4 C 3 3 R
2<2
S
A 7
B 2
C 3
R.A R.B R.C S.A S.B S.C 7 2 3 3 4 5
数据库系统
数据库系统
习题课一
第三章习题
2) 检索所授每门课程平均成绩均大于80分的教师 姓名,并把检索到的值送往另一个已存在的表 FACULTY(TNAME)
解法一:
INSERT INTO FACULTY SELECT DISTINCT TNAME FROM C, T, SC WHERE C.T#=T.T# AND C.C#=SC.C# AND T# NOT IN( SELECT T# FROM C WHERE C# IN ( SELECT C# FROM SC GROUP BY C# HAVING AVG(SCORE)<=80 ) );
SC(S#,C#,SCORE) 用关系代数表达式表下列查询语句: 1)检索年龄小于17岁的女学生的学号和姓名 πS#,SNAME(σAGE<‘17’∧ sex=‘女’(S)) 参考答案: 或 π1,2(σ3<‘17’∧
4=‘女’(S))
2)检索男学生所学课程的课程号和课程名 πC#,CNAME(σsex = ‘男’(S SC C))))
第二章习题
第三章
3.2 对于教学数据库的四个基本表: S(S#, SNAME, AGE, SEX) SC(S#, C#, SCORE) C(C#, CNAME, T#) T(T#,TNAME,TITLE) 试用SQL的查询语句表达下列查询: 1)检索年龄小于17岁的女同学的学号和姓名 参考答案: SELECT S#, SNAME FROM S WHERE AGE<17 AND SEX=‘F’; 2)检索男同学所学课程的课程号和课程名 SELECT C.C#, CNAME FROM S,SC,C WHERE S.S#=SC.S# AND SC.C#=C.C# AND SEX=‘M’; 数据库系统 习题课一 第三章习题
6)检索WANG同学不学的课程的课程号 πC#(C)-πC#(σSNAME=‘WANG’(S SC))
数据库系统 习题课一 第二章习题
7)检索全部学生都选修的课程的课程号与课程名 学生选课情况表示为:πS#,C# (SC) 全部学生表示为: πS#(S) 全部学生都选修的课程可用除法操作表示为:
πC#,CNAME( C