1. 程式人生 > >MySQL學習之一數據庫簡介

MySQL學習之一數據庫簡介

數據庫

1.什麽是數據庫?

數據庫(Database)是按照數據結構來組織、存儲和管理數據的倉庫,長期儲存在計算機內、有組織的、可共享的數據集合。

數據庫中的數據指的是以一定的數據模型組織、描述和儲存在一起、具有盡可能小的冗余度、較高的數據獨立性和易擴展性的特點並可在一定範圍內為多個用戶共享。

2.主要特點

⑴ 實現數據共享

數據共享包含所有用戶可同時存取數據庫中的數據,也包括用戶可以用各種方式通過接口使用數據庫,並提供數據共享。

⑵ 減少數據的冗余度

同文件系統相比,由於數據庫實現了數據共享,從而避免了用戶各自建立應用文件。減少了大量重復數據,減少了數據冗余,維護了數據的一致性。

⑶ 數據的獨立性

數據的獨立性包括邏輯獨立性(數據庫中數據庫的邏輯結構和應用程序相互獨立)和物理獨立性(數據物理結構的變化不影響數據的邏輯結構)。

⑷ 數據實現集中控制

文件管理方式中,數據處於一種分散的狀態,不同的用戶或同一用戶在不同處理中其文件之間毫無關系。利用數據庫可對數據進行集中控制和管理,並通過數據模型表示各種數據的組織以及數據間的聯系。

⑸數據一致性和可維護性,以確保數據的安全性和可靠性

主要包括:①安全性控制:以防止數據丟失、錯誤更新和越權使用;②完整性控制:保證數據的正確性、有效性和相容性;③並發控制:使在同一時間周期內,允許對數據實現多路存取,又能防止用戶之間的不正常交互作用。

⑹ 故障恢復

由數據庫管理系統提供一套方法,可及時發現故障和修復故障,從而防止數據被破壞。數據庫系統能盡快恢復數據庫系統運行時出現的故障,可能是物理上或是邏輯上的錯誤。比如對系統的誤操作造成的數據錯誤等。

3.數據庫種類

(1).比較流行的數據庫模型有三種:層次式數據庫,網絡式數據庫,關系型數據庫.現在最常用的是關系型數據庫和非關系型數據庫,這兩類就是現在用的最廣泛的.

4.關系型數據庫

關系型數據庫就是把復雜的數據結構歸結為簡單的二元關系(即二維表格形式)。在關系型數據庫中,對數據的操作幾乎全部建立在一個或者多個關系表格上,通過對這些關聯的表格分類,合並,連接或者選取等運算來實現數據的管理.主要的關系型數據庫代表為:MySQL,Oracle.

MySQL:

被廣泛的應用在Internet的大中小網站中,體積小,速度快,開源,所以很受歡迎,

主要使用者:互聯網,各種網站,遊戲公司,電商平臺.

Oracle:

性能優越,不開源,價格昂貴.

主要是傳統的大企業,大公司,政府,金融,證券等行業使用.

5.非關系型數據庫(NOSQL)

NoSQL,泛指非關系型的數據庫。NoSQL(NoSQL = Not Only SQL ),意即“不僅僅是SQL是一項全新的數據庫革命性運動,隨著互聯網web2.0網站的興起,傳統的關系數據庫在應付web2.0網站,特別是超大規模和高並發的SNS類型的web2.0純動態網站已經顯得力不從心,暴露了很多難以克服的問題,而非關系型的數據庫則由於其本身的特點得到了非常迅速的發展。NoSQL數據庫的產生就是為了解決大規模數據集合多重數據種類帶來的挑戰,尤其是大數據應用難題。

計算機體系結構在數據存儲方面要求具備龐大的水平擴展性,而NoSQL致力於改變這一現狀。Google的 BigTableAmazon 的Dynamo使用的就是NoSQL型數據庫,Facebook的Cassandra,Apache的HBase.redis,mongodb.

6.數據庫緩存機制:

Memcached是一個高性能的分布式內存對象緩存系統,用於動態Web應用以減輕數據庫負載。它通過在內存中緩存數據和對象來減少讀取數據庫的次數,從而提高動態、數據庫驅動網站的速度。Memcached基於一個存儲鍵/值對的hashmap。其守護進程(daemon )是用C寫的,但是客戶端可以用任何語言來編寫,並通過memcached協議與守護進程通信。

由於memcached為純內存軟件,一旦重啟所有數據都會丟失,所以新浪基於其開發了持久化存儲機制,和異步主輔復制機制,使其具有事務恢復功能,持久化數據存儲和分布式復制能力,最近幾年逐步被redis所替代.

新浪基於這個開發了一個機制,斷電之後,數據還是會保存.

redis是一個key-value存儲系統。和Memcached類似,它支持存儲的value類型相對更多,包括string(字符串)、list(鏈表)、set(集合)、zset(sorted set --有序集合)和hash(哈希類型)。


MySQL學習之一數據庫簡介