• 沒有找到結果。

第一單元 網頁資料庫程式設計

N/A
N/A
Protected

Academic year: 2021

Share "第一單元 網頁資料庫程式設計"

Copied!
21
0
0

加載中.... (立即查看全文)

全文

(1)

南 臺 科 技 大 學 資 訊 工 程 系 李 育 強 助 理 教 授 1

第一單元 網頁資料庫程式設計

2

第一章 資料庫簡介

(2)

章節大綱

3

1-1 前言

1-2 資料庫簡介

1-3 資料庫管理系統

1-4 資料庫系統架構

1-1 前言

4

資料庫在資訊系統中佔有重要地位。

資料庫的使用

資料量快速增加,管理時所需人力增多。

資料需被完整保存及保護,不得非法存取。

網頁資料庫學習入門:在此以PHP&MySQL為主。

選PHP原因:免費、來源多、支援多。

(3)

1-2 資料庫簡介

5

檔案(File)與資料庫(Database)是數位資訊處理 的重要元素。

檔案:將資料利用儲存媒體組織起來。

資料庫:由一群相關資料(資料集Data set或資料表 Data table)所形成的集合。

透過資料庫所記錄的資料,可得知所記錄資料的內容 及其隱含的意義。

資料庫隱含的特性:

呈現真實世界的觀點。

資料在邏輯上相關。

為特定目的所設計、建立。

6

檔案系統的缺點

資料重複、不一致

資料分離

應用程式相依

完整性問題

資料安全問題

資料庫系統的優點

降低資料重複及不一致

並行控制

資料永久性

存取權限控制

(4)

檔案系統與資料庫的組成

7

檔案系統的組成:

位元(Bit)。

位元組(Byte)。

字元(Character)。

欄位(Field)。

紀錄(Record)。

檔案(File)。

檔案系統(File system)。

資料庫的組成:

檔案系統+系統目錄+索引。

資料庫系統的組成

8

資料庫系統(Database

system):數位化的資料儲存 系統。

資料庫系統的組成包含:

資料:資料庫系統最重要的部份,存 放在資料庫以供查詢使用。

硬體:資料的儲存設備或是用來執行 資料庫系統軟體的設備 。

資料庫 系統 資料庫管

理系統 資料庫

檔案系

(5)

資料庫系統表示圖

9

1-3 資料庫管理系統

10

資料庫管理系統:讓使用者可建立、維護資料庫的程 式集合。

資料庫管理系統的邏輯架構:

展現邏輯層(Presentation logic layer)。

商業邏輯層(Business logic layer)。

資料存取邏輯層(Data access logic layer)。

資料邏輯層(Data logic layer)。

(6)

中介軟體(1)

11

資料存取邏輯層中所分割出來 的中介層。

降低開發者面對不同的資料庫 管理系統時,所面臨的複雜存 取資料庫方式。

中介軟體(2)

12

減少需學習不同資料庫管理系 統語言的時間。

透過共同的SQL語言

(Structured query language,

結構化程式語言),很容易在 不同的資料庫間進行資料存取。

(7)

資料庫管理系統的優點

13

1控制重複。

2限制存取權限。

3提供有效率的處理及查詢之儲存結構。

4提供備份與回復。

5提供多種使用者介面。

6表示資料間關係。

7完整性限制。

8其他好處。

1控制重複

14

同一筆資料在不同單可能會被重複覆建立,如果多筆 資料重覆建立,所佔空間會變得非常可觀。使用資料 庫管理系統將可避免此種現象。

此外,資料重複會有以下問題:

對重複記錄的資料更新,需同時更新多個重複記錄的地方。浪 費時間,出錯機會變大。

同一筆資料重複儲存會浪費儲存空間,在大型資料庫中更形嚴 重。

重複的資料其內容並不一致。

(8)

2限制存取權限

15

舉例來說,一般帳號的權限只能看自己的資料,但管 理員可以看所有帳號的資料。為的是保護資料安全。

如果一般帳號可以任意觀看其他帳號資料那就會有網 路安全問題。

一般而言,資料庫管理系統會有個人帳戶及群組分類。

個人帳戶可加入數個群組,可經由群組的權限設定,

同時對一群人做權限變更。

完整的資料庫管理系統,應包含安全性與存取權限的 管理機制。

3提供有效率的處理及查詢之儲存結構

16

資料庫管理系統因資料庫較龐大,資料主要儲存在磁 碟系統中,需提供良好的資料結構,以加速磁碟搜㝷、

儲存的效率。

查詢處理與最佳化可以針對每一個查詢動作選擇一個 有效率的搜尋去做。

資料庫管理師需選擇建立哪些索引並維護,以調校資 料庫效能。

(9)

4提供備份與回復

17

資料庫管理系統應有簡單的軟硬體故障回復之能力。

其中的備份與回復子系統便是負責用來做故障回復。

提供備份機制。

在交易資料庫系統中,執行更新交易時系統發生故障,

回復子系統應該要有能力確保能還原到交易前的狀態。

5提供多種使用者介面

18

使用者的喜好不同且知識技能程度不一。資料庫管理 系統需提供各種不同的使用者介面給使用者,例如:

包括查詢語言、表單、報表、功能表等介面。圖形使 用者介面(Graphical user interface)更是友善操作 介面的利器,現在已非常普遍。更有提供網頁式的圖 形使用者介面。

(10)

6表示資料間關係

19

一個資料庫可能有很多種相關的資料,彼此儲存於不 同的資料表,而資料間不完全是獨立不相關。管理資 料庫系統要有能表示資料間關係的機制,如此,才能 有效率地處理資料。

7完整性限制

20

完整性限制可用來確保資料庫中資料的品質。

實體完整性:實體完整性將定義資料表中的特殊欄位作為特定 資料表的唯一實體。透過惟一值索引不能有空值的存在。

值域完整性:

資料型態限制:每一種資料型態都有儲存記錄的位元數或長度限制。針對 不同資料需使用適合的資料型態來儲存,以免浪費儲存空間。

條件約束:定義欄位的檢查規則,以判斷所輸入或更新的資料是否被允許。

參考完整性:參考完整性是指相關資料表間的維護關係。指該 資料表中的外部索引鍵需能參考到被參考之資料表中的資料。

(11)

8其他好處

21

使用規則進行推理:從已有的資料中透過推論規則,導出新的 資訊。

觸發條件執行:發生指定的事件時,自動執行。

強制符合標準:訂定使用者所要遵守的標準或規則,便以彼此 溝通及合作。

減少應用程式開發的時間:一開始的資料庫規劃與設計非常花 時間,但是一旦開始運作之後,建置於同一資料庫管理系統的 同一資料庫下之應用程式則只需花費很少的時間。

彈性:資料庫管理系統允許資料庫做結構的修改,資料的變化 很彈性。

可使用到最新的資訊:資料庫管理系統可以讓使用者看到目前 最新的資料情況。

經濟效益:資料統一後,各部片溝通變得更加方便且快速,符 合經濟效益

1-4資料庫系統架構

22

1.資料模型。

2.資料庫系統三層綱要架構。

3.分散式處理與主從式架構。

4.資料庫管理系統的分類。

(12)

1資料模型

23

資料模型:可表示所要儲存資料的資料型態、相關關 聯、限制並可包含一組處理資料庫的運算。可將資料 透過模型予以抽象化。

資料模型分類:

概念資料模型(高階資料模型)。

邏輯資料模型(實作資料模型)。

實體資料模型(低階資料模型)。

2資料庫系統的三層綱要架構(1)

24

在完整的資料庫系統中,主要由較低階的檔案系統所組成,以 及一些管理檔案系統的軟體。目的在讓使用者可以在使用及管 理上十分方便。

好的資料庫系統應該在資料庫系統依其功能來分層,以減輕既 要處理低層次檔案問題又要設計使用者介面…等複雜事務。

一般為三層綱要架構:內部層、概念層、外部層。

將功能分工後可降低彼此間的相依程度,並透過對應關係彼此 溝通,以便分層間轉換。可避免任一層的結構改變去影響到另 一層,達到層與層之間獨立的特性。

內部層:含內部綱要。主要在處理低階的檔案系統與資料庫之

(13)

2資料庫系統的三層綱要架構(2)

25

概念層:含概念綱要。用來描述整個資料結構,較內部層 高階的概念。不用管底層的儲存方式及位置。以共同的資 料結構,讓外部層來存取。可以表現出資料庫全部資訊的 內容以及其組織結構,可以清楚看出每一筆資料的型態及 限制。可使用「資料定義語言」DDL(Data definition language)建立概念綱要。

外部層:含外部綱要。外部層負責使用者所要資料的呈現 方式。因此,使用者介面很重要。使用者可以是應用程式 或是一般使用者,不同使用者有不同的權限,能看的資料 也不同。故會隱藏不需要或不能顯限的部份,針對個別使 用者而呈現適當的資料。可使用「視域定義語言」VDL

(View definition language)來建立外部綱要。

綱要對映:綱要之間要互相對映。內部層屬作業系統掌控。

其他兩層則為資料庫管理系統所掌控。

2資料庫系統的三層綱要架構(3)

26

修改資料庫系統任一層綱要,不需要修改其他層的綱要,可達 到資料獨立。

資料獨立:

邏輯資料獨立:要修改概念綱要時,不需要修改外部綱要。換言之無需理 會外部層,因為外部層與概念層之間獨立。

實體資料獨立:要修改內部綱要時,不需要修改概念綱要。換言之無需理 會概念層,因為概念層與內部層之間獨立。

在綱要架構中不同的綱要使用不同的定義語言。但目前實作並 非如此區分。

以「資料定義語言」DDL(Data definition language)直接含 蓋內部綱要及概念綱要。

資料的存取則使用「資料操作語言」DML(Data manipulation language)來實作。

(14)

3分散式處理與主從式架構(1)

27

分散式處理

資料庫與資料庫管理系統分散在網路上運作

集中式處理

資料庫與資料庫管理系統集中在同一台電腦上運作。透過終 端機與主機連線,所有的運算與處理全集中在主機上執行。

3分散式處理與主從式架構(2)

28

二層式主從式架構(Client/Server):

由客戶端向伺服端發出要求資料。客戶端包括使用者介面及資 料查詢功能,伺服端則包含了資料庫管理系統處理資料儲存及 控制回復等功能。

(15)

3分散式處理與主從式架構(3)

29

三層式架構:由於二層式主從架構已不夠應付現今網路需 要,因此將商業邏輯獨立於另一部應用伺服器中,而成為 三層式架構。下圖為三層式架構。

n層式架構:依實際情況將各層分成較細的元件,置於不 同的伺服器上的架構。

4資料庫管理系統的分類

30

四種資料庫管理系統分類準則:

依資料庫管理系統所用的資料模型。

關聯式資料庫管理系統。

物件導向資料庫管理系統。

物件關聯式資料庫管理系統。

網路式資料庫管理系統。

階層式資料庫管理系統。

依系統支援人數。

單使用者:一次只能支援一個使用者,多在個人電腦人運作。

多使用者:一次可同時支援多個使用者。

依資料庫分散與否。

集中式資料庫:一般的資料庫都是集中式,集中在同一台主機上。資料庫

(16)

31

分散式資料庫:

同質分散式資料庫:所有的資料庫伺服器皆使用相同的資料庫管理 系統軟體,因此皆有相同的資料模型,操作方式相同。

異質分散式資料庫:資料庫伺服器使用不同的資料庫管理系統軟體。

不同的資料庫管理系統的資料模型不儘相同、操作方式也不儘相同。

因此,需考量不同資料格式的整合問題。

依用途。

一般用途。

特殊用途:

以效能為考量:就必須建立處理速度優先的資料庫管理系統。如:

線上交易系統。

關聯式資料庫管理系統

32

用資料表集合來記錄資料,每一資料表的每一列都是 一筆資料,現今較流行的資料庫管理系統大多是關聯 式資料庫管理系統。

可先分析資料,將各種資料依照資料的特性,存放 在幾個不同的表格中。有相關的表格與表格之間會 有共同的屬性欄位,以便相互連結,稱之為關聯。

此種儲存方式的資料庫,稱之為「關聯式資料庫

(17)

物件導向資料庫管理系統

33

關聯式資料庫的使用較適合應用在一般的文字資料處理之工 商業應用。對於大型二進位物件資料處理的複雜應用較為不 足。

物件導向資料庫管理系統是以物件導向的概念定義資 料庫。同類別的物件可產生相同的結構及行為,並有 繼承的特性。

在使用介面上與物件導向程式語言(如:C++、Java)

能直接溝通。而非關聯式資料庫所使用的SQL語言。

應用程式可透過物件導向程式語言(如:C++、Java)

來處理該資料庫。

物件關聯式資料庫管理系統

34

將關聯式資料庫管理系統增加物件導向資料庫的物件 概念及功能。延伸關聯式資料庫管理系統的功能稱之 為物件關聯式資料庫管理系統。

就算資料有朝向物件化的趨勢,有時還需提供一些關 聯式資料庫管理系統的功能。

因此,物件導向資料庫管理系統與物件關聯式資料庫 管理系統之間的區別將愈來愈小。

(18)

網路式與階層式資料庫管理系統

35

網路式資料庫管理系統:使用過去很重要的網路式資 料模式。現已逐漸淘汰。資料使用網路圖形來連接。

支援多對多關聯。

階層式資料庫管理系統:使用過去很重要的階層式資 料。現已逐漸淘汰。資料使用階層的樹狀結構來表示。

資料間使用父子關係來建立連結。

本章回顧(1)

36

網頁資料庫程式以PHP&MySQL為學習目標。

資料庫在資訊系統中重要任務是把資料永久完整的保存。

檔案系統的缺點

資料重複、不一致

資料分離

應用程式相依

完整性問題

資料安全問題

資料庫系統的優點

(19)

本章回顧(2)

37

檔案系統的組成:

位元(Bit)。

位元組(Byte)。

字元(Character)。

欄位(Field)。

紀錄(Record)。

檔案(File)。

檔案系統(File system)。

資料庫的組成:

檔案系統+系統目錄+索引。

資料庫系統的組成:

資料。

硬體。

軟體。

使用者。

本章回顧(3)

38

資料庫管理系統的邏輯架構:

展現邏輯層(Presentation logic layer)。

商業邏輯層(Business logic layer)。

資料存取邏輯層(Data access logic layer)。

資料邏輯層(Data logic layer)。

資料庫管理系統的優點:

控制重複。

限制存取權限。

提供有效率的處理及查詢之儲存結構。

提供備份與回復。

提供多種使用者介面。

表示資料間關係。

(20)

本章回顧(4)

39

資料庫系統的三層綱要架構:

內部層(內部綱要):使用「儲存定義語言」SDL(Storage definition language)建立內部綱要。

概念層(概念綱要) :使用「資料定義語言」DDL(Data definition language)建立概念綱要。

外部層(外部綱要):使用「視域定義語言」VDL(View definition language)建立外部綱要。

資料獨立性:

邏輯資料獨立、實體資料獨立。

實作上:

使用「資料定義語言」DDL(Data definition language)直接含蓋內部綱 要及概念綱要。

使用「資料操作語言」DML(Data manipulation language)實作資料的 存取。

使用「資料控制語言」DCL(Data control language)處理權限控制的問 題。

本章回顧(5)

40

資料庫管理系統實體架構:

分散式處理。

集中式處理。

主從式架構。

三層式架構。

n層式架構。

以資料模型之資料庫管理系統分類

關聯式資料庫管理系統。

(21)

參考文獻(1/2)

41

Fundamentals of Database Systems 資料庫系統概論

Ramez Elmasri & Shamkant B. Navathe

Pearson

Brief Edition

Database Design, Application Development &

Administration資料庫管理

Michael V. Mannino

Mc Graw Hill

Third Edition

參考文獻(2/2)

42

陳祥輝。資料庫系統理論與實務。旗標。台北市。2 007。

曾守正。資料庫理論與實務。第3版。華泰文化。台 北市。2010。

桂思強。資料庫理論與實務。旗標。台北市。201 2。

參考文獻

相關文件

5、「選課系統資料庫」APP 程式撰寫與分析(8 小時) 6、「雲端電子書城」APP 程式撰寫與分析(8 小時) 7、「多益 TOEIC 單字學習系統」APP

2.熟 悉 Microsoft Windows Server 作 業 系 統 、 Microsoft SQL Server 資料庫伺服器及網 頁伺服器等環境。. 3.具撰寫 JAVA

(二)使用 PHP 語言、MySQL 資料庫與 Apache 伺服軟體開發互

利用 Microsoft Access 資料庫管理軟體,在 PC Windows 作業系 統環境下,將給與的紙本或電子檔(如 excel

利用 Microsoft Access 資料庫管理軟體,在 PC Windows 作業系統環境 下,將給與的紙本或電子檔(如 excel

病歷號 主診斷 藥品5碼 BLOOD WBC執行日 就醫流水號 次診斷1 藥品成份名 BLOOD WBC檢驗值 性別 次診斷2 藥品商品名 HGB執行日. 出生日期 次診斷3 藥品開立日期時間

透過 Java Servlet 程式存取資料庫.

利用 Microsoft Access 資料庫管理軟體,在 PC Windows 作業系 統環境下,將給與的紙本或電子檔(如 excel