什么是數據庫?什么是關系數據庫?什么是非關系型數據庫?



本文內容:

  • 什么是數據庫
  • 什么是關系數據庫
  • 什么是非關系型數據庫

 

 

PS:雖然這些東西都是一些比較基礎常識的東西,但為了記錄自己的學習之路,也為了為以后的一些突發奇想留下“坑”,所以寫下了這篇博文。

首發日期:2018-04-07


什么是數據庫?

 

  • 數據庫是數據的倉庫。
  • 與普通的“數據倉庫”不同的是,數據庫依據“數據結構”來組織數據,因為“數據結構”,所以我們看到的數據是比較“條理化”的(比如不會跟以前的普通文件存儲式存儲成一個文件那么不條理化,我們的數據庫分成一個個庫,分成一個個表,分成一條條記錄,這些記錄是多么分明)
  • 也因為其“數據結構”式,所以有極高的查找速率(比如B-Tree查找法),(由於專精,可以根據自己的結構特性來快速查找,所以對於數據庫的查找會比較快捷;不像普通文件系統的“查找”那么通用)
  • 如果與EXCEL來比的話,能明顯的看出數據庫的好處,我們能給一個個“字段”添加“約束”(比如約束一列的值不能為空)
  • 數據庫與普通的文件系統的主要區別(起因):數據庫能快速查找對應的數據
  • 常說的XX數據庫,其實實質上是XX數據庫管理系統。數據庫管理系統是一個軟件,是數據庫管理的程序實現。

 

 


什么是關系型數據庫?

 

  • 關系型數據庫是依據關系模型來創建的數據庫。
  • 所謂關系模型就是“一對一、一對多、多對多”等關系模型,關系模型就是指二維表格模型,因而一個關系型數據庫就是由二維表及其之間的聯系組成的一個數據組織。
  • 關系型數據可以很好地存儲一些關系模型的數據,比如一個老師對應多個學生的數據(“多對多”),一本書對應多個作者(“一對多”),一本書對應一個出版日期(“一對一”)
  • 關系模型是我們生活中能經常遇見的模型,存儲這類數據一般用關系型數據庫
  • 關系模型包括數據結構(數據存儲的問題,二維表)、操作指令集合(SQL語句)、完整性約束(表內數據約束、表與表之間的約束)。

 

數據的存儲形式:

image

關系的處理形式:

image

 

下面是一個E-R圖,是多個模型一起用的情況:

image

 

常見的關系型數據庫:

Oracle、DB2、PostgreSQL、Microsoft SQL Server、Microsoft Access、MySQL

 

關系型數據庫的特點:

安全(因為存儲在磁盤中,不會說突然斷電數據就沒有了)、

容易理解(建立在關系模型上)、

但不節省空間(因為建立在關系模型上,就要遵循某些規則,好比數據中某字段值即使為空仍要分配空間)

 


什么是非關系型數據庫?

 

  • 非關系型數據庫主要是基於“非關系模型”的數據庫(由於關系型太大,所以一般用“非關系型”來表示其他類型的數據庫)
  • 非關系型模型比如有:
    • 列模型:存儲的數據是一列列的。關系型數據庫以一行作為一個記錄,列模型數據庫以一列為一個記錄。(這種模型,數據即索引,IO很快,主要是一些分布式數據庫)
    • 鍵值對模型:存儲的數據是一個個“鍵值對”,比如name:liming,那么name這個鍵里面存的值就是limingimage
    • 文檔類模型:以一個個文檔來存儲數據,有點類似“鍵值對”。image

 

 

 

常見非關系模型數據庫:

 

  • 列模型:Hbase
  • 鍵值對模型:redis,MemcacheDB
  • 文檔類模型:mongoDB

非關系型數據庫的特點:

效率高(因為存儲在內存中)、

但不安全(斷電丟失數據,但其中redis可以同步數據到磁盤中),現在很多非關系型數據庫都開始支持轉存到磁盤中。



免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM