計算機概論 第十章 檔案與資料庫管理系統 陳維魁/陳邦治 旗標出版社.

Slides:



Advertisements
Similar presentations
2010 年 6 月课件制作人:王亚楠 1 模块 2 项目开发概论 教学课件 年 6 月课件制作人:王亚楠 2 目录 目标 了解:数据库技术的基本概念与结构 理解:数据模型的分类与结构组成 掌握:关系数据库及 SQL 的基本理论 知识 掌握:数据库设计的方法与步骤 内容 2.1 数据库技术基础.
Advertisements

第 7 章 数据库 1. Overview  数据库概述  数据库管理系统  数据库的体系结构和数据库模型  SQL 语言  数据库技术  构建数据库系统 2.
数据库原理 彭煜玮 计算机学院 珞珈图腾数据库实验室.
Visual FoxPro 教程 淮海工学院计算机工程学院 巫晓琳.
数据库原理及应用(ORACLE)实用教程
An Introduction to Database Systems
An Introduction to Database System
Database Management System 資料庫管理系統
第二章 資訊科技總論.
系統分析與設計 第九章 資料設計.
資料採礦與商業智慧 第十六章 線上分析處理.
数据库系统原理及应用 Database Theory and Application
第8章 資料設計.
第2章 資料庫系統 2-1 資料庫環境的四大組成元件 2-2 ANSI/SPARC的三層資料庫系統架構
An Introduction to Database Systems
数据库系统概论 An Introduction to Database Systems
第六章 資料倉儲與採礦技術 6.1 資料倉儲與採礦定義 6.2 資料採礦之步驟與技術分類 6.3 資料採礦在顧客關係管理之應用
第8章 数据库技术基础 数据库可以直观地理解为存放数据的仓库,只 不过这个仓库是在计算机的大容量存储器上。
管理資訊系統 David Kroenke 資料庫處理 第4章.
第六章 数据库和ADO.NET 褚龙现 软件学院.
第 八 章 資料庫安全 本投影片(下稱教用資源)僅授權給採用教用資源相關之旗標書籍為教科書之授課老師(下稱老師)專用,老師為教學使用之目的,得摘錄、編輯、重製教用資源(但使用量不得超過各該教用資源內容之80%)以製作為輔助教學之教學投影片,並於授課時搭配旗標書籍公開播放,但不得為網際網路公開傳輸之遠距教學、網路教學等之使用;除此之外,老師不得再授權予任何第三人使用,並不得將依此授權所製作之教學投影片之相關著作物移作他用。
文科计算机小公共课规划教材 Access 程序设计.
第6章 資料庫管理系統 6-1 關聯式資料庫管理系統 6-2 SQL Server資料庫管理系統
資料庫設計 Database Design.
第五章 信息系统开发能力培养.
数据库原理与应用.
Principles and Applications of the Database
数据库系统概论 第 三 版 主 讲: 李明东. 数据库系统概论 第 三 版 主 讲: 李明东.
第10章 文件 10.1 文件的基本概念 10.2 顺序文件 10.3 索引文件 10.4 散列文件 10.5 多关键字文件.
数据库技术及应用 华中科技大学管理学院 课程网址:
第2章 数据定义功能 创建表 在关系型数据模型中,表(Table)是最基本的数据结构。
数据库原理与应用     制作人:王春玲         黄金燕         张惠萍         陈志泊 人民邮电出版社.
An Introduction to Database System
第 4 章 CRM資料倉儲.
資料庫結構與組織.
課程名稱:資料庫系統 授課老師:李春雄 博士
第一章 資料庫的介紹 SQL Server 2012 資料庫實務應用.
二.資料庫系統建立與管理 Access 資料庫:windows下的單機資料庫 Access 操作 Mysql資料庫介紹.
辦公室自動化軟體: 資料庫管理Access 1 授課老師:林彣珊
Microsoft SQL Server 2000 李金双.
Chap 3 資料庫模型與處理架構.
資料庫安全 (Database Security)
彰化縣政府補助辦理網頁設計資料庫應用班 資料庫簡介 建國技術學院資管系 饒瑞佶.
第4章(2) 空间数据库 —关系数据库 北京建筑工程学院 王文宇.
課程名稱:資料庫系統 授課老師:李春雄 博士
課程名稱:資料庫系統 授課老師:李春雄 博士
第1章 SQL Server 2005 关系数据库简介.
AnQing Teachers College Department of Computer & Information
資料庫系統導論.
第4章(1) 空间数据库 —数据库理论基础 北京建筑工程学院 王文宇.
CH03 行銷資訊系統資料庫模組--資料庫概論
資料庫概論 許明宗.
認識資料庫 MySQL 資料庫新增 MySQL 資料表新增 認識欄位資料表 資料新增、刪除、修改、瀏灠 資料表清空與刪除
江西财经大学《数据库应用》精品课程组 2011年 Comments are welcome!
第一章 数 据 库 概 述 第一节 引言 第二节 数据库基本概念 第三节 数据库系统结构 第四节 数据模型 第五节 数据库管理系统
甚麼是資訊管理 資管二德黃明聰
计算机文化 第7讲:数据库技术 王哲 河南中医药大学信息技术学院.
資料庫管理系統 緒 論.
第十二章 文件管理 (Chapter 5 File Management)
從 ER 到 Logical Schema ──兼談Schema Integration
參考資料: 黃慕萱,Chap. 2-3 Harter, Chap. 3
第十八章 資料庫與Access 課前指引 在日常生活中,無論各位到銀行開戶、醫院掛號或是到學校註冊,一定都會填寫所謂的個人資料,裡面通常包括姓名、性別、生日、電話、住址等項目,所以人們建立了各種不同的列表來儲存及組織這些資料。 人們當初試圖建造電腦的主要原因之一就是可用來儲存及管理一些數位化資料清單與資料,這也是資料庫觀念的由來。尤其在資訊科技發達的今日,日常的生活已經和資料庫產生密切的結合。例如目前最熱門的網路拍賣,如何讓千萬筆交易順利完成,或者透過手機記錄著他人電話號碼,並能分類與查詢電話。
数据库系统原理 J.D.Ullman 国防工业出版社 数据库原理与方法 郑若忠,王鸿武 湖南科技出版社
2017学考复习 信息管理(导引P37).
国家“十一五”规划教材 数据库原理与应用教程(第3版).
2014Fall 資訊模式 資料庫和資料模型 國立中央大學 資訊管理系 范錚強 updated 中央大學。范錚強.
資料庫應用與實作 一到六章重點、習題.
第 1 章 認識資料庫系統.
第一章 Visual FoxPro数据库基础
Presentation transcript:

