Presentation is loading. Please wait.

Presentation is loading. Please wait.

課程名稱:資料庫系統 授課老師:李春雄 博士

Similar presentations


Presentation on theme: "課程名稱:資料庫系統 授課老師:李春雄 博士"— Presentation transcript:

1 課程名稱:資料庫系統 授課老師:李春雄 博士
第 一 章 資料庫導論 課程名稱:資料庫系統 授課老師:李春雄 博士 各位同學大家好,我是李春雄老師,本學期所開設的課程名稱為「資料結構」, 今天所要為各位介紹的是第一章「資料結構導論」 1

2 本章學習目標 1.讓讀者瞭解資料庫、資料庫管理系統及資料庫 系統之間的差異以及資料庫的儲存資料結構。
2.讓讀者瞭解資料庫設計的五個階段及各階段所 使用的方法及分析工具等。 開始: 本章學習目標 有二項: 2

3 本章內容 1-1 認識資料、資料庫及資訊的關係 1-2 資料庫的意義 1-3 資料庫與資料庫管理系統 1-4 檔案系統與資料庫系統比較
1-1 認識資料、資料庫及資訊的關係 1-2 資料庫的意義 1-3 資料庫與資料庫管理系統 1-4 檔案系統與資料庫系統比較 1-5 資料庫的儲存資料結構 1-6 資料庫系統ANSI/SPARC架構 1-7 資料處理模式的演進 1-8 資料庫的設計 1-9 資料庫系統的架構 1-1 認識資料與資訊的關係: 其中,「資料」轉換成「資訊」必須要經過一連串處理過程,而這一連串的處理過程就是透過「程式」來處理。 1-2 何謂資料結構? 「資料結構」(Data Structures)主要是探討如何將資料更有組織地存放到電腦記憶體中,以提昇程式之執行效率的一 門學問。 1-3 何謂演算法?演算法就是「解決問題的方法」 1-4 程式設計概念: 步驟1. 分析所要解決的問題 步驟2. 設計解題的步驟 步驟3. 編寫程式 步驟4. 上機測試、偵測錯誤 步驟5. 編寫程 式說明書 1-5 結構化程式設計 利用「由上而下」的技巧,將程式分解成許多個獨立功能的模組。並且每一個模組都是由三種結構所組成。分別為循序結構、選擇結構及重複結構。 1-6 演算法的效率評估 指用來計算某些演算法所撰寫的程式,在經過編譯之後,實際執行所需要的時間。 3

4 資料庫的引言 2017/2/25 4

5 姓名:李碩安 年齡:6 班級:大班 興趣:玩車子
2017/2/25 5

6 1-1 認識資料、資料庫及資訊的關係 1.資料(Data):是指未經過處理的原始記錄。 例如:學生考試的原始成績。
2.資訊(Information) :就是有經過「資料處理」的結果。 例如:全班同學成績之排名及分佈圖。 資料處理(Data Processing)則是將「資料」轉換成「資訊」的一連串 處理過程,而這一連串的處理過程就是先輸入原始資料到「資料庫」 中,再透過「程式」來處理。例如:成績處理系統。如下圖所示: 圖: 接下來,我們可以從圖1-1來說明「資料與資訊的關係」 當我們「輸入原始成績」之後,如何輸出一張成績單呢?那就必須要透過「程式」來進行處理, 而在資料結構中,程式=資料結構+演算法 6

7 1.資料(Data) (1)是客觀存在的、具體的、事實的記錄。 (2)簡單來說,日常生活中所記錄的事實資料(姓名、生日、電話及
地址)或學生在期中考的各科原始成績,這些都是未經過資料處 理的資料。 如表1-1所示。 開始: 接下來更詳細介紹何謂資料 圖: 在輸入學生的各科成績之後,我們還無法得知那一位學生是第一名。 因此,就必須要再進行加總處理。 7

8 2.資訊(Information) (1)經過「資料處理」之後的結果即為資訊。而「資料」與「資訊」的 特性比較。 如表1-2所示。 開始:
接下來更詳細介紹何謂「資訊」 表: 1.資料是屬於潛在的資訊,它必須要透過「處理」才能變成有用的「資料」 2.資料是屬於靜態的被儲存起來,它必須要透過「處理」才能變成動態的方式呈現 3.資料是屬於過去的歷史,它必須要透過「處理」才能變成資訊,以提供決策者預測未來走勢 4.資料只要行動就可以產生,因此,必須要透過「處理」才能提供決策者作決策 5.每天的交易處理資料,如果只有儲存,就必須花費許多成本,因此,要進一步拿來分析運用才能產生效益。 8

9 (2)「資料處理」會將原始資料以加整理、計算及分析之後,變成有用
的資訊(含總成績、平均及排名次)。 如表1-3 所示。

10 (3)有用的資訊是決策者在思考某一個問題時所需用到的資料,它是主觀
認定的。例如:班導師(決策者)在學生考完期中考之後,想依學生考 試成績來獎勵。

11 1-2 資料庫的意義 隨著資訊科技的進步,資料庫系統帶給我們極大的便利。例如:我們要借閱某一本書,想知道該本書是否正放在某一圖書館中,並且尚未被預約借出。此時,我們只要透過網路就可以立即查詢到這本書的相關訊息。而這種便利性最主要的幕後工程就是圖書館中有一部功能強大的資料庫。如圖1-1所示。 圖1-1 圖書館幕後工程---資料庫

12 1-2.1 何謂資料庫(Database)? 簡單來說,資料庫就是儲存資料的地方,這是比較不正式的定義方式。比較正式的定義:資料庫是由一群相關資料的集合體。就像是一本電子書,資料以不重覆的方式來儲存許多有用的資訊,讓使用者可以方便及有效率的管理所須要的資訊。 常見的應用如下所示: 例如1:個人通訊錄上的運用 例如2:行動通訊錄的運用 例如3:在校務行政系統的學生「成績處理系統」之運用 ……

13 例如1:個人通訊錄上的運用 1.尚未建立資料庫的情況
如果我們平時沒有將親朋好友的通訊錄數位化,並儲存到資料庫中,需要查詢某一同學的電話時,可能會翻箱倒篋,無法即可找到。如下圖所示:

14 2.建立資料庫的情況 如果我們平時就有數位化的習慣,並且儲存到資料庫中,需要查詢某一同學的電話時,只要透過應用程式就可以輕鬆查詢。如下圖所示:

15 例如2:行動通訊錄的運用 各位同學手機中的聯絡電話,它可以依照不同的群組來儲存通訊錄,以方便我們查詢、聯絡,這些都是利用到資料庫的功能,其說明如下:

16 例如3:在校務行政系統的學生 「成績處理系統」之運用
例如3:在校務行政系統的學生 「成績處理系統」之運用 以上的畫面是利用「程式語言」+「資料庫系統」所完成的統計圖並不是利用Excel統計的套裝軟體所完成。

17 1-2.2 資料庫有什麼好處 資料庫除了可以讓我們依照群組來儲存資料,以方便爾後的查詢之外,其最主要的好處非常多,我們可以歸納以下七項:
1-2.2 資料庫有什麼好處 資料庫除了可以讓我們依照群組來儲存資料,以方便爾後的查詢之外,其最主要的好處非常多,我們可以歸納以下七項: 一、降低資料的重複性(Redundancy) 二、達成資料的一致性(Consistency) 三、達成資料的共享性(Data Sharing) 四、達成資料的獨立性(Data Independence) 五、達成資料的完整性(Integrity) 六、避免紙張與空間浪費(Reduce Paper) 七、達成資料的安全性(Security)

18 一、降低資料的重覆(Redundancy)
資料庫最主要的精神就是,在「相同的資料」情況下,只須儲存一次。其作法為透過資料集中化(Data Centralized)來減少資料的重覆性。 我們利用關聯式資料庫中的正規化(Normalization)來將資料集中化管理,以減少資料的重覆性問題。

19 1.資料尚未集中化 以學校的「教務處」與「學務處」為例,如果都各自獨立的學籍資料,將會導致大量資料的重覆性。例如:教務處的「學號與姓名」與學務處的「學號與姓名」重覆儲存。如下圖所示:

20 2.資料集中化 將「教務處」與「學務處」中,把相同的資料項,抽出來組成一個新的資料表(學籍資料表),如下圖所示:

21 正規化:將兩個表格切成三個資料表 說明:在正規化之後,「學籍資料表」的主鍵與「學務處資料表」的 外鍵及「教務處資料表」的外鍵進行關聯,以產生關聯式資料庫。 註:關於「正規化」單元在第四章會有詳細介紹。

22 說明:在新生入學時,所新增的學生學籍資料可以同時提供給教務處 來輸入每一次的月考成績與學務處的每天出勤記錄利用。
集中化 說明:在新生入學時,所新增的學生學籍資料可以同時提供給教務處 來輸入每一次的月考成績與學務處的每天出勤記錄利用。 2017/2/25 22

23 二、達成資料的一致性(Consistency)
【定義】是指某一個資料值改變時,則相關的欄位值也會隨之改變。 【作法】 1.利用資料分享機制:將共用項取出,再利用「主鍵」連接「外鍵」 來建立關聯,即可達到資料的一致性。 2.存取界面標準化:指利用「圖形化使用者介面;GUI」來限制使用者 的輸入格式。

24 (一) 利用資料分享機制 由於相同的資料(如學籍資料)在資料庫中是大家共用的(提供給教務處與學務處),如果有某一項資料更新(如姓名),則其他相關單位的資料也必須要同時都是最新的資料,如此,才不會發生不一致的現象。 【例如】 學生的姓名由「李安」改為「李碩安」時,則「學務處」與「教務處」兩處的相關姓名全部都會被修改。

