資料庫設計與應用 東吳大學會計學系 謝 永 明
學習目標 一、瞭解資料庫方法 二、瞭解資料庫基本架構 三、瞭解關聯式資料庫基本觀念與架構 四、瞭解如何規劃與設計資料庫 五、瞭解資料庫的操作與維護 六、瞭解資料庫對於AIS可能產生的影響
資料庫方法 早期的資料處理以檔案為中心,企業主要以批次處理方式透過電腦程式處理對應的檔案,以產生使用者所需的資訊,因而造成同樣的資料重複存放在不同的主檔以及資料內容不一致的問題。 在資料庫方法下,資料被視為企業的資源,應該由組織統籌管理與運用。換句話說,資料庫強調資料的整合(integration)與分享,也就是將原來分散存放在各個主檔的資料,透過一定的方式加以合併,讓不同的應用程式可以共同使用。
File-Oriented Approach Application program #1 Item A Item B Item C File # 2 Application program #2 Item B Item D Item E
Item A Item B Item C Item D Item E Data Base Approach Application program #1 Data base Item A Item B Item C Item D Item E Application program #2 Data base management system Application program #3
資料庫方法 資料庫的使用與維護必須有一套完整的程序與方法。 企業用來管理與控制資料庫使用情形的程式,稱為資料庫管理系統(database management system,簡稱DBMS)。 我們將資料庫、資料庫管理系統、以及相關的應用程式加以整合,形成資料庫系統(database system) 。 而負責管理資料庫的人員便稱為資料庫管理師(database adminstrator,簡稱DBA)。
資料庫基本架構 在資料庫方法下,程式與資料相互獨立,也就是資料如何儲存與資料如何使用並無直接的關聯。 資料的邏輯觀點(logical view)代表使用者或程式設計師在觀念上如何組織及理解資料,至於資料實際上如何存放在實體的儲存媒介(例如磁碟、光碟)上,則稱為實體觀點(physical view)。
資料庫基本架構 為了克服在傳統檔案中,程式與資料密不可分所造成的問題,資料庫方法將資料的邏輯觀點與實體觀點加以分離,便於程式設計師及使用者專心的設計應用程式或查詢資料,而不必在意資料如何存放及存取。 換句話說,資料庫系統過資料庫管理系統(DBMS)將使用者如何使用資料(邏輯觀點)與資料實體存放方式(實體觀點)結合起來,免除使用者確認資料實際上如何儲存的負擔,並容許使用者改變其邏輯觀點,彈性的運用資料。同樣的,資料庫管理師在調整資料實際儲存方式,以提昇系統績效時,也不必擔心使用者或相關的應用程式受到影響。
Logical and Physical Views of Data Logical View User A Logical View User B Past Due Accounts Name Balance Days Jones 2100 50 Perez 1000 60 Sales by Region Data base DBMS Operating system
資料庫基本架構 在建構資料庫時,我們利用綱要(schema)來描述資料庫的邏輯架構。資料庫的綱要區分為三層: 觀念層(conceptual-level)、 外部層(external-level) 、以及 內部層(internal-level)。 觀念層綱要代表整個組織對於整個資料庫的觀點,列出資料庫中所有的資料項目以及它們之間的關係。外部層綱要由不同使用者的邏輯關點所組成,又稱為次綱要(subschema)。至於內部層綱要則被用來描述資料實際存放與存取的方式,包括資料的索引、紀錄長度、指標等資訊。
資料庫綱要(schema) 觀念層綱要代表整個組織對於整個資料庫的觀點,列出資料庫中所有的資料項目以及它們之間的關係。 外部層綱要由不同使用者的邏輯關點所組成,又稱為次綱要(subschema)。 至於內部層綱要則被用來描述資料實際存放與存取的方式,包括資料的索引、紀錄長度、指標等資訊。
Mapping external level views to conceptual level schema Schemas Subschema A Subschema B Subschema C Jones 210 Perez 100 r r xxxxxxx Mapping external level views to conceptual level schema Inventory Sales Customer Cash receipt
資料庫綱要(schema) 在建構及實際使用資料庫時,觀念層綱要負責連結外部層與內部層綱要。 會計人員因為職務上的關係,相當瞭解企業的營運及資料處理模式。因此,會計人員應瞭解不同綱要之間的差別與關聯性,並主動參與訂定這三種綱要。
Mapping conceptual level items to internal level descriptions Schemas Inventory Sales Customer Cash receipt Mapping conceptual level items to internal level descriptions Inventory Record Item number – integer (5), non-null, index = itemx Description – character (15)
資料辭典(data dictionary) 資料庫中存放的資料種類繁多,為了便於資料庫的管理,通常會設置一份資料辭典(data dictionary,簡稱DD),用來記錄與資料庫架構有關的資訊。對於資料庫中的每一筆資料,都可以在資料辭典中找到對應的紀錄,存放與這筆資料有關的資訊。
資料辭典(data dictionary) 在建立資料庫系統時,資料庫管理師應首先設置資料辭典,藉以訂定資料庫的架構。日後資料庫中的資料項目有所增刪或變動時,資料辭典亦應配合修訂。 一般而言,會計人員相當瞭解企業各項資料的來源及用途。因此,會計人員應參與資料辭典的訂定。
資料庫管理系統(DBMS) 資料庫管理師、程式設計師以及一般使用者必須透過DBMS提供的指令,來建立、變更及查詢資料庫。 資料定義語言(data definition language,簡稱DDL)、 資料操作語言(data manipulation language,簡稱DML)、以及 資料查詢語言(data query language,簡稱DQL)。
資料庫管理系統(DBMS) DDL主要用於(1)設置資料辭典、(2)建立資料庫、(3)描述個別使用者或程式設計師的邏輯觀點、以及(4)界定資料庫各項紀錄或欄位的安全限制(例如授權使用者)。 DML主要用於資料庫的維護,例如資料的更新、插入、或刪除等動作。 至於DQL則用於查詢資料庫的內容,便利使用者擷取資料庫中相關的資料項目,並進行資料排序、整理、以及輸出的動作。
資料庫管理系統(DBMS) 為了強化資料庫的內部控制,資料庫語言的使用權限應做適當的區分,例如一般使用者可以使用DQL與報表編寫程式,DDL及DML的授權使用者則應以資料庫管理師及程式設計人員為限。
關聯式資料庫基本觀念與架構 DBMS管理與維護資料庫的方式與其所依據的邏輯資料模式(logical data model)有著密切的關係。 資料模式以抽象的方式表達資料庫的內容,目前的會計資訊系統大多使用關聯式資料模式來建立其關聯式資料庫(relational database)。
關聯式資料庫 關聯式資料模式利用表格(tables)顯示存放在資料庫中的各種資料,這些表格代表特定的關係(relations)。 換句話說,這種資料庫是以關聯式資料模式表達資料庫的外部層及觀念層綱要,至於資料實際上並非以表格的形式存放,而是以內部層綱要指定的方式儲存。
關聯式資料庫 關聯式資料庫的每一個資料表包含一定數目的欄位,用來描述資料中的個體屬性。 資料表中的每一列稱為拓蹼(tuple),用來表示資料表中的個體(或紀錄)。
關聯式資料庫 根據關聯式資料模式,我們在建構關聯式資料表時,應符合下列四項規範: 每個資料表的主要鍵(primary key)必須是唯一的(unique),而且其主要鍵資料內容不能為空值(primary keys cannot be null),這項規範稱為個體完整性法則(entity integrity rule),它的目的在於確保資料表(關係)中的每一列代表一個實際的個體所對應的資料。 資料表中的每一個外鍵(foreign key)值若非為空值,則必須對應於另一個資料表中的主要鍵值,這項規範稱為參考完整性法則(referential integrity rule)。
關聯式資料庫 資料表中每一個欄位(除主要鍵外)必須描述關於主要鍵值所辨識特定個體的某項特/屬性。(All non-key attributes in a table should describe a characteristic about the object identified by the primary key.) 資料表的每一個欄位中的資料必須屬於同一資料類型,每一個儲存格只能有一個數值(every column in a row must be single valued)。至於資料表中各欄及各列資料的順序如何安排,並不會影響資料的擷取。
關聯式資料庫的設計 傳統的檔案系統轉換成關連式資料庫時,必須遵循一定的規範,以避免發生更新異常(update anomaly)、新增異常(insert anomaly)、以及刪除異常(delete anomaly)等現象。 建構關聯式資料表的過程稱為資料表的正規化(normalization),關聯式資料表應符合第三級正規化格式(third normal form)。
如何規劃與設計資料庫 資料庫的設計與操作包含六個主要的階段: 初步規劃、 需求分析、 設計、 編碼、 施行、以及 操作與維護。
Six stages of data base design and operation Planning Operation and maintenance Requirements analysis Implementation Design Coding
規劃與設計資料庫 當企業大幅更動資料庫架構或建立新的資料庫時,必須完成這六個階段相關的工作。 初步規劃的目的在於決定提議的系統是否具備技術、經濟(成本效益)、時間等方面的可行性。提議的資料庫系統被評定為可行後,應先進行需求分析:包括(1)辨認使用者的資訊需求、(2)界定系統範圍、以及(3)初步決定所需的電腦軟體與硬體。
規劃與設計資料庫 完成資料庫初步規劃及需求分析後,接著訂定資料庫的結構。資料庫的設計可以分為三個步驟:觀念性設計、邏輯設計以及實體設計。觀念性設計的目的在於將使用者的資訊需求轉換成資料庫的觀念層綱要(也就是建立整個組織的資料模式)﹔邏輯設計階段則實際選定適用的DBMS,以便將觀念性模式轉換成對應的資料庫模式;實體設計則在於將邏輯模式(綱要)轉換成實體綱要,作為實際儲存與擷取資料的依據。
規劃與設計資料庫 編碼的主要工作在於將實體綱要轉換成實際的資料庫結構,並編寫新的應用程式以及修改現有的程式。資料庫的編碼與設計方案很多,設計人員應選用最能達成資料庫目標的方案。
規劃與設計資料庫 資料庫施行階段的工作包括新系統測試、舊資料轉入資料庫、以及員工訓練等項目,其目的在於確保資料庫系統得以順利的裝設與運行。 資料庫的操作與維護應該由專責人員負責,其主要工作在於確保資料庫的正常運作,並蒐集與資料庫系統績效以及使用者滿意度有關的資料,作為判定資料庫應否修改或升級的依據。
資料庫的操作與維護 為幫助同學瞭解上述的資料庫設計過程,我們以Microsoft Access 為例,說明關連式資料表的建立、資料輸入、以及查詢(相當於資料庫設計過程中的「編碼」與「操作」階段)。 使用者查詢Access資料庫時,應先進行資料庫查詢設計,有關說明請參閱相關的Access課程教材。
建立Access資料表 建立Access資料表時,必須經過四個步驟: (1)定義資料表欄位、 (2)標示資料表主要鍵、 (3)標示資料表外鍵、以及 (4)建立資料關聯圖等。
建立Access資料表 Access提供三種不同建立資料表的方式: 使用設計檢視建立資料表、 使用精靈建立資料表、以及 藉由輸入資料建立資料表。
資料庫查詢語言 使用者查詢資料庫時,必須採用特定的查詢語言,關連式DBMS對於資料表進行的作業主要有三種: 投射(PROJECT) 限制(RESTRICT) 結合(JOIN) 三種作業都會產生新的資料表,並可由使用者決定是否儲存這些查詢所產生的資料表。
資料庫查詢語言 資料庫查詢語言可以區分為兩類: 文字性查詢語言(text-based query languages) 圖形查詢語言(graphical query languages) 實務上最為常用的文字性查詢語言是結構化查詢語言(structured query language,簡稱SQL),它的特點為簡單易學、彈性大、以及功能強。
結構化資料庫查詢語言 大部分的SQL使用下列五個基本的關鍵字: SELECT FROM WHERE ORDER BY GROUP BY
結構化資料庫查詢語言 ”SELECT”相當於前述的「投射」作業, ”FROM”用於列出查詢時使用到的資料表(若使用兩個以上的資料表,便會進行前述的「結合」作業), ”WHERE”等於前述的「限制」作業, ”ORDER BY”規範查詢結果列示的順序, ”GROUP BY”則用來指定資料表中的哪些欄位,應該進行基本的數學運算(例如SUM)。
圖形查詢語言 至於圖形查詢語言則是指DBMS提供圖形的介面,讓使用者可以透過畫面設計查詢應產生的結果,而不需要輸入SQL。這種查詢方式又稱為範例查詢(query-by-example,簡稱QBE),DBMS會將使用者輸入的畫面範例轉換成對應的SQL指令,以便執行使用者的查詢。
資料庫的操作與維護 關連式資料模式最大的限制在於它不容易整合較為複雜的資料型態(例如圖形、聲音、影像等多媒體資料)與文數字資料。因此,電腦界發展出物件導向資料庫模式(object-oriented data model),以克服上述的限制。
物件導向資料庫 物件導向資料庫模式與關連式資料模式的主要差別在於前者是以物件為基礎。物件是指一組預先設計及測試完成的程式碼,用來代表一定的個體及相關的程序,物件內同時包含描述該個體相關屬性的值(value)以及執行相關程序的方法(method),此種結合資料及使用資料的方法於同一物件的方式稱為封裝(encapsulation)。
物件導向資料庫 物件可以同時容納不同類型的資料型態(包括多媒體資料)與有關的方法,並可表達階層式的架構,使得物件導向DBMS相當適合於表現空間性的關係,例如電話公司的通訊網路。
物件導向資料庫 物件導向資料庫採用階層式的架構,除了最底層的物件之外,其他的層級代表不同的物件類別,較低層的物件類別會繼承其上端所有物件類別的一般特性,所以每一物件類別只需要定義該類別獨有的特性或規則即可。 因此,物件導向資料庫的新綱要(物件類別)可以快速設計完成,提昇資料庫設計與維護的效率。
物件導向資料庫 不過,物件導向資料庫系統也有下列的缺點: (1)執行某項物件的方法通常已經封裝在該物件中,可能導致使用者無法以較具彈性或突發性的方式進行資料庫查詢, (2)物件導向資料庫使用指標連結物件與物件類別,使用者必須順著指標擷取所需的資訊,增加使用者的負擔,以及 (3)物件導向DBMS仍無標準化、易於使用的查詢語言。
物件導向資料庫 就資料庫模式未來的發展趨勢而言,企業界可能會同時採用關連式資料庫與物件導向資料庫,分別處理文數字資料以及較複雜的資料型態。 部分電腦軟體業者則嘗試將兩種資料庫加以結合,推出所謂的物件導向關連式資料庫管理系統(簡稱object-oriented relational DBMS,簡稱ORDBMS)。
資料庫對於AIS可能產生的影響 就會計資訊系統及會計交易處理而言,資料庫觀念與方法的發展帶來顯著的影響。部份會計學者甚至認為資料庫系統的普遍使用,可能造成雙式簿記的式微。 資料庫系統也可能明顯的改變企業財務報導的本質,部分人士主張直接提供外部使用者企業有關的資料庫,以取代財務報表。使用者可以運用資料查詢語言(例如SQL)或企業提供的查詢介面,按照自己的決策需求,查詢相關的資料庫,自行產生所需的資訊。
資料庫對於AIS可能產生的影響 透過關連式(或類似的)DBMS,企業可以有效的整合財務與營運資料,讓經理人員可以取得更為豐富、有用的資訊,進而提昇決策品質與經營績效。 會計人員應具備資料庫系統方面的知識,並積極參與資料庫規劃與設計的工作,協助確認相關系統具有適當的控制,以保護資料的安全及確保資訊的可靠性。