資料庫應用-108高普考考前重點整理

2020/03/26
資料庫應用-108高普考考前重點整理
臨時抱佛腳,也要有技巧!老師都知道同學們最容易搞混的觀念有哪些,念的心驚驚的部分在哪邊,所以呢~特地準備了這份「108高普考考前重點整理」佛心來者大補貼,讓你上考場前先讀先看,把卡住的難關全突破!

【資料庫應用】

各層意義:
外部層|視界層:外部綱要,AP觀點,以實作資料模型呈現,1~多個,用VDL(View Definition Language)或DDL(實務常用)定義。
概念層|邏輯層:概念綱要,DBA與SA觀點,以實作資料模型呈現,只有1個,用DDL定義,概念性描述,與實作技術無關。
內部層|實體層:內部綱要,DBA觀點,以實體資料模型呈現,只有1個,用SDL(Storage Definition Language)定義(實務上透過儲存媒體存取函式指定,DBA負責設定索引及資料與儲存媒體對應關係)。

優點:實現資料獨立(修改某層綱要不需修改上層綱要的能力)。
邏輯資料獨立:修改概念綱要(如增加欄位),不用修改上層綱要(外部綱要和AP)的能力,需自行撰寫轉換程式,較難達成。
實體資料獨立:修改內部綱要(如增加索引),不用修改上層綱要(概念外部和AP)的能力,可由DBMS自動轉換,容易達成。
資料獨立關鍵在於上下相鄰綱要的映射(Mapping)機制;只需修改綱要映射,調整變動部份,其餘綱要構件保持不變,即可達到資料獨立的效果,可避免綱要演進時,需大幅修改程式碼的額外負擔。
缺點:資料層層映射(Mapping)效率差,少數DBMS實作完整三層式。

實體(Entity):

真實世界物件或觀念;相同性質實體所成的集合,稱實體類型(Entity Type),依有無鍵值(可區分實體唯一性)分類。
有鍵值,稱強實體,如員工、專案,矩形。
無鍵值,稱弱實體,如眷屬,資料可重複,雙線矩形;又稱子實體|從屬實體(Child|Subordinate),需依附父實體|識別實體|支配實體|擁有者(Parent|Identifying|Dominant|Owner)。

關係(Relationship):
實體間關聯性;相同性質關係所成的集合,稱關係類型(Relationship Type),依參與者分類。
皆強實體,稱弱關係,如員工-參與-專案,菱形。
有弱實體,稱強(識別)關係,如員工-擁有-眷屬,雙線菱形。
多重(Multiple)關係:2實體間有多個關係,如員工與專案。

屬性(Attribute):實體類型或關係類型的重要特性,以橢圓表示。
可以分割:複合屬性(Composite),如生日=年+月+日。
不可分割:簡單|單元屬性(Simple|Atomic),如職業;簡單屬性可能值所成集合,稱屬性定義域(Domain)。
只存單一值:單值屬性(Single-Valued),如姓名。
可存多個值:多值屬性(Multi-valued),如電話號碼,雙橢圓。
需實際儲存:內儲屬性(Stored),如生日。
可推算求得:衍生屬性(Derived),如年齡,虛線橢圓。
鍵值屬性(Key)與部份鍵(Partial Key):
鍵值屬性:區分強實體唯一性,如員工編號,加底線。

部份鍵:區分弱實體對同一強實體唯一性,如眷屬-姓名,加虛線底線;屬性值可重複(同一員工,眷屬姓名必相異;不同員工,眷屬姓名可相同),弱實體鍵值=部份鍵+擁有者鍵值。

關聯模型的限制(Constraint)
資料完整性(Data Integrity):為確保資料庫能正常運作,關聯內所有值組需滿足某些限制;1資料庫內所有資料(所有關聯的值組)皆滿足應有限制,稱一致(Consistent),以完整性限制規範資料修改動作達成。
定義域(值域)限制(Domain Constraint):每個屬性值必須是該屬性定義域內1個(非多值)不可分割單元值(不複合);將欄位值限制在某明確定義的範圍內,可避免因輸入錯誤資料導致應用系統無法正常運作,進而提升資料庫輸入錯誤資料免疫力(Input Error Immunity)。

