資料庫學習筆記1(資料管理歷史)
資料管理歷史
觀史可以知今,通過對資料管理歷史的學習,可以學習資料庫歷史發展的歷程,學習關聯式資料庫誕生的背景,非關聯式資料庫誕生的原因,被歷史淘汰資料庫被淘汰的原因,從而對資料庫使用有更加深刻的理解。
檔案系統
最早期(1960年前)的資料管理使用的是檔案系統,將資料存在檔案中,通過讀取寫入檔案運算元據。
劣勢:
(1)編寫程式很不方便,程式設計師不僅需要對檔案的邏輯物理結構瞭解,還必須直接操作檔案進行讀寫資料,而且作業系統只提供了有限的幾個開啟,關閉,讀,寫的低階api,所以使用檔案系統儲存資料程式設計效率極低。
(2)檔案儲存的資料不支援併發訪問。
(3)資料儲存缺少統一管理,各種格式不統一,資料安全性也不好。
(4)檔案資料獨立性也不好。
(5)資料冗餘不可避免,為了滿足不同應用程式的要求,不得不增加各種資料冗餘,資料的一致性也無法保證。
正因為以上種種的原因,開始出現資料庫,將資料統一管理,統一格式,將大部分事情交給資料庫,而程式設計師或者dba只要完成少部分事情,方便多了。
層次資料庫
1964年出現了世界上第一個DBMS,是一個層次資料庫,層次資料庫是一種樹形資料庫。因為現實世界中很多事物是按層次組織起來的,比如學校下有若干學院,學院下有若干班,班下有若干學生,為了模擬這類的事物,就出現了層次資料模型。
層次資料模型最基本的關係就是雙親子女關係,每個記錄可以有一個父節點,可以有多個子節點(天然1對多關係),要想表示多對多關係,就必須使用虛擬記錄(指標),但大量的指標增加了資料庫的開銷,也導致資料模式不夠清晰和直觀,非專業人員根本搞不懂資料庫的使用。
到了現在,層次資料庫需要高效能和高可用的地方還在被使用,比如銀行和通訊方面。
網狀資料庫
1969年第一次出現網狀資料模型,網狀資料模型用網狀結構(連結串列套連結串列)來表示現實世界。網狀資料模型與層次資料模型相比優勢在於其對於層次和非層次結構的事務都可以比較自然的模擬,因此在關係型資料模型之前,網狀資料庫比層次資料更加普遍。但缺點還是專業性要求太高,資料模式不夠清晰。
關聯式資料庫
1970年,有人提出了關係型資料庫,從被提出起,關係型資料庫就因為其資料模型的簡單易懂,高度抽象,外行也很容易學會的類自然語言(sql語言)成為了資料庫界的主流,雖然中間波折不斷,也有很多人反對。
關係資料模型使用關係(表)來表示現實世界。
相比而言,關係資料模型好用很多,但也有缺點比如速度太慢(後來對查詢優化的研究很大的彌補了這個缺點),表達能力仍然不夠,無法表示很多資料(比如多媒體資料,圖資料等)。
非關係型資料庫
由於傳統資料庫的不足(以上三種資料庫),從20世紀70年代後期開始,陸續出現了各種非關係型資料庫,這些非關係型資料庫在不同的特定領域中展現了各自的優勢,而關聯式資料庫繼續是主流,下面介紹幾種非關係型資料庫。
物件資料模型:使用一個個的物件來表示現實世界。
時態資料庫:傳統的資料庫無法儲存不同時間的不同資料,比如公司員工工資一直會有變化,只能查詢到現在的工資,想查詢某個時間的工資就不行了,而時態資料庫不僅能儲存資料,還能儲存時間。
還有字典資料庫redis,文件資料庫mongodb等。
參考:資料庫系統教程(上冊) 王能斌
相關文章
- 資料庫學習筆記資料庫筆記
- 資料庫學習與複習筆記--資料庫概念和不同類資料庫CRUD操作(1)資料庫筆記
- 1029學習筆記 資料庫筆記資料庫
- python學習筆記:資料庫Python筆記資料庫
- MySQL資料庫學習筆記MySql資料庫筆記
- 資料庫mysql學習筆記記錄資料庫MySql筆記
- 資料結構學習筆記1資料結構筆記
- Redis學習筆記(七) 資料庫Redis筆記資料庫
- 達夢資料庫學習筆記資料庫筆記
- swoft 學習筆記之資料庫操作筆記資料庫
- 資料庫學習筆記——20 使用遊標資料庫筆記
- 資料庫學習筆記之查詢表資料庫筆記
- 資料結構學習筆記-先序遍歷森林資料結構筆記
- MySQL資料庫學習筆記02(事務控制,資料查詢)MySql資料庫筆記
- 《Python入門與資料科學庫》學習筆記Python資料科學筆記
- MySQL資料庫初級學習筆記---第一章-資料庫概述MySql資料庫筆記
- 飛機的 PHP 學習筆記八:資料庫PHP筆記資料庫
- MySQL學習筆記-使用Navicat操作MySQL資料庫MySql筆記資料庫
- 資料庫學習筆記 - MySQL基礎知識資料庫筆記MySql
- Sqlite學習筆記之Sqlite歷史SQLite筆記
- SQLSERVER學習1——資料庫概念SQLServer資料庫
- PHP 資料加密 (學習筆記)PHP加密筆記
- 資料結構學習筆記資料結構筆記
- 第1章 下載A股歷史資料
- docker學習筆記(4)- 應用資料管理(容器外)Docker筆記
- python學習筆記1—python的基本資料型別Python筆記資料型別
- Redis學習筆記 – 資料型別與API(1)KeyRedis筆記資料型別API
- 飛機的 PHP 學習筆記之資料庫篇PHP筆記資料庫
- Java-每日學習筆記(資料庫與idea技巧)Java筆記資料庫Idea
- orientDB學習筆記(三)資料庫 構架設計筆記資料庫
- 資料庫學習:許可權管理資料庫
- 達夢資料庫日常管理之問題處理筆記1資料庫筆記
- 大資料之 Hadoop學習筆記大資料Hadoop筆記
- 資料結構學習筆記--棧資料結構筆記
- Python 學習筆記——資料型別Python筆記資料型別
- C/C++ Qt 資料庫與Chart實現歷史資料展示C++QT資料庫
- 向量資料庫Chroma學習記錄資料庫
- 資料科學的歷史,從洞穴壁畫到大資料資料科學大資料