ALJABAR DAN KALKULUS RELASIONALL
Bahasa query formal basis data relasional ialah bahasa untuk meminta informasi dari basis data. Salah satunya SQL(structured query language) berbeda dengan bahasa pemrograman konvensional. SQL bersifat deklaratif yaitu query dideklarasikan informasi yang merupakan jawaban yang dikenhendaki bukan cara komputasi. Terdapat dua jenis bahasa query relasional formal,yaitu:
1. Aljabar relasional.
Relational Algebra(aljabar relasional) ialah kumpulan operasi terhadap relasi dimana setiap operasi menggunakan satu atau lebih relasi untuk menghasilkan satu relasi yang baru dan termasuk kategori procedural dan juga menyediakan seperangkat operator untuk memanipulasi data.
Terdapat 6 operasi dasar dalam aljabar relasional :
=>Selection ()
=>Projection
=>Cartesian-product(x,juga disebut sebagai cross product)
=>Union(ᵕ)
=>Set-diferense
=>Rename(ᵖ)
Operasi-operasi turunan dari operasi-operasi dasar:
=>Set intersection(ᵔ)
=>Theta join
=>Natural Join
=>Outer Join
=>Division
^^> Operasi Aljabar Relasional
1.Selection ()
Operasi untuk menyelesaikan tupel-tupel yang memenuhi suatu predikat,operator perbandingan(<,>,<=,>=,=,#) pada predikat. Predikat AND dan OR
Contoh operasi Select :
1. Query : tampilakan daftar dosen yang tempat lahirnya di ‘Bekasi’
2. Aljabar relasional :
()tempat_lhr=’Bekasi’
3.Hasilnya : semua nama dosen yang lahirnya dibekasi
^^> Operasi Projection
Operasi untuk memperoleh kolom-kolom tertentu. Operasi project adalah operasi unary yang mengirim relasi argument dengan kolom-kolom tertentu.
Sintact : colum1,….,column(table)
^^> Operasi Cartesian-product(x)
Operasi untuk menghasilkan table haisl perkalian kartesian. Sintact yang digunakan dalam operasi proyeksi :
R X S={(x,y)|x Ԑ R dan y Ԑ S}
^^> Operasi union (ʋ)
Operasi untuk menghasilkan gabungan table dengan syarat kedua table memiliki atribut yang sama,yaitu domain atribut ke-i masing-masing table harus sama. Sintack yang digunakan dalam operasi union ini adalah sebagai berikut : RʋS={x|x Ԑ R atau X Ԑ S }
^^> Set-difference(---)
Operasi untuk mendapatkan table pada suatu relasi,tapi tidak ada pada relasi yang lainnya,sintaks yang digunakan adalah R-S={x|x ԐR dan X € S} Operasi ini dapat dilaksanakan apabila R dan S mempunyai atribut yang tidak sama yang akan ditampilkan,artinya R yang tidak ada di S akan ditampilkan sedangkan atribut yang sama tidak ditampilkan.
^^> Rename (ᵖ)
Operasi untuk menyalin table lama kedalam table baru. Sintaksnya:
ᵖ[nama_table](table)
^^> Set-Insertion(ᴒ)
Termasuk kedalam operator tambahan,karena operator ini dapat diderivikasi dari operator dasar : A ᴒ B=A-(A-B) atau A ᴒ B=B-(B-A)
2. Kalkulus relasional
Pemakai mendeskripsikan informasi yang diketahui tanpa memberikan prosedur spesifik untuk memperoleh informasi. Kalkulus relasional dibagi menjadi 2 yaitu:
A. Kalkulus ralasional tupel
Kalkulus relasional tupel mendeskripsikan informasi tanpa perl memberikan prosedur/cara spesifik untuk memperoleh informasi tersebut. Query pada kalkulus relasional tupel dapat dideskripsikan dengan:
{t|P(t)}
Yaitu himpunan semua tupel t sehingga predikat P bernilai True untuk t,notasi t[A] untuk menunjukan nilai tuple t pada atribut A dan menggunakan tԐr untuk menunjukan nilai tuple r di relasi r. predikat P adalah berupa rumus,beberapa variable tupel dapat muncul di rumus.
Berikut contoh kalkulus relasional tupel yang diterapkan pada SQL:
SELECT Dosen.nid,Dosen.nama_d,Dosen.gajipokok from Dosen WHERE Dosen.jkelamin=’Pria’AND Dosen.gajipokok>1000000
Keterangan :
a. Mengestrak tupel-tupel pada relasi Dosen yang mempunyai atribut jkelamin adalah’Pria’ dan memiliki atribut gaji pokok adalah lebih besar dari 1000000.
b. Dari tuple diatas menampilkan atribut tertentu yaitu nim,nama_d,gajipokok.
B. Kalkulus relational domain
Kalkulus relational domain mengunakan variable-variable pada nilai-nilai domain atribut,bukan nilai-nilai untuk sebuah tupel. Ekspresi pada kalkulus relasional doman berbentuk:
{<X1,X2,…,Xn>|P(X1,X2,…,Xn)}
Dimana:X1,X2,…Xn menyatakan variable-variable domain.P menyatakan rumus-rumus sebagai rasional tupel. Contoh: cari nip,nama_d,gajipokok daridosen,dimana jenis kelaminnya adalah pria dan gaji pokoknya lebih besar 1200000
{nip|ᴲnam_d|ᴲgajipokok(Dosen(nid,nama_d,gajipokok)AND jkelamin=’Pria’ AND gajipokok>1200000)}
Tidak ada komentar:
Posting Komentar