計算機概論 第十章 檔案與資料庫管理系統 陳維魁/陳邦治 旗標出版社

本章重點 本章將檔案與資料庫二個主題 多個相關檔案可組成資料庫系統 檔案與資料庫的相關知識及二者間的關連性與差異性

大綱 3 3 資料階層 檔案組織 其他檔案結構 資料庫定義 資料庫系統的特性 資料庫管理系統 關連式資料庫 資料庫的正規化 「檔案系統」與「資料庫系統」比較 3 3

資料階層 (1/3) 資料由低階到高階的順序為位元、位元組、欄位、記錄、檔案及資料庫 位元(bit) 位元組(byte) 資料的最小單位 為二進位值0或1 位元組(byte) 一個「位元組」等於8個位元。有時稱位元組為「字元」(character) 一個「位元組」代表一個符號。例如A、B、…、Z、a、b、…z、0、1、…、9、+、-、*、/…等符號

資料階層(2/3) 欄位(field) 記錄(record) 「欄位」是由相關的「位元組」所構成 例如學生的姓名「欄位」是由「位元組」所構成(如MARY,由M、A、R、Y四個字元所構成) 記錄(record) 「記錄」是由相關的「欄位」所構成 例如學生的「記錄」是由學生的姓名、學號、e-mail、通訊地址及聯絡電話等「欄位」所構成

資料階層(3/3) 檔案(file) 資料庫(database) 「檔案」是由相關的「記錄」所構成 例如班級的「檔案」是由所有學生的「記錄」所構成 資料庫(database) 「資料庫」是由相關的「檔案」所構成 例如資工系的「資料庫」是由所有班級的「檔案」所構成

