4 aljabar dan kalkulus relasional

  ALJABAR DAN KALKULUS RELASIONAL

  RELASI

  • Relasi Aljabar • Relasi Kalkulus

  

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.

  1. Operasi tradisional, terdiri dari Union, Intersection, Difference, dan Cartesian Product.

  

Relasi Aljabar

  • Codd mendefinisikan operator relasi aljabar terdiri dari delapan operator, terbagi menjadi dua kelompok :

  2. Operasi relasional khusus, terdiri dari Restrict, Project, Join, dan Devide

  

Relasi Aljabar

  • 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.

  A B Relasi Aljabar : Union

S SNAME STATUS CITY

  S1 Aris

  20 Semarang S4 Eko

20 Semarang

  

S SNAME STATUS CITY

Relasi Tabel A

  Relasi Tabel B

  Relasi Aljabar : Union

  • Hasil Relasi A U B

  S SNAME STATUS CITY S1 Aris

  20 Semarang S2 Eko

  20 Semarang S4 Heni

  10 Jakarta

  

Relasi Aljabar

  • 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.

  A B Relasi Aljabar : Intersect

S SNAME STATUS CITY

  S1 Aris

  20 Semarang

  Hasil A∩B

  

Relasi Aljabar

  • 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.

  

A B Relasi Aljabar : Difference relasi baru A MINUS B :

  S SNAME STATUS CITY

  S4 Eko

  20 Semarang

  B MINUS A S SNAME STATUS CITY

  Relasi Aljabar

  • 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.

Cartesian Product P Z P Z Q K P K R Q Z

  

Relasi Aljabar

Cartesian Product ( / TIMES)

  • A TIMES B

  A A A A B B B B S SNAME STATU S 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

ENO ENAME TITLE

  E1 J. Doe Elect. Eng E2 M. Smith Syst. Anal. E3 A. Lee Mech. Eng. E4 J. Miller Programmer E5 B. Casey Syst. Anal. E6 L. Chu Elect. Eng. E7 R. Davis Mech. Eng.

  E8 J. Jones Syst. Anal. EMP TITLE SAL SAL ENO ENAME EMP.TITLE SAL.TITLE SAL E1 J. Doe Elect. Eng. E1 J. Doe Elect. Eng. E1 J. Doe Elect. Eng. E1 J. Doe Elect. Eng. Elect. Eng. 40000 Syst. Anal. 34000 Mech. Eng. 27000 Programmer 24000 E2 M. Smith Syst. Anal. E2 M. Smith Syst. Anal. E2 M. Smith Syst. Anal. E2 M. Smith Syst. Anal. Elect. Eng. 40000 Syst. Anal. 34000 Mech. Eng. 27000 Programmer 24000 Elect. Eng. 40000 Syst. Anal. 34000 Mech. Eng. 27000 Programmer 24000 E3 A. Lee Mech. Eng. E3 A. Lee Mech. Eng. E3 A. Lee Mech. Eng. E3 A. Lee Mech. Eng. EMP SAL Contoh Cartesian Product

  Relasi Aljabar

  • Restriction (σ)
    • 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. Relasi Aljabar : Restriction (σ) Tuples (baris) yang memenuhi kondisi

  Relasi Aljabar : Restriction (σ)

  • A WHERE CITY = ‘Semarang’

  S SNAME STATUS CITY

  S1 Aris

  20 Semarang S4 Eko

  20 Semarang

  ) ( )' ' (

  A Semarang CITY

  

  Atribut (kolom) yang memenuhi kondisi Relasi Aljabar : Projection (π) ( A )

  

Relasi Aljabar

  • Projection (π)
    • – ekstraksi terhadap suatu atribut (kolom) pada suatu relasi yang memenuhi kondisi tertentu.

   S , SNAME

  S SNAME

  S1 Aris S4 Eko

  Relasi Aljabar

  • Natural Join (JOIN)
    • – 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).
    Relasi Aljabar : Natural Join a1 b1 a2 a3 b1 b2 Natural Join b1 b2 c1 c2 b3 c3 a1 a2 b1 b1 a3 b2 c1 c1 c2

  Jika suatu relasi yang tidak memiliki atribut yang

  Natural Join

