第1页/共4页《数据库原理与应用》一.单项选择题(每题1分,共20分)1.目前市场上常见的DBMS90%以上都是基于(C)数据模型的。A.层次B.网状C.关系D.面向对象2.E-R图是在数据库设计中用来表示(A)的一种常用方法。A.概念模型B.逻辑模型C.物理模型D.面向对象模型3.(C)是数据库中全体数据的逻辑结构和特征的描述,是所有用户的公共数据视图。A.外模式B.内模式C.模式D.概念模式4.(B)也称存储模式,是数据库物理结构和存储方式的描述,是数据在数据库内部的表示方式。A.外模式B.内模式C.模式D.概念模式5.数据库的概念模型独立于(A)。A.具体的机器和DBMSB.E-R图C.信息世界D.现实世界6.在数据库中存储的是(C)。A.数据B.数据库模型C.数据以及数据之间的联系D.信息7.规范化理论是关系数据库进行逻辑设计的理论依据,根据这个理论,关系数据库中的关系必须满足:其每一个属性都是(B)。A.互不相关的B.不可分解的C.长度可变得D.互相关联的8.在数据模型中有“型”和“值(或实例)”两个对应的概念。其中数据库的模式是一个(D)的概念,是一个相对()的概念,而数据库在某一时刻的状态则是一个()的概念,是一个相对()的概念。A.型;变化;值;不变B.值;不变;型;变化C.值;变化;型;不变D.型;不变;值;变化9.关系表A的属性个数为5,元组个数为10;关系表B的属性个数为6,元组个数为20.则A与B的笛卡尔积A×B的属性有(D)个,元组个数有()个。A.30;200B.11;30C.30;30D.11;20010.父亲和子女的亲生关系属于(B)的关系。A.1:1B.1:nC.m:nD.不一定11.在SQL语言中,删除关系表中的一个属性列,要用动词(D),删除关系表中的一行或多行元组,要用动词()。A.delete,deleteB.drop,dropC.delete,dropD.drop,delete12.在SQL语言中,为关系模式增加一个属性要用动词(B),为关系表增加一行或多行元组要用动词()。A.insert,insertB.add,insertC.insert,addD.add,add13.实体完整性约束和SQL语言中的(A)相对应。A.primarykeyB.foreignkeyC.checkD.都不是14.参照完整性约束和SQL语言中的(B)相对应。A.primarykeyB.foreignkeyC.checkD.都不是15.在我们的学生-课程数据库中,SC表上建立了两个外码约束,被参照表是Student表和Course表,则最适当的说法是:A.Student表中的学生号Sno不能随意取值B.Course表中的课程号Cno不能随意取值C.SC表中学生号Sno不能随便D.SC表中学生号Sno、课程号Cno均不能随意取值16.如果在学生-课程数据库中的SC表上建立了参照完整性约束:ForeignKey(Sno)ReferencesStudent(Sno),ForeignKey(Cno)ReferencesCourse(Cno),则(D)操作可能会违背该完整性约束。A.在Student表上增加一行记录B.在Course表上增加一行记录C.在SC表上删除一行记录D.更新SC表上的记录17.关系R(X,Y,Z),函数依赖集FD={Y→Z,XZ→Y},则关系R是(C)。A.1NFB.2NFC.3NFD.BCNF18、表之间一对多关系是指_B_____。A.一张表与多张表之间的关系B.一张表中的一个记录对应另一张表中的多个记录C.一张表中的一个记录对应多张表中的一个记录D.一张表中的一个记录对应多张表中的多个记录19、SQL的SELECT语句中,“HAVING条件表达式”用来筛选满足条件的(D)A.列B.行C.关系D.分组20、SQL语言中INSERT、DELETE、UPDATE实现哪类功能D。A.数据查询B.数据控制C.数据定义D.数据操纵二.填空题(每空1分,共18分):1.从历史发展看来,数据管理技术经历了人工管理、文件管理和数据库管理三个阶段。2.在SQL语言中,用符号—代表单个字符,用符号%代表0到多个字符。3.在SQL语言中,为了使查询的结果表中不包含完全相同的两个元组,应在select的后面加上关键词distinct。4、在SQL语句中,与表达式“工资BETWEEN1210AND1240”功能相同的表达式是工资=1210and工资=1240。第2页/共4页25、在SQL语句中,与表达式“性别=‘男’or性别=’女’”功能相同的表达式是性别in(‘男’,’女’)。6.在数据库设计中,若关系模式设计得范式太低,可能会使得数据库存在数据冗余、修改复杂、插入异常和删除异常四个方面的弊端。采取的解决方法就是对该关系模式进行分解(或规范化)。7.根据关系理论,对一个关系模式的最起码的要求是满足一范式。8.如果一个关系模式中不存在非主属性对码(或候选码)的部分函数依赖,则该关系模式就达到了二范式。9、关系的完整性一般包括实体完整性规则参照完整性规则自定义完整性规则三.判断题:(每小题1分,共8分)1.SQLServer2005,Access,Oracle等DBMS,都是面向对象的数据库管理系统。(×)2.在关系数据模型中,只有一种结构——关系。不论是实体还是实体之间的联系都是用关系来表达的。(∨)3.一个数据库只能对应一个应用程序,即一个数据库只能为一个应用程序所用。(×)4.SQL语言是SQLServer数据库管理系统的专用语言,其它的数据库如Oracle、Sybase等都不支持这种语言。(×)5.对于一个基本关系表来说,列的顺序无所谓——即改变属性的排列顺序不会改变该关系的本质结构。(∨)6.对于一个基本关系表来说,行的顺序无所谓——即将一条记录插入在第一行和插入在第五行没有本质上的不同。(∨)7.在开发一个数据库应用系统的时候,无论什么时候,都是设计的数据库范式越高越好。(×)8.一个全码的关系模式,其范式一定达到了三范式。(∨)四.用SQL语言完成下面要求的功能:(每小题2分,共44分):1、设某公司数据库中有关系模式如下:职工(职工号,职工名,性别,出生日期)公司(公司号,公司名,地址)工作(职工号,公司号,工资)1)设置约束使所有职工的工资不能低于2000元。2)删除出生日期在1950年1月1日前的职工记录3)超过50岁职工的工资增加200元。4)查询每个公司女职工的平均工资。5)查询不在“希望”公司工作的所有职工的职工号。1)altertable工作addconstraintC1check(工资=2000)2)deletefrom职工where出生日期’1950-1-1’或year(出生日期)19503)update工作set工资=工资+200whereyear(getdate()-year(出生日期))=504)select公司号,公司名avg(工资)平均工资from职工,公司,工作where职工.工号=工作.工号and公司.公司号=工作.公司号and性别=‘女’groupby公司号5)select职工号from职工,工作,公司where工作.职工号=职工.职工号and公司.公司号=工作.公司号and公司.公司名!=’希望’2、给定一个学生-课程数据库,其中包括学生基本信息表Student(Sno,Sname,Sdept,Ssex,Sage)、课程表Course(Cno,Cname,Cpno,Ccredit)和学生选课表SC(Sno,Cno,Grade),其含义和数据类型如教材中所示,不再赘述。(1)查询计算机系(CS)全体学生的基本信息。Select*FromStudentWhereSdept=’CS’(2)查询C02号课程不及格的学生的学号、考试成绩。SelectSno,GradeFromSCWhereCno=’C02’AndGrade60(3)查询选修了数据库原理这门课的学生的学号、姓名、性别、课程号、学分、成绩。查询结果按照成绩降序排列。SelectStudent..Sno,Sname,Ssex,,SC.Cno,Ccredit,GradeFromStudent,SC,CourseWhereStudent.Sno=SC.SnoAndSC.Cno=Course.CnoAndCname=’数据库原理’(4)查询课程号为C02的课程的选课人数和平均考试分数。为了使得结果更清晰易懂,请在查询结果表中分别给这两列查询结果起别名“选课人数”和“平均分数”。SelectCount(Sno)选课人数,AVG(Grade)平均分数FromSCWhereCno=‘C02’(5)查询每个学生的学号及其对应的选课门数。第3页/共4页3SelectSno,Count(Cno)FromSCGroupBySno(6)查询平均考试成绩高于85分的学生的学号、姓名、平均成绩,并将查询结果按照学号升序排列。SelectStudent.Sno,Sname,AVG(Grade)FromStudent,SCWhereStudent.Sno=SC.SnoGroupByStudent.Sno,SnameHavingAVG(Grade)85OrderByStudent.Sno(7)已知学号由7位字符构成,其中的前5位代表班号,后2位代表学生在本班的学号。请将12345班学生C02号课程的考试成绩增加10%。UpdateSCSetGrade=Grade*(1+0.1)WhereSnoLike‘12345%’AndCno=’C02’(8)建立SC(Sno,Cno,Grade)表。要求学号Sno由7位字符构成,课程号Cno由5位字符构成,成绩Grade由0-100之间(包括0和100)的整数构成。将(Sno,Cno)设为主码,并建立参照完整性约束,使得Sno和Cno分别参照Student和Course的相应属性取值。CreateTableSC(SnoChar(7),CnoChar(5),GradeintCheck(GradeBetween0and100),PrimaryKey(Sno,Cno),ForeignKey(Sno)ReferencesStudent(Sno).,ForeignKey(Cno)ReferencesCourse(Cno))(9)在Student表中插入这样一条新生记录——学号:1234599,姓名:马小立,年龄20岁系别:IS。InsertIntoStudent(Sno,Sname,Sage,Sdept)Values(‘1234599’,‘马小立’,20,‘IS’)(10)在Student表中注册的12345班全体学生都要选修学号为C10的课程。请将这一选课信息插入到SC(Sno,Cno,Grade)表中。InsertIntoSC(Sno,Cno)SelectSno,‘C10’FromStudentWhereSnoLike‘12345%’(11)学号为1234510的学生已经退学。请将Student表中该学生的基本信息删除。DeleteFromStudentWhereSno=’1234510’老师操作:2、给定一个学生-课程数据库,其中包括学生基本信息表Student(Sno,Sname,Sdept,Ssex,Sage)、课程表Course(Cno,Cname,Cpno,Ccredit)和学生选课表SC(Sno,Cno,Grade),其含义和数据类型如教材中所示,不再赘述。(1)查询计算机系(CS)全体学生的基本信息。Select*fromstudentwhereSdept=‘CS’(2)查询C02号课程不及格的学生的学号、考试成绩。Selectsno学号,grade考试成绩fromscwhereCno=‘C02’andGrade60(3)查询选修了数据库原理的学生的学号、姓名、性别、课程号、学分、成绩。查询结果按照成绩降序排列。SelectStudent.Sno,Sname,Sse