数据库常考大题

 宝子们心心念念的数据库大题来啦~

我已经整理好啦~你们根据目录找对应题目就好啦,嘿嘿~姐姐是不是还有点小贴心呢?

° · 🛸   🌏 ° 🌘 • .°  ✯✯ ★ *° 🛰 °· . • °★ •

             ▁▂▃▄▅▆▇▇▆▅▄▃▁▂▃.

目录

 宝子们心心念念的数据库大题来啦~

数据库常考大题

一、应用题

1.设有三个关系:

2.设教学数据库中有三个基本表:

3.现有关系数据库如下:

4.设学生教学数据库中,有两个基本表:

二、证明题 

1.指出下列关系模式是第几范式?并说明理由。

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,试说明理由。

 4.设有关系R和函数依赖F:

5. 现有如下关系模式:借阅(图书编号,书名,作者名,出版社,读者编号,读者姓名,借阅日期,归还日期),基本函数依赖集F={图书编号→(书名,作者名,出版社),读者编号→读者姓名,(图书编号,读者编号,借阅日期)→归还日期}

6.某工厂生产多种产品,每种产品由不同的零件组装而成,有的零件可用在不同的产品上。产品有产品号和产品名两个属性,零件有零件号和零件名两个属性。根据语义设计E-R模型,并将E-R模型转换成关系模式,要求关系模式主码加下划线表示。

7.设有关系模式R(A,B,C,D,E,G,K),其最小函数依赖集F={AB→C,B→DE,C→G,G→A}

提示:

如何选出候选码?

三、程序设计题

1.设有如下4个关系模式:

2.某医院病房计算机管理中需要如下信息:

3.设有如下信息:

4.现有如下E-R图:


数据库常考大题

一、应用题

   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  

请给出关系代数式和题目含义。

解答:

评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

雨桐Miracle

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值