官术网_书友最值得收藏!

1.3 數據庫系統結構

數據庫系統產品很多,雖然它們建立于不同的操作系統之上,支持不同的數據模型,采用不同的數據庫語言,但它們在體系結構上通常都具有相同的特征,即采用三級模式結構,并提供兩級映像功能。

1.3.1 三級模式結構

從數據庫管理系統角度來看,數據庫系統內部的體系結構通常采用三級模式結構,即由外模式、模式和內模式組成。數據庫系統的模式結構如圖1-7所示。

圖1-7 數據庫系統的三級模式結構

1.模式(Schema)

模式(也稱概念模式或邏輯模式)是數據庫中全體數據的邏輯結構特征的描述,是所有用戶的公用數據庫結構。它描述了現實世界中的實體及其性質與聯系,具體定義了記錄型、數據項、訪問控制、保密定義、完整性(正確性與可靠性)約束以及記錄型之間的各種聯系。

模式有如下特性。

1)一個數據庫只有一個模式。

2)模式與具體應用程序無關,它只是裝配數據的一個框架。

3)模式用語言描述和定義,需定義數據的邏輯結構、數據有關的安全性等。

2.外模式(External Schema)

外模式(也稱子模式或用戶模式)是數據庫用戶所見和使用的局部數據的邏輯結構和特征的描述,是用戶所用的數據庫結構。外模式是模式的子集,它主要描述用戶視圖各記錄的組成、相互聯系、數據項的特征等。

外模式有如下特性。

1)一個數據庫可以有多個外模式;每個用戶至少使用一個外模式。

2)同一個用戶可使用不同的外模式,而每個外模式可為多個不同的用戶所用。

3)模式是對全體用戶數據及其關系的綜合與抽象,外模式是根據所需對模式的抽取。

3.內模式(lnternal Schema)

內模式(也稱存儲模式)是數據物理結構和存儲方法的描述。它是整個數據庫的最底層結構的表示。內模式中定義的是存儲記錄的類型,存儲域的表示,存儲記錄的物理順序、索引和存取路徑等數據的存儲組織,如存儲方式按哈希方法存儲,索引按順序方式組織,數據以壓縮、加密方式存儲等。

內模式有如下特性。

1)一個數據庫只有一個內模式。內模式對用戶透明。

2)一個數據庫由多種文件組成,如用戶數據文件、索引文件及系統文件等。

3)內模式設計直接影響數據庫的性能。

關系數據庫的邏輯結構就是表格框架。圖1-8是關系數據庫三級結構的一個實例。

圖1-8 關系數據庫三級結構的一個實例

物理模式的設計目標是將系統的模式(全局邏輯模式)組織成最優的物理模式,以提高數據的存取效率,改善系統的性能指標。

以物理模式為框架的數據庫稱為物理數據庫。在數據庫系統中,只有物理數據庫才是真正存在的,它是存儲在外存的實際數據文件;而概念數據庫和用戶數據庫在計算機外存上是不存在的。

用戶數據庫、概念數據庫和物理數據庫三者的關系如下。

1)概念數據庫是物理數據庫的邏輯抽象形式。

2)物理數據庫是概念數據庫的具體實現。

3)用戶數據庫是概念數據庫的子集,也是物理數據庫子集的邏輯描述。

三層模式體系結構具有以下特點。

1)有了外模式后,應用程序員不必關心邏輯模式,只與外模式發生聯系,按照外模式的結構存儲和操縱數據。

2)邏輯模式無須涉及存儲結構、訪問技術等細節。一個數據庫只有一個模式,定義模式時不僅要定義數據的邏輯結構,而且要定義數據之間的聯系,定義與數據有關的安全性要求。所有數據庫終端用戶看到各自的數據視圖,都是這個全局數據視圖的一部分,模式應能支持所有數據庫終端用戶的數據視圖。

3)內模式其實也不涉及物理設備的具體細節,它是基于文件管理模塊(通常是操作系統中的文件系統)來進行存儲和訪問的,例如從磁盤讀數據或寫數據到磁盤上等。

4.數據獨立性與二級映像功能

三層模式的數據結構可以不一致,例如屬性類型的命名和組成可以不一樣,通常通過三層模式之間的映射來說明外模式、模式和內模式之間的對應性。

數據獨立性是指數據與程序間的互不依賴性,一般分為物理獨立性與邏輯獨立性。

