1.資料庫 顧名思義,資料庫DB (DataBase)即指存放數據的倉庫,只不過該倉庫位於電腦的存儲設備上。通常,這些數據面向一個組織、部門或整個企業,它們是按照一定的數據組織模型存放在存儲器上的一組相關數據集合。例如學生成績管理系統中,學生的基本信息、學籍信息、成績信息等都是來自學生成績管理數據 ...
1.資料庫
顧名思義,資料庫DB (DataBase)即指存放數據的倉庫,只不過該倉庫位於電腦的存儲設備上。通常,這些數據面向一個組織、部門或整個企業,它們是按照一定的數據組織模型存放在存儲器上的一組相關數據集合。例如學生成績管理系統中,學生的基本信息、學籍信息、成績信息等都是來自學生成績管理資料庫的除了用戶可以直接使用的數據外,還有另外一種數據.它們是有關資料庫的定義信息,如資料庫的名稱、數據表的定義、資料庫賬戶、許可權等。這些數據用戶不會經常性的使用,但是對資料庫來說非常重要。這些數據通常存放在一個“數據字典( datadictionary)"中。數據字典是資料庫管理系統工作的依據,資料庫管理系統藉助數據字典來理解資料庫中數據的組織,並完成對資料庫中數據的管理與維護。資料庫用戶可通過數據字典獲取有用的信息,如用戶創建了哪些資料庫對象,這些對象是如何定義的,這些對象允許哪些用戶使用等。但是,資料庫用戶是不能隨便改動數據字典中的內容的。
提示:數據字典是資料庫管理系統中非常重要的組成部分之一,它是由資料庫管理系統自動生成並維護的一組表和視圖。過去人們只是把數據存放在文件櫃里,當數據逐漸增多時,從大量的文件中查找數據變得十分困難.如今人們利用電腦和資料庫科學地保存和管理大量複雜的數據,首先將要應用的大量數據收集並抽取之後,然後將其保存併進行進一步的查詢和加工處理,以獲得更多有用的信息。由此看來,資料庫是長期存儲在電腦內,有組織的、大量的、可共用的數據集合。資料庫中的數據按一定的數據模型組織、描述和存儲,具有較小的冗餘度、較高的數據獨立性和易擴展性,並可為各種用戶共用.
2.資料庫管理系統
在建立了資料庫之後,由資料庫管理系統〔DataBase Management System. DBMS)實現對資料庫中數據進行各種管理與操縱,科學地組織和存儲數據、高效地獲取和維護數據、完成用戶賬戶的建立和許可權的分配,以及向用戶提供各種操作功能。資料庫管理系統(DBMS)是指資料庫系統中對數據進行管理的軟體系統,它是資料庫系統的核心組成部分,資料庫系統的一切操作,包括查詢、更新及各種控制,都是通過DBMS進行的 .DBMS總是基於數據模型,因此可以把它看成是某種數據模型在電腦系統上的具體實現。根據所採用數據模型的不同,DBMS可以分成網狀型、層次型、關係型、面向對象型等。但在不同的電腦系統中,由於缺乏統一的標準,即使是同種數據模型的DBMS,它們在用戶介面、系統功能等方面也是不同的關係型DBMS是目前最流行的DBMS,常見的如Oracle, MS SQL Server, DB2等如果用戶要對資料庫進行操作,是由DBMS把操作從應用程式帶到外部級、概念級,再導向內部級,進而操縱存儲器中的數據。一個DBMS的主要目標是使數據作為一種可管理的資源來處理.DBMS應使數據易於為各種不同的用戶所共用,應該增進數據的安全性、完整性及可用性,並提供高度的數據獨立性。
3資料庫系統
資料庫系統(DataBaseSystem, DBS)是指在電腦系統中引入資料庫後的系統,一般由資料庫、資料庫管理系統(及其開發工具)、應用系統和資料庫管理員構成,如圖1.1所示。需要註意的是,資料庫的建立、使用和維護等工作只靠一個DBMS是遠遠不夠的,還要有專門的人員來完成,這些人被稱為資料庫管理員(DaWBaseAdministrator. DBA)
圖1.1資料庫系統
通常,在不引起混淆的情況下,人們將資料庫系統簡稱資料庫.資料庫系統在電腦系統中的地位如圖1.2所示.資料庫系統的組成包括硬體平臺、資料庫、軟體系統、應用系統和相關人員等.
圖12資料庫在電腦系統中的地位
3.1.硬體平臺及資料庫
硬體系統主要指電腦各個組成部分。鑒於資料庫應用系統的需求,特別強調資料庫主機或資料庫伺服器外存要足夠大,v0存取效率要高,主機的吞吐量要大、作業處理能力要強。對於分散式資料庫而言,電腦網路也是基礎環境,其具體介紹如下:
- 要有足夠大的記憶體,存放操作系統和DBMS的核心模塊、資料庫緩衝區和應用程式。
- 有足夠大的磁碟等直接存取設備存放資料庫,有足夠的光碟、磁碟、磁帶等作為數據各份介質.
- 要求連接系統的網路有較高的數據傳輸率。
- 有較強處理能力的中央處理器(CPU)來保證數據處理的速度.
3.2.軟體
資料庫系統的軟體需求,主要包括如下幾個方面:
- DBMS. DBMS是為資料庫的建立、使用和維護配置的軟體.
- 支持DBMS運行的操作系統。
- 與資料庫通信的高級程式語言及編譯系統
- 為特定應用環境開發的資料庫應用系統。
3.3.資料庫管理員及相關人員
資料庫有關人員包括資料庫管理員、系統分析員、應用程式員和普通用戶,其各自職責如下所述:
(I)資料庫管理員
資料庫管理員(DBA)負責管理和監控資料庫系統,負責為用戶解決應用中出現的系統問題。為了保證資料庫能夠高效正常地運行.大型資料庫系統都設有專人負責資料庫系統的管理和維護。資料庫管理員在資料庫管理系統的正常運行中起著非常重要的作用。其主要職責如下:
.決定資料庫中的信息內容和結構.資料庫中要存放哪些信息,DBA要參與決策.因此DBA必須參加資料庫設計的全過程,並與用戶、應用程式員、系統分析員密切合作共同協商,做好資料庫設計工作
.決定資料庫的存儲結構和存取策略。
.監控資料庫的運行(系統運行是否正常,系統效率如何),及時處理資料庫系統運行過程中出現的問題。比如系統發生故障時,資料庫會因此遭到破壞,DBA必須在最短的時間內把資料庫恢復到正確狀態。
.安全性管理,通過對系統的許可權設置、完整性控制設置來保證系統的安全性。DBA要負責確定各個用戶對資料庫的存取許可權、數據的保密級別和完整性約束條件。
.日常維護,如定期對資料庫中的數據進行備份、維護日誌文件等。
.對資料庫有關文檔進行管理.
(2)系統分析員和資料庫設計人員
系統分析員負責應用系統的需求分析和規範說明,和用戶及DBA一起,確定系統的硬體、軟體配置,並參與資料庫系統概要設計。
(3)應用程式員
應用程式員是負責設計、開發應用系統功能模塊的軟體編程人員,他們根據資料庫結構編寫特定的應用程式.併進行調試和安裝
(4)用戶
這裡的用戶是指最終用戶。最終用戶通過應用程式的用戶介面使用資料庫.常用的介面方式有瀏覽器、菜單驅動、表格操作、圖形顯示、報表等。
4資料庫模式
資料庫系統結構是資料庫的一個總的框架.儘管實際的資料庫系統軟體產品多種多樣。支持不同的數據摸型.使用不同的資料庫語言,建立在不同的操作系統之上,但絕大多數資料庫系統在總的體繫結構上都具有三級模式的結構特征學習資料庫的三級模式將有助於理解資料庫設計及應用中的一些基本概念。
4.1資料庫的三級模式
資料庫的三級模式分為外模式、概念模式和內模式,如圖1.3所示
圖13資料庫系統結構—三級模式
(1)概念模式
概念模式也稱模式,是對資料庫中全局數據邏輯結構的描述,是全體用戶公共的數據視圖。這種描述是一種抽象描述,不涉及具體硬體環境與平臺,也與具體軟體環境無關概念模式主要描述數據的概念記錄類型及其關係,還包括數據間的一些語義約束,
對它的描述可用DBMS中的DDL定義。
(2)外模式(External Schema)
外模式也稱子模式(Subschema)或用戶模式,它是資料庫用戶(包括應用程式員和最終用戶)能夠看見和使用的局部數據的邏輯結構和特征的描述,是資料庫用戶的數據視圖,是與某一應用有關的數據的邏輯表示。外模式通常是模式的子集。一個模式可以有多個外模式。由於它是各個用戶的數據視圖,如果不同的用戶在應用需求、看待數據的方式、對數據保密的要求等方面存在差長度、保密級別等都可以不同。另外,同一外模式也可以為某一用戶的多個應用系統所使用,但一個應用程式只能使用一個外模式。
DBMS提供子模式數據描述語言(子模式DDL)來嚴格定義格式。
提示:外模式是保證資料庫安全性的一個有力措施.應的外模式中的數據,資料庫中的其他數據是看不到的。
(3)內模式(Intemal Schema)
每個用戶只能看到和訪問所對內模式也稱存儲模式(Storage Schema).結構和存儲方式的描述控制方面的細節。一個模式只有一個內模式.它是數據物理定義所有的內部記錄類型、索引和文件的組織形式,以及數據內部記錄並不涉及到物理記錄,也不涉及到設備的約束.儲和訪問的那些軟體機制是操作系統的一部分,即文件系統。到磁碟上的操作等。比內模式更接近於物理存如從磁碟讀數據或寫數據DBMS提供內模式數據描述語言(內模式DDL)來嚴格地定義內模式。
4.2.資料庫的二級映像
資料庫系統的模式、內模式、外模式之間有很大的差別,為了實現用戶和數據之間的透明化,DBMS提供了兩層映像外模式/模式映像和模式/內模式映像。有了這兩層映像·用戶就能邏輯地、抽象地處理數據,而不必關心數據在電腦中的具體表示方式與存儲方式.正是這兩層映像保證了資料庫系統中的數據能夠具有較高的邏輯獨立性和物理獨立性.
提示:映像實質上是一種對應關係,是指映像雙萬如何進行數據轉輓,並定義轉換規則。這樣就能使數據獨立性得到保證。
(1)外模式/模式映像
資料庫的每一個外模式都有一個外模式/模式映像,它定義了該外摸式與模式之間的對應關係,外模式廠模式映像一般是在外模式.
模式描述的是數據的全局邏輯結構,外模式描述的是數據的局部邏輯結構對應於同一個模式可以有任意多個外模式。對於每一個外模式,模式映像,它定義了該外模式與模式之間的對應關係的描述中.資料庫系統都有一個外模式/這些映像通常包含在各自外模式如果模式需要進行修改,的數據類型等例如數據重新定義、增加新的關係、新的屬性、改變屬性那麼只需對各個外模式/模式的映像做相應的修改,使外模式儘量保持不變,而應用程式一般是依據外模式編寫的,因此應用程式也不必修改據與程式的邏輯獨立性,這就是數據的邏輯獨立性.
(2)模式/內模式映像
從而保證了數模式/內模式映像是唯一的,因為資料庫只有一個模式和內模式。它存在於模式和內模式之間,由於兩級模式之間的數據結構可能不一致,甚至可能差別很大。模式/內模式映像定義了模式和內模式之間的對應關係,即數據全局邏輯結構與存儲結構之間的對應關係。模式/內模式映像一般是在模式中描述的。當資料庫的存儲結構改變時,由資料庫管理員對模式/內模式映像做相應改變,可以使模式保持不變,因此應用程式也不必改變.這就保證了數據與程式的物理獨立性。簡稱數據的物理獨立性.在資料庫的三級模式結構中,資料庫模式即全局邏輯結構是資料庫的中心與關鍵,它獨立於資料庫的其他層次。因此設計資料庫模式結構時應首先確定資料庫的邏輯模式。
資料庫的內摸式依賴於它的全局邏輯結構,但獨立於資料庫的用戶視圖即外模式,也獨立於具體的存儲設備。它是將全局邏輯結構中所定義的數據結構及其聯繫按照一定的物理存儲策略進行組織,以實現達到較好的時間與空間效率的目的。
資料庫的外模式面向具體的應用程式,它定義在邏輯模式之上,但獨立於存儲模式和存儲設備。當應用需求發生較大變化,相應外模式不能滿足其視圖要求時,該外模式就得做相應改動,所以設計外模式時應充分考慮到應用的擴充性。特定的應用程式是在外模式描述的數據結構上編製的,它依賴於特定的外模式,與資料庫的模式和存儲結構獨立.
註意:不同的應用程式有時可以共用同一個外模式資料庫的二級映像保證了資料庫外模式的穩定性,從而從底層保證了應用程式的穩定性,除非應用需求本身發生變化,否則應用程式一般不需要修改。
數據與程式之間的獨立性,使得數據的定義和描述可以從應用程式中分離出去。另外,由於數據的存取由DBMS管理,用戶不必考慮存取路徑等細節,從而簡化了應用程式的編製,大大減少了應用程式的維護和修改工作。
5.數據模型
模型是現實世界特征的模擬與抽象比如一組建築規劃沙盤,精緻逼真的飛機航模,都是對現實生活中的事物的描述和抽象,見到它就會讓人們聯想到現實世界中的實物.數據模型(Data Model)也是一種模型,它資料庫中用於提供信息表示和操作手段的形式構架,是資料庫中用來對現實世界進行抽象的工具。由於電腦不可能直接處理現實世界中的具體事物,因此人們必須事先把具體事物轉換成電腦能夠處理的數據,即首先要數字化,要把現實世界中的人、事、物、概念用數據棋型這個工具來抽象、表示和加工處理.數據模型按不同的應用層次分為3種類型,分別是概念數據模型(conceptual datamodel),邏輯數據摸型(logicdata model)和物理數據模型(physical data model).
1.概念數據模型
概念數據模型又稱概念模型,是一種面向客觀世界、面向用戶的模型,與具體的資料庫管理系統無關,與具體的電腦平臺無關。人們通常先將現實世界中的事物抽象到信息世界,建立所謂的“概念模型”,然後再將信息世界的模型映射到機器世界,將概念模型轉換為電腦世界中的模型。因此,概念模型是從現實世界到機器世界的一個中間層次.
2.邏輯數據模型
邏輯數據模型又稱邏輯模型,是一種面向資料庫系統的模型,它是概念模型到電腦之間的中間層次。概念棋型只有在轉換成邏輯模型之後才能在資料庫中得以表示。目前,邏輯棋型的種類很多。其中比較成熟的包括層次模型、關係模型、網狀模型、面向對象模型等.
上述4種數據模型的根本區別在於數據結構不同,即數據之間聯繫的表示方式不同,具體介紹如下:
- 層次模型用“樹結構”來表示數據之間的聯繫。
- 關係模型用“二維表”來表示數據之間的聯繫。
- 網狀模型用“圖結構”來表示數據之間的聯繫.
- 面向對象模型用“對象”來表示數據之間的聯繫。
3.物理數據模型
物理數據模型又稱物理模型,模型在電腦物理結構上的表示。通常,數據模型由數據結構、型的三大要素。
6.數據完整性約束
它是一種面向電腦物理表示的模型,此模型是數據數據操縱和完整性約束三部分組成,這也稱為數據模數據的完整性約束是對數據描述的某種約束條件,關係型數據模型中可以有三類完整性約束實體完整性、參照完整性和用戶定義的完整性.
1.實體完整性(Entity Integrity)
一個基本關係通常對應現實世界的一個實體集。例如學生關係對應於學生的集合現實世界中的實體是可區分的,即它們具有某種唯一性標識。相應地,關係模型中以主碼作為唯一性標識.主碼中的屬性即主屬性不能取空值。所謂空值即指“無意義“的值。如果主屬性取空值,就說明存在某個不可標識的實體,即存在不可區分的實體,這與現實世界的應用環境相矛盾,因此這個實體一定不是一個完整的實體。實體完整性規則:若屬性A是基本關係R的主屬性,則屬性A不能取空值。
2.參照完整性〔Referential工ntegrity )
現實世界中的實體之間往往存在某種聯繫,在關係模型中實體及實體間的聯繫都是用關係來描述的.這樣就自然存在著關係與關係間的引用。設F是基本關係R的一個或一組屬性,但不是關係R的碼,如果F與基本關係S的主碼Ks相對應,則稱F是基本關係R的外碼(Foreign key),並稱基本關係R為參照關係(Referencing relation),基本關係S為被參照關係(Referenced relation)或目標關係(Target relation)。關係R和S不一定是不同的關係。參照完整性規則就是定義外碼與主碼之間的引用規則。參照完整性規則描述如下:
若屬性(或屬性組)F是基本關係R的外碼,它與基本關係S的主碼Ks相對應(基本關係R和5不一定是不同的關係).則對於R中每個元組在F上的值必須為:取空值((F的每個屬性值均為空值),或等於s中某個元組的主碼值
【例1.11下麵列出的幾種情況說明瞭參照完整性規則在關係中如何實現的.在關係資料庫中有下列兩個關係模式學生關係模式:s(學號,姓名,性別,年齡,班級號,系別),PK(學號)學習關係棋式:SC(學號,課程號。成績),PK(學號,課程號),FKI(學號),FK2(課程號)據規則要求關係SC中的“學號”值應該在關係S中出現。如果關係SC中有一個元組(S07,C04,80),而學號S07卻在關係S中找不到,那麼就認為在關係SC中引用了一個不存在的學生實體,這就違反了參照完整性規則。另外,在關係SC中“學號即不僅是外鍵,也是主鍵的一部分,因此這裡“學號”值不允許為空。
3.用戶定義的完整性(user-defined Integrity )
實體完整性和參照完整性適用於任何關係資料庫系統。除此之外,不同的關係資料庫系統根據其應用環境的不同,往往還需要一些特殊的約束條件。用戶定義的完整性就是針對某一具體關係資料庫的約束條件,它反映某一具體應用所涉及的數據必須滿足的語義要求。關係模型應提供定義和檢驗這類完整性的機制,以便用統一的系統方法處理它們,而不要由應用程式承擔這一功能。
【例1.2]例1中的學生關係模式s,學生的年齡定義為兩位整數,但範圍還很大,為此用戶可以寫出如下規則把年齡限制在15--30歲之間:
CHECK(AGE BETWEEN 15 AND 30)
7.聯機事務處理和聯機分析處理
聯機事務處理(OnLine Transaction Processing. OLTP )是資料庫應用系統的鼓底層的應用,主要用於完成資料庫應用系統的各項業務處理。OLTP是資料庫應用系統發展中最早也是最迫切要求被實現的一層,它可以直接替代手工勞動,極大地提高工作效率。它的應用需求推動了資料庫技術,尤其是關係資料庫的發展隨著,而後者又為其提供了強有力的支持.OLTP系統的成熟,人們一方面在研究數據處理技術還可以帶來什麼,另一方面又被OLTP產生的大量數據淹沒時,E.F.Codd博士提出了聯機分析處理(OaLineAnalytical Processing, OLAP)的概念。OL人P是一種軟體技術,它使分析人員、經理和執行官能夠迅速、一致、交互地從各個方面觀察信息,以達到深入理解數據的目的。這些信息是由OLTP系統中的原始數據轉換過來的,按照用戶的理解,它反映了用戶環境真實的方方面面,為中層領導和高層決策提供了參考和依據。
提示:聯機事務處理和聯機分析處理代表了數據處理技術和數習感應用的兩個層次:
聯機事務處理提高了工作效率和工作質量;聯機分析處理從領導和決策出發,全面、真實、直觀地反映經營活動的各個方面
8.數據倉庫
支持大量數據信息存儲的叫做支持數據倉儲或數據倉庫當把幾個小型資料庫集成為一個大型資料庫,併為一個較廣泛的組織服務時,如果該資料庫存儲歷史數據,提供決策支持,提供數據彙總,提供只讀數據,井且實質上充當所有向它提供數據的相關成品資料庫的數據接收器,那麼它通常被叫做數據倉庫(DataWarchouse)數據倉庫體繫結構可以容納各種格式的內部和外部數據,其中包括各種經營數據、歷史數據、現行數據、訂閱數據及來自Internet服務商的數據,還必須包括易於訪問的元數據。從而能夠提供訪問和綜合來自各種數據商店的數據,進行複雜的數據分析.建各翼賣筆馨攝馨瓮菇人WH.1_於,996年在《Building the Data Wuehouse》中明確給出數據倉庫的定義是:數據倉庫是面向主題的、完整的、非易失的、隨時間變化的、用於支持決策管理的數據集合.其主要特征如下:
1面向主題
與OLTP面嚮應用進行數據組織相對應,數據倉庫的數據被劃分成一個個的主題域。主題是一個抽象的邏輯概念.是在一個較高層次上將數據分析歸類的標識。對應於一個巨集觀的分析領域,如政策、市場分析、價格趨勢等。主題域應該具有獨立性和完整性。數據信息按主題進行組織,為按主題進行決策提供信息.
2.完整性
數據在進入數據倉庫之前,不是簡單從各個業務系統中抽取出來的,必須經過系統加工、彙總和整理,從而使數據倉庫內的信息是關於企業的、一致的、全局的數據信息這一步是數據倉庫建設中最關鍵、最複雜的一步,它完成了元數據從面嚮應用到面向主題的轉變
3.穩定性
與OLTP系統不同,數據按照一定的周期升級到數據倉庫中,包括複雜提取、概括、聚集和老化的過程.數據一旦進入數據倉庫以後,在一般情況下長期保留。也就是說,數據倉庫基本上是只讀的,反映的是歷史數據的內容,是不同時點的資料庫快照的集合,以及基於這些快照的通過統計、綜合和重組所導出的數據,而不是OLTP系統的數據它所涉及的操作主要是查詢操作,用戶不能對其進行刪除或更新.一旦數據超過了數據倉庫的數據存儲期限,這些數據將從當前的數據倉庫中刪去。
4時變性
數據倉庫內的信息包括了企業各個歷史時期的數據,而不只是企業當時或某一時間點上的數據,用以支持數據分析,它可提供對數據的瞬時分析並衍生出數據值或對企業的發展歷程和未來趨勢分析等功能。所謂變化即指數據倉庫中存儲的大量歷史數據、當前數據和綜合數據等,它們處於永遠的發展變化中。引起變化的因素包括新的數據內容的引入、舊的數據的刪除以及重新綜合數據等.