資料庫系統概論:第 二章 資料庫系統簡介 下一頁 |
第二章 資料庫系統簡介 2-1 資訊庫與資訊系統
在真實環境理,『資料』(Data)可說是最困難處理的東西,譬如醫院裡的病歷表、書局的圖書目錄、材料店的零件目錄、甚至個人的電話簿、、等等。如果僅有數百筆資料,我們要從中搜尋、更新、增加或刪除其中一筆資料可能不會很困難,但當它成長至數千、數萬、甚至數百萬筆資料之後,我們要管理這些資料可不是那麼容易了。 另外,資料如果僅做搜尋、更新、增加等等管理工作,可能辛苦一點慢慢用人工去達成還可以,但要做一些統計分析的工作就有困難了。譬如我們要找出每個月到某家醫院看診 3 次以上的病人的資料,或這個月哪幾本書的最暢銷,或想找出姓張的、又住在鳥松鄉朋友的電話,…,等等諸如此類的查詢動作,如果要用人工來達成可能需耗費許多精神,也不容易達成。 隨著人民生活越來越複雜,所產生或需要的資料越來越多,我們希望由資料中萃取資訊越來越精細且準確,因此需要一套電子化系統來歸納與管理資料,這就是『資料庫』(Database)。 乍看起來,資料庫好像一套電子化檔案櫃,它有系統的收集資料,並起歸納成各個檔案的功能,讓使用者能容易的管理龐大複雜的資料,資料庫好像是真實環境的輔助設備而已。沒錯,30 年前的資料庫設計是想盡辦法讓所有人工操作轉換成資訊化環境,如圖 2-1 所示。但目前世界裡幾乎都是資訊化的環境,大多先規劃出資訊化處理模式,再依照此模式實現在真實環境裡,如圖 2-2。如何設計資訊化處理模型,則必須由基礎的資料庫模型設計開始,這也是我們學習資料庫的最主要動機。 既然這樣,資料庫的設計不再是被動滿足真實環境所需,而是建構新的操作模型來帶動真實環境的運作,如此看來,資料庫模型的設計就顯得非常重要。但入門者,還是先從模擬真實環境的設計開始,才能完全了解資料庫模型。
圖2-1 真實環境轉換成資訊化處理
圖 2-2 真實環境實現資訊化處理模型 2-2 資料庫系統簡介 2-2-1 資料庫系統架構 簡單的說,『資料庫』就是一個電子化的檔案櫃,但它需要管理工具來處理它,這就是『資料庫管理系統』,整個資料庫系統如圖 2-3 所示,它可區分為關個單元,分別介紹其功能:
圖 2-3 資料庫系統架構 2-2-2 資料庫 表示真正儲存資料的地方,但資料可能有上萬或上千萬筆資料。如需要由大量資料中查詢、更新、或插入某一筆資料,是很困難的工作。為了能在千萬筆資料中快速搜尋到某一筆資料,對資料儲存方式就非重要。如果儲存時排列得恰當,搜尋時也許會比較快。譬如,一大堆學生資料(如 n 筆),如果沒有排列整齊的話,我們可能要一個接一個比對才可以找到,運氣好第一筆就找到,運氣不好可能找到最後(第 n 個)才找到。簡單的方法,我們依照學號順序排列,找某一筆資料的速度就會快很多。排列儲存方法就是所謂的『資料結構』。 什麼方法排列可以最快速找到資料,這是很高的學問,也牽涉到資料庫系統的優劣。當然啦! 越昂貴的資料庫系統排列方法越複雜,速度越快,但也相對應需浪費許多儲存空間,較常看見的方法是陣列式順序排列、樹狀(Tree)、B Tree 或 B+ Tree 等等資料結構方法。本書限於課程進度,並無法一一介紹這些資料儲存方式,請有興趣讀者參考其他書籍。 2-2-3 資料庫綱目 決定好資料儲存方式(資料結構)之後,雖然可依照此模式來儲放資料,但還是須限制資料的型態如何。譬如某一筆資料 age,他表示年齡,因此僅能夠用整數或浮點數表示,絕不可以字串。或者 addree 表示地址,則一定要用字串表示。不僅這樣,有些資料還要限制它的範圍,譬如 tall 代表身高,雖然可用浮點數表示,但還要限制它在 30 ~ 250 公分以內,如果該筆資料有 400 公分就成為笑話。 所以我們需要一套方法來規定資料格式,這就稱為『資料庫綱目』(Database Schema),我們定義好資料綱目之後,儲存資料庫的東西就不可以違背此規定,這就能保持資料的正確性(或稱完整性)。一般資料庫管理系統(DBMS)會自動檢查資料是否違背限制原則,當輸入不符合格是資料時,他會拒絕。 2-2-4 資料存取軟體 定義好資料庫儲存(資料結構)方式與資料綱目之後,就必須研議一套存取方法,並將它做成一個套件,透過這套軟體就可容易的存取資料庫的資料。各種資料結構模式,它們的搜尋、插入、更新方法都不一樣,更何況還加入資料綱目的限制,就顯得非常複雜。不僅這樣,資料庫大多有上千萬筆資料,要從中尋找一筆資料的話,大多需將整個資料庫倒入記憶體內搜尋,很不幸記憶體可能儲放不了(資料太大),這時候要如何切斷搜尋,又是一件困難的工作,這都與資料庫設計有關。 由此可見,資料庫、資料綱目與存取軟體這三樣東西都與硬體架構有關,甚至與資料庫原始設計方法息息相關。各家廠商所設計方法都不一樣,價格也不一樣。簡單的說,越複雜的架構可以儲存越多資料,越簡單便宜的架構只可以儲存較少的資料。譬如,Access 個人資料庫套件,操作起來與大系統的資料庫(如 SQL Server)差不多,如果儲存資料不多話,兩者幾乎沒有甚麼差別,但如果存放上萬筆之後,兩者的查詢速度就會差很多。 2-2-5 SQL資料查詢工具 各家資料庫廠商都會提供資料的存取工具,來操作資料庫系統。但為了方便使用者,OSI 協會制定一套標準介面,透過此介面就可以查詢與管理不同廠家的資料庫,這就是 SQL(Standard Query Language)。當然,如何將資料庫存取軟體轉換連結到 SQL 語言操作,這是各家廠商必須提供者。對於一般使用者而言,只要認識 SQL 語言的操作方法,而可以不用理會資料庫儲存方式(即是資料結構),如何限定資料格式(資料綱目),甚至它的硬體與軟體架構如何,就可以隨意操作資料庫。 在圖 2-3 中,我們將系統的存取軟體與 SQL 查詢工具整合稱之為『資料庫管理系統』(DBMS),透過它,我們可以操作任何資料庫,而不論資料庫的大小(譬如 MySQL、SQL Server、、),第 2-5 節再詳細介紹它有哪些管理功能。 2-2-6 SQL 嵌入應用程式 僅利用 SQL 語言工具來查詢或管理資料庫系統,會感覺到非常不方便,如果我們將這些 SQL 命令植程式語言當中,或是編寫應用程式時,將 SQL 命令植入其中,如此來管理或應用資料庫就可以方便許多,這就是『資料庫程式設計』。植入 Visual Basic 或 C就是 VB.Net,或 PHP + MySQL 等等。 當然啦 ! 『資料庫系統』就是上述這些功能套件的整合體。 |
翻轉工作室:粘添壽
資料庫系統概論(含邏輯設計)
翻轉電子書系列: |