1.概念方面.數據庫:是一種邏輯概念,用來存放數據的倉庫。通過數據庫軟件來實現。數據庫由很多表組成,表是二維的,一張表里可以有很多字段。字段一字排開,對應的數據就一行一行寫入表中。數據庫的表,在於能夠用二維表現多維關系。目前市面上流行的數據庫都是二維數據庫。如:Oracle、DB2、MySQL、Sybase、MS SQL Server等。
數據倉庫:是數據庫概念的升級。從邏輯上理解,數據庫和數據倉庫沒有區別,都是通過數據庫軟件實現的存放數據的地方,只不過從數據量來說,數據倉庫要比數據庫更龐大得多。數據倉庫主要用於數據挖掘和數據分析,輔助領導做決策。
數據庫是跟業務掛鈎的,而數據庫不可能裝下一個公司的所有數據,因此數據庫的設計通常是針對一個應用進行設計的。
數據倉庫是依照分析需求、分析維度、分析指標進行設計的。
2.
數據倉庫的特點
數據倉庫是面向主題的
那么什么是主題呢,簡單來說,主題就是用戶在使用數據倉庫時所關心的方面。
數據倉庫時不支持修改的
這點好理解,數據倉庫不像數據庫,不支持update和delete操作。
數據倉庫的數據是隨時間的變化而變化的
這與上一條並不沖突,這個變化不是指update或是delete兒產生的變化,而是隨着時間的變化,不斷的增加新的內容,或是刪除舊的內容。
數據倉庫是多個異構數據源所集成的
數據倉庫存儲的一般是歷史數據
數據倉庫是弱事務的,因為數據倉庫存的是歷史數據,一般都讀(分析)數據場景。
3二者主要區別:數據庫和數據倉庫的區別
數據庫是為捕獲數據而設計,數據倉庫是為分析數據而設計。
數據庫是面向事務的設計,數據倉庫是面向主題設計的。
數據庫一般存儲業務數據,數據倉庫存儲的一般是歷史數據。
數據庫設計是盡量避免冗余,一般針對某一業務應用進行設計,比如一張簡單的 User 表,記錄用戶名、密碼等簡單數據即可,符合業務應用,但是不符合分析。數據倉庫在設計是有意引入冗余,依照分析需求,分析維度、分析指標進行設計。