第2章 資料庫系統 2-1 資料庫環境的四大組成元件 2-2 ANSI/SPARC的三層資料庫系統架構

Slides:



Advertisements
Similar presentations
数据库原理及应用(ORACLE)实用教程
Advertisements

第 8 章 還原資料庫.
数据库系统原理及应用 Database Theory and Application
第2章 資料庫系統 2-1 資料庫環境的四大組成元件 2-2 ANSI/SPARC的三層資料庫系統架構
An Introduction to Database Systems
第 15 章 資料庫系統.
第6章 資料庫管理系統 6-1 關聯式資料庫管理系統 6-2 SQL Server資料庫管理系統
第1章 資料庫系統 1-1 資料庫系統的基礎 1-2 三層資料庫系統架構 1-3 資料庫綱要 1-4 資料庫管理系統 1-5 資料庫管理師
数据库原理与应用.
Ch01 資料庫系統理論 資料庫管理.
陳維魁 博士 儒林圖書公司 第九章 資料抽象化 陳維魁 博士 儒林圖書公司.
程式語言的基礎 Input Output Program 世代 程式語言 第一世代 Machine language 第二世代
程式設計概論 1.1 程式設計概論 程式語言的演進 物件導向程式 程式開發流程 1.2 C++開發工具
LINQ 建國科技大學 資管系 饒瑞佶.
本 章 重 點 12-1 資料庫管理系統的基礎概念 12-2 SQL(Structured Query Language)語法簡介
第一篇 Unix/Linux 操作介面 第 1 章 Unix/Linux 系統概論 第 2 章 開始使用 Unix/Linux
第1章 認識Arduino.
Chap 2 資料庫系統.
資料庫操作.
計算機概論 第十章 檔案與資料庫管理系統 陳維魁/陳邦治 旗標出版社.
類別(class) 類別class與物件object.
SQL Stored Procedure SQL 預存程序.
R教學 安裝RStudio 羅琪老師.
ASP.NET基本設計與操作 建國科技大學 資管系 饒瑞佶 2007年.
安裝JDK 安裝Eclipse Eclipse 中文化
資料庫系統導論.
OpenID與WordPress使用說明
連結資料庫管理系統.
App Inventor2呼叫PHP存取MySQL
國際資訊安全標準ISO 27001之網路架構設計 –以國網中心為例探討風險管理
檔案與磁碟的基本介紹.
第二章 SPSS的使用 2.1 啟動SPSS系統 2.2 結束SPSS系統 2.3 資料分析之相關檔案 2.4 如何使用SPSS軟體.
管理資訊系統導論 資訊系統的定義與概念.
Java 程式設計 講師:FrankLin.
FTP檔案上傳下載 實務與運用.
網際網路與電腦應用 林偉川 2001/11/08.
私立南山高中 信息組 電腦研習 電腦資料的備份 中華民國 99年4月20日 星期二.
第4章(1) 空间数据库 —数据库理论基础 北京建筑工程学院 王文宇.
Chap3 Linked List 鏈結串列.
網路安全技術 OSI七層 學生:A 郭瀝婷 指導教授:梁明章.
Topic Introduction—RMI
VS.NET 2003 IDE.
TB-054A  周天穎 編著 儒林圖書公司 發行.
第 19 章 XML記憶體執行模式.
第一章 数 据 库 概 述 第一节 引言 第二节 数据库基本概念 第三节 数据库系统结构 第四节 数据模型 第五节 数据库管理系统
網頁程式概論 建國科技大學資管系 饒瑞佶 2015/9 V1 2016/4 V2 2016/9 V3.
資料來源 2 網路過濾軟體之安裝說明 資料來源 2.
網頁資料知多少? 事 實 ? 謠言?.
哪些人是管理者? 管理者? 指和一群人工作,並藉由協調他人來完成工作,以便達成組織目標的人
PHP與MySQL 入門學習指南 凱文瑞克 著 第 22 章 SQL 介紹與建立MySQL資料庫.
緩衝區溢位攻擊 學生:A 羅以豪 教授:梁明章
Class & Object 靜宜大學資工系 蔡奇偉副教授 ©2011.
第十八章 資料庫與Access 課前指引 在日常生活中,無論各位到銀行開戶、醫院掛號或是到學校註冊,一定都會填寫所謂的個人資料,裡面通常包括姓名、性別、生日、電話、住址等項目,所以人們建立了各種不同的列表來儲存及組織這些資料。 人們當初試圖建造電腦的主要原因之一就是可用來儲存及管理一些數位化資料清單與資料,這也是資料庫觀念的由來。尤其在資訊科技發達的今日,日常的生活已經和資料庫產生密切的結合。例如目前最熱門的網路拍賣,如何讓千萬筆交易順利完成,或者透過手機記錄著他人電話號碼,並能分類與查詢電話。
MicroSim pspice.
專題E組 選課教學輔助系統 指導教授:林娟娟 教授 組員: 許韶玲 詹博為 賴育潔
九十學年度實務 專題報告 指導老師: 高玉芬 老師 學生: 張駿呈 張書嘉 林正浩
MiRanda Java Interface v1.0的使用方法
第 4 章 認識 SQL 語言與資料型別.
黃影雯副教授講授 E_Mail Address:
Cloud Operating System - Unit 03: 雲端平台建構實驗
國立台灣大學 關懷弱勢族群電腦課程 By 資訊工程 黃振修
資料表示方法 資料儲存單位.
連結資料庫 MYSQL.
多站台網路預約系統之 AJAX即時資料更新機制
SQLite資料庫 靜宜大學資管系 楊子青.
Chapter 4 Multi-Threads (多執行緒).
指導老師:張慶寶 組員 : 蔡維庭 4970E028 劉明哲 4970E079 葉聖鴻 4991E020 康有成 4970E004
JUDGE GIRL 使用介紹 & 常見問題 TAs :
Introduction to Mobile Computing
InputStreamReader Console Scanner
Presentation transcript:

