《数据库复习题(共14页).doc》由会员分享,可在线阅读,更多相关《数据库复习题(共14页).doc(14页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
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、设关
3、系R(A,B,C)和S(B,C,D),下列各关系代数表达式不成立的是(B) A.A(R)wv D(S) B. R U S C. B(R) B(S) D. R wvS 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
4、 F 几个范式的规范过程。 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、结构独立性
5、B、物理独立性 C、逻辑独立性 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 = RWPQT
6、R.YW.YB2bcddm2bcddn9ad6fn7gcfdm7gcfdn7gcddm7gcddnPQTY9aefTYcdefd6cf (4) R4 = 2,1,6(3=5 (RD) (5) R5 = RD QPD.Yb2dg7dg7da9fb2f PQ2b三、关系表达式1、已知关系模式:学生S(学号,姓名,性别,年龄,系别),课程C(课程号,课程名,先修课程,学分), 选课SC(学号,课程号,成绩), 用关系代数写出下述检索。 (1)查询数学系的女学生的姓名,年龄。 姓名,年龄(性别=女 系别=数学(S) (2)查询计算机系成绩及格的男学生的姓名、年龄、成绩。 姓名,年龄,成绩(性别=男系别
7、=计算机 (S)成绩=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(ho
8、rtationDate) 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(
9、 SELECT empCardId 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,empWorkDat
10、e, EmpPay,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 SEL
11、ECT empWorkPlace=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电话号码Emai
13、lAddressChar(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支出
14、1、 找出各部门中没有提供“通信地址”的人数,显示部门名和统计人数(Number)。 2、统计各部门的平均收入,显示部门名和平均收入。3、查看所有员工的支出情况,显示员工名和支出。4、统计各部门在1966年以前出生的雇员的人数(qty)和部门名。5、查找部门中没有一个人提供了Email的部门名。 6、统计部门的平均收入比研发部的平均收入高的部门,显示部门名及其平均收入。7、将收入低于该部门平均收入的雇员的工资上调10%。8、创建视图,查看所有员工所在的部门名和收入(InCome),考虑有些新进员工还没有部门的情况。9、创建视图,显示平均收入小于2200的部门名。10、创建存储过程,根据部门号,
15、统计该部门最高(MaxSalary)和最低(MinSalary)实际收入(实际收入为:收入-支出)的职工姓名及实际收入。为方便大家验证结果,提供上面2个查询练习的脚本:1、create table employees(empCardIdvarchar(18)not nullprimary key,empNamechar(8)not null,empSexChar(2) Not null check(男 or女), empBirthDateDatetimeNot null,empWorkDatedatetimeNull,empPaymoneyNot Null,empWorkPlaceChar(2
16、0)Null,empHomeAddressChar(30)Null)GOcreate table relation(empCardIdvarchar(18)Not nullprimary key,relationNameChar(8)Not null,relaSexChar(2)Not null,relaWorkPlaceChar(20)Null)GOcreate table hortation(empCardIdvarChar(18)Not null,hortationDateDatetimeNot null,hortationContentvarchar(100)Null)GOinsert
17、 into employees values(,李勇, 男,1978-4-5,2000-5-7,1500,IBM,杭州市文一路115号)GOinsert into employees values(,周正, 男,1977-5-9,1998-9-6,2500,IBM,郑州市五福街96号)GOinsert into employees values(,上官皖, 女,1976-11-5,2000-8-15,2300,IBM,广州市白云路45号)GOinsert into employees values(,陈淘, 男,1977-2-13,2001-10-3,1800,华为,杭州市文一路115号)GO
18、insert into employees values(,陈园, 女,1976-12-18,1998-4-12,1900,华为,福州市八一七路102号)GOinsert into employees values(,齐亚, 男,1979-7-15,2001-6-27,3500,华为,上海市淮海路156号)GOinsert into employees values(,曹洁, 女,1980-3-26,2001-8-7,1700,微软,郑州市五福街96号)GOinsert into employees values(,萨骆, 男,1980-6-14,2001-1-24,2800,微软,上海市淮海
19、路156号)GOinsert into employees values(,陈敏, 女,1977-5-23,2001-3-13,1600,微软,杭州市文一路115号)GOinsert into employees values(,余涛, 男,1978-7-24,2000-2-26,1200,微软,郑州市五福街96号)GOinsert into employees values(,贺军, 男,1975-3-2,1998-7-7,3800,微软,广州市白云路45号)GOinsert into employees values(,姜绮, 女,1979-10-8,2000-11-14,2000,微软,
20、杭州市文一路115号)GOinsert into relation values(,李司,男,杭电)GOinsert into relation values(,王卷,女,微软)GOinsert into relation values(,张明,男,IBM)GOinsert into relation values(,张涛,男,华为)GOinsert into relation values(,吴晨,男,IBM)GOinsert into relation values(,李翰,男,杭电)GOinsert into hortation values(,2002-10-8,年度先进个人)GOin
21、sert into hortation values(,2002-7-8,年度先进个人)GOinsert into hortation values(,2001-8-5,年度先进个人)GOinsert into hortation values(,2002-9-14,年度先进个人)GOinsert into hortation values(, 2002-2-24,年度先进个人)GOinsert into hortation values(,2002-3-12,年度先进个人)GOinsert into hortation values(,2003-11-4,年度先进个人)GOinsert in
22、to hortation values(,2002-12-25,年度先进个人)GOinsert into hortation values(,2000-11-14,年度先进个人)GOinsert into hortation values(,2002-8-16,年度先进个人)GOinsert into hortation values(,2003-9-23,年度先进个人)GO 2、create table Employees(EmployeeIDChar(6)Not nullprimary key,NameChar(10)Not null,BirthdayDatetimeNot null,Se
23、xBitNot null,AddressChar(20)Null,PhoneNumberChar(12)Null,EmailAddressChar(30)Null,DepartmentIDChar(3)Not null)GOcreate table Departments(DepartmentIDChar(3)Not nullprimary key,DepartmentNameChar(20)Not null,NoteChar(1024)null)GOcreate table Salary(EmployeeIDChar(6)Not nullprimary key,InComedecimal(1
24、0,2)Not null,OutComedecimal(10,2)GOinsert into Employees values(,王林,1956-1-23,1,null,null,2)GOinsert into Employees values(,伍容华,1966-3-28,1,北京东路100-2,null,1)GOinsert into Employees values(,王向蓉,1972-12-9,1,四牌楼10-108,null,1)GOinsert into Employees values(,李丽,1950-7-30,0,中山东路102-2,lili,1)GOinsert into
25、Employees values(,刘明,1962-10-18,1,虎距路100-2,liumin,5)GOinsert into Employees values(,朱俊,1955-9-28,1,牌楼巷5-1806,zhujun,5)GOinsert into Employees values(,钟敏,1969-8-10,0,中山路108-3,zhmin,3)GOinsert into Employees values(,张石兵,1964-10-1,1,解放路34-9-203,zhang,5)GOinsert into Employees values(,林涛,1967-4-2,1,中山北路
26、247-2,null,3)GOinsert into Employees values(,李玉岷,1958-9-20,1,热和路209-3,lymin,4)GOinsert into Employees values(,叶凡,1968-11-18,1,北京西路7-502,null,4)GOinsert into Employees values(,陈林琳,1959-9-3,0,汉中路120-4,null,4)GOinsert into Departments values(1,财务部,null)GOinsert into Departments values(2,人力资源部,null)GOinsert into Departments values(3,经理办公室,null)GOinsert into Departments values(4,研发部,null)GOinsert into Departments values(5,市场部,null)GOinsert into Salary values(,2100.8,123.09)GOinsert into Salary values(,1582.62,88.03)