Preparation.plsql
Z Studia Informatyczne
Przejdź do nawigacjiPrzejdź do wyszukiwania
-- -- ustawienia wyswietlania -- set pages 10000 set linesize 150 column val format 9999999999 column bin format a20 -- -- utworzenie tabel z pracownikami -- DROP TABLE PRACOWNICY cascade constraints; DROP TABLE ZESPOLY cascade constraints; DROP TABLE ETATY cascade constraints; DROP TABLE PRACOWNICY cascade constraints; DROP TABLE ZESPOLY cascade constraints; DROP TABLE ETATY cascade constraints; CREATE TABLE ZESPOLY (ID_ZESP NUMBER(2) CONSTRAINT PK_ZESP PRIMARY KEY, NAZWA VARCHAR2(20), ADRES VARCHAR2(20) ); CREATE TABLE ETATY ( NAZWA VARCHAR2(10) CONSTRAINT PK_ETAT PRIMARY KEY, PLACA_MIN NUMBER(6,2), PLACA_MAX NUMBER(6,2)); CREATE TABLE PRACOWNICY (ID_PRAC NUMBER(4) CONSTRAINT PK_PRAC PRIMARY KEY, NAZWISKO VARCHAR2(15), ETAT VARCHAR2(10) CONSTRAINT FK_ETAT REFERENCES ETATY(NAZWA), ID_SZEFA NUMBER(4) CONSTRAINT FK_ID_SZEFA REFERENCES PRACOWNICY(ID_PRAC), ZATRUDNIONY DATE, PLACA_POD NUMBER(6,2) CONSTRAINT MIN_PLACA_POD CHECK(PLACA_POD>100), PLACA_DOD NUMBER(6,2), ID_ZESP NUMBER(2) CONSTRAINT FK_ID_ZESP REFERENCES ZESPOLY(ID_ZESP)); INSERT INTO ZESPOLY VALUES (10,'ADMINISTRACJA', 'PIOTROWO 3A'); INSERT INTO ZESPOLY VALUES (20,'SYSTEMY ROZPROSZONE','PIOTROWO 3A'); INSERT INTO ZESPOLY VALUES (30,'SYSTEMY EKSPERCKIE', 'STRZELECKA 14'); INSERT INTO ZESPOLY VALUES (40,'ALGORYTMY', 'WLODKOWICA 16'); INSERT INTO ZESPOLY VALUES (50,'BADANIA OPERACYJNE', 'MIELZYNSKIEGO 30'); INSERT INTO ETATY VALUES ('PROFESOR' ,800.00,1500.00); INSERT INTO ETATY VALUES ('ADIUNKT' ,510.00, 750.00); INSERT INTO ETATY VALUES ('ASYSTENT' ,300.00, 500.00); INSERT INTO ETATY VALUES ('STAZYSTA' ,150.00, 250.00); INSERT INTO ETATY VALUES ('SEKRETARKA',270.00, 450.00); INSERT INTO ETATY VALUES ('DYREKTOR' ,1280.00,2100.00); INSERT INTO PRACOWNICY VALUES (100,'WEGLARZ' ,'DYREKTOR' ,NULL,to_date('01-01-68','DD-MM-RR'),1730.00,420.50,10); INSERT INTO PRACOWNICY VALUES (110,'BLAZEWICZ' ,'PROFESOR' ,100 ,to_date('01-05-73','DD-MM-RR'),1350.00,210.00,40); INSERT INTO PRACOWNICY VALUES (120,'SLOWINSKI' ,'PROFESOR' ,100 ,to_date('01-09-77','DD-MM-RR'),1070.00, NULL,30); INSERT INTO PRACOWNICY VALUES (130,'BRZEZINSKI' ,'PROFESOR' ,100 ,to_date('01-07-68','DD-MM-RR'), 960.00, NULL,20); INSERT INTO PRACOWNICY VALUES (140,'MORZY' ,'PROFESOR' ,130 ,to_date('15-09-75','DD-MM-RR'), 830.00,105.00,20); INSERT INTO PRACOWNICY VALUES (150,'KROLIKOWSKI','ADIUNKT' ,130 ,to_date('01-09-77','DD-MM-RR'), 645.50, NULL,20); INSERT INTO PRACOWNICY VALUES (160,'KOSZLAJDA' ,'ADIUNKT' ,130 ,to_date('01-03-85','DD-MM-RR'), 590.00, NULL,20); INSERT INTO PRACOWNICY VALUES (170,'JEZIERSKI' ,'ASYSTENT' ,130 ,to_date('01-10-92','DD-MM-RR'), 439.70, 80.50,20); INSERT INTO PRACOWNICY VALUES (190,'MATYSIAK' ,'ASYSTENT' ,140 ,to_date('01-09-93','DD-MM-RR'), 371.00, NULL,20); INSERT INTO PRACOWNICY VALUES (180,'MAREK' ,'SEKRETARKA',100 ,to_date('20-02-85','DD-MM-RR'), 410.20, NULL,10); INSERT INTO PRACOWNICY VALUES (200,'ZAKRZEWICZ' ,'STAZYSTA' ,140 ,to_date('15-07-94','DD-MM-RR'), 208.00, NULL,30); INSERT INTO PRACOWNICY VALUES (210,'BIALY' ,'STAZYSTA' ,130 ,to_date('15-10-93','DD-MM-RR'), 250.00,170.60,30); INSERT INTO PRACOWNICY VALUES (220,'KONOPKA' ,'ASYSTENT' ,110 ,to_date('01-10-93','DD-MM-RR'), 480.00, NULL,20); INSERT INTO PRACOWNICY VALUES (230,'HAPKE' ,'ASYSTENT' ,120 ,to_date('01-09-92','DD-MM-RR'), 480.00, 90.00,30); COMMIT; -- -- usuniecie tabel do dyskretyzacji -- BEGIN EXECUTE IMMEDIATE 'DROP TABLE bin_cat'; EXECUTE IMMEDIATE 'DROP TABLE bin_num'; EXECUTE IMMEDIATE 'DROP TABLE norm_lin'; EXECUTE IMMEDIATE 'DROP TABLE clip'; EXCEPTION WHEN OTHERS THEN Null; END; / -- -- utworzenie perspektywy ukrywajacej atrybuty typu DATE -- CREATE OR REPLACE VIEW v_pracownicy AS SELECT id_prac, nazwisko, etat, id_szefa, TO_NUMBER(TO_CHAR(zatrudniony,'YYYY')) AS rok_zatrudnienia, placa_pod, placa_dod, id_zesp FROM pracownicy; / SELECT * FROM v_pracownicy; -- -- utworzenie tabeli do dyskretyzacji atrybutow kategorycznych -- BEGIN DBMS_DATA_MINING_TRANSFORM.CREATE_BIN_CAT( bin_table_name=>'bin_cat', bin_schema_name=>'*****'); END; / -- -- dyskretyzacja atrybutu kategorycznego ETAT -- BEGIN DBMS_DATA_MINING_TRANSFORM.INSERT_BIN_CAT_FREQ( bin_table_name=>'bin_cat', data_table_name=>'v_pracownicy', bin_num=>3, exclude_list=>DBMS_DATA_MINING_TRANSFORM.Column_List('NAZWISKO')); END; / -- -- obejrzenie wyniku dyskretyzacji -- SELECT * FROM bin_cat; -- -- utworzenie tabeli do dyskretyzacji atrybutow numerycznych -- BEGIN DBMS_DATA_MINING_TRANSFORM.CREATE_BIN_NUM( bin_table_name=>'bin_num', bin_schema_name=>'*****'); END; / -- -- dyskretyzacja atrybutu numerycznego ROK_ZATRUDNIENIA -- podzial na 4 przedzialy o rownej szerokosci -- BEGIN DBMS_DATA_MINING_TRANSFORM.INSERT_BIN_NUM_EQWIDTH( bin_table_name=>'bin_num', data_table_name=>'v_pracownicy', bin_num=>4, exclude_list=>DBMS_DATA_MINING_TRANSFORM.Column_List ('ID_PRAC','ID_SZEFA','PLACA_POD','PLACA_DOD','ID_ZESP'), round_num=>4); END; / -- -- dyskretyzacja atrybutu numerycznego PLACA_POD -- podzial na 3 przedzialy o rownej glebokosci -- BEGIN DBMS_DATA_MINING_TRANSFORM.INSERT_BIN_NUM_QTILE( bin_table_name=>'bin_num', data_table_name=>'v_pracownicy', bin_num=>3, exclude_list=>DBMS_DATA_MINING_TRANSFORM.Column_List ('ID_PRAC','ID_SZEFA','ROK_ZATRUDNIENIA','PLACA_DOD','ID_ZESP')); END; / -- -- obejrzenie wyniku dyskretyzacji -- SELECT * FROM bin_num; -- -- utworzenie tabeli do normalizacji -- BEGIN DBMS_DATA_MINING_TRANSFORM.CREATE_NORM_LIN( norm_table_name=>'norm_lin', norm_schema_name=>'*****'); END; / -- -- normalizacja atrybutu numerycznego ID_PRAC -- wykorzystana metoda: MIN-MAX -- BEGIN DBMS_DATA_MINING_TRANSFORM.INSERT_NORM_LIN_MINMAX( norm_table_name=>'norm_lin', data_table_name=>'v_pracownicy', exclude_list=>DBMS_DATA_MINING_TRANSFORM.Column_List ('ID_SZEFA','ROK_ZATRUDNIENIA','PLACA_POD','PLACA_DOD','ID_ZESP')); END; / -- -- normalizacja atrybutu numerycznego ID_SZEFA -- wykorzystana metoda: Z-SCORE -- BEGIN DBMS_DATA_MINING_TRANSFORM.INSERT_NORM_LIN_ZSCORE( norm_table_name=>'norm_lin', data_table_name=>'v_pracownicy', exclude_list=>DBMS_DATA_MINING_TRANSFORM.Column_List ('ID_PRAC','ROK_ZATRUDNIENIA','PLACA_POD','PLACA_DOD','ID_ZESP')); END; / -- -- obejrzenie wyniku normalizacji -- SELECT * FROM norm_lin; -- -- utworzenie tabeli do przycinania -- BEGIN DBMS_DATA_MINING_TRANSFORM.CREATE_CLIP( clip_table_name=>'clip', clip_schema_name=>'*****'); END; / -- -- obciecie 30% wartosci atrybutu numerycznego PLACA_DOD -- wypelnienie obcietych wartosci wartoscia brzegowa -- BEGIN DBMS_DATA_MINING_TRANSFORM.INSERT_CLIP_WINSOR_TAIL( clip_table_name=>'clip', data_table_name=>'v_pracownicy', tail_frac=>0.3, exclude_list=>DBMS_DATA_MINING_TRANSFORM.Column_List ('ID_PRAC','ID_SZEFA','ROK_ZATRUDNIENIA','PLACA_POD','ID_ZESP')); END; / -- -- obciecie 30% wartosci atrybutu numerycznego ID_ZESP -- usuniecie obcietych wartosci -- BEGIN DBMS_DATA_MINING_TRANSFORM.INSERT_CLIP_TRIM_TAIL( clip_table_name=>'clip', data_table_name=>'v_pracownicy', tail_frac=>0.3, exclude_list=>DBMS_DATA_MINING_TRANSFORM.Column_List ('ID_PRAC','ROK_ZATRUDNIENIA','PLACA_POD','PLACA_DOD','ID_SZEFA')); END; / -- -- obejrzenie wyniku przycinania -- SELECT * FROM clip; -- -- utworzenie perspektyw przedstawiajacych dane wejsciowe po dyskretyzacji, -- normalizacji i obcinaniu -- BEGIN DBMS_DATA_MINING_TRANSFORM.XFORM_BIN_CAT( bin_table_name=>'bin_cat', data_table_name=>'v_pracownicy', xform_view_name=>'v_bin_cat_pracownicy'); END; / SELECT * FROM v_bin_cat_pracownicy; BEGIN DBMS_DATA_MINING_TRANSFORM.XFORM_BIN_NUM( bin_table_name=>'bin_num', data_table_name=>'v_bin_cat_pracownicy', xform_view_name=>'v_bin_num_pracownicy'); END; / SELECT * FROM v_bin_num_pracownicy; BEGIN DBMS_DATA_MINING_TRANSFORM.XFORM_NORM_LIN( norm_table_name=>'norm_lin', data_table_name=>'v_bin_num_pracownicy', xform_view_name=>'v_norm_lin_pracownicy'); END; / SELECT * FROM v_norm_lin_pracownicy; BEGIN DBMS_DATA_MINING_TRANSFORM.XFORM_CLIP( clip_table_name=>'clip', data_table_name=>'v_norm_lin_pracownicy', xform_view_name=>'v_clip_pracownicy'); END; / SELECT * FROM v_clip_pracownicy;