第2章 資料庫系統 2-1 資料庫環境的四大組成元件 2-2 ANSI/SPARC的三層資料庫系統架構 第2章 資料庫系統 2-1 資料庫環境的四大組成元件 2-2 ANSI/SPARC的三層資料庫系統架構 2-3 資料庫綱要(Database Schema) 2-4 實際與邏輯資料獨立 2-5 資料庫系統的優缺點 2-6 資料庫管理系統 2-7 資料庫管理師

2-1 資料庫環境的四大組成元件 2-1-1 使用者 2-1-2 資料 2-1-3 軟體 2-1-4 硬體

2-1 資料庫環境的四大組成元件

2-1-1 使用者-終端使用者 終端使用者(End Users) 初級使用者(Naive or Parametric Users) 不常使用的使用者(Casual Users) 熟練使用者(Sophisticated Users)

2-1-1 使用者-資料庫設計師 資料庫設計師(Database Designers) 資料庫設計師精通資料庫設計,其主要的工作是建立資料庫結構,判斷哪些資料需要儲存在資料庫,和使用什麼樣的結構來儲存這些資料。 資料庫設計師通常是使用「資料庫設計工具」(Database Design Tools)來建立資料庫結構。

2-1-1 使用者-資料庫管理師 資料庫管理師(Database Administrator, DBA) 資料庫系統需要一位或一組對整個系統十分了解的人員作為資料庫管理師,負責管理整個資料庫環境。 因為資料庫管理師的工作十分專業,需要擁有公司管理和資料庫等電腦技術的專業知識,特別適合主修資訊管理或資訊工程且擁有管理經驗的人員來擔任。

2-1-1 使用者-系統分析師 系統分析師(System Analyst,SA) 系統分析師與應用程式設計師屬於「專業使用者」(Specialized Users),系統分析師依據終端使用者的需要,主要是指初級使用者(Naive or Parametric Users)的需要來製定資料庫應用程式的規格與功能。 應用程式設計師(Application Programmer)依據系統分析師定義的規格建立終端使用者使用的資料庫應用程式,利用程式開發工具或指定的程式語言,呼叫資料庫系統提供的「資料庫存取函式庫」(Database Access Library)建立所需的資料庫應用程式。

2-1-2 資料-長存資料 長存資料(Persistent Data) 資料庫儲存的是公司或組織的非暫時資料,這些資料是長時間存在的資料,使用者以應用程式使用介面輸入(新增、刪除或更新操作)建立的資料。 從這些操作的資料可以進一步執行各項查詢和運算,以得到使用者所需的資料。

