1.什麼是資料庫? 資料庫(Database)是按照數據結構來組織、存儲和管理數據的倉庫,長期儲存在電腦內、有組織的、可共用的數據集合。 資料庫中的數據指的是以一定的數據模型組織、描述和儲存在一起、具有儘可能小的冗餘度、較高的數據獨立性和易擴展性的特點並可在一定範圍內為多個用戶共用。 2.主要特點 ...
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的 BigTable 和Amazon 的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(哈希類型)。