【正文】
,并根據(jù)SessionID檢查用戶(hù)的權(quán)限。 33 轉(zhuǎn)換器的設(shè)計(jì)與實(shí)現(xiàn) ? 轉(zhuǎn)換器的功能: ? 數(shù)據(jù)結(jié)構(gòu)轉(zhuǎn)換和數(shù)據(jù)類(lèi)型轉(zhuǎn)換 ? 結(jié)構(gòu)化數(shù)據(jù)的轉(zhuǎn)換 : 關(guān)系對(duì)應(yīng)于對(duì)象類(lèi) , 元組對(duì)應(yīng)于對(duì)象實(shí)例 , 關(guān)系屬性對(duì)應(yīng)于對(duì)象的屬性值 ? 非結(jié)構(gòu)化數(shù)據(jù)的轉(zhuǎn)換 : 利用對(duì)象的封裝性實(shí)現(xiàn)對(duì)非結(jié)構(gòu)化數(shù)據(jù)的處理 ? 自動(dòng)化或半自動(dòng)化的轉(zhuǎn)換器生成技術(shù) : ? 采用互操作性標(biāo)準(zhǔn) , 定義數(shù)據(jù)源與翻譯器的接口 ? 從數(shù)據(jù)源中提取數(shù)據(jù)并轉(zhuǎn)換格式的過(guò)程: 先將各類(lèi)數(shù)據(jù)庫(kù)系統(tǒng)中不同格式的數(shù)據(jù)轉(zhuǎn)換成文本文件,然后再利用批拷貝命令將數(shù)據(jù)導(dǎo)入目標(biāo)系統(tǒng)中。由于使用獨(dú)立于數(shù)據(jù)源的數(shù)據(jù)準(zhǔn)備區(qū)為數(shù)據(jù)倉(cāng)庫(kù)準(zhǔn)備數(shù)據(jù)可提高管理數(shù)據(jù)倉(cāng)庫(kù)的效率,另外將數(shù)據(jù)準(zhǔn)備區(qū)與數(shù)據(jù)倉(cāng)庫(kù)數(shù)據(jù)隔離開(kāi),可以保護(hù)數(shù)據(jù)倉(cāng)庫(kù)的完整性同時(shí)可以提高數(shù)據(jù)倉(cāng)庫(kù)的性能。這些組件可在任何具有 OLE DB、 ODBC接口的數(shù)據(jù)庫(kù)或規(guī)格化的文本文件間導(dǎo)入、導(dǎo)出和轉(zhuǎn)換數(shù)據(jù)。在窗體中單擊下一步按鈕后,將顯示數(shù)據(jù)庫(kù)中各對(duì)象信息讓用戶(hù)選擇需要導(dǎo)入數(shù)據(jù)準(zhǔn)備區(qū)的數(shù)據(jù)對(duì)象,然后創(chuàng)建并調(diào)用 Microsoft 的DTS對(duì)象,完成數(shù)據(jù)轉(zhuǎn)換工作。 ? 讀取相關(guān)元數(shù)據(jù)信息,如需要轉(zhuǎn)換的表及字段的相關(guān)信息等。 ? 執(zhí)行 DTS包。 ? 數(shù)據(jù)清理。 ? 提供缺省值。 ? 不常見(jiàn)的或不標(biāo)準(zhǔn)的格式處理。 ? 必須符合企業(yè)數(shù)據(jù)模型。 ? 創(chuàng)建了物理數(shù)據(jù)庫(kù)后,開(kāi)始創(chuàng)建數(shù)據(jù)倉(cāng)庫(kù)模型,并裝載數(shù)據(jù)。將用戶(hù)的信息記錄在元數(shù)據(jù)庫(kù)中,并根據(jù)該信息創(chuàng)建事實(shí)表。 ? 數(shù)據(jù)凈化:當(dāng)數(shù)據(jù)從源數(shù)據(jù)庫(kù)中提取到數(shù)據(jù)準(zhǔn)備區(qū)后,必須先進(jìn)行數(shù)據(jù)凈化才可以裝載到數(shù)據(jù)倉(cāng)庫(kù)中去。枚舉字段取值指對(duì)一個(gè)記錄在該字段的取值,若不在指定的值中,則應(yīng)該刪除。即在事實(shí)表的一條記錄中如果某個(gè)與維表鏈接的字段值與維表中的字段值不相關(guān)時(shí),可能導(dǎo)致檢索的數(shù)據(jù)不正確。為了改進(jìn)數(shù)據(jù)倉(cāng)庫(kù)中數(shù)據(jù)質(zhì)量,提高數(shù)據(jù)倉(cāng)庫(kù)中數(shù)據(jù)的可用性,必須統(tǒng)一數(shù)據(jù)編碼。 ? 測(cè)量單位的轉(zhuǎn)換:數(shù)據(jù)倉(cāng)庫(kù)中對(duì)于數(shù)值型字段應(yīng)保持一致的單位。 46 監(jiān)控器的設(shè)計(jì)與實(shí)現(xiàn) ? 數(shù)據(jù)倉(cāng)庫(kù)提供的是離線數(shù)據(jù) , 與源數(shù)據(jù)存在時(shí)間差。 48 監(jiān)控器捕捉數(shù)據(jù)變化的途徑 ? 映象文件:在上次提取數(shù)據(jù)庫(kù)數(shù)據(jù)到數(shù)據(jù)倉(cāng)庫(kù)之后及本次提取數(shù)據(jù)庫(kù)數(shù)據(jù)之前,對(duì)數(shù)據(jù)庫(kù)分別作一次快照,然后通過(guò)比較兩幅快照的不同來(lái)確定要追加的數(shù)據(jù)。 49 數(shù)據(jù)倉(cāng)庫(kù)的創(chuàng)建 50 創(chuàng)建星形模型向?qū)? 51 創(chuàng)建星形模型向?qū)? 52 演講完畢,謝謝觀看! 。 ? 日志文件:由于日志文件是數(shù)據(jù)庫(kù)的固有機(jī)制,所以它對(duì)系統(tǒng)性能的影響比較小,另外它還有 DELTA文件的優(yōu)點(diǎn),提取數(shù)據(jù)只局限于日志文件而不用掃描整個(gè)數(shù)據(jù)庫(kù)。 ? DELTA文件:該文件是由應(yīng)用產(chǎn)生的,并記錄了應(yīng)用所改變的所有內(nèi)容。表UnitTypes記錄了數(shù)據(jù)倉(cāng)庫(kù)系統(tǒng)中的單位類(lèi)型,初始元數(shù)據(jù)庫(kù)中共分六種單位類(lèi)型:時(shí)間單位、貨幣單位、重量單位、長(zhǎng)度單位、面積單位、體積單位。數(shù)據(jù)倉(cāng)庫(kù)必須用單一的模式規(guī)定日期和時(shí)間信息。但在實(shí)際情況中,事實(shí)表的某些字段經(jīng)常為 Null值,為了解決使用內(nèi)鏈接查詢(xún)數(shù)據(jù)時(shí)引起的數(shù)據(jù)不一致問(wèn)題,我們?cè)诿總€(gè)維表增加一個(gè)空記錄,并將事實(shí)表中所有為相關(guān)字段值為 Null的值改為維表中新增的空記錄的值。 44 集成器的設(shè)計(jì)與實(shí)現(xiàn) ? 維表與事實(shí)表的引用完整性檢驗(yàn):數(shù)據(jù)倉(cāng)庫(kù)的星型模型中一般都有多個(gè)維,而在查詢(xún)數(shù)據(jù)時(shí)維表和事實(shí)表之間大多采用內(nèi)聯(lián)接。有效值的檢驗(yàn)通常包括:范圍檢驗(yàn)、枚舉字段取值和相關(guān)檢驗(yàn)。在前面的章節(jié)中我們討論了星型模型的維分為:標(biāo)準(zhǔn)維、雪花維和時(shí)間維。 ? 在樹(shù)型結(jié)構(gòu)中列出當(dāng)前元數(shù)據(jù)庫(kù)中描述的源數(shù)據(jù)庫(kù)以及庫(kù)中的表對(duì)象,用戶(hù)可以選擇其中一個(gè)表作為事實(shí)表;同時(shí)窗體的右邊以列表形式顯示了所選擇表的字段信息。 ? 創(chuàng)建數(shù)據(jù)倉(cāng)庫(kù)后,在元數(shù)據(jù)中記錄數(shù)據(jù)倉(cāng)庫(kù)的基本信息,同時(shí)創(chuàng)建一個(gè)同名的關(guān)系型數(shù)據(jù)庫(kù)。 ? 理解并解開(kāi)建立在舊的傳統(tǒng)程序邏輯中的數(shù)據(jù)之間的關(guān)系。 ? 進(jìn)行數(shù)據(jù)的匯總。 ? 多個(gè)輸入文件重新排序。 ? 判定一個(gè)記錄是否可進(jìn)行抽取處理。 ? 創(chuàng)建步驟對(duì)象,并將任務(wù)對(duì)象加入步驟對(duì)象。 ? 向 DTS的連接集合中添加源數(shù)據(jù)連接。 37 轉(zhuǎn)換器的實(shí)現(xiàn)- 轉(zhuǎn)換器的流程圖 創(chuàng)建數(shù)據(jù)準(zhǔn)備區(qū) N 開(kāi)始 讀元數(shù)據(jù) 檢查數(shù)據(jù)準(zhǔn)備區(qū) ? 執(zhí)行 DTS包 更改元數(shù)據(jù)(時(shí)間,數(shù)據(jù)狀態(tài)) 結(jié)束 成功 連接元數(shù)據(jù)庫(kù) 創(chuàng)建 DTS包 Y 38 選擇源數(shù)據(jù)的窗體 39 數(shù)據(jù)轉(zhuǎn)換 ? 在窗體上方的下拉列表中選擇了數(shù)據(jù)源類(lèi)型后,針對(duì)不同的數(shù)據(jù)源類(lèi)型在窗體中會(huì)顯示不同的界面,讓用戶(hù)輸入連接各種數(shù)據(jù)源的連接字符串信息(用戶(hù)名、密碼、數(shù)據(jù)庫(kù)等)。 35 源數(shù)據(jù)庫(kù)、數(shù)據(jù)準(zhǔn)備區(qū) 和數(shù)據(jù)倉(cāng)庫(kù)之間的關(guān)系 源數(shù)據(jù) 數(shù)據(jù)準(zhǔn)備區(qū) 數(shù)據(jù)倉(cāng)庫(kù) DTS 三者關(guān)系圖 36 DTS概述 ? DTS:是 Microsoft SQL Server2023中提供的數(shù)據(jù)轉(zhuǎn)換服務(wù)( Data Transformation Services)。 34 轉(zhuǎn)換器的設(shè)計(jì)與實(shí)現(xiàn) ? 數(shù)據(jù)準(zhǔn)備區(qū)的使用:首先從源數(shù)據(jù)中提取數(shù)據(jù),轉(zhuǎn)換成數(shù)據(jù)倉(cāng)庫(kù)所要求的格式后存儲(chǔ)在數(shù)據(jù)倉(cāng)庫(kù)的一個(gè)稱(chēng)為數(shù)據(jù)準(zhǔn)備區(qū)的緩沖區(qū)中。 ? MetaManager的 Run方法根據(jù)客戶(hù)傳遞的 XML數(shù)據(jù)包調(diào)用相關(guān)的方法。 ? 登錄對(duì)象通過(guò)數(shù)據(jù)庫(kù)中的用戶(hù)及口令確定用戶(hù)的合法身份,并保存SessionID,返回登錄成功的信息。每個(gè)用戶(hù)可以屬于多個(gè)權(quán)限組,每個(gè)權(quán)限組都有一定的權(quán)限。時(shí)間維的層次由高到低分別為 Year、 Quarter、 Month、 Day、 Hour、Minute、 Second,用戶(hù)可以任意選擇幾種構(gòu)成時(shí)間維的層次。 ? 雪花維:由相互關(guān)聯(lián)的多個(gè)維表構(gòu)成,每個(gè)維表中的字段構(gòu)成了維的層次。 30 元數(shù)據(jù)模型 ? 關(guān)于源數(shù)據(jù)的元數(shù)據(jù):它是現(xiàn)有的操作型業(yè)務(wù)系統(tǒng)的數(shù)據(jù)源的描述信息,是對(duì)不同平臺(tái)上的數(shù)據(jù)源的物理結(jié)構(gòu)和含義的描述。 29 元數(shù)據(jù)管理器的設(shè)計(jì)與實(shí)現(xiàn) ? 元數(shù)據(jù)的作用 :定義數(shù)據(jù)倉(cāng)庫(kù)的作用 ,指明數(shù)據(jù)倉(cāng)庫(kù)中信息的內(nèi)容和位置 ,刻畫(huà)數(shù)據(jù)的抽取和轉(zhuǎn)換規(guī)則 ,存儲(chǔ)與數(shù)據(jù)倉(cāng)庫(kù)主題有關(guān)的各種商業(yè)信息。 ? ServerDispatcher偵聽(tīng)對(duì)象接收到客戶(hù)端的連接請(qǐng)求后,創(chuàng)建ServerTalker對(duì)象并將它與 ClientTalker會(huì)話對(duì)象連接。 26 XML通信組件示意圖 客戶(hù)端應(yīng)用程序服務(wù)器端通信管理程序S e r v e r D i s p a t c h e r . L i s t e n ()S e r v e r T a l k e r . A c c e p t ()C l i e n t T a l k e r . C o n n e c t ()C l i e n t T a l k e r . S e n d X ML Ms g ()C l i e n t T a l k e r . D i s c o n n e c t ()創(chuàng)建 A p p l i c a t i o n 調(diào)度對(duì)象