資料庫系統設計實作與管理 Database Systems:Design, Implementation, and Management

May 28, 2016 | Author: STM Works | Category: Types, Research, Internet & Technology
Share Embed Donate


Short Description

  《資料庫系統:設計、實作與...

Description

本試閱檔為五南所有。如欲購買此書,請至五南網站 www.wunan.com.tw 或來電(02)2705-5066

本試閱檔為五南所有。如欲購買此書,請至五南網站 www.wunan.com.tw 或來電(02)2705-5066

目 PART I



資料庫概念

第一章 資料庫系統 第二章 資料模型

PART II 第三章 第四章 第五章 第六章

設計概念

關聯式資料庫模型 實體關係(ER)塑模技術 資料表的正規化 進階資料塑模技術

PART III

進階的設計與實作

第七章 結構化查詢語言(SQL)簡介 第八章 進階 SQL 第九章 資料庫設計

PART IV

進階的資料庫概念

第十章 交易管理與同步性控制 第十一章 資料庫效能調校與查詢最佳化 第十二章 商業智慧與資料倉儲

本試閱檔為五南所有。如欲購買此書,請至五南網站 www.wunan.com.tw 或來電(02)2705-5066

PART

1 資料庫概念 第一章 資料庫系統 第二章 資料模型

本試閱檔為五南所有。如欲購買此書,請至五南網站 www.wunan.com.tw 或來電(02)2705-5066

TN7-1.資料庫系統ch1-2.indd

1

2008/12/12

上午 11:48:20

1 資料庫系統 本章重點 ●

資料與資訊間的差異



資料庫的意義、資料庫的各種類型,以及它們為什麼是決策制訂的珍貴 資產



資料庫設計的重要性



從檔案系統演進為資料庫的過程



檔案系統資料管理中的缺點



資料庫系統的主要元件,以及資料庫系統與檔案系統間的差異



資料庫管理系統(DBMS)的主要功能

前 言 好決策需要好資訊做為基礎,這些資訊都由原始事實衍生而來。這些原 始事實就是大家所熟知的資料。當儲存在資料庫中時,資料管理的效率會最 高。在本章中,你將會學到資料庫的意義、功用,以及為什麼相較於其他資 料管理方法,資料庫能產生更好的結果。另外,你也將學到各種不同類型的 資料庫,以及資料庫設計的重要性。 資料庫是由電腦檔案系統逐漸演進而來。雖然檔案系統資料管理大致已 經過時,不過了解它的特性還是有其重要性存在,因為在資料管理方面,檔 案系統存有嚴重的限制。在本章中,你也將學到資料庫系統如何減輕檔案系 統資料管理的缺點。

本試閱檔為五南所有。如欲購買此書,請至五南網站 www.wunan.com.tw 或來電(02)2705-5066

TN7-1.資料庫系統ch1-2.indd

3

2008/12/12

上午 11:48:27

資料庫系統:設計、實作與管理

 1.1 資料與資訊 如果要了解資料庫設計的驅動力量,你必須知道資料與資訊間的差異。資料 (data)指的是原始事實。「原始」指的是這些事實都未經過處理,因此無法顯示 它們的意義。例如,假設你想要知道,電腦實驗室的使用者對它所提供的服務有怎 樣的感受。通常,你會開始對這些使用者進行調查,評估電腦實驗室的績效。圖 1.1a 顯示的是網路問卷表單,可以讓使用者回答你的問題。當完成這份網路問卷表 單時,其中的原始資料會儲存至資料倉庫中,如圖 1.1b 所示。雖然手邊已經擁有某 些事實,但這種格式能提供的用途並不大,逐頁閱讀 0 與 1 這些數字無法提供深入 的見解。因此,你將原始資料轉換成資料摘要,如圖 1.1c 中所示。現在,你可以快 速了解問題的解答,像是:「實驗室顧客的屬性為何?」在這個案例中,你可以快 速判斷出,大多數顧客都是大三(24.59%)與大四(53.01%)的學生。由於圖形能 強化從資料中擷取意義的效果,因此你可以將資料摘要顯示為長條圖,如圖 1.1d 所 示。 圖 1.1

將原始資料轉換成資訊

a) 原始的問卷畫面

c) 以摘要格式顯現的資訊

4

b) 原始資料

d) 以圖形格式顯現的資訊

本試閱檔為五南所有。如欲購買此書,請至五南網站 www.wunan.com.tw 或來電(02)2705-5066

TN7-1.資料庫系統ch1-2.indd

4

2008/12/12

上午 11:48:35

 Chapter 1 資料庫系統

資訊(information)是原始資料的處理結果,目的是要彰顯它的意義。資料處 理的工作可能很簡單,像是將資料組織成適當的模型,也可以相當複雜,像是使用 統計模型進行預測或推論。如果要揭露意義,資訊必須要有文章脈絡。例如,平均 溫度 105 度並沒有太大的意義,除非你也知道它的內容:它代表的是華氏或攝氏? 這是機器的溫度、體溫或室外的溫度?資訊可以當做決策制訂的基礎。例如,問卷 表單上每個問題的資料摘要,可以指出實驗室的優點與弱點,協助你做出明智的決 定,更加符合顧客的需求。 要記得的是,原始資料必須適當地格式化,以便儲存、處理與呈現之用。例 如,在圖 1.1c 中,學生類別就經過格式化,並根據大一、大二、大三與大四生顯示 結果。受訪者的「是 / 否」回答,可能需要轉換成「Y/N」的格式,以便儲存之用。 當處理複雜的資料類型時,格式化的要求也會比較複雜,像是聲音、視訊或影像。 在當今的「資訊時代」中,正確、相關且即時的資訊,可說是做出好決策的關 鍵。同時,能否做出好的決策,也是企業在全球市場中存活的關鍵。現在,很多人 1

都說我們正邁入「知識時代」。 資料是資訊的基礎,而資訊則是知識(knowledge) 的根基,也就是資訊的主要部份,以及有關特定主題的事實。知識意味著對資訊的 熟悉性、覺悟與了解。知識的主要特徵之一就是,「新」知識可以從「舊」知識引 申出來。 讓我們整理一些重點: ●

