ES748

新觀念

資料庫系統理論與設計實務
Database System: Concept,
Design, and Implementation

第 1 章 檔案 處理與 資料 庫
• 1-1
• 1-2
• 1-3
• 1-4
• 1-5

資料與資料處理
資料庫
檔案處理與資料庫系統
資料庫系統發展的歷史演進
資料庫技術的發展趨勢

1-1 資料與資 料處 理
• 1-1-1
• 1-1-2
• 1-1-3
• 1-1-4

資料
資訊
資料處理
資料階層

1-1-1 資料 - 定義
• 「資料」( Data )是指收集但是沒有經過
整理和分析的原始數值、文字或符號,它
是資訊的原始型態。
「 ANSI 」( American National
Standards Institute )定義的資料,如下

– 資料是使用正規方式所代表的事實、概念或指
令,可以適用人類或程式間進行通訊、解釋和
處理。
– 資料可以代表一些特性或數量,換句話說,我
們可以針對資料執行一些操作來轉換成資訊,
這就是「資料處理」( Data Processing )。

1-1-1 資料 - 範例
• 資料本身並沒有意義,需要經過處理後,才會成
為有意義的資料,也就是資訊。資料可以是一堆
文件或報紙,整個公司的員工記錄、多種不同的
開會記錄、整個醫院病歷資料或整班學生的成績
資料。例如:整班學生必修課的一疊成績資料,
如下圖所示:

1-1-2 資訊
• 「資訊」( Information )是經過處理的資料,
在經過整理和分析後,就可以成為有用或可供決
策的資訊。換句話說,資料是資訊的原始型態,
資訊是處理後的有意義資料,如下圖所示:

1-1-3 資料 處理
• 「資料處理」( Data Processing )是使用 ! 特
定方法將資料轉換成資訊的過程,我們需要將資
料進行搜尋、排序、分類、計算、收集、選取或
結合等操作,以便產生所需的資訊,如下圖所
示:

1-1-4 資料 階層 - 說明
• 資料階層一共分成六個階層:位元、位元組、欄
位、記錄、檔案和資料庫,如下圖所示:

1-1-4 資料 階層 - 位元
( Bits )
• 電腦的資料是使用二進位的 0 或 1 ,每一
個 0 或 1 是最小的儲存單位,也就是位元

1-1-4 資料 階層 - 位元 組
( Bytes )
• 位元組是組合 8 個位元,或稱為字元
( Character ),這是一般電腦記憶體的
最小單位,也是電腦檔案儲存資料的最小
單位。

1-1-4 資料 階層 - 欄位
( Fields )
• 欄位是由 1 或多個位元組或字元組成,屬
於相同性質資料組成的資料項目,以欄位
名稱來識別。例如:一組字元組成的字
串 "Joe" 和 "Chen" ,可以使用欄位名
稱 " 姓名 " 來識別,或數值 33 、 29 ,可
以使用欄位名稱 " 年齡 " 來識別等。

1-1-4 資料階層 - 記錄
( Records )
• 在欄位之後是記錄,記錄是相關欄位的集
合,記錄的欄位是儲存「實體」
( Entity )的一些「屬性」
( Attributes )值,實體是用來描述真實
世界的東西。例如:學生實體,欄位是學
生的屬性,即前述的欄位階層。
• 記錄則為學生的詳細資料。
– 例如:姓名、年齡、地址等欄位的值。

1-1-4 資料 階層 - 檔案
( Files )
• 如果記錄是欄位的集合,檔案就是相關聯
記錄的集合,檔案是以檔案名稱儲存在電
腦周邊裝置的磁碟。程式設計者可以撰寫
電腦程式使用檔案名稱來開啟和存取檔案
內容的記錄,其相關操作如下所示:



讀取記錄。
更新記錄。
新增記錄。
刪除記錄。

1-1-4 資料階 層 - 資料庫
( Database )
• 最後一階的資料階層是本書的主題:資料
庫,資料庫是相關檔案的集合,使用「資
料庫管理系統」( Database
Management System )集中管理資料庫
中儲存的資料。

1-2 資料庫
• 1-2-1
• 1-2-2
• 1-2-3

