1970年,E.F.Codd在美国计算机学会会刊《Communications of the ACM》上发表了“A Relational Model of Data for Shared Data Banks”的论文,开创了数据库系统的新纪元。
一、关系模型结构
(一)基本概念
域(domain)u
笛卡儿积
关系(二维表)
码:候选码、主码
主属性 非主属性 非码属性 全码
(二)基本关系的六个性质
列是同质的
不同列可出自同一个域
列不影响关系的值和性质,列的次序可以任意交换。
行不影响关系的值和性质,行的次序可以任意交换。
任意两个元组的候选码不能取相同的值
分量必须取原子值(不可再拆分),关系的每个分量必须是一个不可分的数据项。
(三)关系模式 R(U,D,DOM,F)
R为关系名
U为组成该关系的属性名集合
D为U中属性来自的域
DOM为属性向域的映像集合
F为属性间数据的依赖关系集合
二、关系的完整性约束
(一)实体完整性
1.实体完整性规则 若属性或属性组A是基本关系R的主属性,则A不能取空值。空值是“不知道”、“不存在”、“无意义”的值。
2.规则如下
2.1实体完整性规则是针对基本关系而言的,一个基本表通常对应现实世界的一个实体集。
2.2现实世界中的实体是可区分的,即他们具有某种唯一性标识。
2.3关系模型中以主码作为唯一标识符。
2.4主码中的属性即主属性不能取空值。
(二)参照完整性
1.参照完整性 设F是基本关系R的一个或一组属性,但不是关系R的码,KS是基本关系S的主码,如果F与KS相对应,则称F是R的外码(foreign key),并称基本关系R为参照关系(referencing relation),基本关系S为被参照关系(referenced relation)或目标关系(target relation)。
2.参照完整性规则
若属性(或属性组)F是基本关系R的外码,它与基本关系S的主码KS相对应(基本关系R和S不一定是不同的关系),则对于R中每个元组在F上的值必须:
2.1或取空值(F的每个属性值均为空值)
2.2或等于S中某个元组的主码值
(三)用户定义的完整性
用户定义完整性是针对某一具体关系数据库的约束条件,它反映某一具体应用所涉及的数据必须满足的语义要求。