1. 程式人生 > >資料庫系統概論複習筆記

資料庫系統概論複習筆記

Abstract: 資料庫系統概論期末複習筆記 ~

btw:歡迎關注 ~

Github: https://github.com/ScarlettYellow

個人部落格:https://scarletthuang.cn/

PART1 資料庫概述

關係模型的構成:關係資料結構、關係操作集合、關係完整性約束。

1.1 資料庫發展

1.資料庫發展過程:

2.三個時期的比較:

1.2 基本概念

1.資料模型

三個要求:

  • 真實模擬現實社會

  • 容易理解

  • 便於在計算機上實現

兩類:

  • 概念模型:= 資訊模型;面向使用者,按使用者的觀點來對資料和資訊建模,主要用於資料庫設計

  • 邏輯模型/物理模型:對資料最底層的抽象,描述資料在系統內部的表示方式和存取方式,面向計算機系統

    ;包括層次模型,網狀模型,關係模型,面向物件模型,物件關係模型

三要素:

  • 資料結構

  • 資料操作

  • 資料的完整性約束條件

常用資料模型:

  • 層次

  • 網狀

  • 關係

  • 面向物件

  • 物件關係

  • 半結構化

2.四個基本概念

資料Data

資料庫Database:長期儲存在計算機內、有組織的、可共享的大量資料的集合。

人員資料檢視:

資料庫結構圖:

基本特徵:

  • 資料按一定資料模型組織、描述和儲存

  • 可為各種使用者共享

  • 冗餘度較小

  • 資料獨立性較高

  • 易擴充套件

資料庫管理系統DBMS:

  • 位於使用者與作業系統之間的一層資料管理軟體.是基礎軟體,是一個大型複雜的軟體系統

  • 用途:科學地組織和儲存資料、高效地獲取和維護資料

  • 資料控制功能:

    • 資料的安全性(Security)保護:保護資料,以防止不合法的使用造成的資料的洩密和破壞.

    • 資料的完整性(Integrity)檢查:將資料控制在有效範圍內,或保證資料之間滿足一定關係

    • 併發(Concurrency)控制:對多使用者的併發操作加以控制和協調,防止相互干擾而得到錯誤的結果

    • 資料庫恢復(Recovery):將資料庫從錯誤狀態恢復到某一已知的正確狀態

  • 主要功能:資料定義,資料操縱(增刪查改),資料控制(資料的完整性、安全性定義與檢查資料庫的併發控制與故障恢復),資料服務(拷貝、轉儲、重組、效能檢測、分析……)

資料庫系統DBS:

  • 在計算機系統中引入資料庫後的系統構成

  • 組成:資料庫,資料庫管理系統,應用系統,資料庫管理員

  • 特點:資料結構化;資料的共享性高,冗餘度低,易擴充;資料獨立性高;資料由DBMS統一管理和控制

3.資料獨立性(兩個獨立性)

  • 物理獨立性:指使用者的應用程式與儲存在磁碟上的資料庫中資料是相互獨立的.當資料的物理儲存改變了,應用程式不用改變

  • 邏輯獨立性:指使用者的應用程式與資料庫的邏輯結構是相互獨立的.資料的邏輯結構改變了,使用者程式也可以不變

  • 物理獨立性與邏輯獨立性保證了資料獨立性也是由DBMS的二級映像功能來保證的

4.資訊世界基本概念

實體:客觀存在並可相互區別的事物。可以是具體的人、事、物或抽象的概念。

屬性:實體所具有的某一特性稱為屬性.一個實體可以由若干個屬性來刻畫。

碼:唯一標識實體的屬性集。

域(Domain) 屬性的取值範圍稱為該屬性的域。

實體型(Entity Type) :用實體名及其屬性名集合來抽象和刻畫同類實體稱為實體型。

實體集(Entity Set) 同一型別實體的集合稱為實體集

聯絡(Relationship)現實世界中事物內部以及事物之間的聯絡在資訊世界中反映為實體內部的聯絡和實體之間的聯絡。

  • 實體內部的聯絡通常是指組成實體的各屬性之間的聯絡

  • 實體之間的聯絡通常是指不同實體集之間的聯絡

A.兩個實體型:

  • 一對一聯絡(1:1):如果對於實體集A中的每一個實體,實體集B中至多有一個(也可以沒有)實體與之聯絡,反之亦然,則稱實體集A與實體集B具有一對一聯絡,記為1:1。

  • 一對多聯絡(1:n):一個班級中有若干名學生,每個學生只在一個班級中學習

  • 多對多聯絡(m:n):課程與學生之間的聯絡:一門課程同時有若干個學生選修,一個學生可以同時選修多門課程

B.兩個以上實體型:

