iT邦幫忙

2019 iT 邦幫忙鐵人賽

DAY 11
0

目前使用過的資料庫都是關聯式資料庫,Oracle、SQL Server、MySQL等

趁這次鐵人賽來學習一下NoSQL

NoSQL

我們這邊先從NoSQL的歷史說起,NoSQL一詞最早是在1998年就由Carlo Strozzi所提出,但當初它的設計還是使用RDBMS(關聯式資料庫)的概念,單純只是不使用SQL語法當作存取介面

一直到2009年才出現出眾多新型態的NoSQL資料庫,這與Strozzi NoSQL不同的地方在於,除了不使用SQL語法當存取介面,連資料庫儲存型態也不再是RDBMS(關聯式資料庫)了

這時候NoSQL DB 就可說是non-Relational 且non-SQL 的DB。

那麼怎樣的資料庫我們可以說它是NoSQL型態的資料庫呢?
以下是整理的要項:

非關聯式-Non Relational

這是普遍對NoSQL的解釋,強調Key-Value Stores和文件資料庫的優點,而不是單純的反對RDBMS

分散式與水平式擴充-Distributed & Horizontal Scalable

一般的設計都能透過硬體的分散式叢集來向外擴展,藉此就可以使用較為便宜的機器去水平擴充,達到大量數據的處理
以MongoDB的Sharding為例,每個Shard儲存Collection的部分資料以MongoDB的Sharding為例

開放式原始碼-Open Source

相較於RDBMS,NoSQL類型資料庫都以開放式原始碼提供開發者做使用。

這邊也提供NoSQL資料庫特徵

  • 無固定綱要-schema free
  • 容易進行複製-easy replication support
  • 簡單的API-simple API
  • BASE特性
    • Basically Available(基本可用)-盡可能滿足CAP中的A和P
    • Soft-state(軟狀態)-資料狀態可以有一段時間不一致
    • Eventual Consistency(最終一致性)-不強調高一致性
    • Huge amount of Data

資料來源
NOSQL Databases


上一篇
Day 10 .net Core概念 & 安裝
下一篇
Day 12 MongoDB 資料庫介紹
系列文
三十天利用Angular與.net Core開發實戰一波32
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言