数据库系统原理与应用课后习题孟彩霞.ppt

上传人:牧羊曲112 文档编号:6296551 上传时间:2023-10-14 格式:PPT 页数:35 大小:253KB
返回 下载 相关 举报
数据库系统原理与应用课后习题孟彩霞.ppt_第1页
第1页 / 共35页
数据库系统原理与应用课后习题孟彩霞.ppt_第2页
第2页 / 共35页
数据库系统原理与应用课后习题孟彩霞.ppt_第3页
第3页 / 共35页
数据库系统原理与应用课后习题孟彩霞.ppt_第4页
第4页 / 共35页
数据库系统原理与应用课后习题孟彩霞.ppt_第5页
第5页 / 共35页
点击查看更多>>
资源描述

《数据库系统原理与应用课后习题孟彩霞.ppt》由会员分享,可在线阅读,更多相关《数据库系统原理与应用课后习题孟彩霞.ppt(35页珍藏版)》请在三一办公上搜索。

1、1,SQL Server 2000数据库系统原理与应用 习题课,2,第一章 数据库系统概述,4.使用数据库系统有什么优点?数据结构化 数据的共享性高、冗余度低、易扩充 数据独立性高 DBMS对数据进行统一的管理和控制6.数据库管理系统的主要功能有哪些?数据定义功能 数据操纵功能 数据库的事务管理和运行管理 数据库的建立和维护功能 其他功能9.简述数据库系统的三级模式结构,这种结构的优点是什么?模式(逻辑模式):模式结构的中间层,是数据库中全体数据的逻辑结构和特征的描述,是所有用户的公共数据视图。,3,外模式(用户模式):是数据库用户能够看见和使用的局部数据的逻辑结构和特征的描述,是数据库用户的

2、数据视图,是与某一应用有关的数据的逻辑表示。内模式(存储模式):是数据物理结构和存储方式的描述,是数据在数据库内部的表示方式。优点:三级模式是对数据的三个抽象级别,它把数据的具体组织留给DBMS管理,使用户能逻辑地、抽象地处理数据,而不必关心数据在计算机中的具体表示方式与存储方式。10.什么是数据库的逻辑独立性、物理独立性?为什么数据库系统具有数据与程序的独立性?逻辑独立性:当模式改变时,由DBA对各个外模式/模式作相应改变,从而保持外模式不变。因此依据外模式所编写的应用程序也可以不必改变。物理独立性:当数据库的存储结构改变时,由数据库管理员对模式/内模式映像作相应改变,可以使模式保持不变,从

3、而应用程序也不必改变,保证了数据与程序的物理独立性。原因:数据库之所以能够具有数据与程序的独立性,是由两级映射所提供的逻辑独立性和物理独立性所保证的。,4,11.什么是数据模型?其作用和三要素是什么?数据模型是对现实世界数据特征的抽象。作用:用来描述数据、组织数据和对数据进行操作的。三要素:数据结构、数据操作、数据的完整性约束条件,5,15学校中有若干系,每个系有若干班级和教研室,每个教研室有若干教员,每个班有若干学生,每个学生选修若干课程,每门课可由若干学生选修。请用E-R图画出此学校的概念模型。,6,16某工厂生产若干产品,每种产品由不同的零件组成,有的零件可用在不同的产品上。这些零件由不

4、同的原材料制成,不同零件所用的材料可以相同。这些零件按所属的不同产品分别放在仓库中,原材料按照类别放在若干仓库中。请用E-R图画出此工厂产品,零件,材料,仓库的概念模型。17.某百货公司有若干个连锁商店,每家商店经营若干商品,每家商店有若干职工,每个职工只能服务于一家商店。试描述该百货公司的E-R图。,7,第二章 关系数据库,2.解释概念 关系(Relation)笛卡尔积D1D2Dn的有限子集叫作在域D1,D2,Dn上的n元关系,简称关系。通常表示为 R(D1,D2,Dn)其中,R为关系名,n为关系的目或度。关系模式(Relation Schema)关系的描述称为关系模式。它可以形式化地表示为

