一般的數據庫是一個操作型的數據存儲工具,比如一個學校的選課系統的數據庫,學生選課系統由教務處建設和管理,主要用于課程的排課和學生的選課,教務處人員可以在選課系統中增加、修改、刪除和查詢排課信息,學生也可以在選課系統中對選課信息進行操作。由于該數據庫面向的是選課,所以記錄的是與課程安排與選課的信息,其數據庫模型簡化如下圖所示:
與一般操作型的數據庫不同的是數據倉庫主要是面向查詢操作,而且查詢的數據來自于多個數據庫系統。同樣以一個學校為例,學校除了選課系統以外還有人力資源系統(HR系統)用于管理教師信息、學籍管理系統管理學生的學籍信息等。
HR系統是由人事處建設和管理的,主要保存與教師相關的信息,所以該系統中不會出現學生的信息,其系統數據庫模型如下圖所示:
學籍管理系統是由學生處建設和管理,數據庫中保存了學生的學歷、畢業(yè)去向、家庭情況等基本信息外還保存了學生每學期的考試成績等信息。由于該系統關注的是學生,所以不會出現教師的信息,其系統數據庫模型如下圖所示:
由于不同的系統由不同的部門和人員建設和管理,保存了不同的信息,如果需要進行數據的聯合查詢,而查詢的數據又存放在不同的數據庫中,那么就需要將這3個系統數據庫的信息集成在一起,放在一個數據模型中,形成數據倉庫,以便對教師信息、學生信息和選課信息進行聯合的查詢,建立的數據倉庫模型如下圖所示:
例如要查詢一次教師的培訓是否對教師所教學生的成績有影響,以便決定是否對教師進行下一步的培訓,則只能在數據倉庫中才能完成,因為教師的培訓信息和學生的成績是存放在不同的系統中,相互獨立,查詢單獨的一個數據庫是沒辦法完成的。
數據倉庫與一般數據庫比較,還有一個特點是記錄了數據變更歷史。在數據庫中對數據進行的修改一般是直接在數據行上進行更新操作,所以只記錄最新的數據結果,而數據倉庫則會記錄每天數據的變動情況,將變動之前的數據和變動后的數據都保存在數據倉庫中,以便進行時間序列分析。
同樣以學校的3個數據庫和數據倉庫為例,在HR系統中記錄了每個教師的基本信息,其中一項是教師的職稱。教師職稱變動時只需在HR數據庫中修改該教師的職稱字段即可。如果要查詢一個教授從剛開始的講師到現在的教授不同的職稱情況下所教學生的平均成績情況,則需要從數據倉庫中查出該教師每次職稱變動的時間,然后統計每個時間段內該教師所教課程所教學生的平均成績即可得出結果,而這個查詢在HR數據庫是沒辦法實現的。
更多文章、技術交流、商務合作、聯系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號聯系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元
