1、数据库复习题一、选择题: 1、数据的独立性是指(C) A. 数据库的数据依赖于用户的应用程序 B. DBMS与DB相互独立 C. 用户的应用程序与数据库的数据相互独立 D. 用户应用程序与DBMS相互独立 2、数据完整性规则是指数据模型中的(A)所具有的制约和依存规则。 A. 数据及其联系 B. 数据及其属性 C. 结构及其属性 D. 实体及其结构 3、关系数据库系统实现专门的关系运算包括(C) A.排序、索引、统计 B. 关联、更新、排序 C.选择、投影、连接 D. 显示、打印、制表 考点数据库设计基础 评析 此题为数据库的基本概念,如果你完全没学过数据库,可以对照办工软件的电子表格进行 如
2、下理解: 选择: 我们根据某条件选择出一行或多行元组(一个元组即为二维表中的一行) 投影: 按字段(也称属性,比如学生关系(学号,姓名,出生年月,性别),学号、姓名 都是属性)选取一列或多列(一个二维表中所有元组在某一列或几列上截取出来)。 连接: 2个或2个以上的表连接组成一张新的表,通常有条件连接。比如学生关系(学号, 姓名,系号),又有一张系表(系号,系名,主任),2张表可以合并为一张这样的表 (学号,姓名,系号,系名,主任) 4、设有属性A,B,C,D,以下表示中不是关系的是(C) A.R(A) B.R(A,B,C,D) C. R(ABC D) D.R(A,B) 5、设关系R(A,B,
3、C)和S(B,C,D),下列各关系代数表达式不成立的是(B) A.A(R) D(S) B. R U S C. B(R) B(S) D. R S 6、设有关系W(工号,姓名,工种,定额),将其规范化到第三范式的正确答案是(B) A.W1(工号,姓名)W2( 工种,定额) B. W1(工号,姓名,工种)W2(工种,定额) C. W1(工号,工种,定额) W2(工号,姓名) D.W1(工号,定额) W2(姓名,工种) 7、若关系模式R(A,B,C,D),函数依赖为:AC,CDB,则R所属的最高范式(A) A.R 1N F B. R 2N F C. R 3N F D. R BCN F 几个范式的规范过
4、程。 1NF 去掉部分依赖- 2NF 去掉传递依赖- 3NF 去掉主属性对码的部分和传 递依赖 -BCNF 去掉非平凡非函数依赖的多值依赖 8、下面列出的数据库管理技术发展的三个阶段中,没有专门的软件对数据进行管理的是哪 些? I人工管理阶段 II文件系统阶段 III数据库阶段(D) A. I 和 II B. 只有 II C. II 和 III D.只有 I 9、当关系R和S自然联接时,能够把R中原该舍弃的元组放到结果关系中的操作是(A) A、左外联接 B、右外联接 C、自联接 D、交叉联接 10、数据的存储结构与数据的逻辑结构之间的独立性称为数据的(B) A、结构独立性 B、物理独立性 C、
5、逻辑独立性 D、分布独立性 题目的意思是指,数据的存储结构不依赖与数据的逻辑结构; 相反,如果数据的逻辑结构不依赖与数据的物理存储结构,这个特性为逻辑独立性。 11、在数据库三级模式中,描述用户数据视图的是数据库的(C) A、存储模式 B、逻辑模式 C、外模式 D、内模式 12、关系R(ABC)与S(BCD),下列运算中,不合理的是(C) A、RS B、BC(R) BC(S) C、RS D、RS 13、关系R(ABC)与S(BCD),运算RS结果的属性个数是(C) A、3 B、2 C、1 D、不一定 14、在K元关系R中,公式55T=e (R) (3) R3 = RWPQTR.YW.YB2bc
6、ddm2bcddn9ad6fn7gcfdm7gcfdn7gcddm7gcddnPQTY9aefTYcdefd6cf (4) R4 = 2,1,6(3=5 (RD) (5) R5 = RD QPD.Yb2dg7dg7da9fb2f PQ2b三、关系表达式1、已知关系模式:学生S(学号,姓名,性别,年龄,系别),课程C(课程号,课程名,先修课程,学分), 选课SC(学号,课程号,成绩), 用关系代数写出下述检索。 (1)查询数学系的女学生的姓名,年龄。 姓名,年龄(性别=女 系别=数学(S) (2)查询计算机系成绩及格的男学生的姓名、年龄、成绩。 姓名,年龄,成绩(性别=男系别=计算机 (S)成绩
7、=60(SC) (3)查询没有任何一门课程成绩不及格的所有学生的信息,包括学号、姓名和专业。 学号,姓名,专业(学号(S)-(学号(成绩60(SC)S) (4)查询选修了全部学分为4分的课程的学生姓名、课程名、成绩。 姓名,课程名,成绩(S(SC学分=4 (C)SCC) (5)查询选修了课程号为C2或C6并且成绩不及格的学生的学号及成绩。 学号,成绩(S成绩ALL( SELECT empPay FROM Employees WHERE empSex=女 ) (6)显示所有职工的获奖次数,包括职工姓名和获奖次数(number)。 SELECT empName,COUNT(hortationDat
8、e) AS number FROM Employees LEFT JOIN hortation ON hortation.empCardId=Employees .empCardId GROUP BY Employees .empCardId (7)IBM公司的职工工资上调10%。 UPDATA Employees SET empPay=empPay*1.1 WHERE empWorkPlace=IBM (8)将至少获得两次奖励以上的职工工资上调10%。 UPDATA Employees SET empPay=empPay*1.1 WHERE (empCardId=ANY( SELECT em
9、pCardId FROM Employees LEFT JOIN hortation ON hortation.empCardId=Employees .empCardId GROUP BY Employees .empCardId HAVING COUNT(empCardId)=2 ) (9)编写视图vwEmployeeInfo,显示所有的基本信息及获奖情况(包括获奖时间和获奖内容) CREATE VIEW vwEmployeeInfo AS SELECT hortation.empCardId,empName,empSex,empBirthDate,empWorkDate, EmpPay,
10、empWorkPlace,empHomeAddress,hortationDate,hortationContent FROM Employees LEFT JION hortation ON hortation.empCardId=Employees.empCardId (10)编写存储过程upRelation,根据参加工作的年份,查询这一年每个单位的进人情况,显示工作单位、人数。 CREATE PROCEDURE upRelation ( empWorkDate datetime, empWorkPlace Char(20), empCOUNT INT ) AS SELECT empWor
11、kPlace=empWorkPlace,empCOUNT=COUNT(empCardId) FROM Employees GROUP BY empWorkDate,empWorkPlace WHERE empWorkDate=empWorkDate DECLEAR empWorkPlace Char(20) DECLEAR empCOUNT INT EXEC upRelationDX,empWorkPlace OUTPUT,empCOUNT OUTPUT SELECT 工作单位=empWorkPlace,人数=empCOUNT2、现有一个员工管理数据库YGGL,其中表结构如下:(涉及多表关联时
12、,请尽量使用e,d,s分别作为from关键字后Employees,Departments和Salary三张表的别名)(Select后的字段如需使用别名显示,会在题目中标识出来,否则请直接使用字段名)员工基本信息表(Employees)列名数据类型与长度是否允许为空说明EmployeeIDChar(6)Not null员工编号,主键NameChar(10)Not null姓名BirthdayDatetimeNot null出生日期SexBitNot null性别,1为“男”AddressChar(20)Null地址PhoneNumberChar(12)Null电话号码EmailAddressCh
13、ar(30)Null电子邮件地址DepartmentIDChar(3)Not null员工部门号,外键部门表(Departments)列名数据类型与长度是否允许为空说明DepartmentIDChar(3)Not null部门编号,主键DepartmentNameChar(20)Not null部门名NoteChar(1024)null备注工资表(Salary)列名数据类型与长度是否允许为空说明EmployeeIDChar(6)Not null员工编号,主键InComedecimal(10,2)Not null收入OutComedecimal(10,2)Not Null支出1、找出各部门中没有
14、提供“通信地址”的人数,显示部门名和统计人数(Number)。 2、统计各部门的平均收入,显示部门名和平均收入。3、查看所有员工的支出情况,显示员工名和支出。4、统计各部门在1966年以前出生的雇员的人数(qty)和部门名。5、查找部门中没有一个人提供了Email的部门名。 6、统计部门的平均收入比研发部的平均收入高的部门,显示部门名及其平均收入。7、将收入低于该部门平均收入的雇员的工资上调10%。8、创建视图,查看所有员工所在的部门名和收入(InCome),考虑有些新进员工还没有部门的情况。9、创建视图,显示平均收入小于2200的部门名。10、创建存储过程,根据部门号,统计该部门最高(Max
15、Salary)和最低(MinSalary)实际收入(实际收入为:收入-支出)的职工姓名及实际收入。为方便大家验证结果,提供上面2个查询练习的脚本:1、create table employees(empCardId varchar(18) not null primary key,empName char(8) not null,empSex Char(2) Not null check(男 or女), empBirthDate Datetime Not null,empWorkDate datetime Null,empPay money Not Null,empWorkPlace Char
16、(20) Null,empHomeAddress Char(30) Null)GOcreate table relation(empCardId varchar(18) Not null primary key,relationName Char(8) Not null,relaSex Char(2) Not null,relaWorkPlace Char(20) Null)GOcreate table hortation(empCardId varChar(18) Not null,hortationDate Datetime Not null,hortationContent varcha
17、r(100) Null)GOinsert into employees values(3305201,李勇, 男,1978-4-5,2000-5-7,1500,IBM,杭州市文一路115号)GOinsert into employees values(3305202,周正, 男,1977-5-9,1998-9-6,2500,IBM,郑州市五福街96号)GOinsert into employees values(3305203,上官皖, 女,1976-11-5,2000-8-15,2300,IBM,广州市白云路45号)GOinsert into employees values(3305204
18、,陈淘, 男,1977-2-13,2001-10-3,1800,华为,杭州市文一路115号)GOinsert into employees values(3305205,陈园, 女,1976-12-18,1998-4-12,1900,华为,福州市八一七路102号)GOinsert into employees values(3305206,齐亚, 男,1979-7-15,2001-6-27,3500,华为,上海市淮海路156号)GOinsert into employees values(3305207,曹洁, 女,1980-3-26,2001-8-7,1700,微软,郑州市五福街96号)GOinsert into employees values(3305208,萨骆, 男,1980-6-14,2001-1-24,2800,微软,上海市淮海路156号)GOinsert into employees values(330520
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1