2-1-2 資料-系統目錄 系統目錄(System Catalog) 系統目錄是由資料庫管理系統自動產生的資料,在資料庫管理系統稱為「系統目錄」(System Catalog或稱為Data Dictionary),其內容是從前述的操作資料所衍生的一些資料。 例如:資料庫結構的定義資料,它是用來描述資料本身,也稱為中繼資料(The data about data),系統目錄的主要用途是用來提供維護資料庫所需的資訊。

2-1-2 資料-索引資料(說明) 索引資料(Indexes) 索引資料是一些參考資料,這是將資料庫中特定部分(屬性)的資料預先進行排序,並且提供「指標」(Pointer)指向資料庫真正儲存資料的位置,資料庫管理系統使用雜湊函數(Hash Function)或B樹(B-Tree)等演算法來建立索引資料。

2-1-2 資料-索引資料(圖例) 例如:在關聯式資料庫的Students關聯表,建立GPA屬性的單層有序次索引,如下圖所示:

2-1-2 資料-交易記錄 交易記錄(Transaction Log) 交易記錄是資料庫管理系統自動產生的歷史資料,可以記錄使用者在什麼時間下達什麼指令或執行什麼操作。 這些資料對於一般使用者而言,並沒有什麼用處,但是對於資料庫管理師來說,就是十分重要的參考資訊。

2-1-3 軟體-資料庫管理系統(說明) 資料庫管理系統(DBMS) 資料庫管理系統是一組程式模組用來定義、處理和管理資料庫的資料,在此主要是指那些通用用途的資料庫管理系統,如下圖所示:

2-1-3 軟體-資料庫管理系統(語言) 資料庫管理系統語言(DBMS Languages)主要可以分成二個部分,如下所示: 定義部分:使用資料定義語言(Data Definition Language,DDL)定義資料庫的結構。 操作部分:直接使用資料操作語言(Data Manipulation Language,DML)或透過應用程式介面產生,就可以查詢資料庫資料或新增、刪除或更新資料庫的資料。

2-1-3 軟體-應用程式 應用程式(Application Program) 應用程式是程式設計師使用開發工具或程式語言,所自行建立的專屬軟體。應用程式提供使用者相關的使用介面,透過使用介面的選單或按鈕,就可以向資料庫管理系統下達查詢語言的相關指令,在取得所需資料後,顯示或產生所需的報表。 換句話說,配合公司或組織的需求,我們可以在資料庫管理系統的基礎上,建立各種不同的應用程式。例如:選課系統、人事資料系統、進銷存系統、會計系統和公文系統等。

2-1-3 軟體-開發工具 開發工具(Development Tools) 開發工具是用來建立資料庫和開發應用程式。例如:資料庫設計工具、資料庫開發工具或程式語言的整合開發環境,它可以幫助資料庫設計師建立資料庫結構和程式設計者快速建立應用程式。 例如:PowerBuilder、Oracle Developer、Visual Studio.NET和Visual Stuido 2005等。

2-1-4 硬體 安裝資料庫相關軟體的硬體設備,包含:主機(CPU、記憶體和網路卡等)、磁碟機、磁碟陣列、光碟機、磁帶機和備份裝置。 整個資料庫系統的硬體處理架構依其運算方式,可以分為:集中式或分散式的主從架構。

2-2 ANSI/SPARC的三層資料庫系統架構 2-2-1 概念層 2-2-2 外部層 2-2-3 內部層 2-2-4 ANSI/SPARC 三層資料庫架構的目的

2-2 ANSI/SPARC的三層資料庫系統架構-圖例

2-2 ANSI/SPARC的三層資料庫系統架構-簡單說明 概念層(Conceptual Level):資料庫管理師觀點的資料,這是資料庫儲存的完整資料,屬於在概念上看到的完整資料庫。 外部層(External Level):一般使用者觀點的資料,代表不同使用者在資料庫系統所看見的資料,通常只是部分資料庫的資料。 內部層(Internal Level):實際觀點所呈現的資料,這是實際資料庫儲存在電腦儲存裝置的資料。

2-2-1 概念層-說明 在概念層看到的是整個資料庫儲存的資料,這是資料庫管理師觀點所看到的完整資料庫。因為它只是概念上的資料庫,所以並不用考量資料實際的儲存結構,因為這是內部層(Internal Level)的問題。