關聯鍵限制(Key Constraint):所有值組,關聯鍵值不重複。
可識別值組唯一性的屬性集合,稱超級鍵(Super Key,最小候選,最大全部);最簡超級鍵(子集合不再超級,最小性+唯一性),稱關聯鍵,簡稱鍵值(Key),可多個,皆為主鍵候選,故稱候選鍵(Candidate)。
候選鍵擇1(最短最常用有意義,單一優於複合,不可虛最好永不變)當主鍵(Primary Key);其餘稱候補鍵/次要鍵(Alternate/Secondary)。
實體完整性限制(Entity Integrity Constraint):
主鍵值不可虛(主要定義)+不可重複(鍵值特性)。
虛值(NULL)3涵義:未知(Unknown,不知是否有值)|遺失(Missing,有值但未填)|不適用(Not Applicable N/A,一定無值)。
參考完整性限制(Referential Integrity Constraint):
外鍵定義:A(子)關聯屬性集合FK,為B(父)關聯的主鍵(候選鍵),稱FK為A參考(Reference)B的外鍵(Foreign Key)。
子關聯外鍵視情況可為虛值,若不虛,父關聯主鍵需有對應值。
ERD轉換(關聯綱要)規則
轉換實體:
強實體:1實體1關聯,候選鍵擇1當主鍵,屬性處理原則(簡單直接取;多值不考慮;複合取所有元素;衍生不納入)。
弱實體:1實體1關聯,屬性處理同上;弱實體主鍵=部份鍵+擁有者主鍵,且擁有者主鍵為外鍵,指向擁有者。
多值屬性:獨立成新關聯;新關聯主鍵=多值屬性+原關聯主鍵,且原關聯主鍵為外鍵,指向原關聯。
轉換關係:
2元多對多:獨立成新關聯(含關係屬性),又稱對照表(Lookup Table)作法;新關聯主鍵=兩端主鍵複合(故稱複合實體,為兩多端實體的Bridge),亦為外鍵,分別指向原關聯。
2元1對1:一般作法,任取1端主鍵(含關係屬性)加到另1端做外鍵;外鍵值可能空,以下列方式改善。
若1端完全參與,另1部份參與:部份參與端主鍵(含關係屬性)加到完全參與端做外鍵(避免外鍵NULL值)。 

對照表作法:獨立成新關聯,兩端主鍵為外鍵,任選1為主鍵。
優點:適合只有少數關係實例,可避免外鍵NULL值。
缺點:額外關聯表,且查詢詳細資料時,需做合併運算。
2元1對多關係:2種轉換方式。
將1端主鍵(含關係屬性)加到多端做外鍵。
對照表作法:獨立成新關聯,兩端主鍵為外鍵,多端為主鍵。
多元(2元以上)關係:獨立成新關聯(含關係屬性),新關聯主鍵=所有多端主鍵(1端主鍵不納入),亦為外鍵,分別指向原關聯。

不可化簡集合求法:
右邊不可化簡:分解律,右邊(複合屬性)化單一。
左邊不可化簡:左邊(複合屬性)去多餘(屬性),2方向。
能刪除直接刪:反身或反身+已知,配合遞移,刪除多餘FD。
不能刪可取代:已知+擴充,配合遞移,單一(屬性FD)取代複合(屬性FD)。
FD不可化簡:遞移律,刪除多餘FD。
求F={A→BC,A→C,AB→C,C→B,BC→D}最簡功能相依。
右邊不可化簡:分解律,右邊化單一。

關聯分割(Decomposition)與正規化

關聯分割:給定一全域關聯(Universal,所有屬性的集合)R,給定R上一組功能相依集合F,利用F將R分割成一組關聯綱要的集合D={R1,R2,…,Rm},稱關聯分割,又稱關聯綱要設計。

正規化:將一個關聯綱要分割成多個結構良好關聯綱要的過程,稱正規化,需滿足屬性保留&無失分割2條件,可降低(資料)重覆、避免(更新&增刪)異常(考試重點=定義+實例+分割方式)。
第一正規化形式(First Normal Form,1NF):關聯R符合定義域限制,即屬性值必須是定義域內1個(非多值)不可分割單元值(不複合)。
第二正規化形式(Second Normal Form,2NF):關聯R符合1NF,且所有非主鍵屬性完全功能相依於主鍵(無部份相依)。
第三正規化形式(Third Normal Form,3NF):關聯R符合2NF,且所有非主鍵屬性非遞移相依於主鍵(無遞移相依)。
Boyce-Codd正規化形式(Boyce-Codd Normal Form,BCNF):關聯R中任何功能相依X→A,所有決定因子(X)皆為超級鍵(候選鍵),稱R符合BCNF(比3NF少1條件,更嚴謹;直接判定,不需1/2/3NF測試)。
多重值相依與第四正規化:已知R(X,Y,Z)。
每個X可決定多個Y與Z無關,稱X多值決定Y,以X→→Y表示;每個X可決定多個Z與Y無關,稱X多值決定Z,以X→→Z表示;關聯R,將2個獨立1對多關聯合成1個關聯會有資料重覆現象,稱多重值相依(Multi-Valued Dependency,MVD):X→→Y|Z。
實例如下:多重值相依,資料重複儲存,可能導致各種異常。

