Ch01 資料庫系統理論 資料庫管理
大綱 資料庫 資料庫模型 資料庫管理系統 2017/3/22
資料庫的定義-定義 資料庫正式的定義有很多種,比較通用的定義,如下所示: 定義:資料庫(Database)是一個儲存資料的電子文件檔案櫃(An Electronic Filing Cabinet)。 以現代的企業或組織來說,資料庫是讓企業或組織能夠正常運作的重要元件,想想看!如果銀行沒有帳戶和交易記錄的資料庫,客戶存款和提款需要如何運作。每家航空公司都需要依賴訂票系統的資料庫,才能讓各旅行社訂機票,旅客才知道班機是否已經客滿。 2017/3/22
資料庫的定義-長存資料 在企業或組織資料庫儲存的大量資料並非短暫儲存的暫時資料,而是長時間存在的資料,稱為「長存資料」(Persistent Data),長存資料是維持企業或組織正常運作的重要資料,如下: 在組織中的資料需要一些操作或運算來維護資料。例如:當公司員工有人離職或是新進,員工資料需要新增和刪除操作來進行維護。 資料之間是有關係的。例如:員工資料和出勤資料擁有關係,一位員工擁有一份多筆的出勤資料。 資料不包含輸出資料、暫存資料或任何延伸資訊。例如:員工平均出勤資料、年齡和居住地分佈資料等並不屬於長存資料,因為這些資料都可以透過資料運算而得,亦稱為導出資料(Derived Data)。 2017/3/22
資料庫的定義-範例 資料庫(Database)這個名詞是一個概念,這是一種資料儲存單位,一些經過組織的資料集合。事實上,有很多現成擁有或一些常常使用的資料集合,都可以稱為資料庫,如下所示: 在Word文件中編輯的通訊錄資料。 使用Excel管理的學生成績資料。 在應用程式提供相關功能來維護和分析儲存在大型檔案的資料。 銀行的帳戶資料和交易資料。 醫院的病人資料。 大學的學生、課程、選課和教授資料。 電信公司的帳單資料。 2017/3/22
資料庫-範例(以ACCESS為例) Access資料庫的資料是儲存在「資料表」(Tables)物件,每一個資料表使用「欄位」(Fields)分類成很多群組,每一個群組是一筆「記錄」(Records),例如:通訊錄資料原來是使用表格儲存,如下表所示: 2017/3/22
資料庫的說明 一般來說,我們所泛稱的資料庫正確的說是「資料庫系統」(Database System)的一部分,資料庫系統是由「資料庫」(Database)和「資料庫管理系統」(Database Mangement System,簡稱DBMS)所組成。 2017/3/22
資料庫的基礎-圖例 2017/3/22
邏輯關聯資料 在資料庫儲存的是一種擁有關係的資料,這些資料使用關聯性(Relationships)建立與其它資料的邏輯關聯,所以稱為「邏輯關聯資料」(Logically Related Data)。 關聯性是一個術語,如果使用口語方式來說,可以將它視為一種資料間的連結,在資料庫儲存的是一種「完全連結」(Fully Connected)的資料,完全連結是指資料庫儲存的資料間擁有連結方式,這個連結允許從一個資料存取其它的資料。例如:前述的員工資料和出勤資料擁有關係,一位員工擁有一份多筆的出勤資料,換一個角度來說,就是在資料之間擁有連結方式,以便可以將員工資料連接到出勤資料。 2017/3/22
使用Access資料庫管理系統儲存資料 Access可以將上述表格轉換成【通訊錄資料.mdb】檔案,這是一個資料庫,內含上述表格的通訊資料,【通訊錄】是表格名稱,順理成章成為資料表物件的名稱,表格的每一列是一筆記錄的群組,這個群組分成欄位:姓名、地址、電話、生日和電子郵件地址。 換一個角度來看,我們使用資料庫儲存資料的目的是為了能夠快速排序和查詢,或是輸出報表,所以資料庫管理系統提供有各種排序和查詢功能,只需透過資料庫管理系統就能夠輕鬆取出資料庫所需的資料且產生所需的報表,這也是我們建立資料庫的目的。 2017/3/22
資料庫模型 「資料庫模型」(Database Model)是使用一組整合觀念來描述資料與資料間的關係和資料的限制條件(檢查是否是儲存正確資料的條件),也就是用來描述資料庫中資料的關聯性。 Access是一套關聯式資料庫系統,這是指它是一套使用關聯式資料庫模型(Relational Database Model)的資料庫管理系統。 2017/3/22
大型檔案資料庫模型-說明 「大型檔案資料庫模型」(Flat-File Database Model)是直接使用檔案(通常是文字檔案)儲存資料庫的資料。 早期在沒有資料庫管理系統的年代,大部分公司都是直接使用COBOL程式語言設計系統,以文字檔案儲存資料,每一個檔案是一個資料表,檔案中的每一列是一筆記錄,使用固定欄寬或特殊的分隔字元儲存欄位資料。 2017/3/22
大型檔案資料庫模型-範例1 資料庫的每一個文字檔案就是一個資料表,在檔案中的每一列是一筆記錄,使用固定欄寬或特殊分隔字元來儲存欄位資料,例如:【學生】資料表,如下圖所示: 2017/3/22
大型檔案資料庫模型-範例2 如果資料庫很龐大,需要使用多個資料表來儲存資料時,每一個資料表就是一個檔案,例如:新增【選課】資料表,如右圖所示: 2017/3/22
關聯式資料庫模型-說明 「關聯式資料庫模型」(Relational Database Model)是1970年由IBM研究員E. F. Codd博士開發的資料庫模型,其理論基礎是數學的集合論(Set Theory),不同於階層和網路式模式使用低階指標連結資料,關聯式資料庫模型是使用「資料值」(Data Value)建立關聯,支援一對一、一對多和多對多關聯性。 2017/3/22
關聯式資料庫模型-資料結構 關聯式資料庫模型可以視為一個儲存記錄的二維表格,其資料結構是「關聯表」(Relations),如下圖所示: 2017/3/22
關聯式資料庫模型-關聯性 關聯式資料庫模型建立的關聯是以資料值(Data Values),而不是使用連接結構(Links Structures),如下圖所示: 2017/3/22
關聯式資料庫模型-優缺點 關聯式資料庫模型的優缺點,如下表所示: 2017/3/22
資料庫系統的種類 使用者數來區分 範圍來區分 位置來區分 資料庫模型來區分 2017/3/22
使用者數來區分 資料庫系統以使用者人數來區分可以分為單人使用和多人使用的資料庫系統,如下所示: 單人使用(Single-user):單人使用的資料庫系統,資料庫系統只有專屬的使用者,從早期大型主機的資料庫系統和一些小型資料庫系統都屬於此類。 多人使用(Multi-user):資料庫系統允許多位使用者同時使用,目前大部分資料庫系統都屬於多人使用的資料庫系統。 2017/3/22
範圍來區分 桌上型(Desktop):桌上型資料庫系統是指在個人電腦上執行的資料庫系統,通常屬於個人使用,適用在個人或中小企業的資料庫應用。 工作群組(Workgroup):在公司部門或組織中以工作群組方式區分的資料庫系統。例如:業務、會計和倉庫管理等各工作群組使用的資料庫系統,巿面上眾多現成的進銷存、會計和客戶管理等資料庫系統都屬此類。 企業級(Enterprise):跨部門或分公司的大型資料庫系統,屬於大型企業使用的資料庫系統,因為分公司可能分佈在世界各地,大多是使用分散式資料庫系統(Distributed Database System)。 2017/3/22
位置來區分 集中式資料處理(Centralized Data Processing):指使用單一大型主機(Mainframe),將資料處理、儲存都集中在這台電腦,使用「終端機」(Terminals)連接主機執行資料處理,換句話說,資料庫系統就是安裝在這台主機上。 分散式資料處理(Distributed Data Processing):電腦是分散在公司和組織的不同位置,使用網路連接電腦,此時的資料庫系統可以安裝在任何一台電腦執行所需的資料處理。 2017/3/22
資料庫模型來區分 資料庫系統如果使用資料庫模型來區分,資料庫系統可以依使用的資料庫模型分類成數種,例如: 網路式資料庫系統。 階層式資料庫系統。 關聯式資料庫系統。 2017/3/22
資料庫管理系統-ANSI/SPARC三層資料庫系統架構 目前大部分巿面上的資料庫系統都是使用ANSI/SPARC三層資料庫系統架構,這是由「ANSI」(American National Standards Institute)和「SPARC」(Standards Planning And Requirements Committee)制定的資料庫系統架構。 雖然ANSI/SPARC三層資料庫系統架構從未正式成為官方的標準規格,不過它是目前被廣泛接受的資料庫系統架構。 2017/3/22
ANSI/SPARC三層資料庫系統架構-圖例 2017/3/22
ANSI/SPARC三層資料庫系統架構-概念層(說明) 概念層(Conceptual Level) 在概念層看到的是整個資料庫儲存的資料,這是資料庫管理師觀點所看到的完整資料庫。因為是概念上的資料庫,所以並不用考量資料實際的儲存結構,因為這部分屬於內部層(Internal Level)的問題。 以Access資料庫來說,在概念層看見的是【資料表】物件的清單和【資料工作表】以二維表格方式顯示的記錄資料。 2017/3/22
ANSI/SPARC三層資料庫系統架構-概念層(範例) 例如:Access資料庫的【學生】資料表,如下圖所示: 2017/3/22
ANSI/SPARC三層資料庫系統架構-外部層(說明) 外部層(External Level) 在外部層看到的是使用者觀點(User Views)的資料,代表不同使用者在資料庫系統所看見的資料,通常只有部分資料庫的資料。對於資料庫系統的使用者來說,其面對的是外部層,包含多種不同觀點的資料。例如:一所大學或技術學院,可以提供多種不同使用者觀點,如下所示: 使用者觀點1:學生註冊資料 使用者觀點2:學生選課資料 使用者觀點3:學生成績單資料 2017/3/22
ANSI/SPARC三層資料庫系統架構-外部層(範例) 例如:Access的【查詢1980年前出生的學生資料】查詢物件就只顯示學生資料表的部分資料,如下圖所示: 2017/3/22
ANSI/SPARC三層資料庫系統架構-外部層 內部層(Internal Level) 內部層是以實際儲存觀點所呈現的資料,這是實際儲存在磁碟等儲存裝置的資料,內部層在三層架構中扮演資料庫管理系統與作業系統的介面。 2017/3/22
資料庫綱要 ANSI/SPARC三層資料系統架構是探討資料庫管理系統的角度,針對不同使用觀點來說明其管理的資料。 現在轉換主題到資料庫本身,在資料庫管理系統看到的資料是儲存在資料庫的資料,除了資料本身外,還包含描述資料的定義,稱為「綱要」(Schema)。 2017/3/22
資料庫綱要的基礎-說明 「資料庫綱要」(Database Schema)是指整個資料庫的描述,即描述整個資料庫儲存資料的定義資料,如下所示: 綱要(Schema):資料描述的定義資料,對比程式語言的變數就是資料型態(Data Type)。例如:VB語言宣告成整數的age年齡變數,如下圖所示: Dim age As Integer 資料(Data):資料本身,也就是程式語言的變數值。例如:年齡為25,如下所示: age = 25 2017/3/22
資料庫綱要的基礎-圖例 2017/3/22
三層資料庫綱要-圖例 2017/3/22
三層資料庫綱要-概念綱要 概念綱要(Conceptual Schema) 概念綱要是描述概念層的完整資料庫,所以資料庫只擁有一個概念綱要來定義資料表的欄位和資料類型。以Access來說,這就是【資料表】物件設計檢視的欄位定義,如下圖所示: 2017/3/22
三層資料庫綱要-外部綱要 外部綱要(External Schema) 外部綱要源於概念綱要,主要是描述外部層顯示的資料,每一個外部層綱要只描述資料庫的部分資料,隱藏其它部分的資料。換句話說,每一個外部層使用者觀點的資料都需要一個外部綱要,在一個資料庫允許擁有多個外部綱要。 2017/3/22
三層資料庫綱要-內部綱要 內部綱要(Internal Schema) 內部綱要是描述內部層實際儲存觀點的資料,定義資料的儲存結構和哪些資料需要建立索引,如同概念綱要,資料庫只擁有一個內部綱要。例如:使用C語言宣告學生Student的結構,如下所示: struct Student { char no[5]; char name[15]; char address[40]; int telephone; struct Date birthday; struct Student *next; }; 2017/3/22
資料庫管理系統-說明 資料庫管理系統從字面來說是一套管理資料庫的軟體工具,它是由一組程式模組負責組織、管理、儲存和讀取資料庫的資料,使用者對於資料庫的任何操作,都一定需要透過資料庫管理系統來處理。 目前巿面上大部分的資料庫管理系統都屬於「關聯式資料庫管理系統」(Relational Database Management System,簡稱RDBMS),這是用來管理關聯式資料庫模型(Relational Database Model)的關聯式資料庫(Relational Database)。 2017/3/22
資料庫管理系統-圖例 資料庫管理系統在眾多的電腦軟體系統架構中,是位在作業系統和應用程式開發工具之間,如下圖所示: 2017/3/22
資料庫管理系統的系統架構-說明 在討論三層資料庫系統架構是資料庫管理系統的抽象觀點(Abstract View),以資料庫儲存資料的角度來說明整個資料庫管理系統。 換一種方式,從軟體角度出發,資料庫管理系統是由多種不同的程式模組所組成,雖然各家廠商的資料庫管理系統擁有不同的系統架構,不過,基本資料庫管理系統的系統架構都擁有四大模組。 2017/3/22
資料庫管理系統的系統架構-圖例 2017/3/22
資料庫管理系統的系統架構-儲存管理 儲存管理(Storage Manager)對於簡單的資料庫管理系統來說,就是作業系統的檔案管理,不過為了效率考量,資料庫管理系統通常都會自行配置磁碟空間,將資料存入儲存裝置的資料庫。例如:硬式磁碟機,或從資料庫讀取資料。 儲存管理可以再分為:檔案管理(File Manager)實際配置磁碟空間後將資料存入磁碟,和緩衝區管理(Buffer Manager)負責電腦記憶體的管理。 2017/3/22
資料庫管理系統的系統架構-查詢處理模組 目前的資料庫管理系統大多提供第4代語言(4GL),可以讓使用者定義、查詢或存取資料,資料庫管理系統語言(DBMS Languages)主要分成兩大類,如下所示: 資料定義語言DDL(Data Definition Language):DDL是用來建立資料庫綱要(Database Schema),我們使用它來定義概念綱要、內部綱要和外部綱要。 資料操作語言DML(Data Manipulation Language):這個語言的指令敘述可以讓使用者存取和操作資料庫的資料,它是使用者與資料庫管理系統間溝通的語言,可以查詢、新增、刪除和更新資料庫的資料。 2017/3/22
資料庫管理系統的系統架構-交易管理 資料庫系統通常都會支援商業用途,而商業系統架構的基礎是商業交易,這些商業交易的操作需要一併執行,視為一個無法分割的單位,整個過程對於資料庫來說是一個「交易」(Transaction)。 交易管理(Transaction Manager)主要分為:同名的交易管理子系統,負責處理資料庫的交易,保障資料庫商業交易的操作需要一併執行;「鎖定管理」(Lock Manager)也稱為「並行控制管理」(Concurrency-Control Manager)子系統來負責資源鎖定。 2017/3/22
資料庫管理系統的系統架構-回復管理 資料庫在運作中可能碰到系統當機、斷電或磁碟損壞等突發狀況,所以,資料庫管理系統需要提供備份和回復管理(Backup and Recover Management),以保障資料的完整或一致性。 回復管理(Recovery Manager)主要分為:「記錄管理」(Log Manager)子系統,負責記錄資料庫的所有操作,包含交易記錄,以便同名的回復管理子系統能夠執行回復處理來回復資料庫系統。 2017/3/22
常見的資料庫管理系統-說明 目前巿場主流的資料庫管理系統是關聯式資料庫管理系統,有相當多廠商開發相關的資料庫產品,有些軟體公司的主力產品就是資料庫,例如:甲骨文公司的Oracle。 隨著「開放原始碼」(Open Source)的大力推展,一些免費的資料庫管理系統產品也可以從網路上免費取得,換句話說,如果公司或組織的軟體採購經費不足,也可以選擇免費的資料庫管理系統來建構公司的資料庫系統。 2017/3/22
常見的資料庫管理系統-商用的資料庫管理系統1 SQL Server:微軟SQL Server是微軟公司針對企業級巿場的主力資料庫產品,使用SQL結構化查詢語言,稱為Transact-SQL。第一個版本約在1989年推出,這是OS/2作業系統的版本,SQL Server是源於UNIX和VMS作業系統的Sybase SQL Server 4.0,Sybase和微軟最後分道揚鑣分別獨立開發其產品,其網址:http://www.microsoft.com。 Access:繼Xbase資料庫系統DBASE和FoxPro等之後,微軟開發針對個人電腦使用的資料庫管理系統,屬於微軟Office家族的一員,提供圖形使用介面,在不需要設計程式的情況下,就可以建立應用程式,通常是用來建立搭配其他資料庫管理系統的「前台」(Frontends)應用程式。 2017/3/22
常見的資料庫管理系統-商用的資料庫管理系統2 DB2:IBM公司主力的資料庫產品,也是使用SQL語言,DB2不只是一套關聯式資料庫系統,從技術上來說,它還是一套物件關聯式資料庫系統,其網址:http://www.ibm.com。 Oracle:甲骨文公司(Oracle Corporation)開發與公司同名的著名資料庫產品Oracle,這是一套巿佔率很高的資料庫產品,使用名為PL/SQL資料庫語言,Oracle是一套強力支持Java語言的資料庫產品,如同IBM DB2,它不只是一套關聯式資料庫系統,還是一套物件關聯式資料庫系統,其網址:http://www.oracle.com.。 2017/3/22
常見的資料庫管理系統-商用的資料庫管理系統3 INGRES:源於加州大學柏克萊分校的關聯式資料庫研究計劃,在1982年成立Ingres公司開發商用資料庫產品,後來被組合國際(Computer Associates)購併,稱為Ingres Enterprise Relational Database,這是一套高效能和高擴充性的關聯式資料庫管理系統,事實上,目前巿面上各家的資料庫管理系統,有很多都是源於Ingres研究計劃,其網址:http://www.ca.com。 Sybase:賽具斯公司開發的資料庫管理系統,原名Sybase SQL Server,後來更名為Sybase Adaptive Server,以避免與微軟Microsoft SQL Server混淆,Sybase是最早使用Ingres系統開發資料庫管理系統,早於Informix,其網址:http://www.sybase.com/home。 2017/3/22
常見的資料庫管理系統-商用的資料庫管理系統4 Informix:Informix公司擁有20年關聯式資料庫管理系統開發經驗,Informix公司是最早使用Ingres系統開發資料庫系統的廠商之一,在2001 年被IBM公司購併,IBM將其資料庫技術使用在DB2,稱為DB2 Arrowhead,其相關開發工具的軟體公司改名為Ascential軟體公司。 InterBase:Borland公司的關聯式資料庫管理系統,InterBase不同於其他公司的資料庫管理系統,這是一套很小的產品,幾乎不需任何管理,一樣提供多層架構,其網址:http://www.borland.com。 2017/3/22
常見的資料庫管理系統-免費的資料庫管理系統1 MySQL:MySQL AB公司開發和維護的關聯式資料庫管理系統,MySQL是一套快速、多執行緒、多使用者和使用SQL語言的關聯式資料庫管理系統,這是一套GNU免費軟體,如果需要技術支援,可以購買商業版本的MySQL,其網址:http://www.mysql.com/。 PostgreSQL:PostgreSQL是一套BSD License授權的免費物件關聯式資料庫管理系統,這是由PostgreSQL Global Development Group開發和維護的資料庫管理系統,類似商用資料庫管理系統Oracle和IBM DB2,其網址:http://www.postgresql.org/。 2017/3/22
常見的資料庫管理系統-免費的資料庫管理系統2 Firebird:Firebird原來是由Inprise公司(即現在的Borland公司)開發的資料庫管理系統,現由Firebird Foundation Incorporated負責後續開發與維護的免費關聯式資料庫管理系統。Firebird新增的程式模組是使用Initial Developer's Public License(IDPL)授權,原始模組是InterBase Public License授權,支援ANSI-SQL資料庫語言,其網址:http://www.firebirdsql.org/。 2017/3/22
資料庫管理師-說明 「資料庫管理師」(Database Administrator,DBA)負責和執行一個成功資料庫環境的相關管理和維護工作。事實上,資料庫管理師負責很多工作,它可以是一個人,也可能是一個小組來擔任。簡單的說,資料庫管理師的主要目的是維護資料庫系統的正常運作,並且提供使用者存取所需的資料。 2017/3/22
資料庫管理師-背景 通常資料庫管理師需要擁有公司管理和資料庫等電腦技術的專業知識,最好是主修資訊或資管科系的人員,其需要的相關電腦知識,如下所示: 熟悉作業系統操作。 熟悉一種或數種資料庫管理系統的使用。 精通資料庫系統提供的查詢語言,即SQL結構化查詢語言。 資料庫設計,至少需要清楚公司資料庫系統的資料庫綱要。 對電腦硬體與網路架構有一定的了解。例如:主從架構和Internet網際網路。 2017/3/22
資料庫管理師扮演的角色-說明 資料庫管理師負責資料庫系統的維護和管理,在角色上是扮演中間協調與溝通的角色,需要和軟體與硬體廠商溝通軟體升級或硬體擴充,提供管理者決策支援和使用者所需的資料,和開發者研究系統功能擴充,解決系統問題,資料庫管理師都扮演重要的中間溝通與協調角色。 資料庫管理師處理的主要對象是資料,資料庫管理師需要執行整個公司的資料管理和處理,讓資料庫以最佳效能、能夠24小時正常的運作。 2017/3/22
資料庫管理師扮演的角色-圖例 2017/3/22
資料庫管理師負責的工作-維護資料庫綱要 維護資料庫綱要 資料庫管理師需要參與資料庫設計,提供資料庫設計師關於概念層綱要的修改建議,即協助建立Access資料表物件的定義資料。 資料庫管理師需要負責從資料庫使用的資料庫模型。例如:關聯式資料庫模型,和系統規格建立資料庫,描述資料庫在儲存裝置的實際資料結構。 2017/3/22
資料庫管理師負責的工作-資料管理 資料管理 資料庫管理師最主要的工作是資料管理,提供公司或組織一個集中管理的資料庫,並且依據各部門的需求,提供不同使用者觀點的資料,即建立不同的Access查詢物件。 2017/3/22
資料庫管理師負責的工作-維護和監控資料庫管理系統1 安裝和升級資料庫管理系統:資料庫管理師負責公司資料庫管理系統和更新套件的安裝,當新版推出時,還負責資料庫管理系統的升級安裝。 監控和調整資料庫的效能:資料庫管理師負責監控資料庫系統的實際使用狀態,統計和分析資料庫的資料使用狀態,依據監控所得的資訊,調整資料庫效能和最佳化資料庫的使用。 2017/3/22
資料庫管理師負責的工作-維護和監控資料庫管理系統2 使用者的稽核追蹤:資料庫管理師扮演資料庫系統的線上警察,負責追蹤各使用者的資料存取狀況,是否有非法入侵的使用者,可以防止違規使用者存取重要資料。 容量計劃和選擇儲存裝置:資料庫儲存的資料會隨時間而成長,但是資料庫系統的儲存容量並不會自動的同步成長,資料庫管理師需要預估未來可能的資料成長量,選擇適當的儲存裝置和更改資料結構,以滿足資料成長的需求。 備份與回復:資料庫是公司重要的資產,資料庫管理師需要儘其所能維護資料庫不受到損害,資料庫管理師負責定期備份資料庫,當系統發生問題時,使用最適當的回復程序,以最快速的方式恢復資料庫的正常運作。 2017/3/22
資料庫系統的優點-1 整合資料管理:相關資料檔案是集中由資料庫管理系統進行管理。 資料共享:資料庫的資料可以由多人共享,允許多人同時存取資料庫,另外透過網路或Internet,就算位在世界各地都可以存取資料庫的資料。 2017/3/22
資料庫系統的優點-2 減少資料重複(Data Redundancy):因為資料庫系統是集中管理資料庫的資料,所以可以大幅降低資料重複的可能性。 維持資料的一致性(Data Consistency):因為資料庫系統可以減少資料重複,再加上資料庫管理系統可以檢查完整性限制條件(Integrity Constraints),不只可以保證輸入資料的正確,還可以維持資料的一致性。 資料獨立(Data Independence):在檔案處理系統存取資料需要了解詳細的資料結構,資料庫管理系統提供資料獨立,換句話說,如果資料結構或存取方式改變,並不會影響應用程式的執行,例如:學號從5碼改為6碼,並不需要更改應用程式的程式碼。 2017/3/22
資料庫系統的優點-3 提供單一介面和語言存取資料:資料庫系統提供4GL的資料庫語言存取資料庫。例如:SQL語言,或是透過應用程式的操作介面存取資料,可以隱藏資料庫管理系統的實際資料存取方式。 更多的資料保密、安全管理和控制能力:資料庫系統提供資料保密、使用者存取權限和資料存取的控制,可以強迫達成標準化的資料管理。例如:標準的文件格式或不同層級的資料存取。 提供多種觀點的資料:因為資料庫系統是由多人共享,每位使用者可以分別取得所需的資料,而且以不同的觀點來符合其需求。例如:同樣是教授,它可以是學生的老師,也可以是學校的員工。 2017/3/22
資料庫系統的優點-4 支援交易管理(Transaction Management):資料庫系統提供交易管理和並行處理,可以處理商業交易,保障交易進行的正確無誤。 具高可靠性(Reliability):資料庫系統十分可靠,提供備份與回復功能來進一步保障資料的安全,在出現狀況時,可以回復資料庫系統的資料。 降低軟體開發的費用:直接選擇現成的資料庫管理系統,然後在管理系統下開發所需的資料庫系統,而不用重頭開發整個資料庫系統。 2017/3/22
資料庫系統的缺點-1 龐大的額外費用:建構資料庫系統需要升級電腦硬體和軟體環境,一套企業永續經營的資料庫系統,包含網路建置,硬體和軟體升級,將會是一筆相當龐大的額外預算,有可能未蒙其利,先受其害,造成公司財務的負擔。 資料轉換的成本:各部門的資料都需要轉換成資料庫結構,以便存入資料庫,這不只是資訊部門的一項大工程,而且需要全公司各部門人員的充分支援。 2017/3/22
資料庫系統的缺點-2 安全管理的漏洞:雖然資料庫擁有安全管理能力,但是人為錯誤或非專業人員的控管,資料共享的優點,反而容易造成人為的安全問題。例如:沒有取消離職員工的帳號,增加公司重要資料被竊取的機會。 大幅更改作業流程:資料庫系統可能大幅更改現有公司的作業流程,使用者不只需要熟悉全新的應用程式操作,還需要適應新的資料處理流程,如此可能產生額外的人力支援和不合作的使用者,加重資訊部門的負擔和責任。 2017/3/22
資料庫系統的缺點-3 系統風險增加:資料庫系統使用集中方式管理資料,一旦系統停擺,將會讓公司蒙受重大損失。資料庫系統可能因為電腦病毒、天災、硬體故障或人為操作錯誤等情況造成系統癱瘓,所以資料庫系統在建置時,就需考量備援系統或額外的保護設備。例如:使用不斷電系統(Un-interrupt Power Systems)可防止不預警的停電。如果是一套全年無休持續運作的NonStop資料庫系統,還需要準備異地備援系統,以免公司主機遭遇地震或火災受損時,仍然可以使用位在其它地方的資料庫系統,維持公司的正常運作。 2017/3/22
資料庫系統的缺點-4 人為風險增加:事實上,人為錯誤和破壞才是資料庫系統的最大敵人,如果資料庫系統設計錯誤,一旦人為的資料輸入錯誤,小則只是系統受損,大則錯誤的資料,可能造成決策錯誤和管理作業上的混亂。更進一步,如果資訊部門有不肖人員(或駭客),蓄意進行破壞,集中管理的資料庫系統,反而成為最佳的攻擊目標,所以資料庫系統除了系統管理外,相關人員的忠誠管理也是一項重要的工作。 2017/3/22