人數

2010年6月22日 星期二

mysql資料庫系統導論hk2

旅館訂房系統的實體關係圖

資料庫系統導論homework2 指導教授 劉建宏


1.structural constraints

結構限制為基數比限制(Cardinality Ratio constraints)跟參與限制(participation constraint )兩種型態關係上的限制,基數比是指定參與的最大值,有一對一(1:1),一對多(1:N),多對一(N:1),多對多(M:N)四種,參與限制是存在相依性限制(指定參與的最小值),有零(可選擇是否參與,非存在相依性),一或多(強制參與,存在相依性)等兩種.structural constraint是指每個entity至少參與min個R relationship instance,最多參與max個R relationship instance.
2.null value
虛值 ( Null Value )在關聯表中的屬性值有時後可能由於相關資訊的不足或缺乏,使得無法存入一個明確的值,而以一個「不明確」的值來代替其資料,這就是虛值的觀念。虛值不是 0 也不是空白,而是一個特殊的標記,用以記錄目前資料未知的情況. 虛值的種類可分為下列幾種:A,可適用的虛值 (Applicable Null Value ) 其意義為:這個值目前存在,但不知其值為何,所以暫存一個虛值.B,不可適用的虛值 ( Inapplicable Null Value ) 其意義為:目前根本沒有這個值. C,完全不知道的虛值 ( Totally Null Value )其意義為:完全不知道這個值是否存在.是關係資料庫中對數據屬性未知或缺失的一種標識,資料庫表主鍵的取值不能為虛值.另外,資料庫中的統計計算,一般將有虛值的數據忽略不計。在許多定義裡,null 可以是 three-valued logic, with null 意指 "no value" 或是 "unknown value".

3.weak entity type
弱實體型態,即本身沒有鍵值屬性的實體型態,必須依賴某個實體型態才能存在,則這個被依賴的實體型態稱為識別identifying弱體型態的某個部分建或擁有者owner與識別實體型態相關聯的某個實體,例如每個dependent屬性是由該位眷屬的名字,以及相關連的特定employee識別,dependent示弱體實體型態,employee是他的識別實體型態,透過識別關係型態dependent-of.弱實體, 就是必須依靠其他實體才能存在.如果弱實體所依靠的實體消失了, 則該弱實體也就變得沒有意義了。例如學校的學生是一個實體, 而學生家長就可算是弱實體, 必須依靠學生實體才能存在, 如果學生從學校畢業了, 則該學生的家長自然也就跟著被刪除了.在實體關係中, 弱實體是以雙矩形來表示.

4.superclass/sudclass relationship
超類別和它的子類別的關係為:超類別/子類別(superclass/subclass)或簡稱為類別/子類別關係(class/subclass relationship).子類別之實體繼承了超類別中相同實體之全部屬性及參與的關係,而這些繼承而來的屬性也是一個實體的型態。有兩個理由將類別/子類別的關係包含於資料模型中:
某些特別的屬性可應用到部分但非全體的實體型態.某些關係型態只存在於某個子類別成員的實體.我們可以遵循的特殊化程序如下:定義實體型態的子超類別在子類別中增加特別的屬性在子類別和其他實體型態或其他子類別之間建立特別的關係型態 .超類型/子類型的關聯在員工實體中,依照職務上的特殊性再區分為寫作人員、美編人員及銷售人員等實體。員工實體就是超類型(Superclass), 而寫作人員、美編人員及銷售人員就是員工實體的子類型 (Subclass).採用超類型 / 子類型的因素 在一個實體集合中, 可能某些實體具有特殊的屬性, 而我們必須要將它們和其他實體做區別, 此時就必須運用到超類型和子類型.例健身俱樂部的客戶實體, 又區分了一般客戶及會員客戶, 主要是在會員客戶實體中具有特殊的屬性是否參加健身課程, 而在一般客戶實體中就沒有這個屬性。採用超類型/子類型的因素可能某些關係只關聯到一個實體集合中的某些實體, 此時就必須運用到超類型和子類型。例如健身俱樂部開設了有氧舞蹈...等課程, 這些課程只允許會員參加, 此時便需要在客戶實體中細分出會員客戶實體, 然後再將它和課程建立關係.

5.specialization
擴充實體關係模型之特殊化(Specialization) 特殊化 (Specialization)將員工實體依照其特殊特性, 細分為寫作人員,美編人員及銷售人員實體的過程, 我們稱為特殊化 (Specialization)。特殊化和歸納化最大的差別在於前者強調一個實體類型中不同的特性。而特殊化是強調一個實體中的共同特性.

6.generalization
擴充實體關係模型之歸納化 (Generalization)歸納化 (Generalization)在圖書公司的員工實體為例, 我們是利用實體中部份相異的特性, 區分出許多子類型.但反過來, 我們亦可將許多實體中共同的特性集合起來, 合成一個超類型.例如我們可將大學生,中學生及小學生等子類型中相同的特性抽出來 (例如姓名,年齡,地址...), 歸納成一個學生超類型。這種處理過程, 我們稱為歸納化 (eneralization)歸納化 (Generalization) 特殊化和歸納化最大的差別在於前者強調一個實體類型中不同的特性。而歸納化是強調多個實體中的共同特性.

