关系数据模型
- 一、关系数据结构
- 1.1 相关概念
- 1.2 三类关系
- 二、关系操作
- 三、完整性约束
- 3.1 实体完整性
- 3.2 参照完整性
- 3.3 用户定义的完整性
一、关系数据结构
1.1 相关概念
-
关系模型建立在集合代数的基础上
-
域是一组具有相同数据类型的值的集合
-
笛卡尔积:所有域的所有取值的一个组合
- 不能重复
- 表中的每行对应一个元组
- 表中的每列对应一个域
-
关系:笛卡尔集的子集
- 关系也是一个二维表关系本质就是一张二维表
- 表的每行对应一个元组
- 表的每列对应一个域
-
码(键):由一个或多个属性组成
- 候选码(Candidate Key):能够唯一标识表中每一行的属性或属性组。
- 主属性(Prime Attribute):候选码的属性
- 主码(Primary Key):从候选码中选出的一个,用于唯一标识每一行。
- 全码(All-key):关系的所有属性是这个关系的候选码
- 外码:如果一个关系R中的一个属性F对应着另一关系S的主码K,那么F在关系R中称为外码
-
关系模式:是对关系的描述 eg.学生(学号,姓名 ,年龄,性别,籍贯)
关系模式与关系的区别
特性 | 关系模式 | 关系 |
---|---|---|
定义 | 关系的结构描述(表头) | 关系的具体实例(数据) |
内容 | 属性名、数据类型、约束 | 具体的元组(行) |
状态 | 静态的 | 动态的(数据会变化) |
类比 | 类似于“表格的框架” | 类似于“表格中的数据” |
示例 | Student(StudentID, Name, Age, Department) | 具体的学生数据(如 Alice, Bob 的记录) |
- 关系数据库:在一个给定的应用领域中,所有实体及实体之间联系的关系的集合构成一个关系数据库。 例:教学管理数据库中有四个关系:教师关系T,课程关系C,学生关系S,选课关系SC
- 关系数据库模式是关系数据库的型,是对关系数据库的描述
1.2 三类关系
-
基本关系(基本表或基表):实际存在的表,是实际存储数据的逻辑表示
- 列是同质的:每一列中的分量是同一类型的数据,来自同一个域
- 不同的列可出自同一个域,其中的每一列称为一个属性,不同的属性要给予不同的属性名
- 列的顺序无所谓
- 任意两个元组不能完全相同
- 行的顺序无所谓
- 分量必须取原子值
-
查询表:查询结果对应的表
-
视图:由基本表或其他视图导出的表,是虚表,不对应实际存储的数据
二、关系操作
- 常用的关系操作:查询、插入、删除、修改
- 关系操作的特点: 集合操作方式
- 关系数据语言的种类
- 关系代数语言
- 关系演算语言
- 具有上两者双重特点的语言.如 SQL
- 关系数据语言的特点
- 是一种高度非过程化的语言
- 能够嵌入高级语言中使用
三、完整性约束
-
关系模型的完整性规则是指对关系的某种约束条件
-
关系模型中三类完整性约束:
- 实体完整性
- 参照完整性
- 用户定义的完整性
-
实体完整性和参照完整性是关系模型必须满足的完整性约束条件,被称作是关系的两个不变性,应该由关系系统自动支持
3.1 实体完整性
- 定义:实体完整性规则是针对 基本关系(Base Relation) 而言的,它要求 主属性(Primary Attribute) 不能取空值(NULL)。
- 实体完整性规则的必要性
- 唯一标识:主码的唯一性确保了每个实体或联系在关系中是唯一的。
- 避免歧义:现实世界中的实体和实体间的联系都是可区分的,即它们具有某种唯一性标识。如果主属性允许空值,可能会导致多个元组无法区分,从而破坏关系的唯一性。
- 数据一致性:实体完整性规则是确保数据一致性和正确性的重要约束。
3.2 参照完整性
- 定义:参照完整性规则就是定义外码与主码之间的引用规则。 外码的取值必须为:空值或者被参照表中某个元组的主码值
3.3 用户定义的完整性
- 定义:用户定义的完整性是针对某一具体关系数据库的约束条件,反映某一具体应用所涉及的数据必须满足的语义要求