最全的資料庫分類及實例介紹

2020-12-13 itworld123

資料庫從字面上的理解就是數據的倉庫,其實我們平時說的資料庫是指資料庫管理系統(Database Management System),它是一種操縱和管理資料庫的大型軟體,用於建立、使用和維護資料庫,簡稱DBMS。嚴格來說資料庫是資料庫管理系統的實例,一個資料庫管理系統可以有多個資料庫實例。

資料庫種類很多,我們平時接觸最多的恐怕就是Oracle資料庫,或者MySQL數據。兩者是應用最廣泛的關係型數據。如圖1是2018年12月份使用情況排名,從排名也可以看出上述兩個資料庫分別排第一名和第二名。

圖1 資料庫排名

資料庫的分類

如果仔細看圖1的排名就可以看到,資料庫不僅僅有我們平時學到的關係型資料庫,還有鍵值(Key-Value)資料庫、列存儲資料庫、文檔資料庫和搜尋引擎等類型。下面本文將簡單介紹一下各種類型的數據。

關係型資料庫: 這種類型的資料庫是最古老的資料庫類型,關係型資料庫模型是把複雜的數據結構歸結為簡單的二元關係(即二維表格形式), 如圖2是一個二維表的實例。通常該表第一行為欄位名稱,描述該欄位的作用,下面是具體的數據。在定義該表時需要指定欄位的名稱及類型。

圖2 資料庫表實例

在關係型資料庫中,對數據的操作幾乎全部建立在一個或多個關係表格上。在大型系統中通常有多個表,且表之間有各種關係。實際使用就是通過對這些關聯的表格分類、合併、連接或選取等運算來實現資料庫的管理。

鍵值存儲資料庫:鍵值資料庫是一種非關係資料庫,它使用簡單的鍵值方法來存儲數據。鍵值資料庫將數據存儲為鍵值對集合,其中鍵作為唯一標識符。

3

如圖2是某公有雲的鍵值存儲示意圖,其中鍵包含分區鍵和排序鍵,而值包含更多的實際信息。比如實際使用是可以以學號為鍵,姓名、性別、年齡和班級等信息為值進行存儲。實際存儲形式很靈活,是業務需求自行定義即可。

列存儲資料庫:列式存儲(column-based)是相對於傳統關係型資料庫的行式存儲(Row-basedstorage)來說的。簡單來說兩者的區別就是對表中數據的存儲形式的差異。

圖4 列存儲數據

如圖4是傳統行資料庫和列資料庫表中數據在磁碟上的存儲形式的差異對比。對於行存儲資料庫,表中的數據是以行為單位逐行存儲在磁碟上的;而對於列存儲資料庫,表中的數據則是以列為單位逐列存儲在磁碟中。

列存儲解決的主要問題是數據查詢問題。我們知道,平時的查詢大部分都是條件查詢,通常是返回某些欄位(列)的數據。對於行存儲數據,數據讀取時通常將一行數據完全讀出,如果只需要其中幾列數據的情況,就會存在冗餘列,出於縮短處理時間的考量,消除冗餘列的過程通常是在內存中進行的。而列存儲,每次讀取的數據是集合的一段或者全部,不存在冗餘性問題。這樣,通過這種存儲方式的調整,使得查詢性能得到極大的提升。

面向文檔資料庫:此類資料庫可存放並獲取文檔,可以是XML、JSON、BSON等格式,這些文檔具備可述性(self-describing),呈現分層的樹狀結構(hierarchical tree data structure),可以包含映射表、集合和純量值。資料庫中的文檔彼此相似,但不必完全相同。文檔資料庫所存放的文檔,就相當於鍵值資料庫所存放的「值」。文檔資料庫可視為其值可查的鍵值資料庫。

圖形資料庫:圖形資料庫顧名思義,就是一種存儲圖形關係的資料庫。圖形資料庫是NoSQL資料庫的一種類型,它應用圖形理論存儲實體之間的關係信息。關係型數據用於存儲明確關係的數據,但對於複雜關係的數據存儲卻有些力不從心。如圖4這種人物之間的關係,如果用關係型資料庫則非常複雜,用圖形資料庫將非常簡單。

圖4 圖形資料庫示例