資料庫的定義
資料塑模( Data Modeling )
資料庫資料的三個層次

1-2 資料庫 - 說明
• 資料庫系統是由「資料庫」( Database )和
「資料庫管理系統」( Database Mangement
System , DBMS )所組成,如下圖所示:

1-2 資料庫 - 其儲 存的 資料
• 資料庫儲存的資料包括:資料和資料本身
的定義,這是資料本身的描述資料,稱為
「中繼資料」( Meta-data , The data
about data )。
• 通常這些資料是使用不同檔案來分開儲存
,所以在資料階層的資料庫是一個相關聯
檔案的集合。

1-2-1 資料 庫的定 義 - 範例
• 「資料庫」( Database )這個名詞是一個概念
,在資料階層是一種資料儲存方式,一些組織的
資料集合。有很多我們現成擁有或一些常常使用
的資料集合,都可以稱為資料庫,如下所示:
– 在 Word 文件中的通訊錄資料。
– 使用 Excel 管理的學生成績資料。
– 一個將資料儲存在大型檔案的應用程式,在應用程式
提供相關功能來維護和分析資料。
– 銀行的帳戶資料和交易資料。
– 醫院的病人資料。
– 大學的學生、課程、選課和教授資料。
– 電信公司的帳單資料。

1-2-1 資料 庫的定 義 - 通用定

• 資料庫正式的定義有很多種,比較通用的定義,
如下所示:
定義 1.1 :資料 庫( Database )是一 個儲存
資料的 電子文 件檔 案櫃( An Electronic
Filing Cabinet )。
• 電子文件檔案櫃用來儲存的資料是:




結構化( Structured )
整合的( Integrated )
相關聯( Interrelated )
共享( Shared )
可控制( Controlled )

1-2-1 資料 庫的定 義 - 長存資
料( Persistent Data )
• 在企業或組織的資料庫,其儲存的大量資料並非
是一種短暫儲存的暫時資料,而是一種長時間存
在的資料,稱為「長存資料」( Persistent
Data ),這些資料是維持企業或組織正常運作的
重要資料,如下所示:
– 通常組織中的資料需要一些操作或運算來維護資料,
例如:公司員工有人離職或新進員工,所以員工資料
一定需要新增、刪除操作來維護資料。
– 資料是相關聯的,例如:員工資料和出勤資料是相關
聯的,一位員工擁有一份出勤資料。
– 資料不包含輸出資料、暫存資料或任何延伸資訊,例
如:員工平均出勤資料、年齡和居住地分佈資料等並
不屬於長存資料,因為這些資料都可以由操作資料運
算而得。

1-2-2 資料 塑模 - 說明
• 資料庫儲存是結構化收集的「實體」( Entity )
資料,實體是現實生活中存在的東西,只是將它
塑模( Modeling ),如下圖所示:

1-2-2 資料 塑模 - 過程
• 「資料塑模」( Data Modeling )是將真實東
西轉換成模型,這是一種分析客戶需求的技術,
其目的是建立客戶所需資訊和商業處理的正確模
型,將需求使用圖形方式來表示,其塑模的過程
,如下圖所示:

1-2-2 資料 塑模 - 目的
• 將真實東西塑模,其目的是使用模型來解
釋真實東西、事件和其關聯性。以資料庫
來說,塑模的主要目的是定義資料的結構
,也就是後面說明的邏輯關聯資料。

1-2-2 資料 塑模 - 邏輯關 聯資

• 資料庫是將真實東西轉換成模型定義的資
料結構。例如:塑模一間大學或技術學院
,也就是從大學或技術學院儲存的資料中
識別出:


實體
屬性
關聯性

1-2-2 資料 塑模 - 邏輯關 聯資

實體( Entities )
• 在真實世界識別出的東西。例如:從大學
和技術學院可以識別出學生、指導老師、
課程和員工等實體,如下圖所示:

1-2-2 資料 塑模 - 邏輯關 聯資

屬性( Attributes )
• 每一個實體擁有的特性。例如:學生擁有
學號、姓名、地址和電話等屬性,如下圖
所示:

