關聯式資料庫的設計,以及存取資料庫的程式碼--對於一個系統的效能有著相當深遠的影響。而一個先天不良的設計,即使用了威力再強的硬體,功能再多的軟體,再怎麼經過調校的資料和程式碼,都無法使得系統跑得順暢和有效率。儘管資料庫和程式的設計是這麼的重要,市面上卻難以找到如何做好設計的書籍,本書則填補了這個間隙。
Oracle Design 涵蓋了所有設計上的範圍,從專案管理到特殊資料庫的設計和程式撰寫的技巧。本書專為分析師,設計師,開發人員等任何關心系統效能的人所撰寫。範圍涵蓋了:
* 設計的基礎-設計師該作些什麼,Oracle 7 的特色,"Oracle 8 先賭為快"等等。本書用了一個樣本系統並且在資料模型(個體、關係、屬性、個體模型、功能從屬)上作深度的討論。
* 資料庫設計-包括反正規化(denormalization)、資料型態、null值的使用、key、索引、時間性(temporal)資料、import/export、備份、回復(recovery)、安全、存檔(archiving)及稽查等相關議題。
* 特定的架構及環境-主從式架構、分散式資料庫、資料倉儲以及平行處理。
* 程式碼設計-包括矩陣(metrics)、原型、鎖定、開發工具的選擇以及操作畫面、報表、批次程式、線上求助、導覽的設計。
“這本書在 Oracle 產品及其使用者的鴻溝上搭起了友誼的橋樑。實在難得有這樣一本教你如何在Oracle上設計出好系統的書。我的書架上當然少不了她囉!”
─ Graham Wood,Oracle 系統部門經理
Oracle Design 是一本任何想在Oracle上設計好的應用系統的人,都該擁有的一本書。本書在資料庫、特定架構及程式模組的設計上很有幫助。在主從式架構、資料倉儲和開發工具的選擇上,提供了相當有用的資訊。
─Mark Gurry, Oracle Performance Tunning作者
由於本書中文版於去年出版之際,逢 Oracle 改版為 Oracle8,進而改為 Oracle8i,一波三折,導致讀者一等再等,為回饋讀者,特將原文書《Oracle8 Design & Tip》與其合併成一本。
目錄
前言
譯序
Oracle 導覽
第一部份 資料庫設計概論
第一章 簡介
什麼是資料庫設計?
實戰演練
尋找不同的解決方法
設計階段的規劃
設計階段的工作
第二章 為什麼「設計」如此重要?
針對特定的架構來作設計
為系統效能而設計
其它設計上的考量
針對 Oracle7 設計
Oracle8 簡介
第三章 資料模型
模型的種類
什麼是資料模型?
ERD
確保概念性資訊模型的品質
資料導向的設計以及 Meta Models
第二部分 資料庫設計
第四章 反正規化的時機
反正規化:是什麼?為何要做反正規化?又何時做呢?
實作「反正規化」
其他型態的反正規化
第五章 選擇資料型態和 NULL 值
可用的資料型態
數字資料型態
日期和時間資料型態
字串資料型態
非結構化資料和 BLOBs
其他的資料型態
Null 值
第六章 KEY 與索引的選擇
主鍵的選擇
其他的鍵值
索引概述
索引的種類和技巧
第七章 時間性資料的處理
時間性資料的問題
設計時間性資料庫
本章總結
第八章 資料的載入與輸出
與外部系統打交道
資料相容性問題
資料轉移的步驟
資料轉換
檔案格式
排序、回復、和 Commit 的頻率
使用 SQL*Loader
從 Oracle7 到 Oracle7﹕一個特例
輸出資料
第九章 物件的配置與儲存
物件的配置
估計大小
設定儲存參數
建立手稿
實施計劃
第十章 資料保全
存檔
稽查
安全
備份
第三部份 特殊架構的設計
第十一章 主從式資料庫的設計
為什麼要用主從式架構?
什麼是主從式架構?
需要什麼樣的硬體?
主從式系統的基本設計問題
主從式系統的設計
SQL*Net 的基本概念
解析 SQL 指令
減少中間人
特別的設計考量
第十二章 分散式資料庫的設計
使用分散式資料庫的時機
Oracle 分散式資料庫的演進史
選擇一個資料分散策略
案例研討
使用分散式資料庫作為備援
其它的設計考量
資料分散總結
為什麼要使用資料倉儲?
第十三章 資料倉儲的設計
什麼是資料倉儲?
資料倉儲的設計問題
萃取與載入資料
巨集資料
轉換的類型和方法
透過 Data Mining 和 OLAP 工具存取資料
第十四章 平行處理的設計
為什麼需要平行處理?
平行處理的設計
PQO
OPS
第十五章 程式設計的介紹
分析的結果
將功能對應到模組
別忘了系統模組
原始程式碼和版本控制
樣板程式碼
關於測試的相關設計
單元設計中的 CASE 產品
第十六章 該於何處執行「作業處理」?
資料規則、作業規則和介面規則
邏輯的安排
鎖定的問題
如何對應到 3 層式架構?
第十七章 矩陣、雛型和規格
設計模組並建立矩陣
消除「特大號」模組
我們應該要做雛型嗎?
規格在哪裡?寫作模組規格的準則
指定畫面和報表的規格
指定批次作業
第十八章 鎖定
鎖定的策略
Deadlock
交易的順序性
其他的設計考量
第十九章 選擇工具
工具的種類
哪些是在選擇工具上真正重要的條件?
主從式架構的工具
全球資訊網的設計
第二十章 畫面、報表、批次程式及其它設計
操作畫面的設計
報表的設計
設計批次程式
錯誤處理
瀏覽
線上輔助
第五部份 附錄
附錄 A 現成的套裝軟體
評估套裝軟體
真的合適嗎?
套裝軟體能夠進一步的修改嗎?
大型資料模型的問題
附錄 B 一些小技巧
解決突變表格的問題
處理 Y2K 問題:從 Oracle 的角度來看
提供使用者的延伸性
Oracle 8 設計技巧
原序
第一章 Oracle8 的新功能
Oracle 的廣告訊息
Oracle8 的新功能
物件導向化
第二章 Oracle8 的方法論
Oracle8 和傳統的方法
Oracle8 和 OOAD
以元件為基礎的系統發展
由上而下或由下而上的發展方式
第三章 其他 Oracle8 的加強功能
INSTEAD OF 觸發程序
PL/SQL 的改進
3GL 呼叫
延遲限制的檢查
NOVALIDATE 選項
保護資料
第四章 Oracle8 的“超級”新功能
何謂真正的“大型”資料庫?
分割的物件
索引組織化的表格
反轉鍵索引
非結構化的資料和 LOB
支援大量使用者
Bitmap 索引
協同式索引
NOLOGGING 選項
第五章 物件(object)
關於 ORDBMS
介面
型態系統
Collection
Object View
前瞻性
第六章 Oracle8 的開發工具
Sedona
Developer/2000
Designer/2000
Object Database Designer
SQL*Plus
PL/SQL
C, C++ 和 OCI
Java
其它的工具
結論
前言
譯序
Oracle 導覽
第一部份 資料庫設計概論
第一章 簡介
什麼是資料庫設計?
實戰演練
尋找不同的解決方法
設計階段的規劃
設計階段的工作
第二章 為什麼「設計」如此重要?
針對特定的架構來作設計
為系統效能而設計
其它設計上的考量
針對 Oracle7 設計
Oracle8 簡介
第三章 資料模型
模型的種類
什麼是資料模型?
ERD
確保概念性資訊模型的品質
資料導向的設計以及 Meta Models
第二部分 資料庫設計
第四章 反正規化的時機
反正規化:是什麼?為何要做反正規化?又何時做呢?
實作「反正規化」
其他型態的反正規化
...