宝子们心心念念的数据库大题来啦~
我已经整理好啦~你们根据目录找对应题目就好啦,嘿嘿~姐姐是不是还有点小贴心呢?
° · 🛸 🌏 ° 🌘 • .° ✯✯ ★ *° 🛰 °· . • °★ •
▁▂▃▄▅▆▇▇▆▅▄▃▁▂▃.
目录
2.设R={A,B,C,D},F={A→B,A→C,C→D},ρ={ABC,CD}。分解是否无损联接分解?试说明理由。
3.设关系模式R(ABC),函数依赖F={A→B,B→A,A→C}满足3NF还是满足BCNF,试说明理由。
7.设有关系模式R(A,B,C,D,E,G,K),其最小函数依赖集F={AB→C,B→DE,C→G,G→A}
数据库常考大题
一、应用题
1. 设有三个关系:
S(S#,SNAME,AGE,SEX)
C(C#,CNAME,TEACHER)
SC(S#,C#,GRADE)
试用关系代数表达式表示下列查询语句:
(1)检索至少选修两门课程的学生学号(S#)。
∏S# (σ1=4∧2≠5(SC×SC)
(2)检索全部学生都选修的课程的课程号(C#)和课程名(CNAME)。
∏C#,CNAME(C⋈(∏S#,C#(SC) ÷∏S#(S))
(3)检索选修课程包含“陈军”老师所授课程之一的学生学号(S#)。
∏S#(SC⋈∏C#(σTEACHER=’陈军’(C))
(4)检索选修课程号为k1和k5的学生学号(S#)。
∏S#, C# (SC) ÷∏C#(σC#=’k1’∨ C#=’k5’(C))
2.设教学数据库中有三个基本表:
学生表S(SNO,SNAME,AGE,SEX),其属性分别表示学号、学生姓名、年龄、性别。课程表C(CNO,CNAME,TEACHER),其属性分别表示课程号、课程名、上课教师名。选修表SC(SNO,CNO,GRADE),其属性分别表示学号、课程号、成绩。
有如下SQL查询语句:
SELECT CNO
FROM C
WHERE CNO NOT IN
(SELECT CNO
FROM S,SC
WHERE S.SNO=SC.SNO
AND SNAME='张三');
请完成下列问题:
(1)用汉语句子阐述上述SQL语句的含义。
答:查询张三同学没有选修的课程的课程号。
(2)用等价的关系代数表达式表示上述SQL查询语句。
答:πCNO(C)- πCNO (sSNAME='张三' (S)⋈SC) 或
πCNO(C)- πCNO (sSNAME='张三' (S⋈SC))
3.现有关系数据库如下:
学生(学号,姓名,性别,专业)
课程(课程号,课程名,学分)
学习(学号,课程号,分数)
分别用关系代数表达式和SQL语句实现下列1—5小题
(1)检索所有选修了课程号为“C112”的课程的学生的学号和分数;
解:SQL语句:
SELECT 学号,分数 FROM 学习 WHERE 课程号=’C112’
(SELECT 学号,分数 FROM 学习,WHERE 课程号=’C112’)
关系代数:
π学号,分数(课程号=’C112’(学习))
(π学号,分数,课程号=’C112’(学习)
(2)检索“英语”专业学生所学课程的信息,包括学号、姓名、课程名和分数;
SQL语句:
SELECT 学生.学号,姓名,课程名,分数
FROM 学生,学习,课程
WHERE 学习.学号=学生.学号 AND 学习.课程号=课程.课程号 AND 专业=’英语’
关系代数:
π学号,姓名,课程名,分数(π学号,姓名(专业=’英语’(学生))学习π课程号,课程名(课程))
(π学号,姓名,课程名,分数1分,π学号,姓名(专业=’英语’(学生))学习π课程号,课程名(课程)
(3)检索“数据库原理”课程成绩高于90分的所有学生的学号、姓名、专业和分数;
SQL语句:
SELECT 学生.学号,姓名,专业,分数
FROM 学生,学习,课程
WHERE 学生.学号=学习.学号 AND 学习.课程号=课程.课程号 AND分数>90 AND 课程名=‘数据库 原理’
关系代数:
π学号,姓名,专业,分数(π学号,姓名,专业(学生)(分数>90(学习))π课程号,课程名( 课程名=’数 据库原理’(课程)))
(π学号,姓名,专业,分数,π学号,姓名,专业(学生)(分数>90(学习))π课程号,课程名(课程名=’数据库原理’(课程))
(4)检索没学课程号为“C135”课程的学生信息,包括学号,姓名和专业;
SQL语句:
SELECT 学号,姓名,专业
FROM 学生
WHERE 学号 NOT IN
(SELECT 学号 FROM 学习 WHERE 课程号=‘C135’)
关系代数:
(π学号(学生)-π学号(课程号=‘C135’ (学习)))(π学号,姓名,专业(学生)
(π学号(学生)-1分,π学号(课程号=‘C135’ (学习)))(π学号,姓名,专业(学生)
(5)检索至少学过课程号为“C135”和“C219”的课程的学生的信息,包括学号、姓名和专业。
SQL语句:
SELECT 学号,姓名,专业 FROM 学生 WHERE 学号 IN
(SELECT X1.学号 FROM 学习 X1,学习 X2 WHERE X1.学号=X2.学号 AND X1.课程号=‘C135’AND X2.课程号=‘C219’)
关系代数:
(π学号,课程号(学习)÷π课程号(课程号=‘C135’∨课程号=‘C219’ (课程)))π学号,姓名,专业(学生)
(π学号,课程号(学习)÷π课程号(课程号=‘C135’∨课程号=‘C219’ (课程))1分,π学号,姓名,专 业(学生)
4.设学生教学数据库中,有两个基本表:
学生表:S(Sno, Sname, Sage, Ssex)
成绩表:SC(Sno, Cno, Grade)
现有如下SQL语句:
SELECT Sname FROM S INNER JOIN SC ON S.Sno=SC.Sno
WHERE Grade >= 60
请给出关系代数式和题目含义。
解答: