Database System 授課教師: 姚志佳
教科書:資料庫系統-理論與設計實務(第二版) 作者:陳會安 出版社:學貫出版社
目錄 第1章: 檔案處理與資料庫 第2章: 資料庫系統 第3章: 資料庫模型與處理架構 第4章: 關聯式資料庫模型 第5章: 關聯式代數與計算 第6章: 資料庫設計與實體關聯模型 第7章: 關聯表的正規化 第8章: 關聯式資料庫管理系統
目錄 第9章: 關聯式資料庫設計工具 第10章: SQL定義、操作與控制指令 第11章: SQL基本查詢指令 第13章: 視界與資料庫程式設計 第14章: 交易管理與並行控制 第15章: 回復處理
Chap 1 檔案處理與資料庫 1-1 資料與資料處理 1-2 資料庫 1-3 檔案處理與資料庫系統 1-4 資料庫系統發展的歷史演進 1-5 資料庫技術的發展趨勢
資料與資料處理 資料 「資料」(Data)是指收集但是沒有經過整理和分析的原始數值、文字或符號,它是資訊的原始型態。「ANSI」(American National Standards Institute)定義的資料,如下: 資料是使用正規方式所代表的事實、概念或指令,可以適用人類或程式間進行通訊、解釋和處理。 資料可以代表一些特性或數量,換句話說,我們可以針對資料執行一些操作來轉換成資訊,這就是「資料處理」(Data Processing)。
資料與資料處理 資訊 「資訊」(Information)是經過處理的資料,在經過整理和分析後,就可以成為有用或可供決策的資訊。換句話說,資料是資訊的原始型態,資訊是處理後的有意義資料。 資料處理 「資料處理」(Data Processing)是使用!特定方法將資料轉換成資訊的過程,我們需要將資料進行搜尋、排序、分類、計算、收集、選取或結合等操作,以便產生所需的資訊 。
資料階層 資料階層一共分成六個階層:位元、位元組、欄位、記錄、檔案和資料庫,如下圖所示:
資料階層 位元(Bits) 位元組(Bytes) 欄位(Fields) 欄位是由1或多個位元組或字元組成,屬於相同性質資料組成的資料項目,以欄位名稱來識別。例如:一組字元組成的字串"Joe"和"Chen",可以使用欄位名稱"姓名"來識別,或數值33、29,可以使用欄位名稱"年齡"來識別等。
資料階層 記錄(Records) 檔案(Files) 記錄是相關欄位的集合,記錄的欄位是儲存 「實體」(Entity)的一些「屬性」 (Attributes)值,實體是用來描述真實世界 的東西。例如:學生實體,欄位是學生的屬 性,記錄則為學生的詳細資料。例如:姓名、 年齡、地址等欄位的值。 檔案(Files) 檔案就是相關聯記錄的集合,以檔案名稱儲 存在電腦周邊裝置的磁碟。
資料階層 資料庫 相關檔案的集合,使用「資料庫管理系統」(Database Management System)集中管理資料庫中儲存的資料。
資料庫 資料庫系統是由「資料庫」(Database)和「資料庫管理系統」(Database Mangement System,DBMS)所組成,如下圖所示:
資料庫 資料庫儲存的資料包括:資料和資料本身的定義,這是資料本身的描述資料,稱為「中繼資料」(Meta-data,The data about data)。 通常這些資料是使用不同檔案來分開儲存,所以在資料階層的資料庫是一個相關聯檔案的集合。
資料庫的定義 定義1.1:資料庫(Database)是一個儲存資料的電子文件檔案櫃(An Electronic Filing Cabinet)。 資料庫的結構是由資料模型(Data Model)來決定,這是一種高階模型來描述儲存的資料,也就是描述資料庫的結構。 資料庫是一種長存資料的集合
資料塑模 資料庫儲存是結構化收集的「實體」(Entity)資料,實體是現實生活中存在的東西,只是將它塑模(Modeling),如下圖所示:
資料塑模 使用模型來解釋真實東西、事件和其關聯性。以資料庫來說,塑模的主要目的是定義資料的結構。 邏輯關聯資料 資料庫是將真實東西轉換成模型定義的資料結構。例如:塑模一間大學或技術學院,也就是從大學或技術學院儲存的資料中識別出: 實體 屬性 關聯性:一對一、一對多、多對多
資料庫資料的三個層次 資料模型(Data Model):將真實東西轉換成資料模型的實體、屬性和關聯性,使用圖形化的高階模型來描述這些資料,通常使用在資料庫設計階段來分析資料庫儲存的資料。 中繼資料(Meta-data):用來描述資料庫儲存的是什麼樣的資料,定義資料列(Rows)或記錄(Record)型態,也就是定義各資料欄(Columns)或資料項目(Data Item)的型態。 資料(Data):資料庫實際儲存的資料列(Rows),或稱為記錄(Records)。
檔案處理與資料庫系統 「檔案系統」(File System)是一種非常原始的資料庫,不論是UNIX/Linux檔案系統,Windows作業系統的NTFS檔案系統,均使用相同觀念,以檔案方式儲存,我們可以撰寫應用程式處理檔案儲存的資料,稱為「檔案處理系統」(File Processing System)。
檔案處理與資料庫系統 檔案處理方式-架構
檔案處理與資料庫系統 檔案處理方式-資料檔案的內容 檔案管理系統的程式是處理邏輯檔案的資料,邏輯檔案的每一列是一筆記錄,第一列是欄位名稱的資料定義。 不過實際儲存的檔案內容並沒有第一列的欄位名稱,只有學生資料,檔案可以使用固定欄寬(例如:前4個字元是學號,第5~15個字元是姓名等,以此類推)或以特殊分隔字元儲存欄位資料,例如: S001:江小魚:中和景平路1000號:02-22222222:1978/2/2 S002:劉得華:桃園巿三民路1000號:03-33333333:1982/3/3 S003:郭富成:台中巿中港路三段500號:04-44444444:1978/5/5 S004:張學有:高雄市四維路1000號:05-55555555:1979/6/6
檔案處理與資料庫系統 檔案處理系統的問題 結構與資料相依(Structural and Data Dependence) 結構相依:檔案儲存的資料結構是由程式碼定義 資料相依:更改記錄的欄位定義,需要更改所有程式的資料管理模組 資料分隔與孤立(Data Separation and Isolation):資料常因不同單位而分別儲存在不同檔案 資料沒有集中管理 檔案格式不相容 更新系統困難
檔案處理與資料庫系統 檔案處理系統的問題 3. 資料重複與不一致(Data Redundancy and Inconsistency) 4. 多使用者問題(Multiple Users Problems) 5. 安全問題(Security Problems) 6. 資料完整性問題(Data Integrity Problems)
資料庫方式 架構
資料庫系統發展的歷史演進
1960年代:網路與階層式資料庫模型 1960年代資料庫系統開始萌芽,檔案從循序索引(Indexed-sequential)的循序存取轉變成「集合導向記錄模型」(Set-oriented Record Model)的直接存取。 1961年:Bachman替GE(General Electric)奇異設計第一套資料庫管理系統IDS(Integrated Data Store),1964年廣泛的使用,這是一套使用「網路式資料庫模型」(Network Database Model)的資料庫。 1965年:IBM公司開發「IMS」(Information Management System)是使用「階層式資料庫模型」(Hierarchical Database Model)的資料庫。
1970:關聯式資料庫模型與實體關聯模型-1 資料庫管理系統已經成為大學學科和研究領域,眾多使用網路式和階層式資料庫模型的商用資料庫大量出現在巿面。 1970年:IBM研究科學家E. F. Codd博士發表「關聯式資料庫模型」(Relational Database Model)的重要論文。 1976年:Peter Chen定義資料庫設計的「實體關聯模型」(Entity-Relationship Model),這是目前資料庫系統分析和設計的基礎。 1978年:ANSI定義ANSI/SPARC三層資料庫系統架構。
1970:關聯式資料庫模型與實體關聯模型-2 1970年代的後期,有二個主要的關聯式資料庫研究計劃開始進行: INGRES:加州大學柏克萊分校的研究計劃,最後成立Ingres公司,這個研究計劃開發的資料庫系統使用QUEL查詢語言,它是Informix、Sybase和SQL Server資料庫系統的前身。 System R:IBM公司的研究計劃,最後成為IBM的DB2和Oracle資料庫的前身,使用的SEQUEL查詢語言就是第四篇SQL結構化查詢語言的前身。 資料庫查詢語言(Query Language),在1970年代開始發展,例如:QUEL、SEQUEL、SQL和QBE查詢語言。
1980:關聯式資料庫與SQL結構化查詢語言 1980年代是商用關聯式資料庫大放異彩的年代,網路和階層式資料模型已經不再發展。80年代初期開發超過100個ANSI/SPARC關聯式資料庫系統,例如:DB2、Oracle、Sybase和Informix等。 1980年代中期:「SQL」(Structure Query Language)成為ISO標準的資料庫查詢語言,IBM DB2也成為IBM公司最重要的資料庫產品。 在1980年代後期:專家系統(Expert Database System)、物件導向資料庫管理系統(Object-Oriented Database Management System)和主從架構分散式系統逐漸成為資料庫系統的未來趨勢。
1990:物件導向式資料模型與主從架構-1 1990年代關聯式資料庫的相關技術仍然持續的發展,應用物件導向觀念的資料庫模型也逐漸成形,如下所示: 物件導向式資料庫模型(Object-Orient Database Model):這是使用物件(Object)觀念代替記錄儲存資料,以繼承減少資料重複,因為程式語言也支援物件導向,所以資料庫與程式語言可以使用一致的資料模型。 物件關聯式資料庫模型(Object-Relational Database Model):這是由Won Kim和Michael Stonebraker博士研究的資料庫模型,將物件導向的觀念整合至關聯式資料庫模型,強調這不是革命(Revolution),而是進化(Evolution)。
1990:物件導向式資料模型與主從架構-2 隨著Internet與WWW的興起和個人電腦的普及,集中處理的資料庫系統已經改為分散式主從架構(Client/Server)資料庫系統,將系統區分成兩個部分,如下所示: 客戶端(Client):從端的應用程式負責使用者的資料輸入和顯示輸出的結果。 伺服端(Server):主端的資料庫系統是負責回應從端的請求,將查詢結果傳回從端的應用程式。 再加上平行資料庫處理(Parallel Database Processing)應用在關聯式資料庫上,可以將表格的資料水平或重直分割成多個資料庫且並行的進行資料處理,即「分散式資料庫系統」(Distributed Database System)。
資料庫技術的發展趨勢