資料是資訊的組成要素。



資訊由處理資料所產生。



資訊的作用是揭露資料的意義。



正確、相關且即時的資訊,可說是做出好決策的關鍵。



能否做出好的決策,也是組織在全球市場中存活的關鍵。 即時且有用的資訊需要正確的資料。這些資料必須適當產生,而且要以容易存

取與處理的格式儲存。就像任何基本的資源一樣,資料環境必須小心管理。資料管 理(data management)這門學科的重點,就是如何適當產生、儲存與擷取資料。了 解資料扮演的重要角色之後,資料管理是任何企業、政府機構、服務組織或慈善事 業的核心活動,就不會讓你過於驚訝了。

1. 在 1959 年,Peter Drucker 在他的《明日的地標》Landmarks of Tomorrow,這本著作中,創造出「知 識 工 作 者 」(knowledge worker) 這 個 詞 彙。 在 1994 年,Ms. Esther Dyson、Mr. George Gilder、Dr. George Keyworth 與 Dr. Alvin Toffler 引用「知識時代」 (knowledge age)的概念。

本試閱檔為五南所有。如欲購買此書,請至五南網站 www.wunan.com.tw 或來電(02)2705-5066

TN7-1.資料庫系統ch1-2.indd

5

5

2008/12/12

上午 11:48:39

資料庫系統:設計、實作與管理

 1.2 資料庫與 DBMS 簡介 通常,有效率的資料管理都需要使用電腦資料庫。資料庫(database)是許多 人可以共用的整合式電腦結構,儲存的內容包括: ●

最終使用者的資料,也就是這些使用者有興趣的原始事實。



中繼資料(metadata)或詮釋內容的資料,最終使用者的資料可以透過它們進 行整合與管理。 中繼資料提供的是資料特徵的描述,以及資料庫內容的連結關係。例如,中繼

資料元件會儲存每個資料元素的名稱;每個資料元素的數值類型(數字、日期或文 字);每個資料元素能否為空白等的資訊。因此,中繼資料提供的資訊可以補強與 擴充資料的價值與用途。簡言之,中繼資料呈現的是比較完整的資料庫內容圖像。 了解中繼資料的特徵之後,你可能會聽到有人將資料庫描繪成:「自我描述的資料 集合」。 資料庫管理系統(database management system,DBMS)指的是一組程式,可 用來管理資料庫的結構,並控制對資料庫內容的存取作業。某種程度來說,資料庫 有點像是組織非常精良的電子檔案櫃,其中則由 DBMS 這套功能超強的軟體,協 助管理檔案櫃中的內容。

 1.2.1 DBMS 的角色與優點 DBMS 扮演的是使用者與資料庫之間橋樑的角色。資料庫結構本身會以檔案 集合的形式儲存,如果要存取這些檔案中的資料,唯一的方式就是透過 DBMS。 圖 1.2 強調的重點在於,DBMS 提供單一且整合的資料庫內容檢視,給最終使用者 圖 1.2

DBMS 管理最終使用者與資料庫之間的互動 最終使用者 資料庫結構 應用程式的 資料

中繼資料

要求 顧客 單一

DBMS

最終使用者

6

資料檢視

整合 應用程式 的要求

資料

發票

最終使用 者資料

產品

本試閱檔為五南所有。如欲購買此書,請至五南網站 www.wunan.com.tw 或來電(02)2705-5066

TN7-1.資料庫系統ch1-2.indd

6

2008/12/12

上午 11:48:40

 Chapter 1 資料庫系統

或應用程式。DBMS 負責接收應用程式的所有要求,並將它們轉換成滿足這些要求 所需的複雜作業。對於應用程式與使用者,DBMS 會隱藏資料庫內部的複雜性。 應用程式可能由程式人員使用某種程式語言寫成,像是 Visual Basic.NET、Java 或 C++,或者也有可能透過 DBMS 的公用程式建立。 位於最終使用者的應用程式與資料庫之間的 DBMS,可以提供許多重要的優 點。首先,DBMS 可以讓許多應用程式或使用者分享資料庫中的資料。其次, DBMS 可以將不同使用者的資料檢視,整合為單一且周延的資料儲存庫。 由於資料是產出資訊的重要原料,你必須要有好的方法來管理這些資料。就像 你會在本書中發現的,DBMS 可以協助讓資料管理的工作更有效率,也可以讓它更 為有效。尤其,DBMS 具有以下的優點: ●

改善資料的共用能力:DBMS 可以協助建立協同工作的環境,讓最終使用者能 存取更多的資料,並將資料管理得更好。這種存取能力可以讓最終使用者,對 環境中的變遷做出快速的回應。



改善資料的安全性:愈多使用者存取資料,資料的安全風險就會愈高。企業投 資可觀的時間、精神與資金,確保企業資料都被妥當地使用。在資料隱私權與 安全原則方面,DBMS 提供的架構具有更好的強制能力。



更好的資料整合性:對管理精良的資料提供更寬廣的存取,可以促進組織作業 的整合性檢視,並對組織全貌產生更清楚的輪廓。它也能讓組織更容易看出, 公司中某個部門的動作,如何影響其他部門的作業。



將資料不一致降到最低:當相同的資料在不同地方出現不同版本時,就會產 生資料不一致(data inconsistency)的現象。例如,公司的銷售部門將業務代 表的姓名儲存為「Bill Brown」 ,而公司的人事部門卻將同一個人的姓名儲存為 「William G. Brown」 ,或公司的地區銷售辦公室將某項產品的售價顯示為 45.95 美元,而全國性辦公室卻將同項產品的售價顯示為 43.95 美元,這兩種情節中 都存有資料不一致的現象。在妥善設計的資料庫中,資料不一致的機率將會大 幅減少。



