B-1.1資料庫系統的組成
B-1.1.1資料庫(Database)
1.定義
(1)資料庫是儲存資料的地方。資料庫是由一群相關資料的集合體。
(2)一個資料庫系統中可以有多個資料庫,每個資料庫可存放多個電子檔案(File)。
2.使用資料庫的好處
(1)資料安全性(Security):資料庫管理者負責維護管理。
(2)降低資料重複性(Redundancy):正規化(Normalization)。
(3)資料一致性(Consistency):利用關聯式資料庫的外來鍵(Foreign Key; FK)連結關聯表。
(4)資料共享性(Sharing):透過資料庫系統的SQL(Structured Query
Language)/DML(Data Manipulation Language)與同步控制(Concurrency Control)機制,來新增、更新、刪除及共享資料。
(5)資料完整性(Integrity):利用整合性規則,檢查錯誤及不合法的資料值,確保資料正確。
(6)資料獨立性(Independent):每一項資料都具有獨立性,資料結構和存取方法是固定的。
(7)性能優越性(Superiority):以最短存取時間迅速回應各項需求。
(8)標準化(Standardize):透過資料集中化及存取介面標準化來達成。
(9)降低成本(Cost):無紙作業(Reduce Paper),有效利用空間。
B-1.1.2資料庫管理系統(Database Management
System,DBMS)
1.資料庫管理系統是管理資料庫的軟體,使用者與資料庫間的溝通介面,使用者可以透過資料庫管理系統來做資料的新增、更新、刪除、查詢及列印等功能。
2.常見的資料庫管理系統有Microsoft Access、Microsoft SQL Server、IBM DB2、Oracle、Sybase、Informix、MySQL、MySQL MaxDB、PostgreSQL。
B-1.1.3應用程式(Application)
1.應用程式是自行開發的使用者介面,提供簡單且人性化的操作介面。
2.應用程式必須透過資料庫管理系統才能存取及管理資料庫內的資料。
B-1.2資料庫系統的使用者
B-1.2.1資料庫管理者(Database Administrator,DBA)
1.定義資料庫的內容、結構及權限控制。
2.協助使用者使用資料庫,授權不同使用者存取資料。
3.維護資料安全性及資料完整性。
4.資料庫備份、回復及並行控制作業處理。
5.提高資料庫執行效率,滿足使用者的資訊需求。
B-1.2.2應用程式設計者(Application Designer)
1.負責撰寫使用者操作介面的應用程式,讓使用者透過簡單的操作介面來使用資料庫。
2.開發應用程式的語言有C、C++、PASCAL、Visual Basic、JAVA、C#等。
B-1.2.3一般使用者(End user)
經常操作應用程式存取資料的使用者,若遇到問題,可請資料庫管理者處理。
B-1.3儲存資料結構
位元(bit)→位元組(Byte)→欄位(Field)→資料錄(Record)→資料表(Table)→資料庫(Database)→資料倉儲(Data Warehouse)
B-1.4資料庫系統ANSl/SPARC架構
B-1.4.1層次
外部層 (External Level) |
1.個別使用者觀點。 2.使用者以查詢為主。 |
概念層 (Conceptual Level) |
1.全部使用者觀點。 2.資料庫中全部的基底表格內容。 |
內部層 (Internal Level) |
1.內部儲存方式觀點。 2.資料庫的實體架構。 |
B-1.4.2採用好處:使資料庫管理系統具有資料獨立性(Data Independent)。
邏輯資料獨立(Logical data independence) |
當概念層次結構改變時,不會影響外部層次。 |
實體資料獨立(Physical data
independence) |
當內部層次結構改變時,不會影響外部層次。 |
B-1.5資料庫的類型
B-1.5.1階層式資料庫(Hierarchical Database)
1.由上而下(Top-down)的樹狀(Tree)結構,將資料分門別類儲存在不同的階層下。
2.由根(Root)往下存取資料。
3.適用於大量資料與固定查詢的系統。
4.優點
(1)應用於一對多(l:M)或一對一(1:1)的資料結構。
5.缺點
(2)無法表示多對多的關係。
(3)無法因應突然的資料需求。
B-1.5.2網路式資料庫(Network Database)
1.階層式資料庫的擴充,可將每筆記錄視為一個節點,建立節點與節點間的關聯,形成一個複雜的網路架構。
2.優點
(1)提供多對多(M:N)關係。
(2)存取有效率,避免階層式資料庫的資料重複問題。
(3)提供實體資料獨立。
3.缺點:關聯比較複雜,維護不易。
B-1.5.3關聯式資料庫(Relational Database)
1.關聯式資料庫是以二維矩陣將資料儲存在表格的行、列之中。
2.儲存在資料表行、列會有關聯,資料表之間也會互有關聯。
3.優點:
(1)節省記憶體空間:相同的資料,不須重複輸入,節省儲存空間。
(2)提高行政效率:資料不須重複輸入,節省輸入時間。
(3)達成資料的一致性及完整性。
4.常見的關聯式資料庫管理系統有Access、Microsoft SQL Server、MySQL、Informix、PostgreSQL、SyBase等。
B-1.5.4物件導向資料庫(Object-Oriented Database)
1.物件導向資料庫是以物件導向方式來設計資料庫,包含物件的屬性、方法、類別、繼承等特性。
2.常見的物件導向資料庫管理系統有Computer Associates公司的Jasmine、Eastman Kodak公司的Alltalk、Servio公司的GemStone、O2 Technology的O2等。
3.以關聯式資料庫為主,再於其上架設物件導向資料庫,如PostgreSQL。
B-1.6資料庫系統的處理架構
單機架構 |
1.利用一台電腦完成所有的工作,包含使用者存取資料、DBA管理及維護等。 2.適用於使用者少且資料量不多的環境,例如小公司或個人使用者建立的資料庫。 |
大型主機/ 終端機架構 |
1.由一台大型主機負責儲存及處理資料,所有的用戶端只能透過鍵盤及終端機傳送和顯示大型主機的訊息,沒有處理資料能力,。 2.優點:主機完全掌控系統的資源,所有管理及維護工作只要針對主機即可,環境較單純。 3.缺點:只有一台主機,連線的使用者增加,處理工作增加,會降低執行效率。 4.大型主機的價格很昂貴,適用於大型機構。 |
主從式架構 (Client/Server) |
1.基於分工原則,利用一台處理效能較強的電腦做為主機,來維護資料庫及處理使用者提出的需求;利用使用者的個人電腦分擔主機的部分工作。 2.不需購置大型主機。 |
分散式架構 |
1.利用數台資料庫伺服器來處理使用者的連線。 2.分散在各地的分公司或是總公司的各部門,基本上,資料都是各自獨立在各處。 |
※Access是小型的資料庫管理系統,適用於單機架構、主從式架構、分散式架構。
※資料庫的ACID特性:不可分割性(Atomicity)、一致性(Consistency)、隔離性(Isolation)、持久性(Durability)。
B-1.7正規化
正規化之目的 |
1.降低資料重複性。 2.避免資料更新異常。 3.提升儲存資料與資料庫操作效率。 |
正規化資料庫的特性 |
1.欄位唯一性:每個欄位只儲存一項資料。 2.主關鍵欄位:每筆資料都擁有一個主鍵。 3.功能關聯性:欄位之間的關聯要明確。 4.欄位獨立性:欄位之間不應存在遞移相依。 |
正規化形式 |
第一正規化(1NF):要求資料庫的每個欄位只能存放單一值,而且每筆紀錄都能利用唯一的主鍵來加以識別。 ※處理多值屬性問題。 |
第二正規化(2NF):要求資料表裡的所有資料都要和該資料表的鍵(主鍵與候選鍵)有完全依賴關係。如果有資料只和主鍵的一部分有關,則獨立成另一個資料表。如果一個資料表的主鍵只有單個欄位,就一定符合第二正規化。 ※去除資料間的部分相依性。 |
|
第三正規化(3NF):要求所有非主鍵屬性必須和每個候選鍵有直接相關性,也就是非主鍵屬性之間應該是獨立無關的。 ※處理遞移相依問題。 |
|
Boyce-Codd正規化(BCNF):任何一個BCNF必然滿足: 1.所有非主屬性都完全函式依賴於每個候選鍵。 2.所有主屬性都完全函式依賴於每個不包含它的候選鍵。 3.沒有任何屬性完全函式依賴於非候選鍵的任何一組屬性。 |
沒有留言:
張貼留言