2-2-1 概念層-範例 關聯式資料模型的資料庫在概念層所見的是以二維表格顯示的資料,如下圖所示: 關聯式資料庫的「關聯表」(Relations)是資料庫所看到的完整資料。

2-2-2 外部層-說明 資料庫系統使用者面對的是外部層,這是使用者觀點(User Views)的資料,包含多種不同觀點的資料,例如:一間大學或技術學院,不同使用者的觀點,如下: 使用者觀點1:學生註冊資料 使用者觀點2:學生選課資料 使用者觀點3:學生成績單資料

2-2-2 外部層-範例 資料以不同的方式呈現:外部層的資料如同裁縫師手上的布,可以將概念層的資料剪裁成不同衣服樣式的資料。例如:使用清單、表格或表單內容(例如:Visual Basic的表單或HTML表單)等方式來呈現資料。 只包含使用者有興趣的資料:外部層的資料只是部分資料庫,例如:二位使用者分別看到Students關聯表的部分或導出內容,年齡Age是由生日計算而得。 相同資料可以顯示不同格式:雖然在資料庫儲存的資料是單一格式,不過在顯示時可以使用不同格式。

2-2-3 內部層 在內部層看到的是實際觀點的資料庫,這是實際儲存在磁碟等外部儲存裝置的資料,內部層在三層架構中扮演資料庫管理系統與作業系統的介面。 在內部層的資料是實際儲存在資料庫的資料結構或檔案組織所呈現的資料,例如:使用鏈結串列結構儲存資料,如下圖所示:

2-2-4 ANSI/SPARC三層資料庫架構的目的-使用者角度 使用者觀點所見的資料是獨立的:不同使用者可以存取相同資料,只是觀點可能不同,但是,各觀點的資料是獨立的,更改觀點的資料,並不會影響其他使用者觀點的資料。 使用者並不用了解實際資料的儲存方式:使用者的焦點是在處理資料本身,而不是了解到底這些資料是如何儲存。

2-2-4 ANSI/SPARC三層資料庫架構的目的-資料庫管理師角度 更改實際儲存結構不會影響使用者觀點的資料:當有全新的儲存結構和索引技術時,就算更改資料庫的儲存結構,也不會影響外部層使用者觀點的資料。 更改概念層的完整資料庫也不會影響使用者觀點的資料:如果將資料庫從關聯式資料模型改為物件導向式資料庫模型時,我們仍然可以顯示完全相同的使用者觀點資料,並不會影響使用者看到的資料。

2-3 資料庫綱要 (Database Schema) 2-3-1 三層資料庫綱要 2-3-2 資料庫綱要間的對映

2-3 資料庫綱要 (Database Schema)-圖例

2-3 資料庫綱要 (Database Schema)-說明 綱要(Schema):資料描述的定義資料,對比程式語言的變數是資料型態(Data Type),例如:C語言宣告成整數的age年齡變數,如下圖所示: int age; 資料(Data):資料本身,也就是程式語言的變數值,例如:年齡為20,如下所示: age = 20;

2-3-1 三層資料庫綱要-圖例

2-3-1 三層資料庫綱要-簡單說明 三層資料庫綱要每一層的簡單說明,如下所示: 外部綱要(External Schema):描述使用的資料。 概念綱要(Conceptual Schema):描述資料本身的意義。 內部綱要(Internal Schema):描述儲存的資料。

2-3-1 三層資料庫綱要-外部綱要 外部綱要(External Schema) 外部綱要源於概念綱要,主要是描述外部層顯示的資料,每一個外部層綱要只描述資料庫的部分資料,隱藏其他部分的資料。 換句話說,每一個外部層使用者觀點的資料都需要一個外部綱要,在一個資料庫可能擁有多個外部綱要,如下圖所示:

2-3-1 三層資料庫綱要-概念綱要 概念綱要(Conceptual Schema) 概念綱要是描述概念層的完整資料庫,這是「概念資料庫設計」(Conceptual Database Design)的結果,概念資料庫設計主要是分析使用者資訊,以便定義所需的資料項目,並不涉及到底是使用那一套資料庫管理系統。 概念綱要描述完整資料庫的資料和其關聯,所以資料庫只能擁有一個概念綱要,如下圖所示:

