數據庫的發展與數據模型

寫在前面:博主是一只經過實戰開發歷練後投身培訓事業的“小山豬”,暱稱取自動畫片《獅子王》中的“彭彭”,總是以樂觀、積極的心態對待周邊的事物。本人的技術路線從Java全棧工程師一路奔向大數據開發、數據挖掘領域,如今終有小成,願將昔日所獲與大家交流一二,希望對學習路上的你有所助益。同時,博主也想通過此次嘗試打造一個完善的技術圖書館,任何與文章技術點有關的異常、錯誤、注意事項均會在末尾列出,歡迎大家通過各種方式提供素材。

  • 對於文章中出現的任何錯誤請大家批評指出,一定及時修改。
  • 有任何想要討論和學習的問題可聯繫我:[email protected]
  • 發佈文章的風格因專欄而異,均自成體系,不足之處請大家指正。

數據庫的發展與數據模型

本文關鍵字:數據庫、模型、層次模型、網狀模型、關係模型


數據庫的概念最早可以追溯到1960年,經過多年的發展和演變纔有了現在使用廣泛的關係型數據庫,被企業廣泛採用。

一、數據庫的誕生

數據庫領域的產生是源於對數據高效、便捷的管理需要,數據庫的演變也經歷了幾個階段。

1. 人工管理階段

最初計算機的用途主要是用於解決數據的計算問題,所以數據不需要長期保存。並且當時還沒有類似於磁盤的,可以直接存取的硬件設備,也沒有操作系統和可用於數據管理的軟件,所以數據主要是通過穿孔卡片來存儲。當時的數據管理就是對所有的這些穿孔卡片進行物理的存儲和處理,好吧,這真的很物理。

從數據的管理和利用的角度上來看,這種管理方式最要命的問題就是數據是面向應用的,無法共享。即使兩個計算任務或程序用到了相同的數據,也必須各自定義、各自組織,從而導致出現了大量重複的數據。

2. 文件系統階段

從1951年開始,陸續出現了類似於磁帶驅動器、磁盤等硬件存儲設備,並可以使用操作系統中的數據管理軟件進行操作,引發了數據管理的革命。使用磁盤進行存儲的最大好處是可以按需的存取數據,而穿孔卡片和磁帶只能順序存取數據。

這一階段的數據管理相對輕鬆了些,由於有了軟件和硬件的支持,所以對數據的存取操作相對簡單。由於程序可以通過文件路徑和名稱就可以完成對數據的訪問,不需要再關心數據的真正存儲位置(磁盤上具體的部位),自此數據便有了物理結構邏輯結構的區別,此時對於數據的讀取基本上以記錄爲單位。

3. 數據庫系統階段

到了19世紀60年代,計算機被使用的越來越廣泛,對於數據管理、數據共享方面的要求也越來越高,傳統的文件系統已經遠遠不能滿足使用上的需要。於是,能夠統一管理和共享數據的數據庫管理系統(DBMS)應運而生。

在數據庫系統階段,由於要對數據進行高效的管理,除了提供數據存儲的功能外,在進行數據讀取時,不僅要能描述數據本身,還要能夠描述數據與數據之間的關係,這就需要依賴數據模型來實現。同時,數據和應用程序彼此獨立,並依據模型將重複數據減少到最低程度,從而降低數據的冗餘度。除此之外,由於數據是由DBMS來進行管理,所以還提供了數據安全、完整性保證、數據備份、數據恢復等功能。

二、什麼是數據模型

數據模型是數據庫系統的核心和基礎,通常由數據結構、數據操作和數據約束3部分組成。

1. 數據結構

數據結構是所研究的對象(如表、視圖等)類型的集合,在數據庫系統中通常按照數據結構的類型來命名數據模型。傳統的數據模型有層次模型、網狀模型和關係模型。
通常數據結構主要描述數據的類型、內容、性質以及數據間的聯繫等,是目標類型的集合。目標類型是數據庫的組成成分,一般可分爲兩類:數據類型和數據類型之間的聯繫。數據結構是數據模型的基礎,數據操作和約束都基本建立在數據結構上,不同的數據結構具有不同的操作和約束。

2. 數據操作

數據操作是指對數據庫中各種對象(如表、視圖等)的實例(具體的某個表、視圖等)允許執行的操作的集合,數據庫主要有檢索(查)和更新(增、刪、改)兩大類操作。

3. 數據約束

數據約束主要描述數據結構內數據間的語法、詞義聯繫、他們之間的制約和依存關係,以及數據動態變化的規則,以保證數據的正確、有效和相容,是完整性規則的集合,這對於數據來說是一個很重要的要求。

三、數據模型的分類

數據庫領域的發展已經有了半個多世紀的歷史,可劃分爲三代數據庫。

  • 第一代數據庫

第一代數據庫的代表是1969年IBM公司研製的層次模型DBMS以及19世紀70年代由美國數據庫系統語言協商CODASYL下屬數據庫任務組DBTG提議的網狀模型DBMS。

  • 第二代數據庫

第二代數據庫的主要特徵是支持關係模型,也被稱之爲RDBMS,最早在1970年由IBM公司的研究員E.F.Codd提出,代表產品爲Sysem R。

  • 第三代數據庫

第三代數據庫將爲更加豐富的數據模型和更強大的數據管理功能爲特徵,以提供傳統數據庫系統問難以支持的新應用。它必須支持面向對象,具有開答放性,能夠在多個平臺上使用。

1. 網狀模型

最早出現的是網狀模型,網狀模型的基本結構是一個不加任何限制條件的無向圖。優點是能明確而方便地表示數據間的複雜關係;數據冗餘小。缺點在於網狀結構的複雜,增加了用戶查詢和定位的困難;需要存儲數據間聯繫的指針,使得數據量增大;數據的修改不方便。在關係型數據庫出現之前,網狀DBMS要比層次DBMS用的普遍,在數據庫發展史上也佔有重要地位。

2. 層次模型

層次型數據庫管理系統是緊隨網絡型數據庫出現的,層次模型的基本結構是樹形結構。優點是存取方便且速度快;結構清晰,容易理解;數據修改和數據庫擴展容易實現;檢索關鍵屬性十分方便。缺點是結構呆板,缺乏靈活性;同一屬性數據要存儲多次,數據冗餘度較高。

3. 關係模型

關係模型爲非格式化的結構,用單一的二維表的結構表示實體及實體之間的聯繫。優點在於結構特別靈活,概念單一,滿足所有布爾邏輯運算和數學運算規則形成的查詢要求;能搜索、組合和比較不同類型的數據;增加和刪除數據非常方便;具有更高的數據獨立性、更好的安全保密性。缺點是數據庫大時,查找滿足特定關係的數據費時;對空間關係無法滿足。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章