Selasa, 22 Oktober 2013

Relasi Aljabar

Bahasa query formal adalah bahasa yang digunakan dalam basis data, misalnya SQL yang dikonversi menjadi bahasa relasional formal sehingga bisa diterapkan untuk mendapatkan informasi dengan efisien. Ada dua jenis bahasa query formal, yaitu aljabar relasional dan kalkulus aljabar.
Sekarang kita akan membahas mendalam tentang aljabar relasional, berikut penjelasannya.


Relasi Aljabar
Merupakan sekumpulan  operasi aljabar yang terdiri dari himpunan operator level tinggi yang dioperasikan pada sebuah relasi, dimana setiap operasi menggunakan satu atau lebih relasi untuk menghasilkan satu relasi yang baru yang digunakan untuk melakukan proses manipulasi data dalam rangka untuk mendapatkan informasi yang diperlukan dari database. Lebih bersifat operasional, sangat berguna untuk merepresentasikan eksekusi perencanaan.


Secara umum dibagi menjadi 2:
  • Operasi Unary terdiri dari selection, projection. Disebut operasi unary, karena dapat digunakan hanya pada satu relasi.
  • Operasi Binary terdiri dari union, intersection, set difference, cartesian product, join dan division. Disebut operasi binary, karena memerlukan sepasang relasi.


Operator Dasar


Operasi Seleksi (select)
Untuk memilih baris tertentu dari sebuah himpunan baris data (record) yang memenuhi kondisi dan membuang baris yang lain.
Simbol ““
Notasi : σp(r)
p disebut selection predicate (yang menentukan pemilihan)
p merupakan formula dari kalkulus perbandingan (proportional calculus) yang berisi terms yang dihubungkan oleh : ^ (and), v (or), ~ (not)
setiap term salah satu dari :
<atribut> op <atribut> or <konstanta>
atau
<atribut> op <atribut>
dengan op  salah satu dari : =, ≠, >, ≥, <, ≤


Contoh : dilakukan operasi σjenis=“action”(film) pada relas film sebagai berikut :
kode_film
jenis
judul
jml_keping
jml_film
A01
action
Spiderman
2
3
A02
action
Spiderman 2
2
5
D01
drama
Love Story
2
3
H01
horor
Evil Death
2
2


Hasilnya : suatu relasi dengan tuple-tuple yang memiliki jenis sama dengan action.
kode_film
jenis
judul
jml_keping
jml_film
A01
action
Spiderman
2
3
A02
action
Spiderman 2
2
5



Operasi Projeksi (Project)
Digunakan untuk menentukan field-field data dari suatu tabel yang akan ditampilkan
Simbol “Π”
Notasi: <daftar attribut> (<nama relasi>)
Jika <daftar attribut> tidak menyertakan primary key, maka dimungkinkan akan terjadi duplikasi. Duplikasi ini akan dihilangkan sehingga hanya sekali yang muncul.
Contoh : dilakukan operasi pkode_film, jenis, judul(film) pada relasi film sebagai berikut :
kode_film
jenis
judul
jml_keping
jml_film
A01
action
Spiderman
2
3
A02
action
Spiderman 2
2
5
D01
drama
Love Story
2
3
H01
horor
Evil Death
2
2


Hasilnya:
kode_film
jenis
judul
A01
action
Spiderman
A02
action
Spiderman 2
D01
drama
Love Story
H01
horor
Evil Death


Operasi Cartesian Product
Simbol “X”
Bentuk : E1 X E2
Digunakan untuk menggabungkan data dari dua buah tabel atau hasil query. Dengan operasi ini maka berakibat record pada table pertama akan dipasangkan dengan semua record pada tabel ke dua. Jika E1 memiliki n1 tuple, dan E2 memiliki n2 tuple maka E1 X E2 mempunyai (n1*n2) tuple.
Contoh :
Dosen_Wali
Nip

Nama_Dos
D01

James
D02
Schole
Mahasiswa
Nim

Nama
IPK
Nip
53666

Jones
3.0
D01
53668

Smith
2.7
D02
53650
Smith
3.8
D02


