华东师大数据库系统概论作业_第1页
华东师大数据库系统概论作业_第2页
华东师大数据库系统概论作业_第3页
华东师大数据库系统概论作业_第4页
华东师大数据库系统概论作业_第5页
已阅读5页,还剩12页未读 继续免费阅读

下载本文档

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

文档简介

...wd......wd......wd...《数据库系统概论》作业第一章概述1.层次模型的数据构造是_树形___构造;网状模型的数据构造是网状构造;关系模型的数据构造是__二维表____构造。2.数据库系统具有“数据独立性〞特点的原因是因为在数据库系统中〔B〕〔A〕、采用磁盘作为外存〔B〕、采用三级模式构造〔C〕、使用OS来访问数据〔D〕、用宿主语言编写应用程序3.数据库(DB)、数据库系统(DBS)和数据库管理系统(DBMS)三者之间的关系是〔A〕。〔A〕、DBS包括DB和DBMS〔B〕、DBMS包括DB和DBS〔C〕、DB包括DBS和DBMS〔D〕、DBS就是DB,也就是DBMS4.数据库系统的数据独立性表达在〔B〕〔A〕、不会因为数据的变化而影响到应用程序〔B〕、不会因为系统数据存储构造和数据逻辑构造的变化而影响应用程序〔C〕、不会因为存储策略的变化而影响存储构造〔D〕、不会因为某些存储构造的变化而影响其他的存储构造5.要保证数据库的数据独立性,需要修改的是〔A〕〔A〕、模式与外模式〔B〕、模式与内模式〔C〕、三层之间的两种映射〔D〕、三层模式6.下述〔D〕不是DBA〔数据库管理员〕的职责。〔A〕、完整性约束说明〔B〕、定义数据库模式〔C〕、数据库安全〔D〕、数据库管理系统设计7.〔B〕是按照一定的数据模型组织的,长期储存在计算机内,可为多个用户共享的数据的集合。〔A〕、数据库系统〔B〕、数据库〔C〕、关系数据库〔D〕、数据库管理系统8.数据模型的三要素是〔D〕。〔A〕、外模式、模式、内模式〔B〕、关系模型、层次模型、网状模型〔C〕、实体、联系、属性、数据构造、数据操作、完整性约束9.简述数据库系统的主要特点。〔1〕、数据构造化数据库系统实现整体数据的构造化,这是数据库的主要特征之一,也是数据库系统与文件系统的本质区别。〔2〕数据的共享性高,冗余度低,易扩大数据库的数据不再面向某个应用而是面向整个系统,〔3〕数据独立性高数据独立性包括数据的物理独立性和数据的逻辑独立性。〔4〕数据由DBMS统一管理和控制数据库的共享是并发的共享,即多个用户可以同时存取数据库中的数据甚至可以同时存取数据库中同一个数据。10.简述数据库系统的三级模式和两级映像。答:数据库系统的三级模式构造是指数据库系统是由外模式、模式和内模式三级构成。〔2分〕模式也称逻辑模式,是数据库中全体数据的逻辑构造和特征的描述,是所有用户的公共数据视图。模式实际上是数据库数据在逻辑级上的视图,一个数据库只有一个模式,数据库模式以某一种数据模型为根基,统一综合地考虑了所有用户的需求,并将这些需求有机地结合成一个逻辑整体。〔1分〕外模式也称子模式或用户模式,它是数据库用户(包括应用程序员和最终用户)能够看见和使用的局部数据的逻辑构造和特征的描述,是数据库用户的数据视图,是与某一应用有关的数据购逻辑表示。外模式通常是模式的子集。一个数据库可以有多个外模式。〔1分〕内模式也称存储模式,一个数据库只有一个内模式,它是数据物理构造和存储方式的描述,是数据在数据库内部的表示方式。第二章关系数据库1.设有如以以下图所示的关系R,W和D:计算以下代数表达式的结果:〔1〕R1=πY,T(R)〔2〕R2=бp>5^T=’e’(R)〔3〕R3=(RW)〔4〕R4=R÷D设有如以以下图所示的关系S,SC,C:关系SS#SNAMEAGESEX1李强23男2刘丽22女3张友22男关系CC#CNAMETEACHERK1C语言王华K5数据库原理程军K8编译原理程军关系SCS#C#GRADE1K1832K1853K1922K5903K5843K880请用关系代数表达式表示以下查询语句:〔1〕检索“程军〞教师所授课程的课程号〔C#〕和课程名〔CNAME〕。〔2〕检索“李强〞同学不学课程的课程号。〔3〕检索既选修了K1课程,也选修了K5课程的学生学号〔S#〕。〔4〕检索选修了课程表中的全部课程的学生姓名〔SNAME〕。〔5〕检索选修课程名为“C语言〞的学生学号〔S#〕和姓名〔SNAME〕。3.在关系中,“元数〞〔arity〕是指(列数) 〔A〕.行数〔B〕.元组个数〔C〕.关系个数〔D〕.属性个数4.在关系中,“基数〞〔cardinality〕是指(行数)〔A〕.列数〔B〕.元组个数〔C〕.关系个数〔D〕.属性个数iθj5.设W=RS,且W、R、S的元组个数分别为p、m、n,那么三者之间满足〔iθj〔A〕.p<〔m+n〕〔B〕.p≤〔m+n〕〔C〕.p<〔m×n〕〔D〕.p≤〔m×n〕6.以下式子中,不正确的选项是(D)〔A〕.R-S=R-〔R∩S〕〔B〕.R=〔R-S〕∪〔R∩S〕〔C〕.R∩S=S-〔S-R〕〔D〕.R∩S=S-〔R-S〕7.如果两个关系没有公共属性,那么其自然联接操作(A)〔A〕.转化为笛卡尔积操作〔B〕.转化为联接操作〔C〕.转化为外部并操作〔D〕.结果为空关系8.一个关系只有一个〔D〕〔A〕、候选码〔B〕、外码〔C〕、超码〔D〕、主码9.下面的选项不是关系的根本特征〔A〕〔A〕、不同的列有不同的数据类型〔B〕、不同的列有不同的列名〔C〕、与行的次序无关〔D〕、与列的次序无关第三章SQL语言有两个根本表:表EMP〔ENO,ENAME,SALARY,DNO〕其属性分别表示职工的工号、姓名、工资和所在部门的编号 表DEPT〔DNO,DNAME〕其属性分别表示部门的编号和部门名1.有一SQL语句: SELECTDNO,COUNT〔DISTINCTENO〕 FROMEMPGROUPBYDNO;该SQL语句实现了以下哪个功能(C)〔A〕.统计职工的总人数〔B〕.统计每一部门的职工人数〔C〕.统计职工服务的部门数目〔D〕.统计每一职工服务的部门数目2.有一个SQL语句: SELECTENO,ENAME FROMEMP WHEREDNONOTIN 〔SELECTDNO FROMDEPT WHEREDNAME='金工车间';其等价的关系代数表达式是:(C)〔A〕.πENO,ENAME〔бDNAME≠'金工车间'〔EMP⋈DEPT〕〕DNAME≠'金工车间'〔B〕.πENO,ENAME〔DNAME≠'金工车间'〔C〕.πENO,ENAME〔EMP〕-πENO,ENAME〔бDNAME='金工车间'〔EMP⋈DEPT〕〕〔D〕.πENO,ENAME〔EMP〕-πENO,ENAME〔бDNAME≠'金工车间'〔EMP⋈DEPT〕〕3.有一个SQL语句: UPDATEEMP SETSALARY=SALARY*1.05 WHEREDNO='D6' ANDSALARY<〔SELECTAVG〔SALARY〕FROMEMP〕;其等价的修改语句为(C)〔A〕.为工资低于D6部门平均工资的所有职工加薪5%〔B〕.为工资低于整个企业平均工资的职工加薪5%〔C〕.为在D6部门工作、工资低于整个企业平均工资的职工加薪5%〔D〕.为在D6部门工作、工资低于本部门平均工资的职工加薪5%4.SQL中,谓词EXISTS可用来测试一个集合是否(C)〔A〕.有重复元组 〔B〕.有重复的列名〔C〕.为非空集合 〔D〕.有空值5.SQL中,与“NOTIN〞等价的操作符是(B)〔A〕.=SOME〔B〕.<>SOME〔C〕.=ALL〔D〕.<>ALL6.以下关于索引的表达,正确的选项是〔A〕。〔A〕、可以根据需要在根本表上建设一个或多个索引,从而提高系统的查询效率。〔B〕、一个根本表最多只能有一个索引。〔C〕、建设索引的目的是为了给数据表中的元素指定别名,从而使别的表也可以引用这个元素。〔D〕、一个根本表至少要存在一个索引。7.下面列出的关于视图的条目中,不正确的选项是〔C〕。〔A〕、视图是外模式〔B〕、视图是虚表〔C〕、使用视图可以加快查询语句的执行速度〔D〕、使用视图可以简化查询语句的编写8.设数据库中有三个关系:职工表 EMP〔E#,ENAME,AGE,SEX,ECITY〕,其属性分别表示职工工号、姓名、年龄、性别和籍贯。工作表 WORKS〔E#,C#,SALARY〕,其属性分别表示职工工号、工作的公司编号和工资。公司表 COMP〔C#,CNAME,CITY〕,其属性分别表示公司编号、公司名称和公司所在城市。请写出完成以下操作的SQL语句:①用CREATETABLE语句创立上述三个表,需定义出各表的主键和外键。②检索超过50岁的男职工的工号和姓名。③假设每个职工只能在一个公司工作,检索工资超过1000元的男性职工工号和姓名。④假设每个职工可在多个公司工作,检索在编号为C4和C8公司兼职的职工工号和姓名。⑤检索在“联华公司〞工作、工资超过1000元的男性职工的工号和姓名。⑥假设每个职工可在多个公司工作,检索每个职工的兼职公司数目和工资总数,查询结果显示为〔E#,NUM,SUM_SALARY〕,分别表示工号、兼职的公司数目和工资总数。⑦工号为E6的职工在多个公司工作,试检索至少在E6职工兼职的所有公司工作的职工工号。⑧检索联华公司中低于本公司平均工资的职工工号和姓名。⑨在每一公司中为50岁以上职工加薪100元〔假设职工为多个公司工作,可重复加〕。⑩在EMP表和WORKS表中删除年龄大于60岁的职工有关元组。解:①

