بررسی Data Warehouse

بررسی انباره داده بخش بیست و هشتم

 توجه داشته باشيد در اين بخش علاوه بر ايجاد جداول پايه قصد داريم اين جداول را نيز با اطلاعات لازم پر کنيم .لذا از روش SQL*LOADER که يک مکانيزم برای بارگذاری اطلاعات است استفاده می نماييم.بدين منظور فايلی با پسوند ctl. به صورت زير برای هر جدول پايه ايجاد می نماييم. نمونه زير برای جدول TBL_CATALOG و با عنوان TBL_CATALOG.CTL می باشد.

انباره داده
 
برای اجرای اين فايل بايد به صورت زير عمل کرد:
فايل ctl را درمسير اصلی ويندوز قرار دهيد.
به  Command Prompt  مربوط به ويندوز متصل شويد.
نمونه کد زير را برای اجرای فايل ctl  تايپ و اجرا کنيد.
انباره داده

و به همين ترتيب همين فايل ر برای دو جدول پايه ديگر ايجاد می نماييم.

انباره داده


انباره داده

انباره داده

گام پنجم: پياده سازی مدل طراحی شده در بانکهای DB1 ،DB2 ،DB3 به عنوان سايت Materialized View
از طريق شمای RepAdmin1 به بانک DB1 متصل شده و جداول Fact  طراحی شده را در اين بانک ايجاد کنيد. همين روش را برای بانکهای DB2 و DB3 با اتصال به شمای ايجاد شده ايجاد کنيد. توجه داشته باشيد در هر جدول Fact يک فيلد به عنوانDB_ID اضافه شده است. اين فيلد بسته به اينکه در کدام بانک قرار دارد، به صورت 1 برای جداول موجود در DB1 ،2 برای جداول موجود در DB2 و 3 برای جداول موجود در DB3 مقداردهی می شوند.
به منظور سرعت بخشيدن و وضوح کامل کليه script های لازم جهت ايجاد جداول Fact  در هر سايت به طور درزير ليست شده است.
انباره داده
 
---
--- 
---

SQL>CONNECT REPADMIN1/REPADMIN1@DB1

SQL>CREATE TABLE TBL_ADDSUB
 (PK_ADDSUB_ID NUMBER(10) NOT NULL
 ,FK_PERSON_ID NUMBER(10) NOT NULL
 ,ADDSUB_DATE DATE NOT NULL
 ,INSURANCE NUMBER(10) NOT NULL
 ,TAX NUMBER(5) NOT NULL
 ,MISSION NUMBER(5) NOT NULL
 ,OVERTIME NUMBER(5) NOT NULL
 ,DB_ID NUMBER(1) DEFAULT 1 NOT NULL )
/

SQL>CREATE TABLE TBL_PAYMENT_SALARY
 (PK_PAYMENT_ID NUMBER(10) NOT NULL
 ,FK_PERSON_ID NUMBER(10) NOT NULL
 ,PAYMENT_YEAR NUMBER(4) NOT NULL
 ,PAYMENT_AMOUNT NUMBER(10) NOT NULL
 ,DB_ID NUMBER(1) DEFAULT 1 NOT NULL )


SQL>CONNECT REPADMIN2/REPADMIN2@DB2

SQL>CREATE TABLE TBL_ADDSUB
 (PK_ADDSUB_ID NUMBER(10) NOT NULL
 ,FK_PERSON_ID NUMBER(10) NOT NULL
 ,ADDSUB_DATE DATE NOT NULL
 ,INSURANCE NUMBER(10) NOT NULL
 ,TAX NUMBER(5) NOT NULL
 ,MISSION NUMBER(5) NOT NULL
 ,OVERTIME NUMBER(5) NOT NULL
 ,DB_ID NUMBER(1) DEFAULT 2 NOT NULL )
/

SQL>CREATE TABLE TBL_PAYMENT_SALARY
 (PK_PAYMENT_ID NUMBER(10) NOT NULL
 ,FK_PERSON_ID NUMBER(10) NOT NULL
 ,PAYMENT_YEAR NUMBER(4) NOT NULL
 ,PAYMENT_AMOUNT NUMBER(10) NOT NULL
 ,DB_ID NUMBER(1) DEFAULT 2 NOT NULL )
/

SQL>CREATE TABLE TBL_PERSON
 (PK_PERSON_ID NUMBER(10) NOT NULL
--- 
---

SQL>CONNECT REPADMIN3/REPADMIN3@DB3

SQL>CREATE TABLE TBL_ADDSUB
 (PK_ADDSUB_ID NUMBER(10) NOT NULL
 ,FK_PERSON_ID NUMBER(10) NOT NULL
 ,ADDSUB_DATE DATE NOT NULL
 ,INSURANCE NUMBER(10) NOT NULL
 ,TAX NUMBER(5) NOT NULL
 ,MISSION NUMBER(5) NOT NULL
 ,OVERTIME NUMBER(5) NOT NULL
 ,DB_ID NUMBER(1) DEFAULT 3 NOT NULL )
/

SQL>CREATE TABLE TBL_PAYMENT_SALARY
 (PK_PAYMENT_ID NUMBER(10) NOT NULL
 ,FK_PERSON_ID NUMBER(10) NOT NULL
 ,PAYMENT_YEAR NUMBER(4) NOT NULL
 ,PAYMENT_AMOUNT NUMBER(10) NOT NULL
 ,DB_ID NUMBER(1) DEFAULT 3 NOT NULL )
/

SQL>CREATE TABLE TBL_PERSON
 (PK_PERSON_ID NUMBER(10) NOT NULL
BEGIN
FOR I IN 1..100 LOOP 
        INSERT INTO TBL_PERSON
(PK_PERSON_ID
,PERSON_CODE 
,FIRST_NAME 
,LAST_NAME 
,FATHER_NAME 
,NATIONAL_NO 
,BIRTH_DATE 
,BIRTH_PLACE 
,TEL 
,ADDRESS 
,BASE_SAL 
,FK_MARRIED_ID 
,FK_SEX_ID 
,FK_POSITION_ID 
,FK_WORK_UNIT_ID 
 
 

 

0 نظر

نظر محترم شما در مورد مقاله های وب سایت برنامه نویسی و پایگاه داده

نظرات محترم شما در خدمات رسانی بهتر ما را یاری می نمایند. لطفا اگر مایل بودید یک نظر ما را مهمان فرمائید. آدرس ایمیل و وب سایت شما نمایش داده نخواهد شد.

حرف 500 حداکثر