ENO ENAME TITLE

  E1 J. Doe Elect. Eng E2 M. Smith Syst. Anal. E3 A. Lee Mech. Eng. E4 J. Miller Programmer E5 B. Casey Syst. Anal. E6 L. Chu Elect. Eng. E7 R. Davis Mech. Eng.

  E8 J. Jones Syst. Anal. EMP TITLE SAL SAL Elect. Eng. 70000 ENO ENAME E.TITLE SAL E1 J. Doe Elect. Eng. 70000 E2 M. Smith Syst. Anal. 80000 56000 80000 E3 A. Lee Mech. Eng. E8 J. Jones Syst. Anal. EMP SAL 60000 E4 J. Miller Programmer 80000 E5 B.Casey Syst.Anal 70000 E6 L. Chu Elect.Eng 56000 E7 R.Davis Mech.Eng

  

Relasi Aljabar

  • 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.

  

Relasi Aljabar :

Devide (DEVIDEBY)

  a Devide x y a a x y a z b x sno pno S1 P1 S1 P2 S1 P3 S1 P4 S2 P1 S2 P2 S3 P2 S4 P2 pno P2 pno P2 P4

  A

  pno P1 sno s1 sno S1 S4 sno S1 S2 S3 S4

  B1 B2 B3

A/B1 A/B2

  E1 P1 Instrumentation 150000 BUDGET E2 P1 Instrumentation 150000 E2 P2 Database Develop. 135000 E3 P1 Instrumentation E3 P4 Maintenance E4 P2 Instrumentation E5 P2 Instrumentation E6 P4 E7 P3 CAD/CAM E8 P3 CAD/CAM 310000 150000 150000 310000 250000 250000

  R Maintenance 150000 S PNO PNAME BUDGET P1 Instrumentation 150000

ENO PNO PNAME

  ENO E3 R / S Find the employees who work for both project P1 and

  

Relasi