5.資料庫管理員的具體職責(DBA)

  • 決定資料庫中的資訊內容和結構

  • 決定資料庫的儲存結構和存取策略

  • 定義資料的安全性要求和完整性約束條件

  • 監控資料庫的使用和執行

    • 週期性轉儲資料庫

      • 資料檔案

      • 日誌檔案

    • 系統故障恢復

    • 介質故障恢復

    • 監視審計檔案

    • 資料庫的改進和重組:效能監控和調優定期對資料庫進行重組織,以提高系統的效能需求增加和改變時,資料庫須需要重構造

1.3 關係資料庫理論

1. 關係模式(五元組)

  • 格式:R(U,D,DOM,F)

  • R:關係

  • U:屬性

  • D:域

  • DOM:屬性到域的對映

  • 屬性組U上的一組資料依賴F(如函式依賴(Functional Dependency,FD),多值依賴(Multivalued Dependency,MVD))

2. 相關概念

A.函式依賴:

  • R(U)是屬性集U上的關係模式.X,Y是U的子集.若R(U)的任意一個可能的關係r,r中不可能存在兩個元組在X上的屬性住相等,而在Y上的屬性值不等,則X函式確定Y或Y依賴於X,記做X→Y,若X→Y,Y→X,記做X←→Y(非主屬性中某屬性值唯一)

  • 非平凡函式依賴:X→Y,但X不包含Y,則稱X→Y非平凡函式依賴(例子 (Sno,Cno)→Grade )

  • 平凡函式依賴:X→Y,且X包含Y則稱X→Y平凡函式依賴(例子 (Sno,Cno)→Cno )

  • 完全函式依賴:X→Y且對X的任何一個真子集X',都有X'→Y不成立,則稱Y對X完全函式依賴(例子 (Sno,Cno)→Grade )

  • 部分函式依賴:X→Y,但Y不完全依賴於X,則稱Y對X部分函式依賴(例子 (Sno,Cno)→Sdept [由Sno便可推出Sdept] )

  • 傳遞函式依賴:在R(U)中,如果X→Y,(X不包含Y),Y→X不成立,Y→Z,Z不屬於Y,則稱Z對X傳遞函式依賴,記做X→Z(例子 Sno→Sdept, Sdept→Mname成立,所以Sno→Mname)

B.多值依賴:

定義:

  • 形式1:設R(U)是屬性集U上的一個關係模式.X,Y,Z是U的子集,並且Z=U-X-Y,感謝模式R(U)中多值依賴X→→Y成立,當且僅當對R(U),的任一關係r,給定的一對(x,z)值,有一組Y的值,這組值僅僅決定於x值而與z值無關

  • 形式2:在R(U)的任一關係r中,如果存在元組t,s使得t[X]=s[X],那麼必然存在元組w,v屬於r,(w,v可以與s,t相同),使得w[X]=v[X]=t[X],而w[Z]=v[Z]=t[Z],v[Y]=s[Y],v[Z]=tZ則Y多值依賴與X記做X→→Y,這裡X,Y是U的子集,Z=U-X-Y

平凡多值依賴: 若X→→Y,而Z=φ,即Z為空,則稱X→→Y為平凡多值依賴

多值依賴性質:

  • 多值依賴具有對稱性.即若X→→Y,則X→→Z其中Z=U-X-Y

  • 多值依賴具有傳遞性,即若X→→Y,X→→Z,則X→→Z - Y,X→→Y - Z

  • 函式依賴可以看做多值依賴的特殊情況,即若X→Y則X→→Y.這是因為當X→Y時,對X的每一個值x,Y有一個確定的值y與之對應,所以X→→Y

  • 若X→→Y,X→→Z,則X→→YZ

  • 若X→→Y,X→→Z,則X→→Y∩Z

多值依賴與函式依賴的區別:

  • 多值依賴的有效性與屬性集的範圍有關

  • 若X→→Y在U上成立則在W(U包含W, W包含XY)上一定成立,反之則不然,即X→→Y在W(U包含W)上成立,在U上並不一定成立,這是因為多隻依賴的定義中不僅涉及屬性組X和Y,而且涉及U中的其餘屬性Z

  • 一般得在R(U)上若有X→→Y在W(U包含W)上成立,則稱X→→Y為R(U)的嵌入型多值依賴

  • 但是在關係模式R(U)中函式依賴X→Y的有效性僅決定於X,Y這兩個屬性集的值.只要在R(U)的任何一個關係r中,元組在X和Y上的值滿足函式依賴的定義,則函式依賴X→Y在任何屬性集W(U包含W, W包含XY)上成立

  • 若函式依賴X→Y在R(U)上成立,則對任何Y的子集Y'具有X→Y'成立,而多值依賴X→→Y若在R(U)上成立,卻不能保證對於任何一個Y' 即Y的子集的X→→Y'都成立

