官术网_书友最值得收藏!

1.2.2 關(guān)系運(yùn)算

關(guān)系運(yùn)算是對(duì)關(guān)系數(shù)據(jù)庫的數(shù)據(jù)操縱,主要是從關(guān)系中查詢需要的數(shù)據(jù)。關(guān)系的基本運(yùn)算分為兩類,一類是傳統(tǒng)的集合運(yùn)算,包括并、交、差等;另一類是專門的關(guān)系運(yùn)算,包括選擇、投影、連接等。關(guān)系運(yùn)算的操作對(duì)象是關(guān)系,關(guān)系運(yùn)算的結(jié)果仍然是關(guān)系。

1.傳統(tǒng)的集合運(yùn)算

傳統(tǒng)的集合運(yùn)算要求兩個(gè)關(guān)系的結(jié)構(gòu)相同,執(zhí)行集合運(yùn)算后,得到一個(gè)結(jié)構(gòu)相同的新關(guān)系。

對(duì)于任意關(guān)系R和關(guān)系S,它們具有相同的結(jié)構(gòu)即關(guān)系模式相同,而且相應(yīng)的屬性取自同一個(gè)域。那么,傳統(tǒng)的集合運(yùn)算定義如下。

1)并

R并S,R或S兩者中所有元組的集合。一個(gè)元組在并集中只出現(xiàn)一次,即使它在R和S中都存在。

例如,把學(xué)生關(guān)系R和S分別存放2個(gè)班的學(xué)生,把一個(gè)班的學(xué)生記錄追加到另一個(gè)班的學(xué)生記錄后邊,進(jìn)行的是并運(yùn)算。

2)交

R交S,R和S中共有的元組的集合。

例如,有參加計(jì)算機(jī)興趣小組的學(xué)生關(guān)系R和參加象棋興趣小組的學(xué)生關(guān)系S,求既參加計(jì)算機(jī)興趣小組又參加象棋興趣小組的學(xué)生,就要進(jìn)行交運(yùn)算。

3)差

R差S,在R中而不在S中的元組的集合。注意R差S不同于S差R,后者是在S中而不在R中的元素的集合。

例如,有參加計(jì)算機(jī)興趣小組的學(xué)生關(guān)系R和參加象棋興趣小組的學(xué)生關(guān)系S,求參加了計(jì)算機(jī)興趣小組但沒有參加象棋興趣小組的學(xué)生,就要進(jìn)行差運(yùn)算。

2.專門的關(guān)系運(yùn)算

1)選擇

從關(guān)系中找出滿足條件元組的操作稱為選擇。選擇是從行的角度進(jìn)行運(yùn)算的,在二維表中抽出滿足條件的行。例如,在學(xué)生成績的關(guān)系1中找出“一班”的學(xué)生成績,并生成新的關(guān)系2,就應(yīng)當(dāng)進(jìn)行選擇運(yùn)算,如圖1.16所示。

2)投影

從關(guān)系中選取若干個(gè)屬性構(gòu)成新關(guān)系的操作稱為投影。投影是從列的角度進(jìn)行運(yùn)算的,選擇某些列的同時(shí)丟棄了某些列。例如,在學(xué)生成績的關(guān)系1中去除掉成績列,并生成新的關(guān)系2,就應(yīng)當(dāng)進(jìn)行投影運(yùn)算,如圖1.17所示。

圖1.16 選擇運(yùn)算

圖1.17 投影運(yùn)算

3)連接

連接指將多個(gè)關(guān)系的屬性組合構(gòu)成一個(gè)新的關(guān)系。連接是關(guān)系的橫向結(jié)合,生成的新關(guān)系中包含滿足條件的元組。例如關(guān)系1和關(guān)系2進(jìn)行連接運(yùn)算,得到關(guān)系3,如圖1.18所示。在連接運(yùn)算中,按字段值相等執(zhí)行的連接稱為等值連接,新關(guān)系中重復(fù)字段只出現(xiàn)一次的連接稱為自然連接,如圖1.19所示。自然連接是一種特殊的等值連接,是去掉重復(fù)字段的連接,是構(gòu)造新關(guān)系的有效方法,是最常用的連接運(yùn)算。

圖1.18 連接運(yùn)算

圖1.19 自然連接運(yùn)算

主站蜘蛛池模板: 白朗县| 凯里市| 博乐市| 盐源县| 社会| 常山县| 通许县| 新余市| 湘西| 平昌县| 樟树市| 郧西县| 从化市| 合江县| 邛崃市| 宣城市| 五大连池市| 罗山县| 奉新县| 香港 | 台江县| 治多县| 德保县| 开原市| 中江县| 奎屯市| 榆树市| 江北区| 盐源县| 莎车县| 平度市| 蒲江县| 平昌县| 康马县| 收藏| 如皋市| 上高县| 临朐县| 昭觉县| 吴川市| 喜德县|