首先,定義三個(gè)概念:數(shù)據(jù)庫軟件、數(shù)據(jù)庫、數(shù)據(jù)倉庫。
數(shù)據(jù)庫軟件:是一種軟件,可以看得見,可以操作。用來實(shí)現(xiàn)數(shù)據(jù)庫邏輯功能。屬于物理層。
數(shù)據(jù)庫:是一種邏輯概念,用來存放數(shù)據(jù)的倉庫。通過數(shù)據(jù)庫軟件來實(shí)現(xiàn)。數(shù)據(jù)庫由很多表組成,表是二維的,一張表里可以有很多字段。字段一字排開,對應(yīng)的數(shù)據(jù)就一行一行寫入表中。數(shù)據(jù)庫的美,在于能夠用二維表現(xiàn)多維關(guān)系。目前市面上流行的數(shù)據(jù)庫都是二維數(shù)據(jù)庫。如:Oracle、DB2、MySQL、Sybase、MS SQL Server等。
數(shù)據(jù)倉庫:是數(shù)據(jù)庫概念的升級。從邏輯上理解,數(shù)據(jù)庫和數(shù)據(jù)倉庫沒有區(qū)別,都是通過數(shù)據(jù)庫軟件實(shí)現(xiàn)的存放數(shù)據(jù)的地方,只不過從數(shù)據(jù)量來說,數(shù)據(jù)倉庫要比數(shù)據(jù)庫更龐大得多。數(shù)據(jù)倉庫主要用于數(shù)據(jù)挖掘和數(shù)據(jù)分析。
接下來,就是詳細(xì)說明了。在IT的架構(gòu)體系中,數(shù)據(jù)庫是必須存在的。必須要有地方存放數(shù)據(jù)。比如現(xiàn)在的網(wǎng)購,淘寶,京東等等。物品的存貨數(shù)量,貨品的價(jià)格,用戶的賬戶余額之類的。這些數(shù)據(jù)都是存放在后臺數(shù)據(jù)庫中。或者最簡單理解,我們現(xiàn)在微博,QQ等賬戶的用戶名和密碼。在后臺數(shù)據(jù)庫必然有一張user表,字段起碼有兩個(gè),即用戶名和密碼,然后我們的數(shù)據(jù)就一行一行的存在表上面。當(dāng)我們登錄的時(shí)候,我們填寫了用戶名和密碼,這些數(shù)據(jù)就會被傳回到后臺去,去跟表上面的數(shù)據(jù)匹配,匹配成功了,你就能登錄了。匹配不成功就會報(bào)錯(cuò)說密碼錯(cuò)誤或者沒有此用戶名等。這個(gè)就是數(shù)據(jù)庫,數(shù)據(jù)庫在生產(chǎn)環(huán)境就是用來干活的。凡是跟業(yè)務(wù)應(yīng)用掛鉤的,我們都使用數(shù)據(jù)庫。
而數(shù)據(jù)倉庫則是BI下的其中一種技術(shù)。由于數(shù)據(jù)庫是跟業(yè)務(wù)應(yīng)用掛鉤的,所以一個(gè)數(shù)據(jù)庫不可能裝下一家公司的所有數(shù)據(jù)。數(shù)據(jù)庫的表設(shè)計(jì)往往是針對某一個(gè)應(yīng)用進(jìn)行設(shè)計(jì)的。比如剛才那個(gè)登錄的功能,這張user表上就只有這兩個(gè)字段,沒有別的字段了。但是這張表符合應(yīng)用,沒有問題。但是這張表不符合分析。比如我想知道在哪個(gè)時(shí)間段,用戶登錄的量最多?哪個(gè)用戶一年購物最多?諸如此類的指標(biāo)。那就要重新設(shè)計(jì)數(shù)據(jù)庫的表結(jié)構(gòu)了。對于數(shù)據(jù)分析和數(shù)據(jù)挖掘,我們引入數(shù)據(jù)倉庫概念。數(shù)據(jù)倉庫的表結(jié)構(gòu)是依照分析需求,分析維度,分析指標(biāo)進(jìn)行設(shè)計(jì)的。數(shù)據(jù)倉庫的數(shù)據(jù)來源于那些后臺持續(xù)不停運(yùn)作的數(shù)據(jù)庫表。數(shù)據(jù)的搬運(yùn)就牽涉到另一個(gè)技術(shù)叫ETL。這個(gè)過程就是數(shù)據(jù)從一個(gè)數(shù)據(jù)庫到了數(shù)據(jù)倉庫