數據庫是個啥啊

什麼是數據庫?

按字面上的意思說,就是存放數據的倉庫嘛,若是簡單理解也的確如此,當然,要是簡單理解就行,也叫不會問什麼是數據庫了。

數據庫不只是存放數據,還有對數據進行管理,所以又把數據庫稱爲數據管理系統。最最恰當的比喻就是文件櫃,數據庫就是電子化的文件櫃,我們對文件櫃中文件的寫入,刪除修改,查看,對應數據庫就是增刪改查。

所謂數據庫,是按照數據結構來組織、存儲和管理數據的倉庫。是一個長期存儲在計算機內的、有組織的、可共享的、統一管理的大量數據的集合。

定義

它的存儲空間很大,可以存放百萬條、千萬條、上億條數據。但是數據庫並不是隨意地將數據進行存放,是有一定的規則的,否則查詢的效率會很低。當今世界是一個充滿着數據的互聯網世界,充斥着大量的數據。即這個互聯網世界就是數據世界。數據的來源有很多,比如出行記錄、消費記錄、瀏覽的網頁、發送的消息等等。除了文本類型的數據,圖像、音樂、聲音都是數據。

數據庫是一個按數據結構來存儲和管理數據的計算機軟件系統。數據庫的概念實際包括兩層意思:

(1)數據庫是一個實體,它是能夠合理保管數據的倉庫,用戶在該“倉庫”中存放要管理的事務數據,數據和庫兩個概念結合成爲數據庫。

(2)數據庫是數據管理的新方法和技術,它能更合適的組織數據、更方便的維護數據、更嚴密的控制數據和更有效的利用數據。

技術初衷

需求創造技術

在操作系統出現之後,隨着計算機應用範圍的擴大、需要處理的數據迅速膨脹。最初,數據與程序一樣,以簡單的文件作爲主要存儲形式。以這種方式組織的數據在邏輯上更簡單,但可擴展性差,訪問這種數據的程序需要了解數據的具體組織格式。當系統數據量大或者用戶訪問量大時,應用程序還需要解決數據的完整性、一致性以及安全性等一系列的問題。因此,必須開發出一種系統軟件,它應該能夠像操作系統屏蔽了硬件訪問複雜性那樣,屏蔽數據訪問的複雜性。由此產生了數據管理系統,即數據庫。

數據庫管理系統

數據庫管理系統(英語:Database Management System,簡稱DBMS)是爲管理數據庫而設計的電腦軟件系統,一般具有存儲、截取、安全保障、備份等基礎功能。

數據庫分類
隨着數據庫技術與其他分支學科技術的結合,出現了多種新型數據庫,例如:與分佈處理技術結合產生的分佈式數據庫、與並行處理技術結合產生的並行數據庫、與人工智能結合產生的演繹數據庫、與多媒體技術結合產生的多媒體數據庫。另外,數據庫技術應用於特定的領域,出現了工程數據庫、 地理數據庫、統計數據庫、空間數據庫等特定領域數據庫。

關係型數據庫

關係型數據庫,存儲的格式可以直觀地反映實體間的關係。關係型數據庫和常見的表格比較相似,關係型數據庫中表與表之間是有很多複雜的關聯關係的。 常見的關係型數據庫有Mysql,SqlServer等。在輕量或者小型的應用中,使用不同的關係型數據庫對系統的性能影響不大,但是在構建大型應用時,則需要根據應用的業務需求和性能需求,選擇合適的關係型數據庫。

應用場景
關係型數據庫對於結構化數據的處理更合適,如學生成績、地址等,這樣的數據一般情況下需要使用結構化的查詢,例如join,這樣的情況下,關係型數據庫就會比NoSQL數據庫性能更優,而且精確度更高。由於結構化數據的規模不算太大,數據規模的增長通常也是可預期的,所以針對結構化數據使用關係型數據庫更好。關係型數據庫十分注意數據操作的事務性、一致性,如果對這方面的要求關係型數據庫無疑可以很好的滿足。

關係型數據庫:
MySQL
MariaDB
(MySQL的代替品])
Percona Server(MySQL的代替品)
PostgreSQL
Microsoft Access
Microsoft SQL Server
Google Fusion Tables
FileMaker
Oracle數據庫
Sybase
dBASE
Clipper
FoxPro
foshub

幾乎所有的數據庫管理系統都配備了一個開放式數據庫連接(ODBC)驅動程序,令各個數據庫之間得以互相集成。

非關係型數據庫(NoSQL)

指的是分佈式的、非關係型的、不保證遵循ACID原則的數據存儲系統。NoSQL數據庫技術與CAP理論、一致性哈希算法有密切關係。

NoSQL數據庫技術具有非常明顯的應用優勢,如數據庫結構相對簡單,在大數據量下的讀寫性能好;能滿足隨時存儲自定義數據格式需求,非常適用於大數據處理工作。

應用場景
NoSQL數據庫適合追求速度和可擴展性、業務多變的應用場景。 對於非結構化數據的處理更合適,如文章、評論,這些數據如全文搜索、機器學習通常只用於模糊處理,並不需要像結構化數據一樣,進行精確查詢,而且這類數據的數據規模往往是海量的,數據規模的增長往往也是不可能預期的,而NoSQL數據庫的擴展能力幾乎也是無限的,所以NoSQL數據庫可以很好的滿足這一類數據的存儲。NoSQL數據庫利用key-value可以大量的獲取大量的非結構化數據,並且數據的獲取效率很高,但用它查詢結構化數據效果就比較差。

非關係型數據庫:
BigTable(Google)
Cassandra
MongoDB
CouchDB
Redis

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章