物理獨立性是指數據庫物理結構的改變不影響邏輯結構及應用程序。即數據的存儲結構的改變,如存儲設備的更換、存儲數據的位移、存取方式的改變等都不影響數據庫的邏輯結構,從而不會引起應用程序的變化,這就是數據的物理獨立性。

邏輯獨立性是指數據庫邏輯結構的改變不影響應用程序。即數據庫總體邏輯結構的改變,如修改數據結構定義、增加新的數據類型、改變數據間聯系等,不需要相應修改應用程序,這就是數據的邏輯獨立性。

數據庫系統的三級模式是對數據的三個抽象級別,它把數據的具體組織留給DBMS管理,使用戶能邏輯地、抽象地處理數據,而不必關心數據在計算機中的具體表示方式和存儲方式。為了能夠在內部實現這三個抽象層次的聯系和轉換,數據庫管理系統在這三級模式之間提供了兩層映射:外模式/模式映射和內模式/模式映射。正是這兩層映射保證了數據庫系統中的數據具有較高的邏輯獨立性和物理獨立性。

為實現數據獨立性,數據庫系統在三級模式之間提供了兩級映像。

(1)外模式/模式映射

模式描述的是數據的全局邏輯結構,外模式描述的是數據的局部邏輯結構。對應于同一個模式可以有任意多個外模式。對于每一個外模式,數據庫系統都有一個外模式/模式映射,它定義了該外模式與模式之間的對應關系。這些映射定義通常包含在各自外模式的描述中。

當模式改變時(例如,增加新的關系、新的屬性、改變屬性的數據類型等),由數據庫管理員對各個外模式/模式的映射做相應改變,可以使外模式保持不變。應用程序是依據數據的外模式編寫的,從而應用程序不必修改,保證了數據與程序的邏輯獨立性,簡稱數據的邏輯獨立性。

(2)內模式/模式映射

數據庫中只有一個模式,也只有一個內模式,所以內模式/模式映射是唯一的,它定義了數據庫全局邏輯結構與存儲結構之間的對應關系。例如,說明邏輯記錄和字段在內部是如何表示的。該映射定義通常包含在模式描述中。當數據庫的存儲結構改變(例如,選用了另一種存儲結構)時,由數據庫管理員對內模式/模式映射做相應改變,可以使模式保持不變,從而應用程序也不必改變,保證了數據與程序的物理獨立性,簡稱數據的物理獨立性。

數據與程序之間的獨立性,使得數據的定義和描述可以從應用程序中分離出去。另外,由于數據的存取由DBMS管理,用戶不必考慮存取路徑等細節,從而簡化了應用程序的編制,大大減少了應用程序的維護和修改方面的工作。

兩級映像有如下特性。

1)模式/內模式映像是唯一的。當數據庫的存儲結構改變時,如采用了更先進的存儲結構,由數據庫管理員對模式/內模式映像做相應改變,可以使模式保持不變,從而保證了數據的物理獨立性。

2)子模式/模式映像不唯一。當模式改變時,如增加新的數據項、數據項改名等,由數據庫管理員對各個子模式/模式的映像做相應改變,可以使子模式保持不變,從而保證了數據的邏輯獨立性。

例如,在圖1-8中,若模式“學生表結構”分解為“學生表1-簡表”和“學生表2-檔案表”兩部分,此時子模式“成績單結構”,只需由這兩個新表和原來的“學生選課表結構”映射產生即可,不必修改子模式,因而也不會影響原應用程序,故在一定程度上實現了數據的邏輯獨立性。

以上所述說明,正是這三級模式結構和它們之間的兩層映像,保證了數據庫系統的數據能夠具有較高的邏輯獨立性和物理獨立性。有效地實現三級模式之間的轉換是DBMS職能。

:模式與數據庫的概念是有區別的。模式是數據庫結構的定義和描述,只是建立一個數據庫的框架,它本身不涉及具體的數據;數據庫是按照模式的框架裝入數據而建成的,它是模式的一個“實例”。數據庫中的數據是經常變化的,而模式一般是不變或很少變化的。

5.三級模式結構與兩層映像的優點

數據庫系統的三級模式結構與兩層映像的優點如下。