7.transaction
交易是工作的基本單元,他只能完全做完或完全沒做.交易(Transaction)在資料庫的系統中,當有更改資料庫內容時,都會以 Transaction 作為處理單位.只要是一連串的 SQL 都必須正常執行完成,才可以算是做完一件事情,這整個過程就是一個Transaction,如果中途任何一個步驟失敗,資料的異動狀態必須回復到 Transaction 還沒有執行前的狀態才可以。例如:要完成一個提款機提款的動作,至少會有兩個動作要完成,一個是從銀行的帳戶中扣款,另一個是提款機要正常吐鈔,只要有一個動作不能正常執行,就屬於無效的提款動作.要維持資料庫系統的一致性與正確性,其中的關鍵就在於 Transaction 可以正確的被處理,如果中間的任何一個步驟執行失敗也可以回復到 Transaction 還沒有執行前的狀態.Transaction 包含了重要的四個特性:
1. AtomicityTransaction 必須看成一個不可分割的完整個體,此一特性就稱為 Atomicity。也就是說 Transaction 的執行狀況必須是全部做完,或者是全部不作。
所以當 Transaction 正常執行完成時,會利用 Commit 指令告訴資料庫系統 Transaction 已正常執行完成,反之會以 Rollback 指令告訴資料庫系統 Transaction 執行失敗,必須回復到 Transaction 還沒有執行前的狀態。
2. Concurrency資料庫系統可以同時處理一個以上的 Transaction,否則一次只能處理一個 Transaction 的話,使用者就必須在不斷的等待中度過了。
3. Isolation雖然資料庫系統可以同時處理一個以上的 Transaction,但是當 Transaction 尚未處理完成時 ( 不論是 Commit 或 Rollback ),異動的資料是不可以被其他的 Transaction 讀取的,以避免當該 Transaction 尚未處理完成時資料的不確定性,造成其他 Transaction 的不正確處理。
4. Durability當 Transaction 正成執行完成後,資料庫系統會接收到 Commit 指令,這個時候就必須將 Transaction 的資料異動內容忠實的保存在資料庫中,以後就算是資料庫系統發生錯誤時, 以必須儘可能將資料復原。

8.commit
交付(Commit):當一個異動完成時,必須透過一個確認機制來通知資料庫將該異動更新至資料庫系統中,這個確認機制就稱為 Commit .在分散式的資料庫系統中,所有執行一個交易T的節點必須對於T的執行結果有一致的看法; 假如T確認(commit)的話,必須在所有執行T(transaction-id)的節點上都commit.

9.rollback
撤回(Rollback):當一個異動過程中發生錯誤時,為避免資料庫中發生不一致的現象,進而造成嚴重的錯誤,資料庫系統必需透過一個機制來回復該異動在異動前的狀況,這個機制就稱為 Rollback 復原目前交易中所做的所有變更,並釋放目前由這個物件所保留的所有資料庫鎖定.系統在短暫時間之內不能使用,經過一段時間之後,資料庫管理系統可以依據回復技術自動恢復所有交易的一種故障,例如電源中斷,造成系統不正常的停止運作,就是一種非毀壞性的故障,資料庫管理系統如果正在處理數個並行交易,而這些進行中的交易有些尚未成功完成,便意外發生停電狀況,資料庫管理系統應該負責將此些交易真正寫入資料庫?.那些交易正進行到一半,尚未發出交付(Commit) 命令,資料庫管理系統必須將這些交易取消所有操作 ,維持交易的單元性,一致性的轉移以及永久性.此類的故障,可以依賴資料庫管理系統本身的回復技術來達到回復的功能.

10.ACID
交易的四大特性簡稱ADIC
必須遵守下晚四個原則才能成功執行異動,第一個英文字母的縮寫字ACID:
1.單元性(Atomicity):交易是不可分割的單元,不是完全執行就是完全不執行,也就是說異動若非全部獲得認可,就是全部失敗.
2.一致性保留(Consistency preservation):假如交易完全執行,能讓資料庫從某個一至狀態,轉換到另一個一至狀態.稱此交易具有一至性保留特性.在異動開始和完成之後,資料庫皆必須維持合法的狀態.合法的狀態是指必須正確遵守資料庫所強制的規則.例如,如果將資料庫設定為不允許外部索引鍵參照不存在的資料列,那麼異動的結果將不能產生此狀況.
3隔離性(Isolation):交易應該看起來是孤立於其他交易之外執行,亦即他不應被同時執行的其他交易干擾.在異動執行期間,不允許查詢此暫時性的資料.只有當異動獲得認可之後才能看到變更.
4.持續性(Durability)或永久性(permanency):已交付的交易對資料庫所做的變更必須持續存劉在資料庫中,這些變更結果必須不因任何故障而遺失.當異動獲得認可之後,資料庫不可還原到執行異動之前的狀態.列如:不可立刻移除剛加入的資料,同時被移除的資料也不會突然出現.

沒有留言: