第三章
域是值的集合,域中數據個數叫做域的基數。
R(D1,D2,…Dn)的含義是:若且唯若R是D1×D2×…×Dn的一個子集,則稱R是D1×D2×…×Dn上的一個關係。其中,R是關係名,n是關係的度,Di是第i個域名。在關係的定義中,n度的關係,必有n個域。
一個關係就是一張二維表,表中的每一行對應關係中的一個元組,它對應於信息世界中的實體和計算機世界中的記錄,表中的每一列就是關係中的一個域。也稱為屬性,對應於計算機世界中的欄位。
關係與文件有許多相似之處,把關係看成文件時,則元組就是文件中的記錄,屬性就是記錄中的數據項(欄位)。
不允許「表中套表」,即表中元組分量必須是原子的。
二維表中的各列取自同一個域,因此一列中的各個分量具有相同性質。
列的次序、行的次序可以任意交換,不改變關係的實際意義。
表中的行叫元組,代表一個實體,因此表中不允許出現相同的兩行。
判斷兩個關係是否相等,與屬性的次序無關,與元組的次序無關,與關係的命名無關。
關係模式是指用關係數據描述語言描述後的關係,必須逐個對關係模型中的關係進行描述才能生成資料庫概念模式。對關係的描述實為定義關係模式。關係數據描述語言實質是定義關係框架的,包括對域和關係進行描述
常用的關係數據描述語言(DDL)有問答式和語言描述式,常用的FoxPro屬於問答式DBMS.
語言描述式有專門描述語言定義關係模式,包括關係名、組成該關係的各個域名、數據類型、長度和取值範圍
域描述語句:DOMAIN<域名>PIC IS<類型(長度)>[RANGE IS<數1>THRU<數2>],通過DOMAIN定義域名、PIC定義數據類型和長度,RANGE定義取值範圍。
關係描述語句:RELATION<關係名>(<域名1,域名2,…>)KEY=(<域名i,域名j,…>)
關係模式的三類完整性規則是:實體完整性約束規則、引用完整性約束規則、用戶定義的完整性約束規則。
實體完整性約束是指關係中的「主鍵」不允許取空值。引用完整性約束規則是限制引用不存在的記錄。
在關係的各種*作中,關係查詢是核心,所以關係數據*縱語言DML語言,常被稱為查詢語言。
DML特點:*作對象與結果都是關係,非過程性強,語言一體化,有嚴密的數學工具。
關係數據*作的最大特點是:以關係為處理單位,處理後的結果是關係。
關係DML查詢,根據表達查詢方式的不同,可分為兩類:用關係代數運算表達查詢和用關係演算公式表達查詢。關係數據*作語言相應分為兩種不同類型:關係代數型和關係演算型。
所謂單目運算就是對一個關係施加的運算,所謂雙目運算就是對兩個關係施加的運算。選擇、投影是單目運算,連接、關係笛卡兒積是雙目運算。
集合運算符:∪並、∩交、-差、×迪卡爾積,關係運算符:π投影、σ選擇、|×|連接
比較運算符:>、≥、<、≤、=、≠,邏輯運算符:-非、∧與、∨或
並、交、差用於關係運算,要求參加運算的兩個關係是相容的,即兩個關係度數相同,相應屬性取自同一個域。
並:由屬於R或屬於S或同時屬於R和S的元組構成的集合,記為R∪S.
差:由屬於R而不屬於S的所有元組組成的集合,記為R-S.
交:由同時屬於R和S的元組組成的集合,記為R∩S.
選擇:按給定條件從關係中挑選滿足條件的元組組成的集合,記為σF(R)
投影:從關係中挑選出指定的屬性組成的新關係,記為:πA(R)A是屬性名表,R是關係名。
關係R和S的笛卡兒積,它是由R的第一個元組依次與S的所有元組組合,然後是R的第二個元組,直到最後一個元組依次與S所有元組組合,形成新的關係。記為:R×S關係R和S的笛卡兒積k1+k2個元組。
連接:按給定條件,把滿足條件的兩關係的所有元組,按一切可能拼接後形成的新關係,相當於在兩關係笛卡兒積上的選擇。記為:R|×|S=σF(R×S)關係R和S的連接後的關係有≤k1×k2個元組。
連接運算可以從乘積運算和選擇運算中導出,自然連接運算可以從乘積運算、選擇運算和投影運算中導出。
自然連接是連接的一個重要特例,它要求被連接的兩關係有若干相同的屬性名。記為:R|×|S
連接運算:JOIN <關係1> WITH <關係2> WHERE <條件>,按給定條件對兩關係進行連接運算。
五種基本運算:並、差、選擇、投影、連接。
在關係中,當有多個屬性可作為鍵而選定其中一個時,則稱它為該關係的主鍵。
在一個關係中,需要幾個屬性組合起來才能惟一標識元組時,則稱這幾個屬性為該關係的聯合鍵。
凡在關係中可以用來惟一標識元組的屬性或屬性組叫做候選鍵。
當關係中的某個屬性或某一組屬性並非主鍵,但卻是另一個關係的主鍵時,稱該屬性為外部鍵。
凡可作為侯選鍵的屬性叫主屬性,不能作為侯選鍵的屬性叫非主屬性。
所謂函數依賴其實質是刻畫關係中各個屬性之間相互制約而又相互依賴的關係。
函數依賴包括:完全函數依賴、部分函數依賴、傳遞函數依賴
滿足最低要求的關係稱它屬於第一範式,在此基礎上又滿足了某種條件,則稱它屬於第二範式的關係,依此類推直到第五範式。資料庫一般使用3NF以上的關係。滿足較高條件者必滿足較低範式條件。
一個較低範式的關係,可以通過關係的無損分解轉換為若干較高級範式關係的集合,這個過程叫做關係規範化
如果關係R的所有屬性都是不可再分的數據項,稱該關係屬於第一範式。1NF
第一範式缺點:數據冗餘大、修改麻煩、插入異常、刪除異常。
若關係R屬於1NF,且它的每一非主屬性都完全依賴於主鍵,則稱R屬於第二範式,2NF
若關係R屬於2NF,且它的每一非主屬性都不傳遞依賴於關鍵字,則稱R屬於第三範式,3NF
在關係規範化中,分解關係的兩條基本原則是:分解必須是無損的和分解後的關係要相互獨立。
關係規範化過程實質是對關係不斷分解的過程,通過分解使關係逐步達到較高範式。規範化是圍繞函數依賴進行的。在規範化過程中,消除部分依賴和傳遞依賴後,1NF變成3NF.1NF、2NF、3NF相互間是全包含關係。
以下說法正確的是。A
(A)一個關係就是一張二維表 (B)在關系所對應的二維表中,行對應屬性,列對應元組
(C)笛卡兒積中不允許有相同的域 (D)關係的各屬性名必須與對應的域同名
根據關係模式的完整性規則,一個關係中的「主鍵」 .C
(A)不能有兩個 (B)不能成為另一個關係的外部鍵 (C)不允許為空 (D)可以取空值
關係中的最高範式為 .D (A)2NF (B)3NF (C)4NF (D)5NF
綜合:1、計算並、差、交、選擇、投影、關係笛卡爾積、連接、自然連接。
2、範式關係規範化
3、寫出關鍵字
4、確定範式等級