一,數據庫的種類
最常見的數據庫類型分為兩種,關系型數據庫和非關系型數據庫。
二,關系型數據庫介紹
生產環境主流的關系型數據庫有 Oracle、SQL Server、MySQL/MariaDB等。
- 關系型數據庫在存儲數據時實際就是采用的一張二維表(和 Word 和 Excell 里表格幾乎一樣)。
- 市場占有量較大的是 MySQL 和 Oracle 數據庫,而互聯網場景最常用的是 MySQL 數據庫。
- 通過 SQL 結構化查詢語言來存取、管理關系型數據庫的數據。
- 關系型數據庫在保持數據安全和數據一致性方面很強,遵循 ACID 理論
非關系型數據庫介紹
生產環境主流的非關系型數據庫有 MongoDB、Memcached、Redis 。
非關系型數據庫也叫NoSQL數據庫
NoSQL:“的本意是 “Not Only SQL”,指的是非關系型數據庫,主要是對于規模很大的海量數據,和高并發SNS(Social Networking Services,即社交網絡服務。”
- NoSQL 格式靈活:存儲數據的格式可以是key-value形式、文檔形式、圖片形式等等使用靈活,應用場景廣泛。
- NoSQL 數據庫為了靈活及高性能、高并發、速度快而產生。
- NoSQL 數據庫領域,當今的最典型產品為 Redis(持久化緩存)、MongoDB、Memcached(純內存)等。
- NoSQL 數據庫沒有標準的查詢語言(SQL)。
- NoSQL 成本低:nosql數據庫部署簡單,基本都是開源軟件。
常見的關系型數據庫管理系統
1、Oracle 數據庫
-
Oracle 公司是目前全球最大的數據庫軟件公司。
-
主要應用范圍:傳統大企業,大公司,政府,金融,證券等等。
2,MySQL數據庫
- MySQL 數據庫主要應用范圍:互聯網領域,大中小型網站,游戲公司,電商平臺等等。
3,MariaDB數據庫
-
MariaDB 數據庫管理系統是 MySQL 數據庫的一個分支,主要由開源社區維護。
-
開發 MariaDB 數據庫的目的是完全兼容 MySQL 數據庫,包括 API 和命令行,使之能輕松的成為 MySQL 的代替品。
4,SQL Server 數據庫
-
Microsoft SQL Server是微軟公司開發的大型關系型數據庫系統。1989年,微軟發布了 SQLServer1.0 版。
-
SQL Server 可以與 Windows 操作系統緊密集成。SQL Server 的缺點是只能在 Windows 系統下運行。
-
主要應用范圍:部分企業電商,使用windows服務器平臺的企業
非關系型數據庫管理系統
1,Memcached(Key-Value)
-
Memcached 是一個開源的、高性能的、具有分布式內存對象的緩存系統。通過它可以減輕數據庫負載,加速動態的 Web 應用,注意:Memcache 是這個項目的名稱,而Memcached 是服務器端的主程序文件名。
-
緩存一般用來保存一些經常被存取的對象或數據(例如,瀏覽器會把經常訪問的網頁緩存起來一樣),通過緩存來存取對象或數據要比在磁盤上存取快很多,Memcached 是一種純內存緩存系統,把經常存取的對象或數據緩存在 Memcached 的內存中,數據以 Key-Value 的方式存儲。Memcached 通過緩存經常被存取的對象或數據,從而減輕頻繁讀取數據庫的壓力,提高網站的響應速度.官方:http://Memcached.org/
-
由于Memcached 為純內存緩存軟件,一旦重啟所有數據都會丟失。所以最近幾年逐漸被其他的持久化產品替代例如Redis。
2,Redis(Key-Value)
- Redis 是一個Key-Value 型存儲系統。但Redis支持的存儲value 類型相對更多,包括 string(字符串)、list(鏈表)等。Redis 的數據都是緩存在內存中,區別是 Redis 會周期性的把更新的數據寫入磁盤或者把修改操作寫入追加的記錄文件,并且在此基礎上實現了 Master-Slave(主從)同步。
- Redis 是一個高性能的 Key-Value 數據庫。它提供了 Python,Ruby,Erlang,PHP 客戶端,使用很方便。
- 官方:http://www.Redis.io/documentation
- Redis 特點:
1. 支持內存緩存,同時也支持持久化存儲。
3. 數據類型更豐富。比其他 Key-Value 庫功能更強。
4. 支持主從同步、cluster分布式集群。 - 應用:緩存從存取 Memcached 更改存取 Redis。
3,MongoDB(Document-Web)
-
MongoDB 是一個介于關系數據庫和非關系數據庫之間的產品,是非關系數據庫當中功能最豐富,最像關系數據庫的。MongoDB 最大的特點是他支持查詢語言非常強大,幾乎可以實現類似關系數據庫單表查詢的絕大部分功能,而且還支持對數據建立索引。它的特點是高性能、易部署、易使用,存儲數據非常方便。
-
MongoDB 服務端可運行在 Linux、Windows 或 OS X 平臺,支持32位和64位應用,默認端口為 27017。推薦運行在64位平臺。
-
McmgoDB 把數據存儲在文件中(默認路徑為:/data/db)。
關系型數據和非關系型數據庫的區別
1.關系型數據庫:
優點:
1、易于維護:都是使用表結構,格式一致;
2、使用方便:SQL語言通用,可用于復雜查詢;
3、復雜操作:支持SQL,可用于一個表以及多個表之間非常復雜的查詢。
缺點:
1、固定的表結構,靈活度稍欠;
2、高并發讀寫需求,傳統關系型數據庫來說,硬盤I/O是一個很大的瓶頸。
2.非關系型數據庫嚴格上不是一種數據庫,應該是一種數據結構化存儲方法的集合,可以是文檔或者鍵值對等。
優點:
1、格式靈活:存儲數據的格式可以是key,value形式、文檔形式、圖片形式等等,使用靈活,應用場景廣泛。
2、速度快:nosql可以使用硬盤或者隨機存儲器作為載體,而關系型數據庫只能使用硬盤;
3、高擴展性;
4、成本低:nosql數據庫部署簡單,基本都是開源軟件。
缺點:
不提供sql支持;
什么是sql
SQL代表結構化查詢語言(Structured Query Language)。SQL是用于訪問數據庫的標準化語言。
SQL包含三個部分:
- 數據定義語言包含定義數據庫及其對象的語句,例如表,視圖,觸發器,存儲過程等。
- 數據操作語言包含允許您更新和查詢數據的語句。
- 數據控制語言允許授予用戶權限訪問數據庫中特定數據的權限。