人數

2010年7月17日 星期六

資料庫設計


第10章 資料庫設計
1.請說明資料庫系統之演化過程及應用的情形。
【參考答案】:
圖一是資料庫系統的演化歷程,早期在1960年左右,電子資料處理時期,檔案主要是應用在企業的物料、薪資與會計等資訊系統,1970年代起,階層式與網狀資料庫被發展出來,主要是應用在生產、行銷、薪資、財務與會計等作業,1980年代,取而代之是關聯式資料庫,也是目前資料庫的主流,有集中式、主從式資料庫、平行處理資料庫、異質性資料庫或是分散式資料庫系統。同時,資訊處理的作業方式也延伸至網際網路之作業環境,從1990年代起,物件資料庫開始被應用,此時已經從文字、數字的資料型態增加圖片、聲音或影片等多媒體資料,資料庫之應用範圍也擴大至醫療、科學研究與衛星定位系統。
如以上所云,早期的資料庫系統的應用以商業性用途居多,例如企業的薪資、會計、人事、物料與生產方面的資訊處理是主要的應用對象。基本上,資料庫系統提供資料的建檔、更新、刪除、資料搜尋或資料倉儲的功能,資料庫適合的應用場合包括:多人共用的資訊服務、大量資料的儲存與更新、資訊安全的重要程度要求相當高、作業不允許中斷的業務為主要對象,例如生產自動化系統、金融商品服務系統、行動電話作業系統或電子商務等。目前,資料庫的應用已經延伸至下列用途﹕(1)工程科學方面¾太空科學發展計劃、飛機、輪船與汽車設計、生物科技應用性研究之應用等,(2)醫療方面¾病歷與檢驗資料、X光或核子共振照片、生命跡象之監控系統等,(3)通訊方面¾無線通訊、影像傳輸系統與電傳會議等,(4)地理及氣象應用方面¾氣象預測、衛星定位系統或地理資訊系統等,(5)產業經濟方面¾產業資訊、金融自動化與經濟預測等,與(6)電子商務方面¾網路購物、網路金融與宅急便的配送服務等。預測未來資料庫的應用將逐漸朝向個人化之行動資訊系統,例如工作行事曆、網路會議、通訊、學習、音樂與信用交易等,屆時資料庫與個人的日常生活將密不可分,關係更為密切。
一般而言,使用傳統資料檔案的缺點茲敘述如下:(1)資料重複的情形相當普遍¾許多相同的資料紀錄重複出現在不同的檔案,浪費了許多儲存的空間;(2)資料的一致性差¾由於資料檔案彼此相關性高以及處理的順序關係,經常造成資料不完整的現象;(3)資料的隱私性與安全性不佳¾由於缺乏軟體控制系統,而且沒有安全保護措施,許多重要資料無法集中管制,因而產生資料安全管理的問題;(4)系統維護作業不易而且成本高¾由於資料檔案欄位的重複性,當資料發生異動時,各個相關之資料檔都必須逐一加以更新,既費時又費力;(5)使用者自行設計檔案的情形相當少¾作業單位的需求報表必須倚賴專業資訊人員進行程式的撰寫,使用者自行設計檔案的機會很少,尤其是高階主管決策所需之決策資訊往往涵蓋許多業務部門,因此,決策支援系統必須對各部門之檔案進行讀取動作,處理的手續也是相當繁雜;(6)程式撰寫困難且程式設計的生產力較低,由於每一個資訊系統擁有獨立性質之資料檔,若檔案的資料結構稍有變動時,必須進行相關程式的修改作業。