範例 假設我們要將平時所使用的「通訊錄」儲存成一檔案,請問: (1)欄位(fields)指的是什麼? (2)資料記錄(records)指的是什麼? (3)鍵值(keys)指的是什麼? 解: 假設「通訊錄」中每位聯絡人的資料都包含了姓名、電話號碼、手機號碼、電子郵件及地址共五項資料 (1)共有五個「欄位」,分別是「姓名」欄位、「電話號碼」欄位、「手機號碼」欄位、「電子郵件」欄位及「地址」欄位 (2)資料記錄是指聯絡人資料 (3)鍵值是指「電話號碼」欄位

檔案組織 由資料階層的概念可知,檔案由相關記錄組成 常用的檔案組織 循序檔 直接存取檔 索引檔

循序檔(sequential file) 循序檔的結構是將資料記錄依照在檔案中的順序存放在儲存裝置 當要存取檔案中之資料時,必須依照檔案中資料排列的順序依序存取 例如某一檔案共有50筆資料記錄,若要存取檔案中第38筆資料記錄時,則必須依第1筆、第2筆、第3筆、…、第37筆資料的順序,最後才存取到所需要的第38筆資料 檔案結構未對記錄的長度做限制,因此可依記錄實際的長度配置空間供記錄使用,所以不會浪費空間

循序存取(sequential access) 「循序存取」的特性是速度慢、效率差 由於循序檔案結構只能支援「循序存取」動作,因此存取效率不佳 循序檔範例

直接存取檔(direct access file) 直接存取檔的建立方式是利用雜湊函數(hashing function)來計算記錄的位址,再將記錄存放在儲存裝置內對應的位址空間中 對記錄做存取動作時,也是透過雜湊函數計算記錄在儲存裝置內對應的位址,然後直接到該位址處存取記錄資料

「直接存取」(direct access) 「直接存取」的特點是速度快,效率佳

直接存取檔特性 直接存取檔可支援循序存取及直接存取動作。但是因為理想的雜湊函數不容易設計,所以不容易實作 因為直接存取檔案結構限制所有記錄的長度必需相同,因此相同的檔案若利用直接存取檔案結構來存放所需求的儲存區空間量是最大的

直接存取檔範例 觀察右圖,請留意以下二項特性: 1.同屬於同一檔案的五筆記錄應使用相同大小的記憶體空間 2.記錄可不使用連續的記憶體空間

索引檔(index file) 索引檔的建立方式是利用一個索引表(index table)儲存檔案的所有記錄在儲存裝置內之位址 若要存取檔案中之記錄內容,都必須先透過索引表找到記錄在儲存裝置的位址,再到該位址處存取記錄的內容 索引表實作的方式可利用一維陣列來製作,利用陣列的註標值(index)做為記錄編號,而陣列元素內容則是存放記錄在儲存裝置內之位址

索引檔範例 索引檔可支援循序存取及直接存取動作。雖然直接存取動作比直接存取檔慢且儲存區空間的需求量比循序檔高,但是因為索引檔較直接存取檔容易實作,而且存取速度又比循序檔快相當多,因此索引檔是使用普及度最高的檔案結構

檔案組織的選擇考量 檔案中記錄的大小 成長性(growth) 活動性(activity) 揮發性(volatility) 若檔案中記錄的大小皆相同,則採用三種方法皆可,但是若不相同則採用循序檔與索引檔為佳。(固定或不固定) 成長性(growth) 成長性是指檔案中的記錄之欄位數目及長度變化情形。若檔案中記錄的成長性高則採用直接存取檔為佳 活動性(activity) 單次處理中檔案記錄被處理的平均數。檔案中記錄的活動性高則可採用循序檔 揮發性(volatility) 檔案記錄新增及刪除的頻率。若檔案中記錄的揮發性高則採用直接存取檔為佳

範例 假設有一索引循序檔的第一個磁柱有如下的資料(所示數目為各資料記錄之鍵值): 第一磁軌 5 8 13 20 25 第一磁軌 5 8 13 20 25 第二磁軌 27 30 38 42 51 第三磁軌 55 60 67 73 80 第四磁軌 84 91 96 105 111 第五磁軌 溢位區(Overflow area) (1)試以上列資訊寫出相關之索引部份。 (2)如由此檔案讀取鍵值為38之記錄時,其搜尋步驟為何? (3)若插入鍵值為68之記錄時,其結果為何?

