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

Slides:



Advertisements
Similar presentations
作業一 : USING DBMS ( 使用 DB2 及 SQL 基本練習 ) 報告人:學生楊群期 學號: 課程 : 高等資料庫 講師 : 楊維邦教授.
Advertisements

第十章 Java 数据库编程. 内容提要 数据库有关概念; 介绍 JDBC 的结构; 重点介绍 JDBC 访问几种数据库的基本过程;
2010 年 6 月课件制作人:王亚楠 1 模块 2 项目开发概论 教学课件 年 6 月课件制作人:王亚楠 2 目录 目标 了解:数据库技术的基本概念与结构 理解:数据模型的分类与结构组成 掌握:关系数据库及 SQL 的基本理论 知识 掌握:数据库设计的方法与步骤 内容 2.1 数据库技术基础.
2011/11,12 南台資管 吳昭儀. 1. 使用者介面 (User Interface)  使用者操作畫面的安排  Textbox, ComboBox, ListBox, CheckList, … 2. 流程控制 (Process Control)  使用者輸入資料檢查  計算  資料輸出.
第 7 章 数据库 1. Overview  数据库概述  数据库管理系统  数据库的体系结构和数据库模型  SQL 语言  数据库技术  构建数据库系统 2.
1 進階商用資料庫的第一堂課 Oracle 10g database administration workshop I Instructor: 中華大學資訊管理系助理教授李之中 URL: 2012/09/02.
数据库原理及应用(ORACLE)实用教程
An Introduction to Database Systems
An Introduction to Database System
第15章 备份与恢复数据库 日志文件 基本概念 恢复数据库的基本原理 数据库故障的种类 备份数据库 备份的内容和时间 备份的一般方法
第6章 数据库管理软件Access 年秋.
系統分析與設計 第九章 資料設計.
数据库系统原理及应用 Database Theory and Application
十一 ASP对数据库的访问.
An Introduction to Database Systems
10-1 資料庫管理系統簡介 10-2 關聯式資料模式和查詢語言 10-3 Access 簡介 10-4 XML 簡介
管理資訊系統 David Kroenke 資料庫處理 第4章.
第六章 数据库和ADO.NET 褚龙现 软件学院.
資料庫 (Database) SQL Server 2008實作
数据库概述 简而言之,数据库(DataBase)就是一个存储数据的仓库。为了方便数据的存储和管理,它将数据按照特定的规律存储在磁盘上。通过数据库管理系统,可以有效的组织和管理存储在数据库中的数据。如今,已经存在了Oracle、SQL Server、MySQL等诸多优秀的数据库。在这一章中将讲解的内容包括。
第 八 章 資料庫安全 本投影片(下稱教用資源)僅授權給採用教用資源相關之旗標書籍為教科書之授課老師(下稱老師)專用,老師為教學使用之目的,得摘錄、編輯、重製教用資源(但使用量不得超過各該教用資源內容之80%)以製作為輔助教學之教學投影片,並於授課時搭配旗標書籍公開播放,但不得為網際網路公開傳輸之遠距教學、網路教學等之使用;除此之外,老師不得再授權予任何第三人使用,並不得將依此授權所製作之教學投影片之相關著作物移作他用。
文科计算机小公共课规划教材 Access 程序设计.
数据库原理及应用 第10章 事务与锁 10.1 事务 10.2 锁.
Chap 13 視界與資料庫程式設計.
第6章 資料庫管理系統 6-1 關聯式資料庫管理系統 6-2 SQL Server資料庫管理系統
数据库原理与应用.
数据库技术及应用 华中科技大学管理学院 课程网址:
数据库原理与应用     制作人:王春玲         黄金燕         张惠萍         陈志泊 人民邮电出版社.
第6章 数据库技术 顾浩 胡乃静 董建寅等编著.
An Introduction to Database System
Database system (資料庫) Instructor: Lee, Wei-Hsun Ph.D
数据原理复习概要.
Introduction to database
东南大学 大学计算机基础 ——基本概念及应用思维解析.
第十五章 常見的資料庫管理系統 目的 Oracle 微軟SQL Server 微軟Access MySQL Oracle 應用伺服器
第一章 資料庫的介紹 SQL Server 2012 資料庫實務應用.
二.資料庫系統建立與管理 Access 資料庫:windows下的單機資料庫 Access 操作 Mysql資料庫介紹.
Chap 10 SQL定義、操作與控制指令.
辦公室自動化軟體: 資料庫管理Access 1 授課老師:林彣珊
Chap 3 資料庫模型與處理架構.
CICS 基本概念介绍 IBM 中国信息技术服务部.
彰化縣政府補助辦理網頁設計資料庫應用班 資料庫簡介 建國技術學院資管系 饒瑞佶.
数据库实验指导(一)
計算機概論 第十章 檔案與資料庫管理系統 陳維魁/陳邦治 旗標出版社.
5 数据库管理与保护 数据库运行的最小逻辑工作单位是事务,所有对数据库的操作,都以事务作为一个整体来执行或撤销。
資料庫系統導論.
刘红岩 清华大学 管理科学与工程系 第17章 事务管理 刘红岩 清华大学 管理科学与工程系
第4章(1) 空间数据库 —数据库理论基础 北京建筑工程学院 王文宇.
分布式数据库系统及其应用.
資料庫概論 許明宗.
認識資料庫 MySQL 資料庫新增 MySQL 資料表新增 認識欄位資料表 資料新增、刪除、修改、瀏灠 資料表清空與刪除
認識資料庫 MySQL 資料庫新增 MySQL 資料表新增 認識欄位資料表 資料新增、刪除、修改、瀏灠 資料表清空與刪除
第18章 SQL結構化查詢語言 18-1 SQL語言的基礎 18-2 SQL的查詢指令 18-3 SQL子查詢與合併查詢.
An Introduction to Database System
第一章 数 据 库 概 述 第一节 引言 第二节 数据库基本概念 第三节 数据库系统结构 第四节 数据模型 第五节 数据库管理系统
CS, ZJU 4/18/2019 Chapter 7 数据库.
資料庫管理系統 緒 論.
6 SQL語言與資料庫建置 6-1 SQL語言的基礎 6-2 SQL Server的資料庫結構 6-3 建立使用者資料庫
3. SQL语言的应用 3.1 SQL历史和优点 3.2 数据查询 3.3 数据操纵.
17 交易處理與鎖定 17-1 交易的基礎 17-2 交易處理 17-3 並行控制 17-4 資料鎖定 17-5 死結問題.
An Introduction to Database System
第十八章 資料庫與Access 課前指引 在日常生活中,無論各位到銀行開戶、醫院掛號或是到學校註冊,一定都會填寫所謂的個人資料,裡面通常包括姓名、性別、生日、電話、住址等項目,所以人們建立了各種不同的列表來儲存及組織這些資料。 人們當初試圖建造電腦的主要原因之一就是可用來儲存及管理一些數位化資料清單與資料,這也是資料庫觀念的由來。尤其在資訊科技發達的今日,日常的生活已經和資料庫產生密切的結合。例如目前最熱門的網路拍賣,如何讓千萬筆交易順利完成,或者透過手機記錄著他人電話號碼,並能分類與查詢電話。
TurboDX架构、应用场景、比较优势 北京数贝软件科技有限公司
SQL Server2000概述 SQL Server简介 SQL Server安装 SQL Server数据库 2019/5/8.
数据库系统原理 J.D.Ullman 国防工业出版社 数据库原理与方法 郑若忠,王鸿武 湖南科技出版社
2017学考复习 信息管理(导引P37).
国家“十一五”规划教材 数据库原理与应用教程(第3版).
資料庫應用與實作 一到六章重點、習題.
第 1 章 認識資料庫系統.
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 資料庫管理系統 基本功能 ACID交易 系統架構 常見的資料庫管理系統 2-7 資料庫管理師 資料庫(DB) ch02

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

