Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
BAB 5                               OPERATOR RELASI      Tujuan Intruksional Khusus :      Mahasiswa mampu memahami dan me...
Relasi (Tabel) B S       SNAME            STATUS         CITY S1   Aris                  20          Semarang S2   Heni   ...
Contoh 5.3.Dengan menggunakan tabel A dan B yang diberikan pada contoh 5.1., maka A MINUS Badalah menghasilkan relasi baru...
Ilustrasi :                                               Tuples (baris) yang                                             ...
adalah membentuk relasi dari dua relasi yang terdiri dari semua kemungkinan kombinasituples, dimana tuples pada relasi yan...
dieksekusi untuk mengkonstruksikan hasil. Dengan kata lain bahwa relasi kalkulusadalah merupakan deskriptif, sedangkan rel...
dimana :f                                     : formula, Boolean expressionx1 , x 2 ,..., x k                    : variabe...
Charles I         M       1600         1649 Charles II        M       1630         1685 Mary              F       1631    ...
Dengan menggunakan formula secara DRC, maka query diatas diekspresikan sebagaiberikut :{ N : x1 , B : x3 | PERSON ( N : x1...
FATHERGHOOD( F : x 2 , C : x1 ) ∧         ¬( ∃x5 ( ∃x6 ( ∃x 7 ( PERSON ( N : x 2 , Sex : x5 , B : x6 , D : x7 ) ) ) ) )}Se...
( x 2 .Sovn = x1 .Sovn) ∧ ( x 2 .From = x1 .From) ∧ ( x 2 .To = x1 .To) ∧       ∃x3 ( Name, Sex, B, D )( PERSONS ( x3 ) ∧ ...
Pada toko buku on-line, pelanggan dapat melihat-lihat buku-buku yang terdapat padakatalog, kemudian melakukan pencarian bu...
Tabel BooksTabel CustomerTabel CategoriesOperator Relasi    53
Tabel OrderDetailTabel OrdersTabel PaymentTypeTabel Promotion                    Gambar 5.9 Skema Basis Data Toko Buku On-...
9. Menampilkan nama customer yang tidak pernah melakukan orders10. Menampilkan judul dan harga buku yang memiliki keyword ...
Upcoming SlideShare
Loading in …5
×

Bab 5. Operator Relasi

5,593 views

Published on

Published in: Travel, Business
  • gak bisa di download ya mas?
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here

Bab 5. Operator Relasi

  1. 1. BAB 5 OPERATOR RELASI Tujuan Intruksional Khusus : Mahasiswa mampu memahami dan melakukan operasi- operasi manipulasi terhadap model basis data relasional secara operasi relasi aljabar dan relasi kalkulus.5.1. Relasi AljabarOperasi aljabar terdiri dari himpunan operator level tinggi yang dioperasikan pada suaturelasi. Setiap operator menggunakan satu atau dua relasi sebagai input dan menghasilkanrelasi baru sebagai output.Codd mendefinisikan operator relasi terdiri dari delapan operator, dimana dibagi menjadidua kelompok sebagai berikut : 1. Operasi tradisional, terdiri dari Union, Intersection, Difference, dan Cartesian Product. 2. operasi relasional khusus, terdiri dari Restrict, Project, Join, dan Devide.Untuk kedelapan operator tersebut diatas, akan diuraikan secara detil sebagai berikut :5.1.1. Union ( ∪ )A ∪ B adalah relasi dengan heading (atribut) yang sama untuk setiap A dan B, dimanaterdiri dari himpunan semua tuples yang terdapat pada A atau B atau kedua-duanya.Ilustrasi : (hasil relasi baru adalah bagian yang diberi warna) A B Gambar 5.1. Ilustrasi A ∪ B.Contoh 5.1.Diberikan relasi (tabel) A S SNAME STATUS CITY S1 Aris 20 Semarang S4 Eko 20 SemarangOperator Relasi 41
  2. 2. Relasi (Tabel) B S SNAME STATUS CITY S1 Aris 20 Semarang S2 Heni 10 JakartaMaka A ∪ B adalah menghasilkan relasi baru : S SNAME STATUS CITY S1 Aris 20 Semarang S2 Eko 20 Semarang S4 Heni 10 Jakarta5.1.2. Intersect ( ∩ )A ∩ B adalah relasi dengan heading (atribut) yang sama untuk setiap A dan B, dimanaterdiri dari himpunan semua tuples yang terdapat pada A dan B.Ilustrasi : (hasil relasi baru adalah bagian yang diberi warna) A B Gambar 5.2. Ilustrasi A ∩ B.Contoh 5.2.Dengan menggunakan tabel A dan B yang diberikan pada contoh 5.1., maka A ∩ Badalah menghasilkan relasi baru : S SNAME STATUS CITY S1 Aris 20 Semarang5.1.3. Difference (MINUS)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 terdapatpada B.Ilustrasi : (hasil relasi baru adalah bagian yang yang tidak diberi warna) A B Gambar 5.3. Ilustrasi A MINUS B.Operator Relasi 42
  3. 3. Contoh 5.3.Dengan menggunakan tabel A dan B yang diberikan pada contoh 5.1., maka A MINUS Badalah menghasilkan relasi baru : S SNAME STATUS CITY S4 Eko 20 SemarangDan untuk B MINUS A adalah : S SNAME STATUS CITY S2 Heni 10 Jakarta5.1.4. Cartesian Product ( × / TIMES)A TIMES B adalah relasi yang terdiri dari semua himpunan tuples untuk setiap elemenrelasi pada A dikombinasikan dengan semua elemen pada relasi B.Ilustrasi : Cartesian Product P Z P Z Q K P K R Q Z Q K R Z R K Gambar 5.4. Ilustrasi A TIMES B.Contoh 5.4.Dengan menggunakan tabel A dan B yang diberikan pada contoh 5.1., maka A TIMES Badalah menghasilkan relasi baru : A A A A B B B B S SNAME STATUS CITY S SNAME STATUS CITY S1 Aris 20 Semarang S1 Aris 20 Semarang S1 Aris 20 Semarang S2 Heni 10 Jakarta S4 Eko 20 Jakarta S1 Aris 20 Semarang S4 Eko 20 Jakarta S2 Heni 10 Jakarta5.1.5. Restriction ( σ )adalah ekstraksi terhadap suatu tuples (baris) pada suatu relasi yang memenuhi kondisitertentu. Kondisi untuk relasi, direpresentasikan menggunakan klausa WHERE dandapat dikombinasikan dengan operator logika dan/atau matematika.Operator Relasi 43
  4. 4. Ilustrasi : Tuples (baris) yang memenuhi kondisi Gambar 5.5. Ilustrasi Restriction. Contoh 5.5.Dengan menggunakan tabel A yang diberikan pada contoh 5.1., maka A WHERE CITY= ‘Semarang’ adalah menghasilkan relasi baru : S SNAME STATUS CITY S1 Aris 20 Semarang S4 Eko 20 SemarangAtau dapat juga dituliskan ke dalam bentuk :σ (CITY = Semarang ) ( A)5.1.6. Projection ( π )adalah ekstraksi terhadap suatu atribut (kolom) pada suatu relasi yang memenuhi kondisitertentu.Ilustrasi : Atribut (kolom) yang memenuhi kondisi Gambar 5.6. Ilustrasi Projection.Contoh 5.6.Dengan menggunakan tabel A yang diberikan pada contoh 5.1., maka A [S,SNAME]adalah menghasilkan relasi baru : S SNAME S1 Aris S4 EkoAtau dapat juga dituliskan ke dalam bentuk :π S ,SNAME ( A)5.1.7. Natural Join (JOIN)Operator Relasi 44
  5. 5. adalah membentuk relasi dari dua relasi yang terdiri dari semua kemungkinan kombinasituples, dimana tuples pada relasi yang kedua memenuhi suatu kondisi tertentu (memilikinilai atribut yang sama).Ilustrasi : Natural Join a1 b1 b1 c1 a1 b1 c1 a2 b1 b2 c2 a2 b1 c1 a3 b1 b3 c3 a3 b2 c2 Gambar 5.7. Ilustrasi Natural Join.Jika suatu relasi yang tidak memiliki atribut yang memenuhi kodisi (memiliki nilaisama), maka A JOIN B adalah ekuivalen dengan A TIMES B.5.1.8. Devide (DEVIDEBY)A DEVIDEBY B adalah relasi dengan heading (X) dan terdiri dari himpunan semuatuples (X : x) dari tuples (X : x, Y : y) pada relasi A untuk semua tuples (Y : y) padarelasi B.Ilustrasi : Devide a x x a a y y a z b x c y Gambar 5.8. Ilustrasi Devide.5.2. Relasi KalkulusUntuk melakukan manipulasi model relasional dapat dilakukan dengan relasi aljabar danrelasi kalkulus.Relasi aljabar dapat secara aktual untuk membentuk relasi yang diharapkan dari suaturelasi yang terdapat pada basis data, sedangkan relasi kalkulus memberikan notasi untukmemformulasikan definisi relasi yang diinginkan pada kondisi relasi yang diharapkan.Dalam hal ini, hanya dilakukan pendefinisian karakteristik kondisi yang diharapkan danmemisahkan penggunaan operasi-operasi relasi aljabar (Join, Projection, …) yangOperator Relasi 45
  6. 6. dieksekusi untuk mengkonstruksikan hasil. Dengan kata lain bahwa relasi kalkulusadalah merupakan deskriptif, sedangkan relasi aljabar adalah merupakan perspektif. Ataudapat juga dikatakan bahwa relasi kalkulus merepresentasikan kondisi suatupermasalahan (non-prosedural), sedangkan relasi aljabar memberikan prosedur untukmenyelesaikan permasalahan (prosedural).Kedua relasi tersebut adalah ekuivalen, tetapi berbeda dalam hal penerapannya saja.Relasi kalkulus digunakan untuk natural language, sedangkan relasi aljabar digunakanuntuk bahasa pemrograman.Relasi kalkulus merupakan bahasa yang berbasiskan first order predicate calculus.Ekspresi menyatakan sifat dari hasil yang diharapkan, tanpa menentukan bagaimana hasiltersebut di proses. Relasi kalkulus memiliki cirri-ciri sebagai berikut : 1. First order calculus biasanya mempergunakan simbol-simbol predikat dan simbol- simbol fungsi. Untuk kaitannya dengan basis data : simbol fungsi tidak diperlukan dan predikat diinterprestasikan sebagai relasi. 2. Formula pada first order calculus dapat dibedakan ke dalam dua kelas : a. Open formulas (free variable) b. Closed formulas atau sentences yang memiliki variable terbatas. Karena kalkulus dipergunakan sebagai bahasa query dan basis data bertujuan untuk instant maupun relasi lainnya, maka closed formulas tidak diperhatikan. Untuk open formulas dapat didefinisikan sebagai himpunan tuples elemen dari kondisi secara keseluruhan, yang dapat menghasilkan formula “TRUE”. 3. Karena definisi relasi yang berbeda dari teori himpunan dalam memunculkan nama atribut dan himpunan domain, maka digunakan notasi yang sedikit berbeda.5.2.1. Domain Relational Calculus (DRC)Ekspresi dalam DRC memiliki bentuk : { A1 : x1 , A2 : x 2 ,..., Ak : x k | f }Operator Relasi 46
  7. 7. dimana :f : formula, Boolean expressionx1 , x 2 ,..., x k : variabel yang muncul pada fA1 , A2 ,..., Ak : atribut-atributA1 : x1 , A2 : x 2 ,..., Ak : x k : disebut list target dari formula, sebagai definisi strukturhasil ekspresi, dimana relasi A1 , A2 ,..., Ak berisi tuples dengan nilai c1 , c 2 ,..., c k , yangsecara berurutan mengganti nilai x1 , x 2 ,..., x k yang memenuhi f ( f =TRUE).Adapun untuk definisi singkat dari DRC adalah sebagai berikut :Simbol yang muncul pada formula adalah terdiri dari : konstan (elemen-elemen domainD), variabel (elemen-elemen dari himpunan berhingga V yang dihubungkan dengandomain D), nama relasi (tabel) dan atribut (berdasarkan skema basis data), operatorperbandingan (=, ≠, >, >=, <, <=), penghubung logika ( ∧ (dan/konjugsi), ∨(atau/disjungsi), ⌐ (not/negasi), ada/beberapa ( ∃ ), dan semua ( ∀ ))Contoh 5.7.Diberikan skema basis data silsilah dinasti keluarga, dimana terdiri dari empat relasi(tabel) dan masing-masing memiliki key tunggal (atribut yang di beri garis bawah). REIGNS(Sovereign, From, To) PERSON(Name, Sex, Birth, Death) FATHERHOOD(Father, Child) MOTHERHOOD(Mother, Child)REIGNS Sovereign From To James I 1603 1625 Charles I 1625 1648 Charles II 1660 1685 James II 1685 1688 Mary II 1688 1694 Anne 1702 1714PERSON Name Sex Birth Death James I M 1566 1625 Elizabeth F 1590 1662Operator Relasi 47
  8. 8. Charles I M 1600 1649 Charles II M 1630 1685 Mary F 1631 1659 James II M 1633 1701 Henrietta A F 1640 1670 Mary II F 1662 1694 Anne F 1665 1714 James F.E M 1686 1766FATHERHOOD Father Child Lord Darnley James I James I Elizabeth James I Charles I Charles I Charles II Charles I Mary Charles I James II Charles I Herietta A James II Mary II James II Anne James II James F.EMOTHERHOOD Mother Child Mary Stuart James I Anne of Denmark Elizabeth Anne of Denmark Charles I Henrietta Maria Charles II Henrietta Maria Mary Henrietta Maria James II Henrietta Maria Herietta A Anne Hyde Mary II Anne Hyde Anne Mary of Modena James F.EKemudian dilakukan operasi manipulasi terhadap model relasional diatas menggunakanDRC sebagai berikut :[a] Mengambil nama dan tanggal lahir dari anggota keluarga yang berstatus female (F).Operator Relasi 48
  9. 9. Dengan menggunakan formula secara DRC, maka query diatas diekspresikan sebagaiberikut :{ N : x1 , B : x3 | PERSON ( N : x1 , Sex : x 2 , B : x3 , D : x 4 ) ∧ ( x 2 = F )}Sehingga diperoleh hasil query dari ekspresi diatas adalah : Name Birth Elizabeth 1590 Mary 1631 Henrietta A 1640 Mary II 1662 Anne 1665[b] Mengambil Nama, Sex, dan dates (birth, death, mulai dan berakhirnya kekuasaan)untuk semua keluarga Sovereigns.Dengan menggunakan formula secara DRC, maka query diatas diekspresikan sebagaiberikut :{ Sovn : x1 , Sex : x2 , B : x3 , From : x 4 , To : x5 , D : x6 | REIGNS ( Sovn : x1 , From : x 4 , To : x5 ) ∧ PERSONS ( N : x1 , Sex : x 2 , B : x3 , D : x6 )}Sehingga diperoleh hasil query dari ekspresi diatas adalah : Name Sex Birth From To Death James I M 1566 1603 1625 1625 Charles I M 1600 1625 1648 1649 Charles II M 1630 1660 1685 1685 James II M 1633 1685 1688 1701 Mary II F 1662 1688 1694 1694 Anne F 1665 1702 1714 1714[c] Mengambil nama-nama Sovereigns yang ayahnya diketahui, tettapi tidak terdapatpada list sebagai anggota dinasti.Dengan menggunakan formula secara DRC, maka query diatas diekspresikan sebagaiberikut :{ Sovn : x1 | REIGNS ( Sovn : x1 , From : x3 , To : x 4 ) ∧Operator Relasi 49
  10. 10. FATHERGHOOD( F : x 2 , C : x1 ) ∧ ¬( ∃x5 ( ∃x6 ( ∃x 7 ( PERSON ( N : x 2 , Sex : x5 , B : x6 , D : x7 ) ) ) ) )}Sehingga diperoleh hasil query dari ekspresi diatas adalah : Sovereign James I5.2.2. Tuple Relational Calculus (TRC)Ekspresi dalam TRC memiliki bentuk : { x( X ) | f }dimana :f : Merupakan formulax : Merupakan variabel tuple, satu-satunya variabel tuple di fX : Satu set atribut yang berkorespodensi dengan x .Nilai dari ekspresi adalah relasi dalam X , yang berisi semua tuples yang menghasilkanf = TRUE .Contoh 5.8.Suatu ekspresi yang dituliskan dalam DRC :{ Sovn : x1 , From : x 2 , To : x3 | REIGNS ( Sovn : x1 , From : x 2 , To : x3 )}dapat dituliskan ke dalam ekspresi TRC dengan menggunakan satu variabel :{ x( Sovn, From, To ) | REIGNS ( x )}Contoh 5.9.Suatu ekspresi yang dituliskan dalam DRC :{ Sovn : x1 , Sex : x2 , B : x3 , From : x 4 , To : x5 , D : x6 | REIGNS ( Sovn : x1 , From : x 4 , To : x5 ) ∧ PERSONS ( N : x1 , Sex : x 2 , B : x3 , D : x6 )}dapat dituliskan ke dalam ekspresi TRC :{ x1 ( Sovn, Sex, B, From, To, D ) | ∃x 2 ( Sovn, From, To )( REIGNS ( x 2 ) ∧Operator Relasi 50
  11. 11. ( x 2 .Sovn = x1 .Sovn) ∧ ( x 2 .From = x1 .From) ∧ ( x 2 .To = x1 .To) ∧ ∃x3 ( Name, Sex, B, D )( PERSONS ( x3 ) ∧ ( x3 .Name = x1 .Sovn) ∧ ( x3 .Sex = x1 .Sex) ∧ ( x3 .B = x1 .B ) ∧ ( x3 .D = x1 .D) ))}Catatan :Perbedaan antara DRC dan TRC adalah dalam membentuk variabel “RANGE” melaluidomain bukan relasi.5.3. Persamaan dan Perbedaan Relasional Aljabar dan Relasi Kalkulus 1. Relasional kalkulus dan relasional aljabar dikelompokan pada bahasa yang “Relationally Complete”, artinya : Setiap ekspresi relasional kalkulus dapat direduksi pada bentuk relasional aljabar yang ekuivalen dengan ekspresi tersebut. 2. Ekspresi relasional kalkulus diselesaikan dengan menggunakan predikat kalkulus, sedangkan ekspresi relasional aljabar diselesaikan dengan memanfaatkan operator pada relasi sebagai operannya.5.4. SOAL-SOAL LATIHANToko Buku On-LineOperator Relasi 51
  12. 12. Pada toko buku on-line, pelanggan dapat melihat-lihat buku-buku yang terdapat padakatalog, kemudian melakukan pencarian buku berdasarkan katagori tertentu maupunmencari berdasarkan keyword tertentu. Pemilik toko buku dapat menampilkan buku-bukuyang ingin dipromosikan secara khusus.Setelah menemukan buku yang tepat, pelanggan dapat memasukan buku-buku yangdiinginkan kedalam shopping chart. Untuk dapat melakukan order pembelian buku,pelanggan harus login atau mendaftarkan diri untuk supaya dapat melakukan orderpembelian.Dari proses bisnis diatas, maka untuk mendukung operasional toko buku onlinedibutuhkan skema basis data yang terdiri dari beberapa tabel-tabel sebagai berikut: Nama Tabel Keterangan Books Berisi data-data buku Customers Menyimpan data pelanggan Categories Menyimpan kategori buku-buku Orders Berisi order pembelian buku OrderDetail Berisi detail dari suatu order pembelian Promotion Menyimpan data buku yang dipromosikan PaymentType Menyimpan tipe pembayaran yang berlaku bagi suatu order pembelianOperator Relasi 52
  13. 13. Tabel BooksTabel CustomerTabel CategoriesOperator Relasi 53
  14. 14. Tabel OrderDetailTabel OrdersTabel PaymentTypeTabel Promotion Gambar 5.9 Skema Basis Data Toko Buku On-LineDari skema yang diberikan pada gambar 5.9, maka lakukanlah operasi manipulasi datamenggunakan relasi secara aljabar dan kalkulus (baik secara DRC maupun TRC)untuksoal-soal latihan berikut ini :1. Menampilkan nama pengarang dan kategori yang identitas kategorinya adalah 12. Menampilkan judul, pengarang dan harga buku yang dipromosikan3. Menampilkan judul, pengarang dan harga buku yang judul bukunya memiliki keyword XML4. Menampilkan nama pelanggan yang melakukan order dengan pembayaran menggunakan Credit Card5. Menampilkan nama customer yang melakukan orders satu judul buku dengan jumlah lebih besar sama dengan 26. Menampilkan nama dan alamat customer yang melakukan orders dengan alamat semarang7. Menampilkan judul dan pengarang buku yang memiliki kategori JSP8. Menampilkan judul dan pengarang buku yang memiliki kategori JSP yang diurutkan secara menurun berdasarkan pengarangOperator Relasi 54
  15. 15. 9. Menampilkan nama customer yang tidak pernah melakukan orders10. Menampilkan judul dan harga buku yang memiliki keyword JAVA dan harganya lebih besar sama dengan 30Operator Relasi 55

×