2-3-1 三層資料庫綱要-內部綱要 內部綱要(Internal Schema) 內部綱要是描述內部層實際觀點的資料,定義資料的儲存結構和那些資料需要建立索引,如同概念綱要,資料庫只擁有一個內部綱要。 例如:C語言宣告學生Students的結構,如下: struct Students { char no[5]; char name[15]; char address[40]; int telephone; struct Date birthday; struct Student *next; };

2-3-2 資料庫綱要間的對映-說明 三層資料庫綱要只是描述資料,真正的資料是儲存在外部儲存裝置的資料庫。 當以外部層使用者觀點顯示資料時,也就是參考外部綱要向概念綱要請求資料,然後概念綱要請求內部綱要從資料庫取得資料,在取得真正的資料後,資料需要進行轉換來符合概念綱要的定義,然後再轉換成符合外部綱要的定義,最後才是外部層使用者觀點看到的資料,在各層間進行的資料轉換過程,稱為「對映」(Mapping)。

2-3-2 資料庫綱要間的對映-圖例

2-3-2 資料庫綱要間的對映-種類 各層綱要間的對映主要有兩種: 外部與概念對映(External/Conceptual Mapping):所有外部綱要都是對映到概念綱要,以便資料庫管理系統知道如何將外部層的資料連結到那一部分的概念綱要。例如:在外部綱要(S_No, Name, Age),S_No是對映到概念綱要的No,Age是從概念綱要的Birthday運算而得。 概念與內部對映(Conceptual/Internal Mapping):概念綱要對映到內部綱要的關聯,以便資料庫管理系統可以找到實際儲存裝置的記錄資料後,建立概念綱要的邏輯結構。

2-4 實體與邏輯資料獨立 2-4-1 資料獨立的基礎 2-4-2 邏輯資料獨立 2-4-3 實體資料獨立

2-4-1 資料獨立的基礎-說明 三層資料庫綱要的主要目的是為了達成「資料獨立」(Data Independence),也就是說上層的綱要並不會受到下層綱要的影響,當下層綱要更改時,也不會影響到上層綱要。 與資料獨立相反的術語是「資料相依」(Data Dependence)。例如:使用C語言建立「堆疊」(Stacks)資料結構,如下圖所示:

2-4-1 資料獨立的基礎-種類 三層資料庫綱要一共擁有兩種資料獨立: 外部與概念對映的邏輯資料獨立(Logical Data Independence)。 概念與內部對映的實體資料獨立(Physical Data Independence)。

2-4-2 邏輯資料獨立-圖例

2-4-2 邏輯資料獨立-說明 當更改概念綱要,例如:新增或刪除實體、屬性或關聯性,並不用同時更改存在的外部綱要或重寫程式碼,因為可以透過外部與概念對映來達成邏輯資料獨立。 每當資料庫需要更改概念綱要時,只需配合修改外部與概念對映的定義,就可以在不更改存在的外部綱要下,取得相同使用者觀點的資料。

2-4-3 實體資料獨立-圖例

2-4-3 實體資料獨立-說明 當更改內部綱要,例如:使用不同的檔案組織或儲存結構,並不用更改概念綱要和外部綱要,因為可以透過概念與內部對映來達成實體資料獨立。 每當資料庫需要更改內部綱要時,只需配合修改概念與內部對映的定義,就可以完全不動到概念綱要和外部綱要。

2-5 資料庫系統的優缺點 2-5-1 資料庫系統的優點 2-5-2 資料庫系統的缺點

2-5-1 資料庫系統的優點-1 整合的資料管理:相關資料檔案是集中管理,不像檔案處理系統,需要額外操作或程序來處理位在不同檔案的資料。 資料共享:資料庫的資料可以由多人共享,允許多人同時存取資料庫,只需透過網路或Internet,就算位在世界各地都可以存取資料庫的資料。 減少資料重複(Data Redundancy):不同於檔案處理系統將資料分割成多個檔案來儲存,資料庫系統集中管理資料庫的資料,可以大幅降低資料重複的可能性。