範例(cont.) (1)索引表:以各別磁軌中所儲存的最大鍵值做為索引表的內容 磁軌編號 鍵值 1 25 2 51 3 80 4 111 (2)先由索引表中確認資料所在磁軌編號為2,再由第二號磁軌中找尋目標資料

(3)若插入鍵值為68的記錄,由於鍵值為68之記錄會插入第三磁軌中,第三磁軌的最大鍵值將由原本的80變成73且鍵值80的資料將被移到溢位區(即第五磁軌)。索引表及磁軌完整內容如下: 磁軌編號 鍵值 1 25 2 51 3 73 4 111 第一磁軌 5 10 13 20 25 第二磁軌 27 30 40 42 51 第三磁軌 55 60 67 68 73 第四磁軌 84 91 96 105 111 第五磁軌 80

主檔與異動檔 主檔(master file) 異動檔(transaction file) 儲存全部的資料,因此資料最完整且不宜經常修改 異動檔(transaction file) 用來記載某段時間內主檔修正的內容資料 例如台灣大學的學生學籍資料檔案便是一個主檔,而在某一學期間,學生可能因為搬家而更改通訊地址或電話的資料便會記載在主檔對應的異動檔中,待學期結束後才會執行將該學期中儲存學生變動資料的異動檔與主檔資料合併的動作

相對檔 (relative file) 相對檔 (relative file)會以記錄中某一特定欄位之內容直接做為記錄存放在儲存設備的位址,這個特殊的欄位稱為「相對鍵」(relative key) 為了確保不同的資料記錄存放在儲存設備的位址不相同,因此不同記錄之相對鍵值不可相同。例如,某公司的員工檔案建置時,已設定員工編號皆不相同,則可利用員工編號直接做為「相對鍵」,將來對員工資料記錄執行存取動作時便可直接到儲存設備位址為員工編號處直接存取該員工之資料

反轉檔 (inverted file) 反轉檔是指利用輔助鍵來找出記錄在檔案中的位址及對應之主要鍵的檔案結構 一般的檔案結構是由主要鍵來找出記錄在檔案中的位址 反轉檔應該會與一般的檔案結構有很大的不同

範例 假設有以下學生成績資料表: 記錄名稱 學號 姓名 物理成績 化學成續 A 001 陳一 100 90 B 002 林二 72 63 C 003 張三 66 30 D 004 李四 45 20 E 005 王五 15 83 F 006 周六 94 G 007 蔡七 89 87 H 008 馬八 54 77 I 009 施九 81 53 J 010 吳十 10

將物理成績之分數依「40分以下」、「41分-60分」、「61分-80分」及「81分以上」分為四類,並依十位學生所得之分數建立鏈結串列如下

將化學成績之分數依「40分以下」、「41分-60分」、「61分-80分」及「81分以上」分為四類,並依十位學生所得之分數建立鏈結串列如下

「姓名欄位反轉檔」

「物理成績欄位反轉檔」

「化學成績欄位反轉檔」 以化學成績「81分以上」為例來說明。「81分以上」的鏈結個數為4,代表化學成績「81分以上」者有4位,化學成績「81分以上」的第一筆記錄名稱為A,第二筆記錄名稱為E (由記錄A的指標欄位內容得知下一筆記錄為E),第三筆記錄名稱為F(由記錄E的指標欄位內容得知下一筆記錄為F),第四筆記錄名稱為G(由記錄F的指標欄位內容得知下一筆記錄為G)

「全部反轉」及「部份反轉」 「全部反轉」(fully inverted) 「部份反轉」(partially inverted) 指所有記錄均有指標指到 例如上例中的「姓名欄位反轉檔」 「部份反轉」(partially inverted) 指只有部份筆記錄有指標指到 例如上例中的「物理成績欄位反轉檔」及「化學成績欄位反轉檔」

資料庫定義 常見的資料庫定義為資料庫是一群相關資料的集合體 資料庫內部的資料會以最少重覆的情況來儲存並可供多人同時使用

資料庫定義 (cont.) James Brandly定義 Alfonso F. Cardenas定義 C. J. Date定義 資料庫系統是某些交互參考檔(cross-referenced files)集合 Alfonso F. Cardenas定義 資料庫系統是某些事件(occurrences)所組成的集合,這些事件內包含有記錄型態,且記錄型態彼此間存在著某種特殊關係 C. J. Date定義 資料庫系統是一群可被操作的資料之集合,這些資料可被應用程式所使用