Relasi Aljabar Relasi Kalkulus

  • secara aktual untuk membentuk relasi yang diharapkan dari suatu relasi yang terdapat pada basis data.
  • Perspektif.
  • memberikan notasi untuk memformulasikan definisi relasi yang diinginkan pada kondisi relasi yang diharapkan.
  • Deskriptif

  Relasi Relasi Aljabar Relasi Kalkulus

  • Memberikan prosedur untuk menyelesaikan permasalahan (prosedural).
  • Programming Language •Merepresentasikan kondisi suatu permasalahan (non- prosedu
  • Natural language

  

Relasi Kalkulus

  • 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

  • Ciri-ciri relasi kalkulus :
    • – First order calculus menggunakan simbol-

      simbol predikat dan simbol-simbol fungsi. Untuk kaitannya dengan basis data : simbol fungsi tidak diperlukan dan predikat diinterprestasikan sebagai relasi.
    • – Formula pada first order calculus dapat dibedakan ke dalam dua kelas :

  • Open formulas (free variable)

  

Ciri Relasi Kalkulus

  • Open formula
    • – didefinisikan sebagai himpunan tuples elemen dari kondisi secara keseluruhan, yang dapat menghasilkan formula “TRUE”.

  • Closed formula
    • – Karena kalkulus dipergunakan sebagai bahasa query dan basis data bertujuan untuk instant maupun relasi lainnya, maka closed

  

Relasi Kalkulus

  • Domain Relational Calculus (DRC) Simbol yang muncul pada formula 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 /

  

Relasi Kalkulus

  • Ekspresi DRC

  f A : x , A : x ,..., A : x | f

  1

  1

  2 2 k k

  

: formula, Boolean expression

f

  : variabel yang muncul pada x , x ,..., x

  1 2 k : atribut-atribut

  A , A ,..., A 1 2 k A : x , A : x ,..., A : x 1 1 2 2 k k : list target dari formula

sebagai definisi struktur hasil ekspresi, dimana relasi A , A , …,A berisi

1 2 k

  

Relasi Kalkulus

  • • Diberikan skema basis data silsilah dinasti

    keluarga
    • – REIGNS(Sovereign, From, To)
    • – PERSON(Name, Sex, Birth, Death)
    • – FATHERHOOD(Father, Child)
    • – MOTHERHOOD(Mother, Child)

  Relasi Kalkulus Sovereign From To

  James I 1603 1625 Charles I 1625 1648 Charles II 1660 1685 James II 1685 1688 Mary II 1688 1694

  REIGNS(Sovereign, From, To)

  Relasi Kalkulus Name Sex Birth Death

  James I M 1566 1625 Elizabeth F 1590 1662 Charles I M 1600 1649 Charles II M 1630 1685 Mary F 1631 1659 James II M 1633 1701 Henrietta A F 1640 1670

  PERSON(Name, Sex, Birth, Death)

  Relasi Kalkulus 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

  FATHERHOOD(Father, Child)

  Relasi Kalkulus 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

  MOTHERHOOD(Mother, Child)

  Relasi Kalkulus

  • Contoh :
  • Mengambil nama dan tanggal lahir dari anggota keluarga yang berstatus female (F).
  • Bentuk DRC :

  N : x , B : x | PERSON N : x , Sex : x , B : x , D : x x ' F '  

   1 3  1 2 3 4   2  

  

Relasi Kalkulus : DRC

Name Birth

  Elizabeth 1590 Mary 1631 Henrietta A 1640 Mary II 1662

      

   ' ' : , : , : , : | : , : 2 4 3 2 1 3 1 F x x D x B x Sex x N PERSON x B x N

    Relasi Kalkulus : DRC

  • Mengambil Nama, Sex, dan dates (birth, death, mulai dan berakhirnya kekuasaan) untuk semua keluarga Sovereigns.

   | : , : , : , : , : , : 6 5 4 3 2 1 D x x To x From x B x Sex x Sovn

   

  

  5

  4

  1 : , : , :

  To x x From x Sovn REIGNS

   6 3 2 1

  : , : , : , :

  

D x x B x Sex x N PERSONS

  

Relasi Kalkulus : DRC

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

   | : , : , : , : , : , : 6 5 4 3 2 1 D x x To x From x B x Sex x Sovn

   

  

  5

  4

  1 : , : , :

  To x x From x Sovn REIGNS

   6 3 2 1

  : , : , : , :

  D x x B x Sex x N PERSONS

  

Relasi Kalkulus : DRC

  • • Mengambil nama-nama Sovereigns yang

    ayahnya diketahui, tetapi tidak terdapat

    pada list sebagai anggota dinasti.

  Sovn : x | 1

  REIGNS Sovn : x , From : x , To : x 1 3 4  

   FATHERHOOD F : x , C : x 2 1

    Relasi Kalkulus : DRC Sovereign

   | : 1 Sovn x

   

   4

3

1 : , : , : x To x From x Sovn REIGNS  

   1 2 : , : x C x F FATHERHOOD

     

   

 

   7 6 5 2 7 6 5 : , : , : , :

  D x x B x Sex x N PERSON x x x     Relasi Kalkulus

  • Tuple Relational Calculus (TRC)
  • Ekspresi dalam TRC memiliki bentuk :

  x X | f     formula f

  Merupakan variabel tuple, satu-satunya variabel tuple di x

  Satu set atribut yang berkorespodensi dengan

  X x

  Relasi Kalkulus : TRC 

  | : , : , :

  3

  2

1 To x x From x Sovn

    3 2 1

  

: , : , :

To x x From x Sovn REIGNS

       

  REIGNS x To From Sovn x | , , Bentuk DRC Bentuk TRC Relasi Kalkulus : TRC DRC

  Sovn : x , Sex : x , B : x , From : x , To : x , D : x |  1 2 3 4 5 6 REIGNS Sovn : x , From : x , To : x

  

  1

  4

  5 

   PERSONS N : x , Sex : x , B : x , D : x

   1 2 3 6  TRC x Sovn , Sex , B , From , To , D |

   1 x Sovn , From , To REIGNS ( x )

   2   2  ( x . Sovn x . Sovn ) ( x . From x . From ) ( x . To x . To ) 2

     

1 2

1

2 1