|
|
在现实世界中,要描述一个事物,常常取其若干特征来表示。这些特征称为属性。每个属性的取值范围的集合,称为该属性的域。
|
|
|
一般在关系数据库模型中,对域还加了一个限制,所有的域都应是原子数据的集合。关系数据模型的这种限制称为第一范式(1NF)条件。如果关系数据模型突破了1NF的限制,则称为非1NF的。
|
|
|
|
【定义9-1】设D1,D2,…,Dn为任意集合,定义D1,D2,…,Dn的笛卡儿积为
|
|
|
D1×D2×…×Dn={(d1,d2,…,dn)|di∈Di,i=1,2,…,n}
|
|
|
其中,每一个元素(d1,d2,…,dn)叫做一个n元组,元组的每一个值di叫做元组的一个分量,若Di(i=l,2,…,n)为有限集,其基数为mi(i=1,2,…,n),则D1×D2×…×Dn的基数M为
|
|
|
|
|
【定义9-2】D1×D2×…×Dn的子集叫做在域D1,D2,…,Dn上的关系,记为
|
|
|
|
|
由定义7-2可以得出,一个关系也可以用二维表来表示。关系中属性的个数称为元数,元组的个数称为基数。
|
|
|
|
|
(1)目或度。常用R表示关系的名字,n表示关系的目或度。
|
|
|
(2)候选码。若关系中的某一属性或属性组的值能唯一标识一个元组,则称该属性或属性组为候选码。
|
|
|
(3)主码。若一个关系有多个候选码,则选定其中一个为主码。
|
|
|
(4)主属性。包含在任何候选码中的诸属性称为主属性。不包含在任何候选码中的属性称为非码属性。
|
|
|
(5)外码。如果关系模式R中的属性或属性组非该关系的码,但它是其他关系的码,那么该属性集对关系模式R而言是外码。
|
|
|
(6)全码。关系模式的所有属性组是这个关系模式的候选码,称为全码。
|
|
|
|
|
(1)基本关系(通常又称为基本表、基表)。这是实际存在的表,它是实际存储数据的逻辑表示。
|
|
|
|
(3)视图表。这是由基本表或其他视图表导出的表。由于它本身不独立存储在数据库中,数据库中只存放它的定义,所以常称为虚表。
|
|
|
|
在数据库中要区分型和值。关系数据库中的型也称为关系数据库模式,是关系数据库结构的描述,它包括若干域的定义以及在这些域上定义的若干关系模式。关系数据库的值是这些关系模式在某一时刻对应的关系的集合,通常称之为关系数据库。
|
|
|
【定义9-3】关系的描述称为关系模式。可以形式化地表示为
|
|
|
|
式中:R为关系名;U为组成该关系的属性名集合;D为属性的域;dom为属性向域的映像集合;F为属性间数据的依赖关系集合。
|
|
|
|
|
式中:R为关系名;A1,A2,…,An为属性名或域名,属性向域的映像常常直接说明属性的类型、长度。通常在关系模式主属性上加下划线表示该属性为主码属性。
|
|
|
|
完整性规则提供了一种手段来保证当授权用户对数据库作修改时不会破坏数据的一致性,因此,完整性规则防止的是对数据的意外破坏。关系模型的完整性规则是对关系的某种约束条件。完整性共分为3类,即实体完整性、参照完整性(也称引用完整性)和用户自定义完整性。
|
|
|
(1)实体完整性。规定基本关系R的主属性A不能取空值。
|
|
|
(2)参照完整性。现实世界中的实体之间往往存在某种联系,在关系模型中实体与实体之间的联系是用关系来描述的,这样自然就存在着关系与关系间的引用。参照完整性规定,若F是基本关系R的外码,它与基本关系S的主码相对应(基本关系R和S不一定是不同的关系),则对于R中每个元组在F上的值必须为:或者取空值(F的每个属性值均为空值),或者等于S中某个元组的主码值。
|
|
|
(3)用户自定义完整性。就是针对某一具体的关系数据库的约束条件,反映某一具体应用所涉及的数据必须满足的语义要求,由应用的环境决定。
|
|
|
|
关系操作的特点是操作对象和操作结果都是集合,而非关系数据模型的数据操作方式则为一次一个记录的方式。关系数据语言分为3类,即关系代数语言、关系演算语言和具有关系代数和关系演算双重特点的语言(如SQL)。关系演算语言包括元组关系演算语言和域关系演算语言。
|
|
|
关系代数语言、元组关系演算和域关系演算是抽象查询语言,它与具体的DBMS中实现的实际语言并不一样,但是可以用它作为评估实际系统中的查询语言能力的标准。
|
|
|
关系运算符有4类,即集合运算符、专门的关系运算符、比较算术符和逻辑运算符。关系运算符如下表所示。
|
|
|
|
|