Chapter2 Introduction to Relational Model
原创大约 3 分钟
关系(Relation)
属性值(Attribute Types)
- 每个属性允许的值集合称为属性的域(domain)。
- 属性值(通常)要求是原子(atomic)的,即不可分割的。
- 特殊值 null 是每个域的成员。
- null 值在许多操作的定义中引起了复杂性。
关系模式和实例(Relation Schema and Instance)
- 关系模式是关系数据库中表的结构定义,它规定了表的列名、数据类型和约束条件。它描述了表的属性以及属性之间的关系。
- 关系实例是关系模式的具体实例化,即表中的具体数据。它是由行和列组成的二维表格,每行代表一个记录,每列代表一个属性。
- 简而言之,关系模式定义了表的结构,而关系实例则是实际存储在表中的数据。
形式化描述
- 例如:
是属性名, 是 的取值范围, 是 中的一个元素 就是属性(attribute) 是一个关系模式(relation schema)- 例如
- 例如
- 对于给定的若干个集合
,一个关系 是 的子集
关系是无序的
数据库
- 一个数据库由多个关系组成。
- 关于一个大学的信息被分解成不同的部分。
- 不好的设计:
导致了信息的重复(例如,两个学生有相同的教师)和需要使用空值(例如,表示没有指导教师的学生)。 - 规范化理论(第 7 章)处理如何设计“好”的关系模式。
键(Key)
设
,(其中 是一个关系模式,由多个属性组成)。如果
的值足以唯一标识每个可能的关系 中的元组,则 是 的超键(superkey)
。- 例如,
和 都是 关系的超键。
- 例如,
如果
是最小的超键,则 是候选键(candidate key)
。- 例如,
是 的候选键。
- 例如,
其中一个候选键被选为
主键(primary key)
。- 哪一个是主键?
外键约束(Foreign key):一个关系中的值必须出现在另一个关系中。
- 引用关系(Referencing relation):包含外键的关系。
- 被引用关系(Referenced relation):被外键引用的关系。
关系查询语言(Relational Query Languages)
- 过程式 vs. 非过程式,或声明式(Procedural vs.non-procedural, or declarative)
- "纯"语言:
关系代数(Relational algebra)
- 元组关系演算(Tuple relational calculus)
- 域关系演算(Domain relational calculus)
- 关系操作符(Relational operators)
合并两个关系 - 自然连接
- 假设
和 是分别基于模式 和 的关系。那么,关系 和 的“自然连接”是基于模式 的关系,其过程如下:- 对于
中的每个元组 和 中的每个元组 ,考虑每对元组。 - 如果
和 在 中的每个属性上有相同的值,则将一个元组 添加到结果中。其中: 和 在 上具有相同的值。 和 在 上具有相同的值。
- 对于
简而言之,自然连接操作是基于两个关系中共同属性的值相等的元组进行并。结果是一个新的关系,包含了具有相同共同属性值的元组。