2-5-1 資料庫系統的優點-2 維持資料的一致性(Data Consistency):因為資料庫系統可以減少資料重複,再加上資料庫管理系統可以檢查完整性限制條件(Integrity Constraints),不只可以保證輸入資料的正確,還可以維持資料的一致。 資料獨立(Data Independence):在檔案處理系統存取資料需要了解詳細的資料結構,資料庫管理系統提供資料獨立,換句話說,如果資料結構或存取方式改變,並不會影響應用程式的執行,例如:學號從5碼改為6碼,並不需要更改應用程式的程式碼。

2-5-1 資料庫系統的優點-3 提供單一介面和語言存取資料:資料庫系統提供4GL的資料庫語言存取資料庫。例如:SQL語言,或是透過應用程式的操作介面存取資料,可以隱藏資料庫管理系統的實際資料存取方式。 更多的資料保密、安全管理和控制能力:資料庫系統提供資料保密、使用者存取權限和資料存取的控制,可以強迫達成標準化的資料管理,例如:標準的文件格式或不同層級的資料存取。 提供多種觀點的資料:因為資料庫系統是由多人共享,每位使用者可以分別取得所需的資料,而且以不同的觀點來符合其需求。例如:同樣是教授,它可以是學生的老師,也可以是學校的員工。

2-5-1 資料庫系統的優點-4 支援交易管理(Transaction Management):資料庫系統提供交易管理和並行處理,可以處理商業交易,保障交易進行的正確無誤。 具高可靠性(Reliability):資料庫系統十分可靠,提供備份與回復功能來進一步保障資料的安全,在出現狀況時,可以回復資料庫系統的資料。 降低軟體開發的費用:直接選擇現成的資料庫管理系統,然後在管理系統下開發所需的資料庫系統,而不用重頭開發整個資料庫系統。

2-5-2 資料庫系統的缺點-1 龐大的額外費用:建構資料庫系統需要升級電腦硬體和軟體環境,一套企業永續經營的資料庫系統,包含網路建置,硬體和軟體升級,將會是一筆相當龐大的額外預算,有可能未蒙其利,先受其害,造成公司財務的負擔。 資料轉換的成本:各部門的資料都需要轉換成資料庫結構,以便存入資料庫,這不只是資訊部門的一項大工程,而且需要全公司各部門人員的充分支援。

2-5-2 資料庫系統的缺點-2 安全管理的漏洞:雖然資料庫擁有安全管理能力,但是人為錯誤或非專業人員的控管,資料共享的優點,反而容易造成人為的安全問題,例如:沒有取消離職員工的帳號,增加公司重要資料被竊取的機會。 大幅更改作業流程:資料庫系統可能大幅更改現有公司的作業流程,使用者不只需要熟悉全新的應用程式操作,還需要適應新的資料處理流程,如此可能產生額外的人力支援和不合作的使用者,加重資訊部門的負擔和責任。

2-5-2 資料庫系統的缺點-3 系統風險增加:資料庫系統使用集中方式管理資料,一旦系統停擺,將會讓公司蒙受重大損失。資料庫系統可能因為電腦病毒、天災、硬體故障或人為操作錯誤等情況造成系統癱瘓,所以資料庫系統在建置時,就需考量備援系統或額外的保護設備,例如:不斷電系統(Un-interrupt Power Systems)防止不預警的停電。如果是一套全年無休持續運作的NonStop資料庫系統,還需要準備異地備援系統,以免公司主機遭遇地震或火災受損時,仍然可以使用位在其他地方的資料庫系統,維持公司的正常運作。

2-5-2 資料庫系統的缺點-4 人為風險增加:事實上,人為錯誤和破壞才是資料庫系統的最大敵人,如果資料庫系統設計錯誤,一旦人為的資料輸入錯誤,小則只是系統受損,大則錯誤的資料,可能造成決策錯誤和管理作業上的混亂。更進一步,如果資訊部門有不肖人員(或駭客),蓄意進行破壞,集中管理的資料庫系統,反而成為最佳的攻擊目標,所以資料庫系統除了系統管理外,相關人員的忠誠管理也是一項重要的工作。

2-6 資料庫管理系統DBMS 2-6-1 資料庫管理系統的基本功能 2-6-2 資料庫管理系統的系統架構 2-6-3 常見的資料庫管理系統