25 資料分享機制就是利用關聯式資料庫中「子關聯」的外鍵(F. K. )參考到「父關聯」的主鍵(P. K
註:何謂外鍵?外鍵是指「父關聯嵌入的鍵」,並且外鍵在父關聯中 扮演「主鍵」的角色。 【外鍵的特性】 1.必須對應 「父關聯」主鍵的值。 2.用來建立與「父關聯」的連結關係。

26 假設在修改之前,學生的姓名由「李安」改為「李碩安」時,則「學務處」與「教務處」兩處的相關姓名全部都會被修改。如下圖所示:
【問題1】<尚未正規化前> 假設在修改之前,學生的姓名由「李安」改為「李碩安」時,則「學務處」與「教務處」兩處的相關姓名全部都會被修改。如下圖所示: 李碩安 李碩安 兩個資料表的「姓名」內容都要修改

27 只要在「學籍資料表」中,將學生的姓名由「李安」改為「李碩安」 即可。如下圖所示:
【實作】<正規化之後> 只要在「學籍資料表」中,將學生的姓名由「李安」改為「李碩安」 即可。如下圖所示: 只修改一個資料表的「姓名」內容即可

28 以上的查詢指令如下:<原理:在第六~八章會詳細介紹> <針對非主鍵(姓名),進行修改,必須要撰寫SQL>
註:關於如何在SQL Server 中撰寫SQL語法,請參考, 附件二的B-3利用SQL Server 撰寫T-SQL 教務處查詢SQL 學務處查詢SQL USE CH1_DB SELECT 教務處資料表.學號, 姓名, 學業成績 FROM 教務處資料表, 學籍資料表 WHERE 教務處資料表.學號=學籍資料表.學號; SELECT 學務處資料表.學號, 姓名, 操行成績 FROM 學務處資料表, 學籍資料表 WHERE 學務處資料表.學號=學籍資料表.學號; 28

29 【SQL Server上機實作】 【實作】 在「學籍資料表」中,將學生的姓名由「李安」改為「李碩安」,再
《資料庫名稱:ch1_DB.mdf》 【實作】 在「學籍資料表」中,將學生的姓名由「李安」改為「李碩安」,再 到「教務處」查詢SQL與「學務處」查詢SQL

30 (二)存取介面標準化 【定義】 是指利用「圖形化使用者介面;GUI」來設計標準化的存取介面,其目的就是強制使用者的輸入格式。
【例如】我們可以利用表單讓使用者用點選的方式,而不要使用輸入填寫的方式,如下圖所示: <不建議使用> <建議使用> 如果輸入介面讓使用者自行填入性別,可能會產生多種不同的情況。 例如:在性別欄中填入:男,男生,Man,此時將會產生資料不一致現象。 輸入填寫的方式 點選的方式 假設「性別」欄位是數字型態,我們只要透過「存取界面標準化」就可以利用的存入0(女生)或1(男生) 封閉式 介面 開放式 介面

31 三、達成資料共享(Data Sharing)
【定義】 指同一份資料在同一時間可以提供給多位使用者同時來存取。 【例如】在下圖中,「學籍資料表」中的「姓名」資料,可以同時提供給「學務處」來查詢學生的操行成績及提供給「教務處」來查詢學生的學業成績。

32 四、資料的獨立性(Data Independence)
【定義】 是指資料與應用程式之間無關或獨立。也就是說,當使用者對使用界面有不同需求時,去修改外部層的應用程式,並不影響內部層的儲存結構,亦即應用程式不須牽就資料結構而做大幅度的修改。反之即為「資料相依(Data Independence)」。 應用程式 資料

33 【例如1】資料的獨立性(Data Independence)
假設使用者本來依「學號」來排序全班成績,現在修改應用程式為可以依照「資料庫」來排序全班成績。這將不會影響內部層的儲存結構。 資料庫系統具有「資料庫獨立性」的優點。 依「學號」來排序 依「資料庫」來排序 use CH1_DB SELECT * FROM 學生成績表 ORDER BY 學號 use CH1_DB SELECT * FROM 學生成績表 ORDER BY 資料庫 DESC

34 【例如2】 資料的相依性(Data Independence)
假設使用者本來依「學號」來查詢全班成績,現在修改應用程式為可以依照「資料庫成績」來全班排名次。這將會影響內部層的儲存結構。 檔案系統會有「資料相依性」的問題。

35 【 SQL Server上機實作】 在「學生成績表」中,各別依照「學號」及「資料庫」成績來進行排序

36 五、資料的完整性(Integrity) 【定義】
是指用以確保資料的一致性與完整性,以避免資料在經過新增、修改及刪除等運算之後,而產生的異常現象。 【例如】 學生的成績為101分時,這顯然是一種錯誤性的資料。我們可以利用資料完整性的「值域完整性規則」,來檢查使用者將錯誤及不合法的資料值存入資料庫中。

37 【作法】

38 【 SQL Server上機實作】 請在「選課資料表」中,設定「成績」欄位的完整性規則,亦即 成績的範圍0~100分之間 【實作步驟】
步驟一:選擇欲修改的欄位名稱「成績」欄位

39 【 SQL Server上機實作】<續>

40 【 SQL Server上機實作】<續>
步驟二:填入「條件約束之運算式」及「描述」

41 六、無紙作業,有效利用空間(Reduce Paper)
醫院病歷資料表,規模大一點的話,沒有特別蓋個檔案室來存放還真不行。若是利用「資料庫」來儲存,需要時只要利用「電腦」來觀看,如此,每年節省的「紙張」與「存放的空間」是非常驚人的。

42 解決方法:利用資料庫來儲存 資料庫在醫療上的運用

43 除此之外,學校行政電腦化之後,學生的「學籍資料」、「成績單」及「選課表」等等資料,都可以透過網路來查詢自己想要的資訊,這將會減少學校行政人員,在每學期時都必須將學生的選課表列印出來,其中包括紙張成本及每一次月考學生成績單的成本。

44 七、資料的安全性(Security) 由於資料庫內的資料是屬於企業組織中最重要的資產,因此,除了要防止非法入侵者的破壞或機器故障而導致資料庫毀掉之外,還有一項重要的工作就是要隨時做好「備份(Back-up)」,以保障資料的安全性。 【策略】 每天下班之前備份<人工備份> 每天晚上12:00備份<系統自動備份> 每週備份一次 每月備份一次

45 1-3 資料庫與資料庫管理系統 我們都知道,資料庫是儲存資料的地方,但是如果資料只是儲存到電腦的檔案中,其效用並不大。因此,我們還需要有一套能夠讓我們很方便地管理這些資料庫檔案的軟體,這軟體就是所謂的『資料庫管理系統』。 什麼是「資料庫管理系統」呢?其實就是一套管理「資料庫」的軟體,並且它可以同時管理數個資料庫。因此,資料庫加上資料庫管理系統,就是一個完整的『資料庫系統』了。所以,一個資料庫系統(Database System)可分為資料庫(Database)與資料庫管理系統(Database Management System, DBMS)兩個部份。

46 【重要觀念】 1.資料庫(DB):是由一群相關資料的集合體。 2.資料庫管理系統(DBMS):管理這些資料庫檔案的軟體(如:SQL Server)。 3.資料庫系統(DBS)=資料庫(DB)+資料庫管理系統(DBMS)。

47 1-3.1 資料庫系統的組成 嚴格來說,一個資料庫系統主要組成包括:資料、硬體、軟體及使用者。
資料庫系統的組成 嚴格來說,一個資料庫系統主要組成包括:資料、硬體、軟體及使用者。 1.資料:即資料庫;它是由許多相關聯的表格所組合而成。 2.硬體:即磁碟、硬碟等輔助儲存設備;或稱一切的週邊設備。 3.軟體:即資料庫管理系統(Data Base Management System, DBMS) (1)是指用來管理「使用者資料」的軟體 (2)作為「使用者」與「資料庫」之間的界面 (3)目前常見有:Access、MS SQL Server 、Oracle 、Sybase 、 IBM DB2

48 (1) 一般使用者(End User):直接與資料庫溝通的使用者
4.使用者:一般使用者(End User)、程式設計師及資料庫管理師(DBA)。 (1) 一般使用者(End User):直接與資料庫溝通的使用者 (如:使用SQL語言) (2) 程式設計師(Programmer):負責撰寫使用者操作介面的應用程式, 讓使用者能以較方便簡單的介面來使用資料庫 (3)資料庫管理師(DBA)的主要職責如下: 定義資料庫的屬於結構及限制條件。 協助使用者使用資料庫,並授權不同使用者存取資料。 維護資料安全及資料完整性。 資料庫備份(Backup)、回復(Recovery)及並行控制 (Concurrency control)作業處理。 提高資料庫執行效率,並滿足使用者資訊需求。

49 綜合上述,我們可以從下圖中來說明「資料庫系統」,一般使用者在前端(Client)的介面中,操作應用程式及查詢系統,必須要透過DBMS才能存取「資料庫」中的資料。
而要如何才能管理後端(Server)之資料庫管理系統(DBMS)與資料庫(DB)的資料存取及安全性,則必須要有資料庫管理師(DBA)來維護之。

50 1-3.2 資料庫管理系統的功能 在上面的章節中,我們已經瞭解資料庫管理系統(DBMS)是用來管理「資料庫」的軟體,以作為「使用者」與「資料庫」之間溝通的界面。因此,在本單元中,將介紹DBMS是透過那些功能來管理「資料庫」呢?其主要的功能如下: 1.資料的定義(Data Define) 2.資料的操作(Data Manipulation) 3.重複性的控制(Redundancy Control) 4.表示資料之間的複雜關係(Multi-Relationship) 5.實施完整性限制(Integrity Constraint) 6.提供「備份」與「回復」的能力(Backup and Restore)

51 1.資料的定義(Data Define) 【定義】 ---它是建立資料庫的第一個步驟
是指提供DBA建立資料格式及儲存格式的能力。亦即設定資料「欄位名稱」、「資料類型」及相關的「限制條件」。其「資料類型」的種類非常多。【例如】文字、數字或日期等等, 此功能類似在「程式設計」中宣告「變數」的「資料型態」。如下圖所示:

52 2.資料的操作(Data Manipulation)
在定義完成資料庫的格式(亦即建立資料表)之後,接下來,就可以讓我們儲存資料,並且必須能夠讓使用者方便的存取資料。 【定義】是針對「資料庫執行」四項功能: 1.新增(INSERT) 2.修改(UPDATE) 3.刪除(DELETE) 4.查詢(SELECT)

53 【實例】 新增「學號」為S0004,「姓名」為李安同學的記錄到「學生資料表」中。

54 3.重複性的控制(Redundancy Control)
【功能】主要是為了達成「資料的一致性」及「節省儲存空間」。 【作法】設定「主鍵」來控制。如下圖所示: 設定主鍵

55 【 SQL Server上機實作】 請在「學生資料表」中,設定「學號」欄位為主鍵,亦即 再輸入相同的學號時,就會產生錯誤。

56 4.表示資料之間的複雜關係 【定義】是指DBMS必須要有能力來表示資料之間的複雜關係,基本上, 有三種不同的關係,分別為: 1.一對一
2.一對多 3.多對多 【例如】學生校務資料庫關聯圖

57 【隨堂作業】學生借書資料庫關聯圖

58 5.實施完整性限制 【定義】 是指用來規範關聯表中的資料在經過新增、修改及刪除之後,將錯誤或不合法的資料值存入「資料庫」中。如下圖所示:

59 6.提供「備份」與「回復」的能力 【定義】是指讓使用者能方便的「備份」或轉移資料庫內的資料,以防在系統毀損時,還能將資料「還原」回去,減少損失。如下圖所示:

60 1-3.3 常見的資料庫管理系統 一、常見的商業資料庫系統:
1-3.3 常見的資料庫管理系統 目前市面上常見的資料庫管理系統,大部份都是以關聯式資料庫管理系統(RDBMS)為主。 一、常見的商業資料庫系統: 1.SQL Server(企業使用):微軟公司(Microsoft)所開發。 【使用對象】企業的資訊部門。 2.Access(個人使用):微軟公司(Microsoft)所開發。 【使用對象】學校的教學上及個人使用,它屬於微軟Office系列中的一員。 3.DB2:是由IBM公司所開發。 4.Oracle:是由甲骨文公司(Oracle Corporation)所開發。 5.Sybase:是由賽貝斯公司所開發。 6.Informix:是由Informix公司所開發。

61 二、常見的免費資料庫系統: 1.MySQL(最常見,常與PHP使用) 2.MySQL MaxDB 3.PostgreSQL

62 1-4 資料庫系統與檔案系統比較 目前有兩種常見「資料處理系統」: 第一種:檔案系統
1-4 資料庫系統與檔案系統比較 目前有兩種常見「資料處理系統」: 第一種:檔案系統 以「檔案為導向」的方法,一次只能處理一個檔案,無法同時處理 多個檔案。 【適用時機】在「不複雜」的場合使用 【缺點】每一個應用系統都有自己的所屬檔案,那麼資料便有重覆存放、 不一致的問題發生。 第二種:資料庫系統解決「檔案系統」的缺點

63 1-4.1 檔案系統 在以往,電腦皆採用「檔案處理系統(File processing system)」的方法來處理資料。其處理方式是依據每一個企業組織各部門的需求來設計程式,再根據所寫的程式去設計所需要的檔案結構,而不考慮企業組織整體的需求。 所以,在此種發展模式下,每一套程式和檔案皆自成一個系統,因此,同一個子系統中,「檔案」與「程式」之間的相依性高,而子系統與子系統之間是相依性低(亦即相互獨立)。

64 【例如】 「教務處」有自己的「檔案系統」與「程式」(並且「檔案」與「程式」之間的相依性高),而「學務處」也有自己的「檔案系統」與「程式」,並且「教務處」與「學務處」的「檔案系統」是相互獨立,無法共用(亦即子系統之間的「檔案」都是相互獨立)。 所以,往往會造成資料重覆與資料不一致的問題,因此,「檔案系統」逐漸為「資料庫系統」所取代。

65 在傳統校務系統中,各處室都有自己部門的「程式」與「檔案」。同時,由於各「檔案處理系統」彼此間互不相關,所以各系統所使用的「程式語言」與「檔案結構」可能會不同,也增加了系統維護的困難度。如圖1-4所示:
圖1-4 傳統校務檔案系統示意圖

66 【作法】檔案系統必須很小心的計算哪一個字元要存在哪一個位置 【例如】欲建立學生基本資料(假設有三個欄位)  學號(No):1-5個字元
姓名(Name): 7-9個字元 電話(Tel): 11-20個字元 學號 姓名 電話 S0001,張三, S0002,李四, S0003,王五, ……

67 【檔案系統的優點】 1.程式的設計方式相當單純。 <因為不須考慮各部門整合上的問題>
2.檔案系統較容易滿足各部門或應用系統之要求。 <因為只須考慮單一部門需求>

68 【檔案系統的缺點】 1.資料之重覆性高 各部門檔案各自獨立。 例如:「教務處」與「學務處」會重覆儲存學生的基本資料。 2.導致資料不一致性
當某一位學生的姓名更改時,必須要同時到「教務處」與「學務處」 更改資料。 3.資料無法整合及共享 當學生要「查詢成績單」時必須要查詢兩個處室,一次要到「教務處」查詢 智育成績, 另一次則要到「學務處」查詢德育成績。 4.資料保密性和安全性非常低 在檔案系統中沒有安全機制,而資料庫系統則有 <因為可以設定資料庫的帳號與密碼>。

69 【檔案系統的缺點】<續> 5.資料與程式之間的相依性高 每一個「程式」有它們使用的每個檔案維護metadata(資料的資料)。
6.漫長的開發時間 程式設計師必須設計他們自己的檔案格式。 7.大量的程式維護工作 佔據資訊系統預算的80%。

70 1-4.2 資料庫系統 由於傳統的檔案系統缺點實在太多(上一個章節中的七個缺點)而不容易解決,於是資料庫及資料庫管理系統乃應運而生。因此,現在我們則是採用「資料庫系統」來處理資料。 以「大學校務行政電腦化系統」為例,當我們由傳統的「檔案系統」決定改採用「資料庫系統」來發展一個系統時,我們必須要依據大學校務組織的整體需求做分析考量,將大學各單位所有相關的資料以相同的「資料結構」來建置資料庫,讓不同單位的資訊系統之使用者也可以利用現有的資料庫來發展所需的應用程式。 在此種發展模式下,如果其他單位又有新的需求產生,則只需要將原先資料庫直接提供給所需要的使用者來開發新的系統,而不需要另外再建立新的資料庫。

71 在資料庫系統中主要強調資料的「集中化」管理,因此,可以讓來自不同處室的多位合法使用者透過「資料庫管理系統」來存取資料庫中的資料。
【舉例】現在學校中,各處室透過「資料庫管理系統」來加以整合。 如圖1-5所示。 圖1-5 校務行政資料庫示意圖

72 【資料庫系統的優點】 一、降低資料的重複性(Redundancy) 二、達成資料的一致性(Consistency)
三、達成資料的共享性(Data Sharing) 四、達成資料的獨立性(Data Independence) 五、達成資料的完整性(Integrity) 六、避免紙張與空間浪費(Reduce Paper) 七、達成資料的安全性(Security)

73 【資料庫系統的缺點】 一、資料庫管理系統(DBMS)的成本較高 二、資料庫管理師(DBA)專業人員較少
四、提供安全性、同步控制、復原機制與整合性,比較花費大量資源。

74 1-5 資料庫的階層 資料庫的階層是有循序的關係,也就是由小到大的排列,其最小的單位是Bit(位元),而最大的單位則是DataBase(資料庫)。 資料依其單位的大小與相互關係分為幾個層次,說明如下: Bit(位元)→Byte(字元)→Field(資料欄)→Record(資料錄)→Table(資料表)→Data Base(資料庫)。如下圖所示: 資料庫是由許多資料表所組成,每一個資料表則由許多筆記錄所組成,每一筆記錄又以許多欄位組合而成,每一個欄位則存放著一筆資料。 資料庫中的每一個欄位,皆只能存放一筆資料,這些資料必須遵守著一定的結構標準來記錄各種訊息。 例如:文字、數字或日期等格式,而在資料表中的欄位 值也可能是空值(Null)。

75 除了從資料庫階層的觀點之外,我們可以從資料庫剖析圖來詳細說明。如下圖所示:
1.「資料庫(DataBase)」是由許多個「資料表」所組成的。 2.「資料表(Table)」則是由許多個「資料記錄」所組成的。 3.「資料記錄(Record)」是由好幾個「欄位」所組成。 4.「欄位(Field)」是由許多個「字元」組成的。

76 表1-1 資料庫階層表 資料階層 階層描述 資料範例 位元(Bit) 位元組(Byte) 欄位(Field) 資料錄(Record)
數位資料最基本的組成單位 二進位數值 0或1 位元組(Byte) 由8個位元所組成 透過不同位元組合方式可代表數字、英文字母、符號等,又稱為字元(character) 一個中文字元是由兩個位元組所組成 欄位(Field) 由數個字元所組成 一個資料欄位可能由中文字元、英文字元、數字或符號字元組合而成 學號 資料錄(Record) 描述一個實體(Entity)相關欄位的集合 數個欄位組合形成一筆記錄 個人學籍資料 資料表(Table) 由相同格式定義之紀錄所組成 全班學籍資料 資料庫(Database) 由多個相關資料表所組成 校務行政資料庫,包括:成績資料表、學籍資料表、選課資料表…等 資料倉儲 (Data Warehouse) 整合性的資料儲存體 內含各種與主題相關的大量資料來源 可提供企業決策性資訊 教育部的全國校務行政資料倉儲,可進行彙整分析提供決策資訊

77 1-6 資料庫系統ANSI/SPARC架構 資料庫管理系統的主要目的是提供使用者一個有效率和方便的工作環境去操作和查詢資料。為了達到此目的,美國國家標準協會綜合規畫委員會(ANSI/SPARC)的資料庫管理小組在1970年訂定了一個資料庫系統的組織架構,此架構被稱之為ANSI/SPARC架構。 此架構最主要的目的除了將使用者的應用程式與資料庫的實體分開之外,同時將資料庫中一些複雜的資料結構隱藏起來,以方便資料庫系統的使用者使用。

78 ANSI/SPARC架構可分為三大層次:
1.外部層(External Level) 2.概念層(Conceptual Level) 3.內部層(Internal Level)

79 1.外部層(External Level) (1)個別使用者觀點,是指依不同的使用者提供不同的資料庫之資料。
(2)使用者大多以「查詢」動作為主。 【舉例】學校中的「教務處」與「學務處」所查詢的資料 教務處:學號、姓名、電話、地址、「學業成績」及「名次」。 學務處:學號、姓名、電話、地址、「操性成績」及「曠課時數」。

80 2.概念層(Conceptual Level)
(1)全部使用者觀點。 (2)表示資料庫中全部的基底表格內容。但不用考量資料實際的儲存結構。 【舉例】在基底表格內容只存一份資料表(關聯)。 學生資料表(學號、姓名、電話、地址、學業成績、名次、操性成績及 曠課時數)

81 3.內部層(Internal Level) (1)內部儲存方式觀點,亦即實際儲存在磁碟等儲存裝置的資料。 (2)資料庫的實體架構。
【舉例】每一個欄位在表格中的位置、學號索引。

82 1-7 資料處理模式的演進 在早期的資料處理模式是利用人工作業方式,但是,隨著企業組織逐漸擴展。因此,許多企業已經無法負荷龐大的資料量,例如:無法提供足夠的空間在放置龐大客戶的歷史資料(交易記錄),導致查詢時間過長的問題,以致於工作效率下降。因此,如何有效的提升內部資料處理能力,就必須要透過目前的資訊科技的協助,進而提升企業的競爭力。

83 資料處理模式所使用的方式可以分成以下幾個演進階段:
1.第一階段─「人工作業」方式 2.第二階段─以電腦化「循序檔」系統方式 3.第三階段─以電腦化「直接檔」系統方式 4.第四階段─以「記錄」為處理單元的「資料庫管理系統」方式 5.第五階段-以「物件」為處理單元的資料庫管理系統方式 6.第六階段-資料倉儲與資料探勘

84 1-7.1 第一階段-「人工作業」方式 【定義】是指最早期的資料處理方式,主要是透過人工記錄在紙張方式。
1-7.1 第一階段-「人工作業」方式 【定義】是指最早期的資料處理方式,主要是透過人工記錄在紙張方式。 【例如】戶政、病歷、圖書館藏書資料……等等。

85 1-7.2 第二階段-「循序檔」系統方式 【定義】是指利用卡片、磁帶等循序媒體來記錄資料,透過電腦來讀出 及寫入的處理方式。
1-7.2 第二階段-「循序檔」系統方式 【定義】是指利用卡片、磁帶等循序媒體來記錄資料,透過電腦來讀出 及寫入的處理方式。 【例如】錄音帶及唱帶。

86 1-7.3 第三階段-「直接檔」系統方式 【定義】在此階段中,磁碟漸漸地取代了磁帶,使得電腦得以直接存取檔案,成為直接存取式檔案系統(Direct Access File System),但仍是以「檔案」為處理對象,與現今應用上常常存取的對像是以「記錄」或「欄位」來說,仍有一些處理上的差異性。 【例如】硬碟、磁碟片及光碟片。

87 1-7.4 以「記錄」為主的資料模式 以「記錄」為主的資料模式有下列三種模式:
1-7.4 以「記錄」為主的資料模式 以「記錄」為主的資料模式有下列三種模式: 1.階層式資料模式(Hierarchical Data Model) 2.網路式資料模式(Network Data Model) 3.關聯式資料模式 (Relational Data Model)

88 1.階層式資料模式(Hierarchical Data Model)
【定義】 階層式資料模式是一種「由上而下」(Top-down)的結構,而資料 相互之間是一種樹狀的關係,所以又稱為樹狀結構(Tree)。 如下圖所示: 【資料存取方式】是由樹根(Root)開始往下存取資料。 【適用時機】大量資料記錄和固定查詢的應用系統。

89 【優點】 1.存取快速、有效率。 2.適於處理大量資料記錄的應用系統。 【缺點】 1.資料重覆儲存,浪費空間 2.無法表示多對多之關係(只能描述一對一及一對多的關係) 3.無法適用於需要因應突然資料需求的DSS (因為資料的關係須事先設定好)

90 假設欲查詢「校務行政系統」的資料庫,校務檔是根(Root),而要查詢學生「智育成績」的資料時就必須由此點開始,沿著鏈結向下找。如下圖所示:
【實例】 假設欲查詢「校務行政系統」的資料庫,校務檔是根(Root),而要查詢學生「智育成績」的資料時就必須由此點開始,沿著鏈結向下找。如下圖所示: 校務系統 教務處 學務處 智育成績 --- 德育成績 圖1-11校務系統階層圖

91 2.網路式資料模式(Network Data Model)
【定義】 網狀式資料庫的組成結構和階層式資料庫類似,其差異點是提供多對多(M:N)的關係,就像一張網子一樣,每一個子節點可以有多個父節點相連結,可以消除階層式模式的資料重覆問題。如下圖所示:

92 【優點】 1.符合現實世界中的多對多關係。 2.存取有效率。 3.提供實體資料獨立。 【缺點】較為複雜。

93 例如查詢校務人事系統的資料庫,其中學校成員有分為三種身份,但是,有些成員又屬於兩種身份,因此,形成多對多的網狀關係。
【實例】 例如查詢校務人事系統的資料庫,其中學校成員有分為三種身份,但是,有些成員又屬於兩種身份,因此,形成多對多的網狀關係。 如下圖所示: 圖1-13校務人事網狀圖 學校成員 學生 行政人員 教授 李同學 葉主任

94 3.關聯式資料模式(Relational Data Model)
【定義】 任二個表格之間,若有相同的資料欄位值,則這二個表格便可以相連,即透過「外鍵」參考「主鍵」來相連結。 【舉例】 「學生資料表」的外鍵(系碼)與「系別資料表」的主鍵(系碼)之間都具有相同的欄位值,因此,就可以建立關聯圖。

95 【 SQL Server上機實作】 假設我們現在要開發一套「選課系統」並且完成資料庫的正規化,接下來,請先建立正規化後的五個資料表,再建立資料庫的關聯圖。

96 【關聯式資料庫的資料結構】 使用二維表格來組織資料。每一個關聯表主要包含關聯表綱要(Relation Schema)即表頭(Head)與關聯表實例(Relation Instance)即主體(Body)兩部份。如表1-2所示: 1.表頭(Head): 由一組屬性(Attributes)或稱為欄位與定義域(Domain)組成的綱目, 即{(A1:D1),(A2:D2),…,(An:Dn)}。 2.主體(Body): 指表格(關聯)中的資料部分,其內容、數字是隨時間變動而變動, 即{(A1:Vi1),(A2:Vi2),…,(An:Vin)}。 表1-2關聯表綱要與實例

97 【表格(關聯)的特性】 一個關聯(Relation)是一個二維表格,一般而言,關聯的特性如下:
1.每一列(Row)代表一個實體(Entity)的資料 2.每一欄(Column)紀錄一項實體的屬性(Attribute) 3.同一欄的項目其類型相同 4.每一欄都有一個唯一的名字 每一欄 類型相同 實體的屬性 學號 姓名 系名 S0001 張三 資工系 S0002 李四 S0003 王五 資管系 第一個實體 第一列 唯一的名字

98 【表格(關聯)的特性】<續>
5.無重覆的Tuple(值組;Row:列) 指沒有任何兩列的記錄是完全相同的。 原因:因為關聯被定義為值組的集合,依據定義,集合內的所有元素 是不同的;因此,在關聯中的所有值組也必須是不同的。

99 6.Tuple(值組)的次序不重要 指每一列的記錄(值組)順序不重要。 原因:因為關聯被定義為值組的集合,就數學而言,集合內的元素是 沒有順序的;因此,關聯的值組不會有任何的順序關係。

100 7.Attribute(屬性;Column:行)的次序不重要
是指每一欄的位置之順序不重要。

101 8.屬性中的內含值均為Atomic(基元值) 是指表格中的每一格的內容都是皆為單一值。

102 【關聯式資料模式的優點】 1.理論優良、簡單。 2.適合使用者角色。(Table(表格)非常直覺化) 3.提供高度的資料獨立性。
4.具有宣告式的查詢方式,最容易使用。 (Select 欄位名稱 From 資料表 Where 條件式)

103 【關聯式資料模式的缺點】 1.不適合處理大量資料。 2.效率最差(∵Join時會花費較多的時間)。

104 資料模式的比較表 我們可以綜合歸納來比較階層式資料模式、網路式資料模式及關聯式資料模式三種資料模式,如下表示所: 資料模式 適用問題之特性
樹狀 網狀 表格 關係連結 指標 外鍵 資料關係 1:1, 1:M 1:1, 1:M, M:N 個體檔案 可能重覆 避免重覆 複雜度 中等 最高 最低 交易量 中上 資料存取彈性 使用容易度 支援非程序性 存取路徑 事先決定 關聯表格 優點 1.單純、易用 2.確定性需求 3.效率較高 方便設計多對多關聯 1.單純、使用者導向 2.資料獨立性 3.適隨機性查詢 缺點 1.不易設計多對多關係 2.隨機性查詢差 1.複雜度高 2.不易做資料重組 1.效率較差 2.須將資料標準化

105 1-8資料庫的設計 一個功能完整及有效率的資訊系統,它的幕後最大工程,就是資料庫系統的協助。因此,在設計資料庫時必須經過一連串有系統的規劃及設計。但是,如果設計不良或設計過程沒有與使用者充份的溝通,最後設計出來的資料庫系統,必定是一個失敗的專案。此時,將無法提供策略者正確的資訊,進而導致無法提昇企業競爭力。

106 資料庫設計程序 在開發資料庫系統時,首要的工作是先做資料庫的分析,在做資料庫分析工作時,需要先與使用者進行需求訪談的作業,藉著訪談的過程來了解使用者對資料庫的需求,以便讓系統設計者來設計企業所需要的資料庫。其資料庫設計程序如下圖所示。

107 1.資料庫需求收集與分析 【目的】 是指用來收集及分析使用者的各種需求。
【方法】(1)找出應用程式的使用者。 <一般使用者、管理者>     (2)使用者對現有作業之文件進行分析。 <人工作業時填寫的「輸入表格」及「輸出報表」>     (3)分析工作環境與作業需求。 <是否有網路連線的環境或輸入是否要利用自動輸入的 條碼自動輸入或RFID掃瞄>     (4)進行問卷調查與訪談。 <事先上網查詢相關專案的問題或實地訪談來收集需求> 【分析工具】 <屬於「系統分析」的範疇> 1.常見有DFD(Data flow diagram) 2.HIPO(Hierarchical Input Process Output)等工具。

108 2.資料庫概念設計 【目的】描述資料庫的資料結構與內容。 【方法】概念綱目(Conceptual Schema)設計
<主要在檢查從第一個階段所收集的資料,利用ER模式 產生一個與DBMS無關的資料庫綱要> 【產出】概念綱目(Conceptual Schema)即實體關係圖(ERD)。 在需求訪談過程中,資料庫設計者會將使用者對資料的需求製作成規格書,這個規格書可以是用文字或符號來表達,然而,設計者會以雙方較容易了解的圖形符號形式的規格書來呈現,並輔助一些詳盡描述的說明文件。圖形符號的規格書有許多種方法表現,一般最常被使用的就是E-R圖(Entity Relationship Diagram,又稱實體關係圖)。

109 3.選擇資料庫系統 在此階段中,必須要先評估經濟上及技術上的可行性分析。 1.經濟上可行性分析: 2.技術上可行性分析:
是指針對企業規模方面來分析,如果是大企業在開發資訊系統的經費較高時, 我們就可以提供功能完整的資料庫系統。例如:Oracle 或SQL Server。 但是,對於小企業可能會要求Free的資料庫管理系統。例如: MySQL。 2.技術上可行性分析: 當大企業要使用Oracle資料庫管理系統時,則必須評估是否有DBA人才 來設計與維護。 【目的】選擇最符合企業組織所需要的資料庫管理系統 【方法】利用可行性分析,包括經濟上及技術上之可行性。 【產出】可行性報告書

110 4.資料庫邏輯設計 在收集及分析使用者的各種需求並利用繪製成實體關係圖(ERD)(亦即概念資料模型)之後,接下來,就是要選擇用什麼「資料庫模型」來表達這些「概念資料模型」,也就是說,如何去設計資料庫,這個階段一般又稱為「資料庫邏輯設計」階段。 在這個階段中,我們必須要先決定用哪一種資料庫模型來表達我們先前所建立的ERD圖,資料庫模型的種類包括:階層式、網路式、關聯式及物件導向等資料模型。 本章將以目前較普遍的關聯式資料模型來做為資料庫設計階段的資料表現。

111 4.資料庫邏輯設計<續> 【目的】將「實體關聯圖(ERD)」轉換成「關聯式資料模型」
【方法】1.資料庫正規化(ch4會詳細介紹) 2.ER圖轉換成對應表格的法則(ch3-6會詳細介紹) 【產出】關聯表(DDL) 【說明】在邏輯設計階段中,只需考量資料表之間的關聯性(1:1, 1:M, M:N)、 正規化(第一階到第三階,最多到BCNF)以及相關主鍵、外鍵及屬性等。

112 4.資料庫邏輯設計<續> 【舉例】
下面表示式是用來將「客戶」與「訂單」一對多關係的ER圖轉換成關聯式資料模型的表示方式,其中在多關係一方的「訂單」表中必須再加上「客戶編號」欄位(即所謂Foreign Key外來鍵)來連接單一關係的「客戶」表。 我們在關聯式資料模型的關聯表中,主鍵欄位會加上底線,而外來鍵欄位會加上虛線的底線。

113 5.資料庫實體設計 【目的】描述儲存資料庫的實體規格,以及資料如何有效存取。 【方法】 SQL與程式語言結合
【產出】實體綱目(Physical Schema)亦即真正的記錄。 【說明】 資料庫邏輯設計雖然定義了資料結構(DDL),實際上並沒有儲存任何資料,實體設計則必須要考量採用何種儲存檔案結構、儲取方法及儲存的輔助記憶體設備。

114 1-9 資料庫系統的架構 在前一章節中,我們完成「資料庫的設計」之後,接下來,就會要決定用那一種資料庫系統的架構最有效率,亦即讓使用者方便來存取資料庫中的資料。基本上,資料庫系統的架構可分為四種,每一種架構都有它們的適用時機與優點及缺點。 1.單機架構 2.主從式架構(Client-Server) 3. 三層式架構(3-Tier) 4. 分散式架構(Distributed)

115 1-9.1 單機架構 【定義】是指資料庫系統與應用程式同時集中於同一台主機上執行。 【適用時機】沒有網路的環境或只有一台主機的情況。
單機架構 【定義】是指資料庫系統與應用程式同時集中於同一台主機上執行。 【適用時機】沒有網路的環境或只有一台主機的情況。 【架構圖】

116 1-9.1 單機架構<續> 【優點】資料保密(Data Security)性高。 【缺點】
單機架構<續> 【優點】資料保密(Data Security)性高。 【缺點】 1.資料庫系統不易與組織一起成長,亦即中大型公司無法適用 (因為小公司逐漸成長為大公司時,其部門就會增加,而各個部門 要使用相同的資料庫)。 2.資料無法分享。 3.容易造成資料的重複 (如:「教務處」與「學務處」的學籍資料要獨立的輸入) 

117 1-9.2主從式架構(Client-Server)
【定義】 是指資料庫系統獨立放在一台「資料庫伺服器」中,而使用者利用本機端的應用程式,並透過網路連接到後端的「資料庫伺服器」。 【適用時機】 區域性的網路環境,亦即公司內部的資訊系統的資料庫架構。 【架構圖】

118 1-9.2主從式架構(Client-Server)<續>
【優點】 1.避免資料的重覆(Redundancy) 亦即相同的資料,只要輸入一次即可。例如:學校只要建立「學籍資 料」就可以同時提供給「教務處」與「學務處」的使用。 2.達成資料的一致性(Consistency) 亦即透過資料集中管理,來避免資料重覆,進而達到資料的一致性。 3.達成資料共享(Data Sharing) 亦即透過資料集中化的機制來分享給相關部門的使用者。 【缺點】 更新版本或修改時,必須要花費時間較長。 因為使用者的本機端的應用程式都必須要一一重新安裝。

119 1-9.3 三層式架構(3-Tier) 【定義】 是指資料庫系統獨立放在一台「資料庫伺服器」,並且應用程式也獨立放在一台「應用程式伺服器」,使用者只要使用瀏覽器就可以透過網際網路連接到「應用程式伺服器」,再透過網路連接到後端的「資料庫伺服器」來取存資料。 【架構圖】

120 1-9.3 三層式架構(3-Tier)<續>
【適用時機】 全域性的網路環境(網際網路),亦即公司內部提供給外部使用者 來存取的資料庫架構。 【優點】除了「主從式架構」的優點之外,還具以下優點: 1.資料分享的範圍為全球性。 2.更新版本非常快速。因為只需更新「應用程式伺服器」即可。 【缺點】 1.伺服器的負荷加重。因為服務的對象是全球性的使用者。 2.安全性問題。因為服務的對象是全球性的使用者,因此,有可能 成為網路駭客攻擊的對象。

121 1-9.4 分散式架構(Distributed) 【定義】 【架構圖】 分散式架構是主從式架構的延伸,亦即當公司規模較大時,則各
部門分佈於不同地區,因此,不同部門就會有自己的資料庫系統需求。 【適用時機】公司規模較大。 【架構圖】

122 【優點】 1.資料處理速度快,效率佳。 2.較不易因使用者增加而效率變慢。 3.達到資訊分享的目的。 4.適合分權式組識型態。 5.整合各種資料庫。 6.適應組織成長需要。 7.利用資訊分享來減少溝通成本。 8.平行處理以增加績效。 9.整合異質電腦系統(即不同廠牌,不同硬體) 10.減少主機的負荷。 【缺點】資料分散存在,容易造成資料不一致的現象。


Download ppt "課程名稱:資料庫系統 授課老師:李春雄 博士"

Similar presentations


Ads by Google