试述DBS的三级模式结构,这种结构的优点是什么。
答:外模式:是模式的子集,正对用户所使用的局部数据的逻辑结构和特征的描述。
模式:对数据库中全体数据的逻辑结构和特征的描述。
内模式:是对数据物理结构和存储方式的描述。
三层模式结合两级映象实现了数据库系统中的数据具有较高的逻辑独立性和物理独立性。
3. 什么叫数据与程序的物理独立性和逻辑独立性,为什么数据库系统具有数据与程序的独立性。
答:数据库的物理结构改变时,应用程序不用修改,保证了数据与程序的物理独立性。(数据库中的学生表由D:/改存为E:/)
数据库的逻辑结构改变时,应用程序不用修改,保证了数据与程序的逻辑独立性。(数据库中的学生表的学号字段由int改为char)
4. 简述过程性语言和非过程性语言的主要区别。
答:过程性语言:户编程时,不仅需要指出‘做什么’,还需要指出‘怎么做’的语言。(层次、网状数据库)
非过程性语言:用户编程时,只需指出‘做什么’,不需要指出‘怎么做’的语言。(关系数据库)
反例: R(S,M,A)中有S→→M, S→→A, 而S不含码,所以RÏ4NF.
n关系模式R(书号,书名,作者),规定书号只有一个书名,但不同书号可以有相同书名;每本书可以有多个作者合写,但每个作者参与编写的书的书名互不相同。
n候选码:(书号,作者) ,(书名,作者)
n函数依赖:书号→书名,(书号,作者)→书名,(书名,作者)→书号
n问题:冗余和更新异常
n原因:这里:(书号,作者) ,(书名,作者)都是候选码,因此书号,书名,作者都是主属性。因为不存在非主属性对码的传递依赖或部分依赖,所以R ∈3NF,但是书号→书名,书号是决定因素,但书号不是码. ∴ R ÏBCNF
n将STC分解为:R1(书号,书名), TC(作者,书号)。它们都是BCNF。
关系模式候选码的问题:
若W是候选码,必须满足两个条件:W的闭包是U,W没有冗余.
设关系模式R中U=ABC.......N个属性
U在FD中的四中范围
(1)左右出现;
(2)只在左部出现;
(3)只在右部出现;
(4)不在左右出现;
方法:按以下几步来求候选键
1.只在FD右部出现的属性,不属于候选码;
2.只在FD左部出现的属性,一定存在与任何候选码当中;
3.外部属性一定存在与任何候选码当中;
4.其他属性逐个与2,3的属性组合,求属性闭包,直至X的闭包等于U,若等于U,则X为候选码.
举例说明:
R,U=(ABCDEG),F={AB-->C,CD-->E,E-->A.A-->G},求候选码.
因为G只在右边出现,所以G一定不属于候选码;
而B,D只在左边出现,所以B,D一定属于候选码;
BD的闭包还是BD,那么对BD进行组合,除了G以外,BD可以跟A,C,E进行组合
先看ABD
ABD本身自包ABD,而AB-->C,CD-->E,A-->G,所以ABD的闭包为ABDCEG=U
再看BDC
CD-->E,E-->A,A-->G,BDC本身自包,所以BDC的闭抱为BDCEAG=U
最后看BDE
E-->A,A-->G,AB-->C,BDE本身自包,所以BDE的闭包为BDEAGC=U
再问:方法中的第3条“外部属性一定存在于候选键中”外部属性是不是不是就是指F中没有出现的属性呢?
是的. 举例R
u=(ABCDEF),F={AB-->C,BD-->E,E--A}
BD只在FD的左边出现,所以BD一定属于候选码当中,
又因为F是FD的外部属性,所以F也属于候选码当中,
我们现在来推BDF的闭包,看它能不能满足U,能就是候选码.
BDF由于自包,所以有BDF,然后BD-->E,E-->A,而AB-->C,所以BDF是R的闭包。
一个关系的结构称一个关系模式, 关系模式的集合是数据库模式.
问3NF和BCNF 的区别是什么
3NF是规定了非主属性和主码间不能有传递依赖,而BCNF规定了任何属性间都不能有传递依赖.
任何一个二目关系是属于BCNF,因为关系只有二个属性,其依赖关系只能是A决定B,或B决定A,或者是没有依赖关系.不存在传递依赖和部分依赖.
4.假设学生一课程数据库关系模式如下:
Student(Sno,Sname,Sage,Ssex)
Course(Cno,Cname,Teacher)
SC(Sno,Cno,Grade)
用SQL语句表达下列查询:
(3)找出至少选修刘老师讲的一门课的学生姓名。
(4)找出“程序设计”课成绩在90分以上的学生姓名。
(5)找出不学C3课的学生姓名。
(6)找出至少选修C1课和C2课的学生学号。
答案:
(3)SELECT Sname
FORM Student,SC,Course
WHIRE Student.Sno=SC.Sno AND SC.Cno=Course.Cno AND Teacher LIKE ’刘%’;
(4)SELECT Sname
FORM Student,SC,Course
WHIRE Student.Sno=SC.Sno AND SC.Cno=Course.Cno
AND Cname=’程序设计’ AND Grade>90;
(5)SELECT Sname
FORM Student
WHIRE NOT EXISTS
(SELECT *
FORM SC
WHIRE Sno=Student.Sno AND Cno=’C3’);
(6)SELECT X.Sno
FROM SC AS X, SC AS Y
WHERE X.Sno=Y.Y.Sno AND X.Cno=’C1’ AND Y.Cno=’C2’;
5.按照题4的数据库模式谢出下列查询:
(1)求孙老师讲的每门课的学生平均成绩。
(2)统计选修各门课的学生人数。输出课程号和人数。查询结果按人数降序排列,若人数相同,则按课程号升序排列。
答案:
(1)SELECT Cno,AVG(Grade)
FORM SC,Course
WHERE SC.Cno=Course.Cno AND Teacher LIKE ‘孙%’
GROUP BY Cno
(2)SELECT Cno,COUNT(*)
FORM SC
GROUP BY Cno
ORDER BY COUNT(*)DESC,Cno
(3)在学生选课关系SC中,把英语课的成绩提高10%。
(3)UPDATE SC SET Grade=1.1*Grade
WHERE Cno IN
(SELECT Cno
FORM Course
WHERE Cname=’英语’);
一个不可能不满足的函数依赖称为平凡的函数依赖,如{ID,Course} →{ID},事实上,当且仅当函数依赖的右边是左边的子集时,该函数依赖才是平凡的函数依赖。
平凡的函数依赖并没有实际意义,只有非平凡的函数依赖才和真正的完整性约束条件相关。
数据流程图是用于描述结构化方法中(需求分析 )阶段的工具。
在数据库设计中,将ER图转换成关系数据模型的过程属于(概念设计阶段 )。
8. 在关系数据库设计中,设计关系模式是数据库设计中(逻辑设计阶段 )阶段的任务 。
7. 关系模式R中的属性全是主属性,则R的最高范式必定是(3NF ) 。
12. 关系模式的任何属性(不可再分) 。
任何一个关系模式都一定有码
关系代数运算是以(集合运算)为基础的运算 。
下述( )不是DBA数据库管理员的职责 。