資料庫系統成員 計算機硬體 資料庫管理系統(Database Management System;DBMS) 資料庫內部的資料 資料庫管理者(Database administrator;DBA) 資料庫使用者

資料庫管理者的工作 決定資料庫的結構、資料儲存方式及存取方式 根據需求重建、變更資料庫的結構 建立資料庫的安全防護體系、備份(backup)及回復(recovery)策略 幫助使用者使用資料庫

資料庫系統的特性 (1/4) 「共享性」(shareable) 「不重複性」(non-redundancy) 指資料庫系統允許多個使用者同時使用同一筆資料 「不重複性」(non-redundancy) 指同一份資料在資料庫中被多人同時使用時,此時多個使用者可只共享同一份資料,不會因為多人同時使用便將資料複製多份

資料庫系統的特性 (2/4) 「完整性」(integrity) 指資料庫內的資料只有被授權的合法使用者有權更改,未獲授權的使用者不得自行變更資料庫的內容 只有教務處的學生成績系統管理者可在被合法授權的情形下更改學生成績(可能是因授課教師疏忽而輸入錯誤的成績,因此必須更改成績) 資料庫管理者可以藉由設定某些檢查程序,以保護資料庫的完整性

資料庫系統的特性 (3/4) 「資料獨立性」(data independency) 指應用程式與資料庫的內部儲存方式沒有任何的關連,如此一來當使用者寫程式必須利用到資料庫的內容時或必須使用資料庫時,不需要知道或考慮資料庫的內部結構 當變更所使用的應用程式時,便不需要對資料庫的內部儲存方式做任何型式的修正 具獨立性特徵的資料庫才容易被使用

資料庫系統的特性 (4/4) 「安全性」(security) 「一致性」(consistent) 指藉由適當存取控制(access control)機制及加密機制(encryption)來保護資料庫中資料的安全性 「一致性」(consistent) 「一致性」是「不重複性」的擴充 若同一份資料在資料庫中被儲存多份,則有可能因為其中的某一份被修改了,而使得該份被修改的資料與其他資料的內容不一致,但由於資料庫系統已經具有「不重複性」,因此「一致性」自然成立

資料庫系統常見的缺點 若使用資料庫系統來取代傳統的檔案系統會使得系統的建置及維護成本提高,因為「不重複性」使得相同資料只有一份,若發生意外損害則可能無法回復

資料庫管理系統 完整的資料庫系統架構 綱目與次綱目 資料庫管理系統內部結構 結構化查詢語言的分類與用法 資料庫的邏輯結構

完整的資料庫系統架構 ANSI/SPARC所定義完整資料庫系統架構共分為三個階層 外部層(external level) 概念層(conceptual level) 內部階層(internal level)

外部層(external level) 外部層是最接近使用者的階層,本層是以個別使用者觀點所見到的資料庫的內容(view) 本層具資料獨立性,藉由Sub-schema定義

概念層(conceptual level) 概念層是以整體使用者為觀點,並且是內部層與外部層間溝通的橋樑,在概念層中資料以SQL來定義 一筆概念記錄可能等於多筆外部記錄或多筆儲存記錄 本層藉由Conceptual schema或schema定義

內部層(internal level) 內部層是資料庫內資料實際的儲存方式之階層 包括記錄實際儲存順序、各欄位的資料特性及索引等 本層之資料具資料相依性並藉由Internal schema定義

ANSI/SPARC 完整資料庫系統架構

實體資料獨立性與邏輯資料獨立性 實體資料獨立性 邏輯資料獨立性 當資料庫實體之內部資料格式有更動時,程式本身不須修改便可建立邏輯資料模式 作法是指當內部層結構改變時,只要變更內部層/概念層之對映關係即可,而概念層/外部層之對映關係不需變動 邏輯資料獨立性 當資料庫實體之內部資料格式有更動時,可由資料庫管理系統(DBMS)來修改即可改,而使用者程式不須修改

綱目與次綱目 同一個綱目可能可以導出多個次綱目,綱目及次綱目的定義及區別介紹如下: 綱目(schema) 次綱目(subschema) 綱目又稱為邏輯資料庫描述(logical data base description)是資料庫設計者或管理者在建立資料庫時利用綱目定義語言(Schema Definition Language;SDL)所設計而成 利用綱目可定義資料庫的邏輯概觀(logical view) 次綱目(subschema) 次綱目是綱目的一個子集合,主要的作用是定義及控制存取模式的邏輯架構 可利用次綱目來定義個別使用者所建立之資料庫的邏輯概觀(logical view)