改善資料存取能力:DBMS 可以對即興式查詢產生快速的回答。從資料庫的觀 點來看,查詢(query)是向 DBMS 發出進行資料處理的特定要求。例如,讀 取或更新資料。簡單的說,查詢是一個問題,而即興式查詢(ad hoc query)則 〕傳回 是無準備的問題。DBMS 會將答案〔稱為查詢結果集(query result set) 給應用程式。例如,當處理大量銷售資料時,最終使用者可能想要快速回答以 下的問題:

本試閱檔為五南所有。如欲購買此書,請至五南網站 www.wunan.com.tw 或來電(02)2705-5066

TN7-1.資料庫系統ch1-2.indd

7

7

2008/12/12

上午 11:48:42

資料庫系統:設計、實作與管理

在過去六個月中,每項產品的銷售金額是多少? 在過去三個月中,每位業務代表的銷售獎金是多少? 有多少顧客的信用額度為 3,000 美元或以上? ●

改善制訂決策的能力:管理得比較好的資料,以及經過改善的資料存取能力, 都能產生品質比較好的資訊,並可以根據它們做出更好的決策。



提升最終使用者的生產力:資料的可用性,結合能將資料轉換成有用資訊的工 具,可以讓最終使用者做出快速且明智的決策,這也是全球經濟中的成敗關鍵。 使用 DBMS 的優點絕非僅限於前面所列的這些。事實上,當你學到更多有關

資料庫的技術細節,以及它們的設計時,你將會發現更多的優點。

 1.2.2 資料庫的類型 DBMS 可以支援多種不同的資料庫。資料庫可以根據使用者數量、資料庫位 置、期望類型與使用範圍加以分類。 使用者數量可以決定資料庫為單一使用者或多使用者。單一使用者資料庫 (single-user database)只能在特定時間支援一名使用者。換言之,如果使用者 A 在使用資料庫,則使用者 B 與 C 就必須等待,直到使用者 A 完成工作為止。在個 人電腦上執行的單一使用者資料庫,被稱為桌上型資料庫(desktop database)。相 對的,多使用者資料庫(multiuser database)可同時支援多名使用者。當多使用者 資料庫支援的使用者比較少(通常少於 50 人) ,或是組織內的特定部門時,會被稱 為工作群組資料庫(workgroup database)。當資料庫由整個組織共同使用,並支援 跨越許多部門的許多使用者(超過 50 人,通常是數百人的規模)時,則會被稱為 企業級資料庫(enterprise database)。 位置也能當做資料庫的分類基礎。例如,支援單一地點的資料庫稱為集中式資 料庫(centralized database)。如果能支援散佈於多個地點中的資料,則稱為分散式 資料庫(distributed database)。 不過,當今最流行的資料庫分類方法,根據的是它們的用法,以及資訊收集的 時間敏感度。例如,像是產品或服務的銷售、付款與採購等交易,都是重要的日常 作業。這類交易必須正確且立即加以記錄。如果資料庫的設計用意,主要在支援公 (有時候也叫做 司的日常作業,則會被歸類為作業性資料庫(operational database) 交易資料庫(transactional database)或生產資料庫(production database) )。相對 的,資料倉儲(data warehouse)儲存的資料,則著重於產生策略性決策所需的資 訊。通常,這類決策都需要廣泛的「資料處理」,以擷取能形成價格決策、銷售預 8

本試閱檔為五南所有。如欲購買此書,請至五南網站 www.wunan.com.tw 或來電(02)2705-5066

TN7-1.資料庫系統ch1-2.indd

8

2008/12/12

上午 11:48:43

 Chapter 1 資料庫系統

測、市場定位等的資訊。大多數的決策支援資料,都來自於作業性資料庫中的歷史 資料。另外,資料倉儲可以儲存從多個來源所取得的資料。為了更容易擷取這些資 料,資料倉儲的結構與作業性或交易資料庫極為不同。有關資料倉儲的設計、實作 與應用,會在第十二章中詳細介紹。 資料庫的分類也可以反映資料的結構化程度。非結構化資料(unstructured data)指的是處於原始狀態的資料,也就是收集時呈現的格式。因此,非結構化資 料的格式無法進行產生資訊所需的處理。結構化資料(structured data)則是非結 構化資料的處理結果,也就是將它們格式化,以方便儲存、使用與資訊的產生。你 可以根據想要執行的處理類型套用結構(格式)。有些資料可能不適合進行某種處 理(非結構化),不過可能適合進行其他類型的處理(結構化)。例如,資料數值 37890 指的可能是壓縮代碼、銷售量或產品代碼。如果它代表的是壓縮代碼或產品 代碼,並儲存為文字類型,則你無法對它們進行數學運算。另一方面,如果它代表 的是銷售量,則需要將它格式化為數字類型。 如果要進一步說明結構的概念,你可以想像一堆書面的發票。如果你只想將它 們存成影像,做為日後擷取與顯示之用,你可以掃瞄它們,並將它們儲存為圖形格 式。另一方面,如果你想要擷取像是每月合計與平均銷售金額這樣的資訊,則圖形 格式的內容就無法達成目標。相對的,你需要將發票資料儲存為試算表的格式(結 構化) ,讓你可以執行必要的計算。實際上,你所輸入的大多數資料最好都歸類為 半結構化。半結構化資料(semistructured data)指的是已經處理到某種程度的資 料。例如,如果你觀察典型的網頁,其中的資料都以事先安排好的格式呈現,準備 傳遞某些資訊。 到目前為止提到的資料庫類型,都著重在高度結構化資料的儲存與管理。不 過,企業使用的資料並不局限於結構化資料。他們也會使用半結構化與非結構化 資料。你只需要想像在公司電子郵件、備忘錄、程序與規則等文件、網頁等中可 以找到的珍貴資訊。半結構化與非結構化資料的儲存與管理需求,正藉由新一代 的 XML 資料庫予以解決。可延伸標記語言(Extensible Markup Language,XML) 是一種特殊的語言,可以使用文字格式呈現與處理資料元素。XML 資料庫(XML database)可支援半結構化 XML 資料的儲存與管理。 表 1.1 比較多種知名資料庫管理系統的功能。

