《数据库原理与系统》习习题解答_第1页
《数据库原理与系统》习习题解答_第2页
《数据库原理与系统》习习题解答_第3页
《数据库原理与系统》习习题解答_第4页
《数据库原理与系统》习习题解答_第5页
免费预览已结束,剩余15页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、数据库原理与系统习题解答习题一一、名词解释DB、DBMS、DBS、DBA、数据冗余、数据异常二、单项选择题1DBMS是 A、数据库 B、数据库系统 C、数据库应用系统 C、数据库管理软件2DB、DBMS和DBS三者之间的关系是A、DB包括DBMS和DBSB、DBMS包括DBS和DBC、DBS包括DB和DBMSD、DBS与DB和DBMS无关3关系数据模型的基本数据结构是A、树 B、图 C、索引 D、关系4层次数据模型的基本数据结构是A、树 B、图 C、索引 D、关系5层次模型实现数据之间联系的方法A、连接 B、指针 C、公共属性 D、关系6常见的数据模型是A、层次模型、网状模型、关系模型 B、概

2、念模型、实体模型、关系模型C、对象模型、外部模型、内部模型 D、逻辑模型、概念模型、关系模型7提供数据库定义、数据操纵数据控制和数据库维护功能的软件称为A、OS B、DS C、DBMS D、DBS三、简答题1数据库系统的组成部分2DBA的主要职责3文件系统的数据管理方法4文件系统的主要缺陷5数据库系统的主要优点6什么是数据模型7层次结构的特点8DBTG提出的关于数掂库的3个重要规范9关系数据模型的基本结构10关系数据模型实现数据联系的方法习题二一、概念题1解释下列事业术语的合义: 关系、元组、属性、属性域、超码、候选码、主码、外码。2简述关系的性质。3说明关系数据库实现数据之间联系的方法。4什

3、么是实体完整性和参照完整性5什么是数据字典和系统目录6什么是关系代数的选锈、投影、并、差、笛卡儿积、交和连接运算7什么是自然连接8什么是左外连接、右外连接和全外连接9外连接与自然连接的区别是什么二、单项选择题1下面对关系性质的描述中,错误的是 A、表中的行称为一个元组 B、行与列交叉点不允许有多个值 C、表中的一列称为一个属性 D、表中任意两行可能相同2“元数据”是指 A、数据结构的描述 B、数据项的描述 C、数据的来源 D、系统自身的各种有用信息,包括数据结构的描述3在数据库系统中,空值是 A、0 B、空格 C、空字符串 D、不确定4实体完整性是指关系中 A、不允许有空行 B、主码不允许空值

4、 C、属性值外码取空值 D、外码允许取空值5已知关系R与S如图所示:在关系S中,违反参照完整性约束的元组是 A、 (11,21) B、 (22,NULL) C、 (33,33) A、 (44,11)6已知关系R和S,RS等价于 A、(R-S)-S B、S-(S-R) C、(S-R)-R D、S-(R-S)7关系R和S各有10个元组,则关系R×S的元组个数为 A、10 B、20 C、100 D、不确定8从关系中选择指定的属性组成新关系的关系运算是 A、选取 B、投影 C、连接 D、笛卡儿乘积9有关系:学生(学号,姓名,性别,专业,宿舍编号,宿舍地址),主码是 A、宿合编号 B、学号 C

5、、宿舍地址,姓名 D、宿舍编号,学号10有两个关系:部门(编号,部门名称,地址电话)和职工(职工号,姓名,性别,职务编号)。职工关系的外码是 A、职工号 B、编号 C、职工号,编号 D、编号,部门名称11若关系R1和R2的结构相同,各有10个元组,则R1ÈR2的元组个数为 A、10 B、小于等于10 C、20 D、小于等于2012设关系R和S的属性个数分别为2和3,则与关系代数表达式等价的是A、 B、 C、 D、13当关系R和S自然连接时,能够把R和S中不满足连接条件的元组保留在结果关系中的运算是A、左外连接 B、右外连接 C、全外连接 D、等值连接14设关系R(A,B)和S(B,C

6、)中分别有10个和15个元组,属性B是R的主码则R|×| S中元组数目的范围是 A、(0,15) B、(10,15) C、(10,25) D、(0,150)l 5设有关系R和S如图226所示,则关系的元组数目是A、6 B、7 C、8 D、916设有关系R和S,如图227所示,R的主码是编号,S的主码是学号、外码是编号。若有如下4个元组:I(S3李林,C2),(Sl,江荷,C1), (S4,白玉C4), (S5,康嘉,NULL),能够插入关系3的元组是A、I, B、I, C、I, D、I,7已知关系R如图228所示,可以作为R主码的属性组是A、XYZ B、XYW C、XZW D、YZW