Mahasiswa X Dosen_Wali
Nip

Nama_Dos
Nim

Nama
IPK
Nip
D01

James
53666

Jones
3.0
D01
D02
Schole
53668

Smith
2.7
D02


53650
Smith
3.8
D02

Outer Join
Operasi Outer-Join
Terdiri dari tiga jenis: Left Outer Join, Right Outer Join, Full Outer Join
Left Outer Join :
Simbol “  ”
Bentuk : E1  E2
Menampilkan relasi dengan menjadikan tabel pertama sebagai acuan
Contoh Left Outer Join:
Matakuliah

Kode
Nama_kul
SKS
NIP
IF001
Struktur Data
2
0602
IF002
Pemrograman I
2
0603
IF003
Basis Data
4
0602
IF004
Sistem Pakar
2
0605

Dosen

Nama_kul
Nama_dos
Struktur Data
Ani, S.Kom
Pemrograman I
Suparman, ST
Basis Data
Ani, S.Kom
Sistem Pakar
Null

nama_kul, nama_dos (Matakuliah  Dosen)
NIP
Nama_dos
0601
Agung, ST
0602
Ani, S.Kom
0603
Suparman, ST
0604
Suratman, M.Kom

Right Outer Join
Simbol: “  ”
Bentuk: E1  E2
Kebalikan dari Left Outer Join yakni menampilkanrelasi dengan mengacu pada tabel kedua.
Contoh : dengan mengacu pada tabel mahasiswadan dosen pada contoh sebelumnya.
nama_dos, nama_kul (Matakuliah  Dosen)
Nama_dos
Nama_kul
Agung, ST
Null
Ani, S.Kom
Struktur Data
Ani, S.Kom
Basis Data
Suparman, ST
Pemrograman I
Suratman, M.Kom
Null

Full Outer Join
Simbol : “
Bentuk : E1  E2
Gabungan dari operasi Left Outer Join, dan Right Outer Join yang akan menghasilkan semua baris data di kedua tabel
Contoh : dengan mengacu pada tabel mahasiswa dan dosen pada contoh sebelumnya.
nama_kul, nama_dos (Matakuliah  Dosen)
Nama_kul
Nama_dos
Struktur Data
Ani, S.Kom
Pemrograman I
Suparman, ST
Basis Data
Ani, S.Kom
Sistem Pakar
Null
Null
Agung, ST
Null
Suratman, M.Kom

Operasi Natural-Join
Simbol “|x|”
Bentuk: E1 |x| E2
Merupakan equijoin dimana pasangan atributyang akan di joinkan memiliki nama yang sama. Jika tidak maka akan menjadi cartesian.
Contoh:
Matakuliah
Kode
Nama_kul
SKS
NIP
IF001
Struktur Data
2
0602
IF002
Pemrograman I
2
0603
IF003
Basis Data
4
0602
IF004
Sistem Pakar
2
0606

Dosen
Nama_kul
Nama
Struktur Data
Ani, S.Kom
Pemrograman I
Suparman, ST
Basis Data
Ani, S.Kom


∏ Matakuliah.nama_kul, Dosen.nama ((Matakuliah) |x| (Dosen))
NIP
NAMA
0601
Agung, ST
0602
Ani, S.Kom
0603
Suparman, ST
0604
Suratman, M.Kom

Operasi Divisi
Simbol : “÷”
Bentuk: E1 ÷ E2
Operasi division banyak digunakan dalam query yang mencangkup frase “setiap” atau “untuk semua”, operasi ini juga merupakan pembagian atas tuple-tuple dari dua relasi.
Contoh:
Matakuliah
Kode_Kul
Nama_kul
SKS
IF001
Struktur Data
2
IF002
Pemrograman I
2
IF003
Basis Data
4
IF004
Sistem Pakar
2


Mahasiswa
NIM
Nama_mhs
3304
Ahmad
3305
Salim
3306
Ranto
3307
Gima

Nilai
Kode_kul
NIM
Nilai
IF001
3304
A
IF001
3305
B
IF002
3304
A
IF003
3307
D


