关系代数

来源:互联网 发布:windows rt 8.1越狱 编辑:程序博客网 时间:2024/05/01 12:01

一、逻辑模型种类

层次模型、网状模型、关系模型

 

二、关系数据联系种类

1.一元联系

2.二元联系

3.三元联系

 

三、二元联系分类

1.  1:1       一对一

2.  1:N      一对多

3.  M:N     多对多

 

四、关系代数

3.1、传统的集合操作:

          3.1.1 并 Union R∪S={t|t∈R∪t∈S}  t是元组变量, R和S的元数相同

          3.1.2 交 Intersection R∩S={t|t∈R∩t∈S}  R和S的元数相同

          3.1.3 差 Difference  R-S={t|t∈R∩t 不属于 S}  R和S的元数相同

          3.1.4 对称差  RS ={t|(t∈R∪t∈S)∩t不属于R∩S} 或者(A ∪B) − (A ∩B) 

          3.1.5 笛卡尔积(乘法) Cartesian Product  R×S={t|t=<t^r,t^s> ∩ t^r∈R∩ t^s∈S}

          3.1.6 笛卡尔积的逆运算(除法 Division)

          设关系R和S的元数分别为r和s(r>s>0),那么R÷S是一个(r-s)元的元组集合,R÷S是满足下列条件的最大关系:其中每个元组t与S中每个元组u组成的新元组<t, u>必在关系R中。

          R÷S的具体计算过程如下:

          (1)  T=π1,2,...r-s(R)

          (2)  W=(T×S)-R(计算T×S中不在R的元组)

          (3)  V=π1,2,...r-s(W)

          (4)   R÷S=T-V

3.2、扩充的关系操作:

          3.2.1 对关系进行垂直分割(投影 Projection)

          3.2.2 对关系进行水平分割(选择 Selection)

          3.2.3 关系的结合

                    3.2.3.1 连接(Join)  是从关系R×S中选取属性值满足某一θ操作的元组,如果θ是"=" ,该连接操作是等值连接。实际上连接是由笛卡儿积和选择操作组合而成

                    3.2.3.2 自然连接(Natural join) 具体操作如下:

                                 (1)  R×S

                                 (2)  设R和S的公共属性是A1,...,An,选择R×S中满足R.A1=S.A1,...,R.An=S.An的那些元组

                                 (3)  去掉S.A1,....,S.An这些列,即公共属性只出现一次

3.3、关系代数的两个扩充操作

          3.3.1 外连接(Outer Join) 如果R和S做自然连接时,把原该舍弃的元组也保留在新关系中,同时在这些元组新增加的属性上填上空值(Null)

                    3.3.1.1 左外连接(Left Outer Join) 只把R中原该舍弃的元组放到新关系中,新关系中增加的S的属性填上空值(Null)

                    3.3.1.2 右外连接(Right Outer Join) 只把S中原该舍弃的元组放到新关系中,新关系中增加的R的属性填上空值(Null)

          3.3.2 内连接(Inner Join) 相当于连接中的等值连接

          3.3.3 外部并(Outer Union)

                    前面定义两个关系的并操作时,要求R和S具有相同的关系模式,如果R和S的关系模式不相同,构成的新关系的属性由R和S的所有属性组成(公共属性只取一次),新关系的元组由属于R或属于S的元组构成,同时元组在新增的属性上填上空值(Null).

 

 

 

原创粉丝点击