5、 R(U,D,DOM,F)其中,R为关系名,U为组成该关系的属性名集合,D为属性组U中属性所来自的域,DOM为属性向域的映象集合,F为属性间数据的依赖关系集合。关系数据库在一个给定的应用领域,所有实体和实体之间联系的集合构成一个关系数据库。主键(Primary key)若关系有多个候选键,则选定其中一个为主键。候选键(Candidate key)若关系中的某一属性组的值能唯一地标识一个元组,则称该属性组为候选组。外键(Foreign Key)设F是关系R的一个或一组属性,但不是关系R的键。如果F与关系S的主键相对应,则称F是R的外键,并称R为参照关系,S为被参照关系或目标关系。主属性(Prim

6、ary attribute)候选键的诸属性称为主属性。,8,3.关系的性质任意两个元组不能完全相同关系中元组的次序是不重要的,次序可以任意交换关系中属性的次序是不重要的,次序可以任意交换同一列中的分量必须来自同一个域,是同一类型的数据属性必须有不同的名称,不同的属性可以出自相同的域每一分量必须取原子量6.关系数据语言的特点和分类 特点:具有完备的表达能力,是非过程化的集合操作语言,功能强,能够嵌入高级语言中使用。分类:关系代数语言、关系演算语言(元组关系演算语言、域关系演算语言)、具有关系代数和关系演算双重特点的语言,如SQL7.关系模型的完整性规则?在参照完整性中,为什么外键属性的值也可以为

7、空?什么情况下才可以为空?实体完整性规则:关系中的元组在主属性上不能有空值;参照完整性规则:外键得知不允许参照不存在的相应表的主键的值;,9,用户定义的完整性规则:用户根据具体应用的语义定义的完整性规则。当外键非本表的主键(属性)时可以取空值。实体完整性规则是指若属性A是基本关系R的主属性,则属性A不能取空值。参照完整性规则若属性(或属性组)F是基本关系R的外键,它与基本关系S的主键相对应(基本关系R和S不一定是不同的关系),则对于R中每个元组在F上的值必须为:或者取空值(F的每个属性值均为空值);或者等于S中某个元组的主键值。即属性F本身不是主属性,则可以取空值,否则不能取空值。当属性F的每

