資料庫設計基礎
資料庫的基本概念
資料(Data)是資料庫儲存的基本物件,是描述事物的符號記錄。
資料庫(DataBase)是長期儲存在計算機內、有組織的、可共享的大量資料的集合,它具有統一的結構形式並存放於統一的儲存介質內,是多種應用資料的整合,並可被各個應用程式所共享,所以資料庫技術的根本目標是解決資料共享問題。
資料庫管理系統(DBMS)是資料庫的管理機構,負責資料庫中的資料組織、資料操縱、資料維護、控制及保護和資料服務等。資料庫管理系統是資料庫系統的核心。資料庫系統包含資料庫和資料庫管理系統。
資料庫管理系統的功能:
(1)資料模式定義:即為資料庫構建其資料框架;
(2)資料存取的物理構建:為資料模式的物理存取與構建提供有效的存取方法與手段;
(3)資料操縱:為使用者使用資料庫的資料提供方便,如查詢、插入、修改、刪除等以及簡單的算術運算及統計;
(4)資料的完整性、安全性定義與檢查;
(5)資料庫的併發控制與故障恢復;
(6)資料的服務:如複製、轉存、重組、效能監測、分析等。
為完成資料庫管理系統的功能,資料庫管理系統提供相應的資料語言:
資料定義語言(DDL):負責資料模式定義和資料物理存取構建。
資料操縱語言(DML):負責資料的操縱。
資料控制語言(DCL):負責資料完整性,安全性的定義與檢查以及併發控制,故障恢復等功能。
資料語言按使用方式具有兩個結構形式:互動式命令語言(自含型和自主型語言)和宿主型語言。
資料庫管理員(DBA)的工作:資料庫設計,資料庫維護,改善系統效能,提高系統效率。
資料庫系統(DBS)是指在計算機系統中引入資料庫後的系統,一般由資料庫、資料庫管理系統、應用系統、資料庫管理員和使用者構成。
資料庫應用系統(DBAS)是資料庫系統再加上應用軟體及應用介面這三者所組成,具體包括:資料庫、資料庫管理系統、資料庫管理員、硬體平臺、軟體平臺、應用軟體、應用介面。
資料管理的發展和基本特點
資料管理技術的發展經歷了三個階段:人工管理階段、檔案系統階段和資料庫系統階段,資料獨立性最高的階段是資料庫系統階段。
人工管理階段特點:(1)計算機系統不提供對使用者資料的管理功能(2)資料不能共享(3)不單獨儲存資料。
檔案系統階段的缺陷:(1)資料冗餘(2)不一致性(3)資料聯絡弱。
資料庫系統的發展階段:第一代的網狀、層次資料庫系統;第二代的關聯式資料庫系統;第三代的以物件導向模型為主要特徵的資料庫系統。
資料庫系統的基本特點:
(1)資料的高整合性 (2)資料的高共享性和低冗餘性 (3)資料高獨立性 (4)資料統一管理與控制。
資料獨立性是資料與程式間的互不依賴性,即資料庫中的資料獨立於應用程式而不依賴於應用程式。
資料的獨立性一般分為物理獨立性與邏輯獨立性兩種。
(1)物理獨立性:當資料的物理結構(包括儲存結構、存取方式等)改變時,其邏輯結構,應用程式都不用改變。
(2)邏輯獨立性:資料的邏輯結構改變了,如修改資料模式、增加新的資料型別、改變資料間聯絡等,使用者的應用程式可以不變。
資料系統的內部結構體系
1、資料統系統的三級模式:
(1)概念模式,也稱邏輯模式,是對資料庫系統中全域性資料邏輯結構的描述,是全體使用者公共資料檢視。一個資料庫只有一個概念模式。
(2)外模式,外模式也稱子模式,它是資料庫使用者能夠看見和使用的區域性資料的邏輯結構和特徵的描述,一個概念模式可以有若干個外模式。
(3)內模式,內模式又稱物理模式,它給出了資料庫物理儲存結構與物理存取方法。一個資料庫只有一個內模式。
內模式處於最底層,它反映了資料在計算機物理結構中的實際儲存形式,概念模式處於中間層,它反映了設計者的資料全域性邏輯要求,而外模式處於最外層,它反映了使用者對資料的要求。
2、資料庫系統的兩級對映 (詳見教材第55頁)
兩級對映保證了資料庫系統中資料的獨立性。
(1)概念模式到內模式的對映。該對映給出了概念模式中資料的全域性邏輯結構到資料的物理儲存結構間的對應關係;
(2)外模式到概念模式的對映。概念模式是一個全域性模式而外模式是使用者的區域性模式。一個概念模式中可以定義多個外模式,而每個外模式是概念模式的一個基本檢視。
資料模型的基本概念
資料模型按不同的應用層次分為:
概念資料模型:簡稱概念模型,是一種面向客觀世界,面向使用者的模型,不涉及具體的硬體環境和平臺也與具體的軟體環境無關的模式,它是整個資料模型的基礎。
邏輯資料模型:又稱資料模型,它是一種面向資料庫的模型。分為層次模型,網狀模型,關係模型和麵向物件模型,其中層次模型和網狀模型統稱為非關係模型。層次模型用樹型結構表示實體之間聯絡的模型。
物理資料模型:又稱物理模型,它是一種面向計算機物理表示的模型。
E-R模型
1、E-R模型的基本概念
(1)實體:現實世界中的事物可以抽象成為實體,實體是概念世界中的基本單位,它們是客觀存在的且又能相互區別的事物。
(2)屬性:現實世界中事物均有一些特性,這些特性可以用屬性來表示。
(3)碼:唯一標識實體的屬性集稱為碼。
(4)域:屬性的取值範圍稱為該屬性的域。
(5)聯絡:在現實世界中事物間的關聯稱為聯絡。
兩個實體集間的聯絡實際上是實體集間的函式關係,這種函式關係可以有下面幾種:一對一的聯絡、一對多或多對一聯絡、多對多。
2、E-R模型的的圖示法
E-R模型用E-R圖來表示,E-R圖包含了表示實體集、屬性和聯絡的方法。
(1)實體的表示:用矩形表示實體集,在矩形內寫上該實體集的名字。
(2)屬性的表示:用橢圓形表示屬性,在橢圓形內寫上該屬性的名稱。
(3)聯絡的表示:用菱形表示聯絡,菱形內寫上聯絡名。
層次模型和網狀模型
層次模型是有根的定向有序樹,是資料庫系統中最早出現的資料模型。網狀模型對應的是有向圖。
層次模型和網狀模型各自應滿足的條件:
模型名稱 | 滿足的條件 |
---|---|
層次模型 | (1)有且只有一個結點沒有雙親結點,這個結點稱為根結點(2)根以外的其他結點有且只有一個雙親結點 |
網狀模型 | (1)允許一個以上的結點無雙親(2)一個結點可以有多於一個的雙親 |
關係模型及相關概念
關係模式採用二維表來表示,由關係資料結構,關係操縱和關係完整性約束3部分組成,在關聯式資料庫中,用來表示實體間聯絡的是關係。
關係:一個關係對應一張二維表。一個關係就是一個二維表,但是一個二維表不一定是一個關係。
元組:表中的一行即為一個元組。
屬性:表中的一列即為一個屬性,給每一個屬性起一個名稱即屬性名。
分量:元組中的一個屬性值,是不可分割的基本資料項。
域:屬性的取值範圍。
在二維表中惟一標識元組的最小屬性值稱為該表的鍵或碼。二維表中可能有若干個健,它們稱為表的候選碼或候選健。從二維表的所有候選鍵選取一個作為使用者使用的鍵稱為主鍵或主碼。表A中的某屬性集是某表B的鍵,則稱該屬性值為A的外來鍵或外碼。
關係操縱:資料查詢、資料的刪除、資料插入、資料修改。
關係模型允許定義三類資料約束,它們是實體完整性約束、參照完整性約束以及使用者定義的完整性約束。其中實體完整性約束、參照完整性約束必須滿足的完整性約束條件。參照完整性約束不允許關係應用不存在的元組。實體完整性約束要求關係的主鍵中屬性值不能為空,這是資料庫完整性的最基本要求。
關係代數
關係代數是一種抽象的查詢語言,關係代數的運算物件是關係,運算結果也是關係。運算物件,運算子和運算結果是運算的三大要素。集合運算子,專門的運算子,算術比較符和邏輯運算子。
關係模型的基本運算:(1)插入 (2)刪除(3)修改(4)查詢(包括投影、選擇、笛卡爾積運算)還有擴充運算交、除、連線及自然連線運算。
關係代數的5個基本操作中並,差,交,笛卡爾積是二目運算。
設關係R和S具有相同的關係模式
1、並:R和S的並是由屬於R或屬於S的所有元組構成的集合。
2、差:R和S的差是由屬於R但是不屬於S的元組構成的集合
3、笛卡爾積:設R和S的元數分別為r和s,R和S的笛卡爾積是一個(r+s)元的元組集合,每個元組的前r個分量來自R的一個元組,後s個分量來自S的一個元組。運算後得到的新表的元組數是R*S,屬性是r+s。
4、交:屬於R又屬於S的元組構成的集合。
5、投影:一元運算,對一個關係進行垂直切割,消去某些列,並重新按排列的順序。
6、選擇:一元運算,根據某些條件對關係進行水平分割。即選擇符合條件的元組。
7、除:給定關係R(X,Y)和S(Y,Z),其中X,Y,Z是屬性組,R中的Y和S中Y可以有不同的屬性名,但必須出自相同的域集。
8、連線:也稱θ連線運算,是一種二元運算,它的操作是從兩個關係的笛卡爾積中選取屬性間滿足一定條件的元組,以合併成一個大關係。連線運算包括等值連線和不等值連線。連線運算後得到的新表的屬性是運算前表中屬性相加。即多於原來關係中屬性的個數。
9、自然連線:自然連線滿足的條件是(1)兩關係間有公共域(2)透過公共域的相等值進行連線。
資料庫設計和管理
資料庫設計中有兩種方法,面向資料的方法和麵向過程的方法。
面向資料的方法是以資訊需求為主,兼顧處理需求;程序導向的方法是以處理需求為主,兼顧資訊需求。由於資料在系統中穩定性高,資料已成為系統的核心,因此面向資料的設計方法已成為主流。
資料庫設計目前一般採用生命週期法,即將整個資料庫應用系統的開發分解成目標獨立的若干階段。它們是:需求分析階段、概念設計階段、邏輯設計階段、物理設計階段。
一個低一級正規化的關係模式,透過模式分解可以轉化為若干個高一級正規化的關係模式的集合,這種過程就叫規範化。
概念結構設計是將需求分析階段得到的使用者需求抽象為資訊結構即概念模型的過程,它是整個資料庫設計的關鍵。
邏輯結構設計的任務是將E—R圖轉換成關係資料模型的過程。
資料庫的物理結構是指資料庫在物理裝置上的儲存結構和存取方法。它依賴於給定的計算機系統。
常用的存取方法:索引方法,聚簇方法和HASH方法。
資料庫管理的內容:
(1)資料庫的建立,它是資料庫管理的核心,包括資料模式的建立和資料載入。
(2)資料庫的重組。
(3)資料庫安全性控制。
(4)資料庫的完整性控制,資料庫的完整性是指資料的正確性和相容性。
(5)資料庫的故障恢復。
(6)資料庫監控