類型
階層式資料庫
網狀資料庫
關聯式資料庫
物件導向資料庫
特性
  • 階層式結構亦稱「樹狀結構」(Tree Structure),它是將一個資料記錄分成數個「段」(Segment),然後按其相互間從屬關係,排成樹狀結構圖。
  • 網狀結構的基本資料單位是資料項目(Data Item),一個或數個資料項目即可組成一個記錄(Record),它與前述的段(Segment)相似。網狀結構就是利用指標(Pointer)將彼此有關的資料予以相互連接起來
  • 表格通常是由資料列與欄所組成的二維矩陣(Two Dimensions Matrix)。
  • 基本上,表格是各自獨立,表格內資料欄位之名稱是不允許重複,沒有資料鏈結,而且主鍵不可為虛無值(Null)。
  • 結合物件導向特性(e.g., 封裝、多型與再用, etc.)與資料庫特性(e.g., 完整性、安全性、耐久性、異動管理、同步控制、備份、回復、調校, etc.)的一種資料庫。」
  • 它主要是利用物件導向資料庫模式與物件導向語言程式的類別(Class)來定義資料庫的結構,類別如同關聯式資料庫的關聯表用來定義資料庫的檔案結構。
優點

  • 概念之簡單性

  • 資料庫的安全性

  • 資料獨立性

  • 資料完整性

  • 良好效率

  • 概念之簡單性

  • 處理多關聯表

  • 資料存取彈性

  • 資料庫完整性

  • 資料獨立性

    • 標準化
  • 概念之簡單性
  • 結構獨立性
  • 設計、實作與管理十分容易
  • 即興式查詢能力強
  • 強大資料庫管理系統(DBMS)
  • 語意能力表達能力佳
  • 良好的視覺表達能力
  • 資料庫完整性
  • 良好的再用性

  • 支援動態行為處理的能力
缺點

  • 實作困難度高

  • 管理不易

  • 缺乏結構獨立性

  • 應用程式設計過於複雜

  • 實務應用的限制

  • 缺乏作業標準

  • 處理語意能力弱

  • 系統複雜性

  • 缺乏結構獨立性

  • 處理語意能力弱

  • 耗用較多的硬體與軟體成本

  • 設計門檻較高,不良設計經常造成資訊作業效能不佳的現象

  • 容易造成資訊孤島後遺症

  • 語意處理能力不佳

  • 缺乏作業標準

  • 資料存取複雜

  • 進入門檻高學習時間較長

  • 系統效能不佳




所謂「資料庫管理系統」(Database Management System, DBMS)是指﹕「一套管理資料庫系統檔案之建立、更新、存取控制等的應用系統。」換言之,資料庫管理系統提供使用者與程式設計師擷取資料庫檔案時、確保資料完整性、控制同步處理、資料庫的備份與建立回復的機制。如圖三所示,DBMS是應用程式與資料檔案的一個中間橋樑,它主要是扮演下列四個功能﹕(1)定義資料庫的邏輯結構與實體結構,(2)儲存、擷取及傳送資料,(3)維持資料的完整性與安全性,與(4)使發生毀損的資料庫重新回復。資料庫管理系統是資料庫系統的核心,使用者須透過它才能取得資料庫的資料,因此,DBMS是使用者與資料庫之間的一個橋樑。
茲將DBMS的作業流程說明如下:(見圖四)假設有一個應用程式欲從資料庫讀取一筆資料記錄,資料庫管理系統須執行以下動作:(1)應用程式呼叫DBMS,並宣告欲讀取資料記錄之名稱與鍵值,(2)DBMS接到應用程式之命令後,從「外部綱目」、「概念性綱目」及「內部綱目」中取得應用程式所需資料記錄之位址與內容,(3)DBMS將控制權交回給操作系統(OS),指示讀取所需要的記錄,(4)作業系統從資料庫中讀取資料,並存放在系統緩衝區(System Buffer Area),(5)DBMS將系統緩衝區的資料轉換成應用程式所需的資料型式,並傳送給應用程式使用,與(6)當DBMS完成以上的各項工作以後,即可將執行結果的資訊送回給應用程式。
類型
階層式資料庫
網狀資料庫
關聯式資料庫
物件導向資料庫
適用對象
階層式資料結構檔案,例如材料表(Bill of Material, BOM)
企業管理資訊系統
企業管理資訊系統
大型資料庫或多媒體資料庫
優點

  • 概念之簡單性

  • 資料庫的安全性

  • 資料獨立性

  • 資料完整性

  • 良好效率

  • 概念之簡單性

  • 處理多關聯表

  • 資料存取彈性

  • 資料庫完整性

  • 資料獨立性

    • 標準化
  • 概念之簡單性
  • 結構獨立性
  • 設計、實作與管理十分容易
  • 即興式查詢能力強
  • 強大資料庫管理系統(DBMS)
  • 語意能力表達能力佳
  • 良好的視覺表達能力
  • 資料庫完整性
  • 良好的再用性

  • 支援動態行為處理的能力
