SlideShare a Scribd company logo
1 of 15
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 Aljabar
Operasi aljabar terdiri dari himpunan operator level tinggi yang dioperasikan pada suatu
relasi. Setiap operator menggunakan satu atau dua relasi sebagai input dan menghasilkan
relasi baru sebagai output.
Codd mendefinisikan operator relasi terdiri dari delapan operator, dimana dibagi menjadi
dua 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, dimana
terdiri 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       Semarang



Operator Relasi                                                                           41
Relasi (Tabel) B
 S       SNAME            STATUS         CITY
 S1   Aris                  20          Semarang
 S2   Heni                  10           Jakarta

Maka A ∪ B adalah menghasilkan relasi baru :
 S       SNAME            STATUS         CITY
 S1   Aris                  20          Semarang
 S2   Eko                   20          Semarang
 S4   Heni                  10           Jakarta

5.1.2. Intersect ( ∩ )
A ∩ B adalah relasi dengan heading (atribut) yang sama untuk setiap A dan B, dimana
terdiri 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 ∩ B
adalah menghasilkan relasi baru :
 S       SNAME            STATUS         CITY
 S1   Aris                  20          Semarang

5.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 terdapat
pada B.
Ilustrasi : (hasil relasi baru adalah bagian yang yang tidak diberi warna)
                                           A   B




                           Gambar 5.3. Ilustrasi A MINUS B.




Operator Relasi                                                                   42
Contoh 5.3.
Dengan menggunakan tabel A dan B yang diberikan pada contoh 5.1., maka A MINUS B
adalah menghasilkan relasi baru :
 S        SNAME          STATUS       CITY
 S4    Eko                 20        Semarang

Dan untuk B MINUS A adalah :
 S        SNAME          STATUS       CITY
 S2    Heni                10         Jakarta

5.1.4. Cartesian Product ( × / TIMES)
A TIMES B adalah relasi yang terdiri dari semua himpunan tuples untuk setiap elemen
relasi 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 B
adalah 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          Jakarta

5.1.5. Restriction ( σ )
adalah ekstraksi terhadap suatu tuples (baris) pada suatu relasi yang memenuhi kondisi
tertentu. Kondisi untuk relasi, direpresentasikan menggunakan klausa WHERE dan
dapat dikombinasikan dengan operator logika dan/atau matematika.




Operator Relasi                                                                    43
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       Semarang

Atau dapat juga dituliskan ke dalam bentuk :
σ (CITY = 'Semarang ') ( A)


5.1.6. Projection ( π )
adalah ekstraksi terhadap suatu atribut (kolom) pada suatu relasi yang memenuhi kondisi
tertentu.
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      Eko

Atau dapat juga dituliskan ke dalam bentuk :
π S ,SNAME ( A)

5.1.7. Natural Join (JOIN)




Operator Relasi                                                                          44
adalah membentuk relasi dari dua relasi yang terdiri dari semua kemungkinan kombinasi
tuples, dimana tuples pada relasi yang kedua memenuhi suatu kondisi tertentu (memiliki
nilai 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 nilai
sama), 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 semua
tuples (X : x) dari tuples (X : x, Y : y) pada relasi A untuk semua tuples (Y : y) pada
relasi B.
Ilustrasi :
                                           Devide


                                 a    x         x      a
                                 a    y         y
                                 a    z
                                 b    x
                                 c    y
                              Gambar 5.8. Ilustrasi Devide.

5.2. Relasi Kalkulus
Untuk melakukan manipulasi model relasional dapat dilakukan dengan relasi aljabar dan
relasi kalkulus.
Relasi aljabar dapat secara aktual untuk membentuk relasi yang diharapkan dari suatu
relasi yang terdapat pada basis data, sedangkan relasi kalkulus memberikan notasi untuk
memformulasikan definisi relasi yang diinginkan pada kondisi relasi yang diharapkan.
Dalam hal ini, hanya dilakukan pendefinisian karakteristik kondisi yang diharapkan dan
memisahkan penggunaan operasi-operasi relasi aljabar (Join, Projection, …) yang


Operator Relasi                                                                        45
dieksekusi untuk mengkonstruksikan hasil. Dengan kata lain bahwa relasi kalkulus
adalah merupakan deskriptif, sedangkan relasi aljabar adalah merupakan perspektif. Atau
dapat juga dikatakan bahwa relasi kalkulus merepresentasikan kondisi suatu
permasalahan (non-prosedural), sedangkan relasi aljabar memberikan prosedur untuk
menyelesaikan permasalahan (prosedural).
Kedua relasi tersebut adalah ekuivalen, tetapi berbeda dalam hal penerapannya saja.
Relasi kalkulus digunakan untuk natural language, sedangkan relasi aljabar digunakan
untuk bahasa pemrograman.
Relasi kalkulus merupakan bahasa yang berbasiskan first order predicate calculus.
Ekspresi menyatakan sifat dari hasil yang diharapkan, tanpa menentukan bagaimana hasil
tersebut 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
dimana :
f                                     : formula, Boolean expression
x1 , x 2 ,..., x k                    : variabel yang muncul pada f
A1 , A2 ,..., Ak                      : atribut-atribut
A1 : x1 , A2 : x 2 ,..., Ak : x k     : disebut list target dari formula, sebagai definisi struktur

hasil ekspresi, dimana relasi A1 , A2 ,..., Ak berisi tuples dengan nilai c1 , c 2 ,..., c k , yang

secara 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 domain
D), variabel (elemen-elemen dari himpunan berhingga V yang dihubungkan dengan
domain D), nama relasi (tabel) dan atribut (berdasarkan skema basis data), operator
perbandingan (=, ≠, >, >=, <, <=), 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        1714
PERSON
      Name                  Sex      Birth      Death
 James I                   M        1566       1625
 Elizabeth                 F        1590       1662


Operator Relasi                                                                                 47
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         1766

FATHERHOOD
       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.E

MOTHERHOOD
         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.E




Kemudian dilakukan operasi manipulasi terhadap model relasional diatas menggunakan
DRC sebagai berikut :
[a] Mengambil nama dan tanggal lahir dari anggota keluarga yang berstatus female (F).




Operator Relasi                                                                         48
Dengan menggunakan formula secara DRC, maka query diatas diekspresikan sebagai
berikut :
{ 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 sebagai
berikut :
{ 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 terdapat
pada list sebagai anggota dinasti.
Dengan menggunakan formula secara DRC, maka query diatas diekspresikan sebagai
berikut :


{ Sovn : x1 |
          REIGNS ( Sovn : x1 , From : x3 , To : x 4 ) ∧




Operator Relasi                                                                         49
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 I

5.2.2. Tuple Relational Calculus (TRC)
Ekspresi dalam TRC memiliki bentuk :
                                                    { x( X ) | f }
dimana :
f        : Merupakan formula
x        : Merupakan variabel tuple, satu-satunya variabel tuple di f
X        : Satu set atribut yang berkorespodensi dengan x .
Nilai dari ekspresi adalah relasi dalam X , yang berisi semua tuples yang menghasilkan
f = 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
( 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” melalui
domain 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 LATIHAN
Toko Buku On-Line


Operator Relasi                                                                                   51
Pada toko buku on-line, pelanggan dapat melihat-lihat buku-buku yang terdapat pada
katalog, kemudian melakukan pencarian buku berdasarkan katagori tertentu maupun
mencari berdasarkan keyword tertentu. Pemilik toko buku dapat menampilkan buku-buku
yang ingin dipromosikan secara khusus.
Setelah menemukan buku yang tepat, pelanggan dapat memasukan buku-buku yang
diinginkan kedalam shopping chart. Untuk dapat melakukan order pembelian buku,
pelanggan harus login atau mendaftarkan diri untuk supaya dapat melakukan order
pembelian.
Dari proses bisnis diatas, maka untuk mendukung operasional toko buku online
dibutuhkan 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 pembelian




Operator Relasi                                                                       52
Tabel Books




Tabel Customer




Tabel Categories




Operator Relasi    53
Tabel OrderDetail




Tabel Orders




Tabel PaymentType




Tabel Promotion




                    Gambar 5.9 Skema Basis Data Toko Buku On-Line

Dari skema yang diberikan pada gambar 5.9, maka lakukanlah operasi manipulasi data
menggunakan relasi secara aljabar dan kalkulus (baik secara DRC maupun TRC)untuk
soal-soal latihan berikut ini :
1. Menampilkan nama pengarang dan kategori yang identitas kategorinya adalah 1
2. Menampilkan judul, pengarang dan harga buku yang dipromosikan
3. Menampilkan judul, pengarang dan harga buku yang judul bukunya memiliki
    keyword XML
4. Menampilkan nama pelanggan yang melakukan order dengan pembayaran
    menggunakan Credit Card
5. Menampilkan nama customer yang melakukan orders satu judul buku dengan jumlah
    lebih besar sama dengan 2
6. Menampilkan nama dan alamat customer yang melakukan orders dengan alamat
    semarang
7. Menampilkan judul dan pengarang buku yang memiliki kategori JSP
8. Menampilkan judul dan pengarang buku yang memiliki kategori JSP yang diurutkan
    secara menurun berdasarkan pengarang


Operator Relasi                                                                  54
9. Menampilkan nama customer yang tidak pernah melakukan orders
10. Menampilkan judul dan harga buku yang memiliki keyword JAVA dan harganya
   lebih besar sama dengan 30




Operator Relasi                                                          55

More Related Content

Viewers also liked (18)

Bab. 6
Bab. 6Bab. 6
Bab. 6
 
Bab 4 latihan erd ke skema relasional
Bab 4 latihan erd ke skema relasionalBab 4 latihan erd ke skema relasional
Bab 4 latihan erd ke skema relasional
 
Bab 6 pendukung
Bab 6 pendukungBab 6 pendukung
Bab 6 pendukung
 
Bab 2
Bab 2Bab 2
Bab 2
 
Bab. 1
Bab. 1Bab. 1
Bab. 1
 
Bab. 10
Bab. 10Bab. 10
Bab. 10
 
Bab 4
Bab 4Bab 4
Bab 4
 
Bab 5
Bab 5Bab 5
Bab 5
 
Bab 8. Perlindungan dan Pemulihan Data
Bab 8. Perlindungan dan Pemulihan DataBab 8. Perlindungan dan Pemulihan Data
Bab 8. Perlindungan dan Pemulihan Data
 
Bab. 12
Bab. 12Bab. 12
Bab. 12
 
Bab. 13
Bab. 13Bab. 13
Bab. 13
 
Bab. 7
Bab. 7Bab. 7
Bab. 7
 
Bab. 3
Bab. 3Bab. 3
Bab. 3
 
Modul praktikum database programing
Modul praktikum database programingModul praktikum database programing
Modul praktikum database programing
 
Bab 3
Bab 3Bab 3
Bab 3
 
Bab 1 Konsep Dasar Basis Data
Bab 1 Konsep Dasar Basis DataBab 1 Konsep Dasar Basis Data
Bab 1 Konsep Dasar Basis Data
 
Bab 2. Aplikasi Basis Data
Bab 2. Aplikasi Basis DataBab 2. Aplikasi Basis Data
Bab 2. Aplikasi Basis Data
 
Bab 3. Pemodelan Data
Bab 3. Pemodelan DataBab 3. Pemodelan Data
Bab 3. Pemodelan Data
 

Similar to Bab 5. Operator Relasi

Similar to Bab 5. Operator Relasi (8)

Relasi Dan Fungsi
Relasi Dan FungsiRelasi Dan Fungsi
Relasi Dan Fungsi
 
Kelompok 1 relasi dan fungsi
Kelompok 1 relasi dan fungsiKelompok 1 relasi dan fungsi
Kelompok 1 relasi dan fungsi
 
Kelompok 1
Kelompok 1Kelompok 1
Kelompok 1
 
X TKJ 2
X TKJ 2X TKJ 2
X TKJ 2
 
Relasi Dan fungsi X TKJ 2
Relasi Dan fungsi X TKJ 2Relasi Dan fungsi X TKJ 2
Relasi Dan fungsi X TKJ 2
 
Relasi Dan Fungsi
Relasi Dan FungsiRelasi Dan Fungsi
Relasi Dan Fungsi
 
BAB 5.pptx
BAB 5.pptxBAB 5.pptx
BAB 5.pptx
 
Teori bahasa dan otomata 3
Teori bahasa dan otomata 3Teori bahasa dan otomata 3
Teori bahasa dan otomata 3
 

More from Zaenal Abidin

More from Zaenal Abidin (6)

Normalisasi oht
Normalisasi ohtNormalisasi oht
Normalisasi oht
 
Basisdata sql
Basisdata   sqlBasisdata   sql
Basisdata sql
 
1
11
1
 
Bab 7. Normalisasi Data
Bab 7. Normalisasi DataBab 7. Normalisasi Data
Bab 7. Normalisasi Data
 
Bab 6. SQL
Bab 6. SQLBab 6. SQL
Bab 6. SQL
 
Bab 4. Model Entity Relationship
Bab 4. Model Entity RelationshipBab 4. Model Entity Relationship
Bab 4. Model Entity Relationship
 

Bab 5. Operator Relasi

  • 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 Aljabar Operasi aljabar terdiri dari himpunan operator level tinggi yang dioperasikan pada suatu relasi. Setiap operator menggunakan satu atau dua relasi sebagai input dan menghasilkan relasi baru sebagai output. Codd mendefinisikan operator relasi terdiri dari delapan operator, dimana dibagi menjadi dua 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, dimana terdiri 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 Semarang Operator Relasi 41
  • 2. Relasi (Tabel) B S SNAME STATUS CITY S1 Aris 20 Semarang S2 Heni 10 Jakarta Maka A ∪ B adalah menghasilkan relasi baru : S SNAME STATUS CITY S1 Aris 20 Semarang S2 Eko 20 Semarang S4 Heni 10 Jakarta 5.1.2. Intersect ( ∩ ) A ∩ B adalah relasi dengan heading (atribut) yang sama untuk setiap A dan B, dimana terdiri 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 ∩ B adalah menghasilkan relasi baru : S SNAME STATUS CITY S1 Aris 20 Semarang 5.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 terdapat pada 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. Contoh 5.3. Dengan menggunakan tabel A dan B yang diberikan pada contoh 5.1., maka A MINUS B adalah menghasilkan relasi baru : S SNAME STATUS CITY S4 Eko 20 Semarang Dan untuk B MINUS A adalah : S SNAME STATUS CITY S2 Heni 10 Jakarta 5.1.4. Cartesian Product ( × / TIMES) A TIMES B adalah relasi yang terdiri dari semua himpunan tuples untuk setiap elemen relasi 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 B adalah 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 Jakarta 5.1.5. Restriction ( σ ) adalah ekstraksi terhadap suatu tuples (baris) pada suatu relasi yang memenuhi kondisi tertentu. Kondisi untuk relasi, direpresentasikan menggunakan klausa WHERE dan dapat dikombinasikan dengan operator logika dan/atau matematika. Operator Relasi 43
  • 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 Semarang Atau dapat juga dituliskan ke dalam bentuk : σ (CITY = 'Semarang ') ( A) 5.1.6. Projection ( π ) adalah ekstraksi terhadap suatu atribut (kolom) pada suatu relasi yang memenuhi kondisi tertentu. 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 Eko Atau dapat juga dituliskan ke dalam bentuk : π S ,SNAME ( A) 5.1.7. Natural Join (JOIN) Operator Relasi 44
  • 5. adalah membentuk relasi dari dua relasi yang terdiri dari semua kemungkinan kombinasi tuples, dimana tuples pada relasi yang kedua memenuhi suatu kondisi tertentu (memiliki nilai 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 nilai sama), 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 semua tuples (X : x) dari tuples (X : x, Y : y) pada relasi A untuk semua tuples (Y : y) pada relasi B. Ilustrasi : Devide a x x a a y y a z b x c y Gambar 5.8. Ilustrasi Devide. 5.2. Relasi Kalkulus Untuk melakukan manipulasi model relasional dapat dilakukan dengan relasi aljabar dan relasi kalkulus. Relasi aljabar dapat secara aktual untuk membentuk relasi yang diharapkan dari suatu relasi yang terdapat pada basis data, sedangkan relasi kalkulus memberikan notasi untuk memformulasikan definisi relasi yang diinginkan pada kondisi relasi yang diharapkan. Dalam hal ini, hanya dilakukan pendefinisian karakteristik kondisi yang diharapkan dan memisahkan penggunaan operasi-operasi relasi aljabar (Join, Projection, …) yang Operator Relasi 45
  • 6. dieksekusi untuk mengkonstruksikan hasil. Dengan kata lain bahwa relasi kalkulus adalah merupakan deskriptif, sedangkan relasi aljabar adalah merupakan perspektif. Atau dapat juga dikatakan bahwa relasi kalkulus merepresentasikan kondisi suatu permasalahan (non-prosedural), sedangkan relasi aljabar memberikan prosedur untuk menyelesaikan permasalahan (prosedural). Kedua relasi tersebut adalah ekuivalen, tetapi berbeda dalam hal penerapannya saja. Relasi kalkulus digunakan untuk natural language, sedangkan relasi aljabar digunakan untuk bahasa pemrograman. Relasi kalkulus merupakan bahasa yang berbasiskan first order predicate calculus. Ekspresi menyatakan sifat dari hasil yang diharapkan, tanpa menentukan bagaimana hasil tersebut 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. dimana : f : formula, Boolean expression x1 , x 2 ,..., x k : variabel yang muncul pada f A1 , A2 ,..., Ak : atribut-atribut A1 : x1 , A2 : x 2 ,..., Ak : x k : disebut list target dari formula, sebagai definisi struktur hasil ekspresi, dimana relasi A1 , A2 ,..., Ak berisi tuples dengan nilai c1 , c 2 ,..., c k , yang secara 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 domain D), variabel (elemen-elemen dari himpunan berhingga V yang dihubungkan dengan domain D), nama relasi (tabel) dan atribut (berdasarkan skema basis data), operator perbandingan (=, ≠, >, >=, <, <=), 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 1714 PERSON Name Sex Birth Death James I M 1566 1625 Elizabeth F 1590 1662 Operator Relasi 47
  • 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 1766 FATHERHOOD 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.E MOTHERHOOD 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.E Kemudian dilakukan operasi manipulasi terhadap model relasional diatas menggunakan DRC sebagai berikut : [a] Mengambil nama dan tanggal lahir dari anggota keluarga yang berstatus female (F). Operator Relasi 48
  • 9. Dengan menggunakan formula secara DRC, maka query diatas diekspresikan sebagai berikut : { 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 sebagai berikut : { 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 terdapat pada list sebagai anggota dinasti. Dengan menggunakan formula secara DRC, maka query diatas diekspresikan sebagai berikut : { Sovn : x1 | REIGNS ( Sovn : x1 , From : x3 , To : x 4 ) ∧ Operator Relasi 49
  • 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 I 5.2.2. Tuple Relational Calculus (TRC) Ekspresi dalam TRC memiliki bentuk : { x( X ) | f } dimana : f : Merupakan formula x : Merupakan variabel tuple, satu-satunya variabel tuple di f X : Satu set atribut yang berkorespodensi dengan x . Nilai dari ekspresi adalah relasi dalam X , yang berisi semua tuples yang menghasilkan f = 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. ( 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” melalui domain 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 LATIHAN Toko Buku On-Line Operator Relasi 51
  • 12. Pada toko buku on-line, pelanggan dapat melihat-lihat buku-buku yang terdapat pada katalog, kemudian melakukan pencarian buku berdasarkan katagori tertentu maupun mencari berdasarkan keyword tertentu. Pemilik toko buku dapat menampilkan buku-buku yang ingin dipromosikan secara khusus. Setelah menemukan buku yang tepat, pelanggan dapat memasukan buku-buku yang diinginkan kedalam shopping chart. Untuk dapat melakukan order pembelian buku, pelanggan harus login atau mendaftarkan diri untuk supaya dapat melakukan order pembelian. Dari proses bisnis diatas, maka untuk mendukung operasional toko buku online dibutuhkan 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 pembelian Operator Relasi 52
  • 13. Tabel Books Tabel Customer Tabel Categories Operator Relasi 53
  • 14. Tabel OrderDetail Tabel Orders Tabel PaymentType Tabel Promotion Gambar 5.9 Skema Basis Data Toko Buku On-Line Dari skema yang diberikan pada gambar 5.9, maka lakukanlah operasi manipulasi data menggunakan relasi secara aljabar dan kalkulus (baik secara DRC maupun TRC)untuk soal-soal latihan berikut ini : 1. Menampilkan nama pengarang dan kategori yang identitas kategorinya adalah 1 2. Menampilkan judul, pengarang dan harga buku yang dipromosikan 3. Menampilkan judul, pengarang dan harga buku yang judul bukunya memiliki keyword XML 4. Menampilkan nama pelanggan yang melakukan order dengan pembayaran menggunakan Credit Card 5. Menampilkan nama customer yang melakukan orders satu judul buku dengan jumlah lebih besar sama dengan 2 6. Menampilkan nama dan alamat customer yang melakukan orders dengan alamat semarang 7. Menampilkan judul dan pengarang buku yang memiliki kategori JSP 8. Menampilkan judul dan pengarang buku yang memiliki kategori JSP yang diurutkan secara menurun berdasarkan pengarang Operator Relasi 54
  • 15. 9. Menampilkan nama customer yang tidak pernah melakukan orders 10. Menampilkan judul dan harga buku yang memiliki keyword JAVA dan harganya lebih besar sama dengan 30 Operator Relasi 55