同集中式,使用者不會感受到DDB的存在。

資料分割(Data Fragmentation):將資料表分割成多個片斷(Fragment),以分散儲存於不同站台,可提升系統存取效能,有水平分割(Horizontal Fragmentation)垂直分割(Vertical Fragmentation)兩種類型。

水平分割:以值組列為單位,依屬性條件值,分割資料表,可分散儲存在不同站台;因父子關聯表(以外鍵建立參考關係)常需執行合併運算,故子關聯表值組,可配合父關聯,分割配置到對應站台,以提升合併運算執行效能,稱衍生水平分割;兩種水平分割,實例如下圖(父關聯依「分公司」分割,分散儲存後,該欄適情況可省略;子關聯值組,可伴隨父關聯,分割配置到對應的區域站台)

垂直分割:以屬性欄為單位,依實際需求,分割資料表(各資料表需保留原有主鍵,方可合併成原有表格),可分散儲存在不同站台,如下圖(依部門需求分割,分散儲存後,欄位自動省略)

資料複寫(Data Replication)將原始主資料庫(Master)內資料,備份到其它站台拷貝資料庫(Replica),以提升DDB可靠性(Reliability;資料正確無誤)與可用性(Availability;服務可用不中斷);可能策略有3,說明如下;資料更新時,需同步更新原始資料片斷與多個備份,以確保資料間的一致性,稱更新傳播問題(Update Propagation Problem)

沒有複寫(No Replication):一個資料片斷只存一個站台,不複寫,又稱無重複資料配置(Nonredundant Allocation);優點(無更新傳播問題);缺點(跨站存取效能差,且系統可靠性&可用性低);各站資料存取區域性強時(跨站存取次數少)適用。

完全複寫(Complete Replication):一個資料庫,在每個站台,皆有完整備份,又稱完全複寫DDB(Fully Replicated DDB);優點(不需跨站存取,效能佳,系統可靠性&可用性高);缺點(有更新傳播問題);各站僅有大量資料讀取,很少寫入動作(更新傳播負擔輕)時適用。

部份複寫(Partial Replication):適情況,複寫部份資料片斷,可在跨站存取效能與資料同步成本間,取得平衡;各站資料存取動作平均時適用;以複寫綱要(Replication Schema)描述資料片斷複寫現況。

NoSQL(Not Only SQL)

NoSQL源起:傳統關聯式資料庫,以高度結構化方式(資料綱要內需明確定義實體間的關係與結構)儲存資料,延展性&可用性差,不利於巨量資料的應用環境;NoSQL採分散式結構性資料儲存技術,以CAP 定理為核心,利用BASE交易處理特性,提升巨量資料的處理效能。

NoSQL資料庫 4大特徵:

無綱要(Schema-Free):網路多為半結構性(HTMLXML文件)與非結構性(如影音或圖片)資料,通常無法事先明確定義實體間的關係與結構,故NoSQL資料庫採取無綱要策略,在資料庫提供的資料結構基礎上,允許直接儲存並取用資料實體,無須事先定義綱要。

高延展性(High Scalability):直接以開放標準之大眾化軟硬體設備(避免Vendor Lock現象),快速且低成本地擴充儲存容量與處理能力,稱水平式擴充,可滿足雲端計算的需求,故NoSQL資料庫必須具備自動資料複製(Replication)、切割與轉移等能力。

簡單存取介面:為配合無綱要策略,NoSQL資料庫依其提供的資料結構基礎,直接以支援開發語言(JavaC++)API取代SQL做為資料存取介面,故SQL中複雜功能(JOIN),通常不提供。

最終一致性(Eventually Consistent)NoSQL以分散式資料複製技術(一份資料可複製、存放在多個不同地理位置的資料中心),以提升系統的可用性;多個複本之間則採用最終一致性策略,即資料更新時,僅保證在某段夠長時間內,逐步更新到所有複本,而非立即同步。