2

2. 廠商提供單一使用者 / 個人的 DBMS 版本。

本試閱檔為五南所有。如欲購買此書,請至五南網站 www.wunan.com.tw 或來電(02)2705-5066

TN7-1.資料庫系統ch1-2.indd

9

9

2008/12/12

上午 11:48:43

資料庫系統:設計、實作與管理

表 1.1

資料庫的類型 使用者數量

產品 MS Access

單一使用者 X

MS SQL Server

X

IBM DB2

X

MySQL

X

Oracle RDBMS

X

*

資料庫位置

多使用者 工作群組

企業級

X 2 2

2

X

集中式

分散式

X X

X

資料用途 作業性

XML

資料倉儲

X X

X

X

X

X

X

X

X

X

X

X

X

X

X

X

X

X

X

X

X

X

X

X

X

X

*

只支援 XML 功能,XML 資料儲存為大型文字物件。

注意 本書中討論的大多數資料庫設計、實作與管理課題,都以生產(交易) 資料庫為基礎。這種資料庫的重點,植基於兩項考量。首先,生產資料庫 是一般性活動中最常遭遇到的資料庫,像是註冊、登記車輛、購買產品、銀 行的存款或提款。其次,資料倉儲資料庫的內容,大部份都從生產資料庫取 得。如果生產資料庫的設計不良,以它們為基礎的資料倉儲資料庫,也會喪 失它們的可靠性與價值。

 1.3 資料庫設計的重要性 資料庫設計(database design)指的是設計資料庫結構的活動,這些結構的作 用就是要儲存與管理最終使用者的資料。能滿足所有使用者需求的資料庫不會憑空 產生,它的結構必須經過仔細設計。事實上,資料庫設計是非常重要的層面,本書 的大部份內容都在討論,如何發展優良的資料庫設計技術。如果資料庫設計不良, 即使是好的 DBMS 也會表現得很糟糕。 恰當的資料庫設計需要設計人員準確辨識它的預期用途。在設計交易資料庫 時,強調的是正確與一致的資料,以及作業的速度。資料倉儲資料庫的設計,則需 要使用歷史與彙總的資料。集中且單一使用者的資料庫,與分散且多使用者的資料 庫,在設計手法上並不相同。本書著重的是交易、集中、單一使用者與多使用者的 資料庫設計技巧。 設計精良的資料庫將可促進資料的管理,並產生正確且珍貴的資訊。設計拙劣

10

本試閱檔為五南所有。如欲購買此書,請至五南網站 www.wunan.com.tw 或來電(02)2705-5066

TN7-1.資料庫系統ch1-2.indd

10

2008/12/12

上午 11:48:44

 Chapter 1 資料庫系統

的資料庫則可能成為追蹤困難的錯誤的溫床,這些錯誤可能衍生出不好的決策,而 不好的決策則可能造成組織的失敗。資料庫設計是非常重要的層面,絕對不能心存 僥倖。這就是大學生需要研讀資料庫設計;各種類型與規模的組織,需要讓員工參 加資料庫設計研討會;以及資料庫設計顧問收入豐碩的原因。

 1.4 歷史根源:檔案與檔案系統 目前,使用檔案系統管理資料已經過時,但還是有許多很好的理由,值得讓我 們詳細研究它們: ●

認識檔案系統比較簡單的特徵,可以更容易了解資料庫設計的複雜性。



體認困擾檔案系統的問題,可以協助你在 DBMS 軟體中,避免發生同樣的錯 誤。



如果你想要將過時的檔案系統轉換至資料庫系統,有關檔案系統基本限制的知 識,將可以發揮一定程度的作用。 近年來,幾乎任何小型組織的經理人,都可以使用人工檔案系統追蹤必要的資

料。傳統上,這類檔案系統都由一組檔案資料夾構成,每個資料夾都加上適當的標 籤,並保存在檔案櫃內。檔案資料夾中的資料組織,由資料的預期用途決定。理想 上,每個檔案資料夾的內容都存有邏輯的關聯性。例如,醫師辦公室中的檔案資 料夾可能包含病患的資料,每個檔案資料夾存放一位病患的資料。檔案資料夾中的 所有資料,只會描述特定病患的醫療歷史。同樣的,人事經理可能按照工作類屬組 織人事資料(例如,職員、技術人員、銷售人員與管理人員)。因此,以「技術人 員」為標籤的檔案資料夾,包含的都是從事技術性工作的人員資料。 只要資料集合比較小,而且組織經理人的報表需求不多,手工系統都可以勝任 資料儲存庫的角色。不過,當組織成長,而且報表需求變得更加複雜時,要在手工 檔案系統中追蹤資料的難度也會提高。事實上,在愈來愈多的檔案資料夾中尋找與 使用資料,會變成是相當耗時且繁瑣的工作,因此這些資料不太可能產生有用的資 訊。讓我們考慮以下這些問題,它們都是零售業老闆可能想要回答的: ●

在上週、月、季或年中,哪些是熱賣的產品?



目前,每天、週、月、季或年的銷售額是多少?



與上週、前個月或去年比較起來,本期的銷售額是增加或減少?



在上週、月、季或年中,各種成本類屬是增加、減少或維持不變?



銷售數據是否呈現某種趨勢,可能會改變庫存的需求?

本試閱檔為五南所有。如欲購買此書,請至五南網站 www.wunan.com.tw 或來電(02)2705-5066

TN7-1.資料庫系統ch1-2.indd

11

11

2008/12/12

上午 11:48:46

資料庫系統:設計、實作與管理

