【数据库原理】期末突击(2)

有不会的题可以后台问我的哦,看见了就会回。祝大家期末心想事成。

数据库大题显而易见就只有几类,大家可以根据老师平时讲解的例题对应去解决一类型的题目。

前提知识;

候选码==候选键==关键字==键==码

关系代数:(1)传统:交、并、差、笛卡尔积(2)专门:选择、投影、连接、除

关系演算:并、差、选择、投影、笛卡尔积

SQL:select */列名/表达式/函数/常量 from 表名/视图  where 条件 

           insert、update、delete

E-R图实体型、属性、关系

一:关系代数和关系演算的转换

这个题型变化大,举个例子

查询信息系(IS系)全体学生

关系代数:

关系演算:

t[5]中5的含义是IS在表中是第几个属性

二:SQL语句

现有关系数据库如下:

     学生(学号,姓名,性别,专业)

     课程(课程号,课程名,学分)

     学习(学号,课程号,分数)

用SQL语句实现下列1—5小题

1.        检索所有选修了课程号为“C112”的课程的学生的学号和分数;                 

2.        检索“英语”专业学生所学课程的信息,包括学号、姓名、课程名和分数;

3.        检索“数据库原理”课程成绩高于90分的所有学生的学号、姓名、专业和分数;

4.        检索没学课程号为“C135”课程的学生信息,包括学号,姓名和专业;  

5.        检索至少学过课程号为“C135”和“C219”的课程的学生的信息,包括学号、姓名和专业。

答案:

1.

SELECT 学号,分数 FROM 学习 WHERE 课程号=’C112’

2.

SELECT 学生.学号,姓名,课程名,分数

FROM 学生,学习,课程      

WHERE 学习.学号=学生.学号 AND 学习.课程号=课程.课程号 AND 专业=’英语’  

3.

SELECT 学生.学号,姓名,专业,分数

FROM 学生,学习,课程      

WHERE 学生.学号=学习.学号 AND 学习.课程号=课程.课程号 AND分数>90 AND 课程名=‘数据库原理’

4.

SELECT 学号,姓名,专业

FROM 学生

                WHERE 学号 NOT IN      (1分)

(SELECT 学号 FROM 学习 WHERE 课程号=‘C135’)

5.

SELECT 学号,姓名,专业 FROM 学生 WHERE 学号 IN  

(SELECT X1.学号 FROM  学习 X1,学习 X2  WHERE X1.学号=X2.学号 AND X1.课程号=‘C135’AND X2.课程号=‘C219’)

三:E-R图与关系模式的转换

设有如下教学环境,一个班级有多名学生,一个学生只属于一个班级。一个学生可以选修若干门课程,每门课若干学生选修,学生选修每门课有一个成绩。一门课程只有一位教师讲授,一名教师可以讲投多门课,每位教师属于一个教研室,一个数研室有若干教师。(前面是描述的实体和联系,后面描述的是属性)其中班级由班级编号、班级名称等属性描述;学生由学号、姓名等属性描述;课程由课程编号、课程名称等属性描述;教师由教师编号、教师姓名、教师地址等属性描述;教研室由教研室编号、教研室名称等属性描述。
1、根据上述语义画出ER图,要求在图中画出属性并注明联系的类型。
2、将ER模型转换成关系模式,并指出每个关系模式的主键和外键。

(1)

【数据库原理】期末突击(2)_第1张图片

(2)主键红色外键蓝色

学生(学号,姓名,班级编号)学生与班级多对一

班级(班级编号,班级名称)

课程(课程编号,课程名称,教师编号)课程与教师多对一

教师(教师编号,教师姓名,教师地址,教研室编号)教师与教研室多对一

教研室(教研室编号,教研室名称)

选修(学号,课程号(既是主键,又是外键),成绩)学生和课程是多对多的关系,所以需要介入选修表

四:候选码、函数依赖、范式

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

(1)读者编号是候选码吗?(2分)

(2)写出该关系模式的主码。(2分)

(3)该关系模式中是否存在非主属性对码的部分函数依赖?如果存在,请写出一个。(2分)

(4)该关系模式满足第几范式?并说明理由。(4分)

答案:

(1)不是(2分)。

(2)(图书编号,读者编号,借阅日期)(2分)

(3)存在(1分)。(图书编号,读者编号,借阅日期)→书名、(图书编号,读者编号,借阅日期)→作者名、(图书编号,读者编号,借阅日期)→出版社、(图书编号,读者编号,借阅日期)→读者姓名(1分,四个函数依赖任选一个即可)

(4)1NF。因为存在非主属性对码的部分函数依赖。

五:求闭包、函数依赖

设关系模式R(ABCD),F是R上成立的FD集,F{A→B,B→C}

(1)试写出属性集BD的闭包(BD)+

(2)是写出所有左部是B的函数依赖

【数据库原理】期末突击(2)_第2张图片

六:求候选码和关系分解

设有关系模式R(运动员编号、比赛项目、成绩、比赛类别、比赛主管),如果规定:每个运动员每参加一个比赛项目,只有一个成绩;每个比赛项目只属于一个比赛类别;每个比赛类别只有一个比赛主管。试回答下列问题:
①根据上述规定,写出模式R的基本FD和码;
②说明R不是2NF的理由,并把R分解成2NF关系模式集;
③进而分解成3NF关系模式集。

【数据库原理】期末突击(2)_第3张图片

七:无损分解、范式级别

设关系模式R(ABCD),在R上有5个相应的FD集及分解:
(1)F=(B→C,D→A,p=(BC,AD)
(2)F=(AB→C,C→A,C→D),p=(ACD,BC)
(3)F=(A-BC, C→AD),p=(ABC,AD)
(4)F=(A→B,B→C,C-D,p=(AB,ACD)
(5)F=(A→B,B→C,C→D,p=(AB,AD,CD)
试对上述5种情况分别回答下列问题:
a、确定R的关键码。
b、是否是无损分解?
c、是否保持FD集?
d、确定p中每一模式的范式级别。

解:(1)

a、R的关键码为BD。
b、p不是无损分解。
c、p保持FD集F。
d、p中每一模式已达到BCNF级别。
(2)

a、R有两个关键码:AB和BC。
b、p是无损分解。
c、因为acD(F)=(C→A,C→D),Tgc(F)=中(没有非平凡的FD),所以p不保持FD,丢失了AB→C。
d、p中两模式均已达到BCNF级别。
(3)

a、R有两个关键码:A和C。
b、p是无损分解。
c、因为TABc(F)=(A→BC,C→A),TD(F)=(A→D),所以p保持FD。
d、在模式ABC中,关键码是A或BC,属性全是主属性,但有传递依赖(A→BC,BC→A),因此模式ABC是3NF,但不是BCNF,而模式AD显然已是BCNF。
(4)

a、R的关键码为A。
b、p是无损分解。
c、因为Tab(F)=(A→B,TacD(F)=(A→C,C→D),从这两个依赖集推不出原来的B→C,因此,不保持FD,丢失了B→C。
d、模式AB是BCNF,模式ACD不是3NF,只达到2NF级别。
(5)

a、R的关键码为A。
b、p不是无损分解。
c、因为TaB(F)=(A→B,tap(F)=(A→D),Tco(F)=(C→D),从这3个依赖集不能推理得到原来的B→C,因此p不保持FD,丢失了B→C。
d、p中每个模式均是BCNF级别。

你可能感兴趣的:(大学知识杂库,数据库)