CREATETABLEEMP(E#CHAR(4)NOTNULL,ENAMECHAR(8)NOTNULL,AGESMALLINT,SEXCHAR(1),ECITYCHAR(20),PRIMARYKEY(E#));CREATETABLECOMP(

C#

CHAR(4)

NOT

NULL,

CNAMECHAR(20)NOTNULL,CITYCHAR(20),PRIMARYKEY(C#));CREATE

TABLE

WORKS

(

E#

CHAR(4)

NOT

NULL,

C#

CHAR(4)

NOT

NULL,

SALARY

SMALLINT,

PRIMARY

KEY(E#,

C#),

FOREIGNKEY(E#)REFERENCESEMP(E#),FOREIGNKEY(C#)REFERENCESCOMP(C#));②

SELECTE#,ENAMEFROM

EMP

WHEREAGE>50ANDSEX='M';③

SELECTEMP.E#,ENAMEFROM

EMP,

WORKS

WHEREEMP.E#=WORKS.E#ANDSALARY>1000;

SELECTA.E#,A.ENAMEFROMEMPA,WORKSB,WORKSCWHEREA.E#=B.E#ANDB.E#=C.E#ANDB.C#='C4'ANDC.C#='C8';⑤

SELECTA.E#,A.ENAMEFROM

EMP

A,

WORKS

B,

COMP

C

WHERE

A.E#=B.E#

AND

B.C#=C.C#

ANDCNAME='联华公司'ANDSALARY>1000ANDSEX='M';⑥

SELECTE#,COUNT(C#)ASNUM,SUM(SALARY)ASSUM_SALARYFROM

WORKS

GROUPBYE#;⑦

SELECT

X.E#

FROM

WORKS

X

WHERE

NOT

EXISTS

(SELECT

*

FROM

WORKS

Y

WHERE

E#='E6'

AND

NOT

EXISTS

(SELECT

*

FROM

WORKS

Z

WHERE

Z.E#=X.E#

ANDZ.C#=Y.C#));⑧

SELECT

A.E#,

A.ENAME

FROMEMPA,WORKSB,COMPCWHEREA.E#=B.E#ANDB.C#=C.C#ANDCNAME='联华公司'AND

SALARY<(SELECT

AVG(SALARY)

FROM

WORKS,

COMP

WHEREWORKS.C#=COMP.C#ANDCNAME='联华公司'〕;⑨

UPDATE

WORKS

SET

SALARY=SALARY+100

WHEREE#IN(SELECTE#FROMEMPWHEREAGE>50);

⑩DELETEFROMWORKSWHEREE#IN(SELECTE#FROMEMPWHEREAGE>60);DELETEFROMEMPWHEREAGE>60;第四章数据库安全性1.以下〔D〕不属于实现数据库安全性的主要技术和方法。〔A〕、存取控制技术〔B〕、视图技术〔C〕、审计技术〔D〕、出入机房登记和加锁2.把对关系SC的GRADE属性的修改权授予用户ZHAO的SQL语句是〔C〕。〔A〕、GRANTGRADEONSC TOZHAO〔B〕、GRANTUPDATEONSCTOZHAO〔C〕、GRANTUPDATE(GRADE)ONSCTOZHAO〔D〕、GRANTUPDATEONSC(GRADE)TOZHAO3.保护数据库、防止未经授权的或不合法的使用造成的数据泄露、更改破坏。这是数据库的〔A〕。〔A〕、安全性〔B〕、完整性、并发控制〔D〕、恢复4.今有两个关系模式:〔1〕职工〔职工号,姓名,年龄,职务,工资,部门号〕,其中职工号为主码;部门号为外码;〔2〕部门〔部门号,名称,经理名,地址,〕,其中部门号是主码;请用SQL语言的GRANT语句〔加上视图机制〕完成以下授权定义:用户杨兰具有SELECT每个部门的职工最高工资,最低工资,平均工资的权力,但他不能查看每个人的工资。CREATEVIEW部门工资ASSELECT部门.名称,MAX(工资),MIN(工资),AVG(工资)FROM职工,部门WHERE职工.部门号=部门.部门号GROUPBY职工.部门号GRANTSELECTON部门工资TO杨兰;第五章数据库完整性1.关于主码约束以下说法错误的选项是〔C〕A.一个表中只能设置一个主码约束B.允许空值的字段上不能定义主码约束C.允许空值的字段上可以定义主码约束D.可以将包含多个字段的字段组合设置为主码2.在SQLServer中,可以使用〔C〕语句创立存储过程。A.CreateTrigger B.InstallProcedureC.CreateProcedure D.CreateView3.SQLServer为每个触发器创立了两个临时表,它们是〔B〕。A.Updated和Deleted B.Inserted和DeletedC.Inserted和Updated D.Seleted和Inserted4.设有供给商关系S和零件关系P,如以以下图所示,S和P的主码分别是“供给商号〞和“零件号〞,P的外码是“供给商号〞。分析以下4个操作能否被正确执行,并说明理由。〔1〕在P中插入元组〔′P2′,′白′,′A2′〕〔2〕在P中插入元组〔NULL,′绿′,′A1′〕〔3〕在P中插入元组〔′P4′,′白′,′A5′〕〔4〕在P中插入元组〔′P4′,′绿′,′A2′〕〔1〕不能正确执行,插入操作破坏了实体完整性约束,待插入的元组的“零件号〞属性值“P2〞,在P表中已经存在。“零件号〞作为主键,其值不能重复,必须唯一。〔2〕不能正确执行,插入操作破坏了实体完整性约束,待插入的元组的“零件号〞属性值为空,“零件号〞作为主属性,其值不能为空。〔3〕不能正确执行,插入操作破坏参照完整性约束,待插入的元组的“供给商号〞属性值“A5〞,在S中找不到没有相应的主键值。〔4〕能正确执行,因为满足数据库的实体完整性和参照完整性。5.假设有下面两个关系模式:职工〔职工号,姓名,年龄,职务,工资,部门号〕,其中职工号为主码;部门号为外码。部门〔部门号,名称,经理名,〕,其中部门号为主码,经理名为外码请用SQL语言定义这两个关系模式,要求在关系模式中完成以下完整性约束条件的定义:〔1〕定义每个模式的主码;〔2〕定义参照完整性;职工关系模式中的部门号属性参照部门关系模式中的主码部门号;部门关系模式中的经理名属性参照职工关系模式中的姓名属性。〔3〕定义职工年龄不超过60岁。答:CREATE

TABLE

DEPT

(

Deptno

NUMBER(2),

Deptname

VARCHAR(10),

Manager

VARCHAR(10),

PhoneNumber

Char(12),

CONSTRAINT

PK_SC

RIMARY

KEY(Deptno)

);

CREATE

TABLE

EMP

(

Empno

NUMBER(4),

Ename

VARCHAR(10),

Age

NUMBER(2)

CONSTRAINT

C1

CHECK

(

Age<=60),

Job

VARCHAR(9),

Sal

NUMBER(7,2),

Deptno

NUMBER(2),

CONSTRAINT

PK_EMP

RIMARY

KEY(Empno),

CONSTRAINT

FK_DEPTNO

FOREIGN

KEY(Deptno)

REFFERENCES

DEPT(Deptno)

);

第六章关系数据理论为了设计出性能较优的关系模式,必须进展标准化,标准化主要的理论依据是〔A〕〔A〕、关系标准化理论〔B〕、关系代数理论〔C〕、数理逻辑〔D〕、关系运算理论标准化理论是关系数据库进展逻辑设计的理论依据,根据这个理论,关系数据库中的关系必须满足:每一个属性都是〔B〕〔A〕、长度不变的〔B〕、不可分解的〔C〕、互相关联的〔D〕、互不相关的关系模式R(A,B,C,D,E),及其上的函数相关性集合F={A→D,B→C,E→A},该关系模式的候选码是〔B〕〔A〕、AB〔B〕、BE〔C〕、CD〔D〕、DE关系数据库标准化是为了解决关系数据库中的〔A〕问题而引入的。〔A〕、插入、删除、更新异常和数据冗余〔B〕、提高查询速度〔C〕、减少数据操作的复杂性〔D〕、保证数据的安全性和完整性数据库中的冗余数据是指〔D〕的数据。〔A〕、容易产生错误〔B〕、容易产生冲突〔C〕、无关紧要〔D〕、由根本数据导出在关系标准化过程中,分解关系的根本原则是〔B〕I.实现无损失连接II.分解后的关系相互独立III.保持原有的函数依赖关系〔A〕、I和II〔B〕、I和III〔C〕、I〔D〕、II设关系模式R(A,B,C),F是R上成立的函数依赖集合,F={B→C},则分解P={AB,BC}相对于F〔A〕。〔A〕、是无损失联接,也是保持函数依赖的分解〔B〕、是无损失联接,但不保持函数依赖的分解〔C〕、不是无损失联接,但保持函数依赖的分解〔D〕、既不是无损失联接,也不保持函数依赖的分解第8到第9题基于以下的表达:有关系模式A(C,T,H,R,S),其中各属性的含义是:属性C代表课程名,属性T代表教师姓名,属性H代表上课时间,属性R代表上课教室,属性S代表学生姓名。根据语义有如下函数依赖集:F={C→T,(H,R)→C,〔H,T〕→R,〔H,S〕→R}。请问该关系模式A的候选码是(D)〔A〕、C〔B〕、〔H,R〕〔C〕、〔H,T〕〔D〕、〔H,S〕关系模式A的标准化程度最高到达〔B〕〔A〕、1NF〔B〕、2NF〔C〕、3NF〔D〕、BCNF10.设有关系模式R〔职工编号,日期,日营业额,部门名,部门经理〕,该模式统计商店里每个职工的日营业额,以及职工所在的部门和经理信息。如果规定:每个职工每天只有一个营业额;每个职工只在一个部门工作;每个部门只有一个经理。试答复以下问题:〔1〕根据上述规定,写出模式R的根本函数依赖和候选码;〔2〕说明R不是2NF的理由,并把R分解成2NF模式集;〔3〕进而分解成3NF模式集。(1)根本的FD有三个:(职工编号,日期)->日营业额职工编号->部门编号部门名->部门经理R的关键码为(职工编号,日期)(2)R中有两个这样的FD:(职工编号,日期)->(部门名,部门经理)职工编号->(部门名,部门经理)可见前一个FD是局部依赖,关系模式中存在非主属性对码的局部函数依赖,所以R不是2NF模式。R应分解成R1(职工编号,部门名,部门经理)R2(职工编号,日期,日营业额)此处,R1和R2都是2NF。(3)R2已是3NF模式。在R1中,存在两个FD:职工编号->部门名部门名->部门经理因此,“职工编号->部门经理〞是一个传递依赖,R1不是3NF模式。R1应分解成R11(职工编号,部门名)R12(部门名,部门经理)这样,ρ=(R11,R12,R2)是一个3NF模式集第七章数据库设计数据库设计中,将E-R图转换成关系数据模型的过程属于〔B〕〔A〕、需求分析阶段〔B〕、逻辑设计阶段〔C〕、概念设计阶段〔D〕、物理设计阶段数据库设计的概念设计阶段,表示概念构造的常用方法和描述工具是〔C〕。〔A〕、层次分析法和层次构造图〔B〕、数据流程分析法和数据流程图〔C〕、实体联系法和实体联系图〔D〕、构造分析法和模块构造图在E-R模型向关系模型转换时,M:N的联系转换为关系模式时,其关键字是〔C〕。〔A〕、M端实体的关键字〔B〕、N端实体的关键字〔C〕、M,N端实体的关键字组合〔D〕、重新选取其他属性在E-R模型中,如果有3个不同的实体集,3个M:N联系,根据E-R模型转换为关系模型的规则,转换为关系的数目是〔C〕。〔A 〕、4〔B〕、5〔C〕、6〔D〕、7进展数据库系统需求分析时,数据字典的内容和作用是什么?答:数据字典是系统中各类数据描述的集合。数据字典的内容通常包括:(l〕数据项;(2〕数据构造;(3〕数据流;(4〕数据存储;(5〕处理过程五个局部。其中数据项是数据的最小组成单位,假设干个数据项可以组成一个数据构造。数据字典通过对数据项和数据构造的定义来描述数据流和数据存储的逻辑内容。数据字典的作用:数据字典是关于数据库中数据的描述,在需求分析阶段建设,是下一步进展概念设计的根基,并在数据库设计过程中不断修改、充实、完盖。6.设某商业集团数据库中有三个实体集。一是“商店〞实体集,属性有商店编号、商店名、地址等;二是“商品〞实体集,属性有商品号、商品名、规格、单价等;三是“职工〞实体集,属性有职工编号、姓名、性别、业绩等。商店与商品间存在“销售〞联系,每个商店可销售多种商品,每种商品也可放在多个商店销售,每个商店销售一种商品,有月销售量;商店与职工间存在着“聘用〞联系,每个商店有许多职工,每个职工只能在一个商店工作,商店聘用职工有聘期和月薪。试画出E-R图,并在图上注明属性、联系的类型。将E-R图转换成关系模型,并注明主键和外键。第八章数据库编程SQL的集合处理方式与宿主语言单记录处理方式之间如何协调由于SQL语句处理的是记录集合,而宿主语言语句一次只能处理一个记录,因此需要用游标(cousor)机制,把集合操作转换成单记录处理方式.SQL有两种使用方式:___交互式SQL_______和___嵌入式SQL_______。SQL语句嵌入在C语言程序中时,必须加上前缀标识__EXECSQL_______和完毕标志__END_EXEC_______。有关嵌入式SQL的表达,不正确的选项是〔B〕 A.宿主语言是指C一类高级程序设计语言B.宿主语言是指SQL语言C.在程序中要区分SQL语句和宿主语言语句D.SQL有交互式和嵌入式两种使用方式嵌入式SQL实现时,采用预处理方式是(C) A.把SQL语句和主语言语句区分开来B.为SQL语句加前缀标识和完毕标志C.识别出SQL语句,并处理成函数调用形式D.把SQL语句编译成二进制码允许在嵌入的SQL语句中,引用宿主语言的程序变量,在引用时(C) A.直接引用B.这些变量前必须加符号“*〞C.这些变量前必须加符号“:〞D.这些变量前必须加符号“&〞如果嵌入的SELECT语句的查询结果肯定是单元组,那么嵌入时(C) A.肯定不涉及游标机制B.必须使用游标机制C.是否使用游标,由应用程序员决定D.是否使用游标,与DBMS有关第九章关系查询优化1.为什么要对关系代数表达式进展优化有哪三条启发式规则对优化起什么作用关系代数表达式由关系代数操作组合而成。操作中,笛卡尔积和连接操作最费时。如果直接按表达式书写的顺序执行,必将花费很多时间,并生成大量的中间结果,效率较低。如果在执行前,由DBMS的查询子系统先对关系代数表达式进展优化,尽可能先执行选择和投影操作,则进展笛卡尔积或连接时可以减少中间结果,并节省时间。优化工作是由DBMS做的,用户在写关系代数表达式时不必关心优化一事,仍以简练的形式书写。3条启发式优化规则是:尽可能早地执行选择运算,尽可能早地执行投影运算,把笛卡尔积与附近的一连串选择和投影合并起来做。使用这3条启发式优化规则,可以使计算时尽可能减少中间关系的数据量。2.假设教学数据库中有3个关系:S(S#,SNAME,AGE,SEX)C(C#,CNAME,TEACHER)SC(S#,C#,GRADE)其中:学生关系S的属性分别表示:学号、姓名、年龄、性别课程关系C的属性分别表示:课程号、课程名、任课教师选修关系SC的属性分别表示:学号、课程号、分数用户有一查询语句:检索女同学所选修的课程的课程名和任课教师。试写出该查询的关系代数表达式。画出查询表达式的语法树。使用启发式优化算法,对关系代数语法树进展优化,画出优化后的语法树。解:①

关系代数表达式为:πCNAME,TEACHER〔σSEX=’F’〔S⋈SC⋈C⋈T〕〕上述的关系代数表达式为:

πCNAME,TEACHER〔σSEX=’F’〔πL〔σS.S#=SC.S#

SC.C#=C.C#〔〔S×SC〕×C〕〕〕〕此处L为S、SC、C中全部属性〔公共属性只取一次〕。②上述关系代数表达式的语法树如图2.2所示。图2.2③

上述的关系代数表达式为:优化后的语法树如图2.3所示。图2.3第

温馨提示

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

评论

0/150

提交评论