8、个属性值为“不知道”或“不存在”的值时,即外键可以为空。,10,第三章 关系数据库标准语言SQL,1.SQL具有哪些特点?综合统一高度非过程化面向集合的操作方式以同一种语法结构提供多种使用方式语言简洁,易学易用3.建立chap2习题10的各表,包括主键和外键CREATE TABLE S(sno char(6)primary key,sname char(20),status int,city char(20);CREATE TABLE P(pno char(6)primary key,pname char(20),color char(10),weight real real数值型数据);,1

9、1,CREATE TABLE J(jno char(6)primary key,jname char(40),city char(20);CREATE TABLE SPJ(sno char(6)foreign key references S(sno),/*sno为外键,参照S表中的sno*/pno char(6)foreign key references P(pno),/*pno为外键,参照P表中的pno*/jno char(6)foreign key references J(jno),/*jno为外键,参照J表中的jno*/qty int,primary key(sno,pno,jno

10、);4.在第3题所建的表中完成下列操作(1)求供应工程J1零件的供应商号码SNO:select sno from SPJ where jno=J1;(2)求供应工程J1零件P1的供应商号码SNO:select sno from SPJ where jno=J1 and pno=P1;,12,(3)求供应工程J1零件为红色的供应商号码SNO:select sno from SPJ where jno=J1 and pno in(select pno from P where color=红);或:select sno from SPJ,P where SPJ.pno=P.pno and SPJ.

11、jno=J1 and P.color=红;(4)求没有使用天津供应商生产的红色零件的工程号JNO:(此解使用不相关子查询方法)select jno from J where jno not in(select jno from SPJ,S,P where SPJ.sno=S.sno and SPJ.pno=P.pno and city=天津 and color=红);,13,(5)求至少使用了供应商S1所供应的全部零件的工程号 JNO:将查询分为两步A、查询S1供应商供应的零件号SELECT DIST PNO FROM SPJ WHERE SNO=S1 结果是(P1,P2)B、查询哪一个工程既

12、使用P1零件又使用P2零件。SELECT JNO FROM SPJ WHERE PNO=P1 AND JNO IN(SELECT JNO FROM SPJ WHERE PNO=P2)5.建立market 库中的3个表CREATE TABLE customers(customerid char(6)primary key,cname char(20),city char(10);CREATE TABLE goods(goodid char(6)primary key,gname char(20),price real,provider char(20),stocks int,status int

13、);,14,CREATE TABLE orders(orderid char(6)primary key,goodid char(6)foreign key references goods(goodid),customerid char(6)foreign key references customers(customerid),quantity int,ordersum real,date datetime);6.针对market数据库完成下列操作(1)查找所有上海客户的信息 Select*from customers where city=shanghai;(2)查找所有商品的名称、库存

14、量、价格及折价25%后的价格,并使用别名discount标识折扣价。结果按价格由低到高排序 Select gname,stocks,price,price*0.75 Discount from goods order by price;,15,(3)查找商品名中包含computer的商品编号、名称及价格 Select goodid,gname,price from goods where gname like%computer%;(4)查找库存量大于100小于500的商品名称、库存量和单价 Select stocks,gname,price from goods where stocks be

15、tween 100 and 500;(5)查找至期间,订货金额大于30000的所有订单的客户姓名、商品名称、单价、订货数量和订货金额Select cname,gname,price,quantity,ordersum from customers,goods,orders where customers.customerid=orders.customerid and goods.goodid=orders.goodid and date between2007-7-1and 2007-12-31 and ordersum30000;(6)查找订单编号、商品编号、和客户编号,要求按日期对订单进

16、行分组,并只显示订货数量超过200的订单信息,16,Select customerid,goodid,orderid from orders where quantity200 order by date;不是group by(7)查找所有北京客户的订单信息,要求用不相关子查询 Select*from orders where customerid in(Select customerid from customers where city=beijing);(8)查找不是天津客户的订单信息 Select*from orders where customerid not in(Select c

17、ustomerid from customers where city=tianjing);,17,(9)查找所有西安客户的相关信息以及他们的订单情况Select customers.customerid,cname,city,orderid,goodid,quantity,ordersum,date from customers LEFT OUTER JOIN orders on customers.customerid=orders.customerid where city=xian;(10)将所有的库存量大于500的商品价格下调15%Update goods Set price=pri

18、ce*0.85 where stocks500;(11)将库存量为0的所有商品记录删除 Delete from goods where stocks=0;(12)将新数据插入到商品表中 Insert into goods values(T10056,计算机,5300,清华同方,20,0);,18,10.是否所有视图都可以更新?为什么?并不是所有视图都可以更新,因为有些视图的更新操作不能唯一地、有意义地转换为对相应基本表的更新。11.在market库上完成下列操作(1)建立北京客户订单视图CREATE VIEW Bj_orders(orderid,gname,quantity,customeri

19、d,cname)AS select orderid,gname,quantity,orders.customerid,cname from orders,customers,goods where customers.customerid=orders.customerid and goods.goodid=orders.goodid and city=beijing(2)针对(1)中的视图查询客户张三的所有订单信息 Select*from Bj_orders where Cname=张三,19,8.什么是基本表、视图,两者有什么区别?基本表:本身独立存在的表,一个关系对应一个基本表;视图:从

20、一个或多个基本表或视图导出的表,是关系数据库系统为用户提供从不同角度观察和使用数据库中数据的一种机制。区别:视图是虚表,在数据库中只存放视图的定义,而不存放视图所对应的数据,这些数据仍存放在原来的基本表中。12.在market数据库上完成下列操作(1)允许用户李明对orders表进行插入、删除操作GRANT insert,delete on orders to 李明(2)将查询goods表和修改单价的权限授予用户李四GRANT update(price),select on goods to 李四(3)将查询goods表的权限授予用户王二,并允许他将此权限授予他人GRANT select on

21、 goods to 王二 with grant option15在嵌入式SQL中是如何协调SQL的集合处理方式和主语言的单记录处理方式的?游标是用于协调SQL语言的集合处理方式和主语言的单记录处理方式。SQL语言与主语言具有不同的数据处理方式。SQL语言是面向集合的,一条SQL语句原则上可以产生或处理多条记录。主语言是面向记录的,一组主变量一次只能存放一条记录。所以仅使用主变量并不能完全满足SQL语句向应用程序输出数据的要求,为此嵌入式SQL引入了游标的概念,用游标来协调这两种不同的处理方式。,20,第四章 存储过程和触发器,1.什么是存储过程?为什么要使用存储过程?存储过程是指经过预先编译的

22、SQL语句的集合,可以以一种可执行的形式永久地存储在数据库中。运行速度快模块化编程减少网络通信量保证系统的安全性2.简述触发器的概念和作用。触发器是在满足某个特定条件时自动触发执行的专用存储过程用于保证表中的数据遵循数据库设计者确定的规则和约束5.针对第3章习题5中的数据库,完成以下要求。(1)Create procedure shanghai As select*from customers where city=shanghai(2)Create procedure Goods GoodID char(20)As select*from goods where GoodID=GoodID,

23、21,(3)Create procedure goodsum cnum char(6),snum real output As select snum=sum(ordersum)from orders where customerid=cnum(4)Create procedure insertGoods Goodnum char(6),Goodname char(20),Gprice real,Gprovider char(20),Gstocks int,Gstate int As insert into goods values(Goodnum,Goodname,Gprice,Gprovi

24、der,Gstocks,Gstate)(5)Create trigger Customer_delete on customers after delete As delete from orders where customerid in(select customerid from deleted)(6)Create trigger Goods_insert on goods after insert As if(select status from goods,inserted where goods.goodid=inserted.goodsid)=1 begin print 不能插入

25、 Rollback transaction end,22,(7)Create trigger Orders_insert on orders after insert As update goods set stocks=stocks-(select quantity from inserted)where goodid in(select goodid from inserted)(8)Create trigger Goods_update on orders after update As if update(date)begin print 不能更新日期 Rollback transac

26、tion End(9)Create trigger Orders_insert on orders after insert As if(select count(*)from goods,inserted where goods.goodid=inserted.goodid)=0 begin print 该商品不存在 Rollback transaction end,23,第五章 关系数据库规范化理论,1.解释下列术语的含义 函数依赖设R(U)是属性集U上的关系模式。X和Y是U 的子集。若对于R(U)上的任意一个可能的关系r,如果r中不可能存在两个元组,它们在X上的属性值相等,而在Y上的属性

27、值不等,则称X函数决定Y或Y函数依赖于X,记作XY。其中X称为这个函数依赖的决定属性组,或称为决定因素,Y称作被决定因素。若Y不函数依赖于X,记作XY。若XY,且YX,则记作XY。非平凡函数依赖设R(U)是属性集上的一个关系模式。X和Y是U的子集。如果XY,且YX,则称XY是非平凡函数依赖。平凡函数依赖若XY,且YX,则称XY是平凡函数依赖。完全函数依赖在R(U)中,如果XY,并且对于X的任何一个真子集X,都有XY,则称Y对X完全函数依赖,记作:XY。部分函数依赖若XY,但Y不完全函数依赖于X,则称Y对X部分函数依赖,记作XY。传递函数依赖在R(U)中,如果XY,YZ,YX,YX,则称Z传递函

28、数依赖于X,记作XY。候选键设K是关系模式RU,F中的属性或属性组合,若KU,则K为R的候选键。主键若候选键多于一个,则选定其中的一个为主键。全键整个属性组是键。外键关系模式R中属性或属性组X并非R的键,但X是另一个关系模式的键,则称X是R的外部键,简称外键。,24,1NF如果关系模式R的所有属性都是不可分的数据项,则称R属于第一范式,记作R1NF。2NF若关系模式R1NF,且每个非主属性都完全函数依赖于R的键,则称R2NF。3NF关系模式RU,F中若不存在这样的键X,属性组Y及非主属性Z(ZY),使得XY,YZ成立,且YX,则称R3NF。4NF关系模式RU,F1NF,如果对于R的每一个非平凡

29、多值依赖XY(YX),X都含有键,则称RU,F4NF。多值依赖设R(U)是属性集U上的一个关系模式。X,Y,Z是U的子集,且Z=U-X-Y。关系模式R(U)中多值依赖XY成立,当且仅当R(U)的任一关系r,给定的一对(x,z)值,有一组Y的值,这组值仅仅决定于x值而与z值无关。4.R(商店编号,商品编号,数量,部门编号,负责人)规定:每个商店的每种商品只在一个部门销售;每个商店的每个部门只有一个负责人;每个商店的每种商品只有一个库存数量(1)写出关系R的基本函数依赖:(商店编号,商品编号)库存数量(商店编号,商品编号)部门编号(商店编号,部门编号)负责人,25,(2)关系模式R达到了第几范式?

30、为什么?因为关系R的键是(商店编号,商品编号)而所有非主属性均对键是完全函数依赖。但存在传递函数依赖:(商店编号,商品编号)(商店编号,部门编号)(商店编号,部门编号)负责人(商店编号,商品编号)负责人(3)如果R不属于3NF,将R分解成3NF模式集 R1(商店编号,商品编号,部门编号,数量)R2(商店编号,部门编号,负责人)5如表5.15所示给出的关系SC为第几范式?是否存在插入、删除异常?若存在,则说明是在什么情况下发生?发生的原因是什么?将它分解为高一级范式,分解后的关系能否解决操作异常问题。,26,表5.15 关系SC如下,其中:SNO为学号,CNO为课程号,CTITLE为课程名,IN

31、AME为教师名,ILOCA为教师地址,GRADE为成绩。解:(1)SC为1NF。(2)它存在插入、删除异常操作。当增设一门新课程时,因还没有学生选修,则缺少关键字的一部分SNO而不能执行插入操作;当所有学生退选某门课程而进行删除操作时,会将不合法删除的课程信息删除。(3)SC关系中存在插入和删除操作异常的原因在于,该关系的候选关键字为(SNO,CNO),其中仅有非属性GRADE完全函数依赖于(SNO,CNO),其他非主属性CTITLE、INAME、ILOCA都只函数依赖于CNO,即它们与(SNO,CNO)为部分函数依赖关系.,27,分解后的关系模式如下:SG 如下:CI如下:分解后的两个关系子

32、模式都为2NF(实际上,SG是3NF,它无传递依赖)。解决了先前的插入、删除异常操作。当增设一门新课程时,可将数据插入到CI表中;当所有学生退选某门课程时,只需删除SG表中的有关记录,而该课程的有关信息仍保留在CI表中。分解2NF后的CI关系中仍存在插入、删除操作异常。若有一个新教师报到,需将其有关数据插入操作;当取消某门课程而删除CI表中的一条记录时,会将不该删除的教师的有关信息删除。CI表中出现操作异常的原因是该关系中存在非主属性对候选关键字的传递函数依赖:CNOINAME,INAME CNO,INAMEILOCA,所以CNOILOCA(函数传递依赖,CI不是3NF)(4)将CI进一步分解

33、为如下所示的Course和Inst两个关系,可以解决上述操作异常。,28,COURSE INST,29,11.建立订货系统的数据库关系模式顾客信息(顾客号,地址,赊购限额,余额,折扣)订单信息(订单号,顾客号,收货地址,订货日期)订单细则(订单号,细则编号,货物号,订货数量,未发货量)货物信息(货物号,制造厂商,最低存货量,货物描述)制造厂商信息(厂商编号,名称)货物存货信息(货物号,厂商编号,实际存货量),30,第六章 数据库设计,2.简述数据库设计过程中各个阶段的设计任务(1)需求分析阶段 进行数据库设计首先必须准确了解与分析用户需求(包括数据与处理)。需求分析是整个设计过程的基础,是最困

34、难、最费时的一步。作为地基的需求分析是否做得充分与准确,决定了在其上构建数据库的速度与质量。需求分析做得不好,甚至会导致整个数据库设计返工重做。(2)概念结构设计阶段 概念结构设计是整个数据库设计的关键,它通过对用户需求进行综合、归纳与抽象,形成一个独立于具体DBMS的概念模型。(3)逻辑结构设计阶段 逻辑结构设计是将概念结构转换为某个DBMS所支持的数据模型,并对其进行优化。(4)数据库物理设计阶段 数据库物理设计是为逻辑数据模型选取一个最适合应用环境的物理结构(包括存储结构和存取方法)。(5)数据库实施阶段 在数据库实施阶段,设计人员运用DBMS提供的数据语言及其宿主语言,根据逻辑设计和物

35、理设计的结果建立数据库,编制与调试应用程序,组织数据入库,并进行试运行。(6)数据库运行和维护阶段 数据库应用系统经过试运行后即可投入正式运行。在数据库系统运行过程中必须不断地对其进行评价、调整与修改。4.数据字典的内容和作用是什么?数据字典是各类数据描述的集合,它是关于数据库中数据的描述,即“元数据”,而不是数据本身。作用它是概念模式设计、逻辑模式设计和物理模式设计的主要依据。,31,7.什么是数据库的逻辑结构设计,逻辑结构设计的步骤是什么?数据库的逻辑结构设计的任务是把数据库概念设计阶段产生的数据库概念模式(基本E-R图)转化为与所选用的DBMS产品所支持的数据模型相符合的数据库逻辑模式。

36、设计步骤:(1)将概念结构转换为一般的关系、网状、层次模型。(2)将转化来的关系、网状、层次模型向特定DBMS支持下的数据模型转换。(3)对数据模型进行优化。8.简述将E-R图转换为关系模型时的一般规则。(1)一个实体集转换为一个关系模式;(2)两个实体间的1:1联系与所联系的两个实体中任意实体对应的关系模式合并;(3)两个实体间的1:n联系与n端实体对应的关系模式合并;(4)两个实体间的m:n联系单独转换成一个关系模式。11现有一局部应用,包括两个实体:“出版社”和“作者”,这两个实体是多对多的联系,请自己设计适当的属性,画出E-R图,再将其转换为关系模型(包括关系名,属性名、键和完整性约束

37、条件)。(1)出版社的属性:出版社名、地址、所在城市。作者的属性:姓名、职称、工作单位、邮编、联系电话。这两个实体是多对多的联系:出版。联系的属性是:书名、出版日期。(2)E-R图(见P32)(3)据E-R图向关系模型转换原则,实体“出版社”和“作者”转换为关系模型如下:出版社(出版社名,地址,所在城市)作者(作者名,职称,工作单位,联系电话,邮编)两个实体之间的联系“出版”是多对多联系,据E-R图向关系模型转换原则,将两个实体的键加上联系的属性构成出版关系,出版社名、作者名、书名不能取空,关系模式如下:出版(出版社名,作者名,书名,出版日期),32,出版社,所在城市,出版社名称,出版社地址,作者邮编,出版,作者,工作单位,作者姓名,联系电话,职称,书稿名,出版日期,33,13.画出大学选课的E-R图,并将其转换成关系模型。对应的关系模型:学生(学号,姓名,性别,年龄,系别)课程(课程号,课程名,课程学分)教师(教师号,教师名,职称)选修(学生号,教师号,课程号,成绩),34,14.画出图书借阅管理数据库的E-R图,并将其转换成关系模型对应的关系模型:读者(借书证号,姓名,借书人单位,借书日期,还书日期)图书(书号,书名,品种,数量,出版社号)出版社(出版社号,出版社名)借阅(借书证号,书号,借书日期,还书日期),35,Thank you!,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号