類似這樣的問題清單可能相當冗長,而且隨著組織的成長會增加問題的數量。 不幸的是,從人工檔案系統中產生報表,速度非常慢,而且過程也相當繁瑣。 事實上,有些企業經理人要面對政府規定的報表需求,即使使用設計精良的人工系 統,每季都需要花費數週的力氣,才能製作出這些報表。因此,設計能追蹤資料, 並產生必要報表的電腦式系統的呼聲開始浮現。 在技術方面,從人工檔案系統轉換至對應的電腦檔案系統可能會相當複雜。 (因為人們已經習慣當今親和力相當高的電腦介面,他們已經忘記電腦曾經帶來 的痛苦經驗!)因此,公司需要一種新的專業人士,也就是資料處理專員(data ,這些人員可能新聘,或由現有員工「養成」。DP 專員 processing (DP) specialist) 負責建立必要的電腦檔案結構,通常需要在這些結構內撰寫管理資料的軟體,並設 計適當的應用程式,產生以這些資料為基礎的報表。因此,無數自製的電腦化檔案 系統就誕生了。 最初,檔案系統內的電腦檔案,與人工檔案非常類似。圖 1.3 中顯示的是簡單 的範例,內容是小型保險公司使用的顧客資料檔。(稍後,你會發現圖 1.3 中出現的 檔案結構,並不適用在資料庫中,這種情況經常發生在早期的檔案系統。) 圖 1.3

CUSTOMER 檔的內容

C_NAME C_PHONE C_ADDRESS C_ZIP

= Customer name = Customer phone = Customer address = Customer zip code

A_NAME A_PHONE TP AMT REN

= Agent name = Agent phone = Insurance type = Insurance policy amount, in thousands of $ = Insurance renewal date

電腦檔案的說明需要專門的詞彙。每門學科都會發展出自己的行話,讓從業人 員可以清楚地溝通意見。表 1.2 中顯示的基本檔案詞彙,可以協助你更容易了解後 續的討論內容。 使用表 1.2 中提供的檔案術語,你就能辨識出圖 1.3 中所示的檔案元件。圖 1.3 中的 CUSTOMER 檔包含 10 筆記錄。每筆記錄都由九個欄位構成:C_NAME、C_ 12

本試閱檔為五南所有。如欲購買此書,請至五南網站 www.wunan.com.tw 或來電(02)2705-5066

TN7-1.資料庫系統ch1-2.indd

12

2008/12/12

上午 11:48:46

 Chapter 1 資料庫系統

表 1.2

基本檔案術語

術語

定義

資料

原始事實,像是電話號碼、出生日期、顧客名稱與到今天為止的銷售額。資料的意義不 大,除非以某種邏輯的方式組織。電腦可以辨識的資料最小單位,就是單一的字元,像是 字母 A、數字 5、或類似 / 的符號。單一字元需要一位元組的電腦儲存空間。

欄位

具有特定意義的單一字元或一組字元(文字或數字)。欄位可用來定義與儲存資料。

記錄

一組邏輯上有關聯的欄位,用來描述人員、地點或事情。例如,顧客姓名為 J. D. Rudd 的 記錄,可能由姓名、地址、電話號碼、出生日期、信用額度與未繳餘額等欄位構成。

檔案

相關記錄的集合。例如,檔案可能包含 ROBCOR Company 這家廠商的資料,也可能包含 Gigantic University 目前在學的學生記錄。

PHONE、C_ADDRESS、C_ZlP、A_NAME、A_PHONE、TP、AMT 與 REN。 顧 10 筆記錄都儲存在具名的檔案中。圖 1.3 中的檔案包含保險公司的顧客資料,因此它 的檔案名稱就是 CUSTOMER。 使用 CUSTOMER 檔的內容,DP 專員可以撰寫程式,為保險公司的業務部門 製作非常有用的報表: ●

顯示每名代理人銷售的保險類型與數量的月報表。(這類報表可以用來分析代 理人的生產力。)



決定必須換約的月份別顧客清單。



分析每名代理人銷售的保險類型比率報表。



定期的顧客連絡信函,摘要保單的內容,並提供各種顧客關係的紅利。 使用一段期間之後,保險公司需要更多的程式,以便製作新的報表。雖然需要

一些時間界定報表的內容,並撰寫製作這些報表的程式,但業務部門的經理並不懷 念舊的人工系統,因為使用電腦系統可以節省許多時間與精力。這些報表令人印象 深刻,而且能執行複雜的資料搜尋,產生做成優質決策所需的資訊。 之後,保險公司的業務部門建立一個名為 SALES 的檔案,協助追蹤業務員每 天努力的成果。另外,也視需要建立其他的檔案,以便製作更有用的報表。事實 上,業務部門的成效非常顯著,因此人事經理要求 DP 專員,將薪資處理與其他人 事業務自動化。結果,DP 專員被要求建立如圖 1.4 所示的 AGENT 檔。AGENT 檔 中的資料用來產生核對信函,追蹤已支付的稅額,以及摘要保單的內容等。 隨著檔案數量的增加,逐漸演變為小型的檔案系統,如圖 1.5 中所示。系統中 的每個檔案都使用自己的程式,儲存、擷取與修改它們的資料。而且,每個檔案的 擁有者都是個人,或是授意建立它們的部門。 當保險公司的檔案系統不斷成長,DP 專員的程式需求也快速增加,因此公司

本試閱檔為五南所有。如欲購買此書,請至五南網站 www.wunan.com.tw 或來電(02)2705-5066

TN7-1.資料庫系統ch1-2.indd

13

13

2008/12/12

上午 11:48:48

資料庫系統:設計、實作與管理

圖 1.4

AGENT 檔的內容

A_NAME A_PHONE A_ADDRESS ZIP HIRED

圖 1.5

= Agent name = Agent phone = Agent address = Agent zip code = Agent date of hire

YTD_PAY YTD_FIT YTD_FICA YTD_SLS DEP

= Year-to-date pay = Year-to-date federal income tax paid = Year-to-date Social Security taxes paid = Year-to-date sales = Number of dependents

簡單的檔案系統 業務部門

人事部門

檔案管理 程式

CUSTOMER

檔案管理 程式

SALES 檔

AGENT 檔



報表程式

報表程式

