• 425.56 KB
  • 2022-04-22 11:36:29 发布

大连交通大学《数据库原理及应用》刘金玲版(56课时)习题参考答案.doc

  • 30页
  • 当前文档由用户上传发布,收益归属用户
  1. 1、本文档共5页,可阅读全部内容。
  2. 2、本文档内容版权归属内容提供方,所产生的收益全部归内容提供方所有。如果您对本文有版权争议,可选择认领,认领后既往收益都归您。
  3. 3、本文档由用户上传,本站不保证质量和数量令人满意,可能有诸多瑕疵,付费之前,请仔细先通过免费阅读内容等途径辨别内容交易风险。如存在严重挂羊头卖狗肉之情形,可联系本站下载客服投诉处理。
  4. 文档侵权举报电话:19940600175。
'大连交通大学《数据库原理及应用》(56课时)习题参考答案第一章1-1文件系统阶段的数据管理有哪些特点?答:文件系统阶段主要有5个特点:数据以“文件”形式长期保存;数据的逻辑结构与物理结构有了区别;文件组织已多样化;数据面向应用;对数据的操作以记录为单位。1-2文件系统阶段的数据管理有些什么缺陷?试举例说明。答:主要有3个缺陷:数据冗余;数据不一致性;数据联系弱。例如学校里教务处、财务处、保健处建立的文件中都有学生详细资料,如联系电话,家庭住址等。这就是“数据”冗余;如果某个学生搬家,就要修改3个部门文件中的数据,否则会引起同一数据在3个部门中不一致;产生上述问题的原因是这3个部门的文件中数据没有联系。1-3数据库阶段的数据管理有哪些特色?答:主要有5个特点:采用数据模型可以表示复杂的数据结构;有较高的数据独立性;为用户提供了方便的用户接口;提供了4个方面的数据控制功能;对数据的操作以数据项为单位,增加了系统的灵活性。1-4什么是数据独立性?在数据库中有哪两级独立性?答:数据独立性是指应用程序与DB的数据结构之间的相互独立。在物理结构改变时,尽量不影响应用程序,称为物理独立性;在逻辑结构改变时,尽量不影响应用程序,称之为逻辑数据独立性。1-5试解释DB、DBMS和DBS三个概念。答:DB是长期存储在计算机内、有组织的、统一管理的相关数据的集合。DBMS是位于用户与0S之间的一层数据管理软件,它为用户或应用程序提供访问DB的方法。DBS是实现有组织地、动态地存储大量关联数据、方便多用户访问的计算机硬件、软件和数据资源组成的系统,即采用数据库技术的计算机系统。1-6SQLServer2005有哪些数据类型?答:SQLServer中数据类型分为整型、浮点型、二进制数据型、逻辑型、字符型、文本型、图形型、日期时间型、货币型、自定义类型、可变数据类型和表数据类型。1-7列举SQLServer2005中新增的主要功能。答:SQLServer2005中新增的主要功能有:⑴NotificationServices增强功能;⑵ReportingServices增强功能,其中包括:报表功能的增强功能、ReportingServices设计时增强功能、ReportingServices可编程性的增强功能、ReportingServices可管理性和部署的增强功能;⑶新增的ServiceBroker以实现SQLServer中的消息传递方面具有以下优势:高伸缩性、消息协调、排序和锁定、集成数据库数据、集成数据库安全性;⑷数据库引擎增强功能;⑸数据访问接口方面的增强功能;⑹SQLServerAnalysisServices(SSAS)的增强功能;⑺IntegrationServices的增强功能;⑻在可管理性、可用性、可编程性、移动性、可伸缩性和性能方面提供了改进。⑼工具和实用工具增强功能;1-8SQLServer2005的实用程序和常用工具有哪些?第30页 答:SQLServer2005给出的常用应用程序和实用工具有:企业管理器、查询分析器、商业智能开发平台、SQLServer分析器、SQLServer2005数据库引擎优化程序、SQLServer配置管理器等。第二章2-1名词解释逻辑数据物理数据联系的元数1:1联系1:N联系M:N联系数据模型概念数据模型外模式概念模式内模式外模式/模式映象模式/内模式映象数据独立性物理数据独立性逻辑数据独立性答:逻辑数据:指程序员或用户用以操作的数据形式。物理数据:指存储设备上存储的数据。联系的元数:与一个联系有关的实体集个数,称为联系的元数。1:1联系:如果实体集El中每个实体至多和实体集E2中的一个实体有联习,反之亦然,那么El和E2的联系称为“l:1联系”。1:N联系:如果实体集El中每个实体可以与实体集E2中任意个(零个或多个)实体有联系,而E2中每个实体至多和El中一个实体有联系,那么El和E2的联系是“1:N联系”。M:N联系:如果实体集El中每个实体可以与实体集E2中任意个(零个或多个)实体有联系,反之亦然,那么El和E2的联系称为“M:N联系”。数据模型:能表示实体类型及实体间联系的模型称为“数据模型”。概念数据模型:独立于计算机系统、完全不涉及信息在计算机中的表示、反映企业组织所关心的信息结构的数据模型。外模式:是用户用到的那部分数据的描述。概念模式:数据库中全部数据的整体逻辑结构的描述。内模式:DB在物理存储方面的描述。外模式/模式映象:用于定义外模式和概念模式之间数据结构的对应性。模式/内模式映象:用于定义概念模式和内模式之间数据结构的对应性。数据独立性:应用程序和DB的数据结构之间相互独立,不受影响。物理数据独立性:在DB的物理结构改变时,尽量不影响应用程序。逻辑数据独立性:在DB的逻辑结构改变时,尽量不影响应用程序。2-2逻辑记录与物理记录、逻辑文件与物理文件有哪些联系和区别?答:逻辑数据是用户用以操作的数据形式,是抽象的概念化数据。物理数据是实际存放在存储设备上的数据。逻辑数据与物理数据在结构上可以差别很大,需通过两级映象来进行数据传输和格式转换。从以上的解释可以看出,逻辑记录和逻辑文件是用户在程序中使用的记录和文件,而物理记录和物理文件是指磁盘上的记录和文件。逻辑记录、文件与物理记录、文件在结构、组成上可以有很大的差异,而数据库管理软件就是通过三级结构两级映象来实现逻辑数据与物理数据之间的转换。2-3试述ER模型、层次模型、网状模型、关系模型和面向对象模型的主要特点。答:ER模型直接表示实体类型及实体间联系,与计算机系统无关,充分反映用户的需求,用户容易理解。第30页 层次模型的数据结构为树结构,记录之间联系通过指针实现,查询较快,但DML属于过程化的语言,操作复杂。网状模型的数据结构为有向图,记录之间联系通过指针实现,查询较快,并且容易实现M:N联系,但DML属于过程化的语言,编程较复杂。关系模型的数据结构为二维表格,容易为初学者理解。记录之间联系通过关键码实现。DML属于非过程化语言,编程较简单。面向对象模型能完整描述现实世界的数据结构,具有丰富的表达能力,能表达嵌套、递归的数据结构。但涉及的知识面较广,用户较难理解,这种模型尚未普及。2-4数据之间的联系在各种结构数据模型中是怎么实现的?答:在层次、网状模型中,数据之间的联系通过指针实现的;在关系模型中,数据之间联系通过外键和主键间联系实现的;在面向对象模型中,数据之间嵌套、递归联系通过对象标识符(OID)实现的。2-5DB的三级模式结构描述了什么问题?试详细解释。答:DB的三级模式结构是对数据的三个抽象级别,分别从外部(用户)级、概念级和内部级去观察数据库。外部级是用户使用的局部数据库的逻辑结构,其描述称为外模式。概念级是DB的整体逻辑结构,其描述称为概念模式。内部级是DB的物理结构,其描述称为内模式。2-6试述概念模式在数据库结构中的重要地位。答:数据按外模式的描述提供给用户,按内模式的描述存储在磁盘中,而概念模式提供了连接这蘧级的相对稳定的中间观点,并使得两级的任何一级的改变都不受另一级的牵制。2-7什么是数据独立性?其目的是什么?数据库独立性是指应用程序与DB的数据结构之间相互独立。其目的是在物理结构改变或逻辑结构改变时,尽量不影响应用程序。第三章3-1名词解释:关系模式关系实例属性元组超键候选键主键外键实体完整性规则参照完整性规则答:关系模式:是对关系的描述,包括模式名、诸属性名、值域名和模式的主键。关系实例:关系模式具体的值,称为关系实例。属性:即字段或数据项,与二维表中的列对应。属性个数,称为元数。元组:即记录,与二维表中的行对应。元组个数,称为基数。超键:能惟一标识元组的属性或属性集,称为关系的超键。候选键:不含有多余属性的超键,称为候选键。主键:正在使用的、用于标识元组的候选键,称为主键。外键:属性集F是模式S的主键,在模式R中也出现,那么称F是模式R的外键。实体完整性规则:实体的主键值不允许是空值。参照完整性规则:依赖关系中的外键值或者为空值,或者是相应参照关系中某个主键值。3-2为什么关系中的元组没有先后顺序,且不允许有重复元组?答:由于关系定义为元组的集合,而集合中的元素是没有顺序的,因此关系中的元组也譬没有先后的顺序(对用户而言)。这样既能减少逻辑排序,又便于在关系数据库中引进集合论的理论。每个关系模式都有一个主键,在关系中主键值是不允许重复的。第30页 如果关系中有重复元组,那么其主键值肯定相等,起不了惟一标识作用,因此关系中不允许有重复元组。3-3外健值何时允许为空?何时不允许为空?答:在依赖表中,当外键是主键的组成部分时,外键值不允许为空;否则外键值允许为空。3-4笛卡尔积、等值连接和自然连接三者之间有什么区别?答:笛卡儿积是一个基本操作,而等值连接和自然连接是组合操作。设关系R的元数为r,元组个数为m;关系S的元数为s。,元组个数为n。那么,R×S的元数为r+s,元组个数为m×n;iθjRS的元数也是r+s,但元组个数小于等于m×n;RS的元数小于等于r+s,元组个数也小于等于m×n:3-5设有关系R和S,如图3.18所示。ABC327465247733ABC374253RS图3.18关系R和S2<2计算R∪S,R-S,R∩S,R×S,π3,2(S),σB<"5"(R),RS,RS。ABC327436524477335R∪SABC324654773R-SABC723R∩SR.AR.BR.CS.AS.BS.C332277446655224477773333373737374242424253535353R×SCB5342π3,2(S)ABC742433σB<’5’(R)R.AR.BR.CS.AS.BS.C723345RS2<2ABC723RSB’23’∧SEX=’M’(SC))⑶πCNAME,TEACHER(σS#=’S3’(SCC))⑷πSNAME(σSEX=’F’∧TEACHER=’LIU’(SSCC))⑸πC#(C)-πC#(σSNAME=’WANG’(SSC))⑹π1(σ1=4∧2≠5(SC×SC))⑺πC#,CNAME(C(πS#,C#(SC)÷πS#(S)))⑻πS#,C#(SC)÷πC#(σTEACHER=’LIU’(C))3-8在3.7题的三个关系中,用户有一查询语句:检索数学系的学生选修计算机系开设的课程的课程名和任课教师姓名。⑴试写出该查询的关系代数表达式。⑵试写出该查询优化的关系代数表达式。⑶画出该查询初始的关系代数表达式的语法树。⑷使用3.5.3节的优化算法,对语法树进行优化,并画出优化后的语法树。解:⑴πCNAME,TEACHER(σDEPT=‘数学系’(SSCC))⑵设L1=πS#(σDEPT=‘数学系’(S)),L2=πS#,C#(SC),则优化的关系代数表达式为:第30页 πCNAME,TEACHER(σSC.C#=C.C#(πSC.C#(σS.S#=SC.S#((L1×L2)×C))))⑶查询初始的关系代数表达式可表达为:πCNAME,TEACHER(σDEPT=‘数学系’(πL(σS.S#=SC.S#∧SC.C#=C.C#((S×SC)×C))))此处L为S、SC、C中的全部属性(公共属性只取一次)。LS.S#=SC.S#∧SC.C#=C.C#DEPT=’数学系’πσCNAME,TEACHER×SSCCπσ×⑷优化后的语法树为πDEPT=’数学系’σCNAME,TEACHER×SSCπσ×SC.C#=C.C#SC.C#S.S#=SC.S#σS#πS#,C#πC3-9为什么要对关系代数表达式进行优化?答:关系代数表达式由关系代数操作组合而成。操作中,以笛卡尔积和连接操作最费时间,并生成大量的中间结果。如果直接按表达式书写的顺序执行,必将花费很多时间,并生成大量的中间结果,效率较低。在执行前,由DBMS的查询子系统先对关系代数表达式进行优化,尽可能先执行选择和投影操作,以便减少中间结果,节省时间。优化工作是由DBMS做的,用户书写时不必关心优化一事,仍以简练的形式书写。习题44-1名词解释基本表视图实表相关子查询联接查询嵌套查询交互式SQL嵌入式SQL游标答:基本表:实际存储在数据库中的表,称为基本表。第30页 视图:是从基本表或其他视图中导出的表,它本身不独立存储在数据库中,也就是数据库中只存放视图的定义而不存放视图的数据。实表:是对基本表的别称。相关子查询:SELECT语句嵌套时,子查询中查询条件依赖于外层查询中的值,因此子查询要反复求值供外层查询使用。这种子查询称为相关子查询。连接查询:查询时要从多个基本表中提取数据,此时把多个基本表写在同一层的FROM子句中,这种查询形式称为连接查询。嵌套查询:查询时要从多个基本表中提取数据,此时把多个基本表分别放在不同层次上的FROM子句中,这种查询形式称为嵌套查询。交互式SQL:在终端交互方式使用的SQL语言。嵌入式SQL:嵌入在高级语言的程序中使用的SQL语言。游标:游标是与某一查询相联系的符号名。游标有游标关系和游标指针两层含义。在游标打开时,游标(指针)指向查询结果的第一个记录之前。4-2对于教务管理数据库的三个基本表S(SNO,SNAME,SEX,AGE,SDEPT)SC(SNO,CNO,GRADE)C(CNO,CNAME,CDEPT,TNAME)试用SQL的查询语句表达下列查询:⑴检索LIU老师所授课程的课程号和课程名。⑵检索年龄大于23岁的男学生的学号和姓名。⑶检索学号为200915146的学生所学课程的课程名和任课教师名。⑷检索至少选修LIU老师所授课程中一门课程的女学生姓名。⑸检索WANG同学不学的课程的课程号。⑹检索至少选修两门课程的学生学号。⑺检索全部学生都选修的课程的课程号与课程名。⑻检索选修课程包含LIU老师所授课程的学生学号。解:⑴SELECTC#,CNAMEFROMCWHERETEACHER=’LIU’;⑵SELECTS#,SNAMEFROMSWHEREAGE>23ANDSEX=’M’;⑶SELECTCNAME,TEACHERFROMSC,CWHERESC.C#=C.C#ANDS#=’200915146’⑷SELECTSNAME(连接查询方式)FROMS,SC,CWHERES.S#=SC.S#ANDSC.C#=C.C#ANDSEX=’F’ANDTEACHER=’LIU’;或:SELECTSNAME(嵌套查询方式)FROMSWHERESEX=’F’ANDS#IN(SELECTS#第30页 FROMSCWHEREC#IN(SELECTC#FROMCWHERETEACHER=’LIU’))或:SELECTSNAME(存在量词方式)FROMSWHERESEX=’F’ANDEXISTS(SELECT*FROMSCWHERESC.S#=S.S#ANDEXISTS(SELECT*FROMCWHEREC.C#=SC.C#ANDTEACHER=’LIU’))⑸SELECTC#FROMCWHERENOTEXISTS(SELECT*FROMS,SCWHERES.S#=SC.S#ANDSC.C#=C.C#ANDSNAME=’WANG));⑹SELECTDISTINCTX.S#FROMSCASX,SCASYWHEREX.S#=Y.S#ANDX.C#!=Y.C#;⑺SELECTC#.CNAMEFROMCWHERENOTEXISTS(SELECT*FROMSWHERENOTEXISTS(SELECT*FROMSCWHERES#=S.S#ANDC#=C.C#));⑻SELECTDISTINCTS#FROMSCASXWHERENOTEXISTIS(SELECT*FROMCWHERETEACHER=’LIU’ANDNOTEXISTS(SELECT*FROMSCASYWHEREY.S#=X.S#ANDY.C#=C.C#));4-3试用SQL查询语句表达下列对4.2题中教务管理数据库的三个基本表S、SC、C查询:⑴统计有学生选修的课程门数。⑵求选修4号课程的学生的平均年龄。⑶求LIU老师所授课程的每门课程的学生平均成绩。第30页 ⑷统计每门课程的学生选修人数(超过10人的课程才统计)。要求输出课程号和选修人数,查询结果按人数降序排列,若人数相同,按课程号升序排列。⑸检索学号比WANG同学大,而年龄比他小的学生姓名。⑹检索姓名以WANG打头的所有学生的姓名和年龄。⑺在SC中检索成绩为空值的学生学号和课程号。⑻求年龄大于女同学平均年龄的男学生姓名和年龄。⑼求年龄大于所有女同学年龄的男学生姓名和年龄。解:⑴SELECTCOUNT(DISTINCTC#)FROMSC;⑵SELECTAVG(AGE)FROMS,SCWHERES.S#=SC.S#ANDC#=’4’ANDSEX=’F’;⑶SELECTC.C#,AVG(GRADE)FROMSC,CWHERESC.C#=C.C#ANDTEACHER=’LIU’;⑷SELECTC#,COUNT(S#)FROMSCGROUPBYC#HAVINGCOUNT(*)>10ORDERBY2DESC,1;⑸SELECTSNAMEFROMSWHERES#>ALL(SELECTS#FROMSWHERESNAME=’WANG’ANDAGE(SELECTAVG(AGE)FROMSWHERESEX=’F’);⑼SELECTSNAME,AGEFROMSWHERESEX=’M’ANDAGE>ALL(SELECTAGEFROMS第30页 WHERESEX=’F’);4-4试用SQL更新语句表达对4.2给出的教务管理数据库中三个基本表S、SC、C进行如下更新操作:⑴往基本表S中插入一个学生元组(‘200912143’,‘张晶’,21)。⑵在基本表S中检索每一门课程成绩都大于等于80分的学生学号、姓名和性别,并把检索到的值送往另一个已存在的基本表STUDENT(SNO,SNAME,SEX)。⑶在基本表SC中删除尚无成绩的选课元组。⑷把张成民同学在SC中的选课记录全部删去。⑸把选修高等数学课程中不及格的成绩全部改为空值。⑹把低于总平均成绩的女同学成绩提高5%。⑺在基本表SC中修改4号课程的成绩,若成绩小于等于75分时提高5%,若成绩大于75分时提高4%(用两个UPDATE语句实现)。解:⑴INSERTINTOS(S#,SNAME,AGE)VALUES(‘200912143’,’张晶’,21);⑵INSERTINTOSTUDENT(SNO,SNAME,SEX)SELECTS#,SNAME,SEXFROMSWHERES#IN(SELECTS#FROMSCWHERE80<=ALL(SELECTGRADEFROMSCGROUPBYS#));⑶DELETEFROMSCWHEREGRADEISNULL;⑷DELETEFROMSCWHERES#IN(SELECTS#FROMSWHERESNAME=’张民’)⑸UPDATESCSETGRADE=NULLWHEREGRADE<60ANDC#IN(SELECTC#FROMCWHERECNAME=’高等数学’);⑹UPDATESCSETGRADE=GRADE*1.05WHERES#IN(SELECTS#FROMSWHERESEX=’F’)ANDGRADE<(SELECTAVG(GRADE)FROMSC);⑺用两个UPDATE语句实现:UPDATESC第30页 SETGRADE=GRADE*1.04WHEREC#=’4’ANDGRADE>75;UPDATESCSETGRADE=GRADE*1.05WHEREC#=’4’ANDGRADE<=75;注意:这两个UPDATE语句的顺序不能颠倒。4-5假设某“仓库管理”关系模型有下列五个关系模式:零件PART(PNO,PNAME,COLOR,WEIGHT)项目PROJECT(JNO,JNAME,JDATE)供应商SUPPLIER(SNO,SNAME,SADDR)供应P_P(JNO,PNO,TOTAL)采购P_S(PNO,SNO,QUANTITY)⑴试用SQLDDL语句定义上述五个基本表,并说明主键和外键。⑵试将PROJECT、P_P、PART三个基本表的自然联接定义为一个视图VIEW1,PART、P_S、SUPPLIER三个基本表的自然联接定义为一个视图VIEW2。⑶试在上述两个视图的基础上进行数据查询:①检索上海的供应商所供应的零件的编号和名字。②检索项目J4所用零件的供应商编号和名字。解:⑴CREATETABLEPART(PNOCHAR(6),PNAMECHAR(10)NOTNULL,COLORCHAR(6),WEIGHTFLOAT(6),PRIMARYKEY(PNO));CREATETABLEPROJECT(JNOCHAR(6),JNAMECHAR(12)NOTNULL,DATEDATE,PRIMARYKEY(JNO));CREATETABLESUPPLIER(SNOCHAR(8),SNAMECHAR(12)NOTNULL,SADDRVARCHAR(30),PRIMARYKEY(SNO));CREATETABLEP_P(JNOCHAR(6),PNOCHAR(6),TOTALINTEGER,PRIMARYKEY(JNO,PNO);FOREIGNKEY(JNO)REFERENCESPROJECT(JNO),FOREIGNKEY(PNO)REFERENCESPART(PNO));CREATETABLEP_S(PNOCHAR(6),SNOCHAR(8),QUANTITYINTEGER,PRIMARYKEY(PNO,SNO)FOREIGNKEY(PNO)REFERENCESPART(PNO),FOREIGNKEY(SNO)REFERENCESSUPPLIER(SNO));⑵CREATEVIEWVIEWlASSELECTA.JNO,JNAME,DATE,C.PNO,PNAME,COLOR,WEIGHT,TOTALFROMPROJECTA,P_PB,PARTCWHEREA.JNO=B.JNOANDB.PNO=C.PNO;CREATEVIEWVIEW2ASSELECTA.PNO,PNAME,COLOR,WEIGHT,C.SNO,SNAME,SADDR,QUANTITYFROMPARTA,P_SB,SUPPLIERCWHEREA.PNO=B.PNOANDB.SNO=C.SNO;⑶①SELECTPNO,PNAME第30页 FROMVIEW2WHERESADDRLIKE’上海%’;②SELECTSNO,SNAMEFROMVIEWl,VIEW2WHEREVIEWl.PNO=VIEW2.PNOANDJNO=’J4’;4-6对于教务管理数据库中基本表SC,已建立下列视图:CREATEVIEWS_GRADE(SNO,C_NUM,AVG_GRADE)ASSELECTSNO,COUNT(CNO),AVG(GRADE)FROMSCGROUPBYSNO;试判断下列查询和更新是否允许执行。若允许,写出转换到基本表SC上的相应操作:⑴SELECT*FROMS_GRADE⑵SELECTSNO,C_NUMFROMS_GRADEWHEREAVG_GRADE>80;⑶SELECTSNO,AVG_GRADEFROMS_GRADEWHEREC_NUM>(SELECTC_NUMFROMS_GRADESNO=’200912121’);⑷UPDATES_GRADESETC_NUM=C_NUM+1WHERESNO=’200915122’⑸DELETEFROMS_GRADEWHEREC_NUM>4;答:⑴允许查询。相应的操作如下:SELECTSNO,COUNT(CNO)ASC_NUM,AVG(GRADE)ASAVG_GRADEFROMSCGROUPBYSNO;⑵允许查询。相应的操作如下:SELECTSNO,COUNT(CNO)ASC_NUMFROMSCGROUPBYSNOHAVINGAVG(GRADE)>80;⑶允许查询。相应的操作如下:SELECTSNO,AVG(GRADE)ASAVG_GRADEFROMSCGROUPBYSNOHAVINGCOUNT(CNO)>(SELECTCOUNT(CNO)FROMSCGROUPBYSNOHAVINGSNO=’200912121’);⑷不允许。C_NUM是对SC中的学生选修课程的门数进行统计,在未更改SC表时,要在视图第30页 S_GRADE中更改门数,是不可能的。⑸不允许。在视图S_GRADE中删除选修课程的门数在4门以上的学生元组,势必造成SC中这些学生学习元组的删除,这不一定是用户的原意,因此使用分组和聚合操作的视图,不允许用户执行更新操作。4-7预处理方式对于嵌入式SQL的实现有什么重要意义?答:此时宿主语言的编译程序不必改动,只要提供一个SQL函数定义库,供编译时使用。预处理方式只是把源程序中的SQL语句处理成宿主语言的函数调用形式。4-8SQL的集合处理方式与宿主语言单记录处理方式之间如何协调?答:用游标机制协调。把SELECT语句查询结果定义成游标关系,以使用文件的方式来使用游标关系。与游标有关的SQL语句有4个:游标定义,游标打开,游标推进,游标关闭。4-9嵌入式SQL的DML语句何时不必涉及到游标?何时必须涉及到游标?答:不使用游标的SQL语句有下面两种情况:①INSERT、DELETE、UPDATE语句,只要加上前缀和结束标志,就能嵌入在宿主语言程序中使用;②对于SELECT语句,如果已知查询结果肯定是单元组,也可不必涉及游标操作。使用游标的SQL语句有下面两种情况:①当SELECT语句查询结果是多个元组时,必须用游标机制把多个元组一次一个地传递给主程序处理:②对游标指向元组进行修改或删除操作时,也涉及到游标。4.10用T-SQL语句创建教务管理数据库(JWGL),在SQLServer2005的查询分析器的环境中验证习题4.2、习题4.3和习题4.4的有关内容。略。习题55-1解释下列名词函数依赖函数依赖集F的闭包F+最小依赖集无损分解保持函数依赖1NF2NF3NFBCNF答:函数依赖:设有关系模式R(U),X和Y是属性集U的子集,若对于R(U)的任意一个可能的关系r,r中不可能存在两个元组在X上的属性值相等,而在Y上的属性值不等,则称X函数确定Y或Y函数依赖(FunctionalDependency,简记为FD)于X,记作X→Y。函数依赖集F的闭包F+:被F逻辑蕴涵的函数依赖全体构成的集合,称为F的闭包,记为F+。最小依赖集:设F是属性集U上的FD集,Fmin是F的最小依赖集,那么Fmin应满足下列四个条件:(Fmin)+=F+;每个FD的右边都是单属性;Fmin中没有冗余的FD;每个FD的左边没有冗余的属性。ki=1无损分解:设关系模式R,F是R上的FD集,ρ={Rl,…,Rk}是R的一个分解。如果对R中满足F的每一关系r,都有r=πRi(r),那么称分解ρ相对F是“无损分解”。保持函数依赖:设关系模式R,F是R上的FD分解,ρ={R1,…,Rk}是R的一个分解,如果有第30页 那么称分解p保持FD集F。1NF:如果关系模式R的每个关系r的属性值都是不可分的原子值,那么称R是1NF的模式。2NF:如果R是1NF的模式,且每个非主属性完全函数依赖于R的候选键,那么称R是2NF的模式。3NF:如果R是1NF的模式,且每个非主属性都不传递依赖于R的候选键,那么称R是3NF的模式。BCNF:如果R是1NF的模式,且每个属性都不传递依赖于R的候选键,那么称R是BCNF的模式。5-2已知关系模式R(ABC),F是R上成立的FD集,F={A→B,B→C},试写出F的闭包F+。解:根据已知条件和推理规则,可知F+有43个FD:A→ФAB→ФAC→ФABC→ФB→ФC→ФA→AAB→AAC→AABC→AB→BC→CA→BAB→BAC→BABC→BB→CФ→ФA→CAB→CAC→CABC→CB→BCA→ABAB→ABAC→ABABC→ABBC→ФA→ACAB→ACAC→ACABC→ACBC→BA→BCAB→BCAC→BCABC→BCBC→CA→ABCAB→ABCAC→ABCABC→ABCBC→BC5-3设关系模式R(ABCD),F是R上成立的FD集,F={A→B,C→B},则相对于F,试写出关系模式R的关键码。并说明理由。解:R的关键码为ACD。因为从已知的F,只能推出ACD→ABCD。5-4设关系R(ABCDE)上FD集为F,并且F={A→BC,CD→E,B→D,E→A}。求出R的候选键。解:R的候选键有4个:A、E、CD和BC。5-5设关系模式R(ABC),F是R上成立的FD集,F={B→C,C→A},那么分解ρ={AB,AC}相对于F,是否无损分解和保持FD?并说明理由。ABCABACa1a2b13a1b22a3ABCABACa1a2b13a1b22a3由FD答:已知F={B→C,C→A},而πAB(F)={B→A},πAC(F)={C→A},显然这个分解丢失了FD:B→C。对于保持无损分解:无a行,所以是有损分解。5-6设关系模式R(ABCD),F是R上成立的FD集,F={A→B,B→C,A→D,D→C},ρ={AB,AC,BD}是R的一个分解。⑴相对于F,ρ是无损分解吗?为什么?⑵试求F在ρ的每个模式上的投影。⑶ρ保持F吗?为什么?答:⑴用测试过程可以知道,ρ相对于F是损失分解。⑵πAB(F)={A→B},πAC(F)={A→C},πBD(F)=Ф。⑶显然,分解ρ相对于F不保持FD分解,因为丢失了B→C,A→D,D→C等三个FD。第30页 5-7设关系模式R(ABCD),R上的FD集F={A→C,D→C,BD→A},试说明ρ={AB,ACD,BCD}相对于F是损失分解的理由。答:根据已知的F集,不可能把初始表格修改为一个全a行的表格,因此ρ相对于F是损失分解。5-8设关系模式R(ABCD),F是R上成立的FD集,F={AB→CD,A→D}。⑴试说明R不是2NF模式的理由。⑵试把R分解成2NF模式集。答:⑴从已知的函数依赖集F,可知R的候选键是AB。另外,由AB→CD可推出AB→D,再由A→D可知AB→D是部分(局部)函数依赖,因此R不是2NF模式。⑵如果将R分解成ρ={AD,ABC},则ρ是2NF模式集。5-9设关系模式R(ABC),F是R上成立的FD集,F={C→B,B→A}。⑴试说明R不是3NF模式的理由。⑵试把R分解成3NF模式集。答:⑴从已知函数依赖集F可知,R的候选键是C。由C→B,B→A可知,C→A是一个传递依赖,因此R不是3NF模式。⑵此时如果将R分解成ρ={CB,BA},则ρ是3NF模式集。5-10设有关系模式R(职工编号,日期,日营业额,部门名,部门经理),该模式统计商店里每个职工的日营业额,以及职工所在的部门和经理信息。如果规定:每个职工每天只有一个营业额;每个职工只在一个部门工作;每个部门只有一个经理。试回答下列问题:⑴根据上述规定,写出模式R的基本FD和关键码;⑵说明R不是2NF的理由,并把R分解成2NF模式集;⑶进而分解成3NF模式集。解:⑴基本的FD有三个:(职工编号,日期)→日营业额职工编号→部门名部门名→部门经理R的关键码为:(职工编号,日期)。⑵R中有两个这样的FD:(职工编号,日期)→(部门名,部门经理)职工编号→(部门名,部门经理)可见前一个FD是局部依赖,所以R不是2NF模式。R应分解Rl(职工编号,部门名,部门经理)R2(职工编号,日期,日营业额)此处,Rl和R2都是2NF模式。⑶R2已是3NF模式。在R1中,存在两个FD:职工编号→部门名部门名→部门经理因此,“职工编号→部门经理”是一个传递依赖,Rl不是3NF模式。R1应分解成R11(职工编号,部门名)R12(部门名,部门经理)这样,ρ={R11,Rl2,R2}是一个3NF模式集。第30页 5-11设有关系模式R(运动员编号,比赛项目,成绩,比赛类别,比赛主管),如果规定:每个运动员每参加一个比赛项目,只有一个成绩;每个比赛项目只属于一个比赛类别;每个比赛类别只有一个比赛主管。试回答下列问题:⑴根据上述规定,写出模式R的基本FD和关键码;⑵说明R不是2NF的理由,并把R分解成2NF模式集;⑶进而分解成3NF模式集。解:⑴基本的FD有3个:(运动员编号,比赛项目)→成绩比赛项目→比赛类别比赛类别→比赛主管R的关键码为(运动员编号,比赛项目)。⑵R有两个这样的FD:(运动员编号,比赛项目)→(比赛类别,比赛主管)比赛项目→(比赛类别,比赛主管)可见,前一个FD是部分(局部)函数依赖,所以R不是2NF模式。如果把R分解成R1(比赛项目,比赛类别,比赛主管)R2(运动员编号,比赛项目,成绩)这里,R1和R2都是2NF模式。⑶R2已是3NF模式。在R1中,存在两个FD:比赛项目→比赛类别比赛类别→比赛主管因此,“比赛项目→比赛主管”是一个传递依赖,R1不是3NF模式。R1应分解为R11(比赛项目,比赛类别)R12(比赛类别,比赛主管)这样,ρ={R11,R12,R2}是一个3NF模式集。习题66-1名词解释生命周期法快速原型法面向对象法数据流图数据字典弱实体超类子类继承性答:生命周期法:生命周期法就是将整个数据库应用系统的开发过程分解成若干个阶段,并对每个阶段的目标、任务、方法作出规定,使整个数据库应用系统的开发过程具有合理的组织和科学的秩序。数据库应用系统的生命周期,可以分成四个主要阶段:系统分析、系统设计、系统实施、系统运行与维护。快速原型法:快速原型法的基本思想是以少量代价快速地构造一个可执行的软件系统,使用户和开发人员可以较快地确定需求。在初步了解用户的基本要求后,开发人员先建立一个他们认为符合用户要求的模式系统交付用户检验,由于模型是可以执行的,所以为用户提供了获得感性认识的机会。面向对象法:面向对象法是针对面向过程提出的,是区别于传统的结构化方法的一种新方法、新思路,是一种基于数据抽象的类的组合的自底向上的开发方法,由四个基本步骤组成:标识对象和定义类、组织类间关系、在类层中构造框架、建立可复用的类库和系统总框架。第30页 数据流图:数据流图是从“数据”和“对数据的加工”两方面表达数据处理系统工作过程的一种图形表示法。具有直观、易于被用户和软件人员双方都能理解的一种表达系统功能的描述方式。数据字典:数据字典提供了对数据库数据描述的集中管理,它的功能是存储和检索各种数据描述,如叙述性的数据定义等,并且为DBA提供有关的报告。对数据库设计来说,数据字典是进行详细的数据收集和数据分析所获得的主要成果。数据字典中通常包括数据项、数据结构、数据流、数据存储和处理过程五个部分。弱实体:一个实体对于另一些实体(父实体)具有很强的依赖联系,而且该实体主键的部分或全部从其父实体中获得,则称该实体为弱实体。超类、子类:某个实体类型中所有实体同时也是另一个实体类型中的实体,此时称前一实体类型是后一实体类型的子类,后一实体类型称为超类。继承性:指子类继承其超类上定义的所有属性,但其本身还可以包含其他的属性。6-2什么是数据库设计目标?数据库设计的基本步骤有哪些?答:数据库设计的主要目标有:最大限度地满足用户的应用功能需求、获得良好的数据库性能、对现实世界模拟的精确度要高、数据库设计应充分利用和发挥现有DBMS的功能和性能、符合软件工程设计要求。数据库设计的基本步骤是:需求分析阶段、概念结构设计阶段、逻辑结构设计阶段、物理结构设计阶段、数据库实施阶段、数据库运行和维护阶段。6-3数据库设计的需求分析阶段是如何实现的?任务是什么?答:需求分析阶段的工作由下面4步组成:分析用户活动,产生用户活动图;确定系统范围,产生系统范围图;分析用户活动所涉及的数据,产生数据流图;分析系统数据,产生数据字典。需求分析阶段的任务是对系统的整个应用情况作全面的、详细的调查,确定企业组织的目标,收集支持系统总的设计目标的基础数据和对这些数据的要求,确定用户的需求;并把这些要求写成用户和数据库设计者都能接受的文档。6-4评审在数据库设计中有什么重要作用?为什么允许设计过程中有多次的回溯与反复?答:评审的作用在于确认某一阶段的任务是否全部完成,通过评审可以及早发现系统设计中的错误,并在生存期的早期阶段给予纠正,以减少系统研制的成本。如果在数据库已经实现时再发现设计中的错误,那么代价比较大。因此应该允许设计过程的回溯与反复。设计过程需要根据评审意见修改所提交的阶段设计成果,有时修改甚至要回溯到前面的某一阶段,进行部分乃至全部重新设计。6-5对概念模型有些什么要求?答:对概念模型一般有以下要求:⑴概念模型是对现实世界的抽象和概括,它应真实、充分地反映现实世界中事物和事物之间的联系,具有丰富的语义表达能力,能表达用户的各种需求,包括描述现实世界中各种对象及其复杂联系、用户对数据对象的处理要求和手段。⑵概念模型应简洁、明晰,独立于机器、容易理解、方便数据库设计人员与应用人员交换意见,使用户能积极参与数据库的设计工作。⑶概念模型应易于变动。当应用环境和应用要求改变时,容易对概念模型修改和补充。⑷概念模型应很容易向关系、层次或网状等各种数据模型转换,易于从概念模式导出也DBMS有关的逻辑模式。6-6概念设计的具体步骤是什么?第30页 答:概念设计的主要步骤为:进行数据抽象、设计局部概念模式;将局部概念模式综合成全局概念模式;评审。6-7试述采用ER方法的数据库概念设计的过程。答:利用ER方法进行数据库的概念设计,可分成三步进行:首先设计局部ER模式,然后把各局部ER模式综合成一个全局ER模式,最后对全局ER模式进行优化,得到最终的ER模式,即概念模式。6-8逻辑设计的目的是什么?试述逻辑设计过程的输入和输出环境。答:逻辑设计的目的是把概念设计阶段设计好的基本ER图转换为与选用的具体机器上的DBMS所支持的数据模型相符合的逻辑结构(包括数据库模式和外模式)。逻辑设计过程中的输入信息有:独立于DBMS的概念模式,即概念设计阶段产生的所有局部和全局概念模式;处理需求,即需求分析阶段产生的业务活动分析结果;约束条件,即完整性、一致性、安全性要求及响应时间要求等;DBMS特性,即特定的DBMS特性,即特定的DBMS所支持的模式、子模式和程序语法的形式规则。逻辑设计过程输出的信息有:DBMS可处理的模式;子模式;应用程序设计指南;物理设计指南。6-9试述逻辑设计阶段的主要步骤及内容。答:逻辑设计主要是把概念模式转换成DBMS能处理的模式。转换过程中要对模式进行评价和性能测试,以便获得较好的模式设计。逻辑设计的主要步骤包括:初始模式的形成、子模式设计、应用程序设计梗概、模式评价、修正模式。6-10规范化理论对数据库设计有什么指导意义?答:在概念设计阶段,已经把关系规范化的某些思想用作构造实体类型和联系类型的标准,在逻辑设计阶段,仍然要使用关系规范化的理论来设计模式和评价模式。规范化的目的是减少乃至消除关系模式中存在的各种异常,改善完整性,一致性和存储效率。6-11什么是数据库结构的物理设计?试述其具体步骤。答:数据库结构的物理设计是指对一个给定的逻辑数据模型选取一个最适合应用环境的物理结构的过程,所谓数据库的物理结构主要指数据库在物理设备上的存储结构和存取方法。物理设计的步骤为:(1)设计存储记录结构,包括记录的组成、数据项的类型和长度,以及逻辑记录到存储记录的映射;(2)确定数据存储安排;(3)设计访问方法,为存储在物理设备上的数据提供存储和检索的能力;(4)进行完整性和安全性的分析、设计;(5)程序设计。6-12数据库实现阶段主要做哪几件事情?答:数据库实现阶段的主要工作有以下几点:建立实际数据库结构、试运行、装入数据。6-13数据库系统投入运行后,有哪些维护工作?答:数据库系统投入运行后,主要维护工作有:(1)维护数据库的安全性与完整性控制及系统的转储和恢复;(2)性能的监督、分析与改进;(3)增加新功能;(4)发现错误,修改错误。第30页 6-14设某商业集团数据库中有三个实体集。一是“商店”实体集,属性有商店编号、商店名、地址等;二是“商品”实体集,属性有商品号、商品名、规格、单价等;三是“职工”实体集,属性有职工编号、姓名、性别、业绩等。商店与商品间存在“销售”联系,每个商店可销售多种商品,每种商品也可放在多个商店销售,每个商店销售每一种商品,有月销售量;商店与职工间存在着“聘用”联系,每个商店有许多职工,每个职工只能在一个商店工作,商店聘用职工有聘期和月薪。试画出ER图,并在图上注明属性、联系的类型。再转换成关系模式集,并指出每个关系模式的主键和外键。解:ER图如下图所示。M销售聘用商店编号商店商店名地址聘期月薪职工编号业绩职工性别姓名月销售量N1N商品号商品名单价商品规格所转换成的关系:商品(商品号,商品名,规格,单价)商店(商店编号,商店名,地址)销售(商店编号,商品号,月销售量)职工(职工编号,姓名,性别,业绩,聘期,月薪,商店编号)6-15设某商业集团数据库中有三个实体集。一是“公司”实体集,属性有公司编号、公司名、地址等;二是“仓库”实体集,属性有仓库编号、仓库名、地址等;三是“职工”实体集,属性有职工编号、姓名、性别等。公司与仓库间存在“隶属”联系,每个公司管辖若干仓库,每个仓库只能属于一个公司管辖;仓库与职工间存在“聘用”联系,每个仓库可聘用多个职工,每个职工只能在一个仓库工作,仓库聘用职工有聘期和工资。试画出ER图,并在图上注明属性、联系的类型。再转换成关系模式集,并指出每个关系模式的主键和外键。解:ER图及属性、联系图如下:第30页 N1隶属聘用仓库编号仓库仓库名地址聘期工资N1公司编号公司名地址公司职工编号职工性别姓名将ER图转换成为关系模式集为:公司(公司编号,公司名,地址)仓库(仓库编号,仓库名,地址,公司编号)职工(职工编号,姓名,性别,仓库编号,聘期,工资)6-16设某商业集团数据库中有三个实体集。一是“商品”实体集,属性有商品号、商品名、规格、单价等;二是“商店”实体集,属性有商店号、商店名、地址等;三是“供应商”实体集,属性有供应商编号、供应商名、地址等。供应商与商品间存在“供应”联系,每个供应商可供应多种商品,每种商品可向多个供应商订购,供应商供应每种商品有月供应量;商店与商品间存在“销售”联系,每个商店可销售多种商品,每种商品可在多个商店销售,商店销售商品有月计划数。试画出ER图,并在图上注明属性、联系的类型。再转换成关系模式集,并指出每个关系模式的主键和外键。解:ER图及属性、联系图为:MNM供应销售月计划数商品号单价商品商品名规格供应商名供应商编号供应商地址商店商店号地址商店名月供应量N第30页 这个ER图转换的关系模式如下:商品(商品号,商品名,规格,单价)供应商(供应商编号,供应商名,地址)商店(商店号,商店名,地址)供应(商品号,供应商编号,月供应量)销售(商品号,商店号,月计划数)6-17假设要为银行的储蓄业务设计一个数据库,其中涉及到储户、存款、取款等信息,试设计ER模型。解:储蓄业务主要是存款、取款业务,设计的ER图如下所示。N1N存款取款取款日期储户存款方式存款单号存款单金额取款单取款单号金额取款方式存款日期1账号地址身份证号姓名存款余额6-18假设某超市公司要设计一个数据库系统来管理该公司的业务信息。该超市公司的业务管理规则如下:⑴该超市公司有若干仓库,若干连锁商店,供应若干商品。⑵每个商店有一个经理和若干收银员,每个收银员只在一个商店工作。⑶每个商店销售多种商品,每种商品可在不同的商店销售。⑷每个商品编号只有一个商品名称,但不同的商品编号可以有相同的商品名称。每种商品可以有多种销售价格。⑸超市公司的业务员负责商品的进货业务。试按上述规则设计ER模型。解:仓库N进货发货M商品库存MPNN业务员M具有销售价格1NP1N收银员经理1商店拥有主管1销售MN第30页 6-19假设要根据某大学的系、学生、班级、学会等信息建立一个数据库。一个系有若干专业,每个专业每年只招一个班,每个班有若干学生;一个系的学生住在同一宿舍区;每个学生可以参加多个学会,每个学会有若干学生,学生参加某学会有入会年份。试为该大学的系、学生、班级、学会等信息设计一个ER模型。解:下图所示的是一种设计方案。专业N设置招收1住宿系宿舍区1N1有班级学生N1N参加学会NM习题77-1名词解释数据库安全性用户标识存取控制机制数据库角色事务并发操作封锁X锁PX协议PXC协议S锁PS协议PSC协议活锁饿死死锁串行调度并发调度可串行化调度两段封锁协议约束规则更新锁(U锁)完整数据库备份差异数据库备份事务日志备份文件组备份答:数据库安全性:数据库的安全性就是指数据库中数据的保护措施,一般包括的登陆的身份验证管理、数据库的使用权限管理和数据库中对象的使用权限管理三种安全性保护措施。用户标识:用户标识是系统提供的最外层安全保护措施。其方法是由系统提供一定的方式让用户标识自己的名字或身份。每次用户要求进入系统时,由系统进行核对,通过鉴定后才提供机器使用权。存取控制机制:存取控制机制主要包括两部分:定义用户权限,并将用户权限登记到数据字典中;合法权限检查,每当用户发出存取数据库的操作请求后(请求一般应包括操作类型、操作对象和操作用户等信息),DBMS第30页 查找数据字典,根据安全规则进行合法权限检查,若用户的操作请求超出了定义的权限,系统将拒绝执行此操作。数据库角色:数据库角色是被命名的一组与数据库操作相关的权限,角色是权限的集合。可以为一组具有相同权限的用户创建一个角色,使用角色来管理数据库权限可以简化授权的过程事务:事务是构成单一逻辑工作单元的操作集合。并发操作:在多用户共享系统中,许多事务可能同时对同一数据进行操作,这种操作称为并发操作。封锁:封锁是系统保证对数据项的访问以互斥方式进行的一种手段。X锁:事务T对某数据加了X锁后,其他事务要等T解除X锁后,才能对这个数据进行封锁。PX协议:只有获准X锁的事务,才能修改数据,否则这个事务进入等待状态。PXC协议:PX协议再加上一条规则:“X锁必须保留到事务终点才能解除”。S锁:事务T对某数据加了S锁后,仍允许其他事务再对该数据加S锁,但在对该数据的所有S锁都解除之前决不允许任何事务对该数据加X锁。PS协议:只有获准X锁的事务,才能修改数据,否则这个事务进入等待状态。PSC协议:PX协议再加上一条规则:“X锁必须保留到事务终点才能解除”。活锁:系统可能使某个事务永远处于等待状态,得不到封锁的机会,这种现象称为“活锁”。饿死:若干事务连续不断地对某数据实现加S锁和释放S锁的操作,那么若有一个事务欲对该数据加X锁,将永远轮不上封锁的机会。这种现象称为“饿死”。死锁:若干事务都处于等待状态,相互等待对方解除封锁,结果造成这些事务都无法继续执行,这种现象称为系统进入了“死锁”状态。串行调度:多个事务依次执行,称为事务的串行调度。并发调度:利用分时的方法,同时处理多个事务,则称为事务的并发调度。可串行化调度:如果一个并发调度的执行结果与某一串行调度的执行结果等价,那么这个并发调度称为“可串行化的调度”。两段封锁协议:事务分成两个阶段,前一阶段只能申请封锁,后一阶段只能释放封锁,这一规则称为事务的两段封锁协议。约束:约束是MicrosoftSQLServer提供的自动保持数据库完整性的一种方法,它定义了可输入表或表的单个列中的数据的限制条件。它是用来维护关系数据中数据的正确性和一致性、保证数据库完整性的必要条件。规则:规则是数据库中对存储在表的列或用户定义数据类型中值的规定和限制。规则同默认值一样,也是单独存储的独立数据库对象。规则与其作用的表或用户定义数据类型是相互独立的,即表或用户定义数据类型的删除、修改不会对与之相连的规则产生影响。更新锁(U锁):当一个事务查询数据以便进行修改时,可以对数据项施加更新锁,如果事务修改资源,则更新锁会转换成排他锁,否则会转换成共享锁。一次只有一个事务可以获得资源上的更新锁,它允许其他事务对资源的共享式访问,但阻止排他式的访问。完整数据库备份:完整数据库备份就是备份整个数据库。它备份数据库文件、这些文件的地址以及事务日志的某些部分(从备份开始时所记录的日志顺序号到备份结束时的日志顺序号)。差异数据库备份:差异数据库备份是指将从最近一次完全数据库备份以后发生改变的数据进行备份。如果在完整备份后将某个文件添加至数据库,则下一个差异备份将会包括该新文件。这样可以方便地备份数据库,而无须了解各个文件。事务日志备份:事务日志备份第30页 就是自从上一个事务以来已经发生了变化的部分。事务日志备份比完整数据库备份节省时间和空间,而且利用事务日志备份进行恢复时,可以指定恢复到某一个事务。文件组备份:文件组备份就是对数据库中的部分文件或文件组进行备份。文件组是一种将数据库存放在多个文件上的方法,并允许控制数据库对象(比如表或视图)存储到这些文件当中的某些文件上。7-2试叙述事务的四个性质,并解释每一个性质由DBMS的哪个子系统实现?每一个性质对DBS有什么益处?答:①事务的原子性,是指一个事务对DB的所有操作,是一个不可分割的工作单元。原子性是由DBMS的事务管理子系统实现的。事务的原子性保证了DBS的完整性。②事务的一致性,是指数据不会因事务的执行而遭受破坏。事务的一致性是由DBMS的完整性子系统实现的。事务的一致性保证数据库的完整性。③事务的隔离性,是指事务的并发执行与这些事务单独执行时结果一样。事务的隔离性是由DBMS的并发控制子系统实现的。隔离性使并发执行的事务不必关心其他事务,如同在单用户环境下执行一样。④事务的持久性,是指事务对DB的更新应永久地反映在DB中。持久性是由DBMS的恢复管理子系统实现的。持久性能保证DB具有可恢复性。7-3设有两个关系模式:职工(职工号,姓名,年龄,职务,工资,部门号)部门(部门号,名称,经理名,地址,电话号)请用SQL的GRANT和REVOKE语句完成以下授权定义:⑴用户王明对两个表有SELECT权限;⑵用户李勇对两个表有INSERT和DELETE权限;⑶每个职工只对自己的记录有SELECT权限;⑷用户刘星对职工表有SELECT权限,对工资字段具有更新权限;⑸撤销各用户所授予的权限。解:⑴GRANTSELECTONTABLE职工,部门TO王明⑵GRANTINSERT,DELETEONTABLE职工,部门TO李勇⑶GRANTSELECTON职工WHENUSER()=NAMETOALL⑷GRANTSELECT,UPDATE(工资)ONTABLE职工TO刘星⑸①撤销用户王明对两个表有SELECT权限;REVOKESELECTON职工,部门FROM王明;②撤销用户李勇对两个表有INSERT和DELETE权限;REVOKEINSERT,DELECTON职工,部门FROM李勇;第30页 ③撤销每个职工只对自己的记录有SELECT权限;REVOKESELECTON职工WHENUSER()=NAMEFROMALL;④撤销用户刘星对职工表有SELECT权限,对工资字段具有更新权限;REVOKESELECT,UPDATEON职工FROM刘星7-4什么是数据库中的自主存取控制方法和强制存取控制方法?答:在自主存取控制中,用户具有不同的存取权限,不同的用户对同一对象也有不同的权限,而且用户还可以将其拥有的存取权限转授给其他用户。在强制存取控制中,每一个数据库对象被标以一定的密级,每一个用户也被授予某一个级别的许可证。对于任意一个对象,只有具有合法许可证的用户才可以存取。7-5事务的COMMIT语句和ROLLBACK语句各做什么事情?答:COMMIT语句表示事务执行成功地结束(提交),此时告诉系统,DB要进入一个新的正确状态,该事务对DB的所有更新都已交付实施(写入磁盘)。ROLLBACK语句表示事务执行不成功地结束(应该“回退”)此时告诉系统,已发生错误,DB可能处于不正确的状态,该事务对DB的所有更新必须被撤销,DB应恢复该事务到初始状态。7-6“检查点技术”的主要思想是什么?COMMIT语句与检查点时刻的操作如何协调?答:“检查点机制”的主要思想是在检查点时刻才真正做到把对DB的修改写到磁盘。在DB恢复时,只有那些在最后一个检查点到故障点之间还在执行的事务才需要恢复。事务在COMMIT时,事务对DB的更新已提交,但对DB的更新可能还留在内存的缓冲区,在检查点时刻才真正写到磁盘。因此事务的真正结束是在COMMIT后还要加上遇到检查点时刻。7-7什么是“运行记录优先原则”?其作用是什么?答:写一个修改到DB中和写一个表示这个修改的登记记录到日志文件中是两个不同的操作,后者比前者重要,后者应先做。这就是运行记录优先原则。其作用是保证DBS具有可恢复性。7-8试叙述“串行调度”与“可串行化调度”的区别?答:如果多个事务依次执行,则称事务串行调度。如果利用分时的方法处理多个事务,则称为事务的并发调度。如果一个并发调度的结果与某一串行调度执行结果等价,则称这个并发调度是可串行化调度。7-9试叙述数据库镜像的优缺点?答:数据库镜像的优点:一旦出现介质故障,可由镜像磁盘继续提供使用,同时DBMS自动利用镜像磁盘数据进行数据库的恢复,不需要关闭系统和重装数据库副本。数据库镜像的缺点:由于数据库镜像是通过复制数据实现的,频繁地复制数据自然会降低系统运行效率。7-10试叙述在SQLServer2005中对数据库进行安全管理的几个方面?答:SQLServer2005中广泛使用安全主体和安全对象管理安全。一个服务器、数据库或架构资源的实体称为安全主体。每一个安全主体都有唯一的安全标识符。安全主体在3个级别上进行管理:Windows、SQLServer和数据库。安全主体的级别决定了安全主体的影响范围,而数据库级别的安全主体的影响范围是特定的数据库。7-11试叙述在SQLServer2005中规则与CHECK约束不同点?答:在SQLServer2005中规则与CHECK约束的不同之处有以下三点:第30页 ⑴CHECK约束是在创建表时指定的,而规则可以作为单独的数据库对象来对列约束;⑵在同一表的列中,可以有一个规则及多个CHECK约束;⑶规则可以应用于多个列,还可以应用于用户定义数据类型,而CHECK约束只能用于它定义的列。7-12简述在SQLServer2005中查看锁的两种方式。答:在SQLServer2005中查看锁的两种方式为:⑴使用Sys.dm_tran_locks视图可以快速了解SQLServer内的加锁情况。⑵使用SQLServerManagementStudio可以实现图形化显示加锁信息。7-13简述在SQLServer2005中完全备份、差异备份、事务日志备份以及文件和文件组备份各有什么特点?答:完整数据库备份就是备份数据库文件、这些文件的地址以及事务日志的某些部分(从备份开始时所记录的日志顺序号到备份结束时的日志顺序号)。这是任何备份策略中都要求完成的一种备份类型。差异数据库备份是指将从最近一次完全数据库备份以后发生改变的数据进行备份。如果在完整备份后将某个文件添加至数据库,则下一个差异备份将会包括该新文件。这样可以方便地备份数据库,而无须了解各个文件。尽管事务日志备份就是备份自从上一个事务以来已经发生了变化的部分。事务日志备份比完整数据库备份节省时间和空间,而且利用事务日志备份进行恢复时,可以指定恢复到某一个事务。文件组备份允许控制数据库对象(比如表或视图)存储到这些文件当中的某些文件上。数据库不会受到只存储在单个硬盘上的限制,而是可以分散到许多硬盘上。7-14某企业的SQLServer2005数据库每周日12点进行一次完整备份,每天晚上24点进行一次差异备份,每小时进行一次事务日志备份,数据库在2009-7-166:30崩溃,应如何将其恢复从而使数据库损失最小?答:2009年7月16日是星期四,在此前的星期日(2009年7月12日)的12点进行了一次完整备份,在2009年7月15日晚上24点又进行了自完整备份以来的差异备份,而每小时进行一次事务日志备份。恢复时,依次恢复完整备份、差异备份、事务日志备份,这样最多只会丢失2009年7月16日6点到6点30分这30分之内的数据。习题88-1什么是ODBC?如何创建ODBC数据源?答:ODBC是Microsoft的视窗开放系统体系结构(WOSA)中有关数据库的一个组成部分,它建立了一组规范,并提供了一组对数据库访问的标准API(ApplicationProgramInterface,应用程序编程接口)。这些API利用SQL来完成其大部分任务。ODBC本身也提供了对SQL语言的支持,用户可以直接将SQL语句传送给ODBC。以在Windowsxp操作系统下为例介绍如何建立ODBC的连接,创建ASP程序使用的DSN。步骤如下:①单击【开始】|【设置】|【控制面板】命令,打开控制面板。②双击【管理工具】按钮,打开管理工具,在管理工具窗口中双击【数据源(ODBC)】,打开ODBC数据源管理器,单击【系统DSN】选项卡。③单击【添加】按钮,弹出【创建新数据源】对话框,选择【SQLServer】选项。④单击“完成”按钮,弹出创建数据源对话框。在“名称”编辑框中输入数据源名,如本例中JWGL;在“服务器”从列表框中选择要连接的SQLServer服务器。⑤单击【下一步】按钮,弹出SQLServer验证模式设置对话框,这里设置“第30页 使用用户输入登录ID与密码的SQLServer验证”,并且在下面填写登录ID与密码。⑥单击【下一步】按钮,弹出设置默认数据库等参数对话框。⑦单击【下一步】按钮,弹出设置默认语言等参数对话框。⑧单击【完成】按钮,弹出ODBC数据源的描述信息,最好单击【测试数据源】按钮,进行数据连接测试。⑨单击【确定】按钮,就成功地创建了DSN桥梁。8-2试比较在SQLServer中利用ADO与数据库连接和利用ODBC与数据库连接的异同?答:应用程序利用ODBC访问数据库,首先必须用ODBC管理器注册一个数据源,管理器根据数据源提供的数据库位置、数据库类型及ODBC驱动程序等信息,建立起ODBC与具体数据库的联系。这样,只要应用程序将数据源名提供给ODBC,ODBC就能建立起与相应数据库的连接。而ADO对数据库的操作先是利用Connection对象建立与数据库的连接,然后再利用Command对象对数据库执行查询等SQL命令,得到Recordset记录集,最后在Recordset对象中进行具体操作。习题99-1简述ASP.NET与ASP相比,主要有那些进步?答:(1)执行效率的大幅提高;(2)ASP.NET构架是可以用Microsoft公司最新的产品VisualStudio.net开发环境进行开发;(3)ASP.NET可以运行在Web应用软件开发的几乎全部的平台上;(4)简单性和易学性;(5)高效的管理性;(6)ASP.NET已经被设计成为一种可以用于多处理器的开发工具,它在多处理器的环境下用特殊的无缝连接技术,将很大的提高运行速度;(7)自定义性和可扩展性。9-2简述DataReader与Dataset有什么区别?答:DataSet对象:必须结合DataAdapter对象使用,它是由许多数据表、记录和字段组成的一个对象。主要用于在内存中存放数据,它可以一次读取整张数据表的内容,也可以对网页中显示的数据进行编辑,并且还可以在数据中任意移动。DataReader对象:必须结合Command对象使用,一次读取一条数据,只读且数据只能单向向前移动,一般用于单独显示数据。9-3试述数据库断开式数据访问模式的过程。答:断开式数据访问模式的基本过程如下:⑴使用连接对象Connection连接并打开数据库;⑵使用数据适配器DataAdapter填充数据集DataSet;⑶关闭连接,对DataSet进行操作;⑷操作完成后打开连接;⑸使用数据适配器DataAdapter更新数据库。9-4试述显示和修改数据库中数据的常用方法及其主要功能。答:ExecuteReader方法是查询显示数据库中数据最常用的一种方法,即利用该方法可以读出数据源中的数据,生成一个DataReader对象,然后利用SqlDataReader对象进行输出显示;ExecuteNonQuery方法返回一个整数,表示已执行的语句所影响的数据行数;第30页 ExecuteScalar方法是使得返回查询所影响的结果集中在第一行的第一列。由于在查询数据库中的数据时,常常会查询最大值、最小值、平均值、总和等,即查询函数运算值,这时就要使用ExecuteScalar方法。ExecuteXmlReader方法主要实现数据库与XML文档的交流,使用该方法需要传递一个ForXML子句的T-SQL语句。习题1010-1解释下列名词对象与对象标识封装类及类层次OODBMS分布式数据库系统分布透明性ODBCC/S体系结构数据仓库数据挖掘答:对象与对象标识:现实世界的任一实体都被统一地模型化为一个对象,每个对象有一个惟一的标识,称为对象标识(OID)。封装:封装是对象外部界面与内部实现之间实行清晰隔离的一种抽象,外部与对象的通信只能通过消息来实现。类及类层次:共享同样属性和方法集的所有对象构成了一个对象类(简称类),在面向对象数据模式中,一组类可以形成一个类层次。一个面向对象数据模式可能有多个类层次。在一个类层次中,一个类继承其所有超类的属性、方法和消息。OODBMS:面向对象数据库管理系统(OODBMS),是支持将数据当作对象来模拟和创造的一种数据库管理系统。分布式数据库系统:是由一组数据组成的,这组数据分布在计算机网络的不同计算机上,网络中的每个结点具有独立处理的能力(称为场地自治),可以执行局部应用。同时,每个结点也能通过网络通信子系统执行全局应用。分布透明性:分布透明性是分布式数据库系统的重要特征,透明性层次越高,应用程序的编写就越简单、方便。分布透明性包括分布透明性、位置透明性和局部数据模式透明性。ODBC:ODBC是开发一套开放式数据库系统应用程序的公共接口,利用ODBC接口使得在多种数据库平台上开发的数据库应用系统之间可以直接进行数据存取,提高系统数据的共享性和互用性。C/S体系结构:C/S(Client/Server)体系结构,即客户机和服务器体系结构。它是软件系统体系结构,通过它可以充分利用两端硬件环境的优势,将任务合理分配到Client端和Server端来实现,降低了系统的通讯开销。数据仓库:在支持管理的决策生成过程中,一个面向主题的、集成的、时变的、非易失的数据集合。数据挖掘:是从大量的、不完全的、有噪声的、模糊的、随机的实际数据中,提取隐含在其中的,尚不完全被人们了解的、然而却是潜在有用的信息和知识的过程。10-2什么是操作的重载?在OODB中为什么要滞后联编?答:在OO模型中对于同一个操作,可以按照类的不同,重新定义操作的实现,这称为操作的重载。这样,同一个操作名就与不同的实现方法,与不同的参数相联系。为了提供这个功能,OODBMS不能在编译时就把操作名联编到程序上,必须在运行时根据实际请求中的对象类型和操作来选择相应的程序,把操作名与它联编上(即把操作名转换成该程序的地址),这个推迟的转换称为滞后联编。10-3分布式数据库系统有哪些特点?第30页 答:分布式数据库系统是在集中式数据库系统技术的基础上发展起来的,但不是简单地把集中式数据库分散地实现,它是具有自己的性质和特征的系统。(1)数据独立性在分布式数据库系统中,除了数据的逻辑独立性与物理独立性外,还有数据分布独立性亦称分布透明性。分布透明性指用户不必关心数据的逻辑分片,不必关系数据物理位置分布的细节,也不必关心重复副本(冗余数据)一致性问题,同时也不必关心局部场地上数据库支持哪种数据模型。分布透明性也可以归入物理独立性的范围。(2)集中与自治相结合的控制结构在分布式数据库系统中,数据共享的控制机构具有两个层次:集中和自治。分布式数据库系统常常采用集中和自治相结合的控制机构。各局部的DBMS可以独立地管理局部数据库,具有自治的功能。同时,系统又设有集中控制机制,协调各局部DBMS的工作,执行全局应用。(3)适当增加数据冗余度在分布式数据库系统中希望增加冗余数据,在不同的场地存储同一数据的多个副本,增加数据冗余度方便了检索,提高了系统的查询速度、可用性和可靠性,但不利于更新,增加了系统维护的代价。(4)全局的一致性、可串行性和可恢复性分布式数据库系统中各局部数据库应满足集中式数据库的一致性、并发事务的可串行性和可恢复性。10-4分布式数据库系统由哪些主要部分组成?答:分布式DBS的体系结构分为四级:全局外模式、全局概念模式、分片模式和分配模式。(1)全局外模式:它们是全局应用的用户视图,是全局概念模式的子集。(2)全局概念模式:全局概念模式定义了分布式数据库中所有数据的逻辑结构。(3)分片模式:分片模式定义片段以及定义全局关系与片段之间的映象。这种映象是一对多的,即每个片段来自一个全局关系,而一个全局关系可分成多个片段。(4)分配模式:片段是全局关系的逻辑部分,一个片段在物理上可以分配到网络的不同场地上。分配模式根据数据分配策略的选择定义片段的存放场地。10-5试述面向对象数据库的模式演进中模式的一致性的主要内容。答:数据库模式为适应需求的变化而随时间变化称为模式演进。在关系数据库中,模式的变化比较简单。对于面向对象数据库系统,模式的修改就相对复杂得多。模式在演进过程中不能出现自身的矛盾与错误,这是模式的一致性。模式的一致性通过一致性约束实现,包括惟一性约束、存在性约束和子类约束。惟一性约束:命名惟一。在一个模式中类命名必须惟一,同一类中属性名必须惟一,类名与属性名可以相同,但应尽量避免。存在性约束:显式引用的成分必须存在。被引用的类、属性和操作必须在模式定义中的相应位置中给予定义,操作还必须有其实现程序。子类约束:子类与超类之间不能出现环状联系,相互联系必须有必要的说明,并应避免由于多继承带来的冲突。10-6简述ODBC多层驱动程序与单层驱动程序的区别。第30页 答:多层驱动程序与单层驱动程序的区别不仅是驱动程序是否具有数据库管理系统的功能,它们在效率上也存在很大的差别。由于单层驱动程序的应用程序是把存放数据库的服务器当作文件服务器使用,在网络中传输的是整修数据库文件,网络的数据通信量很大,不仅网络负荷大,且负载不均衡,使得效率较低。多层驱动程序的应用程序使用的是客户机/服务器系统结构,在数据库服务器上实现对数据库的各种操作,在网络上传输的只是用户请求和数据库处理的,使网络的通信量大大减少,不仅减轻了网络的负担,还均衡了服务器和客户机的负载,提高了应用程序的运行效率,这是客户机/服务器结构的优点。第30页'