搜尋引擎存儲:搜尋引擎資料庫是應用在搜尋引擎領域的數據存儲形式,由於搜尋引擎會爬取大量的數據,並以特定的格式進行存儲,這樣在檢索的時候才能保證性能最優。

不同類型資料庫軟體

關係型資料庫: 關係型資料庫最為經典的開源軟體就是MySQL,它最流行的開源關係型資料庫管理系統,在 WEB 應用方面 MySQL 是最好的 RDBMS(Relational Database Management System:關係資料庫管理系統)應用軟體之一。

SUN被甲骨文收購後,MySQL 的原創人員有拉出另外一個分支,命名MariaDB 。該資料庫被維基百科,Facebook 甚至 Google 等技術巨頭使用。 MariaDB 是一種可為 MySQL 提供插件替換功能的資料庫伺服器。開發人員的首要關注點是安全性,在每個版本發布時,開發人員還會合併所有 MySQL 的安全修補程序,並在需要時對其進行增強。

除此之外,還有很多開源的關係型資料庫,比如經典的文件資料庫SQLite和針對Web服務進行優化的CUBRID 等。

鍵值存儲資料庫:鍵值資料庫目前應用最多的應該是Redis,Redis是一個開源的使用ANSI C語言編寫、支持網絡、可基於內存亦可持久化的日誌型、Key-Value資料庫,並提供多種語言的API。Redis通常最為普通關係型資料庫的緩存層,用於降低資料庫的訪問壓力,提升系統性能。

列存儲資料庫:列存儲資料庫中最為出名的恐怕就是HBase了,HBase是 BigTable 的開源 java 版本。是建立在 HDFS 之上,提供高可靠性、高性能、列存儲、 可伸縮、實時讀寫 NoSQL 的資料庫系統。

面向文檔資料庫:文檔資料庫種類繁多,包括MongoDB、CouchDB、 Terrastore、RavenDB和OrientDB等多大十幾個。其中MongoDB是目前最為流行的文檔資料庫,其介於關係資料庫和非關係資料庫之間的產品,是非關係資料庫當中功能最豐富,最像關係資料庫的。其最大的特點是分布式部署,可以隨著負載的增大動態擴容,從而滿足企業業務增長的需求。

圖形資料庫:圖形種類很多,比如Neo4J、ArangoDB、OrientDB、FlockDB、GraphDB、InfiniteGraph、Titan和Cayley等。其中Neo4j 是目前最流行的圖形資料庫,支持完整的事務,在屬性圖中,圖是由頂點(Vertex),邊(Edge)和屬性(Property)組成的,頂點和邊都可以設置屬性,頂點也稱作節點,邊也稱作關係,每個節點和關係都可以由一個或多個屬性。Neo4j創建的圖是用頂點和邊構建一個有向圖,其查詢語言cypher已經成為事實上的標準。

搜尋引擎存儲:搜尋引擎資料庫最近比較火的包括Solr和Elasticsearch等。Solr是Apache 的一個開源項目,基於業界大名鼎鼎的java開源搜尋引擎Lucene。在過去的十年裡,solr發展壯大,擁有廣泛的用戶群體。solr提供分布式索引、分片、副本集、負載均衡和自動故障轉移和恢復功能。如果正確部署,良好管理,solr就能夠成為一個高可靠、可擴展和高容錯的搜尋引擎。

Elasticsearch構建在Apache Lucene庫之上,同是開源搜尋引擎。Elasticsearch在Solr推出幾年後才面世的,通過REST和schema-free的JSON文檔提供分布式、多租戶全文搜尋引擎。並且官方提供Java,Groovy,PHP,Ruby,Perl,Python,.NET和Javascript客戶端。目前Elasticsearch與Logstash和Kibana配合,部署成日誌採集和分析,簡稱ELK,它們都是開源軟體。最近新增了一個FileBeat,它是一個輕量級的日誌收集處理工具(Agent),Filebeat佔用資源少,適合於在各個伺服器上搜集日誌後傳輸給Logstash。

好了,今天先到這,關於資料庫更為詳細的文章,請參考本號之後的文章。