授權聘任額外的程式人員。另外,檔案系統的容量也要求功能更加複雜的大型電 腦。新電腦與增加的程式人員,讓 DP 專員在程式設計上投入較少的時間,卻在管 理技術與人力資源上投入更多的時間。因此,DP 專員的任務演變為資料處理經理 ,負責管理新的 DP 部門。不過,雖然經過這些組 (data processing (DP) manager) 織的變遷,DP 部門的主要職掌仍然是程式設計。而且,DP 經理在監督資深的程式 人員與程式除錯人員方面,必然需要投入更多的時間。

 1.5 檔案系統資料管理的問題 組織與管理資料的檔案系統方法,是人工系統的改良版。而且,檔案系統在資 14

本試閱檔為五南所有。如欲購買此書,請至五南網站 www.wunan.com.tw 或來電(02)2705-5066

TN7-1.資料庫系統ch1-2.indd

14

2008/12/12

上午 11:48:50

 Chapter 1 資料庫系統

料管理上已經服務超過二十年,在電腦紀元中這是非常長的時間。不過,這種方法 也陸續出現許多問題與限制。對檔案系統方法的評論,具有以下兩項主要的作用: ●

認識檔案系統的缺點,可以讓你了解現代資料庫的發展。



許多問題並不是檔案系統獨有。如果未能了解這些問題,就有可能重複發生在 資料庫環境中,即使資料庫技術很容易避開它們。 在檔案系統方法中,第一個、也是最耀眼的問題是,即使是最簡單的資料擷取

作業,都需要設計大量的程式。在比較舊式的檔案系統中,程式人員需要指定必須 完成的工作,以及完成它們的作法。就像你會在本書中發現的,現代的資料庫使用 非程序性的資料處理語言,可以讓使用者指定必須完成的工作,但不需要定義完成 它們的作法。通常,這種非程序性的語言多用在資料擷取上(像是範例式查詢與報 表產生工具),處理的速度比較快,而且可以用在不同的 DBMS 上。 即使要產生的是最簡單的報表,都需要撰寫程式,這項特性讓即興式報表變得 不可能產生。使用成熟檔案系統的 DP 專員與 DP 經理,通常都會收到無數新報表 的需求。他們往往被迫說出,報表可以在「下週」或「下個月」準備就緒。如果你 現在就需要這些資訊,則下週或下個月取得將無法滿足你的資訊需求。 再者,在檔案系統環境中,變更現有結構會相當困難。例如,只在原始的 CUSTOMER 檔中變更一個欄位,可能就需要特定的程式執行下列作業: 1. 從原始檔案中讀取一筆記錄。 2. 轉換原始的資料,讓它符合新結構的儲存要求。 3. 將轉換後的資料寫入新的檔案結構。 4. 針對原始檔案中的每筆記錄,重複執行步驟 2 至 4 的作業。 事實上,對檔案結構的任何變更,不管幅度多麼小,都需要修改所有使用該檔 案資料的程式。只要有修改,就可能產生錯誤,因此就需要花費額外的時間,透過 除錯程序找出這些錯誤。 另一個與大規模程式設計需求有關的問題是,隨著系統中檔案數量的擴充,系 統管理的工作也會變得更加困難。即使是只有少數檔案的簡單檔案系統,都需要建 立與維護多個檔案管理程式(每個檔案都需要自己的檔案管理程式,讓使用者可以 新增、修改與刪除記錄,列出檔案的內容,以及產生報表)。由於不可能產生即興 式報表,報表程式就有可能快速增加。如果加入組織中的每個部門都「擁有」自己 資料的因素,這個問題就會更形惡化。 檔案系統資料庫的另一項缺點是,安全功能很難透過程式部署,因此往往被檔 案系統環境所省略。這類功能包括有效的密碼保護,鎖住部份檔案或系統的能力,

本試閱檔為五南所有。如欲購買此書,請至五南網站 www.wunan.com.tw 或來電(02)2705-5066

TN7-1.資料庫系統ch1-2.indd

15

15

2008/12/12

上午 11:48:53

資料庫系統:設計、實作與管理

以及其他用來保護資料機密性的措施。即使投入資源改善系統與資料的安全性,安 全裝置的範圍與效果也相當有限。 以下是到目前為止所討論的檔案系統資料管理的限制: ●

它需要大規模的程式設計。



它無法執行即興式的查詢。



系統管理可能相當複雜且困難。



很難對現有結構進行修改。



安全功能可能不足。

這些限制又會進一步造成結構與資料相依性的問題。

 1.5.1 結構與資料相依性 檔案系統會表現出結構相依性(structural dependence) ,意思是指檔案的存取 會與它的結構有關。例如,在圖 1.3 的 CUSTOMER 檔中新增顧客出生日期欄位, 需要經過前節中所描述的四個步驟。完成這項更新之後,先前的程式都無法再使用 新的 CUSTOMER 檔案結構。因此,所有檔案系統的程式也必須修改,才能符合新 的檔案結構。簡言之,檔案系統的應用程式會受到檔案結構改變的影響,所以它們 會表現出結構相依性。反之,當對檔案結構做出修改,但不影響應用程式存取資料 的能力時,就表示它存有結構獨立性(structural independence)。 即使是資料特徵的變更,像是將某個欄位從整數變成小數,都需要變更存取該 檔案的所有程式。當檔案的資料儲存特徵發生任何改變時(也就是變更資料類型) , 所有資料存取程式都需要跟著改變,所以我們說這個檔案系統表現出資料相依性 (data dependence)。反之,當對資料儲存特徵做出修改,但不影響應用程式存取 資料的能力時,就表示它存有資料獨立性(data independence)。 在實務上,資料相依性的重要性就是邏輯資料格式(logical data format,人們 檢視資料的方式)與實體資料格式(physical data format,電腦必須處理資料的方 式)間的差別。存取檔案系統中的檔案的任何程式,必須同時告訴電腦,要執行的 工作與執行這些工作的方式。於是,每支程式都必須包含以下的內容:指定開啟特 定的檔案類型,它的記錄規格,以及它的欄位定義。從程式人員與資料庫管理員的 觀點來看,資料相依性會讓檔案系統極難處理。

 1.5.2 欄位定義與命名慣例 乍看之下,圖 1.3 中顯示的 CUSTOMER 檔,似乎很能勝任它的工作:要求的 16

