T-SQL基礎教程:集合理論

來源:互聯網
上載者:User

   集合理論是由數學家Georg Cantor建立的,這是一個基於關聯式模式的數學分支。Cantor的集定義如下:

  集合,我們的意思是:任意集合體M是我們感知或想到的,能夠確定的、互異對象m(稱之為M的元素)的整體。

  ──Joseph W. Dauben和Georg Cantor(普林斯頓大學出版社,1990年)

  定義中的每個字都有著深刻和重要意義。集合定義和集合從屬關係是無需證明的公理,宇宙中的每個元素要麼是集合成員,要麼不是集合成員。

  讓我們從Cantor定義中的每個詞開始。一個“集合”應將其視為單個實體,你的焦點應該放在對象的集合上,而不是組成集合的單個對象上。然後,當你對資料庫中的表(如僱員表)編寫T-SQL查詢時,你應該將僱員的集合看作是一個整體,而不是單個的僱員。這聽起來可能並不重要並且很簡單,但顯然很多程式員很難採用這種思維方式。

  “互異”這個詞的含義是指集合中的每個元素必須是唯一的。跳躍到資料庫中的表,你可以通過定義鍵約束來強製表中行的唯一性。沒有鍵的話,你就不能唯一地標識行,因此表也就不能取得“集合”資格。相反,該表將是一個多重集合或是一個無序的單位組。

  “我們感知或想到的”這句話意味著集合的定義是主觀的。思考一下教室:一個人可以被認為是“人”的集合,也有可能被認為是“學生”或“教師”的集合。因此,在定義集合方面你具有很大的自由度。當你為資料庫設計資料模型時,設計過程應仔細考慮應用程式的主觀需求,從而為相關實體確定恰當的定義。

  至於“對象”,集合的定義不是限制為像汽車或僱員這樣的物理對象,而是相關的抽象對象,如質數或線條。

  Cantor的集合定義省略掉的內容很可能像所包含的內容一樣重要。請注意,定義中沒有提到集合元素間的任何順序,集合元素的列出順序並不重要。列出集合元素的正式標記符號是使用大括弧:{a、b、c}。因為與順序無關,你可以使用{b, a, c}或{b, c, a}表示同一集合。跳躍到屬性(SQL中稱之為列)集合,它們組成了關係(SQL中稱之為表)的表頭,元素應該是按名稱標識──而不是按順序位置標識。

  同樣,思考一下元組(SQL中稱之為行)的設定,它們構成了關係的主體,元素由其索引值進行標識,而不是按位置標識。許多程式員很難適應這種觀念,對於查詢表而言,行之間沒有順序。換句話說,對錶的查詢可以按任意順序返回表中的行,除非你基於特定展現目的,明確要求資料以特定方式的進行排序。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.