缺點

  • 實作困難度高

  • 管理不易

  • 缺乏結構獨立性

  • 應用程式設計過於複雜

  • 實務應用的限制

  • 缺乏作業標準

  • 處理語意能力弱

  • 系統複雜性

  • 缺乏結構獨立性

  • 處理語意能力弱

  • 耗用較多的硬體與軟體成本

  • 設計門檻較高,不良設計經常造成資訊作業效能不佳的現象

  • 容易造成資訊孤島後遺症

  • 語意處理能力不佳

  • 缺乏作業標準

  • 資料存取複雜

  • 進入門檻高學習時間較長

  • 系統效能不佳

建議在選擇資料庫管理系統時,須考慮以下幾個基本條件:(1)完整的功能而且使用簡單,(2)完整的復原能力,(3)嚴密的資料庫系統之安全與保密的能力,(4)提供相當完整的公用程式或程式庫,(5)軟體公司的技術支援工程師具有維護資料庫的能力,(6)軟體公司提供各種系統文件與教育訓練的服務,(7)資料庫管理系統架構十分完整且程式設計容易,(8)佔用儲存容量不宜太大,(9)購置或租賃的成本可以符合企業本身的需求,與(10)資料庫的擴充及轉換至不同廠牌電腦之可行性。圖六是資料庫的評估與選擇考慮重要因素,主要的評估構面包括:功能、系統、供應商的支援能力、成本與產品等。
比較基準
集中式架構
主從架構(二層或三層以上)
分散式架構
作法
資料庫存放在大型電腦主機
資料庫存放在後台電腦主機
資料庫存放在網際網路之不同電腦主機
作業環境
LAN 
LAN 或Internet
Internet 
適用應用對象

  • 中小型企業資訊系統

  • CAD系統

  • 企業ERP系統

  • 單一量販店庫存管理

  • 百貨公司資訊系統

  • 企業集團資訊系統

  • 便利超商連鎖店經營
  • 量販店庫存管理系統
優點

  • 資料集中管理

  • 安全性佳

  • 良好的作業效能

  • 成本較低

  • 擴充性與彈性較佳

  • 可靠性與可用性佳

  • 擴充性與彈性較佳

  • 區域自主性且共同資料分享
缺點

  • 長期的租賃成本高

  • 大量的使用者作業效能差

  • 安全性有待加強

  • 安全性有待加強

  • 系統複雜化

  • 成本昂貴

  • 維護不易

  • 缺乏作業標準
推論控制是指利用一些推論規則(Inference Rules)檢查作業的合理性與正確性,流程控制是指針對作業程序的流向實施嚴格控制,資料加密是將傳送資料進行加密動作,至對方後再進行解密,圖八是加密系統的作業流程,明文經過加密處理成為密文,傳送至對方以後,再將密文進行解密處理成為明文。事實上,加密或解密是一種演算法(Algorithm),密碼系統有對稱式密碼系統與非對稱式密碼系統兩種作法,所謂「對稱式密碼系統」(Symmetric Cryptosystem)是屬於一種傳統密碼技術,傳送的一方以秘密金鑰(Secret Key)將所要傳送的訊息進行加密,接收一方再將密文利用相同的一把金鑰對此密文進行解密動作。另一種作法稱為非對稱式密碼系統(Asymmetric Cryptosystem),至於常見的一種作法是「公開金鑰密碼系統」,其作法是預先產生兩把金鑰,一把是公開的金鑰稱之為公開金鑰(Public Key)或加密金鑰(Enciphering Key),另一把金鑰是屬於個人私密的資料,稱之為私密金鑰(Private Key),也稱之為解密金鑰(Deciphering Key)。

