數(shù)據(jù)庫系統(tǒng)2-2:關(guān)系的定義

字號:

從集合的角度上給出關(guān)系數(shù)據(jù)結(jié)構(gòu)的定義。
    定義1:集合元素的取值范圍稱為域,記為D(Domain)。所以域是值的集合,是一組具有相同數(shù)值類型的值的集合。
    定義2:一組域D1,D2,D3,......Dn 的笛卡兒積為D1XD2XD3X......XDn={(d1,d2,d3,……dn)| di?Di ,i=1,2,3,…n},其中每個元素(d1,d2,d3,……dn)稱為一個元組(tuple),有n個元素,稱為n元組,元組中的每個值di 叫做分量。
    若Di(i=1,2,3……n)為有限集,其基數(shù)為mi=|Di|,則D1XD2XD3X......XDn的基數(shù)M為
    例如D1、D2、D3 三個域分別為:
    D1為學(xué)生集合={李明、王平、林麗娟}
    D2為課程集合={英語、高數(shù)、政治}
    D3為成績集合={合格、不合格}
    則D1、D2、D3的笛卡兒積為:
    D1XD2XD3={(李明,英語,合格),(李明,英語,不合格),
     ?。ɡ蠲?,高數(shù),合格),(李明,高數(shù),不合格),
     ?。ɡ蠲?,政治,合格),(李明,政治,不合格),
     ?。ㄍ跗?,英語,合格),(王平,英語,不合格),
     ?。ㄍ跗?,高數(shù),合格),(王平,高數(shù),不合格),
     ?。ㄍ跗剑?,合格),(王平,政治,不合格),
    ?。蛀惥辏⒄Z,合格),(林麗娟,英語,不合格),
    ?。蛀惥?,高數(shù),合格),(林麗娟,高數(shù),不合格),
     (林麗娟,政治,合格),(林麗娟,政治,不合格)}
    D1XD2XD3的基數(shù)為:
    | D1XD2XD3|= |D1|X|D2|X|D3|=3 X 3 X 2=18,一共有十八個元素,每個元素為一個元組,每個元組分別包含學(xué)生姓名、課程名稱、成績?nèi)齻€分量。
    定義3:笛卡兒積的子集叫做關(guān)系。如D1XD2XD3X......XDn的子集叫做域D1,D2,D3,......Dn上的關(guān)系,表示為 R(D1,D2,D3,......Dn)
    其中R為關(guān)系的名稱,n為關(guān)系的目或度。當(dāng)n=1時稱為一元關(guān)系,當(dāng)n=2時稱為二元關(guān)系。
    無限關(guān)系在數(shù)據(jù)庫系統(tǒng)中是無意義的,所以關(guān)系必須是笛卡兒積的有限子集。它對應(yīng)一張二維表,表中的每一行對應(yīng)一個元組,表中的每一列對應(yīng)一個域,給每一列起一個名字,稱為屬性名。n目關(guān)系必須有n個屬性名。由于笛卡積不滿足交換律,根據(jù)定義,(d1,d2,d3,……dn) ≠(d2,d1,d3,……dn)。當(dāng)我們給每列附加一個屬性名后,關(guān)系元組的有序性便可取消,即(d1,d2,d3,……dn)= (d2,d1,d3,……dn)。
    若關(guān)系中的某個屬性或?qū)傩越M能地標(biāo)識一個元組,稱該屬性或?qū)傩越M為候選碼,若一個關(guān)系中有多個候選碼,則選中其中一個為主碼。主碼的諸屬性稱為主屬性。不包含在任何候選碼中的屬性稱為非主屬性。
    關(guān)系有以下性質(zhì):
    1. 每一列的數(shù)據(jù)來自同一個域,具有相同的數(shù)據(jù)類型,為元組的一個屬性。
    2. 不同列的數(shù)據(jù)可以來自同一個域,但這些列的屬性名不能相同。
    3. 列的順序可以任意的,可以隨意交換列的位置。
    4. 表中的任意兩行不能相同,即一個關(guān)系中不能有相同的元組。
    5. 元組在關(guān)系中的次序是任意的。
    6. 每個分量必須是不可分的數(shù)據(jù)項。