1-2-2 資料 塑模 - 邏輯關 聯資

關聯性( Relationships )
• 二個或多個實體間所擁有的關係,以基數比限制
條件( Cardinality Ratio Constraints )來說
,主要分為三種,如下所示:
– 一對一 ( 1:1 ): 指一個實體只關聯到另一個實體。
例如:指導老師是一位學校員工,反過來,此員工就
是指這位指導老師。
– 一對多 ( 1:N ): 指一個實體關聯到多個實體。例如
:學生寫論文時可以找一位指導老師,但是,一位指
導老師可以同時收多位學生。
– 多對多 ( M:N ): 指多個實體關聯到多個其他實體。
例如:一位學生可以選修多門課程,反過來,同一門
課程可以讓多位學生來選修。

1-2-2 資料 塑模 - 邏輯關 聯資

1-2-3 資料 庫資料 的三 個層次
• 在資料庫儲存的資料是使用模型找出的實體和屬
性所轉換成的資料,可以分成三個層次,如下:
– 資料模 型( Data Model ): 將真實東西轉換成資
料模型的實體、屬性和關聯性,使用圖形化的高階模
型來描述這些資料,通常使用在資料庫設計階段來分
析資料庫儲存的資料。
– 中繼資 料( Meta-data ) : 這是用來描述資料庫儲
存的是什麼樣的資料,定義資料列( Rows )或記錄
( Record )型態,也就是定義各資料欄
( Columns )或資料項目( Data Item )的型態。
– 資料( Data ): 資料庫實際儲存的資料列
( Rows ),或稱為記錄( Records )。

1-3 檔案處理 與資 料庫系 統
• 1-3-1
• 1-3-2
• 1-3-3

檔案處理方式
檔案處理系統的問題
資料庫方式

1-3 檔案處理 與資 料庫系 統
• 「檔案系統」( File System )是一種非
常原始的資料庫,不論是 UNIX/Linux 檔
案系統, Windows 作業系統的 NTFS 檔
案系統,資料都是使用相同觀念,以檔案
方式儲存,我們可以撰寫應用程式處理檔
案儲存的資料,稱為「檔案處理系統」
( File Processing System )。

1-3-1 檔案 處理方 式 - 架構

1-3-1 檔案 處理方 式 - 資料檔
案的 內容
• 檔案管理系統的程式是處理邏輯檔案的資料,邏
輯檔案的每一列是一筆記錄,第一列是欄位名稱
的資料定義。
• 不過實際儲存的檔案內容並沒有第一列的欄位名
稱,只有學生資料,檔案可以使用固定欄寬(例
如:前 4 個字元是學號,第 5~15 個字元是姓名
等,以此類推)或以特殊分隔字元儲存欄位資料
,如下所示:
S001: 江小魚 : 中和景平路 1000 號 :02-22222222:1978/2/2
S002: 劉得華 : 桃園巿三民路 1000 號 :03-33333333:1982/3/3
S003: 郭富成 : 台中巿中港路三段 500 號 :04-44444444:1978/5/5
S004: 張學有 : 高雄市四維路 1000 號 :05-55555555:1979/6/6

1-3-2 檔案 處理系 統的 問題 1
結構與資料相依( Structural and Data
Dependence )
• 因為檔案處理系統與檔案結構和儲存的資料相關
,如果更改,將花費相當大程式設計的時間與成
本,如下所示:
– 結構相 依( Structural Dependence ): 因為
檔案儲存的資料結構是由程式碼定義,如果需要更改
邏輯檔案結構,就需要更改所有使用此檔案的程式碼
,例如:更改分隔符號。
– 資料相 依( Data Dependence ): 在程式碼同
時也定義記錄的欄位,如果更改記錄的欄位定義,我
們需要更改所有程式的資料管理模組,例如:更改欄
位順序或將學生資料的電話欄改為電子郵件。

