天天看點

簡單的說下什麼是資料倉庫

一般的資料庫是一個操作型的資料存儲工具,比如一個學校的選課系統的資料庫,學生選課系統由教務處建設和管理,主要用于課程的排課和學生的選課,教務處人員可以在選課系統中增加、修改、删除和查詢排課資訊,學生也可以在選課系統中對選課資訊進行操作。由于該資料庫面向的是選課,是以記錄的是與課程安排與選課的資訊,其資料庫模型簡化如下圖所示:

<a href="http://images.cnblogs.com/cnblogs_com/studyzy/WindowsLiveWriter/a3a082374464_14288/image_2.png"></a>

與一般操作型的資料庫不同的是資料倉庫主要是面向查詢操作,而且查詢的資料來自于多個資料庫系統。同樣以一個學校為例,學校除了選課系統以外還有人力資源系統(HR系統)用于管理教師資訊、學籍管理系統管理學生的學籍資訊等。

HR系統是由人事處建設和管理的,主要儲存與教師相關的資訊,是以該系統中不會出現學生的資訊,其系統資料庫模型如下圖所示:

<a href="http://images.cnblogs.com/cnblogs_com/studyzy/WindowsLiveWriter/a3a082374464_14288/image_4.png"></a>

學籍管理系統是由學生處建設和管理,資料庫中儲存了學生的學曆、畢業去向、家庭情況等基本資訊外還儲存了學生每學期的考試成績等資訊。由于該系統關注的是學生,是以不會出現教師的資訊,其系統資料庫模型如下圖所示:

<a href="http://images.cnblogs.com/cnblogs_com/studyzy/WindowsLiveWriter/a3a082374464_14288/image_6.png"></a>

由于不同的系統由不同的部門和人員建設和管理,儲存了不同的資訊,如果需要進行資料的聯合查詢,而查詢的資料又存放在不同的資料庫中,那麼就需要将這3個系統資料庫的資訊內建在一起,放在一個資料模型中,形成資料倉庫,以便對教師資訊、學生資訊和選課資訊進行聯合的查詢,建立的資料倉庫模型如下圖所示: 

<a href="http://images.cnblogs.com/cnblogs_com/studyzy/WindowsLiveWriter/a3a082374464_14288/image_8.png"></a>

例如要查詢一次教師的教育訓練是否對教師所教學生的成績有影響,以便決定是否對教師進行下一步的教育訓練,則隻能在資料倉庫中才能完成,因為教師的教育訓練資訊和學生的成績是存放在不同的系統中,互相獨立,查詢單獨的一個資料庫是沒辦法完成的。

資料倉庫與一般資料庫比較,還有一個特點是記錄了資料變更曆史。在資料庫中對資料進行的修改一般是直接在資料行上進行更新操作,是以隻記錄最新的資料結果,而資料倉庫則會記錄每天資料的變動情況,将變動之前的資料和變動後的資料都儲存在資料倉庫中,以便進行時間序列分析。

同樣以學校的3個資料庫和資料倉庫為例,在HR系統中記錄了每個教師的基本資訊,其中一項是教師的職稱。教師職稱變動時隻需在HR資料庫中修改該教師的職稱字段即可。如果要查詢一個教授從剛開始的講師到現在的教授不同的職稱情況下所教學生的平均成績情況,則需要從資料倉庫中查出該教師每次職稱變動的時間,然後統計每個時間段内該教師所教課程所教學生的平均成績即可得出結果,而這個查詢在HR資料庫是沒辦法實作的。

本文轉自深藍居部落格園部落格,原文連結:http://www.cnblogs.com/studyzy/archive/2010/07/09/1774642.html,如需轉載請自行聯系原作者