整理 I
有一般名詞及縮寫等等如下…
1.哪些屬性是超鍵(SK, superkey):同一個關聯表中,屬性集中之資料無重覆者(即是唯一性) 即 t1[SK]!=t2[SK]
2.哪些屬性是鍵值(key):超鍵中又符合最小性者
3.哪些屬性是候選鍵(candidate key):即是鍵值
4.哪些屬性是主鍵(PK, primary key):主鍵是從候選鍵選出來的,一個關聯表只能有一個主鍵
5.哪些屬性是替代鍵:候選鍵中不是主鍵的那些全部都是候選鍵
6.符號:
S,表「關聯式資料庫綱要」,是一個關聯綱要的集合、再加上一個完整性限制的集合(a set of integrity constraints, IC)
R, 表「關聯綱要(relation schema)」,是由許多屬性所組合而成,抽象化後就是relation name表格名
r, 表「關聯狀態(relation state)」,是R與屬性間之關聯,是一個n-值組的集合,使用時表示方式為r(R)
DB, 是一個關聯式狀態的集合(relational database state),使得每一個r成為R的狀態,並且滿足IC中所指定的完整性限制
A, 表「屬性(attribute)」,即我們平時所說的column name,表頭的名稱
D, 為A的「定義域(domain)」,用來定義A的資料形態(data type)或格式(format),表示方式為dom(A)
degree, 「關聯階度」,指的是一個R中有幾個A,例如,student(Name,SSN,HomePhone),是一個階度為3的關聯綱要,每個屬性之資料型態必要時可加在其中定義,如student(Name:string, SSN:integer, HomePhone:string),我們可以指定部份student關聯的屬性定義域,例:dom(Name)=Names; dom(SSN)=Social_security_numbers; dom(HomePhone)=Local_phone_numbers
t, 表「值組(tuple)」,裡面有與A相對應數量之資料組
v, 表「值(value)」,為符合A之定義域之資料
以下為各個符號之串聯起來的情況..舉例部份可能有所漏掉~請大家一起幫忙補完
S={R1,R2,R3,…,Rn} (共n個R)
R={A1,A2,A3,…,An} 也可表示為R(A1,A2,A3,…An) (共n個A)
n度(degree n):R(A1,A2,A3,…,An)
r(R):r={t1,t2,t3,…tm} r為一個n-值組之集合(共n個t,為有限對映)
t=
v1=t[A1]=t.A1= t那排中與屬性A1交叉相交點的值,所以說~如果題目說t[Au,Aw,…,Az]=t.(Au,Aw,…,Az)=?
答案則是
7.綱要式限制:
(1)定義域限制(應該不會考吧~有興趣的人參考p8-5頁)
(2)鍵值限制:超鍵與FK(FK部份請往下看)
(3)空值限制
(4)實體完整性限制(entity integrity constraint):主鍵不得為空值
(5)參考完整性限制(referential integrity constraint):FK(foreign key, 外來鍵)須為參考中有的值或是NULL,如R1資料表中的屬性A1是參考R2資料表中之屬性B1,如果要新增資料至R1時,屬性A1的值必須是R2資料表中屬性B1屬性值中有的值或是NULL才行,不然就違反了參考完整性限制規則,反過來說,如果要刪除或修改R2中之B1屬性的值,就必須看看R1的A1中是否有值與該值相同,如果有相同,就無法刪除該值或修改,不然也違反參考完整性限制規則