820 likes | 954 Views
第十四章 企業資訊管理. 管理資訊軟體是對企業間最有用處的一種軟體,除此之外,一個良好的資料保存環境對於企業資料的維護也非常重要,而此環境正是資料庫系統,在本章中,我們將針對此兩項對企業資訊有關鍵性影響的技術進行討論,並介紹其相關的技術與產品。除此之外,目前最流行的電子商務也在本章中加以介紹。. 第十四章 企業資訊管理. 管理資訊系統是企業重要的資訊管理軟體,而資料庫則是企業儲存資料的良好場所,在本章中,我們將介紹管理資訊系統的定義、種類,以及資料庫及資料倉儲。電子商務是目前新型態的交易模型,在本章的最後,我們將介紹目前常見的電子商務類型。 。. 大綱.
E N D
第十四章企業資訊管理 管理資訊軟體是對企業間最有用處的一種軟體,除此之外,一個良好的資料保存環境對於企業資料的維護也非常重要,而此環境正是資料庫系統,在本章中,我們將針對此兩項對企業資訊有關鍵性影響的技術進行討論,並介紹其相關的技術與產品。除此之外,目前最流行的電子商務也在本章中加以介紹。
第十四章 企業資訊管理 • 管理資訊系統是企業重要的資訊管理軟體,而資料庫則是企業儲存資料的良好場所,在本章中,我們將介紹管理資訊系統的定義、種類,以及資料庫及資料倉儲。電子商務是目前新型態的交易模型,在本章的最後,我們將介紹目前常見的電子商務類型。。
大綱 • 14.1 管理資訊系統 • 14.2 企業的資訊技術應用 • 14.2.1 電子資料處理(EDP;Electronic Data Processing) • 14.2.2 專家系統(ES;Expert System) • 14.2.3 決策支援系統(DSS;Decision Support System) • 14.2.4 電腦整合製造(CIM;Computer Integrated Manufacturing) • 14.2.5 資源管理與規劃 • 14.2.6 電子商務整合管理 • 14.2.7 知識管理系統 • 14.3 企業資料管理(資料庫與資料倉儲) • 14.3.1 資料庫系統與資料庫管理系統 • 14.3.2 關聯式資料庫(Relational Database) • 14.3.3 Access資料庫應用實例 • 14.3.4 資料倉儲 • 14.4 企業資訊應用-資料探勘 • 14.5 電子商務 • 14.5.1 依服務內容分類 • 14.5.2 依交易平台分類 • 14.5.3 依交易雙方分類
14.1 管理資訊系統 • 管理資訊系統(Management Information System;簡稱MIS;也有人翻譯為資訊管理系統)是一種人機整合系統,它提供資訊以支援組織的日常作業、管理以及決策活動。這一類的系統使用到電腦硬體、電腦軟體、作業程序、企業問題模式及資訊庫等科技。MIS依據Golden B.Davis的定義如下: • Golden B.Davis認為MIS是: • 1.人機整合的系統。 • 2.支援例行作業及管理決策等活動。 • 3.存在一個組織中,用來提供資訊。 • 從定義之中,又可以整理出MIS是由下列元件所組成的: • 1.電腦軟體。 • 2.電腦硬體。 • 3.人工作業程序以及人。 • 4.資料庫。 • 5.一個可用來做分析、規範、控制等決策活動的運作模型。
14.1 管理資訊系統 • 事實上,資訊管理系統的定義尚未統一,每一位專供於資訊管理系統的學者都有其本身所認定的定義,其中,筆者最欣賞的定義是台灣科技大學資管系的盧希鵬教授所下的定義,它從企業管理者、資訊管理者與系統管理者三方面進行分析,如下敘述(ref http://www.iicm.org.tw/communication/c1_1/page05.html): • 對『企業管理者』而言,管理資訊系統包括企業各個管理功能(如生產,行銷,財務等資訊系統)的橫向劃分,同時也包函了策略、管理、知識、與作業四個階層的縱向劃分。對於企業管理者而言,功能及效能是比較在意的項目,他重視的是系統的表達(例如報表的內容),至於系統底層的設計則不感興趣。 • 對『資訊管理者』而言,他們最關心的是資料庫的設計與管理,以應付企業管理者隨時改變的資訊需求。 • 對於『系統管理者』而言,他著重在系統的發展,因此他比較注重的是軟硬體如何設計、使用者需求如何分析、如何透過電腦將使用者需求實作為合適的系統。 • 事實上管理資訊系統是結合了管理、資訊與系統等三大領域發展而成。所需要的人才必須瞭解電腦技術,也必須掌握管理技巧,這種特性正是資訊管理系的最主要特性。
14.2 企業的資訊技術應用 • 隨著不同行業別的企業,資訊管理系統也以不同的面貌出現,並發展出許多種類的系統,在本節中,我們將介紹幾種常見的資訊管理系統。
14.2.1 電子資料處理(EDP;Electronic Data Processing) • 事實上,EDP並稱不上是MIS的一種,EDP只負責處理企業日常例行的交易資料並產生報表以支援組織活動;而MIS則提供資訊以支援主管經理的決策、資源的規劃與分析。因此EDP強調的僅僅是效率,透過EDP,企業能將未經彙總的資料作一有系統的整理與儲存,用以提高日常作業效率。
14.2.2 專家系統(ES;Expert System) • 專家系統是人工智慧的一大分支,並且有許多成功的系統問世,專家系統的主要概念是運用人類知識解決某些需要專家解決才能解決的問題,例如醫療問題。 • 一個完整的專家系統必須包含知識庫(knowledge base) 、推論引擎(inference engine) 、知識擷取系統(knowledge acquisition module) 、解釋及交談介面(explanatory interface)等等,各有不同的用途: • 知識庫:透過電腦能夠處理的知識表示法來儲存。常見的有規則表示法,案例表示法等等,因此也將專家系統區分為規則式專家系統(Rule-based Expert System)、案例式專家系統(Case-based Expert System)。 • 推論引擎:搜尋知識庫,以尋求問題的解答、建議或近似解答。 • 知識擷取系統:將專家的知識擷取並轉化為知識庫的知識(電腦能夠處理的知識表示法)。 • 解釋及交談介面:用以提供使用者操作,例如輸入問題,以及顯示解決方案等等。
14.2.2 專家系統(ES;Expert System) • 專家系統的發展瓶頸在於知識表示法與知識擷取,由於電腦程式能夠處理的表示法不易定義,要人類的知識擷取並轉換為電腦知識更加困難(目前大多以人工方式進行轉換,這也是知識工程師的工作之一),因此專家系統目前只能做為輔助專家或一般使用者進行問題的診斷之用。 • 在規則式專家系統中,專家的知識被以事實(fact)及規則(rule)加以表達,使用者輸入問題後,推論引擎會依照各項事實進行推論,最終取得一個或多個結論,並將此結論反映給使用者,做為問題解答的輔助判斷。例如:SARS醫療系統中,可能包含『IF持續發燒THEN E1』、『IF 出現乾咳 THEN E2』、『IF 肺部浸潤 THEN E3』、『IF 出現流鼻水 THEN E4』、『IFE2 AND E4 THEN 感冒』、『IF E1 AND E2 AND E3 AND E4 THEN 疑似SARS』等等的規則,在輸入各種症狀與檢查數據後,將作出感冒或/及SARS的判斷。規則式專家系統最有名的是醫療系統,但由於關係到人類的健康,因此人們對其仍不具信心居多。 圖14-1 專家系統結構圖
14.2.2 專家系統(ES;Expert System) 圖14-2 規則式專家系統產品
14.2.2 專家系統(ES;Expert System) • 在案例式專家系統中,它的知識庫又稱為案例庫,內含許多過去曾發生的案例,它的主要精神在於憑藉過去經驗解決新發生的問題,因此它的推論引擎的工作是找出最符合新問題的案例,然後交談介面就會將該案例及其相對應的答案顯示給使用者,做為解決新問題的參考答案。例如一個資訊顧問公司,專門負責幫一般公司建置資訊化工作環境,它可能將過去服務的客戶都建檔為案例,並透過屬性(attribute)來表示該公司(屬性可能有資本額、員工人數、預算、員工平均教育程度、MIS人員等等),其對應的解答可能是『個人電腦30台』、『工作站等級電腦2台』、『教育訓練20小時』等等。當新的客戶要求建置資訊化工作環境時,便利用案例式專家系統找出過去最接近的案例(或完全相同的案例),然後套用到新的客戶,並將此形成一個新的案例存入知識庫中,以做為往後可供比對的案例。
14.2.2 專家系統(ES;Expert System) 圖14-3 案例式專家系統產品
14.2.2 專家系統(ES;Expert System) • 事實上,目前也有某些學者正在進行規則式專家系統與案例式專家系統的整合,例如法律裁判系統,由於法條明確,因此要轉化為規則庫非常容易,但法條最終通常賦予法官量刑的空間,例如一年以上、七年以下有期徒刑究竟應該判幾年?類似這種問題,則可以透過案例式專家系統來解決,參考過去的判例,以便進行量刑的裁決。 • 兩種專家系統的整合還有另一類型的發展,這是基於人類的經驗其實有時候背後隱藏著某些規則而不自知,因此,如果案例夠多,就能夠嘗試從案例中尋找規則,此時可能要藉助後面所介紹的資料探勘技術,將規則找出,並回饋至系統中。總之,專家系統雖然是20年前熱門的發展,但仍有不少可成長的空間。
14.2.3 決策支援系統(DSS;Decision Support System) • 決策支援系統與專家系統最主要的差別在於,DSS除了專門協助人們作出決策的擬定,並且可以藉由模擬的方式來嚐試錯誤,用來規劃、分析行動方案,在各種可能的決策當中評估出最有效的解決方案。DSS需要後端資料庫的配合,利用統計分析的方法來預估各種決策最接近真實的結果,結合電腦強大的儲存能力與運算速度進行沙盤演練。 • 決策支援系統也是一個行之有年的系統(與專家系統差不多同時期),但因應知識工程的進步,決策支援系統現在可以搭配線上即時分析OLAP(On-Line Analytical Processing)技術以及知識庫的運作,進行更具說服力的決策支援。
14.2.3 決策支援系統(DSS;Decision Support System) 圖14-4 決策支援系統產品
14.2.4 電腦整合製造(CIM;Computer Integrated Manufacturing) • 電腦整合製造是基於工程設計的CAD/CAM電腦軟體而發展的一套MIS電腦系統,它將CAD/CAM與彈性製造等各製造程序整合在一個系統下,利用電腦控制與管理技術,將產品從設計開始,直到到製成品出貨的所有生產控制整合在一起。以期在最短時間內,用最低的成本生產出品質最佳的產品,其中包含了設計、物料控制、製造、測試、裝配、檢驗等等的功能,廣泛應用在製造業中。
14.2.4 電腦整合製造(CIM;Computer Integrated Manufacturing) 圖14-5 CIM廣泛應用於製造業
14.2.5 資源管理與規劃 • 近年來,管理資訊系統吹起一陣資源整合風,推出的商品有IRM、MRP、ERP等等,如下分項說明: • 資訊資源管理(IRM;Information Resources Management) • 資訊資源管理系統著重在整合企業或組織內部的各項電腦資源(這屬於Information Technology Management的範疇),以及與電腦處理有關的人力及物力資源。不過後來由於ERP的盛行,IRM一詞已經較少見到。 • 製造資源規劃(MRP II;Mechanical Resource Planning) • MRP其實包含兩種技術,一種是Material Requirements Planning,另一種則是Mechanical Resource Planning,前者稱為(MRP)是後者(稱為MRP II)的前身。MRP是一套排程的技巧,它透過原料表(BOM,Bill Of Material)、庫存資料以及主生產排程(MPS)等計算物料的需求,將客戶訂單與工廠的生產做一個有效率的安排,充分利用生產線的產能,並且讓經理主管能對於目前生產進度全盤掌控,目標是降低生產的成本。 • MRP II除了關注於生產活動外,還包含了企業內部的其他資源,例如製造、銷售、人力資源等等,整合這些資源,以提高企業的生產及經營績效。不過後來由於ERP的盛行,連MRP II一詞也已經較少見到。
14.2.5 資源管理與規劃 圖14-6 MRP II產品
14.2.5 資源管理與規劃 • 企業資源規劃(ERP,Enterprise Resource Planning) • ERP是目前最常聽到的資源規劃名詞,它能夠協助企業將財務管理、人力資源管理、通路及原料管理以及製造與生產管理等功能整合在一起,成為一套有效率的管理系統。ERP藉由整合各部門產生資料的工作流程,統一企業內部資料處理程序,使分散在企業各點的資料庫能被即時使用,以即時反應企業內部資源的使用狀況,提供企業決策之參考。在企業的電子商務運作中,ERP扮演基礎架構角色,與SCM(供應鏈整合管理系統)和CRM(電子化顧客關係管理系統)等結合成一套完整的電子商務系統。目前國內發展垂直應用軟體的鼎新公司在此方面有不錯的產品面世。
14.2.5 資源管理與規劃 圖14-7 ERP產品
14.2.6 電子商務整合管理 • 漸漸地,ERP已經不足以應付現代企業的需求,隨著電腦科技的進步,包括上下游廠商的合作以及顧客管理的需求也逐漸浮現檯面,因此,隨著ERP之後,又出現了所謂SCM與CRM系統。 • 供應鏈管理(SCM,Supply Chain Management) • 在企業對企業的電子商務中,包含了資料流、物流與金錢流三大項目,『物流』指的是商品的移轉過程,也就是買方與賣方的交易確定後,賣方將商品傳送給買方的過程。『金錢流』就是買方付給賣方金錢的過程,例如轉帳、支票、現金、甚至於是線上付費及信用卡等。 • 至於『資料流』則代表著交易過程中,所需要的各類合同以及交易過程所產生的資訊例如報價單、貿易憑證及交易紀錄等。對於SCM而言,它最關注的當然是資料流的部分,但一個完整的SCM也包含了物流(例如何時將貨物交給買方)以及金錢流(例如何時付款,以何種方式付款等等)。 • SCM的目標是整合上下游廠商的相關資訊系統,並完成供應鏈的自動化,使得買方得以降低收購原料成本,賣方得以清除存貨,雙方能夠準確交貨與付款,取得雙贏的局面。由於SCM牽扯到不同廠商的資訊系統整合,因此在建置上需要各家廠商的配合。而由於系統之間需要交換資料,因此目前大多以XML做為資料描述的語言。
14.2.6 電子商務整合管理 圖14-8 SCM產品
14.2.6 電子商務整合管理 • 客戶關係管理(CRM,Customer Relationship Management) • 為了提高產品的銷售量,客戶導向的重要性對於企業來說與日俱增,CRM著重在客戶的管理,協助企業對於客戶的滿意度做一個有系統的了解,並分析出潛藏的客戶群或利用舊有客戶來開發新的客戶。如此,將能夠對現有產品分析最佳的存貨週轉率,並檢驗業務部門的運作績效。客戶管理牽扯到非常多的知識管理,我們將於後面介紹什麼是電腦系統的知識。
14.2.6 電子商務整合管理 圖14-9 CRM產品 圖14-10 CRM產品
14.2.7 知識管理系統 • 知識管理(Knowledge Management)在近幾年隨著知識經濟時代而被逐漸重視,事實上,電腦的知識管理與一般人類社會的知識管理有些不同。資料經過電腦處理後將形成可用的資訊,而知識(Knowledge)是比資料(data)、資訊(information)更具有價值的無形資產。 • 以樂透及六合彩為例,一大群的開獎歷史記錄代表著『資料』,統計某些球號的出現次數代表著『資訊』,而坊間所謂的明牌計算規則即為『知識』。坊間有些計算公式如第三球若開5尾(5、15、25、35)則下四期就會開出該球+4之球號(9、19、29),然後會提出一些歷史記錄做為佐證。雖然許多人也都知道樂透與六合彩其實完全是由機率所主導,因此這些公式完全是無稽之談,但卻由於歷史記錄的顯示確實符合公式,因此這些明牌卻也具有銷售價值。這些公式在樂透的範例中,其實並非實際的知識,但若將此求出公式的原理運用於其他日常生活中,則是知識的來源。 • 一般來說,彩迷們是透過觀察歷史記錄獲得公式,雖然在樂透遊戲中,它無法確實運用於預測未來之開獎號碼,但在現實生活的其他應用中,這個方法卻很準確,舉例來說,以王永慶的賣米哲學為例,它可以依照家庭人口數、行業別做為基本屬性,推導並修正其公式,假設某A家庭人口為5人,行業別為醫師,則30日內會消耗1斗米,B家庭人口為10人,行業別為工人,則同樣30日內會消耗1斗米(因為可能搭配地瓜做為主食)。 • 有了這些公式之後,米行就可以依照每個顧客的特性,計算出「詢問是否補米」的時機。當然,這必須透過詳細的歷史記錄、經驗及精確計算修正才能得到確實有用的知識。
14.2.7 知識管理系統 • 換句話說,資料經過處理後將形成資訊,而資訊經過淬取之後,將可形成知識。一般常見的資料探勘技術(後面章節中會介紹),其輸出即為一種知識。 • 知識管理系統並沒有一定的面貌,只要系統內隱含某些知識,並且這些知識能夠被應用,就可以稱之為知識管理系統。業界有時候會將SCM、CRM與ERP等合稱為知識管理系統,事實上,例如鼎新開發的Workflow ERP就可以稱之為一種知識管理系統。因為Workflow代表是人們處理各類事情或進行某項工作的流程,這當然是一種知識,而鼎新的Workflow ERP就是將企業內部各單位處理各事項的工作流程儲存在系統內,並透過一套機制(一般都包含人工智慧機制)讓使用者能夠很迅速地查詢所需要的工作流程,因此該套系統便可以稱為一套知識管理系統。
14.2.7 知識管理系統 圖14-11 鼎新將其產品ERP II稱之為知識管理系統
14.3 企業資料管理(資料庫與資料倉儲) • 企業擁有大量資料,這些資料也是企業的一大資產,所以必須妥善儲存,而最理想的資料儲存環境就是資料庫。 • 什麼是資料庫(Database)呢?簡單的說,『資料庫』就是存放大量資料的地方,當然此處所說的資料指的是電子式的文件或檔案資料,但是如果只單純的說存放大量資料的地方就可以稱為資料庫,那又未免太過於寬鬆,因此,我們應該加上一個條件,將資料庫重新定義。亦即『資料庫』是一個有效率儲存資料的地方,此處所謂的有效率,則代表不儲存重複性的資料,不儲存多餘無用的資料等等。
14.3.1 資料庫系統與資料庫管理系統 • 資料庫管理系統(Database Management System, DBMS) • 雖然,資料以某種方式有效率地儲存在資料庫中,但是,若沒有一套有效率且方便的軟體替我們將資料存放入資料庫,或由資料庫中讀取出來,甚至於是刪除或修改資料的話,那資料庫就會變得很孤立,因此,現代的資料庫應用軟體,大多朝著這個方面發展,我們將之稱為 • 資料庫管理系統(DataBase Management System, DBMS),例如:Access就是Office所提供的一套簡易版的資料庫管理系統。而資料庫(Database)、資料庫管理系統(DBMS)與使用者(User)則合稱為資料庫系統(Database System)。通常我們言談之間所談論到的"資料庫",一般都指的是資料庫或資料庫系統。 • 比較有名的資料庫管理系統有Microsoft SQL Server、Oracle、MySQL、DB2以及Access等,在這麼多種的資料庫系統中,資料庫管理系統又可以分為兩大類:主從式資料庫管理系統及桌上型資料庫管理系統,主從式資料庫管理系統的資料庫可以架構在伺服器端,而使用者可以在遠端安裝客戶端操作軟體,配合權限的管理就可以操作資料庫,例如Microsoft SQL Server、Oracle。桌上型資料庫管理系統價格比較便宜,資料庫檔案與操作介面位於同一部電腦上,通常此類資料庫管理系統所需要的硬體資源較少,但功能及處理資料的容量也比較少,例如Access就是其中之一。
14.3.1 資料庫系統與資料庫管理系統 • 日常生活的許多資料都非常適合使用資料庫系統來管理,例如個人通訊錄、進銷存庫存表,學生成績單等等,其實,不論是對於個人或企業,甚至於國家、世界等等,只要需要大量儲存資料的地方就可以使用資料庫來解決問題,並且透過資料庫管理系統所提供的功能來加以管理這些資料。舉例來說,存放大量資料最明顯的就是圖書館,圖書館中所有的書籍、雜誌、錄影帶資料,彙整成一座大型"資料庫",經過館方的整理紀錄,藉由類別編目與各項訊息(如圖書編號、作者、標題等),讀者可以透過查詢系統(如書卡目錄)加快搜尋的速度,而無須在茫茫書海中遍尋所有書架。現今的圖書館大都已採用電腦化系統加以管理,所有查詢索引資料也已經過整理儲存於圖書館的資料庫當中,方便讀者透過查詢程式介面迅速地從資料庫中找出所要的書籍資料。圖14-12說明了其運作方式。
14.3.1 資料庫系統與資料庫管理系統 圖14-12 資料庫管理系統
14.3.1 資料庫系統與資料庫管理系統 • 資料庫管理系統的特點每一種DBMS提供的功能都有或多或少的差異,但一個現代且完整的DBMS應該可能具備的特點如下: • 提供簡單的方式儲存及取得資料(Update and retrieve data) • 這是DBMS最基本的功能,使用者不需要知道資料如何儲存與操作,DBMS至少必須提供使用者新增、修改、刪除資料等基本功能。 • 提供資料庫定義(Provide catalog services) • DBMS必須能夠定義資料庫的各種資料項目,並且定義相關的物件,這些定義的動作一般由資料庫管理員或程式設計師進行,在關聯式資料庫中(下一節介紹)至少應該能夠定義資料庫、資料表、欄位的資料型態與關聯。
14.3.1 資料庫系統與資料庫管理系統 • 提供資料同步更新的機制(Support concurrent update) • 由於資料庫是資料集中管理之處,這意味著可能有許多人或許多程式必須同時存取資料庫,優良的資料庫管理系統應該提供多人或多程式同時存取資料庫的能力,當然所謂的同時存取當然不可能是真的同時,但DBMS應該具有自動將這些人或程式提出的要求,按照順序完成的能力。 • 在同步的考量下,完整的DBMS還必須支援資料的一致性,一致性則取決於對於交易(Transaction)的支援度,交易代表一個批次更新中,如果發生任何錯誤,則取消該批次的所有動作,回復到批次交易之前的狀態。為了達成此項目的,DBMS必須支援不同程度的鎖定(Lock)功能,例如當需求發出後直到需求完成前,不允許其它程式或使用者碰觸(讀取或寫入)該需求所使用的資源。一般市面上比較昂貴的資料庫系統,例如Oracle、DB2、Microsoft SQL Server等對於交易的支援是比較完整的,而Access等平價的資料庫系統,則只支援了某部分的鎖定功能,例如允許同時讀取但不允許同時寫入。 • 提供資料備份與回復的能力(Recover data) • 為了避免資料因特殊原因意外喪失,完整的DBMS應該提供方便的資料庫備份功能及還原資料庫功能。
14.3.1 資料庫系統與資料庫管理系統 • 在資料存取時,提供權限控管的能力(Provide security services) • 資料庫管理系統大多為多使用者環境,完整的DBMS應該能夠對於資料庫進行安全管理,由資料庫管理師(DataBase Administrator;DBA)設定某個合法使用者的權限,例如可以將某個使用者權限設定為只能存取某些資料庫而非所有的資料庫,如此才能讓資料庫內的資料安全無虞。 • 提供資料完整性(Provide data integrity features) • 完整性是用來維護資料正確性及一致性,DBMS必須自動根據某些規則維護資料的完整,在關聯式資料庫中,資料的完整還可以分為實體的完整性(entity integrity)與參考的完整性(reference integrity)等等,某些資料庫還提供區域完整性(domain integrity)與使用者定義完整性(User-defined Integrity)。 • 支援資料獨立性(Support data independence) • DBMS必須能夠將程式獨立於資料庫結構之外,也就是將資料與程式分離,即使存放資料的檔案格式改變,程式也不需要修改。
14.3.1 資料庫系統與資料庫管理系統 • 支援資料的重製(Support data replication) • 新型態的分散式DBMS必須考量到資料可能需要被搬移及複製,因此DBMS應該具備管理多份相同資料的能力,將資料重複的原因主要是為了考量到效能,它能夠使得資料較容易被存取與搬移。 • 提供多種工具服務(Provide utility services) • DBMS必須提供多種工具,讓使用者能夠進行查詢資料庫、修改資料庫結構、新增或刪除索引、輸出各類報表等等的工作。例如Access可以透過平淡的資料工作表(datasheet)或炫麗的表單來存取資料,至於特別設計的資料庫應用程式更可以說是完全沒有限制。 • 以上九點特性,又以『一致性/同步性』、『完整性』、『獨立性』、『安全性』等視為DBMS必備的四大特點。
14.3.2 關聯式資料庫(Relational Database) • 資料庫其實也分為許多類,例如階層式資料庫(Hierarchical DB)、網狀式資料庫(Network DB)、物件導向資料庫(Object-Oriented DB)、關聯式資料庫(Relational DB)等,而目前最普及的資料庫系統大多是屬於關聯式資料庫類型。 • 關聯式資料庫是由眾多資料表(Table)所組成,資料表內則包含許多記錄(record),每一筆記錄則是由多個欄位(field)資料所組成,並透過主索引欄位(Primary Key field)加以辨識每一筆記錄。關聯式資料庫中的資料表間擁有共通的欄位,透過這些欄位,使得這些資料表產生關聯,而透過這個關聯,將有助於管理及查詢資料。 • 舉例來說,假設一間出版社中包含三個部門,作者管理部、圖書管理部、圖書銷售部,則由此三個部門所建立的資料表可能會大不相同。例如:作者管理部所規劃的作者清單資料表最為簡單,僅僅只有「作者編號」與「作者姓名」兩個欄位,並以「作者編號」欄位做為主索引欄位。而圖書管理部所製作的圖書管理資料表稍微複雜一點,包含有「書號」、「作者編號」欄位用來記錄每一本書各為哪些作者所撰寫,並且為了使該資料表存在一個唯一性的欄位,因此,特別建立一個「序號」欄位來當做主索引欄位(因為每一本書可能不只一位作者、一位作者也可能不只撰寫一本書,因此,「書號」、「作者編號」欄位皆不適合做為主索引欄位)。而圖書銷售部所製作的資料表最為複雜,包含有「書號」、「書名」、「簡介」、「出版日」、「定價」等5個欄位所組成的書籍資料資料表(並使用「書號」欄位做為主索引欄位),以及銷售紀錄資料表(內含「交易序號」、「客戶名稱」、「交易日期」、「購買書籍」、「數量」等欄位)四個資料表的欄位如下圖所示。
14.3.2 關聯式資料庫(Relational Database) 圖14-13 關聯式資料庫是由許多資料表組成
14.3.2 關聯式資料庫(Relational Database) • 當我們仔細分析上圖的四個資料表時,我們可以發現,某些資料表之間存在著某種關係,例如:書籍資料資料表與圖書管理資料表都具有一個「書號」欄位,並且除非是某個資料表中的資料不完整,否則該欄位的資料必定會同時存在。只不過,「書號」欄位在書籍資料資料表中是具有唯一性的欄位資料(因為一本書只會有一筆基本資料),而「書號」欄位在圖書管理資料表中則不具有唯一性(因為一本書可能不只一位作者)。而這種資料表間主索引欄位的關聯,我們可以稱為書籍資料資料表對圖書管理資料表為1對多的關聯,或稱圖書管理資料表對書籍資料資料表為多對1的關聯。也就是說當我們將這兩個資料表整合成一個資料表時,記錄將會增多,因為,原本唯一的那個欄位(書號或書名)將喪失其唯一性(如圖14-14所示),因此,一般我們都會將之分為兩個資料表,因為重複某些資料(例如:某書的簡介)是沒有意義且浪費磁碟空間的。
14.3.2 關聯式資料庫(Relational Database) 圖14-14 使用關聯可以減少資料的重複記載
14.3.2 關聯式資料庫(Relational Database) • 除了1對多與多對1的關聯之外,另外還有兩種關聯,分別是1對1與多對多的關聯。由於1對1的關聯,我們可以直接將之整合為單一資料表而不會喪失主索引欄位的唯一性,因此,事實上並不存在這種1對1的關聯。 • 至於多對多的關聯則必須藉由一個中介的資料表來組合多對1與1對多的關聯,舉例來說,書籍資料資料表對圖書管理資料表為1對多的關聯,因為一本書可能有多位作者,而書籍資料資料表對銷售紀錄資料表也為1對多的關聯,因為一種書可能會賣給許多客戶,因此,某客戶購買的某作者著作的關聯就是一種多對多的關聯(客戶對作者為1對多、作者對客戶也是1對多),如圖14-15所示。
14.3.2 關聯式資料庫(Relational Database) 圖14-15 三個資料表中隱含了一些關聯性
14.3.2 關聯式資料庫(Relational Database) • 在圖14-15中,針對「鐵雄」而言,他購買了由「3號」、「4號」及「17號」作者所撰寫的書,而針對「3號」作者而言,他撰寫的書則賣給了「鐵雄」、「大明」及「阿丁」等三個人。因此,我們必須藉著『書名』以及『書號』欄位來完成資料表多對多的關聯。如圖14-16所示。 圖14-16 資料表間的多對多關聯必須透過中介者來完成
14.3.2 關聯式資料庫(Relational Database) • 一般來說,當我們使用圖表方式來表示資料表的關聯時,大多會採用符號『∞』來代表『多』的一方,因此,我們可以將上述的四個資料表以下圖來表示各資料表之間的關聯。 圖14-17 四個資料表之間的關聯
14.3.2 關聯式資料庫(Relational Database) • 關聯式資料庫的優點關聯式資料庫基於資料表欄位間的關聯,因此具有下列優點: • 可以減少重複的資料 • 資料庫系統能夠有效的整合大量資料,使得重複性資料越少越好。例如關聯式資料庫系統可以透過資料表欄位之間的關聯減少重複性資料的出現。 • 保證資料的正確性 • 人為的輸入錯誤難免,而資料庫系統可以先針對各欄位進行定義,例如:將欄位的資料型態設定為日期資料型態,就無法輸入2003/10/35這種錯誤的日期。除此之外,關聯式資料庫還可以根據資料表欄位的關聯來保障絕對不會有錯誤的資料存入資料庫中,例如:某書籍訂單的書號欄位與書籍基本資料的書號欄位有關聯,則當一筆訂單記錄的書號欄位值無法在書籍基本資料的書號欄位中找到的話,就是一筆不合法的記錄,當設定的更嚴格時,甚至可以控制該筆訂單記錄無法被輸入。
14.3.2 關聯式資料庫(Relational Database) 【SQL】 SQL(Structured Query Language)是一種結構化查詢語言,對於關聯式資料庫而言,任何的要求動作都被視為一種查詢(Query),而SQL則是目前最普遍的查詢語言,使用SQL語言撰寫的命令稱為SQL敘述。事實上,關聯式資料庫只會處理SQL敘述,因此,即使您透過其他各類介面對資料庫進行操作,這些動作都必須先被轉譯為SQL敘述後,才送往資料庫核心進行處理(不過這些轉化動作,介面常常會將之隱藏起來,使用者並不會察覺)。 • 可以依照需求檢視資料 • 關聯式資料庫系統允許使用者組合原有的資料表欄位產生自己想要看的資料,例如您可以結合書籍資料表與作者基本資料表來查閱該作者之專長與出版書籍之對應關係。同時,許多資料庫還提供了簡單的運算功能,允許結合多個資料表欄位加以運算,並將運算結果顯示出來(請見下一小節的最後一個範例)。事實上,關聯式資料庫接受使用者的任何形式命令都將轉化為SQL敘述,然後才被資料庫核心加以處理,而SQL敘述則具有跨資料表查詢資料的功能。 • 關聯式資料庫上述優點,當然也必須付出一點點的代價,例如定義資料表之間的關聯常常需要針對資料進行分析與切割合併。這些動作稱之為資料庫的正規化(Normalization)。正規化的目的是為了讓重複性的資料減到最好,以便於在查詢資料時,能夠最迅速地找到所需要的資料並節省磁碟空間。
14.3.3 Access資料庫應用實例 • Access是一個簡單的桌上型關聯式資料庫管理系統(RDBMS),非常適合初學者用來學習資料庫管理系統,在本節中,我們將使用Access2002實際示範如何透過資料庫管理系統來管理銷售資料(Access 2003與Access2000的操作模式也大致雷同),在正式示範操作流程之前,首先我們先對本節實例做一些必要的說明,以方便讀者了解整個實例的用意。 • 注意事項 • Access2002可以將資料庫儲存為Access2002、2000、97等格式,新版格式無法使用舊版軟體開啟,但舊版格式可以使用新版軟體開啟,由於Access2000的市場佔有率較大,因此我們雖然使用Access2002作為操作軟體,但儲存格式將指定為Access2000。您可以執行【工具/資料庫公用程式/轉換資料庫/轉換為Access2000檔案格式】指令,將格式指定為Access2000。您也可以執行【工具/選項】指令,切換到進階頁簽,然後設定預設檔案格式選項為Access2000即可,如下圖所示。
14.3.3 Access資料庫應用實例 • 專有名詞說明 • Access資料庫使用一個副檔名『.mdb』的檔案來儲存,而資料庫內則包含許多資料表(Table),資料表是由眾多記錄(record)所組成,而每一筆記錄又分為許多欄位(filed),在定義資料表時必須先指定這些欄位的相關限制,例如資料型態或主索引欄位。主索引欄位(Primary key field)是具有唯一性的欄位,可以用來辨識每一筆記錄。
圖14-19 資料表的記錄 圖14-20 資料表的欄位