UNIVERSITAS BRAWIJAYA
1. Langkah 1
1.1 Query
1.2 Screenshot
1.3 Penjelasan
Proses pembuatan database SAMPLEDB.
2. Langkah 2
2.1 Query
2.2 Screenshot
2.3 Penjelasan
Proses menghubungkan database SAMPLEDB ke datagrip.
3. Langkah 3
3.1 Query
CREATE VIEW
SUMMARY.REKAPITULASI_EMPLOYEE_DEPARTMENTAS
SELECT D.DEPTNO, D.DEPTNAME, COUNT(E.EMPNO) TOTAL
FROM DB2INST1.EMPLOYEE E
RIGHT JOIN DB2INST1.DEPARTMENT D
ON E.WORKDEPT = D.DEPTNOGROUP BY
D.DEPTNO, D.DEPTNAME;
3.2 Screenshot
3.3 Penjelasan
Membuat VIEW yang bertujuan untuk menyajikan data DEPTNO,DEPTNAME,
TOTAL_EMPLOYEE.
4. Langkah 4
4.1 Query
SELECT * FROM SUMMARY.REKAPITULASI_EMPLOYEE_DEPARTMENT;
4.2 Screenshot
4.3 Penjelasan
Mengakses tabel VIEW.
5. Langkah 5
5.1 Query
CREATE TABLE
DB2INST1.MQT_REKAPITULASI_EMPLOYEE_DEPARTMENTAS
(SELECT D.DEPTNO,D.DEPTNAME,COUNT (E.EMPNO) TOTALFROM
EMPLOYEE E
RIGHT JOIN DEPARTMENT D
ON E.WORKDEPT = D.DEPTNO
GROUP BY D.DEPTNO,D.DEPTNAME)
DATA INITIALLY DEFERRED
REFRESH DEFERRED
MAINTAINED BY
SYSTEMIN REG_HOT1
INDEX IN
IDX_HOT1LONG
IN LOB_HOT1;
5.2 Screenshot
5.3 Penjelasan
Membuat MQT.
6. Langkah 6
6.1 Query
REFRESH TABLE
DB2INST1.MQT_REKAPITULASI_EMPLOYEE_DEPARTMENT;SELECT *
FROM DB2INST1.MQT_REKAPITULASI_EMPLOYEE_DEPARTMENT;
6.2 Screenshot
6.3 Penjelasan
Setelah membuat MQT, harus di refresh dulu agar bisa diakses. Setelah itu akses tabel.
7. Langkah 7
7.1 Query
SELECT 'VIEW' SUMBER, DEPTNO, DEPTNAME,
TOTAL FROM
SUMMARY.REKAPITULASI_EMPLOYEE_DEPARTMENT
UNION ALL
SELECT 'MQT' ,DEPTNO, DEPTNAME, TOTAL
FROM
DB2INST1.MQT_REKAPITULASI_EMPLOYEE_DEPARTMENT
ORDER BY DEPTNO;
7.2 Screenshot
7.3 Penjelasan
Mengakses tabel VIEW dan MQT untuk membuktikan bahwa tidak ada data yang berbeda
karenaMQT belum di refresh.
8. Langkah 8
8.1 Query
UPDATE
DB2INST1.EMPLOYEESET
WORKDEPT = 'A00'
WHERE EMPNO = '000020'; --WORKDEPT ASAL = B01
8.2 Screenshot
8.3 Penjelasan
Update data pada tabel db2inst1.employee.
9. Langkah 9
9.1 Query
REFRESH TABLE DB2INST1.MQT_REKAPITULASI_EMPLOYEE_DEPARTMENT;
9.2 Screenshot
9.3 Penjelasan
Karena tabel MQT tidak bisa langsung terupdate, maka lakukan refresh tabel.
10. Langkah 10
10.1 Query
--ALTER TABLE YANG AKAN DIPASANG HISTORY DATANYA DENGAN
MENAMBAHKAN 3 KOLOM
ALTER TABLE DB2INST1.EMPLOYEE
ADD COLUMN SYSTEM_START_TIME1 TIMESTAMP (12)NOT
NULL GENERATED ALWAYS AS ROW BEGIN
ADD COLUMN SYSTEM_END_TIME1 TIMESTAMP (12)NOT
NULL GENERATED ALWAYS AS ROW END
ADD COLUMN TRANS_ID1 TIMESTAMP (12) GENERATED
ALWAYS AS TRANSACTION START ID;
10.2 Screenshot
10.3 Penjelasan
Menambahkan kolom SYSTEM_START_TIME1 , SYSTEM_END_TIME1 , dan
TRANS_ID1 sebelum membuat history table. Setelah itu buat table history table.
11. Langkah 11
11.1 Query
INSERT INTO EMPLOYEE(
EMPNO,FIRSTNME,MIDINIT,LASTNAME,WORKDEPT,PHONENO,
HIREDATE,JOB,EDLEVEL,
SEX,BIRTHDATE,BONUS,COMM)
VALUES(
'000099','YUSHINTA','Y',
'PRASSANTY','A00','3978',
'1995-01-01','PRES',18,
'M','2000-06-20',0,4220.00);
SELECT * FROM DB2INST1_HIST.EMPLOYEE_HIST1;
UPDATE
DB2INST1.EMPLOYEESET
LASTNAME = 'E'
WHERE EMPNO = '000099';
DELETE
FROM
DB2INST1.EMPLOYEE
WHERE EMPNO =
'000099';
SELECT * FROM DB2INST1_HIST.EMPLOYEE_HIST1;
11.2 Screenshot
11.3 Penjelasan
cara kerja history table..
memasukkan data tabel baru ke db2inst1.employee dengan menggani FIRSTNME, MIDINIT,
LASTNAME dengan nama depan, inisial nama depan, nama belakang.
setelah itu akses history tabel.
lalukan proses update pada lastname.
akses history table.
lalu lakukan penghapusan (delete) pada data baru.
akses history table lagi. dari situ terlihat bahwa
proses history table akan menyimpan nilai
sebelum proses update
12. Langkah 12
12.1 Query
SELECT * FROM DB2INST1.EMPLOYEE
FOR SYSTEM_TIME AS OF '2021-03-26 11:55:14';
SELECT * FROM DB2INST1.EMPLOYEE
FOR SYSTEM_TIME AS OF CURRENT TIMESTAMP - 1 SECOND;
SELECT * FROM DB2INST1.EMPLOYEE
FOR SYSTEM_TIME AS OF CURRENT TIMESTAMP - 20 MINUTE;
SELECT * FROM DB2INST1.EMPLOYEE
FOR SYSTEM_TIME AS OF CURRENT TIMESTAMP - 1 HOUR;
SELECT * FROM DB2INST1.EMPLOYEE
FOR SYSTEM_TIME FROM CURRENT TIMESTAMP - 1 HOUR TO CURRENT
TIMESTAMP;
12.2 Screenshot
12.3 Penjelasan
Time travelling query menampilkan kondisi tabel sesuai dengan waktu yang kita inginkan
KESIMPULAN
1. View merupakan table turunan yang dibagun dari table atau view-view yang lain.
2. Materialized query tables (MQTs) merupakan sebuah tabel yang dibuat dari DML
hampir sama dengan VIEW, salah satu perbedaannya adalah MQTs dapat memiliki
data sendiri sehingga dapat diasosiasikan dengan tablespace yang ada seperti
halnya regular table. MQTs dibuat dengan tujuan utama untuk meningkatkan
kinerja query. Setelah membuat MQT, harus di refresh dulu agar bisa diakses.
Setelah itu akses tabel.
3. cara kerja history table :
1. memasukkan data tabel baru ke db2inst1.employee dengan menggani
FIRSTNME, MIDINIT, LASTNAME dengan nama depan, inisial nama depan,
nama belakang.
2. setelah itu akses history tabel.
3. lalukan proses update pada lastname.
4. akses history table.
5. lalu lakukan penghapusan (delete) pada data baru.
6. akses history table lagi.
dari situ terlihat bahwa proses history table akan menyimpan nilai sebelum
prosesupdate
4. Time travelling query menampilkan kondisi tabel sesuai dengan waktu yang
kitainginkan