1、什麼是數據庫
簡單的說,數據庫是一個存放數據的倉庫,這個倉庫是按照一定的數據結構來組織存儲的,可通過數據庫提供的多種方法來管理數據庫裏的數據
2、數據庫的種類
早期的數據庫理論,有層次式數據庫、網絡式數據庫和關係型數據庫,目前常用的是關係型數據庫和非關係型數據庫
關係型數據庫
由來:雖然 網狀數據和層次數據庫已很好解決了數據的文集中和共享問題,但在數據獨立性和抽象級別上仍有很大欠缺,用戶在對這兩種數據庫進行存取時,仍然需要明確數據庫的存儲結構,指出存取路徑,現關係數據庫可解決此問題
介紹:關係型數據庫模型即二維表格。在關係數據庫中,對數據的操作幾乎全部建立在一個或多個關係表格上,通過對這些關聯的表格分類、合併、連接或選取等運算來實現數據的管理
面試講解什麼是關係型數據庫
1、關係數據庫類似於excel表格的二維表來表示
2、關係型數據庫使用結構化查詢語言對數據進行存取
3、關係型數據代表作 mysql oracle
非關係型數據庫(NoSQL) no only SQL
由來:隨着互聯網web2.0(以用戶爲主體,上傳、下載、發佈)網站的興起,傳統關係型數據庫對大規模的海量數據,高併發的微信、微博的web2.0純動態網站已力不從心,會出現數據庫IO瓶頸,性能瓶頸問題,於是出現了針對特定場景,以高性能和使用便利爲目的功能特異化的數據庫存產品
產品:Google的BigTable Amazon的Dynamo
開源的NoSQL: Facebook的Cassandra Apache的Hbase Redis mongodb
非關係型數據庫種類
1)鍵值(Key-Value)存儲數據庫
鍵值數據‘庫類似傳統語言中使用的哈希表,可以通過key來添加,查詢或者刪除數據
典型產品: Memcached Redis MemcacheDB BerkeleyDB
2)列存儲(Column-oriented)數據庫
列存儲數據庫將數據儲存在列表中,一個列族存儲經常被一起查詢的相關數據。
典型產品:Cassandra HBase
3)面向文檔(Document-Oriented)數據庫
典型產品:MongoDB CouchDB
4)圖形數據庫
典型產品:Neo4J InfoGrid
3、常用關係型數據庫產品介紹
3.1、Oracle數據庫
1977年由Larry Ellison和另兩個編程人員開發
主要應用範圍:傳統大企業、大公司、政府、金融、證券等等
版本:Oracle8i Oracle9i Oracle10g Oracle11g
3.2、MySQL數據庫
MySQL數據庫是一箇中小型關係型數據庫管理系統,由瑞典MySQL AB公司開發,2008年1月16號被Sun公司收購。應用於大中小型網站中,其特點體積小、速度快、總體擁有成本低
主要應用範圍:互聯網領域 大中小型網站 遊戲公司 電商平臺等等
3.3、MariaDB數據庫
MariaDB是MySQL數據庫的一個分支
4、常用非關係型數據庫
4.1、Memcached
特點:重啓數據丟失
爲解決這一問題,後開發了Memcacheddb,Memcacheddb非常適合需要超高性能讀寫速度、持久化保存的應用場景
4.2、redis數據庫
redis的數據都是緩存在內存中,區別是redis會週期性的把更新的數據寫入磁盤或把修改操作寫入追加的記錄文件,並且在此基礎上實現了master-slave(主從)同步
它提供了 python ruby erlang php客戶端
redis特點;
1)支持內存緩存
2)支持持久化
3)數據類型更豐富,比其他key-value庫功能更強
4)支持集羣,分佈式
5)支持隊列等特殊功能
應用:緩存從存取memcached更改存取redis
4.3、MongoDB
MongoDB是介於關係數據庫和非關係數據庫之間的產品,它支持數據結構非常鬆散,類似json的bjson格式
特點:支持的查詢語言非常強大
4.4、Cassandra