本試閱檔為五南所有。如欲購買此書,請至五南網站 www.wunan.com.tw 或來電(02)2705-5066

TN7-1.資料庫系統ch1-2.indd

16

2008/12/12

上午 11:48:54

 Chapter 1 資料庫系統

報表通常都可以順利產生。不過,假設你想要根據儲存在 CUSTOMER 檔中的資 料,建立顧客電話目錄。此時,將顧客姓名儲存為單一欄位就成為不利的條件,因 為這種目錄必須按照字母順序,將該欄位內容分解為名字、姓氏與首字母。 同樣的,按照所在城市產生顧客清單,也會比一般作業更加困難。從使用者的 觀點來看,比較好(更有彈性)的記錄定義,應該能滿足更多的報表需求,方式則 是將欄位分解為必要的元件。因此,修正後的顧客檔欄位就列在表 1.3 中。 (要注 意的是,修正後的檔案名稱為 CUSTOMER_V2,表示它是 CUSTOMER 檔的第二 版。) 表 1.3

CUSTOMER_V2 檔中的範例欄位

欄位

內容

內容範例

CUS_LNAME

顧客的姓氏

Ramas

CUS_FNAME

顧客的名字

Alfred

CUS_INITIAL

顧客的首字母

A

CUS_AREACODE

顧客的地區代碼

615

CUS_PHONE

顧客的電話號碼

234-5678

CUS_ADDRESS

顧客的街道地址或郵政信箱號碼

123 Green Meadow Lane

CUS_CITY

顧客的城市

Murfreesboro

CUS_STATE

顧客的州別

TN

CUS_ZIP

顧客的郵遞區號

37130

AGENT_CODE

代理人的代碼

502

選擇適當的欄位名稱也很重要。例如,你應該確保欄位名稱具有合理的意義。 在檢查圖 1.3 中所示的結構時,欄位名稱 REN 的意義並不明顯,其實它代表的是顧 客保單的續約日期。基於兩項理由,使用 CUS_RENEW_DATE 這個欄位名稱會比 較理想。第一,字首 CUS 可以當做欄位來源的指標,也就是 CUSTOMER_V2 檔。 因此,你會知道該欄位將產生顧客的屬性。第二,欄位名稱的 RENEW_DATE 部 份,更能描述該欄位的內容。採用適當的命名慣例之後,檔案結構就會具備自我說 明的特性。也就是說,只要看到欄位名稱,你就能判斷它屬於哪個檔案,以及其中 可能包含的資訊。 有些套裝軟體會限制欄位名稱的長度,所以明智的作法就是在這樣的限制下, 盡可能透過欄位名稱彰顯它的內容。另外,如果欄位名稱太長,則每張紙上只能容 納少數的欄位,這樣也會造成輸出空間配置的問題。例如,欄位名稱 CUSTOMER_ INSURANCE_RENEWAL_DATE 具有自我說明的效果,但 CUS_RENEW_DATE 可 能更令人滿意。

本試閱檔為五南所有。如欲購買此書,請至五南網站 www.wunan.com.tw 或來電(02)2705-5066

TN7-1.資料庫系統ch1-2.indd

17

17

2008/12/12

上午 11:48:54

資料庫系統:設計、實作與管理

注意 你可能已經注意到,表 1.3 中增加 AGENT_CODE 的欄位。很明顯的, 你必須知道每位顧客由哪個代理人負責,所以顧客檔必須包含代理人的資 料。在第 1.5.3 節中,你將會學到儲存代理人的姓名,就像圖 1.3 中所示原始 CUSTOMER 檔的處理方式,將會產生一些重大的問題,這些問題可以透過 指派唯一的代碼予以排除。在第二章中你將會學到,在(修正後的)顧客檔 中儲存這樣的代碼,會產生其他的效益。無論如何,由於代理人代碼是代理 人的特徵,因此它的字首是 AGENT。

圖 1.3 中所示 CUSTOMER 檔的另一個問題是,很難用有效率的方式找到想要 的資料。目前,CUSTOMER 檔並沒有唯一記錄識別碼。例如,可能有許多顧客的 姓名都是 John B. Smith。於是,增加 CUS_ACCOUNT 欄位,代表唯一的顧客帳 號,可能是較為適當的作法。 在圖 1.3 所示的檔案結構中,針對欄位定義與命名慣例所做的評論,並非僅限 於檔案系統。稍後,我們也會看到這些慣例的重要性,所以就提早介紹它們。當學 到第四、六與九章時,你會再次碰到欄位定義與命名慣例的課題。不管使用的資料 環境為何,設計內容必須要能反映設計者的文件需求,以及最終使用者的報表與處 理需求,這項原則對檔案系統或資料庫都成立。只要遵循適當的欄位定義與命名慣 例,這兩類需求就會得到最好的照顧。

 1.5.3 資料重複性 檔案系統的結構很難結合多個來源的資料,而且安全性不足也會讓它容易產生 安全缺口。組織結構促使相同的基本資料,儲存在不同的地點。〔資料庫專家使用 資訊孤島(islands of information)的術語,描述這些分散的資料位置。〕由於儲 存在不同地點的資料,不太可能進行一致的更新作業,資訊孤島往往包含相同資 料的不同版本。例如,在圖 1.3 與圖 1.4 中,代理人的姓名與電話號碼同時出現在 CUSTOMER 與 AGENT 檔中。事實上,你只需要一份正確的代理人姓名與電話號 碼。讓它們出現在一個以上的地方,就會發生資料重複性的問題。當相同的資料多 餘地儲存在不同地方時,就會產生資料重複性(data redundancy)的現象。 未經控制的資料重複性將會產生以下的問題: ●

18

資料不一致:當在不同地方出現相同資料的不同且衝突版本時,就會發生資料