此外,在執行作業方面可以採用使用者辨識系統、處理程序控制、監視與異動記錄檔的保留等方法。例如啟用資料庫異地備份系統,應用程式必須通過使用權控制(Access Control)的檢查等。有關交易安全方面,可以採用以下五項措施,(1)預防作業¾登入系統的檢查或使用者鑑別以及磁碟映射等,(2)回復機制業¾資料庫完整備份或交易資料差異備份,以及資料庫之復原(Restore)程序,(3)交易程序控制¾兩階段交付或死結防止措施,(4)同步交易控制¾兩階段鎖定、交易時間戮記順序法、多重版本同步控制法等,或(5)稽核作業¾定期或不定期實施稽核,防止駭客入侵或是一些非法存取資料庫的情形發生。
「水平分割」(Horizontal Partition)是進行反正規化的一種作法,它是指:「以共同的欄位值(Column Values)為基準點,將關聯表分割成數個關聯表。」因此,利用水平分割所產生的每一個檔案均具有相同的紀錄結構。如圖十一所示,將 "地區別" 欄位值以 "N"代表北部地區,"S"代表南部地區,"E"代表北部地區,"W"代表北部地區,經過水平分割以後有四個不同地區客戶基本資料檔。一般而言,水平分割的優點是減少資料處理時間與安全性較佳,其理由是資料經過篩選以後,處理的資料量可以大幅度的減少,或是防止不合法使用者侵入與使用資料庫的情形發生,若是資料庫毀損時,資料回復的時間比較短;其缺點是資料的一致性較差,有可能在更新時不同步的緣故,程式設計的複雜度較高,由於水平分割可能佔用數倍的儲存空間,必須增加一些額外儲存空間與處理的時間。
客戶編號
客戶編號
地區別
住址
電話
FAX 
E-MAIL 
客戶等級
客戶編號
客戶編號
"N"
住址
電話
FAX 
E-MAIL 
客戶等級
客戶編號
客戶編號
"S" 
住址
電話
FAX 
E-MAIL 
客戶等級
客戶編號
客戶編號
"E" 
住址
電話
FAX 
E-MAIL 
客戶等級
客戶編號
客戶編號
"W" 
住址
電話
FAX 
E-MAIL 
客戶等級
零件編號
會計
工程
業務
零件編號
會計
零件編號
工程
零件編號
業務
學號
姓名
就讀科系
核准輔修申請代號
申請日期
申請條件
申請日期
學號
學號
姓名
就讀科系
核准輔修申請代號
申請日期
申請條件
申請日期
學號
供應商編號
住址
合約
零件編號
零件說明
供應商編號
零件編號
價格
供應商編號
住址
合約
供應商編號
零件編號
零件說明
價格
倉庫編號
位置
倉庫類型
零件編號
零件說明
倉庫編號
零件編號
倉庫編號
位置
倉庫類型
零件說明







著名RSA公開金鑰加密演算法是1978年由Ron Rivest, Adi Shamir, 與Len Adleman三人所提發展出來,RSA加密演算法是結合數字理論(Number Theory)與質因素發展出來。假設有一對金鑰d與e,分別被用在解密及加密過程中。假設n是一個很大的整數,它是由兩個大的不同質數a和b相乘的結果。其中加密金鑰e是一個隨機選擇的數字,介於1到n之間,並與(a-1)×(b-1)互為質數。若含有明文的區塊p經過pemod n加密,由於mod n運算的執行時間是呈現指數比例增加,因此,要解開被加密過的明文是很困難的。然後解密金鑰d是經過細心的選擇,使得(pe)d mod n=p。因此,解密金鑰d可以從以下公式計算出來﹕d×e=1(mode ((a-1)×(b-1))。因此,d的合法接收者可以依據下列公式計算出來(pe)d mod n=p而解出p,並無必要拆解pe

沒有留言: