在数据模型的发展过程中,主要有4种数据模型:层次模型、网状模型、关系模型和面向对象模型。当前主流的数据模型就是关系模型,其它非关系的数据模型也添加了关系的接口。
一般情况,探讨数据模型时,要探讨其三方面的知识:数据模型的数据结构、数据模型允许的操作类型和定义在数据模型上的数据约束。
1、关系数据模型概述
1970年美国IBM公司San Jose研究室的研究员E.F.Codd首次提出了数据库系统的关系模型,开创了数据库的关系方法和关系数据理论的研究,为数据库技术奠定了理论基础。由于E.F.Codd的杰出工作,他于1981年获得ACM图灵奖。
20世纪80年代以来,计算机厂商新推出的数据库管理系统几乎都支持关系模型,非关系系统的产品也大都加上了关系接口。数据库领域当前的研究工作也都是以关系方法为基础。
关系模型由关系数据结构、关系操作集合和关系完整性约束三部分组成的。
2、关系数据模型的数据结构
从用户的角度来看,关系数据模型的数据结构就是一张二维表。如下图:
在这个二维表中,表头的每一项即为关系的属性。
一个关系中若有n个属性,则称关系为n元关系。
二维表中的每一条记录称为关系的元组。
关系中每个属性的值必须是同质的(取值范围相同、含义相同、数据类型相同)。
关系中不允许有相同的属性;
关系中的每个属性必须是原子的,即关系中的每个属性不允许再分出子属性;
关系中不允许有完全相同的两个元组;
关系中的列序无关(即属性谁在前,谁在后,理论上无所谓);
关系中的行序无关(即哪个元组在前,哪个元组在后,理论上无所谓)。
在描述一个关系时,通常使用下面的格式来描述:
关系名(属性1,属性2,......)
这称之为一个关系的模式。
3、关系数据模型的操作
关系模型的数据操作主要包括查询和更新(更新又包括插入、修改和删除三部分)两大部分。
关系运算的运算对象和运算结果都是关系。
从关系代数的角度来讲,关系模型的数据操作包括并(Union)、交(Intersection)、差(Difference)和笛卡尔积(Extended cartesian product);
除此之外,还包括关系专门的数据操作:选择(Select)、投影(Project)、连接(join)和除(Divide)。
4、关系数据模型的完整性约束
关系模型中定义了三类完整性约束:实体完整性、参照完整性和用户定义的完整性。其中实体完整性和参照完整性是关系模型必须满足的完整性约束条件。
(1)实体完整性规则:若属性A是基本关系R的主属性,则属性A不能取空值,且取值必须是唯一的(不能有重复的值)。
实体完整性规则规定基本关系的所有主属性都不能取空值,而不仅是主码整体不能取空值。
所谓空值就是“不知道”或“无意义”的值。如果主属性取空值,就说明存在某个不可标识的实体,即存在不可区分的实体。
(2)参照完整性规则:若属性(或属性组)F是基本关系R的外码,它对于基本关系S的主码K相对应(基本关系R和S不一定是不同的关系),则对于R中的每个元组在F上的值必须为:或者取空值(F的每个属性值均为空值);或者等于S中某个元组的主码值。
(3)用户定义的完整性就是针对某一具体关系数据库的约束条件。例如某属性的取值不能为空值、性别的取值为“男”或“女”;某属性的值应为0-100等。
新闻热点
疑难解答