ALJABAR RELASIONAL DAN KALKULUS RELASIONAL


Bahasa query formal basis data realtional adalah bahasa untuk meminta informasi dari basis data. Contoh dari bahasa query relasional adalah SQL (Sructured Query Language) yang berbeda dengan dengan emrogaman konvendional. SQL menspesifikan properti-properti informasi yang hendak diambil tapi tidak mencantumkan rincian algoritma pengambilan. SQL adalah deklaratif, yaitu pada query dideklarasikan informasi yang merupakan jawaban yang dikehendaki bukan cara komputasi.
                Bahasa query relasional formal merupakan bahasa antara yang digunakan basis data, yaitu SQL konvensi menjadi bahasa relasional formal sehingga dapat diterapkan sekumpulan informasi untuk memperoleh query paling efisien.  Jenis bahasa query relasional formal yang utama, yaitu:
1.       Aljabar relasional.
Aljabar relasional(Relational Algebra) merupakan kumpulan operasi terhadap relasi dimana setiap operasi menggunakan satu relasi atau lebih untuk menghasilkan satu relasi yang baru dan termasuk kategori prosedural dan juga menyediakan seperangkat operator untuk manipulasi data.
Terapat lima operasi dasar dalam aljabar relasional, yaitu:
a.       Selection (s)
b.      Projection (p)
c.       Cartesia-product (X, juga disebut sebagai cross product)
d.      Union(È)
e.      Set-difference (-)
f.        Rename (r)
Operasi-operasi turunan dari operasi-operasi dasar di atas adalah:
a.       Set intersection (Ç)
b.      Theta join (q)
c.       Natural-join ( )
d.      outer-join ( “g tau nih ap simbolnya” )
e.      Division (¸)
Operasi-operasi di atas menghasilkan relasi abru. Bahasa disebut aljabar relasional karena bahasa berdasarkan sejumlah operator yang beroperasi pada relasi-relasi(tabel-tabel). Masing-masing operator beroperasi pada satu relasi atau lebih atau menghasilkan relasi-relasi lain sebagai hasil. Query sekedar ekspresi yang melibatkan operator-operator itu. Hasil ekspresi adalah relasi yaitu jawaban terhadap query.
 SQL adalah bahasa yang deklaratif, berarti tidak mengspesifikasikan algoritma yang digunakan untuk pengolahan query. Pemrogaman menggunakan query SQL, DBMS menggunakan aljabar relasional sebagai bahasa antara dalam spesifikasi algoritma query.
A.      Operasi Aljabar relasional
Mengimplementasikan ke dalam operasi aljabar relasional. Berikut merupakan relasi dari database Penjadwalan_mengajar_dosen pada STIMK ‘Revanda Jaya’. Relasi-relasi tersebut meliputi:
1)      Dosen
Dosen={nid,nama,d_tempat_lhr ,jkelamin,kodepos,gpokok}
Primary ket relasi Dosen adalah nid, karena tidak ada dosen dengan nid yang sama.
nid
Nama_id
Tempat_lht
jkelamin
kodepos
gajipokok
95001
Bambang
Jakarta
pria
21231
2000000
95002
Sinta
Bogor
Wanita
58461
1500000
95003
Anji
Solo
pria
58461
1700000
2)      Matakuliah
Matakuliah={kdmk,nama_mk,sks,semester}
Dengan kdmk sebagai primary key.
kdmk
nama_mk
sks
semester
Mkb4353
PBO
2
1
Mkk3212
ALPRO
2
1
Mpk5646
SBD
2
1
3)      Jurusan
Jurusan={kode_jur,nama_jur,jenjang,nama_kajur}
Primary key dari relasi Jurusan adalah kode_jur.
kode_jur
nama_jur
jenjang
nama_kajur
I8
PTIK
Strata 1
Tri Supriati
I6
PTIK
Strata 1
Sukono
B9
Teknik Elektro
Diploma 3
Slamet