1-3-2 檔案 處理系 統的 問題 2
資料分隔與孤立( Data Separation and
Isolation )
• 檔案處理系統的資料是儲存在不同檔案,造成:
– 資料沒 有集 中管理 : 資料是分散儲存在不同的檔案,
如果需要跨檔案查詢,就會十分的困難,例如:上一
節跨課程與學生資料檔查詢學生的連絡資料。
– 檔案格 式不 相容: 資料使用不同的檔案格式儲存,因
為公司各部門可能使用不同檔案格式儲存資料,更進
一步,有可能使用不同的程式語言撰寫程式來管理資
料,將造成資訊分享的困難,這是資料重複和不一致
的主要原因。
– 更新系 統困 難: 因為檔案處理系統擁有多種檔案格式
,或各種不同程式語言所開發的程式,在更新或建立
新系統時,都會十分困難。

1-3-2 檔案 處理系 統的 問題 3
資料重複與不一致( Data Redundancy
and Inconsistency )
• 檔案處理系統的資料是儲存在不同的檔案
,如果沒有好好控制,資料就可能重複出
現在不同的檔案中,而且在新增和更新資
料時,造成資料的不一致,增加資料維護
的成本。

1-3-2 檔案 處理系 統的 問題 4
多使用者問題( Multiple Users
Problems )
• 檔案處理系統如果是單人使用的系統,就
不用考量並行( Concurrency )問題。
• 如果同時有多位使用者存取檔案處理系統
的資料,系統需要處理並行更新的問題,
例如:帳戶原有 10000 元,銀行客戶陳會
安和江小魚同時從此帳戶提款 3000 和
4000 元,如果沒有同步更新保護,最後的
餘額可能是 3000 、 7000 或 6000 元。

1-3-2 檔案 處理系 統的 問題 5
安全問題( Security Problems )
• 基於資料安全上的考量(大多是人為因
素),如果屬於多人使用的檔案處理系統
,需要指定不同使用者的權限,即使用者
授權存取那些檔案的資料,例如:總機小
組不能存取業務資料,就可以免重要業務
機密外流,人事管理人員只能存取員工資
料等。

1-3-2 檔案 處理系 統的 問題 6
資料完整性問題( Data Integrity
Problems )
• 資料完整性是指檔案儲存的資料需要符合
一些條件,例如:銀行帳戶餘額不能為負
值,課程的學分不可為 0 或負值。換句話
說,檔案處理系統的程式需要額外新增檢
查資料格式的程式碼,相對的,如果更改
條件,同時也需要更改程式碼,增加更改
條件的困難度。

1-3-3 資料 庫方式 - 架構

1-3-3 資料 庫方式 - 目的
• 在資料庫管理系統擁有多種程式模組:查詢處理
模組、交易管理和回復處理等,可以進行資料庫
的資料管理,將實際資料庫結構和存取都隱藏在
資料庫管理系統之後,如此可以達到:






多人使用,資料共享。
資料一致和最少的資料重複。
資料獨立(相反的是資料相依)。
改進資料完整性問題。
更佳的資料安全管理。
同步與交易管理。
資料備份與回復。

1-4 資料庫系 統發 展的 歷史演

• 1-4-1 1960 年代:
– 網路與階層式資料庫模型

• 1-4-2 1970 年代:
– 關聯式資料庫模型與實體關聯模型

• 1-4-3 1980 年代:
– 關聯式資料庫與 SQL 結構化查詢語言

• 1-4-4 1990 年代:
– 物件導向式資料庫模型與主從架構

1-4 資料庫系 統發 展的 歷史演

1-4-1 1960 年代: 網路 與階
層式資 料庫 模型
• 1960 年代是資料庫系統開始萌芽的年代,隨著
磁碟的出現,檔案也從循序索引( Indexedsequential )的循序存取轉變成「集合導向記錄
模型」( Set-oriented Record Model )的直
接存取。
– 1961 年: Bachman 替 GE ( General Electric )
奇異設計第一套資料庫管理系統 IDS ( Integrated
Data Store ), 1964 年才廣泛的使用,這是一套使
用「網路式資料庫模型」( Network Database
Model )的資料庫。
)的資料庫
– 1965 年: IBM 公司開發「 IMS 」( Information
Management System )是使用「階層式資料庫模型
」( Hierarchical Database Model )的資料庫。

