1. 关系模型的大体情况:
a. 关系模型建立在集合代数的基础之上,因此其数据结构的定义由集合论的方法给出;
b. 关系模型只包含单一数据结构——关系;
c. 逻辑结构上就是一张二维表,非常简单;
d. 现实中的实体以及实体之间的联系均用关系表示;
2. 域和笛卡尔积:
a. 域(Domain):具有相同数据类型的值的集合,如int、float等;
b. 笛卡尔积(Cartesian Product):是一种定义在域上的集合运算,其中D表示Domain:
D1×D2×···×Dn = {(d1, d2 ,···, dn)| di∈Di, i = 1, 2, 3,···, n}
c. 元组:Tuple,即(d1, d2 ,···, dn),称为一个n元组(n-tuple);
d. 分量:Component,即di;
e. 乘积中域可以相同;
d. 如果各域都是有限集,其Di中的基数(Cardinal number)为mi,则笛卡尔积的基数M = m1×m2×···×mn;
f. 笛卡尔积可以对应一张二维表,表中的每一行对应一个元组,每一列来自一个域;
3. 用笛卡尔积定义关系的数据结构:
a. 关系就是笛卡尔积的有限子集,即为:R(D1, D2,···, Dn),其中R为关系的名字;
b. 目/度:n就称为关系的目或度,最常见的两种关系:
单元关系/一元关系,Unary Relation
二元关系,Binary Relation
c. 关系二维表中的相关定义:
i. 由于关系是笛卡尔积的有限子集,所以也必为一张二维表;
ii. 属性(Attribute):即表中每一列的名字,由于每一列都对应一个域,而域是可以相同的,因此属性名相互之间必须不同,因此n目关系必有n中属性;
iii. 码(Key)的概念:
i. 前面已经讲过码是可以唯一标识一个实体的属性,而这里的码标识关系中符合此条件的属性,即可以唯一标识一个关系的属性;
ii. 候选码(Candidate Key):即关系中的码组(可以唯一标识一个关系元组的属性组);
iii. 主码(Primary Key):选定候选码中的一个作为主码;
iv. 主属性(Primary Attribute):作为候选码的所有属性;
v. 非主属性(Non-prime Attribute)/非码属性(Non-key Attribute):主属性外的其它属性;
vi. 全码(All-key):所有属性都是主属性;
d. 以上都是数学意义上关系的定义,并不代表实际使用中的关系的定义,比如数学上的关系对属性的顺序敏感等,而实际中并不对这一性质有什么需求;
!!!由于每一个关系都可以用唯一一张二维表来描述,因此关系可以简称为表,之后会经常用到“表“的称法;
4. 基本关系(面向实际应用):
a. 关系分为三种类型:
(1)基本关系/基本表/基表:即实际存储数据的逻辑结构表示,是实实在在的一张表,就像链表一样是一张实际的表;
(2)查询表:一定是经过查询操作所产生的结果,也是一张表,其关键字就是查询,非查询得来的表不是查询表;
(3)视图表:由基本表或视图表导出,虚表,不对应实际的存储数据;
b. 基本关系的六大性质:
a. 前两个个性质简称为”列的同质不同名“:
(1)同质(Homogeneous):每列中的分量都来自同一个域;
(2)每列对应一个属性(因此某个分量,如15岁不能成为一个属性,只能成为一个分量,而年龄才能成为一个属性),而属性之间不同名;
b. 接下来两个性质为顺序任意性:
(3)列的顺序任意:通过属性不同名(即每列不同名)的方式改变笛卡尔积不满足交换律的性质,这符合实际需要;
(4)行的顺序任意:即元组顺序任意;
c. 主码互斥性质:
(5)任意两个元组的主码的值不能相等,否则和主码唯一标识一个元组的定义相矛盾;
d. 范式(Normal Form)的基本——禁止”表中表“:
(6)分量必须为原子量,不可再分为其它关系二维表;
注:范式就是规范化(Normalization)的关系,规范化要求关系满足一些基本条件以避免一些在关系操作中出现一些致命的错误;
!!注意:实际关系数据库产品中有些并不完全支持以上6条性质,有些对行和列的顺序敏感等;
5. 关系模式:
a. 即Relation Schema,是对关系的描述,即对关系集合中所有关系的一种整体抽象,即表示出关系的共性;
b. 在关系数据库中,关系模式是型,关系是值;
c. 关系模式的五大要素:
(1)R:关系名;
(2)U:关系中所有属性组成的集合;
(3)D:关系中属性所来自的各个域的集合,通常称为属性的类型;
(4)DOM:及属性向域的映射,通俗讲就是每个属性都来自哪个域,形式上记为DOM(Attribute) = Domain,通常将DOM称为属性的长度;
(5)F:属性间(可以是同一个关系的属性间,也可以是不同关系中的属性间)的依赖关系集合,其可以将属性所表示的分量的值限定在有效范围内,以保证数据的完整性;
d. 关系模式的记法:
i. 完整:R(U, D , DOM, F);
ii. 简记:通常只指明关系的属性,R(U)或R(A1, A2,···, An),A表示各个Attribute;