資料庫學習筆記1(資料管理歷史)

wuqindeyunque發表於2019-03-24

資料管理歷史

觀史可以知今,通過對資料管理歷史的學習,可以學習資料庫歷史發展的歷程,學習關聯式資料庫誕生的背景,非關聯式資料庫誕生的原因,被歷史淘汰資料庫被淘汰的原因,從而對資料庫使用有更加深刻的理解。
Created with Raphaël 2.2.0檔案系統層次資料庫網狀資料庫關聯式資料庫關聯式資料庫仍是主流,多種非關係型資料庫百花齊放

檔案系統

最早期(1960年前)的資料管理使用的是檔案系統,將資料存在檔案中,通過讀取寫入檔案運算元據。
劣勢:
(1)編寫程式很不方便,程式設計師不僅需要對檔案的邏輯物理結構瞭解,還必須直接操作檔案進行讀寫資料,而且作業系統只提供了有限的幾個開啟,關閉,讀,寫的低階api,所以使用檔案系統儲存資料程式設計效率極低。
(2)檔案儲存的資料不支援併發訪問。
(3)資料儲存缺少統一管理,各種格式不統一,資料安全性也不好。
(4)檔案資料獨立性也不好。
(5)資料冗餘不可避免,為了滿足不同應用程式的要求,不得不增加各種資料冗餘,資料的一致性也無法保證。
正因為以上種種的原因,開始出現資料庫,將資料統一管理,統一格式,將大部分事情交給資料庫,而程式設計師或者dba只要完成少部分事情,方便多了。

層次資料庫

1964年出現了世界上第一個DBMS,是一個層次資料庫,層次資料庫是一種樹形資料庫。因為現實世界中很多事物是按層次組織起來的,比如學校下有若干學院,學院下有若干班,班下有若干學生,為了模擬這類的事物,就出現了層次資料模型。
層次資料模型最基本的關係就是雙親子女關係,每個記錄可以有一個父節點,可以有多個子節點(天然1對多關係),要想表示多對多關係,就必須使用虛擬記錄(指標),但大量的指標增加了資料庫的開銷,也導致資料模式不夠清晰和直觀,非專業人員根本搞不懂資料庫的使用。
到了現在,層次資料庫需要高效能和高可用的地方還在被使用,比如銀行和通訊方面。

網狀資料庫

1969年第一次出現網狀資料模型,網狀資料模型用網狀結構(連結串列套連結串列)來表示現實世界。網狀資料模型與層次資料模型相比優勢在於其對於層次和非層次結構的事務都可以比較自然的模擬,因此在關係型資料模型之前,網狀資料庫比層次資料更加普遍。但缺點還是專業性要求太高,資料模式不夠清晰。

關聯式資料庫

1970年,有人提出了關係型資料庫,從被提出起,關係型資料庫就因為其資料模型的簡單易懂,高度抽象,外行也很容易學會的類自然語言(sql語言)成為了資料庫界的主流,雖然中間波折不斷,也有很多人反對。
關係資料模型使用關係(表)來表示現實世界。
相比而言,關係資料模型好用很多,但也有缺點比如速度太慢(後來對查詢優化的研究很大的彌補了這個缺點),表達能力仍然不夠,無法表示很多資料(比如多媒體資料,圖資料等)。

非關係型資料庫

由於傳統資料庫的不足(以上三種資料庫),從20世紀70年代後期開始,陸續出現了各種非關係型資料庫,這些非關係型資料庫在不同的特定領域中展現了各自的優勢,而關聯式資料庫繼續是主流,下面介紹幾種非關係型資料庫。
物件資料模型:使用一個個的物件來表示現實世界。
時態資料庫:傳統的資料庫無法儲存不同時間的不同資料,比如公司員工工資一直會有變化,只能查詢到現在的工資,想查詢某個時間的工資就不行了,而時態資料庫不僅能儲存資料,還能儲存時間。
還有字典資料庫redis,文件資料庫mongodb等。

參考:資料庫系統教程(上冊) 王能斌

相關文章