Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 110 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
110
Dung lượng
40,57 MB
Nội dung
Đ Ạ I H Ọ C Q U Ố C G IA H À N Ộ I KHOA CÔNG NGHỆ - O - NGUYỄN XU ÂN TÙNG Những vấn đề thiết kế xây dựng mơ hình Datawarehouse LUẬN VÃN TH ẠC s ĩ Chuyên ngành : Công Nghệ Thông Tia Mà số: 010110 „ _ / Người hướng dán khoa học: TS Đặng Q uang A Hà Nội - N ăm 2003 ĐỂ MỤC Chương I L.í 1.2 1.2.1 1.2.2 1.2.3 1.2.4 1.3 1.3.1 1.3.2 1.3.3 1.3.4 1.3.5 1.36 1.3.7 1.3 ÌA A 1.4.2 1.4.3 1.4.4 1.4.5 1.4.6 K H O D ữ L IỆ U - L Ị C H s P H Ắ T T R IE N VÀ M Ộ T S Ố K H Ả I N I Ê M c BẢN Lịch s p h t t r i ể n C c y ê u cầu b ủn c ủ a m ộ t hệ t h ô n g DVVH H n g c h ủ đề Sị liệu có tín h lịch s Sị liệu cỉẻ đọc Sơ liệu k h ô n g b i ế n đ ộ n g Kiến t r ú c t h a m c h i ế u c ủ a m ộ t DVVH K hối c c n g u n d ữ liệu K h ối t o d ự n g k h o d ữ liệu K h ối tạ o d ự n g k h o d ữ liệu cục K hối t r u y n h ậ p v s d ụ n g Lứp q u ả n lý d ữ liệu L p q u ă n lý siêu d ữ liệu Lớp c h u y ê n tải d ỉiệu L p kết c ấ u h t ầ n g C c D W H t r o n g m ộ t s ố lĩnh vực DVVH t r o n g lĩnh vực tài c h í n h D W H t r o n g lĩnh vự c b ả o h i ể m DYVH t r o n g lình vự c đ i ề u k h i ể n n g u n n h ã n lực DYVH d i ệ n r ộ n g DVVH với t í n h n ă n g D a t a n iỉn in g DVVH t r o n g lĩnh v ự c viễn t h ô n g C Ấ U T R Ú C K H O D ữ L I Ệ U VÀ C hirư ng II 2.1 2.1.1 2.1.2 2.1.3 -> J M Ơ H ÌN H D ữ LIỆU Các Cấu Cáu Cáu Các lựa c h ọ n vế c u t r ú c t r ú c k h o d liệu t ổ n g t h ể t r ú c D a t a I ìia rt độc lậ p t r ú c D a t a m a r t liên kế t với n h a u lựa c h o n t h ự c h iê n Trang 1 7 7 8 10 10 II 12 13 14 15 16 17 17 18 19 19 21 22 23 24 25 26 ? \ -> J 2.2.3 2.3 2.3.1 •) 23 2.3.4 C h n g I II 3.1 , 3.2.1 3.3.1 C h n g IV 4.1 , 4.1.2 , T h ự c liièn từ t r ẽ n x u ố n g T h ự c h iệ n từ lèn P h n g th ứ c kết hợp M ị h ì n h d ữ liệu cho k h o d ữ liệu T i việc xủ y í lư n g m ó h ìn h d ữ liệu IÌ1 q u a n t r ọ n g Các kỹ t h u ậ t xây d ự n g mõ h ì n h d ữ liệu Xày d ự n g mị h ì n h ER Xây d ự n g m ỏ h ì n h th eo chiều 27 28 29 30 31 32 32 39 T H I Ế T K Ế K H O DỮ LĨỆU 46 C c p h a t r o n g q u t r ì n h t h iế t kẻ DVVH P h a p h a 2: X â y d ự n g mô h ì n h kinh d o a n h mổ h ì n h logic P h a 3: T o m ị h ì n h ch iều ( m h ì n h sao) P h a : Xây d ự n g m ỏ h ì n h vật lý TH U T ĨIẬ P SỐ LIỆU T CÁ C NGUỔN K H Á C N H A U p H ụ C y ụ C H ;VM S Ó C K H Á C H H À N G 46 51 67 79 M ô tả t h ự c t r n g d ữ liệu 82 Dữ liệu p h t t ri ển t h u ê b a o T r u n g t â m Dịch vụ 83 K hách hàng BĐHN D liệu p h t triể n tluiè b a o B u điện h u y ệ n 85 IVĨỒ t ả q u t r ì n h thiết kẽ v xây d ự n g k h o d ữ liệu c h ă m sóc k h c h h n g c ủ a B Đ H N M ộ t sô c ụ m từ tiếng A nh vfi viết tát T i liêu t h a m k h o 106 107 CHƯƠNG KHO DỮ LIỆU - LỊCH s PHÁT TRIEN VẢ KHÁI NIỆM C BẢN MỘT s ố 1.1 LỊCH SỬ PHÁT TRIỂN Chương Lrình bày hình ihành khái niệm DYVH dặc điểm m ột hệ Ihống DWH (.liến hình M áy tính từ dời dã đóng vai trị vổ cung quan trọng irong lịch sử phát triển nhàn loại Các m áy tính đấu tiên cơng cụ tính tốn mạnh mẽ, cho phép người giái tốn có số lượng tính tốn k hổng lổ mà trước dó khơng thể ihực dược tay Trong thời gian đầu máy tính chủ yếu tập trung giãi toán giải hệ phương trình, tính tốn kết cấu cồ nâ irình, tính tốn xây đựng kế hoạch quốc gia, thống kê diều tra dàn số, luyen sinh , tốn lớn, có thuật tốn xấc định T cuối nãm 70, (lầu năm 80, với xuấl dòng máy PC với lực lương Lự máy tính lớn Ihời kỳ đầu với má thành ngày ré, m áy vi Lính dã iham gia vào mặt dời sống xã hội Rất nhiêu lĩnh vực tnrớc dây thực Ihử công giao dịch bấn hàng, quàn lý vật lư, nhàn , dược vi tính hố.Góp phần tích cực vào trình !à xuất ngơn ngữ lập trình hướng cấu trúc, phần mềm coi Lì nghé có quỵ trình phái trien tn thủ quy trình rmhiêrn ngặt Các cịng tỵ phần m ém bán thị trường CSDL quan hệ chạy máy dể bàn DBASE,ACCESS, F OXP RO , SQL Server , tạo diều kiện vố cùnii thuận lợi cho nguời phát triên Dường máy tính chương n inh cứa dã giai tjuyêi (lược háu hết vân đè irong lĩnh vực quán lý Tuy nhiên vấn cté có lẽ khỏnn đơn gián Trên thực tế, công ty muốn thành cơng irên thị trường, ngồi việc tổ chức bán hàng lốt (giao dịch dơn gián, thuận liên cho người mua nsười quán !ý bán lùm“ ), neưòi lãnh dạo công ty phái nám thực chát trình diễn irons» đơn vị irong mỏi trườnií kỉnh doanh mà đưn vị hoạt động Thèm nữa, hiếu biết khơn 14 đặi ru corta: ty ỉ ặ p khó khăn mà ìmav cá iiiai đoạn cõny việc phát Iriên tốt Phương pháp coi tối ưu dế dieu hành phàn lích mội cách phổ phán hoạt động ca xớ riỹhiỗp mỡnh, tll cỏu hụi vộ nhnu vốn ló anh lì ƯỚM‘2 (lốn CỊIIÚ trình sán xi va lìm càu nã lịi xac [rong thời iiiun imán nhàm dại !ựi nhuận cao Đè thực cỏn li việc cônn ly niiirời la có nhiều hộ ch ươn ti Irình lự (-lộng hoá tĩnh vực quan trọn» ke loán lập kế hoạch, iĩiao dịch khách liànu lập hoii dơn Tuy nhiên, mỏi hệ điươnií Irình chí phục vụ chủ yếu cho hoạt độntĩ côiiiĩ ty n o n g mội lĩnh vực dó.Vì mẩu tin hệ ihống ctó, vé hán chất phan ánh mội vài khía cạnh giao dịch Chính lý hộ ihốiiiì có tồn c ố điên hệ thống xử lý sitio dịch (OLTP- online transaction processing) Sau ctûv sơ đổ hệ thống O L T P diên hình H ìn h l M ỏ h ìn h m ộ t h ệ thoiiỊỊ O Í.T Ỉ’ Minh I irình mỏ hình hộ thởuíi OLTP, hệ thống cho phép giao dịch ihay dổi liệu trona biins (ví dụ bang lệnh inserí, update, delete,join.,.) irong q irình xứ lv Tron tì hình I irèn, ứ nu dụng trinh khách dang truy cập liệu từ sỏ' liệu quan hệ với Ihiio tác insert, update Hộ thông cho phcp nhiêu Ứ1V.Ĩ dụng truy cập liệu cùim thời gian Các ứiiii (June Irền cliciii hao gồm lúi cá loại ứng dụng ngân hàng, bán vé trực luyến, bán vé hàng không, Ihanh tốn cước phí Sứ (lụnti hệ thống O L T P có ưu cticm sau: - Xứ íý c hu yển lác tươns tác - Dẻ báo trì khống c h ế liệu thừa - Thiết lập liệu quan hệ trọn vẹn - Tính hiệu cao - Giám thời gian cùa khách hàng Các CSDL hệ O L T P thường dược thiết kế theo chuan hoác tốt Đặc điểm hệ thống O L T P lưu trữ liệu '’thơ", có nghĩa mức độ tổng quát, trừu tượng liệu ihítp Nói cách khác O L P T có ích để lìm Irả lời càu truy víín dạng: Tổng sán lượng sàn pham X công ty bán tháng đáu năm,mặt hàng bán chạy địa phương Y tháng vừa qua Trong nhà quan lý mức cao cơng ty quan tâm đến câu hịi loại Điểu họ cần ý càu hỏi trừu tượng như: Tiêu thụ A B dang giam, thay đối 3%~5% giá san phẩm A lại khu vực B, tình trạ ns tiêu thụ thay đổi tháng cuối năm sao? Rõ I'àng hệ thống O L T P Irã lời lốt câu hỏi ỉ bồng công cụ hệ CSDL quan hệ dể lìm đáp án cho câu hỏi dạng không đơn gian Crin phái xem xél loạt yếu tố ánh hướng đến việc liêu thu san phẩm A, yếu lốt dó là: + Chương trình qng cáo khống hiệu LỊ + Việc tìm hiếu thị trường khơng lốt + Việc tổ chức bán hàng B + Việc bảo dám chất lượng sân phfim A khô im tôt + Sự ihay đối cúa mức sống địa bàn B Bán Ihùn việc tìm nhữniĩ nhân lố có ánh lurớnũ đến q trình dã vìỌ y cú tính irừu tượnũ cao có nhicu yếu lố trí tuệ nhàn lạo Sau ■ > ì xác định sơ dược c;íc you tố náy can xây ilựniỉ chươnụ Irình nhăm xác (.tịnh mối quan hệ cú a you lố (.10 với Iiình liêu (hụ săn plũiiìi Dày cõng việc không hể dơn gián bới sỏ liệu cúa võ LI lị can xem xél nám nhún« CSDL khác Nhữnií yếu lố hãn cán trớ việc sứ đụiì‘j tlữ liệu hệ thổn '2 O L P T trorìíỉ việc phàn tích (lữ liệu là: + Các số liệu mức chi tiếl + Các số liệu phân bố nhữnu hệ Ihốntí khúc nhau, cổ ihủ lục Iruy cập khác CSDL hoàn toàn khác + Các số liệu không dược cập nhập cù 112 mội chu kv dẫn đến dồng + Việc lố chức truy cập lừ nhiều bán ự; liệu khúc có ảnh hưởng xấu lới hiệu suất cùa hệ Ihống VI mục đích hộ thống nhằm phụ c vụ cấc giao dịch trực luyến Vào nhữnu năm 80, nsiười la bát đáu dề cập tiến khái niệm khủng hoang phàn tích số liệu tác níihiộp.Niĩiin nhãn tình trạriíĩ tương đối kỳ lạ: Trong môi irường thừa thãi số liệu, nhà phân tích khơng thể tìm cho thơng tin cắn ihiêì nhằm, có hiếu biết Ihấu dáo vổ trình xáy xung qiuml) Tình trạ ns số liệu q chi tiết khơn« có dược liên kết với số liệu phàn ánh q Irì nil lươn li dơi độc lập cúa thực thể lý trực tiếp dẫn đốn khủng hoủnỉĩ Tinh trạng thừa Ihỏng tin,thiếu tri ihức dược John Naisbeli cánh báo:”Chímỉỉ ta dang chìm ngập liệu mà vần đói tri thức." Từ nlìừnỉĩ h cập cùa hệ !hơ'rm xử lý lỉiao dịch việc cung cấp thông tin hỗ trự việc định, từ nhữnỉĩ nãm 1983 nhà nghiên cứu dặt vài giai pháp nham vượi qua bế lác vừa dinh bày Giái pháp đầu liên lích hợp hệ Ihốnii O L T P tie tạo mộl hệ thống chứa dẩy ti ủ Ih ò n 11 SI Ún Giãi pháp dó có hai nhược điếm lớn: Phái liên kết hệ ihơYig có xuất xứ khác ve phan cứng phán mồm hệ (lìóne.Các chươnu trình cần có thốn« nhà! ve định nuhìa liệu cũ nạ phương pháp biếu diễn liệu Vấn đc rãi phức lạp chí hệ 1'hốniĩ c ó thiết kế phan lích tốt hồn tồn khơng itii dối với nhữna hệ (hống dược mô I).Việc truy vàn de lạo báo cáo 1hường xu vòn phái khua rát nhiều bán Li, cán trớ truy xuàì nhũn viên khai Ihác ironu Irình làm việc hàng ngày làm ánh hướng lrực liếp den khách hàim Mội cácl '1 tiếp cạn khác dược vài TB) (Từ vài trảm MB->vài GB) - Dữ liệu lức thời - Dữ liệu có tính lịch sử - Dữ liệu chuẩn hố - Dữ liêu khơng chuẩn hố (Nhiều dịng,ít bang) (Nhiều báng,ít dịng) - Cập nhạt lên lục - Cập nhạt theo chu kỳ - Đáp úng câu hói ciưon tỉiàn - Đáp ứng câu hỏi râì phức tạp .1 A* * * * * * * * * * * * * * * * * • Module chun dir lieu ngitơn saim dich CREATE OR REPI ACE PACKAGE HNPT_MAPPING AS - - A u d i t i n g mode c o n s t a n t s AUDIT_NONE AUDIT_STATISTICS AUDIT_ERROR_DETAILS AUDIT COMPLETE CONSTANT CONSTANT CONSTANT CONSTANT BINARY_INTEGER BINARY_INTEGER BINARY_INTEGER BINARY INTEGER O p e r a t i n g mode c o n s t a n t s MODE_SET MODE_ROW MODE_ROW_TARGET MODE_SET_FAILOVER_ROW MODE SET FAILOVER ROW TARGET CONSTANT CONSTANT CONSTANT CONSTANT CONSTANT BINARY_INTEGER BINARY_INTEGER BINARY^INTEGER BINARY_INTEGER BINARY INTEGER V a ria b le s fo r a u d itin g get_runtim e_audit_id g et_audit_level g et_cycle_date get_m odel_id g e t _ m o d e 1_ n a m e get_purge_group NUMBER( 22) := ; BINARY_INTEGER := AUDIT_ERROR_DETAILS; CONSTANT DATE := SYSDATE; CONSTANT NUMBER( 22 ) := 0; CONSTANT VARCHAR2( ) := ’ HNPT_MAPPING1 CONSTANT VARCHAR2( ) := ' w b ’ ; P ro c e ssin g get_selected get_inserted get_updated g et_deleted get_m erged get_errors get abort NUMBER( 22 ) NUMBER( 22) NUMBER( 22) NUMBER(22) NUMBER(22) NUMBER( 22) BOOLEAN variables 0 0 0; FALSE; get_m ax_errors ge t_commi t_ £ re q u e n c y g e t _ o p e r a t i ng_mode check_record_cnt sql_stm t > 50; NUMBER( 22) : = NUMBER(22) := 1000; MAQP BINAR Y_It.’TEGER NUMBER( 22 ) := VARCHAR2( 7 ) Bulk p r o c e s s i n g get_bulk siz e NATURAL variables 50; - - DML E x c e p t i o n s checked_table_iiot_em pty EXCEPTION; PRAGMA EXCEPTION I N I T ( c h e c k e d _ C a b l e _ n o t _ e m p t y , ■1 1 ) ; i n v a id_dml ~ EXCEPTION; PRAGMA EXCEPTION I N I T ( i n v a l i d dml , - 1 ) ; S t a t u s v a r i a b l e Eor B a t c h c u r s o r s "YEU_CAU_St" BOOLEAN; " KHACH HANG_St " BOOLEAN; "TH IET BI _St ” BOOLEAN ; " D O N _ V I _ T C _ S t " BOOLEAN; "VUNG S t " BOOLEAN; ■ »r»>*r* lr»' nnif-ür' , L * Bu 1k : t y p e s f o r c o l l e c t i o n v a r i a b l e s TYPE "T_J01N_INGRPl_MA_YC" 1S TABLE OF VARCHAR2( ) INDEX BY BINARY_INTEGER; TYPE "T_JOIN_lNGRP2 SO_LUONG'’ IS TABLE OF NUMBER ( , ) INDEX BY BINARY_INTEGER; TYPE " T_J OI N_I NGRP2 SOJTI EN" I S TABLE OF NUMBER(10,0) INDEX BY 8INARY_ỴNTEGBRrTYPE ,,T_JOIN_INGRP l_KET_QUA” I S TABLE OF VARCHAR2(1) INDEX BY BINARY_INTEGER; TYPE " T_J OI N_I NGRPl _LY_DO" IS TABLE OF VARCHAR2(50i INDEX BY B Liv.- INDEX BY BINARY_INTEGER; TYPE 11T_J O I N _ I NGR P _NGAY_HOAN_TH ANH11 I S TABLE OF DATE INDEX BY BINARY INTEGER ; TYPE "T JOIN INGRPl_NGAY_GIAO“ I S TABLE OF DATE INDEX BY B INARY INTEGER ; TYPE "T_JOIN_INGRP1~DON_VI_TC" I S TABLE OF VARCHAR2(3) INDEX BY BINARY_INTEGER ; TYPE "T JOIN_INGRP2_THI ET_BI " I S TABLE OF VARCHAR2(3) INDEX BY BINARY_ÏNTEGER; TYPE "T_JOIN_INGRP2_VUNG11 I S TABLE OF VARCHAR2(4) INDEX BY BINARY_INTEGER; TYPE ”T_YEU_CAU_MA_YC" I S TABLE OF VARCHAR2(16) INDEX BY BINARY_INTEGER; TYPE "T_YEU_CAU_SO_LUONG" I S TABLE OF NUMBER( , ) INDEX BY BINARY_INTEGER; TYPE " T_YEU^CAU_SO_TI EN " I S TABLE OF NUMBER( , ) INDEX BY BINARY_INTEGER; TYPE " T_YEU_CAU_KET_QUA" I S TABLE OF VARCHAR2(1) INDEX BY BINARY_INTEGER; TYPE " T_YEU_CAU_LY_DO,r I S TABLE OF VARCHAR2(50) INDEX BY BINARY_INTEGER; TYPE "T_YEU_CAU_SO_MAY" I S TABLE OF VARCHAR2(8) INDEX BY BÏNARY_INTEGER; TYPE "T_YEU_CAU_NGAY_HOAN_THANH" I S TABLE OF DATE INDEX BY BINARY_INTEGER; TYPE "T_YEU_CAU_NGAY_GIAO" I S TABLE OF DATE INDEX BY BINARY_INTEGER ; TYPE ,,T_YEU_CAU_DON_VI_TC_MA_DONJ/I " I S TABLE OF VARCHAR2 ( ) INDEX BY BINARY^INTEGER; TYPE "T_YEU_CAU KH_HANG_MA_YC“ I S TABLE OF VARCHAR2(16) INDEX BY BINARY_INTEGER; TYPE UT_YEU_CAU_THIET_BI_MA_TBI" IS TABLE OF VARCHAR2{3) INDEX BY BINARY_INTEGER; TYPE ,,T_YEU_CAU_VUNG_MA_VUNG" I S TABLE OF VARCHAR2(4) INDEX BY BINARY_INTEGER; TYPE " T_STG_THIET_BI_MA_TB111 IS TABLE OF VARCHAR2 ( ) INDEX BY B ÏNARY_INTEGER; TYPE "T_STG_THIET_BT_TEN_THIET BI" I S TABLE OF VARCHAR2(3Q) INDEX BY BINARY_INTEGER ; TYPE "T _ T HI ET _BI _ TH I ET _ BI _ M A _ TB I " IS TABLE OF VARCHAR2(3) INDEX BY BINARY_INTEGER ; TYPE " T _T HI ET _BI _T HI ET _BI _T EN _T HI ET _" I S TABLE OF VARCHAR2(30) INDEX BY BINARY_INTEGER; TYPE ‘‘T_STG_DON_V/I_TC_MA_DON_VI " I S TABLE OF VARCHAR2U) INDEX BY ÖINARY_INTEGER; TYPE " T_STG_ DON_VI_TC_TEN_DON_VI" IS TABLE OF VARCHAR2( 30) INDEX BY 3IMARY_ÏNTEGER; TYPE ,,T_DON_VI_TC_DOM_VI_TC_MA_DON_V11 I S TABLE OF VARCHAR2 ( ) INDEX BY BINARY_INTEGER; TYPE "T_DON_VI_T_DON_VI_TC TEN_DON_V" I S TABLE OF VARCHAR2( 30 ) INDEX BY BINARY_INTEGER ; TYPE “T_JOIN lNGRP2_D I A _ CH I 11 IS TABLE OF VARCHAR2(50) INDEX BY BI MARY I NTEG ER ; TYPE " T_ J0 1N I N Ü R P M A Y C " IS TABLE OF VARCHAR2(16; INDEX BY B1MARY_INTEGER; 95 TYPE " T _ J 0I N _Ï N GR P2 _TEN_KH" L'S TABLE OF VARCHAR2 ISO) INDEX BY BINARY_INTEGER ; TYPE " T _ J O IN_INGR P2 DOI_TUONG" IS TABLE OF VARCHAR2(3) INDEX BY B1NARY_INTBGER; TYPE "T_KHACH_HA.NG_KH_HANG_DIA_CH I " I S TABLE OF VARCHAR2(S0) INDEX BY BINARY_INTEGER; TYPE "T_KHACH_HANG_KIi_HANG_MA_YC'’ I S TABLE OF VARCHAR2U6) INDEX BY BINARY_INTEGER; TYPE " T_KHACH HANG_KH_HANG_TEN_KH" IS TABLE OF VARCHAR2( 0) INDEX BY BINARY_INTEGER ; TYPE ’,T_KHACH_HANG_pOI_TUONG_MA_DT" I S TABLE OF VARCHAR2 ( ) INDEX BY BINARY_INTEGER; TYPE " T_STG_VUNG_MA_VUNG" I S TABLE OF VARCHAR2(4) INDEX BY BINARY^INTEGER; TYPE ,,T_STG_VUNG_TEN_VUNG" I S TABLE OF VARCHAR2(30) INDEX BY BINAÂY^INTEGER; TYPE " T_VUNG_VUNG_MA_VUNG14 I S TABLE OF VARCHAR2(4) INDEX BY BTNÄRY_INTEGER ; TYPE "T_VUNG_VUNG_TEN_VUNG" I S TABLE OF VARCHAR2(30) INDEX BY BINARY_INTEGER; TYPE ,,T_JOIN_INGRP1_MA_YC$0" IS TABLE OF VARCHAR2(16) INDEX BY BINARY_INTEGER ; TYPE ,,T_JOIN_INGRP2_SO_LUONG$0" I S TABLE OF NUMBER( , ) INDEX BY BINARY_INTEGER; TYPE " T _ J O I N _ I N G R P _ S G _ T I E N $ “ I S TABLE OF NUMBER(10,0) INDEX BY BINARY^INTEGER; TYPE “T_JOIN_INGRP1_KET_QUA$0" I S TABLE OF VARCHAR2(1) INDEX BY B I NARY_INTEGER ; TYPE "T_JOIN_INGRP1_LY_DO$0" I S TABLE OF VARCHAR2(50) INDEX BY BINARY_INTEGER; TYPE "T _ J O IN_INGR P1 S0_MAY $ " I S TABLE OF VARCHAR2(8) INDEX BY BINARY_INTEGER ; TYPE " T_JOIN_INGRP1_NGAY_HOAN_THAN$0" I S TABLE OF DATE INDEX BY BINARY_INTEGER; TYPE “T_J0IN_INGRP1_NGAY_GIAO$Û" I S TABLE OF DATE INDEX BY BINARY^TNTEGER; TYPE "T _J OI N_ I NGRP _ DON_ VI _T C$ 0“ I S TABLE OF VARCHAR2(3) INDEX BY BINARY_INTEGER; TYPE " T _ J O I N _ I N G R P _ T H I E T _ B I $ " I S TABLE OF VARCHAR2(3) INDEX BY BINARY_INTEGER; TYPE ”T_JOrN_INGRP2_VUNG$0" I S TABLE OF VARCHAR2U) INDEX BY BINARY_INTEGER; TYPE "T_YEU_CAU_MA_YC$0" I S TABLE OF VARCHAR2(16) INDEX BY BINARY_INTEGER; TYPE "T_YEU_CAU_SO_LUONG$011 I S TABLE OF NUMBER ( , ) INDEX BY BINARY_INTEGER ; TYPE "T_YEU_CAU_SO_TtEN$0" I S TABLE OF NUMBER( , ) INDEX BY BINARY_INTEGER; TYPE " T_YEU_CAU_KET_QUA$0" I S TABLE OF VARCHAR2(1) INDEX BY BINARY_INTEGER; TYPE "T_YEU_CAU_LY_DO$0“ I S TABLE OF VARCHAR2(50) INDEX BY B INAJRY_INTEGER ; TYPE " T_YEU_CAU SO MAY$0 " I S TABLE OF VARCHAR2 ( ) INDEX BY BINARY_INTEGER; TYPE “T_YEU_CAU_NGAY_HOAN_THA1'!H$011 I S' TABLE OF DATE INDEX BY BINARY ÏNTEGER ; TYPE "T_YEU_CAU_NGAY_GIAO$0" I S TABLE OF DATE INDEX BY BINARYJINTEGER ; TYPE "T_Y EU CAU_DON_VT_TC_MA_DON_V$ " I S TABLE OF VARCHAR2(3) T.NDEX BY BINARY_INTEGER; TYPE ”T_YEU_CAU_KH_HAMG_MA_YC$0“ IS TABLE OF VARCHAR2(16) INDEX BY ß INARY INTEGER ; 96 TYPE "T YËU_CAU_THiET_B 1_MA_TB i “ t S TABLE 01' VARCHAR2 ( 3) 1NDEX UV BTNARY^INTEGBR; TYPE "T_YEU CAU _VUNa MA_VUNG$0 " IS TABLE OF VARCHAR2 ( ) INDEX BY BJ NARY_INTEGER; TYPE “T_STG_THI ET_BI _MA_TBI $ " [S TABLE OF VARCHAR2(3) INDEX BY BJNARY_INTBGER; TYPE "T_STG_THIET BI TEN_TH £E T _ B I $ " I S TABLE OF VARCHAR2( ) INDEX BY BINAR Y_INTEGER; TYPE "T^THI ET _BI_TH IET BÏ MA T B1$0" IS TABLE OF VARCHAR2 ( 3) INDEX BY BINARY_INTEGER; TYPE "T_TH I E T _ B I _TH IET_BI _TEN_THI E$ “ I S TABLE OF VARCHAR2(30) INDEX BY BINARY_INTEGER; TYPE "T_STG_DON_VI_TC MA_DON_VI$0" I S TABLE OF VARCHAR2U) INDEX BY BINARY_ÏNTECER; TYPE "T_STG_DON_VI_TC_TEN_DON VI$ " IS TABLE OF VARCHAR2(30) INDEX BY BÏNARY_INTEGER; TYPE ,,T_DON_VI_TC_DON_VI_TC_MA_DON$0" I S TABLE OF VARCHAR2(3) INDEX BY BINARY_INTEGER ; TYPE “T_DON_VI_T_DON_VIJTC_TEN_DON$0" I S TABLE OF VARCHAR2(30) INDEX BY 8INARY_INTEGER; TYPE " T _J OI N_ I NG RP 2_ DI A_ C HI $ " I S TABLE OF VARCHAR2(50) INDEX BY BINARY INTEGER ; TYPE "T_JOIN_ỴNGRP2_MA_YC$0" IS TABLE OF VARCHAR2Q6) INDEX BY BINARY^INTEGER; TYPE "T_JOIN_INGRP2_TEN_KH$0" I S TABLE OF VARCHAR2(50) INDEX BY BINARY_INTEGBR; TYPE "T_JOIN_INGRP2_DOI_TUONG$Û" IS TABLE OF VARCHAR2(3) INDEX BY BINARY_INTEGER; TYPE "T_KHACH_HANG_KH_HANG_DIA_CHI$0" I S TABLE OF VARCRAR2( ) INDEX BY BINARY_INTEGER; TYPE “T_fCHACH_HANG_KH_HANG_MA_YC$0" I S TABLE OF VARCHAR2(16) INDEX BY BINARY_INTEGER; TYPE l,T_KHACH_HANG_Kil_HANG_TEN_KH$Û" I S TABLE OF VARCHAR2(50) INDEX BY BINARY_INTEGER; TYPE "T_KHACH_HANG_DOI_TUONG_MA_DT$0" I S TABLE OF VARCHAR2(3) INDEX BY BINARY_INTEGER; TYPE ,,T_STG_VUNG_MA_VUNG$0" I S TABLE OF VARCHAR2 ( ) INDEX BY BINARY_INTEGER ; TYPE "T_STG_VUNG TEN_VUNG$ “ I S TABLE OF VARCHAR2[30) INDEX BY BINARY_INTEGER ; TYPE "T_VUNG_VUNG_MA_VUNG$0" IS TABLE OF VARCHAR2{4) INDEX BY BINARY_INTEGER ; TYPE "T_VTJNG_VUNG_TEN VUNG$0 " I S TABLE OF VARCHAR2(30) INDEX BY BINARY_INTEGER ; - - Bu3 k : c o l l e c t i o n v a r i a b l e s "J OIN INGRP1 MA_YC" " T_ JO T N _ I N G R P M A Y C " ; " J O I mJ i NGRP2_SO_LUONG" "T_JOIN_TNGRP2_SO_LUONG"; " J O I N_ I NG RP _ SO _T I EN " ”T_J OI N_ I NG RP 2_ SO _T IE N" ; " J0IN_INGRP1_KET_QUA" “T_JOIN_INGRP1_KET_QUA” ; ’■J O IN INGRP 1_LY DO“ "T_JOIN_INGRPl_LY_DO" ; " JÛIN~INGRP1_S0~MAY" ,,T_JOIN_INGKPl_SO_MAYn ; “JOIN_INGRPI_NGAY_HOAN_THANH" "T_JOIN_INGRPl_NGAY_HOAN THANH"; " J OI N_ I NGRP1J n GAY_GIAO" " T _ J C I N _ I NG " P1_NGAY_GIAO", “ JOIN _INGRPl_DON_VI_TC" "T_ J O I N_ I N GR Pl _ D ON _V I _ TC" ; " JOIN_I NGRP2_THI ET_B I " " T_JOI N_I NGRP2_THI ET_BI " ; "JOIN_LNGRP2_VUNG" '‘T_JOIN_INGRP2_ VUNG" ; " i KU_CAU _MA_YC r_YEU_CAU_MA_YC"; “ Y E U C A l T s O ^ U O N G " "T_YEU_CAU_SO_LUONG" ; " Yliü_”cAU ~SO_T I EN " "T_ YEU CAU_SO _ TI EN" ; " YEUJ c Au J k BTJJUA f"’’y EU~CAU_KET_QUA" ; 97 "YEƯ_CAU LY_DO " "T_YEU_CAU_LY_DOH; "YEƯ_CAU SO MAY" •'T YEU_CAƯ s o M A Y ; " YEU_CAU~NGAY HOANJTHANH" " T_ŸEU_CAU_NGAy HOAN_THANH"; " YEU~CAU_NGAY~G T.AO " "T_YEU_CAU_NGAY GIAO" ; "YEU CAlTpON_VI_TC MA_DÜN_VI" "T_Y ë Ü CAU_DON_Vr_TC_MA_DON V I " ; "YEƯ~CAU KH_HANG_MA YC" "T_Y£U_CAU_KH_HANG_MA_YC" ; " YEU CAU_THIET_BI_MA_TBI •' ''T_YEU_CAU_THI ET_B I_MA TBI " ; "YEU~CAU_VUNG_MA_VUNG r_YEU_CAU_VƯNG_MA_VƯNGM; "STG_TH IET_B I _MA_TB I " ■'T_STG_THI ET_B I_MA_TBI " ; " STG~THIET_BI_TEN T H I E T _ B I " "T_S TG_ T HI ET _BI _T EN_ T HI ET _BI “ ; "T Hi E T _ BI _ TH IE T _BI _ MA _T BI " 11T_THI E T _ BI _ T H r £ T _ B I MAJTBI" ; " T H I E T _ B I _T H IE T _B I _ T E N _ TH I ET _ " "T_ THI ET_ BI J T H I E T _B I T E N _ T H I E T _ " ; " STG_DOM_VI_TC_MA_DON_VI" "T_STG_DOM_VÏ_TC_MA_DON_Vr" ; " STG_DON_VI_TC_TEN_DON_VI" "T_STG_DON_VI_TC_TEN_DON_VI•' ; " DON_VI_TC_DOM_VI_TC_MA_DON_V" ”T_DON_VI_TC_DON_VI_TC_MA_DON_V"; " OON_VI_T_DON_VI_TC_TEN_DON_VM " T_DON_VI _T_DON_VI_TC_TEN_DON_V"; 11J OI N_ INGRP _ DI A_ CHI " "T_JOI N_I NGRP2_DI A_CHI " ; " JOIN_INGRP2_MA_yC" ',T _ J O Ĩ N _ INGRP2_MA_YC" ; "JOlN_INGRP2_TEN_KH" "T_JOIN_INGRP2_TEN_KH” ; ”J ’OlN_INGRP2_DOI_TUONG" "T_JOIN_INGRP2_DOI_TUONG ■■; " KHACH_HANG KH_HANG DIA CHI " “T_KHACH_HANG_KH_HANG_D IA_CHI •' ; "KHACH_HANG_KH_KANG_MA_VC" •' TJiHACH_HANG_KH_HANG_MA_YC" ; " KHACH_HA.NG_KH HANG_TEN_KH" “T_KHACH_HAWG_KH_HANG_TEN_KH“ ; " KHACH_HANG_DOl’_TUONG_MA_DT" MT_KHACH_HANG_DOI_TUONG_MA_DT" ; "STG_VUNG_MA_VUNG" "T STG VUNG MA_VƯNG" ; "STG^VUNG J TENVUNG" "T_STG_VUNG_TEN_VUNG» ; " VUNG_VUNG_MA_VUNG " " T_VUNG_VUNG_MA_VUNG " ; ° VUNG~VUNG_TEN_VUNG " " T_VUNG_VUNG_TEN_VUNG " ; ••JCi:;_TNGRPl_MA_YC$0" 11T_JOIN_INGRPl_MA_YC$ 11; "JOIN_IMGRP2_SO_LƯONG$0" " T_ J OI N INGRP2_SO_LUONG$0"; " J O£ N_ t NGRP2 _S O_ TI EN$ 0" " T _ J O I N _ Ï n g R P2 _ SO _T IE N $ " ; " J O IN INGRP1_KET_QUA$0" ”T_JOIN_INGRP1_KET_QUA$0"; " J OI N_I NGRP1J LY_DO$0" " T _ J OI N _ I N GR P l L Ï _D O$ "; " J O I N _ I N G R P 1_SO_MAY$ " "T_ J OI N_ I NGRP l _S O_ MAy $0 "; " JOIN_ÍNGRPl_NGAY_HOAN_THANẸ0" " T_JOIN_INGRPl_NGAY_HOAN_THAN$ " ; " JOIN_XNGRPl_NGAY_GIA0$0 " -‘T _J OI N_I NGRPl_NGAYj3I AO$0 " ; " JOIN_INGRP1_DOM_VI_TC$0'' " T _ J O I N _ I N G R P l _ p O N _ V I _ T C $ “ ; " J O I N _ I N G R P _ T H I B T _ B I $ " ‘' T_J OI N_I ! SỴ GRP2_THI ET_8I $0'■; " JOIN_INCRP2_VTJNG$0 " "T_JOIN_INGRP2_VUNG$0 " ; "YEU CAU_MA_YC$0M "T_VEU_CAU_MA_yc$0 " ; "YEU_CAU_SO_LƯONG$0" "T_YEU_CAƠ_SO_LUONG$o " ; ■'YEU_CAU_SO_TIEN$0” " T_YEU_CAU_SO_TI EN$0 " ; 11YEU_CAU_KET_QUA$0" l,T_yEU_CAU_KET_QUA$0 " ; “ YEU_CAU_LV^DO$0 "T_YEU_CAU_LY_DO$0" ; " YEU_CAU_SO MAY$0" ■'T_YEƯ_CAŨ_SO_MAY$0 " ; " YEU_CAU_NGAY_HOAN_THANH$0 '• "T_YEU_CAU_NGAy_HOAN_THANH$ " ; "YEU_C"AU_NGẠ GIAQ$0 " "T_YEU_CAU_NGAY J I A O$ 11 ; " Y£U_CAU_DON_VX_TC_MA_DON_V$0 " '■T_YEU_CAU_DON_VI_TC_MA_DON_V$ " ; " YEU_CAU_KH_HANG_MA_YC$0 " "T_YEU_CAU_KH_HANG_MA_YC$ " ; '■Y£U_CAƯ_THIET_BI_MA_TBI$0" "T_YEU_CAU_TH TET_B I_MA_TBI $ " ; "YEU CAU_VUNG MA_VUNG$0" "T_YEU_CAU_VUNG_MA VUNG$ " ; '•STGJTHIÊT, BI _ MA _T BI $ 0” "T_STG_THIET_BI_MA_TBI$0 " ; „ STG TH J e T~Jb I~TEN_THI ET_B I $ " "T_STG THIET_BI_TEN_THI ET_B I $ " ; "THI ET_BI _THIET_B ĩ _MA_TBI$0" "T_THI ET_BI_THI ET_BI_MA_TBỵ$ 0"; "THIET_BI_THIET_BI_TEN_THIE$0’' "T_THIET_Bẽ_THIET_BX_TEN THẻEầO"; "STG DON_VI_TC_MA DON vr$0 ã'T_STG_DON_VI _TC_MA_DON_VI$0" ; "STG_CON_VI_TC_TEN_DON_VI$0" "T_STG_DON VÏ_TC_TEN_DON_VI$0"; " DON_VI_TC_DON_VI_TC MA_DO^Ỉ$0•, •lT_DON_VI_TC_DON_VI_TC_MA_DON$0 '• ; " DON_VI _T_DOM_VI_TC_TEN_DON$0 11 "T_DON VI T_DON_VI TC TEN_DON$0 ” ; "J OI M_I NGRP2 _DI A_ CHI $0 " ”T _ J O m _ t N G R P _ D ĩ A_CHI $ " ; "JOUI ÍWGRP2 MA YC$0" “T JOLN_rNGRP2 MA YC$0" ; 98 ■ " J O r M_ IMGRP2 TEN_KH$ " "T_JOI N_I NGRP2_TEN_KH$0" ; • " J O i'K’_TNGRP2_DO.l~TU0NG$0" "T_JOIN_INGR.P2_DOI_TUONG?0" ; ' "K1HACH _HANG_KH_HANG_DI A_CHI $0 r_KHACH_HANG_KH_HANG_DLA_CHI $0 " ; ■ ” K^ACH_'HANG_KH_HANG_MA_YC$0" 11T_KHACH_HANG_KH_HANG_MA_YC$0" ; ‘'K:HACH_HANG_KH_HANG_TEN_KH$0" ,,T_KHACH HANG_KH_HANG_TEN_KH$0,‘ ; " ¡CHACH_HANG_DO'I_TUONG_MA_DT$0" " T_KHACH_HANG_DOI_TUONG_MA_DT$0" ; "S'TG_VUNG_MA_VUNG$0 " "T_STG_VUNG_MA_VUNG$0 " "S'TG_VUNG_TEN_VUNG$0 " "T_STC_VUNG_TEN_VUMG$0"; * " VVJMG_VliNG_MA~VUNG$0 " "T_VUNG_VUNG_MA_VUNG$0" ; " '‘VUWG_VUNG_TEN_VirNG$0" "T_VUNG_VUNG_TEN_VUNG$0" ; - P r o c e d u r e M a i n - - E n t r y p o i n t i n p a c k a g e HNPT_MAPPING P PROCEDURE M a i n ( p _ o p e r a t i n g _ m o d e IN BINARY_INTEGER DEFAULT NULL, p P _ a u d i t _ l e v e l IN BINARY_INTEGER DEFAULT NULL, p _ m a x _ e r r o r s IN NUMBER D DEFAULT NULL, p _ c o m m i t _ f r e q u e n c y IN NUMBER DEFAULT NULL, p _ b u l k _ s i z e IN NNUMBER DEFAULT NULL, p _ J o b IN VARCHAR2 DEFAULT ‘ NULL') ; E END HHPT_MAPPING; C CREATE OR REPLACE PACKAGE BODY HNPT MAPPING AS - F u n c t i o n ” YEU_CAU_Bat" p erfo rm s batch e x tra c tio n - -R e t u r n s TRUE o n s u c c e s s R e t u r n s FALSE o n f a i l u r e F(FUNCTION ”YEU_CAU_Bat " RETURN BOOLEAN I S b a t ch_ s e l e c t e d NUMBER( 22 ) : » 0; NUMBER( 22 ) := 0; b a t C h_eriors NUMBER (22) : *= ; Da c c n _ i n s e r t e d NUMBER( 22 ) :» 0; bat chjnerged VARCHAR2( 2) ; b a t ch_action VARCHAR2(3 ) ; a c t ual_ow ner VARCHAR2( ) ; a c t ual_nam e NUMBER( 2 ) ; nuim_£k_err NUMBER(22) ;= 0; l_row key VARCHAR2(3 0) : = ' CR E A T E ' ; l_ tab le l_row id ROWID; VARCHAR2(3 ) ; l_ov>rter VARCHAR2( 30 ) ; i_tablenam e VARCHAR2( ) ; l_const raint VARCHAR2 ( 7 ) ; sql_excp_stm t BOOLEAN ;= FALSE; ■ batch_exception NUMBER(22) := ; > ge t_jnap_num _row s ' TYPE e x c e p t i o n s C u r T y p e IS REF CURSOR; < excep tions cursor exceptionsC urT ype; ' " YE U_ CAU_ id" NUMBER ( 22) := 0; EGGIN j I F g e c _ a b o r t THEN RETURN FALSE; I END I F ; - IF g e c _ a u d i t _ l e v e l != AUDIT_N0NE THEN " YEU _ CA U_ idN :* WBPRTI a u d i t d _ b e g i n ( ye-c t u n t i m e a u d i t i d , C)l) , ' " Y E U_ C A U_ B a t : 11 *, I*• MYEU C A U " ' , NULL, NULL ); END I F ; COMMIT; EXECUTE IMMEDIATE 'ALTER S E S S IO N ENABLE PARALLEL DML1 ; BEGIN r e s o l v e a c t u a l o w n e r a n d name WBPRTIU r e s o l v e _ n a m e (USER, 'YEU_CAU', IF NOT " Y E U_ C A I J _ S t " actua.L _ow ner, actu al name) THEN b a t c h _ a c t i o n : = ’ BATCH I N S E R T ' ; INSERT / * + APPEND P A R A L L E L ( " Y B U _ C A U " , DEFAULT, D E F A U L T ) * / INTO ” YEU_ CAU‘' ( " MA_ YC’’ , " SO_LUONG", "SO_TIEN", " KET_QUA", " LY_DO" , l,SO_MAY " , " NGAY_HOAN_THANH" , "NGAY_ GI AO' ' , ” DON_VI_TC_MA_DON_VI" , " KH HANG_MA_YC" , " T H IE T _ B I_ M A _ T B I", ” VUNG_MA_VUNG" ) (SELECT 11S TG _ D A T _ MO I " "MA_YC" ” I NGR P _ MA_ YC " , ,,S T G _ K H_ H AN G ” " S O_ LUONG" ” I N G R P _ S O _ L U O N G " , " STG_KH_HANG " " S O _ T J.EN " ” I N G R P _ S O _ T I E N " , 11S T G _ D A T _ M O I " " KET_QUA" 11I N G R P _ K E T _ Q U A " , " S T G _ D A T _ MO 1" " LY_DO" " I N G R P l _ L Y _ D O “ , " STG_DAT_MOI" " S O M A V " " INGRP1_S0_MAY", " STG_DAT_MO 11 " NGAY_HOAN_THANH" " I NGR P _NGAY_HOAN_THANH" , " STG J DAT _ MO 11 •' NGAY_GIAO" " I NGRP1_NGAY G I A O " , " STG_DAT_MO 11 " DON_VI TC' " I N G R P _ D N _ ' / I _ T C " , " S T G _ D A T _ M O I " "MA_YC" ” I N G R P _ M A _ Y C $ " , " S T G_ K H_ H AN G " " T H I E T _ B I " " I N G R P _ T H I E T _ B I " , " STG_KII_HANG " "VUNG" " I N GR P VUNG" FROM " STG_ DA T_ MO I" " STG_DAT_MOI", ‘S TG _KH_HANG" "S T G_ KH_ HANG" WHERE ( MSTG_DAT MOI" "MA_YC" = " S T G_KH_ HANG" "MA_YC" ) ); b a t c h _ i n s e r t e d : = SQL%ROWCOUNT; b a t c h _ s e l e c t e d : = SQL%ROWCOUNT; I P get; e r r o r s + b a t c h _ e r r o r a > get m ax_e r r o r s g e t _ a b o r t : » T RUE ; END I F ; COMM I T ; I00 THEN END I F ; E X C E P T I O N WHEN OTHERS THEM ROLLBACK; b a t c h e r r o r s : = b a t c h _ e r t o r s t- l ; I F gel " e r r o r s + b a t c h e r r o r s > g e t j n a x _ e r r o r s THEM g e t _ d b o r t : = TRUE; END I F ; I F g e t _ a u d i t _ J e v e l = A UDI T E RR O R_ D E TA I L S OR g e t a u d i t l e v e I AUD I T _ C O M P L E T E THEN WBPRTI e r r o r i g e t _ r u n c ¡ me_aLid i t _ i d , , " Y E U _ C A U _ i d l‘ , = 0, ' " YEU_ CAU" , "Y EU _C A U _id", p _ sel= > batch_selected, p _ _ i n s = >NULL, p_upd=>NULL, p _ d e l = >NULL,r p_err= > batch_errors, p dis *>N'ULL, p_iner=>NULL ); END I F ; COMMIT; b atch _ ex cep tio n END ; := TRUE; BEGIN I F NOT b a t c h _ e x c e p t i o n THEN I F a c t u a l _ n a m e I S NOT NULL THEN S E L E C T N V L {n u m _ r o w s , ) I NTO g e t _ m a p _ n u m _ r o w s FROM a l L _ t a b l e s WHERE t a b l e n a m e = a c t u a l _ n a m e AND o w n e r = a c t u a l _ o w n e r ; I F ( b a t c h _ i n s e r t e d + b a t c h _ m e r g e d ) >= g e t _ m a p _ n u m _ r o w s D8MS_STATS g a t h e r _ t a b l e _ s t a t s ( ow nnam e=> actual_ow ner, tabnanie» > a c tu a l_ n a in e , e s t i m a t e _ p e r c e n t = >90, g r a n u l a r i t y = > 1GLOBAL ' , d e g r e e = > n u 11 ); END r F ; END I F ; END [ F ; E XC E P T I O N WHEN OTHERS THEN 101 THEN I F g e i _ a u d i t _ t e v e I - AUD r T _ E R R OR _ D E T A IL S A A A U D I T ^COMPLETE THEN WBPRTI e r r o r ( g et_runtim e_audi t _ i d , OR g e t _ a u d i t _ l e v e l 0, 11Y E U _ C A U _ i d " , 0, 1" YEU_OAU" , * ^ i NULL, b atch _ actio n , SQLCODE, SQLERRM, MULL ); END END; IF; TF b a t c h _ e x c e p t i o n THEN RETURN F A L S E ; END I F ; g e t _ i n s e r t e d := g e t _ i n s e r t e d + b a t c h i n s e r t e d ; g e t _ e r r o r s := g e t _ _ e r r o r s + b a t c h _ e r r o r s ; g e t _ s e l e c t e d := g e t _ s e l e c t e d + b a t c h _ s e l e c t e d ; g e t _ m e r g e d ;= g e t _ m e r g e d + b a t c h _ m e r g e d ; I F g e t _ a u d i t _ l e v e l != AUDI T_ NONE THEN WBPRTI a u d i c d _ e n d ( p _ r t d = > " YEU_CAU_ i d ” , p _ sel-> b atch _ selected , p_ins = > batch_inserted, p_upd=>NULL, p_del=>NU LL, p_err= > b a tc h _ e rro rs, p _ d i s >NULL, p _mer= > b a t c h _ m e r g e d ); END I F ; COMMI T ; RETURN T RUE; ENEN'ID "YE’U C A U B a t " ; - F u n c t i o n "TH IET_BI_Bat" perfo rm s batch e x tr a c tio n R e t u r n s TRUE o n s u c c e s s R e t u r n s F ALS E o n f a i l u r e FIJIUl ' NCTION " T H I E T _ B I _ B a t " RETURN BOOLEAN I S NUMBER( 2 ) : = ; )b atch _ selected NUMBER ( 2 ) -= ; i ib atch _ erro rs !: l b a t c h _ _ i n s e r t e d NUMBER( 2 ) : = ; I lbatch_m erged NUMBER( 2 ) : = ; 1: t b a t c h _ a c t i o n VARCHAR2 ( ) ; i ¿actual_ow ner VARCHAR2(JO); a ¿actual_nam e VARCHAR2 ( ) ; r rnum _fk_err NUMBER( 2 ) ; 11 r o w k e y NUMBER(2 ) : = ; I ll_ tab le V AR C HA R2 ( ) ;= ' C R E A T E ' ; ll_rowid ROW1 D ; 11._ o w n e r VARCHAR ( iO) ; VARCHAR2 ( JO I ; t II t a b l e n a m e 102 = I_ c o n s t r a i n t VARCHAR2 ( ) ; :jql e x c p s t m t VARCHAR2 ( 32 7 / ; b atch _ ex cep tto n BOOLEAN : = F A LS E ; g e t_ m a p _ n u m tow s NUMBER( 2 ) : = 0, T Y P E e x c e p t i o n s C u r T y p e I S REF CURSOR; ex cep t io n s_ cu rso r e x c e p t I o n s C u r T y p e ," T i l l E T _ B i _ j d " NUMBER ( 2 ) : = ; I BEGIN IP g e t _ a b o r t THEM RETURN F A L S E ; END I F ; I F g e t _ a u d i t _ l e v e l ! = AUDI T_NONE THEN " T H I E T _ B I _ i d " : = WBPRTI a u d i t d _ b e g i n ( g et_runtim e_audi t_ id , 0, 1”T H I E T _ B I _ B a t " i*i ' , 1" T H I E T _ B I " ' , NULL, NULL ); END I F ; COMMI T; EXE C UT E BEGIN I MMEDI ATE ' ALTER S E S S I O N ENABLE PARALLEL DML1 ; - - r e s o l v e a c t u a l o w n e r a n d name W B PRTIU resolve_nam e(U SER , ,T H IE T _B I', IF NOT "TH IET_BI_St" actual_ow ner, actu al_n am e); THEN o a t c h _ a c t i o n : = ' BATCH I N S E R T ’ ; INSERT / * f APPEND P A R A L L E L ( " T H I E T _ B I " , DEFAULT, D E F A U L T ) * / INTO "TH IET_BI" ( " T H I E T _ B I _ M A _ T B I 11, ,,T H I E T _ B T _ T E N _ T H I E T _ B I " ) (SELECT '• S TG_ TH ET_ B I " " MA_TB I ■' " MA_TB I " , *•STG _ T H I E T _ B I " “T EN_ TH1 E T _ B I TEN T H I E T B I " FROM ’’S T G _ T H I E T _ B I “ " STG T H ET_B I " b a c c l i _ i n s e r t e d : = SQL°«ROWCOUNT; b a c c h _ s e l e c t e d : = SQL%R0WC0UMT; I F g e t _ e r r o r s + b a t c h e r r o r s > g e t _ m a x _ e r r o r s THEN g e t _ a b o r c : = TRUE; END I F ; COMMI T; END EF; E X C E P T I O N WHEN OTHERS THEN ROLLBACK; b ar.;!i_ erro rs ; = b a tc h _ e rro rs * l; I F g e t e r r o r s + b a t c h _ e i t o r s > g e t _ m a x e r r o r s THEM g e t a b o r t : « TRUE; END I F ; I F g e v _ a u d i t _ l e v e ) = AUDIT_ERROR D E T A I L S OR g e t ; _ a u d i t I s v e ] = •\U! ) D i r C OMP [jE T E THEN \()\ WR p R T i e r r o r ( g e t _ r u n t Lnie_ a n d i c _ i U , 0, " T H I E T _ B I _ i d ", 0, ' "THIET_BI" 1, • A* NULL, b atch _ aetio n , SQLCODE, SQLERRM, NULL ); END I F ; g e t _ e r r o r a := g e C _ e r r o r s + b a e c h _ e r r o r s ; g e t _ s e l e c t e d := g e t _ s e l e c t e d + b a t c h _ s e l e c t e d ; CF g e t _ a u d i t _ l e v e l ! = AUDI T_ NONE THEM WBPRTI a u d i t d _ e n d ( p_rtd=>"T H IE T _B I_id", p_sel= > b atch _ selected , p_ins=>N U LL, p_upd=>NULL, p_del=>N U LL, p_err= > batch_errors, p_dis=>NULL, p_mer=>NULL ); END I F ; COMMIT; b atch_exception END; := TRUE; BEGIN I F NOT b a t c h _ e x c e p t i o n THEN I F a c t u a l _ n a m e I S NOT NULL THEN S E L E C T NVL ( n u m _ r o w s , ) INTO g e t _ m a p _ _ n u m _ r o w s FROM a l l _ t a b l e s WHERE t a b l e _ n a m e = a c C u a l n a m e AND o w n e r = a c c u a l o w n e r ; IF tb a c c h _ j.n s e r te d + b a t c h j n e r g e d ) >= g e t _ m a p _ n u m _ r o w s D B M S _S T A T S gacher_cable_statsi ow nnam e= > actual_ow ner, C abnam e=> actual_nam e, estim ate_percent= > 90, g r a n u l a r i t y ^ ? 1G L O B A L , deg ree= > n u l1 THEN ); END I F ; END I F ; END I F ; E [ E X CE P T I O N WHEN OTHERS THEN I F g e t _ a u d i t _ l e v e l = A U D I T _ E R R R _ D E T A LS OR g e t ^ a u d i t _ i e v e = AUC.UIDIT_COMPLETE THEN W B P R T I.error( g ec_ ru n tim e_ au d ic_ id , o, "TH f E T _ B I _ I d " , 0, 1MT H I E T _ B I " , "TH IET B I _ id '\ p _ sel= > b atch _ selected , p _ in s= > b atch _ in serted , p_upd=>WULL, p_del=?N U LL, p err= > batch_errors, p _ d i s = >WULL, p_m er = >batch_m ei-ged ) : END I P ; COMMI T ; RETURN T RUE ; ENENND " T H I E T B I B a t “ ; M O T SO C U M TU T IE N (J ANII VA V I E T FA I 3m Dir lieu da duoe chuAn hoa mire Nf- CFCl.PU Bo xir ly trung tarn DLDDDL Ngon ngirdinh nghTa CSDL D\D )WH rv.r\'Y.* Kho dir lieu Kho dir lieu chuyen de-cuc bo DaDOaia mining Khai pha du lieu EREER Thuc the-quan he EREERD Do ihi thuc the-quan he E7ET1T Qua trinh chi.it loe, bien doi, di chuyen du lieu EnEEnterprise Datawarehouse Kho dir lieu xi nghiep IDICD Dinh danh sn pham IS ISS Phong he thd'ng thong tin MI1WIPP Bo xir ly song song khoi Ion MuWieta Dala Sieu dir lieu N 1W IIM A Bo nha truy nhap khong deu 0I03LA P He thong phan tich true tuyen 0l0)].;n> He thong xir ly giao dich true tuyen SASaA Vung chu de S1VSNMP Da xir ly doi xirng StuSrinapshot Dir li^u diroc ghi nhan a mot thoi diem SnSrinowsllake model Mo hinh bong tuyet StaStitar model Mo hinh rcrccp/iP Bo giao thuc giao van/Internet L y 'U U / - 'U lU i V I C U i TÁI LIỆll THAM KHẢO l l j l I !■ N g u yề n Bá T n s , C học k ỹ ih u ậ i, i [212.2 I- sớ dừ liệu lý ilmvci ihực hành N hà XIIĨÚ bán khoa nội - 0 C h n g : 3, Đ o n V n B a n , Phương, pháp iluết kè kh thác kh o d ữ liệ u , B o cáo đé tài T T / - , V iệ n C ò n g nghệ ih ống tin 1997 1313 3.1 Đ ể tài D ata W a re h o u se , V iệ n C n g nghệ thịng tin 1997, Phần: í, I I, lí ĩ, í V H-M;] N g u yễ n T h a n h T h ủ y , K h a i phú liệu k ỹ tlniặt ứníỉ d un g , 0 , Chương: 2, (515511 R a p h K im b a ll, D e a lin g w ith d irty data, D B M S O n lin e M a g a zin e Sep - 1996 L6]66}| M ic ro s o ft C o rp o tio n S Q L S e rv e r D a tu W a re h o u sin g F m e W o rk , 1998 ]7 ]| O c le C o rp o tio n , In tro d u ctio n to D a ia W a re h o n sin g E d itio n 1.3, 1997 [818811 O c le C o rp o l io n , D atu W u reh o u stn g Database d esign E d itio n i.o , 2001 I 9199ỊÍ IB M C o rp o tio n , D ata M ode lin e T e c h n iq u e s fo r D a l a W a re h o u sin g 1998 Ị KI 1(01 T o b y J T e o r e y D atab ase M o d e lin g & D e sig n , 2001 107