文章目錄
- 1.資料庫的出現的必要性和對資料庫的要求
- 資料庫的概念分層
- 2.資料模型
- 3.資料庫語言
- 應用程式體繫結構
資料庫管理系統:有一個互相關聯的資料的集合和一組用以訪問這些資料的程式組成,這個資料集合就叫做資料庫。上來就先寫上一個概念,作為這本書的主線。
1.資料庫的出現的必要性和對資料庫的要求
儘管檔案系統可以解決不少問題,但是下面的問題是檔案系統所無法解決的,如果給檔案系統加上這些特性,那麼檔案系統也就成為了一個資料庫(有點裸裝置的味道)。
- 資料的冗餘和不一致:重複資料多,而且對於分布式,有可能出現資料無法同步的問題。
- 資料訪問困難。
- 資料孤立:說的是因為資料存放區沒有採取同樣的格式,使得使用統一的介面訪問資料變得不可能。
- 完整性問題:說的是實現資料約束比較困難,書中給的例子是比如說給某一個賬戶定一個最低存款額度。
- 原子性問題:說的就是交易處理了,如何保證一個操作的完整性。例如銀行轉賬。
- 並發訪問:這也是交易處理的一部分,資料庫需要應對同時異地對同一個資料操作的可能。
- 安全性問題:主要是資料庫存取權限問題。
資料庫的概念分層
- 物理層:定義資料的儲存格式。能夠涉及者一層的人是資料庫軟體開發人員。
- 邏輯層:定義資料以及資料之間的關係。能夠涉及這一層的人是資料庫的設計者。
- 視圖層:定義最終展現在客戶面前的資料的格式。涉及這一層的是資料庫用戶端的開發人員,以及最終的使用者。
這三層從上到下層層透明。使用者不關心資料庫結構,資料庫設計開發人員不關心儲存結構。
2.資料模型
- 實體————聯絡模型
- 關聯式模式
這兩個模型看起來很像,事實上是,首先用實體--聯絡模型做最初的定義,然後轉化成關聯式模式。關聯式模式是目前使用最廣泛的資料庫模型。
3.資料庫語言
資料庫語言通常由兩個部分組成,(1)DDL——資料定義語言 (Data Definition Language)。(2)DML——資料操縱語言。最常用的資料庫語言就是SQL。
應用程式體繫結構
有了資料庫,如何高效安全的訪問就成了問題,這需要開發人員作出用戶端軟體。而開發這種軟體通常遵循的模式有兩種。
- 兩層模式 就是通常的資料庫-用戶端模式。這種模式的優點是高效,缺點是安全性,並發性和可分布性不好。比較適用於小型的資料庫軟體開發。
- 三層模式:就是 資料庫——伺服器——應用程式三層模式。這種模式的一個經典執行個體就是JSP/Servlet —— EJB —— DataBase 模型。這種模型的好處是,容易移植和維護,用戶端不用關心背景資料庫,資料庫不用關心外面的用戶端,一些都由中間的伺服器層來搞定。缺點就是效率不高。無法針對某種應用進行比較有針對性的最佳化和設計。