相關焦點

  • 創建多個Oracle資料庫及相應的實例
    對於使用過SQL Server資料庫的用戶可以會對Oracle中的資料庫的實例的概念理解的不是很好,所以我產生了寫一篇博文的想法。基礎概念一般Oracle資料庫(Oracle Database)可以分為兩部分,即實例(Instance)和資料庫(Database)。
  • 管理Analysis Services實例和資料庫
    【IT168 技術文檔】    ·管理 Analysis Services  您將使用 SQL Server Management Studio 來管理您的 Analysis Services 實例和資料庫,SQL Server Management Studio 是一個適用於所有 SQL Server
  • Oracle資料庫應用級數據備份與恢復|實例講解
    一、什麼是Oracle資料庫系統Oracle資料庫系統是美國 Oracle 公司(甲骨文)提供的以分布式資料庫為核心的一組軟體產品,目前最流行的客戶 伺服器 (CLIENT/ 或 B/S 體系結構)資料庫之一,Oracle 資料庫本身提供了對資料庫物理文件進行冷備份和在線備份兩種方式
  • 什麼是雲資料庫?雲資料庫機型版本和產品架構介紹
    老劉博客之前有文《雲資料庫有什麼用?UCloud海外MySQL雲資料庫促銷最低5折》介紹了近期UCloud的雲資料庫促銷活動內容,今天老劉博客這裡依UCloud優刻得雲資料庫UDB MySQL為例,和朋友們分享什麼是雲資料庫以及雲資料庫機型版本和產品架構是什麼樣的。
  • UniProt 資料庫介紹
    UniProt 是目前資源最豐富、使用頻率最高的蛋白序列資料庫,今天,我們就介紹下 UniProt 資料庫及其使用。1、資料庫介紹UniProt (The Universal Protein Resource) 是信息最豐富、資源最廣的蛋白質序列資料庫,整合 Swiss-Prot、TrEMBL 和 PIR 三大資料庫的數據而成。
  • 蛋白質資料庫UniProt介紹
    平臺上有一份某國內重點實驗室分子生物學實驗方法匯總,需要下載的朋友,長按下面二維碼,關注後再回覆:匯總今天給大家介紹一下蛋白質資料庫        UniProt(全稱Universal Protein),它整合了三個老字號資料庫(Swiss-Prot、 TrEMBL 和 PIR-PSD )的數據。是目前信息最豐富、資源最廣的免費蛋白質資料庫(注意沒有之一哦!)。今天我帶大家來簡單遊覽一下這個龐大的「蛋白質數據公園」。
  • 知識:MySQL資料庫語句實例
    目前MySQL資料庫是網站比較常用的,這種資料庫安全可靠。那麼專業的技術人員該如何寫好資料庫的語句呢?在下面的內容中,廊坊網站建設公司會將自己的一些經驗分享給大家。網站資料庫實例1、顯示某一列出現過N次的值:SELECTidFROMtbl
  • 如何正確地創建和銷毀軟體應用系統中JDBC資料庫連接對象實例
    如下示圖為Oracle公司官方發布的JDBC技術參考文檔中對JDBC的技術特性介紹的部分文字的局部截圖,讀者可以更加權威地了解到JDBC編程接口的主要功能。然後在Connection對象實例的基礎上再構造出相應的語句(如Statement類型或者PreparedStatement類型)類對象實例。所有的資料庫訪問操作都是在Connection對象實例的基礎上完成的,它代表對資料庫表中數據訪問的一次會話。因此,軟體應用系統的開發人員有必要正確地創建出Connection類的對象實例。
  • 我國海洋底棲動物有了規範化分類資料庫
    近日,自然資源部第二海洋研究所組織專家在杭州召開「底棲動物分類鑑定技術與資料庫在典型海洋生態監測中的應用」項目自驗收會議。會上,專家組在聽取了任務負責人的匯報、審閱了項目組提交的各項成果資料後,一致同意項目通過自驗收。
  • MySQL資料庫實例管理器命令行選項詳解
    首頁 > 語言 > 關鍵詞 > 資料庫最新資訊 > 正文 MySQL資料庫實例管理器命令行選項詳解
  • 圖資料庫的類別有哪些?數易軒解讀:圖資料庫分類與原理
    圖資料庫作為新興NoSQL資料庫的代表,可以分為四種類型。圖資料庫應用廣泛,無論是網際網路行業還是傳統的金融、地產、醫療等行業,都可以通過圖資料庫的應用進一步提升企業效率。數易軒致力於圖資料庫技術服務,為您介紹圖資料庫的四個分類。
  • 「全自動洗車機」百家號權重排名-最全作者資料庫,自媒體軟文推廣...
    「全自動洗車機」百家號權重排名-最全作者資料庫,自媒體軟文推廣平臺 備註:本文數據來自站長之家移動傳媒平臺,文章涉及的數據依託平臺大數據計算所得,非百度官方數據,僅供參考
  • 跨資料庫實例查詢應用實踐
    一、背景隨著業務複雜程度的提高、數據規模的增長,越來越多的公司選擇對其在線業務資料庫進行垂直或水平拆分,甚至選擇不同的資料庫類型以滿足其業務需求。原本在同一資料庫實例裡就能實現的SQL查詢,現在需要跨多個資料庫實例才能完成。
  • 三大基礎公共資料庫介紹
    本期推文將介紹三大綜合類公共資料庫NCBI、EMBL和IMG。Gene資料庫是目前最權威的基因注釋資料庫,依照基因的發現順序由1到多位數字構成Gene ID,如下所示:⑴EnsembleEMBL-EBI現有Ensembl和Ensembl Genomes基因組序列資料庫(http://www.ensembl.org/index.html),其中Ensembl提供高質量、綜合注釋的脊椎動物基因組數據,Ensembl Genomes提供非脊椎動物全基因組數據,該資料庫並不包含原核生物數據。
  • 你真的學好資料庫了嗎?最全資料庫學習路線及課時內容計劃詳解!
    前言現如今資料庫已經成為所有IT從業者必不可少的一項技能技術,不管您從事的是技術、產品、運營亦或是算法等網際網路的崗位都需要和資料庫技術相伴,資料庫技術也隨著網際網路技術的進步和革新一步步走向雲端走向海量,下面就跟我梳理的內容一起了解一下資料庫技術的學習內容及各階段要求詳解。
  • 深度學習變革視覺實例搜索
    , ALISC)中出現的相關方法,介紹一些實踐中可以提高實例搜索性能的技巧和方法。首先,本篇文章介紹了一個名為DeepFashion的衣服資料庫。該資料庫包含超過800K張的衣服圖片,50個細粒度類別和1000個屬性,並還額外提供衣服的關鍵點和跨姿態/跨領域的衣服對關係(cross-pose/cross-domain pair correspondences),一些具體例子如下圖所示:
  • 數易軒圖資料庫:你知道資料庫的分類嗎?圖資料庫是什麼
    資料庫發展至今已有三十多年,全球資料庫的廠家多達幾十個,傳統的關係型資料庫雖然仍佔有著很大的市場份額,但越來越多的企業開始接觸圖資料庫這個NoSQL資料庫的行業黑馬。能夠高效地處理複雜、龐大的數據關係。數易軒致力於圖資料庫技術服務,為您介紹資料庫的分類。
  • 2020:AWS雲上八大類型資料庫簡介
    如上圖所示,AWS上一共有八個類別的資料庫,基本涵蓋了各種常見的資料庫,除了關係型資料庫,還有鍵值資料庫、寬表資料庫、文檔資料庫、內存資料庫、圖資料庫、時序資料庫以及分類帳資料庫,其中,關係型資料庫種類最多,用的人也最多。我們今天從最常用的關係型資料庫開始,梳理一下AWS雲上資料庫,以及他們的主要用法。
  • 資料庫事務處理原理與實例剖析
    【IT168專稿】本文根據【2016 第七屆中國資料庫技術大會】現場演講嘉賓葉濤老師分享內容整理而成。錄音整理及文字編輯IT168@楊璐【微信搜索DTCC2014,關注中國資料庫技術大會公眾號】  講師簡介
  • SQL語言基礎:資料庫語言概念介紹
    1、概念介紹SQL(Structured Query Lanauage)結構化查詢語言是關係資料庫中最普遍使用的語言。主要包括查詢、數據操縱、數據定義、數據控制功能,是一種通用的、功能強大的關係資料庫的標準語言。