2-6 資料庫管理系統DBMS 「資料庫管理系統」(Database Management System, DBMS)從字面來說,是一套管理資料庫的軟體系統,它是由一組程式模組負責組織、管理、儲存和讀取資料庫系的資料,使用者對於資料庫的任何操作,都一定需要透過資料庫管理系統來處理。

2-6-1 資料庫管理系統的基本功能-資料管理 資料管理(Data Management) 資料庫管理系統的最基本功能是資料管理,管理資料庫儲存的各種資料,包含:資料檔、系統目錄、索引資料、備份檔(資料庫管理系統備份資料庫時建立的檔案)和異動記錄,如下圖所示:

2-6-1 資料庫管理系統的基本功能-資料庫管理系統語言 資料庫管理系統語言(DBMS Languages) 資料庫管理系統提供第4代語言(4GL),可以讓使用者定義、查詢或存取資料,資料庫管理系統語言可以分成兩大類,如下所示: 資料定義語言DDL(Data Definition Language):這個語言的主要目的是建立資料庫綱要(Database Schema),其編譯後的指令敘述是儲存在系統目錄(System Catalog),使用者只需使用此語言就可以建立資料庫綱要。 資料操作語言DML(Data Manipulation Language):這個語言的指令敘述可以讓使用者存取和操作資料庫的資料,這是使用者與資料庫管理系統間溝通的語言。

2-6-1 資料庫管理系統的基本功能-安全管理 安全管理(Security Management) 資料庫儲存的資料屬於使用者共享的資料,所以資料庫管理系統需要提供使用者安全管理,以避免使用者不當使用資料庫的資料。 安全管理通常是指定使用者密碼(Password)來授予存取權限的控制(Access Control),常用的方式有兩種,如下所示: 自由選擇存取控制(Discretionary Access Control, DAC):授予或取消使用者擁有新增、刪除、更新或修改資料的權限。 強制存取控制(Mandatory Access Control, MAC):將資料和使用者分類成不同的安全層級,使用者只能存取授予安全層級的資料。

2-6-1 資料庫管理系統的基本功能-備份與回復管理 備份與回復管理(Backup and Recover Management) 資料庫備份是將資料庫的資料儲存到備份裝置,例如:磁帶機或可讀寫光碟機,資料庫管理師負責定期備份資料庫。 當突發狀況產生時,因為資料庫管理系統會自動產生交易記錄(Transaction Log),可以使用此記錄了解交易(Transaction)的狀態,回復程序可以參考交易記錄正確的回存資料。

2-6-1 資料庫管理系統的基本功能-交易管理1 異動管理(Transaction Management) 資料庫系統通常都會支援商業用途,而商業系統架構的基礎是商業交易,這些商業交易的操作需要一併執行,視為一個無法分割的單位。 整個過程對於資料庫來說是一個「交易」(Transaction)。

2-6-1 資料庫管理系統的基本功能-交易管理2 例如:從帳戶A匯款到帳戶B,如下圖所示:

2-6-1 資料庫管理系統的基本功能-交易管理3 交易成功是指需要滿足四項基本的交易屬性,以英文字頭的縮寫為ACID交易,如下所示: 單元性(Atomicity):將交易過程的每個操作都視為同一個工作,不是全部執行完,就是通通不執行。 一致性(Consistency):交易會更改資料庫的資料,不過在交易之前和之後,資料庫的資料仍然需要滿足完整性限制條件,維持資料的一致性。 隔離性(Isolation):雖然多個交易是並行處理,不過各交易仍然是獨立的依序執行,任何一個交易並不會影響到其他交易的結果。 持續性(Durability):當交易完成後,資料庫資料是永久改變,如果在交易過程中發生錯誤,執行回復程序,回復程序仍然需要執行完整個交易。

2-6-1 資料庫管理系統的基本功能-資料完整性管理 資料完整性管理(Data Integrity Management) 資料庫管理系統能夠檢查新增或更新資料時,不會產生資料不一致的資料完整性(Data Integrity)問題。例如:帳戶餘額不能為負值,員工年齡不可超過100歲。

2-6-2 資料庫管理系統的系統架構-圖例

2-6-2 資料庫管理系統的系統架構-儲存管理 儲存管理(Storage Manager) 儲存管理對於簡單的資料庫管理系統來說,就是作業系統檔案管理,不過為了效率考量,資料庫管理系統通常會自行配置磁碟空間,將資料存入位在外部儲存裝置的資料庫,例如:磁碟機,或是從資料庫讀取資料,可以分為: 檔案管理(File Manager)實際配置磁碟空間後將資料存入磁碟。 緩衝區管理(Buffer Manager)負責電腦記憶體的管理。

