在關係理論中,屬性(attribute)由名稱和型別構成,屬性的集合稱為標題(heading)。下圖中的標題有兩個屬性,分別是【學號/nvarchar(50)】和【姓名/nvarchar(50)】。 標題的屬性數目稱為標題的度(degree),下圖中的標題度為 2。
用標題的每個屬性產生乙個值,這些值的集合就是元組(tuple),這些值稱為元組的分量(component),上圖中有兩個元組。元組中分量的數目稱為元組的度,圖中兩個元組的度都為 2,因此稱為二元組。兩個元組相等,當且僅當他們的標題相等,且每個屬性的分量相等。
元組的集合稱為主體(body)。
標題和主體構成關係(relation)。在關係中,標題和主體的概念都依照數學上的集合論進行定義,因此,標題中沒有重複的屬性,且屬性之間沒有順序;主體中沒有重複的元組,且元組之間沒有順序。下圖和上圖是同乙個關係,差別僅僅在於圖的畫法不同。
關係型資料庫是基於關係理論的。不嚴格的講,表相當於關係,列相當於屬性,行相當於元組。但是,表中的列和行都是有順序的,並且允許重複的行存在。
關係的標題是陳述事實的模板(謂詞),上面的兩幅圖中,標題的含義可以解釋成:
存在學生____,其學號為____
把元組代入模板後得到的是對一件事情的陳述(命題)。圖中兩個元組代表的命題分別陳述了兩件事:
存在學生張三,其學號為 s01
存在學生李四,其學號為 s02
命題有真假之分,閉合世界假定是說,在特定時刻,凡是出現在關係主體中的命題都是真命題,凡是沒有出現在關係主體中的命題都是假命題。閉合世界假定不是關係理論,而是設計理論。在閉合世界假定下,圖中的學校只有兩個學生,沒有第三個。
陣列和鍊錶的關係
c 語言中可以用陣列處理一組資料型別相同的資料,但不允許動態定義陣列的大小,即在使用陣列之前必須確定陣列的大小。而在實際應用中,使用者使用陣列之前有時無法準確確定陣列的大小,只能將陣列定義成足夠大小,這樣陣列中有些空間可能不被使用,從而造成記憶體空間的浪費。鍊錶是一種常見的資料組織形式,它採用動態分...
雜湊表長度和素數的關係
2長度是否要是素數,能不能是合數,這個問題大家的意見得不到統一。支援用素數的人的理由是,素數可以使得雜湊的分布更加均勻。hash k mix k mod m 雜湊計算中,求餘往往是最後一步,因為沒有機器擁有無限的記憶體,所以必須把結果放入到有限的桶 bucket 中。求餘前的運算,假如混淆 mix ...
演示用sql 指令碼 建立表和關係
use pubs go 類別表 drop table category create table category categoryid int identity primary key category varchar 50 categorydesc varchar 250 insert into...