第二章 关系数据库
2.1 关系数据结构及形式化定义
关系:关系数据模型的数据结构中数据的逻辑结构就是一张扁平的二维表。
域:一组有相同数据类型的值得集合。
笛卡尔积:给定一 组域D1, D2, … Dn, 允许其中某些域是相同的,D1, D2, … Dn,的笛卡儿积为
D1xD2x…xDn,= {(d, d2, … dn) | d;∈D; i=1, 2, … n}
其中,每一个元素(d, d2, … dn)叫作一个n元组(n-tuple), 或简称元组(tuple)。 元素中的每一个值dx叫做个 分量( component)。
候选码:某一组属性能唯一的标识一个元组,而其子集不能。
主码:若一个关系有多个候选码,选定一个为主码。
关系可以分为三个类型:基本关系、查询表、视图表。
2.2 关系操作
关系模型中常用的关系操作:查询操作(query)和插入(insert)、删除(delete)、修改(update)操作。
查询操作:选择(select)、投影(project)、连接(jion)、并(union)、交(intersection)、除(divide)、差(except) 五中基本操作。
结构化查询语言:SQL。
关系的完整性
关系模型三种完整性约束:实体完整性(entity-integrity)、参照完整性(referential-integrity)、用户自定义完整性(user-defined integrity)。
-
实体完整性规则:若属性A是基本关系R的主属性,则A属性不能取空值(Null value)。
-
参照完整性的定义:设F是基本关系R的一个或一组属性,但不是关系R的码,Ks是基本关系S的主码。如果F和Ks相对应,则称F是R的外码(foreign key)
参照完整性规则:若属性(或属性组) F是基本关系R的外码,它与基本关系S的主码K,相对应(基本关系R和S不一定是不同的关系),则对于R中每个元组在F上的值必须:
●或者取空值(F的每个属性值均为空值);
●或者等于S中某个元组的主码值; -
用户自定义完整性:针对某一具体关系数据库的约束条件。