Saturday, January 19, 2019

DBMS Query Translation - Kalkulus Relational Tuple

Assalamu'alaikum

Selamat siang, berjumpa lagi dengan pembahasan DBMS query translation. Setelah sebelumnya kita membahas tentang aljabar relational, pada kesempatan kali ini saya ingin membahas tentang kalkulus relational tuple. Karena masih sama sama bahasa query yang dipelajari namun hanya kategorinya saja yang berbeda dari aljabar relational. 

Kalkulus Relational

Seperti yang kita tau bahwa bahasa query di kategorikan sebagai bahasa prosedural dan bahasa non-prosedural. Bahasa query prosedural adalah dimana user memberi tau sistem bagaimana memanipulasi data untuk mengeluarkan hasil yang diinginkan.  Contoh dari bahasa prosedural adalah aljabar relational. 



Sedangkan bahasa query non-prosedural adalah dimana user mendeskripsikan informasi yang di inginkan tanpa memberitau sistem bagaimana memanipulasi data untuk menghasilkan informasi yang di inginkan. Contoh dari bahasa non-prosedural adalah kalkulus relational. Kalkulus relational dibagi menjadi 2 yaitu kalkulus relational tuple dan kalkulus relational domain.

Kalkulus Relational Tuple 

Kalkulus relational tuple adalah metode bahasa query yang mendeskripsikan setiap variabel yang ingin dicari / dihasilkan dalam bentuk tuple tuple (attribute) pada setiap table. Query pada kalkulus relational tuple di eskpresikan dengan :

{ T | P(t) }

Dimana t merupakan nilai yang ingin di cari, P merupakan representasi tabel / entitas yang berkaitan, dan (t) merupakan query yang ingin di eksekusi untuk di hasilkan. Sehingga kurang lebih akan seperti ini :

{ T | ∃E∈Entitas (T.Tuple1 = E.Tuple1  ^ E.Tuple1 =’String’)}
 
Untuk kondisi seperti diatas kita tau bahwa, t merupakan nilai yang di cari, E merupakan ekspresi dari sebuah entitas (sehingga diwakilkan dalam bentuk char E), dan isi query yang di eksekusi berisi keterangan-keterangan termasuk persilangan jodoh t yang di cari dengan e sebuah entitas dan sisanya di wakilkan oleh operator and (^) untuk memberikan kondisi yang ingin dicari. 

Contoh

Seperti biasa untuk di pembahasan DBMS query translation kita akan menggunakan contoh tabel artikel aljabar relational sebelumnya


Contoh 1 : Tampilkan NPM mahasiswa yang mendapat nilai A. Maka kurang lebih query kalkulus relational tuple seperti berikut ini. 

{ T | ∃N∈Nilai (T.NPM = N.NPM  ^ N.Nilai =’A’)}


Dimana T adalah nilai yang di cari, N merupakan entitas Nilai, dan query yang di eksekusinya (t) berisikan persilangan jodoh T dan N beserta tuple yang ingin dimunculkan (dalam hal ini tuple NPM saja yang ingin di tampilkan). Sisanya karena kita ingin mencari NPM yang mendapat nilai A saja, maka tuple nilai dari value N di sebutkan variabel apa yang ingin ditampilkan. 


Contoh 2 : Tampilkan NPM, KodeMatkul, dan Nilai dari mahasiswa yang memperoleh nilai A. Maka kurang lebih query kalkulus relational  tuplenya seperti berikut ini.  

{ T | ∃N∈Nilai (T.NPM = N.NPM  ^ T.KodeMatkul = N.KodeMatkul ^ T.Nilai = N.Nilai ^ N.Nilai =’A’)}



Untuk contoh 2 kita tidak hanya memunculkan tuple NPM saja namun juga memunculkan tuple kodematkul dan tuple nilai. Untuk itu, tinggal tambahkan saja persilangan jodohnya lengkap dengan tuple yang ingin di munculkan yang di pisahkan oleh operator and (^).

Contoh 3 : Tampilkan NPM, NamaMatkul yang memiliki jumlah SKS 3 yang di ambil mahasiswa. Maka kurang lebih querynya akan seperti berikut ini.

{ T | ∃K∈Matakuliah ∃N∈Nilai (K.KodeMatkul = N.KodeMatkul  ^ T.NPM = N.NPM  ^ T.NamaMatkul = K.NamaMatkul ^ K.SKS =3)}

Untuk contoh 3, karena sudah melibatkan lebih dari satu tabel / entitas. Maka sesuai contoh dimana kita ingin memunculkan NPM dan NamaMatkul value yang harus di tambah dalam hal ini value K untuk entitas matakuliah dan value N untuk entitas nilai. Dan untuk eksekusi query nya pastikan melibatkan hubungan antar 2 entitas tersebut yaitu kodematkul.

Contoh 4 : Tampilkan NPM, Nama, KodeMatkul, NamaMatkul yang memperoleh nilai A. Maka kurang lebih query kalkulus relational tuplenya akan seperti berikut ini.

{ T | ∃M∈Mahasiswa ∃K∈Matakuliah ∃N∈Nilai (M.NPM = N.NPM ^ K.KodeMatkul = N.KodeMatkul  ^ T.NPM = M.NPM  ^ T.Nama = M.Nama ^ T.KodeMatkul = K.KodeMatkul ^ T.NamaMatkul = K.NamaMatkul ^ N.Nilai =’A’)}


Karena sudah melibatkan nama mahasiswa, maka kali ini kita menggunakan 3 entitas langsung dimana value M untuk entitas Mahasiswa, value K untuk entitas Matakuliah dan value N untuk entitas Nilai. Dan seperti contoh 3, ketiga entitas ini harus di jodohkan agar tidak terjadi data ganda di hasil pencarian. Cara menjodohkannya dengan menggunakan attribute yang merupakan foreign key - primary key. 

Mungkin hanya sampai disini pembahasan mengenai kalkulus relational tuple, semoga bermanfaat untuk para pembaca sekalian. Sekian dari saya saran dan pertanyaan bisa 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