Sunday, February 3, 2019

DBMS Query Translation Practice (Kasus Relasi Tabel Kepegawaian)

Assalamu'alaikum

Selamat siang, jumpa lagi bersama saya di pembahasan mengenai query translation. Setelah kita sudah membahas beberapa jenis dari query translation seperti aljabar dan kalkulus relational. Di kesempatan kali ini saya ingin membahas mengenai beberapa contoh case yang bisa kita gunakan sebagai latihan mengenai query translation aljabar maupun kalkulus. Kita akan mulai dengan beberapa tabel sebagai berikut.


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.
  1. Tampilkan semua pegawai yang ada
  2. Tampilkan KodePegawai, NamaPegawai, Jabatan, Divisi yang jabatannya manager dan direktur
  3. Tampilkan KodePegawai, NamaPegawai, Jabatan, Divisi
  4. Tampilkan KodePegawai, NamaPegawai, Jabatan, NamaDivisi dari pegawai bagian penjualan
  5. Tampilkan pegawai yang merupakan manager keuangan
  6. Tampilkan kodePegawai, Nama Pegawai, NamaDivisi, Jabatan dan gaji pokok dari seluruh pegawai divisi System.

Aljabar Relational (AR)

  1. πNamaPegawai (PEGAWAI) 
  2. σ PEGAWAI.KodeJabatan = JABATAN.KodeJabatan π PEGAWAI.KodeDivisi = DIVISI.KodeDivisi π (Jabatan=’Manager’ V Jabatan=’Direktur’ (π KodePegawai, NamaPegawai (PEGAWAI)) x (π Jabatan (JABATAN)) x (π NamaDivisi (DIVISI)) 
  3. σ PEGAWAI.KodeJabatan = JABATAN.KodeJabatan π PEGAWAI.KodeDivisi = DIVISI.KodeDivisi (π KodePegawai, NamaPegawai (PEGAWAI)) x (π Jabatan (JABATAN)) x (π NamaDivisi (DIVISI))   
  4. σ (PEGAWAI.KodeDivisi = DIVISI.KodeDivisi π NamaDivisi=’Penjualan’ (π KodePegawai, NamaPegawai (PEGAWAI)) x (π NamaDivisi (DIVISI)) 
  5. σ (PEGAWAI.KodeJabatan = JABATAN.KodeJabatan) π (PEGAWAI.KodeDivisi = DIVISI.KodeDivisi) π (Jabatan=’Manager’) π (NamaDivisi=’Keuangan’ (π KodePegawai, NamaPegawai (PEGAWAI)) x (π Jabatan (JABATAN)) x (π NamaDivisi (DIVISI))   
  6. σ (PEGAWAI.KodeJabatan = JABATAN.KodeJabatan) π (PEGAWAI.KodeDivisi = DIVISI.KodeDivisi) π (NamaDivisi=’System’ (π KodePegawai, NamaPegawai (PEGAWAI)) x (π NamaDivisi (DIVISI))  x (π Jabatan, GajiPokok (JABATAN))  

Kalkulus Relational Tuple (TRC)

  1. {T | ∃ P ∈ PEGAWAI (T.NamaPegawai = P.NamaPegawai)}
  2. {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’))} 
  3. {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)}
  4. {T | ∃ P ∈ PEGAWAI  ∃ D ∈ DIVISI (P.KodeDivisi = D.KodeDivisi ⋀ T.KodePegawai = P.KodePegawai ⋀ T.NamaPegawai = P.NamaPegawai ⋀ T.Divisi = D.Divisi ⋀ D.Divisi = ‘Penjualan’)}
  5. {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’)}
  6. {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)

  1. {<NP> | ∃ <KP,NP,TL,A,KJ,KD> ∈ PEGAWAI}
  2. {<KP,NP,J,D> | ∃ (<KP,NP,TL,A,KJ,KD> ∈ PEGAWAI ⋀ (<KJ,J,GP> ∈ JABATAN ⋀ (J = “Manager” V J = “Direktur”)) ⋀ <KD,D> ∈ DIVISI)}
  3. {< KP,NP,J,D> | ∃ (<KP,NP,TL,A,KJ,KD> ∈ PEGAWAI ⋀ <KJ,J,GP> ∈ JABATAN ⋀ <KD,D> ∈ DIVISI)}
  4. {< KP,NP,D> | ∃ (<KP,NP,TL,A,KJ,KD> ∈ PEGAWAI ⋀ (<KD,D> ∈ DIVISI ⋀ D = “Penjualan”))}
  5. {<KP,NP,TL,A,KJ,KD> | ∃ (<KP,NP,TL,A,KJ,KD> ∈ PEGAWAI ⋀ (<KJ,J,GP> ∈ JABATAN ⋀ J = “Manager”) ⋀ (<KD,D> ∈ DIVISI ⋀ D = “Keuangan”))}
  6. {< KP,NP,J,GP,D> | ∃ (<KP,NP,TL,A,KJ,KD> ∈ PEGAWAI ⋀ <KJ,J,GP> ∈ JABATAN ⋀ (<KD,D> ∈ DIVISI ⋀ D = “System”))}
Demikian penjelasan kali ini terkait kasus pembahasan mengenai query translation aljabar dan kalkulus relational. Semoga artikel ini menginformasikan perbandingan ketiganya. Sekian dari saya, barangkali ada yang perlu ditanyakan silahkan letakkan di kolom komentar. Terima kasih sudah berkunjung, sampai berjumpa di pembahasan berikutnya. 

0 komentar:

Post a Comment

Kenal Saya

Follow My Twitter

Profil



Nama saya Alfa Farhan Syarief, web ini ada berdasarkan nama saya sendiri. Saya sendiri masih duduk tingkat SMK. Lebih lengkapnya saya masih bersekolah di SMKN 1

More »

Blog Archive

Recent Comment