数据库系统概论—除运算的理解

        之前学数据库都只是感觉单纯在学习Sql而已,而sql语法又符合英语的语法,所以并没有觉的难学,直到翻开教材的那一次,各种概念术语搞得我甚是头疼。

        闲话少说!众所周知,除运算是整个代数运算中最难理解的运算,没有之一。小编也是在学习这块内容的时候绞尽脑汁,在学习除运算之前,先引出象集的概念

    通俗来说:象集就是有两个不相交的属性集A,B;属性集A取特定的属性值为x所对应的组元在属性集B上的投影;简单来说就是左边A中取一个值,对应右边B中每一行所能取的属性值的集合——即为象集。

教材定义:
    给定一个关系R(X,Z),X和Z为属性组。当t[X]=x时,x在R中的象集(images set)定义为
                        Zx={ t[Z] | t ∈ A,t[X]=x }
    他表示R中属性组X上值为x的诸元素组在Z上分量(对应属性值)的集合。

例子:
        X  Y  Z
        a1 b1 c2
        a2 b3 c7
        a3 b4 c6
        a1 b2 c3
        a4 b6 c6
        a2 b2 c3
        a1 b2 c1

a1在A中的象集为{(b1,c2),(b2,c3),(b2,c1)}

那什么是除运算呢?

以下是书上除运算的定义:

设关系R除以关系S的结果为关系T,则T包含所有在R但不在S中的属性及其值,且T的元组与S的元组的所有组合都在R中。

给定关系R(X,Y)和S(Y,Z),其中X,Y,Z为属性组。R中的Y与S中的Y可以有不同的属性名,但必须出自相同的域集。
    R与S的除运算得到一个新的关系P(X),P是R中满足下列条件的元组在X属性列上的投影:元组在X上分量值x的象集Yx包含S在Y上投影的集合。

猜你喜欢

转载自blog.csdn.net/WICHER_WU/article/details/101617009