B.      Operational Selection (s)
Merupakan operasi untuk menyeleksi tupel-tupel yang memenuhi suatu predikat.operator perbandingan yang digunakan (<,>,<=,>=,=,#). Predikan yang dapat dikombinasikan menjadi majemuk menggunakan penghubung AND dan OR.
Contoh operasi select
-          Query : tapulkan daftar dosen yang tempat lahir di Jakarta atau Solo.
-          Aljabar relasional :
stempat_lhr=’jakarta’tempat_lhr=’solo’
-          Hasilnya adalah
nid
Nama_id
Tempat_lhr
jkelamin
kodepos
gajipokok
95001
Bambang
Jakarta
pria
21231
2000000
95003
Anji
Solo
pria
58461
1700000
C.      Operasi Projection(p)
Adalah operasi untuk memperoleh kolom-kolom tertentu. Merupakan operasi unary yang mengirim relasi argumen dangan kolom-kolom tertentu. Karena relasi adalah himpunan, maka baris-baris duplikasi dihilangkan.
Sintaks yang digunakan dalam opersi proyeksi ini adalah sebagai berikut :
p colom1, ... ,colomn
Contoh operasi project:
-          Tampilkan nid,nama_d,Tempat_lhr dari relasi Dosen
-          Aljabar relasional:
pnid,nama_d,alamat,kota
-          Hasil:
nid
Nama_d
Tempat_lhr
95001
Bambang
Jakarta
95002
Sinta
Bogor
95003
Anji
Solo
D.      Operasi Cartesian-product(X)
Adalah operasi untuk menghasilkan tabel hasil perkalian kartesian Sintaks yang digunakan dalam operasi proyeksi ini adalah berikut:
R X S={(x,y)|x ϵ R dan y ϵ S}
Operasi Cartesian-product memeungkinkan untuk mengkombinasikan informasi relasi,operasi ini adalah operasi biner. Seperti  telah dinyatakan bahwa relasi adalah subset hasil cartesian-product dan himpunan domain relasi-relasi tersebut. harus memilih atribut-atribut untuk relasi yang dihasilkan dari Cartesian-product.
Contoh Operasi Cartesian-product
-          Query : tampilkan nid,nama_d(dari relasi dosen), nama_mk (dari relasi Matakuliah), thn_akademik,smt,jam_kr,waktu,kelas(dari relasi mengajar) dimana semester semester mengajar adalah semester ‘1’.
-          Aljabar relasional
p (Mengajar.nid=Dosen.nid Ʌ Mengajar.kdmk) Ʌ smt=1 (((p nid,nama_d X (p nama_mk) X (p thn_akademik,smt,hari,jam,ke,waktu,kelas))))
-          Hasilnya
Menapilkan tabel dengan isi tabel sebagai berikut
nid
Nama_d
Nama_mk
Thn_akademik
smt
hari
Jam_ke
waktu
kelas



























E.       Operasi Union(È)
Adalah operasi untuk menghilangkan gabungan tabel dengan syarat kedua tabel memiliki atribut yang sama, yaitu domain atribut ke-i masing-masing tabel harus sama. Sintaks yang digunakan dalam operasi union ini adalah
R È S={x|x ϵ R atau X ϵ S}
Operasi dilakukan saat R dan S memiliki operasi atribut yang sama sehingga jumlah komponennya sama.
F.       Set-different(--)
Adalah operasi untuk mendapatkan tabel suatu relasi, tapi tidak ada relasi yang lainnya. Sintaks yang digunakan:
R - S= {x|x ϵ R dan X bukan ϵ  S}
Operasi dapat dilaksanakan apabila R dan S mempunyai atribut yang tidak sama yangakan ditampilkan, artinya adalah atribut R yagn ada di S akan ditampilkan, sedangkan atribut yang sama tidak ditampilkan.
G.     Rename
Merupakan opersi untuk menyalin tabel lama kedalam tabel baru. Sintaks yang digunakan:
r [nama_tabel]
H.      Set-intersection(Ç)
Termasuk dalam operasi pemanbahan, karena operator ini dapat diderivikasi dari operator dasar seperti berikut :
A Ç B = A – ( A –B ), atau A Ç B= B – (B - A)
I.        Theta-join
Merupakan operasi untuk menghubungkan operasi selection dan cartesia-product dengan suatu kriteria.
J.        Outer-join
Operasi untuk menghubungkan operasi selection dan cartesian-product dengan suatu kriteria pada kolom yagn sama.
K.      Devision
Operasi yang digunkan dalam query yang mencangkup frase “setiap” atau “untuk semua”, operasi ini juga merupakan pembagian atas tuple-tuple dari dua relasi.

2.        Kalkulus relasional
Spesifik untuk memperoleh informasi. Pada model relasional, bahasa formal non proseduralyang adalah bahasa kalkulus. Kalkulus relasional dibagi menjadi dua, yaitu:
1.       Kalkulus relasional tupel
Mendiskripsikan informasi tanpa perlu memberikan prosedur/cara spesifik untuk memperoleh infomasi tersebut. konsep dari kalkulus relasional tupel adalah konseb variabel tupel. Dimana variabel merepresentasikan tupel-tupel padarelasi dan digunakan untuk mengekstrak data dari relasi. Komponen-komponen lain rumus kalkulus tupel adalah kualifikasi data dengan membatasi nilai-nilai dari atribut-atribut yang dispesifikasikan.
        Query pada kalkulus realsional tupel dapat diekspresikan dengan:
        {t|P(t)}
Yaitu himpunaan semua tupel t sehingga predikat P bernilai true untuk t, notasi t[A] untuk menunjukan nilai tuple t pada atributr A, dan menggunakan t ϵ r untuk menunjukan nilai tuple t di relasi r. Predikat P adalah berupa rumus, beberapa rumus, beberapa variabel tuple dapat muncul di rumus.
Berikut ini contoh kalkulus relasional tuple yang diterapkan pada SQL.
SELECT Dosen.nid,zdosen.nama_d,Dosen.gajipokok
FROM Dosen
WHERE
Dosen.jkelamin=’Pris’ AND Dosen.gajipokok>1000000
Pada query di atas menyatakan dua hal :
-          Mengambil atau mengekstra tupel-tupel pada relasi Dosen yang mempunyai atribut jkelamin ‘Pria’ dan memiliki atribut gajipokok adalah lebih besar dari 1000000.
-          Menampilkan atribut tertentu yaitu nid,nama_d,gajipoko.
Dengan demikian Dosen.nid,Dosen.gajipokok adalah variabel-variabel tupel. Bentuk umum dari kalkulus relasional tuple adalah:
TupleVariabel1 operator[TupleVariabel2 | constant]
SQL dikembangkan berbasis kalkulus relasional tuple.
Rumus-rumus kalkulus relasional tuple dibangun dari atom-atom, atom mempunyai salah satu bentuk berikut:
a.       s ϵ R, dimana s merupalan variable tuple dan R merupakan relasi
b.      s[x] u[y], dimana s atau u merupakan variabel tupel, x adalah atribut yang didefinisikan di s, y adalah atribut didefinisikan di u.  Dimana atribut x dan y yang mempunyai domain yang anggotanya dapat dibandingkan dengan operator pembanding.
c.       S[x] operator pembanding c, dimana s adalah variabel tupel, x adalah atribut yang didefinisikan di s. C adalah konstanta dari domain atribut x.
Aturan pembuatan rumus:
-          Atom adalah rumus.
-          Jika P1 adalah rumus, maka bukan P1 dan (P1)
-          Jika P1 dan P2 adalah rumus, maka P1 atau P2, P1 dan P2, dan jika P1 makaP2.
-          Jika P1(x) adalah rumus di x, dimana x adalah variabel tupel x, maka r ϵ R dan bilangan s ϵ S (r[a]=s[a])
2.       Kalkulus relasional domain
Kalkulus realsional domain menggunakan variable-variable pada nilai-nilai domain atribut, bukan nilai-nilai untuk sebuah tupel. Ekspresi pada relasional domain berbentuk:
{<X1,X2, ... ,Xn>|P(X1,X2, ... , Xn)}
X1, X2, ... ,Xn menyatakan variable-variable domain.
P menyatakan rumus-rumus yang disusun dari atom-atom.
Berdasarkan acuan model relasional, ada 2 bahasa query kemersial yaitu SQL dan QBE.

Categories:

Leave a Reply