|
|
|
|
資料處理的演進主要是因為處理的工具與儲存媒體的進步和處理單元的不同,而分成以下不同的階段: |
|
人工檔案處理 |
|
|
電腦化檔案管理 |
|
|
以記錄
(Record) 為處理單元的資料庫管理系統 |
|
|
根據其資料模式(Data Model) 的不同,可分成階層式(Hierarchical)、網路式(Network)與關聯式(Relational)三種:
|
|
階層式(Hierarchical)
資料庫管理系統 |
|
|
其資料模式的基本架構為樹(Tree) 般的結構,它代表實體間一對多的關係(父─子關係)。一個父(Parent
Node) 節點可以有多個子節點(Child Node),而每個子節點只能有一個父節點。此種關係以圖形表示時,看起來像棵樹。階層式使用指標(Pointer)
做為父子節點間的鏈結(Link),指標(Pointer) 由父節點指向子節點。
|
公司
Company
|
|
|
|
Company
Name
|
City
|
Telephone
|
部門
Department
|
|
|
|
Department
No
|
Department
Name
|
員工
Employee
|
|
|
|
Employee
No
|
Employee
Name
|
圖 7 階層式資料庫綱要的例子
|
圖 8 階層式資料庫的例子 |
階層式資料庫很適合描述一對多的關係,但是它卻無法直接表達多對多的關係,因此後來有人提出可以表示多對多關係的網路式資料模式。
|
|
網路式(Network)
資料庫管理系統 |
|
|
由於階層式資料無法表示多對多關係,因此提出新的網路式資料模式。其最主要與階層式不同點在於一筆子記錄節點可以有零個至多個父記錄節點。簡單地說,網路式資料庫是由儲存資料記錄的集合與連結資料記錄間鏈結(Link)
的集合所組成。
|
圖 9 一個網路式資料庫綱要
|
P_I 鏈結:由製造商(Producer)
記錄節點指向商品(Item) 記錄節點。
S_I 鍵結:由銷售商(Sales) 記錄節點指向商品(Item) 記錄節點。
|
圖 10 網路式資料庫的例子
|
|
關聯式(Relational)
資料庫管理系統 |
|
|
將資料以「關聯式」表格方式來表示。而表格(Table)
即是記錄(Record)
的集合為處理的單位,與前面介紹的階層式或網路式資料模式是以單一筆記錄為處理單位不同。在關聯式資料模式中,資料與資料之間的關係不再是以指標為鏈結,取而代之是以資料值做為資料之間的關聯。許多關聯表的集合即形成「關聯式資料庫」,也就是
ASNI/SPARC 資料庫架構中的外部層與概念層部份,而內部層的資料實際儲存自然並不是以表格方式儲存,但在使用者眼中知道它是一群表格即可。
|
P.K.
|
|
|
F.K.
|
|
P.K.
|
|
|
Empno
|
Ename
|
Sal
|
Deptno
|
|
Deptno
|
Dname
|
Loc
|
7369
|
SMITH
|
800
|
20
|
|
10
|
ACCOUTING
|
NEW
YORK
|
7499
|
ALLEN
|
1800
|
10
|
|
20
|
RESEARCH
|
DALLAS
|
…
|
…
|
…
|
…
|
|
…
|
…
|
…
|
7566
|
JONES
|
2975
|
-
|
|
40
|
OPERATIONS
|
BOSTON
|
R1
(員工基本資料表格
EMP)
|
|
R2
(部門基本資料表格
DEPI)
|
圖 11 關聯式資料庫的例子
|
|
以物件為處理單元的物件導向式資料庫管理系統 |
|
|
雖然目前所使用的資料庫管理系統絕大多數仍是「關聯式資料庫管理系統」,但是我們終究不能忽視這股物件導向的趨勢。大致上,我們可以發現目前在物件導向資料庫上的發展,有以下兩種觀念的產生:
|
|
物件導向式資料庫管理系統(Object-Oriented DBMS) |
|
物件關聯式資料庫管理系統(Object-Relational DBMS) |
|
|
|
|
物件導向式資料庫管理系統 |
|
|
|
此類系統以物件(Objects)
的觀念來代替以往的記錄(Records),兩者最大的差別在於:物件本身可以是由其它物件層層包覆所組成,物件與物件之間可以有各種縱向繼承(Specialization
and Generalization) 與橫向組合(Aggregation)
的關係,同時物件本身有其特定的運算定義於其上;而記錄本身則均無此種特性或概念。大多數物件導向資料庫管理系統的廠商所販賣的都是所謂的「永久式程式語言」(Persistent
Language),也就是一個與某種特定程式語言,如:C++ 或 Smalltalk 做緊密結合的系統。
|
|
物件關聯式資料庫管理系統 |
|
|
|
由於目前大多數的資料庫使用者仍習慣關聯式資料庫,再加上物件導向的觀念似乎與一般的程式設計不同,所以「物件導向式資料庫管理系統」似乎仍停留在學術層面,因此有人提出了「物件關聯式資料庫管理系統」(Object-Relational
DBMS) 的觀念。也就是在原有的關聯式資料庫上再加上物件導向設計功能。 |
|