資料庫入門簡介
網際網路公司的網際網路的網站最大的瓶頸是後端(儲存和資料庫)
CDN加速、快取、動態網頁html
資料庫缺點:“極難擴充套件”
資料庫的定義:
資料庫(英文Database):就是存放資料的倉庫
應用:類似於儲物間
管理資料庫:通過資料庫提供的多種方法來管理資料庫資料
轉變:從儲存和管理資料庫---》使用者所需要的各種資料管理的方式
從單一到多樣化
資料庫的種類:
早期比較流行的資料庫模型:層次式資料庫、網路式資料庫和關係型資料庫。
網狀資料庫和層次資料庫能解決資料的集中和共享問題
現在主流的資料庫模型: 關係型資料庫和非關係型資料庫
關係型資料庫:由來:(層次和網狀)資料庫在使用者存取時,需要明確資料的儲存結構和存取路徑,很麻煩所以出現了關係資料庫
簡介:將複雜的資料結構結為簡單的二元關係(二維表格形式)類似於excel表格的二維表格 結構查詢語言,SQL語句
主流資料庫是MySQL和Orale。
非關係型資料庫:NoSQL資料庫
NoSQL(全稱NotOnlySQL) :非關係型資料庫是對關係型資料庫的補充,
NoSQL資料庫在特定場景可以發揮出難以想象的高效率和高效能。
產生原因:(動態資料請求太多,對資料庫要求要求越來越高,傳統資料庫達不到)如web2.0所以就出現了NoSQL
NoSQL應用:谷歌的BigTable amazon的Dynamo
開源的有:Facebook的Cassandra Apache的HBase
Redis ,mongodb是主流的
NoSQL資料庫沒有標準的查詢語言(SQL),因此進行資料查詢需要定製資料庫模型。許多NoSQL資料庫都有REST式的資料介面或者查詢API
典型產品:
Neo4j :
Neo4j是一個高效能的,NOSQL圖形資料庫,它將結構化資料儲存在網路上而不是表中。它是一個嵌入式的、基於磁碟的、具備完全的事務特性的Java持久化引擎,但是它將結構化資料儲存在網路(從數學角度叫做圖)上而不是表中。
來自 <https://baike.baidu.com/item/Neo4j/9952114?fr=aladdin>
nfoGrid:
nfoGrid是一個post關係web應用程式的平臺。
來自 <https://baike.baidu.com/item/InfoGrid>
常用關係型資料庫產品:
1、Oreacle資料庫: 前身是SDL 在1977年創辦 甲骨文公司
主要應用範圍:傳統大企業,大公司 政府 金融等
2、 MySQL資料庫:中小型關係型資料庫管理系統, 雅典mySQL AB公司開發
2008年1月16被Sun收購---》oracle收購(甲骨文)
MySQL被廣泛應用在internet上的大中小型網站中 ,mySQL的創始人:Michael Widenius
特點:體積小、速度快 總體擁有成本低,開放原始碼。
應用場景:網際網路領域、大中小型網站、遊戲公司、電商平臺等
3、 MariaDB 資料庫:是mySQL的分支
主要由開源社群維護,採用GPL授權
4、SQL Server 資料庫
微軟公司開發的大型關係性資料庫系統
只能執行在window系統下
5、Access資料庫
Microsoft公司於1994年推出的微機資料庫管理系統
入門級小型桌面資料庫,效能安全都很一般,可供個人管理或小型網站
適用於中小型應用系統
應用場景:小型程式系統asp+access系統 留言板、校友錄等
6其他關係型資料庫
DB2、PostgreSQL infomix Sybase
常用非關係型資料庫產品:
1 Memcached(key-value)*
是一個開源的、高效能的、具有分散式記憶體物件的快取系統。
特點:快、但是一重啟資料就丟失了
網址:http://memcached.org/
在Memcached的基礎上新浪開發了Memcachedb。
通過Memcached增加Berkeley DB的持久化儲存機制和非同步主鋪複製機制
Memcachedb具有事務恢復能力、持久化資料儲存能力和分散式複製能力。
特點:讀寫速度塊、持久化儲存
逐漸被redis所取代。
2、redis (key-value)----和Memcached類似
redis的資料是快取在記憶體中。區別是redis會週期性的把更新的資料寫入磁碟或者修改操作寫入追加的記錄檔案, 並且再次基礎上實現了master-slave(主從)同步
在部分場合是對關係資料庫的補充作用
特點:支援記憶體快取,這個功能相當於memcached。
支援持久化,這個功能相當於memcachedb,ttserver。
資料型別更豐富。比其他key-value庫功能更強
支援叢集,分散式
支援佇列等特殊功能
應用:快取從儲存memcached跟改存取redis
3、mongoDB(Document-oriented):
介於關係資料庫和非關係資料庫之間的產品。 非關係資料庫當中功能最豐富
支援資料結構非常鬆散,類似json的bjson格式,可以儲存比較複雜的資料型別
最大特點是他支援的查詢語言非常強大。 語法類似於面向物件的查詢語言,可以實現類似關係資料庫單表查詢的絕大部分功能。資料建立索引
網站:https://mariadb.org/
4、Cassandra (column-oriented)
是一套開源分散式key-value儲存系統。(混合型的非關係型的資料庫)
特性:分散式、基於column的結結構化、高伸展性
特點:他不是一個數據庫,而是一堆資料庫節點共同構成的一個分散式網路服務,
5、其他非關係型資料庫
Hbase MemcacheDB、Berkeley DB、Tokyo Canbinet\tokyo Tyrant(ttserver)
資料庫的歷史:
重點:種類:非關係型和關係型(二維表)
代表產品:oracle MySQL
誕生背景web2.0
非關係型資料庫:Memcached(key-value), redis和MongoDB
關係型資料庫:oracle Mysql MariaDB SQLserver