数据库原理及实践教材练习题答案.docx
- 文档编号:10373630
- 上传时间:2023-05-25
- 格式:DOCX
- 页数:35
- 大小:162.97KB
数据库原理及实践教材练习题答案.docx
《数据库原理及实践教材练习题答案.docx》由会员分享,可在线阅读,更多相关《数据库原理及实践教材练习题答案.docx(35页珍藏版)》请在冰点文库上搜索。
数据库原理及实践教材练习题答案
第一章
一、单项选择题
DBDCDABBCCCADAD
二、填空题
1、文件系统
2、层次模型的IMS系统,网状模型的DBTG报告,E.F.Codd
3、数据的完整性,并发控制
4、操作系统,数据库管理系统
5、内
三、简答题
1、数据处理是指信息的收集、管理、加工、传播等一系列活动的总和。
数据管理是指对数据进行分类、组织、编码、存储、检索和维护。
数据管理是数据处理的基本环节,是任何数据处理业务中必不可少的共有部分,是数据处理的中心问题。
2、数据库技术的特点:
(1)数据整体结构化,数据的共享性高,冗余度小;
(2)程序与数据之间的独立性高;(3)数据得到统一管理和控制。
数据的整体结构化是数据库技术的主要特征之一,也是数据库系统与文件系统的根本区别。
文件系统是数据库技术的基础,因为数据库技术中对数据库的读写操作最终还是通过文件系统去实现的。
3、尽管有各种各样的信息系统,但它们的主要功能都是进行信息处理(即数据处理),而数据处理都涉及到数据的管理问题。
如果数据的管理由各个信息系统自己去实现,不但耗时耗钱,而且系统的稳定性、可靠性、安全性、响应时间都不能得到保证。
因为数据管理软件的编写是一项专业性很强的工作,不是一般的程序员可以胜任的。
采用数据库技术后,数据的管理就由DBMS去完成,而DBMS是专业公司开发的,系统的稳定性、可靠性、安全性、响应时间都有保证,而且缩短了系统的开发时间,节约了成本。
4、数据库系统是引入了数据库技术后的计算机系统,一般由数据库、数据库管理系统(及其开发工具)、数据库应用系统、数据库管理员(DBA)构成。
DBA是数据库系统中最重要的一类人员。
具体职责包括:
(1)决定数据库中的信息内容和结构;
(2)决定数据库的存储结构和存取策略;(3)定义数据的安全性要求和完整性约束条件;(4)监控数据库的使用和运行;(5)数据库的改进和重组。
5、目前最常见的商用DBMS有:
Oracle、DB2、SQLServer、MySQL等。
DBMS一般有六大功能:
(1)数据定义功能;
(2)数据组织、存储和管理;(3)数据操纵功能;(4)数据库的运行管理和事务管理;(5)数据库的建立和维护功能。
6、模式是数据库中全体数据的逻辑结构和特征的描述,是全体用户数据的最小并集。
数据库模式以某一种数据模型为基础,综合考虑了所有用户的需求,并将这些需求有机地结合成一个逻辑整体。
一个数据库只有一个模式。
外模式是用户的数据视图,是用户可看见和使用的局部数据逻辑结构和特征的描述,是与某一具体应用有关的数据的逻辑表示。
显然,外模式是模式的子集,且可以有多个。
内模式是数据库中数据的物理结构和存储方法的描述,是数据在数据库内部的表示方式。
内模式负责定义所有数据的物理存储策略和访问控制方法。
一个数据库只有一个内模式。
7、数据库系统采用外模式、模式、内模式三级模式结构,三级模式是对数据的三个抽象级别,它把数据的具体组织留给DBMS管理,使用户能逻辑地抽象地处理数据,而不必关心数据在计算机中的具体表示方式和存储方式,不必考虑存取路径等细节。
DBMS在这三级模式之间提供了两层映像:
外模式/模式映像、模式/内模式映像。
正是这两层映像保证了数据库系统中的数据具有较高的逻辑独立性和物理独立性。
另外,外模式是数据库安全性的一个有力措施,模式实现了数据的共享,减少了数据的冗余。
8、程序与数据的逻辑独立性是指当模式改变时,可由数据库管理员改变外模式/模式映像,使得每个外模式保持不变,而应用程序是根据外模式编写的,从而不必修改应用程序。
程序与数据的物理独立性是指当内模式改变时,可由数据库管理员改变模式/内模式映像,使得模式保持不变(外模式当然也不变),从而不必修改应用程序。
第二章
一、单项选择题
BDACABDCBBABDABDBDAD
二、填空题
1、模拟现实世界
2、数据结构
3、逻辑模型
4、实体
5、多对多
6、网状模型,面向对象模型
7、指针
8、关系
9、候选码
10、实体完整性,参照完整性
三、简答题
1、概念模型具有较强的语义表达能力,能够方便、直接地表达应用所涉及到的现实世界中的各种语义知识,另一方面它概念简单、清晰,易于用户理解,且不依赖于具体的计算机系统。
概念模型主要用于数据库设计,是用户与数据库设计人员之间进行交流的桥梁。
2、表示概念模型最常用的方法是用E-R图来表示概念模型,这种概念模型也称E-R模型。
画E-R图的步骤:
(1)确定实体;
(2)确定各实体的属性;(3)确定实体之间的联系;(4)确定各联系的属性。
3、非关系模型中实体之间的联系是通过指针来实现的,因此查询效率较高。
缺点是数据结构复杂,不易理解,编程也复杂。
关系模型的优点是:
①有严格的理论基础,概念单一;②数据结构简单、清晰、用户易理解;③存取路径对用户透明,程序与数据的独立性高,易于应用程序的编写和维护。
缺点主要是查询效率不如非关系模型,DBMS的开发难度高。
4、在关系模型中的概念单一主要体现在数据结构单一(即现实世界中实体以及实体之间的各种联系都用关系来表示),而数据结构单一又带来操作符的统一。
操作符的统一体现在无论是插入(或删除修改)一个实体值还是插入(或删除修改)一个联系值,操作的命令是相同的(不像DBTG中用STORE插入实体值,用CONNECT插入联系值),这大大方便了用户的使用。
5、所谓存储路径对用户透明就是指用户不需要知道数据的物理结构和存储方式。
优点:
因为存取路径对用户透明,从而具有更高的数据独立性,更好的安全保密性,简化了程序员的工作。
缺点:
因为存取路径对用户透明,导致查询效率不如非关系系统,增加了开发DBMS的难度。
6、关系模型中有三类完整性约束,包括实体完整性、参照完整性和用户定义的完整性。
其中实体完整性和参照完整性是关系模型必须满足的完整性约束条件,被称作是关系的两个不变性,应该由关系数据库系统自动支持。
实体完整性规则:
若属性A是基本关系R主码中的属性,则属性A不能取“空值”。
参照完整性规则:
若属性(或属性组)F是基本关系R的外码,它与基本关系S的主码Ks相对应(R和S可以是同一个关系),则对于R中每个元组在F上的值必须等于S中某个元组的主码值或者取空值(F的每个属性值均为空值)。
用户定义的完整性是针对某一具体的关系数据库的约束条件,它反映了某一具体应用所涉及的数据必须满足的语义要求。
7、外码不是一定可以取空值的。
当外码是本关系主码中的属性时,外码不能取空值,如果取空值将违反实体完整性规则。
例如,选修关系中的外码“学号”和“课程号”就不能取空值。
所以只有当外码不是本关系主码中的属性时,外码才可以取空值。
8、用户只要告诉系统操作的要求,不必告诉系统如何来完成该操作(即用户只要告诉系统“做什么”,而不必告诉“怎么做”)的语言就是非过程化语言。
9、自然连接是一种特殊的等值连接,它与等值连接的区别表现在:
被连接的两个关系中进行相等比较的分量必须是相同的属性(组),并且要在结果中把重复的属性(组)去掉。
10、例如,如果要实现查询要求“查询所有学生信息并同时查询他的选课信息”,这时就要做学生关系与选修关系的自然连接,如果有学生还没有选修过课程,那么该学生信息将会在结果关系中消失,不符合查询要求,这时就要用到左外连接。
四、关系代数
1、πGnane,Price(σManufac='海尔'(Goods))
2、πGnane,Price(σGtype='手机'∧Manufac='华为'(Goods))
3、πCno(Customers)-πCno(Sells)
4、πCno,Cname,Mphone(Customers)(πCno(Customers)-πCno(σSdate>='2015-01-01'(Sells)))
5、πSno,Gno(Detail)÷πGno(σGno='140010123'∨Gno='150020234'(Goods))也可以用自连接做
6、πCno,Gno(SellsDetail)÷πGno(σGtype='奶粉'(Goods))
7、gsum(Quantity)as销售总数量(DetailπGno(σGname='WR700N无线路由器'∧Manufac='TP-LINK'(Goods)))
8、Gtypegcount(Gno)as品种数,avg(Price)as平均价格(Goods)
9、πGtype(σ平均价格>'1000'(Gtypegavg(Price)as平均价格(Goods)))
10、πCno,Cname,Mphone,Sdate,IsPay(CustomersSells)
第三章
一、单项选择题
DACDBADADBBCBABDCDAC
二、填空题
1、主数据,日志
2、查询速度,1
3、1,主
4、字符数据,二进制数据
5、系统,系统,数据字典,系统
6、用户,tempdb
7、拒绝
8、删除
三、简答题
1、数据定义语言(DDL)主要定义数据库的逻辑结构,包括定义基本表、索引和视图三个部分;数据操纵语言(DML)包括数据查询和数据更新两大类操作,其中数据更新又包括插入、删除和修改三种操作;数据控制语言(DCL)主要有对基本表和视图的授权,事务控制语句等。
2、SQL语言的主要特点包括:
(1)综合统一,即集DDL、DML和DCL功能于一体;
(2)面向集合的操作方式,即操作的对象和操作的结果都是元组的集合;(3)高度非过程化,即在完成某项查询要求时,用户无需了解存取路径,只要提出“做什么”,不必指出“怎么做”;(4)以同一种语法结构提供两种使用方式,即独立地用于联机交互的使用方式和嵌入到高级语言中这两种不同的使用方式下,语法结构是基本上一致的;(5)支持三级模式结构。
3、RDBMS的完整性控制机制都应有完整性定义、完整性检查和违约处理这三方面的功能。
4、列级完整性约束条件中涉及的属性只能是本列中的属性,而表级完整性约束条件中涉及的属性可以是本表中所有列中的属性。
5、SQL语言中,在用CREATETABLE语句创建表时,可以用PRIMARYKEY定义主码,定义主码即实现了实体完整性;也可以用FOREIGNKEYREFERENCES定义外码,定义外码即实现了参照完整性。
6、用户定义的完整性就是针对某一具体应用的数据必须满足的语义要求。
在SQLServer中可以在列级或表级用NOTNULL(属性取非空值)、UNIQUE(属性取值唯一)和CHECK(检查属性值是否满足一个逻辑表达式)三种形式实现用户定义的完整性。
另外,T-SQL语言中的DEFAULT(属性取默认值)也可以理解为列级用户定义的完整性约束。
7、三种处理方式:
(1)拒绝(NOACTION)执行,即不允许执行该操作,一般为默认违约处理方式。
(2)级连(CASCADE)操作,表示当删除或修改被参照表的一个元组造成了参照表中某些元组的外码违反了参照完整性约束,则系统会自动删除或修改参照表中所有违反参照完整性约束的元组。
(3)设置为空值(SETNULL),表示当删除或修改被参照表的一个元组造成了参照表中某些元组的外码违反了参照完整性约束,则系统会自动将参照表中所有违反参照完整性约束的元组的外码设置为空值。
8、只有一种处理方式,拒绝(NOACTION)执行,即不允许执行该操作。
四、SQL语言
1、CREATETABLECustomers
(Cnochar(8)PRIMARYKEY,
Cnamechar(12)NOTNULL,
Csexchar
(2)NOTNULLCHECK(CsexIN('男','女')),
CagetinyintNOTNULL,
Caddressvarchar(50),
Mphonechar(11)NOTNULL,
Emailvarchar(30)
)
CREATETABLEGoods
(Gnochar(9)PRIMARYKEY,
Gnamechar(20)NOTNULL,
Gtypechar(8)NOTNULL,
Pricedecimal(9,2)NOTNULLCHECK(PriceBETWEEN1AND100000),
Manufacchar(12)NOTNULL
)
CREATETABLESells
(Snochar(14)PRIMARYKEY,
SdatedatetimeNOTNULL,
Saddressvarchar(50)NOTNULL,
Cnochar(8)NOTNULLFOREIGNKEYREFERENCESCustomers(Cno),
IsPaychar
(1)NOTNULLCHECK(IsPayIN('N','Y'))
)
CREATETABLEDetail
(Snochar(14)FOREIGNKEYREFERENCESSells(Sno),
Gnochar(9)FOREIGNKEYREFERENCESGoods(Gno),
QuantitysmallintNOTNULL
CONSTRAINTck_DCHECK(QuantityBETWEEN1AND100),
PRIMARYKEY(Sno,Gno)
)
2、ALTERTABLECustomersADDCONSTRAINTck1_CCHECK(Cage>=10)
ALTERTABLECustomersADDCONSTRAINTck2_CUNIQUE(Mphone)
3、ALTERTABLEDetail
DROPCONSTRAINTck_D
ALTERTABLEDetail
ADDCONSTRAINTck_DCHECK(QuantityBETWEEN1AND1000)
4、SELECTGname,PriceFROMGoodsWHEREManufac='海尔'ORDERBYPriceDESC
5、SELECTGname,PriceFROMGoodsWHEREManufac='华为'ANDGnameLIKE'%手机%'
6、SELECTCOUNT(*)FROMGoods
7、SELECTGtype,COUNT(*),AVG(Price)FROMGoodsGROUPBYGtype
8、SELECTGtypeFROMGoodsGROUPBYGtypeHAVINGAVG(Price)>1000
9、SELECTSno,S.Cno,Cname,MphoneFROMSellsSJOINCustomersCONS.Cno=C.CnoWHEREIsPay='N'ANDSdateBETWEEN'2015-05-01'AND'2015-05-31'
10、SELECTC.Cno,Cname,Mphone,Sdate,IsPayFROMCustomersCLEFTJOINSellsSONC.Cno=S.Cno
11、SELECTS.Sno,Sdate,Cname,SUM(Quantity*Price)FROMSellsS,CustomersC,DetailD,GoodsGWHERES.Cno=C.CnoANDS.Sno=D.SnoANDD.Gno=G.GnoGROUPBYS.Sno,Sdate,Cname
12、SELECTSUM(Quantity)FROMDetailDJOINGoodsGOND.Gno=G.GnoWHEREManufac='TP-LINK'ANDGname='WR700N无线路由器'
另一种做法:
SELECTSUM(Quantity)FROMDetailWHEREGnoIN(SELECTGnoFROMGoodsWHEREManufac='TP-LINK'ANDGname='WR700N无线路由器')
13、SELECTCnoFROMCustomersWHERECnoNOTIN(SELECTCnoFROMSells)
14、SELECTCno,Cname,MphoneFROMCustomersWHERECnoNOTIN(SELECTCnoFROMSellsWHERESdate>='2015-01-01')
15、SELECTGno,Gname,ManufacFROMGoodsGWHEREPrice=(SELECTMIN(Price)FROMGoodsWHEREGtype=G.Gtype)
16、SELECTGname,Price,ManufacFROMGoodsWHEREGnoIN(SELECTGnoFROMDetailGROUPBYGnoHAVINGSUM(Quantity)>=ALL(SELECTSUM(Quantity)FROMDetailGROUPBYGno))
17、SELECTSnoFROMDetailDWHEREGno='140010123'ANDEXISTS(SELECT*FROMDetailWHERESno=D.SnoANDGno='150020234')
另一种做法:
SELECTSnoFROMDetailWHEREGno='140010123'ORGno='150020234'GROUPBYSnoHAVINGCOUNT(*)=2
18、SELECTCnoFROMCustomersCWHERENOTEXISTS(SELECT*FROMGoodsGWHEREGtype='奶粉'ANDNOTEXISTS(SELECT*FROMSellsSJOINDetailDONS.Sno=D.SnoWHERES.Cno=C.CnoANDD.Gno=G.Gno))
19、SELECTGno,Gname,ManufacFROMGoodsG,(SELECTGtype,MIN(Price)ASMinPriceFROMGoodsGROUPBYGtype)ASGtypePriceWHEREG.Gtype=GtypePrice.GtypeANDPrice=MinPrice
20、UPDATEGoodsSETPrice=0.95*PriceWHEREGtype='手机'
21、DELETEFROMGoodsWHEREGno='110050111'
22、INSERTINTOGoodsVALUES('150050111','P8手机','手机',2499,'华为')
第四章
一、单项选择题
ABADCACCDB
二、填空题
1、搜索码,搜索码值
2、有序
3、稀疏,稠密,1,多
4、249,16
5、CLUSTERED
6、PRIMARYKEY,UNIQUE
7、索引视图
三、简答题
1、模式DDL有CREATETABLE语句,子模式DDL有CREATEVIEW语句,内模式DDL有CREATEINDEX语句。
2、表中每个搜索码值都有一个索引项,这种索引称为稠密索引。
当表按照搜索码值有序存储时,可以只为搜索码的某些值建立索引项,这种索引称为稀疏索引。
稠密索引可以比稀疏索引更快地定位一条记录,但稠密索引所占用的存储空间比稀疏索引大。
3、所谓聚集索引就是指表中的元组按照索引中搜索码指定的顺序排序,使得具有相同搜索码值的元组在物理上聚集在一起。
显然,一张表最多只能有一个聚集索引。
聚集索引往往是稀疏索引,可以只存储部分搜索码值。
因为表中的元组是按聚集索引而不是辅助索引的搜索码有序存放的,所以辅助索引必须是稠密索引,对每个搜索码值都有一个索引项,包含指向表中每个元组的指针。
显然,一张表可以创建多个辅助索引。
4、如果索引小到可以放在内存中,那么搜索一个索引项的时间就可以忽略。
但是,如果索引过大而不能放在内存中,那么当需要时,就必须从磁盘中读取索引块,于是搜索一个索引项可能需要多次读取磁盘块,是一个相当耗时的过程。
所以不管是聚集索引,还是辅助索引,当索引项很多,索引很大时,实际使用的往往都是多级索引。
5、见教材4.1.2小节
6、基本表在数据库中既要存放它的定义,又要存放它的数据。
而视图是从一张或几张基本表(或视图)导出的表。
与基本表不同,视图是一张虚表,在数据库中只存放视图的定义(即SELECT语句),不存放视图对应的数据(即SELECT语句的查询结果)。
两者的联系是视图的数据在它对应的基本表中,所以基本表中的数据一旦发生变化,从视图中查询出的数据也就随之改变了。
从这个意义上讲,视图就像一个窗口,通过它用户可以看到数据库中自己感兴趣的数据及其变化。
7、如果定义视图的子查询对下列条件都能满足,那么该视图是可以更新的:
(1)FROM子句中只有一个数据库关系;
(2)SELECT子句中只包含关系的属性名,不包含任何表达式、聚集函数或DISTINCT短语;(3)没有出现在SELECT子句中的属性可以取空值,也不是主码中的属性;(4)子查询中没有GROUPBY或HAVING子句。
四、SQL语言
1、CREATEINDEXIndex_Customers_CnameONCustomers(Cname)
2、CREATEINDEXIndex_Goods_GtypePriceONGoods(Gtype,Price)
3、CREATEINDEXIndex_Sells_CnoSdateONSells(Cno,SdateDESC)
4、CREATEVIEWGoodsPhoneAS
SELECT*FROMGoodsWHEREGtype='手机'
5、CREATEVIEWGoodsPhoneHuaWeiAS
SELECT*FROMGoodsPhoneWHEREManufac='华为'
6、CREATEVIEWSellsQuantity(Gname,Price,Manufac,Squantity)AS
SELECTGname,Price,Manufac,SUM(Quantity)FROMGoodsGJOINDetailDONG.Gno=D.GnoGROUPBYG.Gno,Gname,Price,Manufac
7、SELECTGname,Price,ManufacFROMSellsQuantityWHERESquantity=(SELECTMAX(Squantity)FROMSellsQuantity)
8、CREATEVIEWSellsMoney(Sno,Sdate,Cname,Csex,Cage,Smoney)AS
SELECTS.Sno,Sdate,Cname,Cse
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据库 原理 实践 教材 练习题 答案
![提示](https://static.bingdoc.com/images/bang_tan.gif)