資料庫文章翻譯

來源:互聯網
上載者:User

標籤:期望   cin   重複   使用   研究生   依賴   不同的   concepts   ons   

關係運算

   所有的程式關係都為查詢語言提供了一組可以用來表示單個或多個關係的操作。這些操作具有良好並受到較高期望的屬性,能實現其結果有唯一的對應關係。

這些操作還可以用模板化的方式組合當中的幾個操作。確切的說,因為查詢結果本身就是一種關係,關係操作也可用於查詢結果以及定義所給的關係。

    具體的關係操作根據語言的不同而有所不同,但是適合我們在本節中描述的通用架構。在第三章中,我們用特定的方式動作表示SQL。

最常見的操作是從單個關係(比作教師)中選擇特定的元組,這些元組滿足某些特定的謂詞(比作$8.5萬美元)。其結果是一個新的關係,它是原始關係(教師)的一個子集。例如,如果我們從圖2.1的教師關係中選擇元組,滿足謂詞“薪水大於$85000”,我們得到2。10所示的結果。

編號

姓名

部門

工資

12121

22222

33456

83821

Wu

Einstein

Gold

Brandt

金融

物理

物理

Comp.Sci

90000

95000

87000

92000

 

另一個常見的操作是從一個關係中選擇某些屬性(列)。結果是只有那些選擇的屬性的新關係。例如,假設我們想要一個教師編號和薪水的列表,正2.11所示,具有兩個屬性,分別為姓名和薪水,就不需要從圖2.1的教師關係表中列出姓名和部門的名稱值,其中結果的每個元組都來自於教師關係表的一個元組,但是其只包含所顯示選定的元組的屬性。

串連操作允許兩個關係的合并,合并對元組,一個從每個關係,到一個單一的元組。有許多不同的方式加入關係(如我們在第3章中所見)。圖2.12顯示了一個例子,從教師和部門表中加入了元組,新的元組顯示了她在工作中的每一個老師和部門的資訊。這一結果是通過將每一個元組與在該系關係中的元組中的教師關係中的元組組成。

編號

工資

10101

12121 

15151

22222

32343

33456

45565

58583

76543

76766

83821

98345

 

65000

90000

40000  

95000  

60000 

87000  

75000  

62000  

80000 

72000  

92000 

80000

 

                                                                                                                                                                         圖2.11查詢教練關係選擇屬性ID和工資的結果

編號

姓名

工資

部門

建築物

預算

10101

12121

15151

22222

32343

33456

45565

58583

76543

76766

83821

98345 

Srinivasan

WU

Mozart

Einstein

ElSaid

Gold

Katz

Califieri

Singh

Crick

Brandt

Kim

 

65000

90000

40000

95000

60000

87000

75000

62000

80000

72000

92000

80000

電腦科學

財政

音樂

物理學

曆史

物理學

電腦科學

曆史

財政

生物

電腦科學

電子工程

Taylor

Painter

Packard

Watson

Painter

Watson

Taylor

Painter

Painter

Watson

Taylor

Taylor

 

100000

120000

80000

70000

50000

70000

100000

50000

120000

90000

100000

85000

                                                                                                                                                                              圖2.12對教師和部門的關係自然串連的結果。

2.12所示的聯結形式,稱為自然串連,從教練關係元組匹配元組ID部門關係

他們的部門屬性是相同的。所有這樣的匹配對元組都存在於聯結結果中。一般來說,在兩個關係的自然串連運算匹配元組的值,是所有的屬性名稱相同對兩者的關係。

笛卡爾產品運算結合了兩種關係中的元組,但不像串連操作,它的結果包含兩個關係中的所有元組,不管它們的屬性值是否匹配。

因為關係式集合,所以我們可以對關係進行正常的集合操作。Union操作執行兩個“相似結構”表的集合(比如一張所有研究生的桌子和一張本科生的桌子)。例如,一個部門可以獲得所有學生的集合。另一組操作,例如交叉和設定差異也可以進行。

如前面所提到的,我們可以對查詢結果執行操作。例如,如果我們想找到那些薪水超過$85.000工資的教師的身份證,我們將在樣本中執行以上兩個操作。首先,我們從教師關係中選擇這些元組薪水大於$85.000。然後從結果中選擇ID和薪水兩個屬性。結果為2.13所示的關係,該關係由ID組成。

編號

工資

12121

22222

33456

83821

90000

95000

87000

92000

 

圖2.13的結果是選擇具有更高薪水的教師的屬性ID和薪水超過$58.000。

關係代數

關係代數定義了一組操作,平行的通常的代數。列如加,減或乘。這些數字運算。正如代數運算的數量,把一個或多個數字輸入和輸出返回一個數,關係代數運算通常以一個或兩個關係作為輸入並返回一個關係。

代數運算包含第六章的一些細節,但是我們概括了以下的一些操作要點。

符號(名稱)

使用的執行個體

選擇的項目

工資》=85000

 

返回行的輸入關係滿足預測

 

從所有行中輸出指定的屬性

輸入關係。重複資料刪除的元組

從輸出。

自然的加入

從兩個輸入的關係,具有相同的值的所有屬性的行輸出對

同名的。

笛卡爾積

從兩個輸入中輸出所有行對

關係(不管他們是否

在公用屬性上具有相同的值

聯合

從兩個輸入輸出元組的聯盟

關係.

薪酬。在這個例子中,我們可以在其中執行操作。秩序,但情況並非如此,我們將看到,有時,一個查詢的結果中包含重複元組。例如,如果我們從講師關係中選擇部門名稱屬性,幾個案例重複,包括“合并”。“Sci,”它出現了三次。某些關係語言嚴格地依賴於集合的數學定義並移除。重複。其他,考慮到相對大量的處理需要從結果關係中重複資料刪除,保留。在這後一種情況,關係並不是真正的數學關係,術語感。

當然在資料庫中的資料必須要修改好多次,一種關係能夠被一種新的可選擇的元組所更新,刪除現有的元組,或是更改某些屬性的值。整個關係可以刪除和建立。

我們將討論關係查詢和更新使用SQL語言從第三章到底五章。

 

 

 

 

****選自《DATABASE SYSTEM CONCEPTS》2.6 Relational Operations

Abraham Silberschatz

      Henry F. Korth

      S. Sudarshan

資料庫文章翻譯

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.