数据库笔记

第二部分 - 关系模型与语言 - 1 - 基本术语

2017-03-16  本文已影响73人  板蓝根plank

在目前所使用的数据处理软件中,关系数据库管理系统(Relation Database Management System,RDBMS)占据了统治地位。它代表了第二代数据库管理系统,它是基于 E. F. Codd (1970)所提出的关系数据模型。在关系模型中,所有数据逻辑上被组织成 关系(表)结构。每个关系都有自己的名称,并由数据的一些命名 属性(表中的列)所组成。每个 元组(表中的行)包含每个属性的一个取值。关系模型的最大优点在于其逻辑结构简单。但这种简单的结构却有着可靠地理论基础,这正是第一代 DBMS 所欠缺的。

1.关系数据结构

可选术语

可选关系模型术语

2. 数学中的关系

假设有两个集合 D1 和 D2,其中
![](http://latex.codecogs.com/gif.latex?D_1 = {1, 3, 5}, D_2 = {2, 4})
这两个集合的笛卡尔积是一个有序对的集合,每个有序对中的第一个元素都是D1中的成员,第二个元素是D2中的成员,D1 X D2 包含了所有这样的有序对。换一种表达方式就是,找出所有第一个元素来自 D1、第二个元素来自 D2 的元素组合。在这个例子中可以得出:
![](http://latex.codecogs.com/gif.latex?D_1 \times D_2 = {(2, 1), (2, 3), (2, 5), (4, 1), (4, 3), (4, 5)})
这个笛卡尔乘积的任何子集都是一个关系。例如,可以找到如下的一个关系 R:
![](http://latex.codecogs.com/gif.latex?R = {(2, 1), (4, 1)})
可以通过一些选择条件来说明关系中将会有哪些有序对。例如,如果看出R是所有第二个元素为1的有序对的集合,就能够将 R 表示成:
![](http://latex.codecogs.com/gif.latex?R = {x, y | x \in D_1, y \in D_2, y=1})
使用同样的集合D1、D2,还可以形成另一种关系S,它包含所有这样的有序对,其中第一个元素是第二个元素的两倍。因此,可以将 S 表示如下:
![](http://latex.codecogs.com/gif.latex?S = {x, y | x \in D_1, y \in D_2, x=2y})
或者,用这个实例,
![](http://latex.codecogs.com/gif.latex?S = {(2, 1)})
因为在这个笛卡尔积中只有一个有序对满足此条件。可以简单地将关系的概念扩展到三个集合上。假设有三个集合D1,D2,D3。这三个集合的笛卡尔乘积将是所有这样的有序三元组的集合,有序三元组从 D1 中取出第一个元素,从 D2 中取出第二个元素,从 D3 中取出第三个元素。这个笛卡尔乘积中的任何子集也是一个关系。例如,假设有:
![](http://latex.codecogs.com/gif.latex?D_1 = {1,3}, D_2 = {2,4}, D_3 = {5,6})
![](http://latex.codecogs.com/gif.latex?D_1 \times D_2 \times D_3 = {(1, 2, 5), (1, 2, 6), (1, 4, 5), (1, 4, 6), (3, 2, 5), (3, 2, 6), (3, 4, 5), (3, 4, 6)})
这些有序三元组的任何子集都是一个关系。可以继续将三集合扩展,从而定义 n 个域上的一般关系。设D1,D2.....Dn 为 n 个集合。它们的笛卡尔乘积定义如下:
![](http://latex.codecogs.com/gif.latex?D_1 \times D_2 \times \cdot \cdot \cdot \times D_n = {(d_1, d_2, \cdot \cdot \cdot ,d_n)|d_1 \in D_1, d_2 \in D_2, \cdot \cdot \cdot ,d_n \in D_n})
通常被表示成:
![](http://latex.codecogs.com/gif.latex?\prod_{i=1}^{n} D_1)
这个笛卡尔积中任何 n 元组的子集都是这 n 个集合上的一个关系。注意,为了定义这些关系,必须对取值集合(即)进行说明。

3. 数据库中的关系

将上面所介绍的概念应用到数据库当中,就可以定义关系模式。

4. 关系的性质

一个关系通常有如下性质:

现在说明这些限制的含义,关系不能包含重复组。满足这一性质的关系称为 规范化 关系或 第一范式 关系。
关系的大部分特有性质都源于数学中关系的性质:

但在数学关系中,元组中各个元素的顺序是很重要的。例如,有序对(1,2)与有序对(2,1)就大不相同。而对于关系模型中的关系则不一样,它明确要求属性的顺序不具备实际意义。原因就在于每一列的标题一说明了该列的值对应哪个属性。这就意味着,关系内涵中列标题的顺序无关紧要,不过一旦选定了关系的结构,其外延中元组的元素顺序就必须与属性名的顺序相一致。

5. 关系关键字

如前所述,关系中不会出现重复的元组。因此,可以指定一个或多个属性(称为关系关键字),唯一的标识关系中的每个元组。如下所示关系Branch和关系Staff的实例:

关系Branch和关系Staff实例

6. 关系数据库模式的表示

关系数据库是由一些规范化关系所组成的。对应 DreamHome 案例的部分关系模式如下:

relation property
Branch (<u>branchNo</u>, street, city, postcode)
Staff (<u>saffNo</u>,fName, lName, position, sex, DOB, salary, branchNo)
PropertyForRent (<u>propertyNo</u>, street, city, postcode, type, rooms, rent, ownerNo, staffNo, branchNo)
Client (<u>clientNo</u>, fName, lName, telNo, prefType, maxRent, eMail)
PrivateOwner (<u>ownerNo</u>, fName, lName, address, telNo, eMail, password)
Viewing (<u>clientNo</u>, <u>propertyNo</u>, viewDate, comment)
Registration (<u>clientNo</u>, <u>branchNo</u>, staffNo, dateJoined)

关系模式的习惯表示法是,给出关系名,并在后面的圆括号中列出关系的属性名。一般用下划线标出主关键字。概念模型(或者说概念模式)是指数据库中所有这种模式的集合。

上一篇 下一篇

猜你喜欢

热点阅读