DBMS Query Translation Practice (Kasus Relasi Tabel Kepegawaian)
Assalamu'alaikum
Cek juga artikel aljabar relational, kalkulus relational tuple dan kalkulus relational domain.
Telihat dari ketiga tabel di atas terhubung dengan primary dan foreign key yang melibatkan relasi JABATAN dan relasi DIVISI masuk kedalam relasi utama yaitu relasi PEGAWAI. Untuk menampilkan beberapa kondisi yang di inginkan dengan menggunakan ketiga query translation yang sudah dibahas sebelumnya, kita akan mencoba dari beberapa contoh berikut.
- Tampilkan semua pegawai yang ada
- Tampilkan KodePegawai, NamaPegawai, Jabatan, Divisi yang jabatannya manager dan direktur
- Tampilkan KodePegawai, NamaPegawai, Jabatan, Divisi
- Tampilkan KodePegawai, NamaPegawai, Jabatan, NamaDivisi dari pegawai bagian penjualan
- Tampilkan pegawai yang merupakan manager keuangan
- Tampilkan kodePegawai, Nama Pegawai, NamaDivisi, Jabatan dan gaji pokok dari seluruh pegawai divisi System.
Aljabar Relational (AR)
- πNamaPegawai (PEGAWAI)
- σ PEGAWAI.KodeJabatan = JABATAN.KodeJabatan π PEGAWAI.KodeDivisi = DIVISI.KodeDivisi π (Jabatan=’Manager’ V Jabatan=’Direktur’ (π KodePegawai, NamaPegawai (PEGAWAI)) x (π Jabatan (JABATAN)) x (π NamaDivisi (DIVISI))
- σ PEGAWAI.KodeJabatan = JABATAN.KodeJabatan π PEGAWAI.KodeDivisi = DIVISI.KodeDivisi (π KodePegawai, NamaPegawai (PEGAWAI)) x (π Jabatan (JABATAN)) x (π NamaDivisi (DIVISI))
- σ (PEGAWAI.KodeDivisi = DIVISI.KodeDivisi π NamaDivisi=’Penjualan’ (π KodePegawai, NamaPegawai (PEGAWAI)) x (π NamaDivisi (DIVISI))
- σ (PEGAWAI.KodeJabatan = JABATAN.KodeJabatan) π (PEGAWAI.KodeDivisi = DIVISI.KodeDivisi) π (Jabatan=’Manager’) π (NamaDivisi=’Keuangan’ (π KodePegawai, NamaPegawai (PEGAWAI)) x (π Jabatan (JABATAN)) x (π NamaDivisi (DIVISI))
- σ (PEGAWAI.KodeJabatan = JABATAN.KodeJabatan) π (PEGAWAI.KodeDivisi = DIVISI.KodeDivisi) π (NamaDivisi=’System’ (π KodePegawai, NamaPegawai (PEGAWAI)) x (π NamaDivisi (DIVISI)) x (π Jabatan, GajiPokok (JABATAN))
Kalkulus Relational Tuple (TRC)
- {T | ∃ P ∈ PEGAWAI (T.NamaPegawai = P.NamaPegawai)}
- {T | ∃ P ∈ PEGAWAI ∃ J ∈ JABATAN ∃ D ∈ DIVISI (P.KodeJabatan = J.KodeJabatan ⋀ P.KodeDivisi = D.KodeDivisi ⋀ T.KodePegawai = P.KodePegawai ⋀ T.NamaPegawai = P.NamaPegawai ⋀ T.Jabatan = J.Jabatan ⋀ T.Divisi = D.Divisi ⋀ (J.Jabatan = ‘Manager’ V J.Jabatan = ‘Direktur’))}
- {T | ∃ P ∈ PEGAWAI ∃ J ∈ JABATAN ∃ D ∈ DIVISI (P.KodeJabatan = J.KodeJabatan ⋀ P.KodeDivisi = D.KodeDivisi ⋀ T.KodePegawai = P.KodePegawai ⋀ T.NamaPegawai = P.NamaPegawai ⋀ T.Jabatan = J.Jabatan ⋀ T.Divisi = D.Divisi)}
- {T | ∃ P ∈ PEGAWAI ∃ D ∈ DIVISI (P.KodeDivisi = D.KodeDivisi ⋀ T.KodePegawai = P.KodePegawai ⋀ T.NamaPegawai = P.NamaPegawai ⋀ T.Divisi = D.Divisi ⋀ D.Divisi = ‘Penjualan’)}
- {T | ∃ P ∈ PEGAWAI ∃ J ∈ JABATAN ∃ D ∈ DIVISI (P.KodeJabatan = J.KodeJabatan ⋀ P.KodeDivisi = D.KodeDivisi ⋀ T.KodePegawai = P.KodePegawai ⋀ T.NamaPegawai = P.NamaPegawai ⋀ T.TngLahir = P.TngLahir ⋀ T.Alamat = P.Alamat ⋀ T.KodeJabatan = P.KodeJabatan ⋀ T.KodeDivisi = P.KodeDivisi ⋀ J.Jabatan = ‘Manager’ ⋀ D.Divisi = ‘Keuangan’)}
- {T | ∃ P ∈ PEGAWAI ∃ J ∈ JABATAN ∃ D ∈ DIVISI (P.KodeJabatan = J.KodeJabatan ⋀ P.KodeDivisi = D.KodeDivisi ⋀ T.KodePegawai = P.KodePegawai ⋀ T.NamaPegawai = P.NamaPegawai ⋀ T.Jabatan = J.Jabatan ⋀ T.GajiPokok = J.GajiPokok ⋀ T.Divisi = D.Divisi ⋀ D.Divisi = ‘System’)}
Kalkulus Relational Domain (DRC)
- {<NP> | ∃ <KP,NP,TL,A,KJ,KD> ∈ PEGAWAI}
- {<KP,NP,J,D> | ∃ (<KP,NP,TL,A,KJ,KD> ∈ PEGAWAI ⋀ (<KJ,J,GP> ∈ JABATAN ⋀ (J = “Manager” V J = “Direktur”)) ⋀ <KD,D> ∈ DIVISI)}
- {< KP,NP,J,D> | ∃ (<KP,NP,TL,A,KJ,KD> ∈ PEGAWAI ⋀ <KJ,J,GP> ∈ JABATAN ⋀ <KD,D> ∈ DIVISI)}
- {< KP,NP,D> | ∃ (<KP,NP,TL,A,KJ,KD> ∈ PEGAWAI ⋀ (<KD,D> ∈ DIVISI ⋀ D = “Penjualan”))}
- {<KP,NP,TL,A,KJ,KD> | ∃ (<KP,NP,TL,A,KJ,KD> ∈ PEGAWAI ⋀ (<KJ,J,GP> ∈ JABATAN ⋀ J = “Manager”) ⋀ (<KD,D> ∈ DIVISI ⋀ D = “Keuangan”))}
- {< KP,NP,J,GP,D> | ∃ (<KP,NP,TL,A,KJ,KD> ∈ PEGAWAI ⋀ <KJ,J,GP> ∈ JABATAN ⋀ (<KD,D> ∈ DIVISI ⋀ D = “System”))}