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時變性
數據倉庫內的信息包括了企業各個歷史時期的數據,而不只是企業當時或某一時間點上的數據,用以支持數據分析,它可提供對數據的瞬時分析並衍生出數據值或對企業的發展歷程和未來趨勢分析等功能。所謂變化即指數據倉庫中存儲的大量歷史數據、當前數據和綜合數據等,它們處於永遠的發展變化中。引起變化的因素包括新的數據內容的引入、舊的數據的刪除以及重新綜合數據等.