下半年数据库原理作业1
综合练习五
一、选择题
1. ( C )就是能从这许多查询策略中找出最有效的查询执行计划的一种处理过程。
A. 查询分析 B. 查询翻译 C. 查询优化 D. 查询执行
2. 因为每个中间运算的结果被创建,然后用于下一层的运算,这种查询表达式的计算方法被称为( A )计算。
A. 实体化 B. 流水线 C. 双缓冲 D. 临时区
3. 下面哪条是选择运算的级联定律(A )。
A. σF1 ^ F2 (E) ≡ σF1 (σF2 (E)) B. σF1 (σF2 (E)) ≡ σF2 (σF1 (E) C. ПA1 (ПA2(…(ПAn(E))…) ≡ ПA1(E) D. ПA (E1 ∪ E2) ≡ ПA (E1) ∪ ПA (E2)
二、填空题
1. 关系查询处理可以分4个步骤,包括 查询分析和检查 、 查询翻译 、 查询优化 、 查询执行 。
2. 对于线性搜索,如果该数据文件中有N个磁盘块数,在码属性上进行选择运算,则它的理想情况的代价为 1 ,平均代价为 N/2 ,最坏情况的代价为 N 。
3. 典型的启发式优化规则有:尽早执行 选择运算 、尽早执行 投影运算 。
三、思考题
1. 名词解释。 关系表达式 查询树 答: ? ?
关系表达式:用关系运算符连接若干个算术表达式,叫关系表达式;
查询处理:查询处理是指从数据库中提取数据所涉及的一系列过程和活动,这些活动是由数据库自动完成的,不需要人的参与。它的作用是把用户提交的关系查询语句转化为系统可执行的查询执行计划。 ? ?
查询优化:查询优化就是能从这些多策略中找出最有效的查询执行计划的一种处理过程。 查询处理代价:查询处理代价是指查询处理过程中每个操作消耗的时间和空间代价,查询查询处理代价可以通过该查询对各种资源的使用情况进行测量,这些资源包括磁盘存取、执行一个查询所用CPU时间、在分布式数据库系统或并行数据库系统中通信开销。 ? ?
查询树:查询树又称语法分析树,它建立在扩展的关系代数的基础上的。
流水线:通过减少查询执行中产生的临时文件数,可以提高查询执行的效率。减少临时文件数据
查询处理 流水线
查询优化 等价规则
查询处理代价
是通过将多个关系运算组合成一个运算的流水线来实现,即将多个运算的结果传送到一下个运算,这样的运算叫流水线运算。 ?
等价规则:两个关系表达式是等价的是指在任何一种有效数据库实例中它们都会产生相同的元组集。等价规则指出两种不同形式的表达式是等价的。 2. 简述查询优化的一般准则。 答:查询优化的一般准则如下:
? 选择运算应尽可能先做;
? 在执行连接前对关系适当的预处理 ? 把投影运算和选择运算同时进行 ? 投影同双目运算结合
? 选择同某些笛卡尔积结合起来构成一个连接运算 ? 找出公共子表达式
3. 证明以下等价式成立。说明如何用它们提高某些查询的效率。 (1)E1F (E2 – E3) ≡ (E1F E2 – E2F E3)。
(2)σF1 ^ F2^ F3 (E) ≡ σF1 (σF2(σF3 (E)))。 (3)σF1 ^ F2 (E1
F E2) ≡ σF1 (E1F(σF2(E2))),其中
F2仅使用E2的属性。
综合练习六
一、选择题
1. 不满足( A )的数据库就不是关系数据库。
A. 第一范式 A. 插入异常
B. 删除异常、数据冗余度大 C. 更新困难
D. 插入异常、删除异常、数据冗余度大、更新困难
3. 若要求分解具有无损连接性,那么模式分解一定能够达到(B)。
A. 2NF
B. 4NF
C. BCNF
D. 3NF
B. 第二范式
C. 第三范式
D. 第四范式
2. 设计不好的数据库有可能会( D )。
二、填空题
1. 第一范式是指同一列中不能有 多个值 ,即实体中的某个属性必须是原子项
2. 分解具有无损连接性和分解保持函数依赖是两个互相独立的标准。具有无损连接性的分解不一定能够保持 函数依赖 。同样,保持函数依赖的分解也不一定具有 无损连接性 。
3. 范式 是衡量模式优劣的标准, 范式 表达了模式中数据依赖之间应满足的联系。
三、思考题
1. 什么是范式?为什么需要范式? 答:
(1)构造数据库必须遵循一定的规则。在关系数据库中,这种规则就是范式。范式是符合某一种级别的关系模式的集合。关系数据库中的关系必须满足一定的要求,即满足不同的范式。目前关系数据库最重要的范式有五种: 1NF、2NF、3NF、BCNF, 4NF,它们之间的关系是4NF?BCNF? 3NF?2NF?1NF。 满足最低要求的范式是第一范式(1NF)。在第一范式的基础上进一步满足更多要求的称为第二范式(2NF),其余范式以次类推。一般说来,数据库只需满足第三范式(3NF)就可以了。
(2)没有经过规范化的关系模式通常容易产生诸如数据冗余度高、插入异常、删除异常、更新困难等毛病,这样的关系模式显然是要避免的,由此而产生了一整套规范化理论。通过对原有的关系模式进行规范化,使之达到一定级别的范式,便可在一定程度上消除上述毛病。在实际应用中,并不是规范化程度越高越好,要视实际情况而定。
2. 给出函数依赖的形式化定义,并理解函数依赖的意义。 答:
函数依赖:设R(U)是属性集U上的关系模式。?,?是U的子集。若对于R(U)的任意一个可能的关系r,r中不存在两个元组在?上的属性值相等,而在?上的属性值不等,则称?函数决定?或?函数依赖于?,记为?→?。
函数依赖是一个在语义范畴上的概念,即只能根据语义来确定一个函数依赖。例如:员工姓名→性别,这个函数依赖只有在该部门没有同姓名的员工的前提下才成立,然而如果在设计的时候对这种事实作强制规定,如不允许同姓名的人存在,那么该函数依赖是存在的,现实生活中函数依赖是普遍存在的。
3. 已知学生关系模式Student(Sno,Sname,Sdept,MN,Course,Grade),其中:Sno: 学号,Sname:学生姓名,Sdept:系名,MN:系主任名,Course:课程名,Grade:成绩。
(1)写出关系模式Student的基本函数依赖及其主码。 答:该关系模式存在以下函数依赖:
Sno→Sname,Sdept→MN,Sno→Sdept,(Sno,Course)→Grade 显然关系模式的码为Sno,Course。
(2)将关系模式分解为2NF,并说明为什么? 答:
原关系模式是属于1NF的,非主属性Grade完全按函数依赖于码,而其他非主属性对码的函数依赖均为部分函数依赖,所以不属于2NF。可将该关系模式分解为2NF如下:
Student1(Sno,Sname,Sdept,MN) Student2(Sno,Course,Grade)
(3)将关系模式分解为3NF,并说明为什么? 答:
(2)中的关系模式Student1中存在Sno→Sdept ,Sdept→MN,即非主属性MN传递依赖于码Sno,所以Student1可以进一步分解为3NF如下:
Student11(Sno,Sname,Sdept) Student12(Sdept,MN)
而Student2中不存在非主属性对码的传递依赖,故已经属于3NF。 最终原关系模式分解为3NF得到: Student11(Sno,Sname,Sdept) Student12(Sdept,MN) Student2(Sno,Course,Grade) 4. 什么是多值依赖?什么是4NF? 答:
(1)多值依赖定义:设R(U)是一个属性集U上的一个关系模式,?、?和?分别为U的子集,且有?=U-?-?,多值依赖 ?→→?(读作 ?多值决定?)成立当且仅当对R的任意一个关系r,r