4.08.2014

PERANCANGAN BASIS DATA (ALJABAR RELASIONAL)

ALJABAR RELASIONAL (MATERI IV)


Aljabar relasional adalah sebuah bahasa query prosedural yang terdiri dari sekumpulan operasi dimana masukkannya adalah satu atau dua relasi dan keluarannya adalah sebuah relasi baru sebagai hasil dari operasi tersebut. Operasi-operasi dasar dalam aljabar relasional adalah : select, project, union, set difference, dan cartesian product. Disamping operasi-operasi dasar terdapat beberapa operasi tambahan seperti set intersection, natural join, division dan theta join.

Operasi Dasar Relasi Aljabar :

OPERASI UNION -> Operasi yang memakai satu relasi.
  1. SELECTION (σ), Digunakan untuk memilih baris(row) dari suatu relasi
Σ predicate (r) operasi seleksi bekerja pada satu relasi dan mendefinisikan relasi yang berisi hanya tuple r yang memenuhi kondisi(predicate)
Untuk predicate yang lebih rumit dapat dibuat menggunakan operator logikal λ (AND),Ν (OR) DAN ~(NOT).
  1. ) Digunakan untuk merinci kolom.pPROJECTION (
OPERASI BINARY -> Operasi yang memakai dua atau sepasang relasi.
 









UNION (U) -> RUS
Menyatukan 2 relasi r dan s, mendefinisikan relasi yang berisi seluruh tuple r, s atau keduanya, seta menghilangkan nilai atribut yang ganda

 
INTERSECTION (n) -> R n  S
Operasi  yang mendefinisikan suatu relasi yang berisi sekumpulan tuple yang ada di r dan s

SET DIFFERENCE (-) -> R-S
Operasi  yang mendefinisikan suatu relasi yang berisi tuple yang ada di relasi r tetapi tidak terdapat di relasi s

CARTESIAN PRODUCT (x) -> R x S
Operasi  yang menghasilkan relasi yang merupakan gabungan dari setiap tuple pada relasi r dengan setiap tuple pada relasi s





OPERASI  -  OPERASI DASAR
  • SELECT
  • PROJECT
  • CARTESIAN PRODUCT
  • UNION
  • SET DIFFERENCE 

OPERASI  -  OPERASI TAMBAHAN
  • NATURAL JOIN 
  •  INTERSECTION  

CARTESIAN PRODUCT
Membentuk suatu relasi dari dua relasi yang terdiri dari kombinasi tupel-tupel yang mungkin.
 
     UNION
A B adalah relasi dengan heading (atribut) yang sama untuk setiap A dan B, dimana terdiri dari himpunan semua tuples yang terdapat pada A atau B atau kedua-duanya. Operasi union berfungsi untuk mendapatkan gabungan nilai atribut dari sebuah tabel relasi dengan nilai atribut dari tabel relasi lainnya.
   
     SET-D
Operasi set difference berfungsi untuk mendapatkan nilai yang ada dalam sebuah tabel relasi, tapi tidak ada dalam tabel relasi lainnya. A MINUS B adalah relasi dengan heading (atribut) yang sama untuk setiap A dan B, dimana terdiri dari himpunan semua tuples yang terdapat pada A, tetapi tidak terdapat pada B.

NATURAL JOIN
Membentuk suatu relasi dari dua relasi yang terdiri dari kombinasi yang mungkin dari relasi-relasi
 
INTERSECT 
hanya akan menampilkan seluruh isi dari data yang memiliki kesaman diantara hasil kedua query tersebut. struktur querynya.



OPTIMASI QUERY

Dilakukan dengan mengetahui bagaimana rencana eksekusi query yang “baik” rencana dari optimasi query dapat dilakukan dengan mengoptimalkan Ekspresi Aljabar Relasional seperti :
  • Selection (σ)
  • Projection (̟)
  • Cartesian Product / Cross Product (X)
  • Union (∪)
  • Set-Difference (-)
Aljabar Relasional :
SELECT nmpel
FROM pelanggan,daya_terpasang
WHERE pelanggan.idpel = daya_terpasang.idpel
AND daya > 1300
Π nmpel (σ daya >1300 Λ pelanggan.idpel=daya_terpasang.idpel (pelanggan X daya_terpasang))
Query Decomposition :
Pada Lapis Pertama ini input adalah query dirubah menjadi Aljabar query. Query Decomposition dibagi  enjadi 4 bagian :
  • Normalisasi,
  • Analisa semantik,
  • Memperbaiki Query,
  • Menata ulang struktur dari query (restruktured)
Keterangan :
  • Normalisasi - Manipulasi Queri
  • Analisa - Mendeteksi queri yang salah
  • Sederhanakan - Mengeleminasi predicate yang berulang
  • Tata Ulang - Gunakan aturan transformasi
Normalisasi :
Aturan untuk operasi logika
  • p1 ∧ p2 <=> p2 ^ p1
  • p1 V p2 <=> p2 V p1
  • p1 ^ ( p2 ^p3) (p1 ^ p2) ^p3
  • p1 V (p2 Vp3) ( p1 V p2) Vp3
  • p1 ^ (p2 Vp3) (p1 ^ p2) V (p1 ^ p3)
  • p1 V (p2 ^ p3) (p1 V p2) ^ (p1 V p3)
  • ¬ ( p1 ^ p2) ¬p1 V ¬p2
  • ¬ ( p1 V p2) ¬p1 ^ ¬p2
  • ¬(¬p) p
Contoh 1
Mencari nama pelanggan dengan ap ‘lenteng agung‘ dengan daya 1300 atau 900 watt
SQL :
Select nmpel
From pelanggan p , daya_terpasang d
Where p.idpel = d.idpel
And ap = “lenteng agung”
And (daya = 1300 Or daya = 900)
p.idpel = d.idpel ∧ ap=“lenteng agung” ∧ (daya = 1300 V Daya =900)
atau
(p.idpel = d.idpel ∧ ap=“lenteng agung” ∧ Daya = 1300)
V
(p.idpel = d.idpel ∧ ap=“lenteng agung” ∧ Daya = 900)
(p.idpel = d.idpel ∧ ∧∧ ∧ ap=“lenteng agung” ∧ ∧∧ ∧ Daya = 1300)
V
(p.idpel = d.idpel ∧ ∧∧ ∧ ap=“lenteng agung” ∧ ∧∧ ∧ Daya = 900)
ANALISA
Menemukan queri yang salah. Tipe yang tidak benar:
  1. Jika ada atribut atau nama relasi tidak didefenisi dalam skema global
  2. Ada operasi yang diaplikasikan ke atribut dengan tipe yang salah
Contoh 2
Select alamat
From pelanggan
Where ap > 1900
Queri tidak benar :
Atribut alamat tidak dideklarasikan dalam struktur tabel
Operator > 1900 tidak compatible dengan type text dari ap
KESALAHAN SEMANTIK
  1. Ada komponen yang tidak memberikan konstribusi dalam hasil akhir
  2. Hanya sebagian dari relational queris yang dapat di tes untuk koreksi
  3. Untuk mendektesi : query graph dan Join Graph
Contoh 3
SELECT nmpel, daya
FROM pelanggan p, 
daya_terpasang d, harga h
WHERE p.idpel = d.idpel
AND d.gol = h.gol
AND tarif <1100
Cari nama pelanggan dan daya dengan tarif kurang dari 1100
QUERY GRAPH
SELECT nmpel, daya
FROM FROM pelanggan p, daya_terpasang d, harga h
WHERE p.idpel = d.idpel
AND d.gol = h.gol 
AND tarif <1100

referensi :
http://happyanjas.blogspot.com/2014/03/materi-4.html









0 komentar:

Posting Komentar

Share

Twitter Delicious Facebook Digg Stumbleupon Favorites More