1)保證數據的獨立性。外模式與模式分開,通過模式間的外模式/模式映像保證了數據庫數據的邏輯獨立性;模式與內模式分開,通過模式間的模式/內模式映像來保證數據庫數據的物理獨立性。

2)方便用戶使用,簡化用戶接口。用戶無須了解數據的存儲結構,只需按照外模式的規定編寫應用程序或在終端輸入操作命令,就可以實現用戶所需的操作,方便用戶使用系統,也就是說,把用戶對數據庫的一次訪問,從用戶級帶到概念級,再到物理級,即把用戶對數據的操作轉化到物理級去執行。

3)保證數據庫安全性的一個有力措施。由于用戶使用的是外模式,每個用戶只能看見和訪問所對應的外模式的數據,數據庫的其余數據與用戶是隔離的,這樣既有利于數據的保密性,又有利于用戶通過程序只能操作其外模式范圍內的數據,使程序錯誤傳播的范圍縮小,保證了其他數據的安全性。

4)有利于數據的共享性。由于同一模式可以派生出多個不同的子模式,因此減少了數據的冗余度,有利于為多種應用服務。

5)有利于從宏觀上通俗地理解數據庫系統的內部結構。

1.3.2 數據庫系統體系結構

從最終用戶角度來看,數據庫系統外部的體系結構分為單用戶式、主從式、客戶/服務器式、分布式和并行結構等。數據庫體系結構從主機/終端的集中式結構發展到了網絡環境下的分布式結構、多層B/S結構、物聯網以及移動環境下的動態結構,以滿足不同應用的需求。下面介紹常見的數據庫系統體系結構。

目前,數據庫系統常見的運行與應用結構有:客戶/服務器結構、瀏覽器/服務器結構。

1.客戶/服務器結構(C/S)結構

C/S(Client/Server)結構,即客戶機和服務器結構。它是軟件系統體系結構,通過它可以充分利用兩端硬件環境的優勢,將任務合理分配到Client端和Server端來實現,降低了系統的通信開銷。目前大多數應用軟件系統都是Client/Server形式的兩層結構,由于現在的軟件應用系統正在向分布式的Web應用發展,Web和Client/Server應用都可以進行同樣的業務處理,應用不同的模塊共享邏輯組件;因此,內部的和外部的用戶都可以訪問新的和現有的應用系統,通過現有應用系統中的邏輯可以擴展出新的應用系統。這也就是目前應用系統的發展方向。

C/S結構的基本原則是將計算機應用任務分解成多個子任務,由多臺計算機分工完成,即采用“功能分布”原則。客戶端完成數據處理,數據表示以及用戶接口功能;服務器端完成DBMS的核心功能。這種客戶請求服務、服務器提供服務的處理方式是一種新型的計算機應用模式。

2.瀏覽器/服務器(B/S)結構

B/S結構(Browser/Server,瀏覽器/服務器模式),是Web興起后的一種網絡結構模式,Web瀏覽器是客戶端最主要的應用軟件。這種模式統一了客戶端,將系統功能實現的核心部分集中到服務器上,簡化了系統的開發、維護和使用。客戶機上只要安裝一個瀏覽器(Browser),如火狐、Internet Explorer,服務器安裝Oracle、Sybase、Informix或SQL Server等數據庫。瀏覽器通過Web Server同數據庫進行數據交互。

B/S最大的優點就是可以在任何地方進行操作而不用安裝任何專門的軟件,只要有一臺能上網的計算機就能使用,客戶端零安裝、零維護。系統的擴展非常容易。B/S結構的使用越來越多,特別是由需求推動了AJAX技術的發展,它的程序也能在客戶端計算機上進行部分處理,從而大大地減輕了服務器的負擔;并增加了交互性,能進行局部實時刷新。

主站蜘蛛池模板: 大洼县| 凤城市| 兴城市| 固始县| 枣庄市| 宁夏| 读书| 西林县| 策勒县| 车险| 嘉善县| 新乡市| 大新县| 宜川县| 阜新市| 浦江县| 安仁县| 勐海县| 龙胜| 河东区| 韶山市| 浏阳市| 辉县市| 阿巴嘎旗| 怀宁县| 微博| 信阳市| 米泉市| 丘北县| 全椒县| 都匀市| 武鸣县| 天长市| 双流县| 泰宁县| 常熟市| 合作市| 于都县| 思茅市| 吉林省| 东平县|