1-4-2 1970 年代: 關聯 式資
料庫模 型與 實體關 聯模型 1
• 1970 年代是資料庫技術快速起飛的年代,資料
庫管理系統已經成為大學學科和研究領域,眾多
使用網路式和階層式資料庫模型的商用資料庫大
量出現在巿面。
– 1970 年: IBM 研究科學家 E. F. Codd 博士發表
「關聯式資料庫模型」( Relational Database
Model )的重要論文。
– 1976 年: Peter Chen 定義資料庫設計的「實體關
聯模型」( Entity-Relationship Model ),這是目
前資料庫系統分析和設計的基礎。
– 1978 年: ANSI 定義 ANSI/SPARC 三層資料庫系統
架構。

1-4-2 1970 年代: 關聯 式資
料庫模 型與 實體關 聯模型 2
• 1970 年代的後期,有二個主要的關聯式資料庫
研究計劃開始進行,如下所示:
– INGRES : 加州大學柏克萊分校的研究計劃,最後成
立 Ingres 公司,這個研究計劃開發的資料庫系統使用
QUEL 查詢語言,它是 Informix 、 Sybase 和 SQL
Server 資料庫系統的前身。
– System R : IBM 公司的研究計劃,最後成為 IBM
的 DB2 和 Oracle 資料庫的前身,使用的 SEQUEL 查
詢語言就是第四篇 SQL 結構化查詢語言的前身。

• 資料庫查詢語言( Query Language )隨著上
述研究計劃,在 1970 年代開始發展,例如:
QUEL 、 SEQUEL 、 SQL 和 QBE 查詢語言。

1-4-3 1980 年代: 關聯 式資
料庫與 SQL 結構化 查詢 語言
• 1980 年代是商用關聯式資料庫大放異彩的年代
,網路和階層式資料模型已經不再發展,不過直
到現在仍有一些系統在使用。 80 年代初期已經
開發超過 100 個 ANSI/SPARC 關聯式資料庫系
統,例如: DB2 、 Oracle 、 Sybase 和
Informix 等。
– 1980 年代中 期: 「 SQL 」( Structure Query
Language )成為 ISO 標準的資料庫查詢語言, IBM
DB2 也成為 IBM 公司最重要的資料庫產品。
– 在 1980 年代後 期: 專家系統( Expert Database
System )、物件導向資料庫管理系統( ObjectOriented Database Management System )和主
從架構分散式系統逐漸成為資料庫系統的未來趨勢。

1-4-4 1990 年代: 物件 導向
式資 料模型 與主 從架構 1
• 1990 年代關聯式資料庫的相關技術仍然持續的
發展,隨著 1990 年代中期程式設計技術進入物
件導向分析和設計,應用物件導向觀念的資料庫
模型也逐漸成形,如下所示:
– 物件導 向式 資料庫 模型 ( Object-Orient
Database Model ): 這是使用物件( Object )
觀念代替記錄儲存資料,以繼承減少資料重複,因為
程式語言也支援物件導向,所以資料庫與程式語言可
以使用一致的資料模型。
– 物件關 聯式 資料庫 模型 ( Object-Relational
Database Model ): 這是由 Won Kim 和
Michael Stonebraker 博士研究的資料庫模型,將物
件導向的觀念整合至關聯式資料庫模型,強調這不是
革命( Revolution ),而是進化( Evolution )。

1-4-4 1990 年代: 物件 導向
式資料 庫模 型與主 從架構 2
• 隨著 Internet 與 WWW 的興起和個人電腦的普
及,集中處理的資料庫系統已經改為分散式主從
架構( Client/Server )資料庫系統,將系統區
分成兩個部分,如下所示:
– 客戶端 ( Client ): 從端的應用程式負責使用者的
資料輸入和顯示輸出的結果。
– 伺服端 ( Server ): 主端的資料庫系統是負責回應
從端的請求,將查詢結果傳回從端的應用程式。

• 再加上平行資料庫處理( Parallel Database
Processing )應用在關聯式資料庫上,可以將表
格的資料水平或重直分割成多個資料庫且並行的
進行資料處理,即「分散式資料庫系統」
( Distributed Database System )。

1-5 資料庫技 術的 發展趨 勢