关系数据库系统概述
关系数据库系统的发展历史
关系数据模型
数据模型 = 数据结构 + 数据操作 + 完整性约束
- 数据结构(层次,网状,关系,对象)
- 数据操作(DDL,DML)
- 完整性约束(实体完整性/主键存在,参照完整性/外键引用存在,用户定义完整性)
关系数据模型 = 关系数据结构 + 数据操作 + 完整性约束
关系模型的数据结构
关系模型的数据结构和基本术语
关系模型的数据结构用单一的二维表结构来表示实体以及实体间的联系。
关系:一个关系对应一个二维表,二维表名就是关系名。
属性:在二维表中的列(字段),称为属性。属性的个数称为关系的元数。列的值称为属性值。属性值的取值范围称为值域。
关系模式:在二维表中的行定义(记录的型),即对关系的描述称为关系模式。
元组:在二维表中的一行(记录的值),称为一个元组。关系模式和元组的集合统称关系。
候选码(候选键):如果在一个关系中,存在多个属性(或属性组合)都能用来唯一标识该关系的元组,这些属性(或属性组合)都称为该关系的候选码或候选键。
主码(主键):在一个关系的若干个候选码中指定一个用来唯一标识该关系的元组,这个被指定的候选码称为该关系的主码或者主键。
主属性和非主属性:关系中博阿寒在任何一个候选码中的属性称为主属性或者码属性,不包含在任何一个候选码中的属性称之为非主属性或者非码属性。
外码(外键):当关系中的某个属性(或属性组)虽然不是该关系的主码或者只是主码的一部分,但却是另一个关系的主码时,称该属性(或属性组)为这个关系的外码。
参照关系和被参照关系:参照关系也称为从关系,被参照关系也称主关系,它们是指以外码相关联的两个关系。以外码为主码的关系称为参照关系,外码所在的关系称为被参照关系或目标关系。
关系形式定义和关系数据库对关系的限定
关系数据库对关系的限定:
- 每个属性是不可分解的
- 每个关系模式当中,属性的数据类型以及属性的个数是固定的,并且每个属性必须命名在同一个关系模式中,属性名必须是不同的。
- 每个关系仅仅有一种记录类型,即一种关系模式
- 在关系中,元组的顺序(即行序)是无关紧要的。
- 在关系中,属性的顺序可任意交换,交换时连同属性名也一起交换才行,否则顺序是紧要的。
- 同一个关系中不允许出现完全相同的元组。
- 综上可知,外键是指关系中的某个属性(或属性组)虽然不是关系的主码或只是主码的一部分,但却是另一个关系的主码。
关系模型的完整性约束
数据库数据完整性的分类
- 实体完整性:主键存在
- 参照完整性:外键引用存在
- 用户定义完整性
实体完整性规则
参照完整性规则
用户定义的完整性
关系代数
关系的数据操纵语言按照表达式查询方式可以分为两大类:关系代数和关系演算。
关系演算是以数理逻辑中的谓词演算为基础的。
关系代数是关系操纵语言的一种传统表示方式,它是以集合代数发展起来的,但它 的运算对象和结果均为关系。关系代数也是一种抽象的查询语言,它通过对关系的运算来表达查询。
关系代数的运算分为两类:传统的集合运算和专门的关系运算。
传统的集合运算
传统的集合运算时二目运算,包括并、交、差、广义笛卡尔积4种运算。
并:
差:
交:
广义笛卡尔积:
专门的关系运算
专门的关系运算主要包括:对单个关系进行垂直分解(投影操作)或水平分解(选择操作)和对多个关系的联合(连接操作)等。
选择:又称为限制,它是在关系R种选择满足给定条件的诸元组,记作。选择运算的结果是从行的角度进行的运算,投影结果元数不变,元组数可能有变化。
投影:对关系R的投影操作,实际上是从R种选择出若干属性列组成新的关系,记作。投影运算的结果是从列的角度进行的运算,投影结果元数可能变化,元组数不变。
连接:也称为连接,它是从连个关系的笛卡尔积种选取它们的属性间满足一定条件的元组。连接中最常用的连接有两种:等值连接和自然连接。