1.1关系数据库的介绍
- 关系数据库由表的集合构成,每个表有唯一的名字。
- 一般来说,表中的一行代表了一组值之间的一种联系。
- 在关系模型的术语中,关系用来指代表,而元组用来这指代行,属性指代的是表中的列。
- 对于关系的每个属性,都存在一个允许取值的集合,称为该属性的域。
- 如果域中元素被看作是不可再分的单元,则域是原子的。
- 空值是一个特殊的值,表示值未知或不存在。
1.2码
我们必须有一种能区分给定关系中的不同元组的方法。这用他们的属性来表明,也就是说,一个元组的属性值必须是能够唯一区分元组的。换句话说,一个关系种没有两个元组在所有的属性上的值都相同。
- 超码是一个或多个属性的集合,这些属性的组合可以使我们在一个关系中唯一地标识一个元组。
- 如果一个超码的任意真子集都不能成为超码,这样的最小超码称为候选码。
- 主码表示一个数据库设计者选中的、主要用来在一个关系中区分不同元组的候选码(主码应该选择那些值从不或极少变化的属性)。
- 一个关系模式(如R1)可能在它的属性中包括另一个关系模式(如R2)的主码。这个属性在R1上称作参照R2的外码。关系R1也称为外码依赖的参照关系,R2叫做外码的被参照关系。
- 参照完整性约束要求在参照关系中任意元组在特定属性上的取值必然等于被参照关系中某个元组在特定属性上的取值。
1.3模式图
- 一个含有主码和外码依赖关系的数据库模式可以用模式图来表示。
1.4关系运算
- σ(选择)返回输入关系中满足谓词的行。
- Π(投影)对输入关系的所有行输出指定的属性。从输出中去除重复元组。
- ⋈(自然连接)从两个输入关系中输出这样的元组对:它们在具有相同名字的所有属性上取值相同。
- ×(笛卡尔积)从两个输入关系中输出所有的元组对(无论它们在共同属性上的取值是什么)。
- ∪ 输出两个输入关系中元组的并。
1.5总结
- 关系数据模型建立在表的集合的基础上。数据库系统的用户可以对这些表进行查询,可以插入新元组、删除元组以及更新元组。表达这些操作的语言有几种。
- 关系的模式是指它的逻辑设计,而关系的实例是指它在特定时刻的内容。数据库的模式和实例的定义类似的。关系的模式包括它的属性,还可能包括属性类型和管辖上的约束,比如主码和外码约束。
- 关系的超码是一个或多个属性的集合,这些属性上的取值保证可以唯一的识别出关系中的元组,候选码是一个最小的超码,也就是说,它是一组构成超码的属性集,但这组属性的任意子集都不是超码。关系的一个候选码被选作主码。
- 在参照关系中的外码是这样的一个属性集合:对于参照关系中的每个元组来说,它在外码属性上的取值肯定等于被参照关系中某个元组在主码上的取值。
- 模式图是数据库中模式的图形化表示,它显示了数据库中的关系,关系的属性、数码和外码。
- 关系查询语言定义了一组运算集,这些运算可作用于表上,并输出表作为结果这些运算可以组合成表达式,表达所需的查询。
- 关系代数提供了一组运算,它们以一个或多个关系为输入,返回一个关系作为输出。诸如SQL这样的实际查询语言是基于关系代数的,但增加了一些有用的句法特性。
术语回顾
English | 中文 | English | 中文 |
---|---|---|---|
table | 表 | relation | 关系 |
tuple | 元组 | null value | 空值 |
datebase schema | 数据库模式 | datebase instance | 数据库实例 |
relation schema | 关系模式 | relation instance | 关系实例 |
key | 码 | super key | 超码 |
candidate key | 候选码 | primary | 主码 |
foreign key | 外码 | referencing relation | 参照关系 |
referenced relation | 被参照关系 | attribute | 属性 |
domain | 域 | atomic domain | 原子域 |
referential integrity constraint | 参照完整性约束 | schema diagram | 模式图 |
query language | 查询语言 | procedural language | 过程语言 |
nonprocedural language | 非过程化语言 | operational on relations | 关系运算 |
selection of tuples | 选择元组 | selection of attributes | 选择属性 |
natural join | 自然连接 | Cartesian product | 笛卡尔积 |
set operations | 集合运算 | relational algebra | 关系代数 |