7、8关系R和S分别有20、15个元组,则RÈS、R-S、RS的元组数不可能是A、29,13,6 B、30,15,5 C、35,20,0 D、28,13,7R-S=R-(RS)9设关系R和S的属性数目分别是a和b、则关系R´S的属性数目是 A、a十b B、ab C、a×b D、ab三、解答题1设有4个关系模式:供应商关系:S(SNO,SNAME,CITY),属性依次是供应商号、供应商名称和所在城市零件关系:P(PNO,PNAME,COLOR),属性依次是是产品号、品名和颜色工程关系:J(JNO,JNAME,CITY),属性依次是是工程号、工程名和所在城市供应关系:SP

8、J(SNO,PNO,JNO,QTY),属性依次是供应商号、产品号、工程号和数量试用关系代数完成下列操作:()J1工程零件的所有供应商号i(2)求供应J1工程P1零件的供应商号;(3)求供应J1工程红色零件的供应商号;(4)求没有使用天津供应商生产的红色零件的工程号;(5)求S1供应商供应零件的所有工程号。2设有3个关系模式: 学生(学号,姓名,性别,专业) 课程(课程号,课程名称,学分) 成绩(学号,课程号,分数)试用关系代数表达式完成下列操作:(1)所有学生成绩获得满分(100分)的课程号、课程名称;(2)检索至少有一门课程的分数达到95分以上的学生信息,包括学号、姓名和专业(3)检索没有任