本試閱檔為五南所有。如欲購買此書,請至五南網站 www.wunan.com.tw 或來電(02)2705-5066

TN7-1.資料庫系統ch1-2.indd

18

2008/12/12

上午 11:48:56

 Chapter 1 資料庫系統

不一致的問題。例如,假設你在 AGENT 檔中,修改某位代理人的電話號碼或 地址。如果你忘記在 CUSTOMER 檔中做出同樣的修改,則相同的代理人就會 在兩個檔案中出現不同的資料。此時,因為使用資料版本的不同,就可能產生 結果不一致的報表。 當在多個不同的檔案中執行複雜的輸入,或在一個或多個檔案中反覆執行複雜 的輸入時(像是 10 位數的電話號碼),比較有可能發生資料輸入錯誤的問題。事實 上,圖 1.3 的 CUSTOMER 檔中,就含有類似的輸入錯誤:檔案的第三筆記錄中, 出現代理人電話號碼數字調換的錯誤(正確的號碼是 615-882-2144,而不是 615882-1244)。 也有可能將不存在的代理人姓名與電話號碼輸入 CUSTOMER 檔中,不過,如 果代理人提供的是不存在的姓名與電話號碼,顧客也不太可能察覺。人事經理是否 應該允許不存在的代理人領取紅利與福利呢?事實上,像是拼錯姓名或電話號碼不 正確的資料輸入錯誤,也會產生同樣的資料完整性問題。

注意 當發生資料不一致時,這些資料也稱為欠缺資料完整性。資料完整性 (data integrity)的定義是,資料庫中的所有資料都與真實世界中的事件與 狀況一致。換言之,資料完整性的意義就是:





資料是「正確的」:沒有資料不一致的現象。



資料是「可驗證的」:資料永遠都能產生一致的結果。

資料異常:字典將異常(anomaly)定義為「反常的事物」(abnormality)。理 想上,欄位數值的變更應該只在單一地方進行。不過,資料重複性會促進異 常的狀況,因為需要在許多不同的地方修改欄位數值。讓我們觀察圖 1.3 中的 CUSTOMER 檔。如果代理人 Leah F. Hahn 決定結婚,並準備搬家,則她的姓 名、地址與電話都有可能變更。除了在 AGENT 檔中變更姓名、地址與電話之 外,你也必須在 CUSTOMER 檔中執行同樣的修改。你可能需要面對數百項的 修正作業,每次作業都包含顧客與服務他的代理人!當代理人決定離職時,也 會發生同樣的問題。這名代理人服務的所有顧客,都必須重新指派代理人。任 何欄位數值的變更,都必須在許多地方正確完成,才能維持資料的完整性。當 所有必要的變更無法成功完成時,就會出現資料異常(data anomaly)的現象。 圖 1.3 中發現的資料異常通常可定義如下:

本試閱檔為五南所有。如欲購買此書,請至五南網站 www.wunan.com.tw 或來電(02)2705-5066

TN7-1.資料庫系統ch1-2.indd

19

19

2008/12/12

上午 11:48:56

資料庫系統:設計、實作與管理

更新異常:如果代理人 Leah F. Hahn 申請新的電話號碼,則該號碼必須輸入 CUSTOMER 檔中,出現她的電話號碼的每筆記錄。在這個案例中,只需要 完成三項變更。在大型的檔案系統中,這種變更可能影響數百、甚或數千筆 記錄。很明顯的,發生資料不一致的機會相當大。 新增異常:如果只有 CUSTOMER 檔存在,在增加新的代理人時,你也需要 新增假想的顧客資料,以便反映這名新的代理人。同樣的,發生資料不一致 的機會也相當大。 刪除異常:如果你刪除 Amy B. O’Brian、George Williams 與 Olette K. Smith 這幾名顧客,你也需要刪除 John T. Okon 的代理人資料。很明顯的,這絕對 不是令人滿意的作法。

 1.6 資料庫系統 檔案系統內在的問題,讓資料庫系統的使用非常令人期待。檔案系統擁有許多 個別且無關聯的檔案,而資料庫系統則由邏輯上相關的資料構成,這些資料都儲存 在單一的邏輯資料儲存庫中。 (「邏輯」反映的事實是,雖然對最終使用者來說, 資料儲存庫似乎只是一個單元,但它的內容會實體分散於多個資料儲存設備或地 點。)由於資料庫的資料儲存庫是單一的邏輯單元,因此資料庫可說是最終使用者 資料的儲存、存取與管理方式的一大變革。比起圖 1.5 所示的檔案系統管理,資料 庫的 DBMS 具有相當多的優點,因為它可以排除大部份檔案系統中的資料不一致、 資料異常、資料相依性與結構相依性等問題,資料庫的 DBMS 顯示於圖 1.6 中。 更好的是,最新一代的 DBMS 軟體不只可以儲存資料結構,也能儲存結構間的關 係,以及這些結構的存取路徑,所有內容都存放在集中的位置。另外,最新一代的 DBMS 軟體還可以定義、儲存與管理這些元件的存取路徑。 要記得的是,DBMS 只是資料庫系統中許多重要的元件之一。DBMS 可能會 被稱為資料庫系統的心臟。不過,就像人類絕對需要心臟以外的器官來維持身體運 作,資料庫系統要能正常運作,也需要 DBMS 以外的元件。在接下來的章節中, 你將會學到什麼是資料庫系統,它有哪些元件,以及 DBMS 在資料庫系統中扮演 的角色。

 1.6.1 資料庫系統環境 資料庫系統(database system)指的是元件的組織,作用是定義與規範資料庫 20

本試閱檔為五南所有。如欲購買此書,請至五南網站 www.wunan.com.tw 或來電(02)2705-5066

TN7-1.資料庫系統ch1-2.indd

20

2008/12/12

上午 11:48:57

本試閱檔為五南所有。如欲購買此書,請至五南網站 www.wunan.com.tw 或來電(02)2705-5066

View more...

Comments

Copyright ©2017 KUPDF Inc.
SUPPORT KUPDF