Dari tabel matakuliah, mahasiswa, dan nilai tersebut jika diberikan ekspresi aljabar relasi sbb: ∏nama_mhs, kode_kul ((Mahasiswa) |x|(Nilai)) ÷ ∏ kode_kul sks=2 (Matakuliah) )
Maka hasilnya:
Nama_mhs
Ahmad
Salim

Operator Assignment
Simbol “      
Bentuk : Temp1  E1
Berfungsi sama seperti assignment dalam bahasapemrograman yakni menuangkan hasil query ke dalam sebuah variabel relasi temporer.
Contoh : Dari aljabar relasi pada operator sebelumnya (division), dengan operator assignment kita dapat ubah ke dalam bentuk sbb:
nama_mhs, kode_kul ((Mahasiswa) |x|(Nilai)) ÷ ∏ kode_kul sks=2 (Matakuliah) )
Menjadi:
Temp1         ∏nama_mhs, kode_kul ((Mahasiswa) |x|(Nilai))
Temp2  ∏ kode_kul sks=2 (Matakuliah) )
Hasil          Temp1 ÷ Temp2


Operasi Union
Simbol “U”
Bentuk E1 U E2
Operasi yang digunakan untuk menggabungkan hasil dari beberapa query yang sejenis (memiliki projeksi yang sama).
Notasi : r  s, menghasilkan suatu relasi baru yang elemen barisnya merupakan elemen dari r dan s, tidak ada duplikasi data. Untuk r  s harus valid : r, s harus memiliki jumlah atribut yang sama.


Relasi r
A
B
C
aa
1
7
bb
5
7
bb
12
7
dd
23
10


Relasi s
A
B
C
aa
5
7
cc
4
4
dd
10
7
aa
6
10


A(r) A(s)
A
aa
bb
dd
cc


Operasi Set-Intersection
Simbol : “
Bentuk: E1 E2
Digunakan untuk menyatakan/mendapatkan irisan (kesamaan anggota) dari dua buah kelompok data dari suatu tabel atau hasil query.
Notasi : r  s, menghasilkan suatu relasi baru dengan elemen barisnya merupakan elemen yang terdapat pada relasi r dan elemen tersebut juga terdapat pada relasi s, tidak ada duplikasi data. r dan s harus memiliki jumlah atribut yang sama.
Relasi r
A
B
a
1
a
2
b
1


Relasi s
A
B
a
2
b
3


r s
A
B
a
2


Operasi Set-Difference
Simbol “
Bentuk :E1E2
Merupakan kebalikan dari operasi union, yakni pengurangan data di tabel pertama oleh data di tabel ke dua.
Notasi r – s, hasilnya relasi yang elemen barisnya terdapat pada r tetapi tidak terdapat di s. r dan s harus memiliki jumlah atribut yang sama.
Relasi r
A
B
C
aa
1
7
bb
5
7
bb
12
7
dd
23
10


Relasi s
A
B
C
aa
1
7
cc
5
7
dd
12
7
aa
23
10


A(r) - A(s)
A
bb


Modifikasi Data
  • Operasi Penambahan Baris Data
Dalam aljabar relasional, penambahan baris data barudieksrepsikan sebagai :
R  R U E
Tambahkan pada tabel matakuliah dengan data berikut : ‘IF005’,’Organisasi Komputer’,2,’0604’ – Maka aljabar relasionalnya sbb:
Kuliah         Kuliah U {(‘IF005’,’Organisasi Komputer’,2,’0604’)}
  • Operasi Pengubahan Data
Untuk pengubahan data, dapat digunakan operasiprojeksi tergeneralisasi sbb:
r f1, f2,…, fn (r)
Contoh: kosongkan semua kode_dos pada tabelmatakuliah
matakuliah        ∏kode_kul, nama_kul, sks, nip          null (matakuliah)
  • Operasi Penghapusan Data
Dalam aljabar relasional operasi penghapusan data diekspresikan sbb:
R  R E
Contoh: hapus semua matakuliah 2 sks
matakuliah         Matakuliah ─ (σ sks=2 (matakuliah))


Tidak ada komentar:

Posting Komentar