9、何一门课程成绩在80分以下的学生的信息,包括学号、姓名和专业(4)检索”英语”专业学生所学课程的信息,包括学号、姓名 、课程名称和分数;(5)检索“数据库原理“课程分数高于90分的所有学生的学号、姓名、专业和分数; (6)检索没有不及格分数的学生的信息,包括学号、姓名和专业;(7)检索“国际贸易”专业选修“数据库原理”课程的学号和姓名。答案:(1)所有学生成绩获得满分(100分)的课程号、课程名称;课程号,课程名称(分数=100(成绩)|×| 课程)(2)检索至少有一门课程的分数达到95分以上的学生信息,包括学号、姓名和专业学号,姓名,专业(分数>=95(成绩)|×|

10、 学生)(3)检索没有任何一门课程成绩在80分以下的学生的信息,包括学号、姓名和专业学号,姓名,专业(学生)-学号,姓名,专业(分数<80(成绩)|×| 学生)(4)检索”英语”专业学生所学课程的信息,包括学号、姓名 、课程名称和分数; 学号,姓名,课程名称,分数(课程|×| 成绩|×| 专业=英语(学生)(5)检索“数据库原理“课程分数高于90分的所有学生的学号、姓名、专业和分数; 学号,姓名,专业,分数(课程名称=数据库原理(课程)|×| 分数>90( 成绩)|×|学生)(6)检索没有不及格分数的学生的信息,包括学号、姓名和专业

11、;学号,姓名,专业(学生)-学号,姓名,专业(分数<60(成绩)|×| 学生)(7)检索“国际贸易”专业选修“数据库原理”课程的学号和姓名。(三表连接,投影)学号,姓名,专业(课程名称=数据库原理(课程)|×| 成绩|×| 专业=国际贸易(学生)3、设有3个关系模式: 员工(职工姓名,街道,城市) 工作(职工姓名,公司名称,工资) 公司(公司名称,城市)用关系代数表达式来表达下列问题:(1)列出泰斗公司所有员工的姓名;(2)列出泰斗公司所有员工的姓名和居住的城市;(3)列出泰斗公司所有年收入在10万元以上的员工姓名、居住的街道和城市(4)列出所有居住地与工作

12、的公司在同一城市的员工姓名;(5)列出不在泰斗公司的所有员工的姓名答案:(1)列出泰斗公司所有员工的姓名; 职工姓名(公司名称=泰斗公司(工作)(2)列出泰斗公司所有员工的姓名和居住的城市;职工姓名,城市(公司名称=泰斗公司(员工|×|工作)(3)列出泰斗公司所有年收入在10万元以上的员工姓名、居住的街道和城市职工姓名,街道,城市(公司名称=泰斗公司AND 工资>100000(员工|×|工作)Ù(4)列出所有居住地与工作的公司在同一城市的员工姓名;职工姓名 (员工.城市=公司.城市(员工|×|工作|×|公司) (5)列出不在泰斗公司的所有

13、员工的姓名职工姓名(员工)- 职工姓名(公司名称=泰斗公司(员工|×|工作|)习题三一、单项选择题1SQL语言是 A、高级语言 B、宿主语言 C、汇编语言 D、非过程化语言2在SQL语言查询语句中,SELECT子句实现关系代数的 A、投影运算 B、选择运算 C、连接运算 D、交运算3在SQL语言查询语句中,WHERE子句实现关系代数的 A、投影运算 B、选择运算 C、连接运算 D、交运算4为在查询结果中去掉重复元组应该使用保留字 A、UNIQUE B、UNION C、COUNT D、DISTINCT 5当关系R和S做自然连接时,能够保留R中不满足连接条件元组的操作是 A、左外连接 B

14、、右外连接 C、内部连接 D、全外连接6SQL语言中,更新表结构的的命令是 A、UPDATE TABLE B、MODIFY TABLE C、ALTER TABLE D、CHANGE TABLE7下列聚合函数中不忽略空值(NULL)的是 A、SUM(列名) B、MAX(列名) C、AVG(列名) D、COUNT(*)8SQL语言中,下列涉及空值操作的短语,不正确的是(VFP全部正确, SQL SERVER中C错) A、AGE IS NULL B、AGE IS NOT NULL C、AGENULL D、NOT (AGE IS NULL)9SQL语言中,删除一个表的命令是 A、CLEAR TABLE

15、 C、DROP TABLEC、DELETE TABLE D、REMOVE TABLE10设有一个关系:DEPT(DNO,DNANE)如果要找出倒数第三个字母为W并且至少包含4个字母的DNAME,则查询条件子句应写成WHERE DNANC LIKE 01”03”02”务员姓名 FROM 业务员,订单,客户 WHERE 业务员.业务员编号=订单.业务员编号 AND 订单.客户编号=客户.客户编号 AND 客户.客户姓名=王明SELECT 业务员.业务员姓名 FROM 业务员 inner join 订单 inner join 客户 on 业务员.业务员编号=订单.业务员编号 on 订单.客户编号=客

16、户.客户编号 where 客户.客户姓名=王明SELECT 业务员姓名 FROM 业务员 WHERE 业务员.业务员编号 IN(SELECT 业务员编号 FROM 订单 WHERE 客户编号 IN(SELECT 客户编号 FROM 客户 WHERE 客户姓名=王明)(7)统计每个业务员签定500元以上订单的数目;SELECT 业务员编号,COUNT(*) 订单数目 FROM 订单 where 金额>500 GROUP BY 业务员编号 (8)检索签定2个以上订单的业务员姓名;SELECT 业务员姓名 FROM 业务员 WHERE 业务员编号 IN(SELECT 业务员编号 FROM 订单

17、 GROUP BY 业务员编号 HAVING COUNT(*)>2)(9)将所有业务员的月薪增加10;UPDATE 业务员 SET 月薪=月薪*(10)将业务员关悦的月薪改为3500元;UPDATE 业务员 SET 月薪=3500 WHERE业务员姓名=关悦(11)检索超过平均月薪的业务员姓名和年龄;SELECT 业务员姓名, 年龄 FROM 业务员 WHERE月薪>(SELECT AVG(月薪) FROM 业务员 )(12)将签定订单总金额超过2万元的月薪增加5。UPDATE 业务员 SET 月薪=月薪* WHERE 业务员编号 IN(SELECT 业务员编号 FROM 业务员

18、GROUP BY 业务员编号 HAVING SUM(金额) >20000)2设有3个关系模式:学生(学号,姓名,性别,专业,籍贯)课程(课程号,课程名,学时,性质)成绩(学号,课程号,分数)回答下列(1)-(10)题。(1)检索所有女同学的姓名。试写出实现该查询的关系代数表达式;(2)检索选修“数据库”课程的学生姓名。要求写出关系代数表达式和实现这个查询的SQL语句;(3)检索课程号等于“C101”,且分数90分以上(含90分)学生的姓名。要求写出关系代数表达式和实现这个查询的SQL语句;(4)写出SQL语句,检索学习“Cl01”课程中分数最高的学生姓名;(5)写出SQL语句,检索所有未

19、选修“Cl01”课程的学生姓名;(6)写出SQL语句,在成绩表中增加“学分”列,并根据学分学时/18的算法,填上每门课程的学分;(7)写出SQL语句,实现关系代数表达式:成绩-s分数>=60(成绩);(8)写出SQL语句,检索选修5门以上课程的学生姓名;(9)创建一个查询成绩的视图VSK,其属性有姓名、课程名和分数;(10)检索学生选课情况,显示姓名、课程名和分数,其中包括没有选课的学生。答案:(1)检索所有女同学的姓名。试写出实现该查询的关系代数表达式;姓名 (性别=女(学生)(2)检索选修“数据库”课程的学生姓名。要求写出关系代数表达式和实现这个查询的SQL语句;姓名 (课程名= 数

20、据库(课程|×|成绩)|×|学生)SELECT姓名 FROM 课程,成绩,学生 WHERE课程.课程名=数据库 AND 课程.课程号=成绩.课程号 AND 成绩.学号=学生.学号(3)检索课程号等于“C101”,且分数90分以上(含90分)学生的姓名。要求写出关系代数表达式和实现这个查询的SQL语句;姓名 (课程号= C101Ù分数>=90(成绩)|×|学生)SELECT姓名 FROM 成绩,学生 WHERE 成绩.课程号=C101 AND 成绩.分数> =90 AND成绩.学号=学生.学号(4)写出SQL语句,检索学习“Cl01”课程中分数

21、最高的学生姓名;SELECT姓名 FROM 学生 WHERE 学号 IN (SELECT 学号 FROM 成绩 WHERE 课程号=C101 AND 分数=(SELECT MAX(分数) FROM 成绩 WHERE 课程号=C101)(5)写出SQL语句,检索所有未选修“Cl01”课程的学生姓名;SELECT姓名 FROM 学生 WHERE 学号 NOT IN (SELECT 学号 FROM 成绩 WHERE 课程号=C101)SELECT姓名 FROM 学生 WHERE 学号 IN (SELECT 学号 FROM 成绩 WHERE NOT 课程号=C101)(6)写出SQL语句,在成绩表中增

22、加“学分”列,并根据学分学时18的算法,填上每门课程的学分;ALTER TABLE 成绩 ADD 学分 INTEGERUPDATE 成绩 SET 学分课程.学时/18 FROM成绩 INNER JOIN 课程 ON 成绩.课程号= 课程.课程号(7)写出SQL语句,实现关系代数表达式:成绩-s分数>=60(成绩);SELECT * FROM 成绩 WHERE NOT 分数<60SELECT * FROM 成绩 MINUS SELECT * FROM 成绩 WHERE 分数>=60(8)写出SQL语句,检索选修5门以上课程的学生姓名;SELECT姓名 FROM 学生 WHERE

23、 学号 IN (SELECT 学号 FROM 成绩 GOUP BY 学号 HAVING COUNT(*)>5)(9)创建一个查询成绩的视图VSK,其属性有姓名、课程名和分数;CREATE VIEW VSK AS SELECT学生.姓名,课程.课程名,成绩.分数 FROM 课程,成绩,学生 WHERE 课程.课程号=成绩.课程号 AND 成绩.学号=学生.学号(10)检索学生选课情况,显示姓名、课程名和分数,其中包括没有选课的学生。SELECT学生.姓名,课程.课程名,成绩.分数 FROM 学生 left outer join 成绩 inner join课程 on 成绩.学号=学生.学号

24、ON 课程.课程号=成绩.课程号 (错误的写法)SELECT学生.姓名,课程.课程名,成绩.分数 FROM 学生 left outer join 成绩 on 成绩.学号=学生.学号 inner join课程 ON 课程.课程号=成绩.课程号 inner、outer可省略SELECT , FROM student left outer join sc on = inner join course ON =习题四一、名词解释实体、实体集、属性、属性域、主码、单值属性、多值属性、派生属性、基数二、单项选择题1数据库设计中,概念模型A、依赖于计算机的硬件 B、依赖于DBMSC、独立于DBMS D、独立

25、于计算机的硬件和DBMS2将E-R模型转换为关系数据模型属于数据库的A、概念设计 B、物理设计 C、逻辑设计 D、运行设计3设在某个公司环境中,一个部门有多名职工,一名职工只能属于一个部门,则部门与职工之间的联系是A、对一 B、一对多 C、多对多 D、不确定4概念结构设计的主要目标是真实地反映 A、企业对信息的需求 B、DBA的管理信息需求 C、数据库系统的维护需求 D、应用程序员的编程需求5数据库设计人员和用户之间沟通信息的桥梁是 A、程序流程图 B、实体-联系图 C、模块结构图 D、数据结构图6在E-R模型转换成关系模型的过程中,下列不正确的做法是 A、每个联系均转换成一个关系 B、每个实

26、体集均转换成一个关系 C、1:N联系不必转换成关系 D、M:N联系转换成个关系7假设任一个E-R模型中,存在10个不同的实体集和12个不同的二元联系(二元联系是指两个实体集之目的联系),其中3个1:1联系、4个1:N联系、5个M:N联系,则这个E-R模型转换成关系的数目可能是 A、14 B、15 C、19 D、228当同一个实体集内部实体之间存在着一个M:N的关系时,根据E-R模型转换成关系模型的规则,转换成关系的数目为A、1 B、2 C、3 D、4三、简答题1简述数据库设计的基本步骤。2概念设计的主要内容有哪些3使用派生属性有什么好处4确定基数的依据是什么基数的用途是什么5举例说明一元、二元

27、、三元和N元联系。6举例说明实体之间的联系方式7简述E-R模型转换为关系模型的规则。四、设计题1假设图书馆业务规则:(1)读者需要凭借书证借阅图书,借书证有借书证号、姓名、年龄、单位等属性;(2)每一本图书有书号、书名、作者、出版社等属性;(3)每一本借出的图书有借书证号、书号、借出日期、应还日期。试:根据上述业务规则设计E-R模型,要求E-R图中注明属性和联系的类型。将E-R模型转换成关系模型。用SQL语句创建表、定义完整性规则。答案:三个关系模式:借书证(借书证号,姓名,年龄,单位),主码为借书证号;图书(书号,书名,作者,出版社),主码为书号;借阅(借书证号,书号,借出日期,应还日期),

28、主码为借书证号,书号,借书证号为外码,书号为外码。书名借书证借书证号姓名单位年龄图书书号作者m借阅借出日期n出版社应还日期略2假设城市交通管理业务规则:(1)每个驾车者必须有驾驶执照,驾照有编号、姓名、性别、年龄、身份证号、工作单位、发证日期等属性(2)每个机动车要有一个牌照,牌照有车号、型号、制造商、生产日期、所有者等属性;(3)如果司机违反交通规则,将受到惩罚,惩罚记录有日期、车号、驾照编号、违章情节记载、处罚方式等属性。试:根据上述业务规则设计E-R模型,要求E-R图中注明属性和联系的类型。将E-R模型转换成关系模型。用SQL语句创建表、定义完整性规则。答案:型号驾照编号姓名性别年龄牌照

29、车号制造商n惩罚日期m生产日期违章情节记载处罚方式三个关系模式:略3假设某集团公司生产多种产品,公司在全国没有多个代理两,由代理商经销本公司的所有产品。每个代理商可以经销公司的多种产品,且在每一个代理商处都能够买到公司的任何一种产品。代理商有编号、代理商名称和地址等属性;产品有产品号、品名、规格、单价等属性。代理商与产品之间存在供货联系,每次供货将记录供贷日期、产品号、数量、单价和经办人。试:根据上述业务规则设计E-R模型,要求E-R图中注明属性和联系的类型。将E-R模型转换成关系模型。用SQL语句创建表、定义完整性规则。答案:略习题五一、单项选择题1如果关系模式R属于1NF,且每个非主属性都

30、完全函数依赖于R的主码,则R属于A、2NF B、3NF C、BCNF D、4NF2有关系R(P,Q,M,N),F是R上成立的函数依赖集,F(PQ,QM)|,则R的候选码是A、P B、Q C、PQ D、PN3有学生关系R(学号,姓名,系名称,系地址),每一名学生属于一个系,每一个系有一个地址,则R属于A、1NF B、2 NF C、3 NF D、4 NF4下列陈述中错误的是A、2NF必然属于1NF B、3NF必然属于2NFC、3NF必然属于BCNF D、BCNF必然属于3NF5已知关系R(A,B,C,D),F是R上成立的函数依赖集,F(A,BC,D),BD,则R应分解成A、R1(A,B)和R2(C

31、,D) B、R1(A,B,C) 和 R2(B,D)C、R1 (A,C)和R2(B,D) D、R1(A,B,D) 和R2(B,C)6在订单管理中,客户次购物(一张订单)可以订购多种商品。设有订单关系R(订单号,日期,客户名称,商品编码,数量),则R的主码是A、订单号 B、订单号,客户名称 C、商品编码 D、订单号,商品编码7第6题中的关系R最高属于A、1NF B、2NF C、3NF D、4NF(商品编码,数量,日期多值依赖于订单号,但是订单号不是候选码)8设有关系模式R(A,B,C,D)F是R上的函数依赖集,FDA,DB,R的候选码是A、AD B、BC C、BD D、CD9设有关系模式R(A,B

32、,C,D,M,N),R上的函数依赖集F MD,CB,BA,(C,M)N,则R最高达到编写一个SQL程序,完成将新生信息插入到学生档案表,并将其中一部分信息再插入借书证表、学生贷款、学生医疗表,要求插入之后显示插入的数据。2. 在学生档案表上创建一个触发器,实现下列任务:当新生信息插入到学生档案表中时,将其中一部分信息再插入借书证表、学生贷款、学生医疗表,要求插入之后显示插入的数据。CREATE TRIGGER TRIGGER_学生档案表_INSERTON 学生档案表 FOR INSERTAS BEGIN insert into 借书证表(学号) select学号from inserted in

33、sert into 学生贷款(学号) select学号from inserted insert into 学生医疗表(学号) select学号from inserted select * from inserted ENDGO3. 在某出版社数据厍中,有图书关系R(书号,书名,类别,定价)。如果教材类图书的平均定价大于30,则显示“平均价格超过30元”,反之显示“平均价格不超过30元”,并列出所有教材类的书名。编写一个SQL程序完成这个任务。USE 出版社GOIF(SELECT AVG(定价) FROM R WHERE类别=教材)>30 PRINT 平均价格超过30元ELSEBEGINP

34、RINT 平均价格不超过30元SELECT书名FROM R WHERE类别=教材ENDGO4. 在某出版社数据厍中,有图书关系R(书号,书名,类别,定价)。如果教材类图书的平均定价大于30,则执行循环,将高于平均值的教材类图书的定价下调1%,直至所有教材类图书的平均定价小于或等于30元为止。编写一个SQL程序完成这个任务。USE 出版社GODECLARE PJDJ FloatWHILE (select PJDJ = AVG(定价) FROM R WHERE类别=教材) >30UPDATE R SET定价=定价* WHERE类别=教材 AND定价> PJDJGO5. 假设有银行账户关

35、系R(账号,客户姓名,余额)。转账业务规定,当一个账户余额大于等于转账金额时,则执行转账业务,并通知客户转账的金额和账面余额;否则不执行转账操作。通知客户不执行转账的理由。试编写转账业务的存储过程,该存储过程有转出账号、转入账号和转账金额3个参数,要求保证事务的原子性。6. 有学生和成绩关系如下: S(学号,姓名,性别,专业) R(学号,课程号,课程名称,分数)试编写一个查询成绩的存储过程,存储过程带有学号和课程号2个参数。CREATE PROCEDUE PRO_GRADE XH CHAR(10),KCH CHAR(8)ASSELECT S.学号S.姓名,R.课程号,R.课程名称,R.分数 F

36、ROM S,RWHERE S.学号=R.学号 AND S.学号=XH AND R.课程号=KCHGO7. 有产品关系R(产品号,品名,厍存量),在R上创建一个触发器。实现当修改厍存量时,测试修改后的值,若低于100,则发出采购该产品的通知,若高于1000,则发出"积压"的消息。同时要求设计一个SQL程序,验证触发器的作用。8. 有系和学生2个关系:系(系名称,系主任,电话号码,地址)学生(学号,姓名,性别,专业,系名称)设计一个存储过程,根据学号(参数),查询学生和所在系的信息。9. 假设有职工工资表:R(职工号,姓名,基本工资,附加工资,房租,水电,应发工资,税款,实发工

37、资)缴纳个人所得税的规定如下:个人收入>5000,税率20%;个人收入>2000且<=5000,税率10%;个人收入>800且<=2000,税率5%;个人收入<=800,免税。工资的计算方法(1)应发工资=基本工资+附加工资。(2)采取分段计算税款的算法,超过5000元部分收20;2000-5000之间部分收10;800-2000之间部分收5;800下免税。具体算法如图所示。(3)实发工资=应发工资-税款。试编写一个简单的SQL脚本程序,创建工资表并完成计算实发工资的任务。CREATE TABLE R(职工号 CHAR(6),姓名CHAR(8),基本工资 F

38、LOAT,附加工资FLOAT,房租FLOAT,水电FLOAT,应发工资FLOAT,税款FLOAT,实发工资FLOAT)GOUPDATE R SET应发工资=基本工资+附加工资UPDATE R SET税款=(CASE WHEN 应发工资>5000 THEN (应发工资-5000)*+(5000-2000)*+(2000-800)*WHEN 应发工资<=5000 AND应发工资>2000 THEN (应发工资-2000)*+(2000-800)*WHEN 应发工资<=2000 AND应发工资>800 THEN (应发工资-800)*WHEN 应发工资<=800

39、THEN 0END)UPDATE R SET实发工资=应发工资-税款GO习题七一、名词解释事务、封锁、X封锁、活锁、死锁、可串行化调度、不可串行化调度、两段封锁协议。二、单项选择题1事务“要么不做,要么全做”的性质称为事务的 A、持久性 B、隔离性 C、一致性 D、原子性2SQL的COMMIT和ROLLBACK语句的主要用途是实现事务的 A、原子性 B、隔离性 C、一致性 D、持久性3“授权机制”用于数据库系统的 A、完整性控制 B、安全性控制 C、一致性控制 D、并发控制4“视图”可用于数据库系统的 A完整性控制 B、安全性控制 C、一致性控制 D、并发控制5事务“使数据库从一个一致状态转变

40、到另一个一致状态”的性质称为事务的 A、原子性 B、隔离性 C、一致性 D、持久性6在数据库系统中,利用封锁机制实现 A、完整性控制 B、安全性控制 C、一致性控制 D、并发控制7数据库系统的恢复子系统实现事务的 A、原于性 B、隔离性 C、一致性 D、持久性8数据库系统的并发控制保证了事务的 A、原子性 B、隔离性 C、一致性 D、持久性9在加锁协议中规定“先申请先服务”的原则,可以避免数据库系统出现 A、活锁 B、死锁 C、读-写冲突 D、写-写冲突10如果事务T获得数据项Q上S锁,则T对Q A、不能读不能写 B、只能读不能写 C、不能读只能写 D、既可读又可写11如果事务T获得数据项Q上

41、X锁,则T对QA、不能读不能写 B、只能读不能写 C、不能读只能写 D、既可读又可写12事务的隔离性由DBMS的A、安全性子系统实现 B、完整性子系统实现 C、并发控制子系统实现 D、恢复子系统实现13事务的持久性由DBMS的A、安全性子系统实现 B、完整性子系统实现 C、并发控制子系统实现 D、恢复子系统实现14在数据库系统中,“脏数据”是指一个事务读了另一个事务A、未更新的数据 B、更新之后末提交但是后来撤销的数据 C、末提交的数据 D、末刷新的数据15数据库系统安排多个事务并发执行的过程称为 A、步骤 B、进程 C、调度 D、优先级16封锁可以避免数据的不一致性,但可能会引起系统A、崩溃

42、 B、死锁 C、故障 D、数据丢失17SQL的GRANT和REVOKE语句用于数据库的A、安全性控制 B、一致性控制 C、完整性控制 D、并发控制18事务日志用于数据库的A、安全 B、恢复 C、审计 D、跟踪三、填空题1DBMS并发控制的任务是保证事务的执行是可串行的。2事务的隔离性是由DBMS的并发控制实现的。3完全恢复模型是以后援副本和事务日志副本为基础的恢复方法。4在数据库系统中,角色管理机制可以简化为多个具有相同权限的用户授权和回收权限(授权)的工作量5只转储上次备份后变化数据的方法称为增量备份。6两段封锁协议规定事务在锁增长阶段阶段可以获得锁。7数据库的完整性是指数据的正确性、有效性

43、和相容性。8SQL中,域检查子句是CHECK。9在数据库系统中,域完整性约束是对属性值有效性的约束10允许用户把获得的权限再转授给他人的SQL短语是WITH GRANT OPTION 五、设计题1. 设教学数据库的模式如下:S(S#,SNAME,AGE,SEX)SC(S#,C#,GRADE)C(C#,CNAME,TEACHER)试用多种方式定义下列完整性约束:(1)在关系S中插入学生年龄值应在1625岁之间 (2)在关系SC中插入元组时,其S#值和C#值必须分别在S和C中出现。 (3)在关系SC中修改GRADE值时,必须仍在0100之间。 (4)在删除关系C中一个元组时,首先要把关系SC中具有

44、同样C#的元组全部删去。 (5)在关系S中把某个S#值修改为新值时,必须同时把关系SC中那些同样的S#值也修改为新值。解:(1) CREATE TABLE S( S# CHAR(4), SNAME CHAR(10) NOT NULL , AGE SMALLINT, PRIMARY KEY(S#), CHECK (AGE>=16 AND AGE<=25)(2) 采用外键子句约束CREATE TABLE SC( S# CHAR(4), C# CHAR(4), GRADE SMALLINT, FOREIGN KEY(S#) REFERENCE S(S#), FOREIGN KEY(C#)

45、 REFERENCE C(C#) )(3) 采用元组检查CREATE TABLE SC( S# CHAR(4), C# CHAR(4), GRADE SMALLINT, FOREIGN KEY(S#) REFERENCE S(S#), FOREIGN KEY(C#) REFERENCE C(C#), CHECK (GRADE>=0 and AGE<=100)(4) 采用外键约束CREATE TABLE SC( S# CHAR(4), C# CHAR(4), GRADE SMALLINT, FOREIGN KEY(S#) REFERENCE S(S#), FOREIGN KEY(C#

46、) REFERENCE C(C#) ON DELETE CASCADE )(5)采用外键约束CREATE TABLE SC( S# CHAR(4), C# CHAR(4), GRADE SMALLINT, FOREIGN KEY(S#) REFERENCE S(S#) ON UPDATE CASCADE , FOREIGN KEY(C#) REFERENCE C(C#) ) 2. 在教学数据库的关系S、SC、C中,试用SQL2的断言机制定义下列两个完整性约束:(1)学生必须在选修Maths课后,才能选修其他课程。 (2)每个男学生最多选修20门课程。解:(1)CREATE ASSERTION

47、ASS1 CHECK ( NOT EXISTS ( SELECT S FROM SC WHERE C# IN (SELECT C# FROM C WHERE CNAME<>'MATHS') AND S# NOT IN (SELECT S# FROM SC WHERE C# IN (SELECT C# FROM C WHERE CNAME='MATHS');(2)CREATE ASSERTION ASS2 CHECK ( 20>=ALL(SELECT COUNT #)FROM S,SCWHERE #= AND SEX='M'GROUP BY S#);3、设有3个关系:职工表;EMP(ENO,ENAME,AGE,SEX,ECITY)工作表:WO

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论