关系模型的基本概念
-
域(Domain)是一组具有相同数据类型的值的集合。例如:整数、实数、介于某个取值范围的整数、长度指定的字符串集合{‘男’,‘女’}、介于某个取值范围的日期。
-
笛卡尔积(Cartesian Product)
-
元组(Tuple)
-
分量(Component)
-
基数(Cardinal number)
-
关系(Relation)
-
属性(Attribute)
关系中不同列可以对应相同的域,为了加以区分,必须对每列起一个名字,称为属性。n目关系必有n个属性。
-
码
- 候选码(Candidate key)
- 若关系中的某一属性或属性组的值能唯一地表示一个元组,称该属性组为
候选码
- 在最极端的情况下,关系模式的所有属性组是这个关系模式的候选码,称为
全码(ALL-key)
- 若关系中的某一属性或属性组的值能唯一地表示一个元组,称该属性组为
- 主码(Primary key)
- 若一个关系有多个候选码,则选定其中一个为主码。码的诸属性称为
主属性
(Prime attribute)。 - 不包含在任何候选码中的属性称为
非主属性
(Non-key attribute)。
- 若一个关系有多个候选码,则选定其中一个为主码。码的诸属性称为
- 候选码(Candidate key)
-
超键(Super key):在关系中能唯一标识元组的属性集称为关系模式的超键(属性集);
-
候选键(Candidate key):不含有多余属性的超键称为候选键;
-
主键(Primary key):用户选作元组标识的一个候选键。
以上概念中,主键一定可作候选键,候选键一定可作超键;反之不成立。
关系模型的数据结构
-
关系模型的数据完整性是指数据库中数据的正确性和一致性,数据库完整性由数据库完整性规则来维护。
-
三类完整性规则:
-
实体完整性规则:
这条规则要求在关系中的元组在组成主键的属性上不能有空值。
-
参照完整性规则:
这条规则要求在相关联的两个表中,从表不能引用主表不存在的元组。
-
用户定义的完整性规则:
针对某一具体数据的约束条件,由应用环境决定。它反映某一具体应用所涉及的数据必须满足的语义要求。
-
关系代数
-
传统的集合运算:并、交、差、广义笛卡尔积
-
专门的关系运算:选择、投影、链接、除
-
关系代数用到的运算符有:
集合运算符:
专门的关系运算符:σ(选择)、π(投影)、⋈(连接)、÷(除)
-
选择又称为限制(restriction),从关系R中选择满足给定条件的诸元组,记作
-
投影是从R中选择出若干属性列组成的新的关系。记作
-
连接是从两个关系的笛卡尔积中选取属性间满足一定条件的元组。见课本P53-55(包含非等值连接、等值连接、自然连接、外连接、左外连接、右外连接等等)。
-
除运算可以理解为结果关系包含所有在除数关系中但不在被除数关系中的属性及其值,且结果关系与被除数的所有组合都包含在除数中。(此处的除数与被除数是关系,用除数与被除数更易于区分两者的先后关系。)
算术比较符:
逻辑运算符:¬(非)、∧(与)、∨(或)
-
常用的关系操作
- 查询:选择、投影、连接、除、并、交、差。
- 数据更新:插入、删除、修改。
- 查询的表达能力是其中最主要的部分。
关系操作的特点
- 集合操作方式,即操作的对象和结果都是集合。
关系数据语言的种类
- 关系代数语言:用关系的运算来表达查询要求。
- 关系演算语言:用谓词来表达查询要求。
- 元组关系演算语言:谓词变元的基本对象是元组变量。
- 域关系演算语言:谓词变元的基本对象是域变量。
- 具有关系代数和关系演算双重特点的语言:典型代表:SQL
关系数据语言的特点
- 关系语言是一种高度非过程化的语言,存取路径的选择由DBMS的优化机制来完成。用户不必用循环结构就可以完成数据操作
- 能够嵌入高级语言中使用
- 关系代数、元组关系演算和与关系演算三种语言在表达能力上完全等阶。