IDMS
IDMS:Integrated Database Management System綜合資料庫管理系統相關知識
到目前為止,我們集中討論了傳統的檔案處理。此處,檔案是作為一個獨立的邏輯實體來處理的,而且通常與某個特定的業務領域相聯繫。為了把業務上相近的那些部門的檔案綜合在一起,必須預先排序記錄和合併檔案。這樣做可能耗費大量的時間,有時甚至是不可能實現的。
通常,檔案是為了滿足特定業務領域某部門的專門需要而設計的,如果某部門想使用保存在一個檔案上的部分數據,而該檔案是另一部門為自己使用而設計的,那么他們必須抽取這些數據並重新整理後才能使用。大多數部門總是寧願建立和保持和一個類似(而不同)的檔案以更好地滿足自己的使用要求,而不願兼顧其他部門的業務需要。這樣做的結果形成了大量的帶有重複數據的檔案。前面的例子中已經提到,某所大學就保存了75個獨立的計算機檔案,而每個檔案中都包含有學生記錄。每當一個學生結婚了或者改換了住處時,則必須修改75個檔案。
數據的冗餘會使成本提高,而設計一個綜合的資源共享資料庫則可以把數據冗餘度降低到最小程度。綜合的資源共享資料庫把公司看作一個整體來提供服務,而不只是為公司某特殊部門服務。利用資料庫管理系統(DBMS)軟體就可能實現一個綜合的資料庫。
早在70年代初期就出現了DBMS技術,但是直到70年代末期仍未得到普遍的接受。早期的DBMS"軟體包"效率不高,實際上比傳統的檔案處理的要求更高的硬體能力。目前DBMS對硬體的要求已經降低了,甚至在小型計算機系統上也能運行DBMS軟體,造成推遲接受和實現DBMS技術的主要原因可能是信息服務人員缺乏專門的知識,而且用戶管理人員又不願合作和支持建立一個共享的資料庫。目前對於設計和運行DBMS軟體已經有了廣泛的了解,而且部分用戶管理人員已經認識到應該把信息作為一個公司的資源來看待。
資料庫環境的好處
1.經濟上的好處。通過先進的數據結構技術,DBMS提供了最小化數據冗餘度的可能性。當然,為了提高處理效率,即使有了DBMS幫助,有時還需要在共享的資料庫中保留一定的重複數據。由於減少了數據的冗餘度,從而也簡化了收集和更新數據的過程。就前面的例子而言,只需要在一處(資料庫中)更新學生地址就可以了。
2.資料庫技術也給信息服務專業人員帶來的好處。綜合資源共享資料庫為系統分析員打開了嶄新的大門。資料庫能向系統分析員提供傳統檔案所不能提供的信息。由於有了DBMS,就更容易得到數據,因此使程式設計任務要比原先更為簡單。此外,數據是獨立於程式的。這意味著用戶管理人員可以增加資料庫中的數據、修改庫中的現有數據或者從庫中刪除數據,這些並不影響現有的程式,而在過去則需要測試和修改幾十個(有時幾百個)程式。當然,資料庫管理系統還有其它重要的優點,但是這些已超出本書的範圍。
3.信息方面的好處。一個綜合資源共享資料庫能以有序的方式提供一種滿足信息要求的結構。實際上,資料庫是能夠充分利用公司信息資源的唯一工具。由於資料庫和DBMS在產生報表方面提供了極大的靈活性,因此,也給決策過程帶來了同樣的靈活性。
4.DBMS軟體在支持在線上系統方面是特別有價值的。共享資料庫不僅可供多個用戶存取而且還特別能反映出數據的當前狀態。對於許多查詢來說,及時性是很關鍵的。例如,某個經理由於設備故障不得不關閉某個工作站,此時他有可能要查詢其它工作站的狀態,並且利用得到的信息來改變進行中的工作路線。
方法
DBMS克服了傳統檔案處理的局限性。它依靠靈活多變的數據結構(將數據元及記錄彼此聯繫的方法)來做到這一點。基於不同數據結構的DBMS之間差別很大。有三種設計DBMS軟體的方法
1.數據系統語言會議(CODASYL)設計並發布的基於網路或叢形數據結構的DBMS指南。
2.IBM的信息管理系統(IBS)使用的一種層次結構。
3.某些最近設計的基於關係數據結構的DBMS。
上述的每一種方法是基本概念和術語的差別都很大。因此,為了減少混淆和便於理解,以下的闡述和討論只使用網路方法。
庫設計
1.資料庫設計方法
我們通過下面的例子來說明資料庫管理系統和一種資料庫設計方法的原理。考察下述情況。
某圖書館保存了一個檔案,該檔案每一個記錄都包含了下述數據元:
(1)書名
(2)作者
(3)出版社
(4)出版社地址
(5)類別
(6)出版年份
圖書館館長希望在獲得決策信息方面有更多的靈活性。而現在檔案不可能滿足其要求。經過與信息處理人員交換意見之後,他們決定實現一個基於CODASYL的資料庫管理系統。
檢查現有檔案發現某些數據重複出現。每本書(每一書名)都分別有一個記錄。於是,寫過幾本書的作者的名字在他寫的每本書的記錄中重複出現。在一個圖書館裡可能有某出版社出版的數百本,甚至數千本書,但是在該檔案的每本書的記錄中都重複地出現出版社名和出版社地址。
2.設立資料庫的步驟
設計資料庫的方法之一是使用主題詞一屬性矩陣作為識別記錄和這些記錄之間關係的一個輔助工具。以下各步驟描述了這種設計資料庫的方法。
第一步,在圖20.6.10的主題詞一屬性矩陣的左邊列出了邏輯主題詞。在本例中,這些主題詞是:書名、作者和出版社。在矩陣的頂端列出了所有可能的屬性。屬性是提供與主題詞有關的信息的任一數據元。
圖20.6.10主題詞-屬性矩陣
第二步:在屬性與主題詞之間的關係有一對一的,一對多的或者不存在關係。例如,一特定書名只有一個出版社。所以在書名與出版社之間存在一對一的關係。然而,一個書名可以有幾個作者。因而,在書名與作者之間存在一對多的關係。在圖20.6.11中用"|"表示一對一關係,用"M"表示一對多關係,而且空白表示無關係存在。
第三步:資料庫記錄類似於傳統檔案的記錄,它是相關數據元的集合。可以將記錄從資料庫中讀出來,也可以將記錄寫到資料庫中去。資料庫記錄也稱為節段。在這一步,用主題詞-屬性矩陣來標識記錄。這是通過列出與每個主題詞一對一關係的屬性來實現的。通常,對應每個主題都有一個記錄,"書名"記錄包含出版社、出版年份和類別,如下所示:
第四步:資料庫設計過程的下一步是建立記錄之間的關係。圖20.6.11給出主題-屬性矩陣中指出的一對多的關係。出版社與書名之間的一對多的關係是用兩個記錄之間的一條連線來指出的,該連線有一箭頭指向出版社記錄。指向書名記錄的兩個箭頭表示每個出版社可以有一個以上的書名。這種出版社-書名的組合稱之為一個系。其它的系是:書名-作者、作者-出版社、作者-書名和出版社-作者。多對多的關係(每一端都有兩個箭頭)在處理時可能會引起混淆,因而是不允許的。
圖20.6.12一個完整的網路模型
第五步:下一步消去冗餘的屬性和系。記住,我們的目的是將作者、書名和出版社記錄輸入到資料庫,然後經由系建立的聯繫從不同的記錄中檢索數據。因此,必須消去對此目的是冗餘的那些系。在本例中,顯而易見作者-出版社系或作者-書名系是冗餘(重複)的,由於作者與書名相匹配的機會比它與出版社匹配的機會多,因此應該消去作者-出版社系。圖20.6.12給出了結果模式。該模式是資料庫邏輯結構的一種圖式表示。
現在圖書館館長可以進行如下的查詢:
①列出某作者寫的所有書的書名;
②按字母順序列出由Pientice-Hall在1981年出版的那些書的書名;
③列出1987年以來至少在三個出版社出版書的那些作者。
該資料庫(正如所設計的那樣)很容易實現上述查詢及其它類似的查詢。對圖書館原有檔案來說,類似的查詢不僅要求處理整個檔案,而且可能還要處理好幾遍。有時,還要求對檔案進行排序和合併。
如果圖書館館長在一年之後決定需要另一個記錄或屬性,那么,資料庫管理員(DBA)可以重新產生資料庫,增加屬性,甚至增加系而不影響現在的程式。
圖20.6.13表示該模式,而圖20.6.13表示資料庫結構的一個值。模式與值的關係類似於數據元與數據項的關係。一個是數據的定義,而另一個是實際的值或內容。