2-1 資料庫環境的四大組成元件 2. 3. 4. 1. 資料庫(DB) ch02

2-1-1 使用者-1.終端使用者 終端使用者(End Users): 主要工作是查詢或更新資料庫,或是存取資料庫以產生所需的報表 終端使用者可分為數種: 初級使用者(Naive or Parametric Users) 不常使用的使用者(Casual Users) 熟練使用者(Sophisticated Users) 資料庫(DB) ch02

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

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

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

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

2-1-2 資料-2.系統目錄 系統目錄(System Catalog): 資料庫管理系統自動產生的資料 資料庫管理系統稱為系統目錄(System Catalog或Data Dictionary) 內容是從前述的操作資料所衍生的一些資料 例如: 資料庫結構的定義資料,是用來描述資料本身,也稱為中繼資料(The data about data) 系統目錄主要用途:用來提供維護資料庫所需的資訊 http://technet.microsoft.com/zh-tw/library/ms189082(v=SQL.105).aspx 例如,下列查詢會使用 sys.objects 目錄檢視來傳回過去 10 天內修改過的所有資料庫物件。 SELECT name AS object_name ,SCHEMA_NAME(schema_id) AS schema_name ,type_desc ,create_date ,modify_date FROM sys.objects WHERE modify_date > GETDATE() - 10 ORDER BY modify_date; 資料庫(DB) ch02

2-1-2 資料-3.索引資料(說明) 索引資料(Indexes): 索引(Indexes)的目的: 為了在資料庫儲存的龐大資料中,能夠更快速的找到資料 索引資料是一些參考資料,將資料庫中特定部分(屬性)的資料預先進行排序 且提供指標(Pointer)指向資料庫真正儲存資料的位置 資料庫管理系統使用雜湊函數(Hash Function)或B樹(B-Tree)等演算法來建立索引資料 資料庫(DB) ch02

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

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

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

2-1-3 軟體-資料庫管理系統(語言) 資料庫管理系統語言(DBMS Languages)分成 3 個部分: 資料定義語言(Data Definition Language,DDL) : 定義資料庫的結構 資料操作語言(Data Manipulation Language,DML): 可查詢資料庫資料或新增、刪除或更新資料庫的資料 資料控制語言(Data control Language,DCL): 管理資料庫,控制資料庫內物件的使用權限與安全設定 資料庫(DB) ch02

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

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

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

2-2 ANSI/SPARC的三層資料庫系統架構 外部層 概念層 內部層 資料庫(DB) ch02

2-2 ANSI/SPARC的三層資料庫系統架構說明 外部層(External Level): 一般使用者觀點(User Views)的資料 代表不同使用者在資料庫系統所看見的資料,通常只是部分資料庫的資料,如:使用者觀點1:學生註冊資料、使用者觀點2:學生選課資料、使用者觀點3:學生成績單資料 概念層(Conceptual Level): 資料庫管理師觀點的資料 是資料庫儲存的完整資料,屬於在概念上看到的完整資料庫 只是概念上的資料庫,不用考量資料實際的儲存結構,因為這是內部層(Internal Level)的問題 內部層(Internal Level): 實際觀點所呈現的資料 實際資料庫儲存在電腦儲存裝置的資料 扮演資料庫管理系統與作業系統的介面 資料是實際儲存在資料庫的資料結構或檔案組織所呈現的資料,如:使用鏈結串列結構儲存資料,如下圖: 資料庫(DB) ch02

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

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

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

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

2-3 資料庫綱要(Database Schema)圖例 指整個資料庫的描述,即描述整個資料庫儲存資料的定義資料,如下圖所示: 資料庫(DB) ch02

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

2-3-1 三層資料庫綱要圖例 外部綱要 概念綱要 內部綱要 資料庫(DB) ch02

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

2-3-1 三層資料庫綱要-概念綱要 概念綱要(Conceptual Schema): 描述資料本身的意義 概念綱要是描述概念層的完整資料庫,是概念資料庫設計(Conceptual Database Design)的結果 概念資料庫設計: 分析使用者資訊,定義所需的資料項目,不涉及使用那一套資料庫管理系統 概念綱要描述完整資料庫的資料和其關聯,資料庫只有一個概念綱要 資料庫(DB) ch02

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; }; 資料庫(DB) ch02

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

2-3-2 資料庫綱要間的對映圖例 資料庫(DB) ch02

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

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

2-4-1 資料獨立的基礎種類 三層資料庫綱要有 2 種資料獨立: 外部與概念對映的邏輯資料獨立(Logical Data Independence): 更改概念綱要,如:新增或刪除實體、屬性或關聯性,不用同時更改存在的外部綱要或重寫程式碼,可透過外部與概念對映來達成邏輯資料獨立 當資料庫需要更改概念綱要,只需配合修改外部與概念對映的定義,就可在不更改存在的外部綱要下,取得相同使用者觀點的資料 概念與內部對映的實體資料獨立(Physical Data Independence) 更改內部綱要,如:使用不同的檔案組織或儲存結構,不用更改概念綱要和外部綱要,可透過概念與內部對映來達成實體資料獨立 當資料庫需要更改內部綱要,只需配合修改概念與內部對映的定義,就可完全不動到概念綱要和外部綱要 資料庫(DB) ch02

2-4-2 邏輯資料獨立圖例 資料庫(DB) ch02

2-4-3 實體資料獨立圖例 資料庫(DB) ch02

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

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

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

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

2-5-2 資料庫系統的缺點-1~2 龐大的額外費用: 建構資料庫系統需要升級電腦硬體和軟體環境,一套企業永續經營的資料庫系統,包含網路建置,硬體和軟體升級,將會是一筆相當龐大的額外預算 資料轉換的成本: 各部門的資料都需要轉換成資料庫結構,以便存入資料庫,不只是資訊部門的一項大工程,且需要全公司各部門人員的充分支援 資料庫(DB) ch02

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

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

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

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

2-6-1 資料庫管理系統基本功能 資料庫管理系統基本功能,有6 個: 資料管理 資料庫管理系統語言 安全管理 備份與回復管理 交易管理 資料完整性管理 資料庫(DB) ch02

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

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

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

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

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

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

2-6-1 資料庫管理系統基本功能-5.交易管理3 交易成功是指需要滿足4 項基本的交易屬性,縮寫為ACID交易: 單元性(Atomicity) 一致性(Consistency)(另:並行性 Concurrency ) 隔離性(Isolation) 持續性(Durability) 資料庫(DB) ch02

ACID:單元性(Atomicity) 單元性(Atomicity): 將交易過程的每個操作都視為同一個工作,不是全部執行完,就是通通不執行 例如:提款  由銀行帳戶扣錢、 給錢 此兩動作必須全部做完(稱為委任 Commit),或完 全不做(稱為撤回 abort) 若只做其中一個動作會引起爭議 資料庫(DB) ch02

ACID:一致性(Consistency) 交易會更改資料庫的資料,不過在交易之前和之後,資料庫的資料仍然需要滿足完整性限制條件,維持資料的一致性 另:並行性(Concurrency) 多人可共同存取同一資料庫,但要作好異動執行時的並行控制(Concurrency Control),不得互相干擾 結果要像大家按順序排隊來做異動(Transaction) 的結果一樣 資料庫(DB) ch02

ACID:隔離性(Isolation) 隔離性(Isolation): 多個交易是並行處理,各交易仍是獨立的依序執行,任何一個交易並不會影響到其他交易的結果 異動在尚未委任前的中間執行結果,不得讓其它同時在執行的異動存取,以防止異動因交錯執行而產生錯誤,或連鎖撤回反應 例如:大華原有10000 元,要提1000 元;且小明還給大華5000 元 正常: 10000-1000 = 9000 (已寫回資料) 9000+5000 = 14000 不正常: 10000-1000 = 9000 (尚未寫回資料) 10000+5000 = 15000 或 10000+1000 =11000 資料庫(DB) ch02

ACID:持續性(Durability) 當交易完成後,資料庫資料是永久改變 如果在交易過程中發生錯誤,執行回復程序,回復程序仍然需要執行完整個交易 例: 若異動執行過程完全正常,但在委任(Commit) 將異動結果反應到資料庫的過程,系統卻發生錯誤 在系統回復後,應當將原來未做的後續動作完成 異動記錄(Transaction Log) 是維持此特性的主角 異動完成後要做異動記錄 ;當機時再根據異動記錄來回復 資料庫(DB) ch02

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

2-6-2 資料庫管理系統的系統架構圖例 2. 3. 4. 1. 資料庫(DB) ch02

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

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

2-6-2 資料庫管理系統系統架構-3.交易管理 交易管理(Transaction Manager): 負責處理資料庫的交易,保障資料庫商業交易的操作需要一併執行 鎖定管理(Lock Manager): 又稱並行控制管理(Concurrency-Control Manager)子系統 負責資源鎖定 資料庫(DB) ch02

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

2-6-3 常見的資料庫管理系統 商用的資料庫管理系統: 免費的資料庫管理系統: SQL Server MySQL Access IBM的DB2 Oracle INGRES Sybase Informix InterBase 免費的資料庫管理系統: MySQL PostgreSQL Firebird 資料庫(DB) ch02

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

2-7 資料庫管理師所需背景 資料庫管理師需要的相關電腦知識: 熟悉作業系統操作 熟悉一種或數種資料庫管理系統的使用 精通資料庫系統提供的查詢語言 例如: SQL Server 的 Transact-SQL Oracle 的 PL/SQL 資料庫設計,至少需要清楚公司資料庫系統的資料庫綱要 對電腦硬體的網路架構有一定的了解 例如:主從架構和Internet網際網路 資料庫(DB) ch02

2-7-1 資料庫管理師扮演的角色 資料庫(DB) ch02

2-7-2 資料庫管理師負責的工作 資料庫管理師負責的工作: 維護資料庫綱要 資料管理 維護和監控資料庫管理系統 資料庫(DB) ch02

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

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

2-7-2 資料庫管理師負責的工作-3.維護和監控資料庫管理系統 維護和監控資料庫管理系統: 工作: 安裝和升級資料庫管理系統 監控和調整資料庫的效能 使用者的稽核追蹤 容量計劃和選擇儲存裝置 備份與回復 資料庫(DB) ch02