关系数据库是支持关系模型的数据库系统。
下面简单的介绍一下关系模型。
关系模型的数据结构
关系的相关名词介绍
-
属性(Attribute):描述事物的若干特征称为属性。比如学号、姓名、职位、年龄等。
-
域(Domain):针对属性的取值范围集合。比如性别取值为男、女、学号的长度为8位等。
一般在关系数据模型中,对域加了一个限制,所有的域都是原子数据(Atomic Data)。
比如整数、字符串是原子数据,集合、数组属于非原子数据,关系模型的这种限制称为第一范式(1NF)条件。 -
目或度(Degree):R表示关系的名字,n是关系的目或度。
-
候选码(Candidate Key):如果关系中的某一属性或属性组的值能唯一的标识一个元组,称为该属性或属性组为候选码。
-
主码(Primary Key):主键,如果一个关系有多个候选码,则选定一个作为主码。
-
主属性(Prime Attribute):包含任何候选码中的属性称为主属性,不包含任何候选码的属性称为非主属性。
-
外码(Foreign Key):关系模式R中的属性或属性组非该关系的码,但他是其他关系的码,那么该属性集对关系模式R而言是外码,也称为外键。
-
全码(ALL-key):关系模型的所有属性组是这个关系模式的候选码,称为全码。
上面这一块的内容摘自:https://blog.csdn.net/xishining/article/details/109685018
关系模型要求关系必须是规范化的。
即,关系表中不允许还有表。简言之,不允许"表中有表"。
关系模型的数据操作
关系模型中的数据操作包括:
查询、删除、插入、修改。
结构化查询语言SQL是关系数据库的标准语言。
SQL是集查询、数据定义语言、数据操纵语言和数据控制语言于一体的关系数据语言。
关系模型的数据完整性约束条件
关系模型中有三类完整性约束:
-
实体完整性
实体完整性规则
若属性(指一个或多组属性)A是基本关系R的主属性,则A不能取空值。
所谓空值就是"不知道"或"不存在"或"无意义"的值。
即:主码中的属性不能取空值。如果取了空值,
就说明存在某个不可标识的实体,即存在不可区分的实体。 -
参照完整性
例:
学生(学号,姓名,专业号)
专业(专业号,专业名)
其中专业表中的专业号是主码。
学生表中的专业号是参照专业表中的专业号的,故学生表中的专业号是外码。
则学生表一个元组的值要么为空值,要么等于专业表中的主码值。
即:空值或目标关系中已经存在的值 -
用户自定义的完整性
任何关系数据库都应该支持实体完整性和参照完整性。
这是关系模型所要求的。除此之外,不同的关系数据库系统根据其应用环境的不同,
往往还需要一些特殊的约束条件。用户定义的完整性就是针对某一具体关系数据库的约束条件,
它反映某一具体应用所涉及的数据必须满足的语法要求。
其中实体完整性和参照完整性是关系模型必须满足的完整性约束条件
被称作是关系的不变性。