2-6-2 資料庫管理系統的系統架構-查詢處理模組 查詢處理模組(Query Processor) 負責處理使用者下達的查詢語言指令敘述,可以再細分成多個模組負責檢查語法、最佳化查詢指令的處理程序。 查詢處理模組參考系統目錄的Meta-data進行「查詢轉換」(Query Transformation),將外部綱要查詢轉換成內部綱要的查詢,或是使用索引加速資料查詢,如果是異動,就交給異動管理來處理。

2-6-2 資料庫管理系統的系統架構-交易管理 交易管理(Transaction Manager) 交易管理(Transaction Manager)主要分為:同名的交易管理(Transaction Manager)子系統負責處理資料庫的交易,保障資料庫商業交易的操作需要一併執行。 「鎖定管理」(Lock Manager)也稱為「並行控制管理」(Concurrency-Control Manager)子系統負責資源鎖定。

2-6-2 資料庫管理系統的系統架構-回復管理 回復管理(Recovery Manager) 回復管理(Recovery Manager)主要分為:「記錄管理」(Log Manager)子系統負責記錄資料庫的所有操作,包含異動操作的記錄,以便同名的「回復管理」(Recovery Manager)子系統能夠執行回復程序,回復資料庫系統。

2-6-3 常見的資料庫管理系統-商用的資料庫管理系統 SQL Server。 Access。 IBM的DB2。 Oracle。 INGRES。 Sybase。 Informix。 InterBase。

2-6-3 常見的資料庫管理系統-免費的資料庫管理系統 MySQL。 PostgreSQL。 Firebird。

2-7 資料庫管理師 2-7-1 資料庫管理師扮演的角色 2-7-2 資料庫管理師負責的工作

2-7 資料庫管理師-說明 「資料庫管理師」(Database Administrator, DBA)負責和執行一個成功資料庫環境的相關管理和維護工作。事實上,資料庫管理師負責很多工作,它可以是一個人,也可能是一個小組來擔任。 簡單的說,資料庫管理師的主要目的是維護資料庫系統的正常運作,並且提供使用者存取所需的資料。

2-7 資料庫管理師-所需背景 資料庫管理師需要公司管理和資料庫等電腦技術的專業知識,最好是主修資訊或資管科系的人員,其需要的相關電腦知識,如下所示: 熟悉作業系統操作。 熟悉一種或數種資料庫管理系統的使用。 精通資料庫系統提供的查詢語言,例如:SQL Server的Transact-SQL,Oracle的PL/SQL。 資料庫設計,至少需要清楚公司資料庫系統的資料庫綱要。 對電腦硬體的網路架構有一定的了解,例如:主從架構和Internet網際網路。

2-7-1 資料庫管理師扮演的角色

2-7-2 資料庫管理師負責的工作-維護資料庫綱要 資料庫管理師需要參與資料庫設計(Database Design),提供資料庫設計師關於概念層綱要的修改建議。 資料庫管理師需要負責從資料庫使用的資料模型,例如:關聯式資料模型,和系統規格建立有效的資料庫設計,也就是描述資料庫在外部儲存裝置的實際資料結構。其主要的工作,如下: 決定哪些資料存入資料庫。 決定使用的資料結構 決定使用者觀點的資料。

2-7-2 資料庫管理師負責的工作-資料管理 資料管理 資料庫管理師最主要的工作是資料管理,提供公司或組織一個集中管理的資料庫,並且依據各部門的需求,提供不同觀點的資料,其主要的工作,如下所示: 管理和維護系統目錄(System Catalog)。 使用者管理和存取控制。 資料安全控制(Data Security Control)。 資料完整性檢查(Data Integrity Checking)。 轉換資料。

2-7-2 資料庫管理師負責的工作-維護和監控資料庫管理系統 對於資料庫管理系統本身,資料庫管理師負責的工作,如下所示: 安裝和升級資料庫管理系統。 監控和調整資料庫的效能。 使用者的稽核追蹤。 容量計劃和選擇儲存裝置。 備份與回復。