数据库管理系统介绍|S1

GATE CS考试中提出了以下问题。

1.鉴于关系

员工(姓名, 工资, 部门名称)

部门(部门名称, 部门名称, 地址)

以下哪些查询无法使用基本关系代数表达

运算(U, -, x, π, σ, p)? (GATE CS 2000)

(a)每位员工的部门地址

(b)姓名与部门名称相同的员工

(c)所有雇员的薪金之和

(d)特定部门的所有员工

回答:(C)

说明:

关系代数的六个基本算子是选择(σ), 投影(π), 笛卡尔乘积(x)(也称为叉积或叉连接), 集合并集(U), 集合差(-) , 然后重命名(p)。这六个运算符是基本意义上的意义, 即在不丧失表达能力的情况下, 不能忽略它们。根据这六个定义了许多其他运算符。其中最重要的是集合相交, 除法和自然连接, 但是使用这些基本的关系代数运算不可能实现聚合。因此, 我们无法通过这六个操作计算所有员工的薪水之和。

参考文献:

http://en.wikipedia.org/wiki/Relational_algebra

http://faculty.ksu.edu.sa/zitouni/203%20Haseb%20%20Lecture%20Notes/Relional%20Algebra.pdf

2.给出以下关系实例。

x  y  z
1  4  2
1  5  3
1  6  3
3  2  2

实例满足以下哪些功能依赖关系? (GATE CS 2000)

(a)XY-> Z和Z-> Y

(b)YZ-> X和Y-> Z

(c)YZ-> X和X-> Z

(d)XZ-> Y和Y-> X

回答:(b)

说明:

功能依赖关系(FD)是数据库中某个关系中两组属性之间的约束。 FD X-> Y要求X的值唯一地确定Y的值, 其中X和Y是属性集。 FD是密钥概念的概括。

假设X, Y和Z是关系R中的一组属性, 则可以导出功能依赖项的多个属性。其中最重要的是Armstrong公理, 这些公理用于数据库规范化:

* Subset Property (Axiom of Reflexivity): If Y is a subset of X, then X ? Y
* Augmentation (Axiom of Augmentation): If X -> Y, then XZ -> YZ
* Transitivity (Axiom of Transitivity): If X -> Y and Y -> Z, then X -> Z

从这些规则, 我们可以得出以下辅助规则:

* Union: If X -> Y and X -> Z, then X -> YZ
* Decomposition: If X -> YZ, then X -> Y and X -> Z
* Pseudotransitivity: If X -> Y and YZ -> W, then XZ -> W

在上述问题中, Y唯一地确定X和Z, 对于给定的Y值, 你可以轻松找出X和Z的值。

因此, Y-> X和Y-> Z适用于以上模式。

从增广规则, 我们可以说YZ-> X。如果我们了解FD的概念, 则无需应用公理来找出哪个选项是正确的, 仅通过查看架构和选项就可以说(b)是正确的。

参考文献:

http://www.cse.iitb.ac.in/~sudarsha/db-book/slide-dir/ch7.pdf

http://en.wikipedia.org/wiki/Functional_dependency

3.给定关系r(w, x)和s(y, z), 结果为

选择不同的w, x

从r, s

(GATE CS 2000)保证与r相同

(a)r没有重复项, 而s是非空的

(b)r和s没有重复项

(c)s没有重复且r为非空

(d)r和s具有相同的元组数

回答:(一种)

说明:

查询选择r的所有属性。由于我们在查询中存在差异, 因此仅当r没有重复项时, 结果才能等于r。

如果我们没有提供要在其上连接两个表的任何属性, 则上述查询将等效于笛卡尔积。如果两组的任何一个为空, 则两组的笛卡尔乘积将为空。因此, s应该至少有一条记录才能获得r的所有行。

4.在SQL中, 关系可以包含空值, 并且将具有空值的比较视为未知。假设所有具有空值的比较均被视为false。哪一个

以下对不等效? (GATE CS 2000)

(a)x = 5, 不是(not(x = 5)

(b)x = 5, x> 4和x <6, 其中x是整数

(c)x <5, 不是(x = 5)

(d)以上都不是

回答(C)

说明:

不需要太多解释。对于所有小于5的值, x <5始终为true, 但x = 5为false。

5.考虑一个模式R(A, B, C, D)和功能依赖性A-> B和C->D。然后将R分解为R1(A, B)和R2(C, D)是(GATE) CS 2001)

a)保持依赖关系和减少损失的连接

b)损失少的联接但不保留依赖项

c)保留依赖关系, 但不损失更少的连接

d)不保留依赖关系, 不损失更少的连接

回答:(C)

说明:

依赖关系保留分解:

如果分解后功能依赖性的关闭与分解前FD的关闭相同, 则将R分解为R1和R2是保留依赖性的分解。

一种简单的方法是仅检查我们是否可以从分解后存在的FD派生所有原始FD。

在上述问题中, R(A, B, C, D)分解为R1(A, B)和R2(C, D), 并且只有两个FD A-> B和C->D。因此, 分解是保持依赖关系

无损连接分解:

如果以下功能依赖性中的至少一个在F +中, 则将R分解为R1和R2是无损连接分解(功能依赖性终止)

R1 ∩ R2 → R1
   OR
    R1 ∩ R2 → R2

在上述问题中, R(A, B, C, D)分解为R1(A, B)和R2(C, D), 并且R1∩R2为空。因此, 分解不是无损的。

参考文献:

http://www.cs.sfu.ca/CC/354/han/materia/notes/354notes-chapter6/node1.html

微信公众号
手机浏览(小程序)
0
分享到:
没有账号? 忘记密码?