綱目與次綱目的關係

資料庫管理系統內部結構 資料庫管理系統(DBMS)的內部結構共分為三個部份,分別是 使用者介面( user interfaces) 資料庫管理系統子系統(DBMS subsystems) 資料庫管理系統引擎(DBMS engine)

資料庫管理系統內部結構--使用者介面 使用者介面的功能是用來與使用者、應用程式及管理者溝通 與外部階層溝通的工作是透過使用者介面來完成

資料庫管理系統內部結構--資料庫管理系統子系統 本部份一般會包含備份復原、安全管理、效能管理及應用發展等子系統

資料庫管理系統內部結構--資料庫管理系統引擎 資料庫管理系統引擎本身應具備運算的能力,所有針對資料庫的存取動作都必須透過資料庫管理系統引擎對作業系統提出輸出入工作請求來完成 DBMS Engine就是DBMS與內部階層溝通的橋樑 與內部階層溝通的工作是透過資料庫管理系統引擎來完成

結構化查詢語言的分類與用法 使用者可利用結構化查詢語言(Structured Query Language;SQL)來使用資料庫 資料定義語言(Data Definition Language;DDL) 資料處理語言(Data Manipulation Language;DML) 資料控制語言(Data Control Language;DCL)

資料定義語言 可利用此種語言在外部、概念及內部三個階層建立新的表格或刪除原來已存在的表格

資料處理語言 可利用此種語言來操作己建立好的表格,如進行新增資料、刪除、修改、存取、搜尋、更新與四則運算等動作

GRANT ALL ON EMPLOYEE TO ROBERT; 資料控制語言 資料控制語言是用來控制對資料庫中資料存取的權限,藉以達到保護資料的安全性。 範例: 將EMPLOYEE表格的所有存取權限開放給ROBERT GRANT ALL ON EMPLOYEE TO ROBERT;

使用者使用「資料庫的實體內容」模式 使用者會利用SQL當作工具,透過DBMS及作業系統當作介面來存取「資料庫的實體內容」,對應圖形如上圖

資料庫的邏輯結構 常見的資料庫結構 階層結構(hierarchical structure) 網路結構(network structure) 關聯結構(relational structure)

階層結構(hierarchical structure) 階層結構是一種類似樹狀結構的資料組織 必須是連通圖(connected graph) 不允許迴路(cycle) 樹中節點數目必須恰比邊的數目多1 亦需滿足每個子節點只能有一個父節點的規定 早期IBM所開發之IMS(Information Management System)及DL/1等系統即是採用階層結構

階層結構 (cont.) 階層結構因具有與樹狀結構相同的特性,所以可以使用既有的樹狀結構演算法及結構的建立及刪除均很容易。本結構最主要的缺點是只能由上而下,依序檢索資料,因此搜尋動作較耗時

網路結構(network structure) 網路結構類似樹狀的組織結構,但取消了每個子節點只能有一個父節點和在結構中不能有迴路的限制,也就是說任一節點可有任意數目的父節點 主要的特點是具有較大的彈性,但結構較樹狀結構複雜許多 早期HP所開發之IMAGE及Honeywell的IDS等系統即是採用網路結構

關聯結構(relational structure) 關聯結構利用由一些行與列所組成的表格來表達資料間的關係 優點是適合表達較複雜的關係,缺點則是當查詢的數目很少時,採用本結構的效率將不佳 DB2 、INGRES 、ORACLE 、SYBASE、dBASE III PLUS、ACCESS等系統採用木結構

關聯結構範例

關連式資料庫 關連式資料庫系統是由一群相關的表格(table)所組成,表格中的tuple在系統中沒有順序性 關連式資料庫系統使用實體關係圖(Entity-Relationship Diagram;ERD)作為設計關連式資料庫及描述實體關係圖(Entity-Relationship Model;E-R Model)時的工具

關連式資料庫範例

資料庫的正規化 正規化的目的是為了排除資料的重覆性以及去除所有會影響操作正確性之資料間的關係

「檔案系統」與「資料庫系統」比較