




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
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、DSC、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如图2.25所示:在关系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、20C、100 D、不确定8从关系中选择指定的属性组成新关系的关系运算是 A、选取 B、投影 C、连接 D、笛卡儿乘积9有关系:学生(学号,性别,专业,宿舍编号,宿舍地址),主码是 A、宿合编号 B、学号
5、 C、宿舍地址, 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、XYZB、XYW C、XZW D、YZW8关系R和S分别有20、1
7、5个元组,则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),属性依次是是工程号、工程名和所在城市供应关系:SPJ(SNO,PNO,JNO
8、,QTY),属性依次是供应商号、产品号、工程号和数量试用关系代数完成下列操作:()J1工程零件的所有供应商号i(2)求供应J1工程P1零件的供应商号;(3)求供应J1工程红色零件的供应商号;(4)求没有使用某供应商生产的红色零件的工程号;(5)求S1供应商供应零件的所有工程号。2设有3个关系模式: 学生(学号,性别,专业) 课程(课程号,课程名称,学分) 成绩(学号,课程号,分数)试用关系代数表达式完成下列操作:(1)所有学生成绩获得满分(100分)的课程号、课程名称;(2)检索至少有一门课程的分数达到95分以上的学生信息,包括学号、和专业(3)检索没有任何一门课程成绩在80分以下的学生的信息
9、,包括学号、和专业(4)检索”英语”专业学生所学课程的信息,包括学号、 、课程名称和分数;(5)检索“数据库原理“课程分数高于90分的所有学生的学号、专业和分数; (6)检索没有不及格分数的学生的信息,包括学号、和专业;(7)检索“国际贸易”专业选修“数据库原理”课程的学号和。答案:(1)所有学生成绩获得满分(100分)的课程号、课程名称;课程号,课程名称(分数=100(成绩)|×| 课程)(2)检索至少有一门课程的分数达到95分以上的学生信息,包括学号、和专业学号,专业(分数>=95(成绩)|×| 学生)(3)检索没有任何一门课程成绩在80分以下的学生的信息,包括学
10、号、和专业学号,专业(学生)-学号,专业(分数<80(成绩)|×| 学生)(4)检索”英语”专业学生所学课程的信息,包括学号、 、课程名称和分数; 学号,课程名称,分数(课程|×| 成绩|×| 专业=英语(学生)(5)检索“数据库原理“课程分数高于90分的所有学生的学号、专业和分数; 学号,专业,分数(课程名称=数据库原理(课程)|×| 分数>90( 成绩)|×|学生)(6)检索没有不及格分数的学生的信息,包括学号、和专业;学号,专业(学生)-学号,专业(分数<60(成绩)|×| 学生)(7)检索“国际贸易”专业选修
11、“数据库原理”课程的学号和。(三表连接,投影)学号,专业(课程名称=数据库原理(课程)|×| 成绩|×| 专业=国际贸易(学生)3、设有3个关系模式: 员工(职工,街道,城市) 工作(职工,公司名称,工资) 公司(公司名称,城市)用关系代数表达式来表达下列问题:(1)列出泰斗公司所有员工的;(2)列出泰斗公司所有员工的和居住的城市;(3)列出泰斗公司所有年收入在10万元以上的员工、居住的街道和城市(4)列出所有居住地与工作的公司在同一城市的员工;(5)列出不在泰斗公司的所有员工的答案:(1)列出泰斗公司所有员工的;职工(公司名称=泰斗公司(工作)(2)列出泰斗公司所有员工的
12、和居住的城市;职工,城市(公司名称=泰斗公司(员工|×|工作)(3)列出泰斗公司所有年收入在10万元以上的员工、居住的街道和城市职工,街道,城市(公司名称=泰斗公司AND 工资>100000(员工|×|工作)Ù(4)列出所有居住地与工作的公司在同一城市的员工;职工 (员工.城市=公司.城市(员工|×|工作|×|公司)(5)列出不在泰斗公司的所有员工的职工(员工)- 职工(公司名称=泰斗公司(员工|×|工作|)习题三一、单项选择题1SQL语言是 A、高级语言 B、宿主语言 C、汇编语言 D、非过程化语言2在SQL语言查询语句中,S
13、ELECT子句实现关系代数的A、投影运算B、选择运算 C、连接运算 D、交运算3在SQL语言查询语句中,WHERE子句实现关系代数的 A、投影运算 B、选择运算 C、连接运算 D、交运算4为在查询结果中去掉重复元组应该使用保留字 A、UNIQUE B、UNION C、COUNT D、DISTINCT5当关系R和S做自然连接时,能够保留R中不满足连接条件元组的操作是 A、左外连接 B、右外连接 C、部连接 D、全外连接6SQL语言中,更新表结构的的命令是 A、UPDATE TABLE B、MODIFY TABLEC、ALTER TABLE D、CHANGE TABLE7下列聚合函数中不忽略空值(
14、NULL)的是 A、SUM(列名) B、MAX(列名) C、AVG(列名) D、COUNT(*)8SQL语言中,下列涉及空值操作的短语,不正确的是(VFP全部正确, SQL SERVER中C错) A、AGE IS NULLB、AGE IS NOT NULLC、AGENULL D、NOT (AGE IS NULL)9SQL语言中,删除一个表的命令是 A、CLEAR TABLEC、DROP TABLEC、DELETE TABLED、REMOVE TABLE10设有一个关系:DEPT(DNO,DNANE)如果要找出倒数第三个字母为W并且至少包含4个字母的DNAME,则查询条件子句应写成WHERE D
15、NANC LIKE /有疑问A_ _W_, B _W_, C_ _W_D_W_ _SELECT * FROM STUDENT WHERE SNAME LIKE '_林_%'11 已知班级和学生关系如图3.11所示。执行下列语句,在学生关系中插入新的数据:I INSERT INTO 学生 VALUES(101,”玲”,”女”,”C01”)INSERT INTO 学生 VALUES(103,”田京”,”男”,”C03”) INSERT INTO 学生 VALUES(106,”康雨”,”男”,NULL)INSERT INTO 学生 VALUES(105,”何光”,”男”,”C02”)
16、能正确执行的语句是 A、I,B、, C、I, D、I,二、解答题1没有3个关系模式:业务员(业务员编号,业务员,性别,年龄,月薪)订单(订单号,日期,客户编号,业务员编号,金额)客户(客户编号,客户,地址,类别)用SQL语句解答下列(1)-(12)题。(1)显示所有50岁以上女业务员的和年龄;(2)检索年龄最大的业务员和年龄;(3)显示所有业务员的和月薪要求按照月薪降序排列;(4)检索月薪在2000元到3000元之间的业务员。用BETWEEN关键词;(5)统计每个客户签定订单的数目和总金额; (6)检索所有经办客户王明订单的业务员(分别用连接和子查询实现)(7)统计每个业务员签定500元以上订
17、单的数目;(8)检索签定2个以上订单的业务员;(9)将所有业务员的月薪增加10;(10)将业务员关悦的月薪改为3500元;(11)检索超过平均月薪的业务员和年龄;(12)将签定订单总金额超过2万元的月薪增加5。答案:(1)显示所有50岁以上女业务员的和年龄;SELECT 业务员, 年龄 FROM 业务员 WHERE 年龄>50 AND 性别=女(2)检索年龄最大的业务员和年龄;SELECT 业务员, 年龄 FROM 业务员 WHERE 年龄=(SELECT MAX(年龄) FROM 业务员 )(3)显示所有业务员的和月薪要求按照月薪降序排列;SELECT 业务员,月薪 FROM 业务员
18、ORDER BY月薪 DESC(4)检索月薪在2000元到3000元之间的业务员。用BETWEEN关键词;SELECT 业务员 FROM 业务员 WHERE 月薪 BETWEEN 2000 AND 3000(5)统计每个客户签定订单的数目和总金额;SELECT客户编号,COUNT(*) 订单数目,SUM(金额) 总金额 FROM 订单 GROUP BY 客户编号(6)检索所有经办客户王明订单的业务员(分别用连接和子查询实现)SELECT 业务员.业务员 FROM 业务员,订单,客户 WHERE 业务员.业务员编号=订单.业务员编号 AND 订单.客户编号=客户.客户编号 AND 客户.客户=王
19、明SELECT 业务员.业务员 FROM 业务员 inner join 订单 inner join 客户 on 业务员.业务员编号=订单.业务员编号 on 订单.客户编号=客户.客户编号 where 客户.客户=王明SELECT 业务员 FROM 业务员 WHERE 业务员.业务员编号 IN(SELECT 业务员编号 FROM 订单 WHERE 客户编号 IN(SELECT 客户编号 FROM 客户 WHERE 客户=王明)(7)统计每个业务员签定500元以上订单的数目;SELECT 业务员编号,COUNT(*) 订单数目 FROM 订单 where 金额>500 GROUP BY 业务
20、员编号 (8)检索签定2个以上订单的业务员;SELECT 业务员 FROM 业务员 WHERE 业务员编号 IN(SELECT 业务员编号 FROM 订单 GROUP BY 业务员编号 HAVING COUNT(*)>2)(9)将所有业务员的月薪增加10;UPDATE 业务员 SET 月薪=月薪*1.1(10)将业务员关悦的月薪改为3500元;UPDATE 业务员 SET 月薪=3500 WHERE业务员=关悦(11)检索超过平均月薪的业务员和年龄;SELECT 业务员, 年龄 FROM 业务员 WHERE月薪>(SELECT AVG(月薪) FROM 业务员 )(12)将签定订单
21、总金额超过2万元的月薪增加5。UPDATE 业务员 SET 月薪=月薪*1.05 WHERE 业务员编号 IN(SELECT 业务员编号 FROM 业务员 GROUP BY 业务员编号 HAVING SUM(金额) >20000)2设有3个关系模式:学生(学号,性别,专业,籍贯)课程(课程号,课程名,学时,性质)成绩(学号,课程号,分数)回答下列(1)-(10)题。(1)检索所有女同学的。试写出实现该查询的关系代数表达式;(2)检索选修“数据库”课程的学生。要求写出关系代数表达式和实现这个查询的SQL语句;(3)检索课程号等于“C101”,且分数90分以上(含90分)学生的。要求写出关系
22、代数表达式和实现这个查询的SQL语句;(4)写出SQL语句,检索学习“Cl01”课程中分数最高的学生;(5)写出SQL语句,检索所有未选修“Cl01”课程的学生;(6)写出SQL语句,在成绩表中增加“学分”列,并根据学分学时/18的算法,填上每门课程的学分;(7)写出SQL语句,实现关系代数表达式:成绩-s分数>=60(成绩);(8)写出SQL语句,检索选修5门以上课程的学生;(9)创建一个查询成绩的视图VSK,其属性有、课程名和分数;(10)检索学生选课情况,显示、课程名和分数,其中包括没有选课的学生。答案:(1)检索所有女同学的。试写出实现该查询的关系代数表达式; (性别=女(学生)
23、(2)检索选修“数据库”课程的学生。要求写出关系代数表达式和实现这个查询的SQL语句; (课程名= 数据库(课程|×|成绩)|×|学生)SELECT FROM 课程,成绩,学生 WHERE课程.课程名=数据库 AND 课程.课程号=成绩.课程号 AND 成绩.学号=学生.学号(3)检索课程号等于“C101”,且分数90分以上(含90分)学生的。要求写出关系代数表达式和实现这个查询的SQL语句; (课程号= C101Ù分数>=90(成绩)|×|学生)SELECT FROM 成绩,学生 WHERE 成绩.课程号=C101 AND 成绩.分数> =
24、90 AND成绩.学号=学生.学号(4)写出SQL语句,检索学习“Cl01”课程中分数最高的学生;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 成绩 WHE
25、RE NOT 课程号=C101)(6)写出SQL语句,在成绩表中增加“学分”列,并根据学分学时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门以
26、上课程的学生;SELECT FROM 学生 WHERE 学号 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 joi
27、n课程 on 成绩.学号=学生.学号 ON 课程.课程号=成绩.课程号 (错误的写法)SELECT学生.,课程.课程名,成绩.分数 FROM 学生 left outer join 成绩 on 成绩.学号=学生.学号 inner join课程 ON 课程.课程号=成绩.课程号 inner、outer可省略SELECT student.sname,course.ame,sc.grade FROM student left outer join sc on sc.sno=student.sno inner join course ON course.o=sc.o习题四一、名词解释实体、实体集、属性、
28、属性域、主码、单值属性、多值属性、派生属性、基数二、单项选择题1数据库设计中,概念模型A、依赖于计算机的硬件 B、依赖于DBMSC、独立于DBMSD、独立于计算机的硬件和DBMS2将E-R模型转换为关系数据模型属于数据库的A、概念设计 B、物理设计 C、逻辑设计 D、运行设计3设在某个公司环境中,一个部门有多名职工,一名职工只能属于一个部门,则部门与职工之间的联系是A、对一B、一对多 C、多对多 D、不确定4概念结构设计的主要目标是真实地反映A、企业对信息的需求 B、DBA的管理信息需求C、数据库系统的维护需求 D、应用程序员的编程需求5数据库设计人员和用户之间沟通信息的桥梁是 A、程序流程图
29、 B、实体-联系图C、模块结构图 D、数据结构图6在E-R模型转换成关系模型的过程中,下列不正确的做法是A、每个联系均转换成一个关系 B、每个实体集均转换成一个关系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、15C、19 D、228当同一个实体集部实体之间存在着一个M:N的关系时,根据E-R模型转换成关系模型的规则,转换成关系的数目为A、1 B、2 C、3 D、4三、简答
30、题1简述数据库设计的基本步骤。2概念设计的主要容有哪些?3使用派生属性有什么好处?4确定基数的依据是什么?基数的用途是什么?5举例说明一元、二元、三元和N元联系。6举例说明实体之间的联系方式?7简述E-R模型转换为关系模型的规则。四、设计题1假设图书馆业务规则:(1)读者需要凭借书证借阅图书,借书证有借书证号、年龄、单位等属性;(2)每一本图书有书号、书名、作者、等属性;(3)每一本借出的图书有借书证号、书号、借出日期、应还日期。试:根据上述业务规则设计E-R模型,要求E-R图中注明属性和联系的类型。将E-R模型转换成关系模型。用SQL语句创建表、定义完整性规则。答案:三个关系模式:借书证(借
31、书证号,年龄,单位),主码为借书证号;图书(书号,书名,作者,),主码为书号;借阅(借书证号,书号,借出日期,应还日期),主码为借书证号,书号,借书证号为外码,书号为外码。书名借书证借书证号某单位年龄图书书号作者m借阅借出日期n应还日期略2假设城市交通管理业务规则:(1)每个驾车者必须有驾驶执照,驾照有编号、性别、年龄、号、工作单位、发证日期等属性(2)每个机动车要有一个牌照,牌照有车号、型号、制造商、生产日期、所有者等属性;(3)如果司机违反交通规则,将受到惩罚,惩罚记录有日期、车号、驾照编号、违章情节记载、处罚方式等属性。试:根据上述业务规则设计E-R模型,要求E-R图中注明属性和联系的类
32、型。将E-R模型转换成关系模型。用SQL语句创建表、定义完整性规则。答案:型号驾照编号某性别年龄牌照车号制造商n惩罚日期m生产日期违章情节记载处罚方式三个关系模式:略3假设某集团公司生产多种产品,公司在全国没有多个代理两,由代理商经销本公司的所有产品。每个代理商可以经销公司的多种产品,且在每一个代理商处都能够买到公司的任何一种产品。代理商有编号、代理商名称和地址等属性;产品有产品号、品名、规格、单价等属性。代理商与产品之间存在供货联系,每次供货将记录供贷日期、产品号、数量、单价和经办人。试:根据上述业务规则设计E-R模型,要求E-R图中注明属性和联系的类型。将E-R模型转换成关系模型。用SQL
33、语句创建表、定义完整性规则。答案:略习题五一、单项选择题1如果关系模式R属于1NF,且每个非主属性都完全函数依赖于R的主码,则R属于A、2NF B、3NF C、BF 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、3NF D、4NF4下列述中错误的是A、2NF必然属于1NF B、3NF必然属于2NFC、3NF必然属于BF D、BF必然属于3NF5已知关系R(A,B,C,D),F是R上成立的函
34、数依赖集,F(A,BC,D),BD,则R应分解成A、R1(A,B)和R2(C,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、2NFC、3NF D、4NF(商品编码,数量,日期多值依赖于订单号,但是订单号不是候选码)8设有关系模式R(A,B,C,D)F是R上的函数依赖集,FDA,DB,R的候
35、选码是A、AD B、BC C、BDD、CD9设有关系模式R(A,B,C,D,M,N),R上的函数依赖集FMD,CB,BA,(C,M)N,则R最高达到/推出C,M为候选码,推出(C,M)D,推出MD为部分函数依赖A、1NFB、2NF C、3NF D、4NF二、综合设计题解题步骤:1)分析问题中包含的基本概念(即实体)2)假设一个实体对应一个关系模式,确定每个关系模式的主码3)由上述基本关系模式的主码合并成一个超码4)剔除超码中的部分属性,得到给定关系模式的候选码5)由每个关系模式的主码、给定关系模式的候选码识别出属性间的基本函数依赖关系6)识别出部分依赖关系、传递依赖关系1假设某商业集团数据库中
36、有一个关系模式:R(商店编号,商品编号,数量,部门编号,负责人)如果规定:(1)每个商店的每种商品只在一个部门销售;(2)每个商店的每个部门只有一个负责人;(3)每个商店的每种商品只有一个库存数量。试回答下列问题:根据上述规定写出R的基本函数依赖;找出R的候选码;试问R最高达到第几式?为什么?如果R不属于3NF,请将分解成3NF模式集。答案:R中包含三个基本概念:商店,商品,部门R的基本函数依赖包括:商店编号,商品编号数量,商店编号,商品编号部门编号,商店编号,商品编号负责人/传递依赖,部门编号负责人R的候选码为商店编号,商品编号R最高达到2式。因为非主属性都完全函数依赖于候选码,但存在传递函
37、数依赖商店编号,商品编号负责人可将R分解为两个关系模式:商店商品(商店编号,商品编号,数量,部门编号)部门(部门编号,负责人)2假设当前使用一个手工操作的学生文档,其文档的格式如图5.13所示假设规定:(1)一名学生可以选修多门课程,且一门课程有多人选修;(2)一门课程仅有一个教师讲授,名教师可以讲多门课程;(3)学生学习一门课程有一个分数;(4)每一名教师有一个办公室,一个办公室有多么教师;如果依据上述文档和规定,设计一个关系模式R:R(学号,学生,课程号,课程名,分数,教师,教师办公室)试:找出R的候选码;写出关系R的基本函数依赖集,并画出函数依赖图;判断R最高达到第几式,说明理由;如果有
38、必要,将R分解成3NF模式集。答案:R中包含三个基本概念:学生,课程,教师(学号,学生,课程号,课程名,分数,教师,教师办公室R的候选码为学号,课程号R的基本函数依赖包括:学号,课程号学生,/部分函数依赖学号,课程号课程名,/部分函数依赖学号,课程号分数,学号,课程号教师,/部分函数依赖学号,课程号教师办公室,/传递依赖学号学生,课程号课程名,教师教师办公室,课程号教师,课程号教师办公室R最高达到1式。因为存在非主属性部分函数依赖于主码,如学号学生可将R分解为五个关系模式:学生(学号,学生)课程(课程号,课程名)教师(教师,教师办公室)成绩(学号,课程号,分数)教师课程(教师,课程号)函数依赖
39、图略3假设公司的订单业务规定:(1)订单号是惟一的,每一订单对应一个订单号;(2)一订单可以订购多种产品,每一种产品可以在多个订单中出现;(3)一订单有一个客户,且一个客户可以有多订单;(4)每一个产品编号对应一种产品的品名和单价;(5)每一个客户有一个确定的名称和。根据上述规定设计一个关系模式:R(订单号,日期,客户名称,产品编码,品名,价格,数量)试:找出R的候选码;写出关系R的基本函数依赖集,并画出函数依赖图;判断R最高达到第几式,说明理由;给出一个可能的3NF模式集。答案:订单号,客户名称,产品编码为一个超码,由于“一订单有一个客户”,所以订单号,产品编码为一个候选码关系R的基本函数依
40、赖集为(订单号日期),(客户名称),(产品编码品名),(产品编码价格),(订单号,产品编码数量),(订单号客户名称),(订单号)/传递依赖,(订单号,产品编码日期)/部分依赖,(订单号,产品编码客户名称),(订单号,产品编码),(订单号,产品编码品名),(订单号,产品编码价格),(订单号,产品编码数量)函数依赖图略R最高达到第几式1NF,因为非主属性日期部分函数依赖于主码订单号,产品编码一个可能的3NF模式集为:订单(订单号,客户名称,产品编码,日期,数量),主码为订单号,产品编码客户(客户名称,),主码为客户名称产品(产品编码,品名,价格),主码为产品编码习题六一、简答题1什么是局部变量和全
41、局变量?2局部变量与全局变量的主要区别是什么?3在SQL程序设计中,游标的用途是什么?4简述SQL程序设计中游标的使用方法。5什么是存储过程?其优点是什么?6什么是数据库触发器?其作用是什么?7INSERTED和DELETED表的用途是什么?8简述INSERT触发器的工作原理。9简述DELETE触发器的工作原理。10简述UPDATE触发器的工作原理。11简述INSTEAD OF触发器的工作原理。12简述嵌入式SQL的预处理过程。二、SQL程序设计1. 编写一个SQL程序,完成将新生信息插入到学生档案表,并将其中一部分信息再插入借书证表、学生贷款、学生医疗表,要求插入之后显示插入的数据。2. 在
42、学生档案表上创建一个触发器,实现下列任务:当新生信息插入到学生档案表中时,将其中一部分信息再插入借书证表、学生贷款、学生医疗表,要求插入之后显示插入的数据。CREATE TRIGGER TRIGGER_学生档案表_INSERTON 学生档案表 FOR INSERTAS BEGIN insert into 借书证表(学号)select学号from insertedinsert into 学生贷款(学号)select学号from insertedinsert into学生医疗表(学号)select学号from inserted select * from inserted ENDGO3.在某数据厍
43、中,有图书关系R(书号,书名,类别,定价)。如果教材类图书的平均定价大于30,则显示“平均价格超过30元”,反之显示“平均价格不超过30元”,并列出所有教材类的书名。编写一个SQL程序完成这个任务。USE GOIF(SELECT AVG(定价) FROM R WHERE类别=教材)>30 PRINT 平均价格超过30元ELSEBEGINPRINT 平均价格不超过30元SELECT书名FROM R WHERE类别=教材ENDGO4.在某数据厍中,有图书关系R(书号,书名,类别,定价)。如果教材类图书的平均定价大于30,则执行循环,将高于平均值的教材类图书的定价下调1%,直至所有教材类图书的
44、平均定价小于或等于30元为止。编写一个SQL程序完成这个任务。USE GODECLARE PJDJFloatWHILE (select PJDJ =AVG(定价) FROM R WHERE类别=教材)>30UPDATE R SET定价=定价*0.99 WHERE类别=教材 AND定价> PJDJGO5. 假设有银行账户关系R(账号,客户,余额)。转账业务规定,当一个账户余额大于等于转账金额时,则执行转账业务,并通知客户转账的金额和账面余额;否则不执行转账操作。通知客户不执行转账的理由。试编写转账业务的存储过程,该存储过程有转出账号、转入账号和转账金额3个参数,要求保证事务的原子性。
45、6. 有学生和成绩关系如下: S(学号,性别,专业) R(学号,课程号,课程名称,分数)试编写一个查询成绩的存储过程,存储过程带有学号和课程号2个参数。CREATE PROCEDUE PRO_GRADE XH CHAR(10),KCH CHAR(8)ASSELECT S.学号S.,R.课程号,R.课程名称,R.分数 FROM S,RWHERE S.学号=R.学号 AND S.学号=XH ANDR.课程号=KCHGO7. 有产品关系R(产品号,品名,厍存量),在R上创建一个触发器。实现当修改厍存量时,测试修改后的值,若低于100,则发出采购该产品的通知,若高于1000,则发出"积压&q
46、uot;的消息。同时要求设计一个SQL程序,验证触发器的作用。8. 有系和学生2个关系:系(系名称,系主任,地址)学生(学号,性别,专业,系名称)设计一个存储过程,根据学号(参数),查询学生和所在系的信息。9. 假设有职工工资表:R(职工号,基本工资,附加工资,房租,水电,应发工资,税款,实发工资)缴纳个人所得税的规定如下:个人收入>5000,税率20%;个人收入>2000且<=5000,税率10%;个人收入>800且<=2000,税率5%;个人收入<=800,免税。工资的计算方法(1)应发工资=基本工资+附加工资。(2)采取分段计算税款的算法,超过5000
47、元部分收20;2000-5000之间部分收10;800-2000之间部分收5;800下免税。具体算法如图6.13所示。(3)实发工资=应发工资-税款。试编写一个简单的SQL脚本程序,创建工资表并完成计算实发工资的任务。CREATE TABLE R(职工号 CHAR(6),CHAR(8),基本工资 FLOAT,附加工资FLOAT,房租FLOAT,水电FLOAT,应发工资FLOAT,税款FLOAT,实发工资FLOAT)GOUPDATE R SET应发工资=基本工资+附加工资UPDATE R SET税款=(CASE WHEN 应发工资>5000 THEN (应发工资-5000)*0.2+(50
48、00-2000)*0.1+(2000-800)*0.05WHEN 应发工资<=5000 AND应发工资>2000 THEN (应发工资-2000)*0.1+(2000-800)*0.05WHEN 应发工资<=2000 AND应发工资>800 THEN (应发工资-800)*0.05WHEN 应发工资<=800 THEN 0END)UPDATE R SET实发工资=应发工资-税款GO习题七一、名词解释事务、封锁、X封锁、活锁、死锁、可串行化调度、不可串行化调度、两段封锁协议。二、单项选择题1事务“要么不做,要么全做”的性质称为事务的 A、持久性 B、隔离性 C、一致
49、性D、原子性2SQL的MIT和ROLLBACK语句的主要用途是实现事务的A、原子性B、隔离性 C、一致性 D、持久性3“授权机制”用于数据库系统的 A、完整性控制 B、安全性控制 C、一致性控制 D、并发控制4“视图”可用于数据库系统的 A完整性控制 B、安全性控制 C、一致性控制 D、并发控制5事务“使数据库从一个一致状态转变到另一个一致状态”的性质称为事务的A、原子性 B、隔离性 C、一致性 D、持久性6在数据库系统中,利用封锁机制实现 A、完整性控制 B、安全性控制 C、一致性控制 D、并发控制7数据库系统的恢复子系统实现事务的 A、原于性 B、隔离性 C、一致性 D、持久性8数据库系统
50、的并发控制保证了事务的 A、原子性 B、隔离性 C、一致性 D、持久性9在加锁协议中规定“先申请先服务”的原则,可以避免数据库系统出现A、活锁B、死锁 C、读-写冲突 D、写-写冲突10如果事务T获得数据项Q上S锁,则T对QA、不能读不能写B、只能读不能写 C、不能读只能写 D、既可读又可写11如果事务T获得数据项Q上X锁,则T对QA、不能读不能写 B、只能读不能写 C、不能读只能写 D、既可读又可写12事务的隔离性由DBMS的A、安全性子系统实现 B、完整性子系统实现C、并发控制子系统实现 D、恢复子系统实现13事务的持久性由DBMS的A、安全性子系统实现 B、完整性子系统实现 C、并发控制
51、子系统实现 D、恢复子系统实现14在数据库系统中,“脏数据”是指一个事务读了另一个事务A、未更新的数据 B、更新之后末提交但是后来撤销的数据 C、末提交的数据 D、末刷新的数据15数据库系统安排多个事务并发执行的过程称为 A、步骤 B、进程 C、调度D、优先级16封锁可以避免数据的不一致性,但可能会引起系统A、崩溃 B、死锁 C、故障 D、数据丢失17SQL的GRANT和REVOKE语句用于数据库的A、安全性控制 B、一致性控制 C、完整性控制 D、并发控制18事务日志用于数据库的A、安全 B、恢复 C、审计 D、跟踪三、填空题1DBMS并发控制的任务是保证事务的执行是可串行的。2事务的隔离性
52、是由DBMS的并发控制实现的。3完全恢复模型是以后援副本和事务日志副本为基础的恢复方法。4在数据库系统中,角色管理机制可以简化为多个具有相同权限的用户授权和回收权限(授权)的工作量5只转储上次备份后变化数据的方法称为增量备份。6两段封锁协议规定事务在锁增长阶段阶段可以获得锁。7数据库的完整性是指数据的正确性、有效性和相容性。8SQL中,域检查子句是CHECK。9在数据库系统中,域完整性约束是对属性值有效性的约束10允许用户把获得的权限再转授给他人的SQL短语是WITH GRANT OPTION五、设计题1. 设教学数据库的模式如下:S(S#,SNAME,AGE,SEX)SC(S#,C#,GRADE)C(C#,AME,TEACHER)试用多种方式定义下列完整性约束:(1)在关系S中插入学生年龄值应在1625岁之间 (2)在关系SC中插入元组时,其S#值和C#值必须分别在S和C中出现。 (3)在关系SC中修改GRADE值时,必须仍在0100之间。 (4)在删除关系C中一个元组时,首先要把关系SC中具有同样C#的元组全部删去。 (5)在关系S中把某个S#值修改为新值时,必须同时把关系SC中那些同样的S#值也修改为新值。解:(1)CREATE TABLE S( S# CHAR(4), SNAME CHAR(10) NOT NULL ,
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 药物分析考试模拟题及答案
- 医疗核心制度练习题(附答案)
- 广告制作及发布代理合同
- 战略合作协议策划及合同书
- 工业废气治理工程合同
- 乐至县乾润招商服务有限公司招聘岗位工作人员(8人)笔试参考题库附带答案详解
- 2025辽宁沈阳市城市建设投资集团有限公司所属企业沈阳新基发展有限公司招聘16人笔试参考题库附带答案详解
- 2025广东湛江经济技术开发区建设投资发展集团有限公司招聘1人笔试参考题库附带答案详解
- 2025宁夏银川威力传动技术股份有限公司招聘811人笔试参考题库附带答案详解
- 2025中国电气装备集团数字科技有限公司招聘28人笔试参考题库附带答案详解
- 2025年重庆西南大学附中高考数学模拟试卷试题(含答案详解)
- 2024年烟台海阳市卫生健康局所属事业单位招聘工作人员真题
- 2025四川巴中市国有资本运营集团有限公司招聘17人笔试参考题库附带答案详解
- 2025神农科技集团有限公司第一批校园招聘17人(山西)笔试参考题库附带答案详解
- (快手、抖音、淘宝)主播兼职合同10篇
- 南充2025年南充市公安局第一次招聘27名交通辅警笔试历年参考题库附带答案详解
- 砍木伐木合同协议范本
- 农业科技与装备应用知识考点
- 双语客运值班员红十字药箱课件
- 黑龙江省地方标准黑龙江省建设工程施工操作技术规程市政桥梁工程
- 延边大学教师岗位招聘考试真题2024
评论
0/150
提交评论