- 相關推薦
集合理論T-SQL基礎教程
集合理論是由數學家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中稱之為行)的設置,它們構成了關系的主體,元素由其鍵值進行標識,而不是按位置標識。許多程序員很難適應這種觀念,對于查詢表而言,行之間沒有順序。換句話說,對表的查詢可以按任意順序返回表中的行,除非你基于特定展現目的,明確要求數據以特定方式的進行排序。
【理論T-SQL基礎教程】相關文章:
關于ps的基礎教程07-05
聲樂的入門基礎教程05-18
PHP入門基礎教程大全10-28
美甲彩繪基礎教程09-29
手繪基礎教程:素描靜物09-06
紋繡入門基礎教程08-10
美甲的相關基礎教程步驟08-30
初學雙排溜冰基礎教程08-16
街舞滑步基礎教程匯總09-07
單反相機基礎教程08-18