首頁技術文章正文

關系數據庫和非關系型數據庫詳解

更新時間:2020-09-18 來源:黑馬程序員 瀏覽量:

根據存儲數據時所用數據模型的不同,當今互聯(lián)網中的的數據庫主要分為兩種:關系型數據庫和非關系型數據庫。

1. 關系型數據庫

關系型數據庫是指采用關系模型(即二維表格形式)組織數據的數據庫系統(tǒng),它由數據表和數據表之間的關系組成,主要包含以下核心元素:

數據行:一條記錄,相當于Python對象;

數據列:字段,相當于Python對象的屬性;

數據表:數據行的集合;

數據庫:數據表的集合。

下面看一個數據表的示例,如圖1所示。

1600420475892_數據表示例.png

關系型數據庫經歷了幾十年的發(fā)展,技術比較成熟,因其具有容易理解、操作簡單、便于維護的特點,而被廣泛應用到各個行業(yè)的數據管理中。目前,主流的關系型數據庫有Oracle、MySQL、IBM Db2、PostgreSQL、Microsoft SQL Server、Microsoft Access等,其中使用較多的有Oracle和MySQL數據庫。

2. 非關系型數據庫

非關系型數據庫也被稱為NoSQL(Not Only SQL)數據庫,是指非關系型的、分布式的數據存儲系統(tǒng)。與關系型數據庫相比,非關系型數據庫無需事先為要存儲的數據建立字段,它沒有固定的結構,既可以擁有不同的字段,也可以存儲各種格式的數據。

非關系型數據庫的種類繁多。按照不同的數據模型,非關系型數據庫主要可以分為列存儲數據庫、鍵值存儲數據庫、文檔型數據庫,下面分別介紹這些數據庫各自的特征及適用范圍。

(1) 鍵值(Key-Value)存儲數據庫

鍵值存儲數據庫采用鍵值結構存儲數據,每個鍵分別對應一個特定的值。這類數據庫具有易部署、查詢速度快、存儲量大、高并發(fā)操作等特點,適用于處理大量數據的高訪問負載和一些日志系統(tǒng)等。

鍵值存儲數據庫的典型代表有Redis、Flare、MemcacheDB等。

(2) 列式(Column-Oriented)存儲數據庫

列式存儲數據庫采用列式結構存儲數據,將同一列數據存儲到一起。這類數據庫具有查詢速度快、可擴展性強等特點,更容易進行分布式擴展,適用于分布式的文件系統(tǒng)。

列式存儲數據庫的典型代表有Hbase、Cassandra等。

(3) 文檔型(Document-Oriented)存儲數據庫

文檔型存儲數據庫的結構與鍵值存儲數據庫類似,采用文檔(如JSON或XML等格式)結構存儲數據,每個文檔中包含多個鍵值對。這類數據庫的數據結構要求并不嚴格,具有表結構可變、查詢速度更快的特點,適用于Web應用的場景。

文檔型數據庫的典型代表有MongoDB、CouchDB等。

為了讓讀者更好地理解文檔型數據庫的數據結構,這里以MongoDB為例進行介紹。MongoDB數據庫主要包含3個核心元素,分別為文檔、集合和數據庫,各個元素的介紹如下。

·文檔:由JSON或XML數據構成的對象,對應關系數據庫中的行;

·集合:文檔的物理容器,對應關系數據庫中的表;

·數據庫:集合的物理容器,一個數據庫中可以包含多個文檔;

在眾多數據庫中,MySQL、MongoDB和Redis都是比較突出的,應用也比較廣泛。針對這些主流的數據庫,Python提供了包或模塊實現(xiàn)程序與數據庫交互。例如,使用pymysql庫操作MySQL數據庫,使用pymongo模塊操作MongoDB數據庫,使用redis模塊操作Redis數據庫。


猜你喜歡:

數據庫是什么?數據庫由哪幾部分組成?

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

什么是數據庫?數據庫有什么特點?

mysql5.5安裝教程:mysql下載與安裝

Python培訓課程

分享到:
在線咨詢 我要報名
和我們在線交談!