碼:

  • 候選碼,主碼:設K為R<U,F>中的屬性組合,若K完全依賴於U則K為R的候選碼(Candidate key),若候選碼多於一個,則選定一個為主碼(Primary key)。【唯一標識實體的屬性或屬性集為候選碼,可以有多個;主碼只能有一個;主碼一定是候選碼,候選碼不一定是主碼】

  • 主屬性,非主屬性,全碼:包含在任何一個候選碼中的屬性,稱為主屬性(Primary attribute).不包含在任何碼中的屬性稱為非主屬性(Nonprime attribute)或非碼屬性(Non-key attribute).最簡單的情況,單個屬性是碼.最極端的情況,整個屬性組都是碼,稱為全碼(All-key)

3. 模式存在問題

  • 資料庫冗餘太大

  • 更新異常

  • 插入異常

  • 刪除異常

4.正規化(規範化)

第一正規化1NF:每一個分類必須是一個不可分的資料項,則屬於第一正規化規範。

2NF:若R屬於1NF, 且存在非主屬性完全函式依賴於碼。

3NF:R屬於2NF,且非主屬性既不部分依賴於碼,也不傳遞依賴於碼。

BCNF:屬於3NF,且多有屬性都不部分依賴或傳遞依賴於碼,所有決定屬性集都包含碼。

4NF:所有非平凡的多值依賴都是函式依賴。

5NF:連線依賴均由候選碼所蘊含。

正規化規範化過程:

1.4 關係模型

1.關係模型

從使用者角度看,關係模型中資料的邏輯結構時一張二維表,由行和列組成。

2.相關概念

  • 元組Tuple:表中的一行即為一個元組(包含不同屬性集的值)

  • 關係Relation:對應一張表;要求關係的每個分量都是不可分的資料項,不允許表中表

  • 屬性Attribute:表中的一列為一個屬性

  • 主碼key:表中的某個屬性組,可唯一確定一個元組

  • 域domain:屬性的取值範圍

  • 分量:元組中的一個屬性值

  • 關係模式:對關係的描述;關係名(屬性1,屬性2,...)

3.完整性約束

  • 作用:【約束】保證資料庫中資料的正確性和相容性

  • 包括:

    • 域完整性約束:保證資料庫欄位取值的合理性;包括檢查(CHECK)、預設值(DEFAULT)、不為空(NOT NULL)、外來鍵(FOREIGN KEY)等約束。

    • 實體完整性(Entity integrity): 指關係的主關鍵字[主碼]不能重複也不能取“空值"

    • 參照完整性: 定義建立關係之間聯絡的主關鍵字與外部關鍵字引用的約束條件

    • 使用者定義的完整性(user defined integrity):實體完整性和參照完整性適用於任何關係型資料庫系統,它主要是針對關係的主關鍵字和外部關鍵字取值必須有效而做出的約束;使用者定義的完整性是根據應用環境的要求和實際的需要,對某一具體應用所涉及的資料提出約束性條件,這一約束機制一般不應由應用程式提供,而應有由關係模型提供定義並檢驗,使用者定義完整性主要包括欄位有效性約束和記錄有效性

4.關係模型的優缺點

優點:

  • 建立在嚴格的數學概念的基礎上

  • 概念單一: 實體和各類聯絡都用關係來表示;對資料的檢索結果也是關係

  • 關係模型的存取路徑對使用者透明: 具有更高的資料獨立性,更好的安全保密性;簡化了程式設計師的工作和資料庫開發建立的工作

缺點:

  • 存取路徑對使用者透明導致查詢效率往往不如非關係資料模型

  • 為提高效能,必須對使用者的查詢請求進行優化增加了開發DBMS的難度

5.系統結構解釋

從資料庫管理系統角度看資料庫系統通常採用三級模式結構,是資料庫系統內部的系統結構

資料庫終端使用者角度看(資料庫系統外部的體系結構),資料庫系統的結構分為:

  • 單使用者結構主從式結構

  • 分散式結構

  • 客戶/伺服器

  • 瀏覽器/應用伺服器/資料庫伺服器多層結構等

6.例項instance

  • 模式的一個具體值

  • 反映資料庫某一時刻的狀態

  • 同一個模式可以有很多例項

  • 例項隨資料庫中的資料的更新而變動

7.模式Schema(又稱:邏輯模式)

解釋:

  • 模式:資料庫中全體資料的邏輯結構和特徵的描述

  • 反映:資料的邏輯結構及其聯絡

  • 所有使用者的公共資料檢視,綜合所有使用者的需求

說明:一個數據庫只有一個模式

地位:資料庫系統模式結構的中間層

特點:

  • 與資料的物理儲存細節和硬體環境無關

  • 與具體的應用程式、開發工具個高階程式設計語言無關

定義:

  • 資料的邏輯結構(資料項的名稱、型別、取值範圍等)

  • 資料之間的聯絡

  • 資料有關的安全性、完整性要求

8.外模式(External Schema)

說明:

  • 資料庫使用者(包括應用程式設計師和終端使用者)使用的區域性資料的邏輯結構和特徵的描述

  • 資料庫使用者的資料檢視,是與某一應用有關的資料的邏輯表示