Bahasa dalam Model Relational -...

68
Bahasa dalam Model Relational Bahasa Query adalah bahasa yang digunakan untuk model relasional Bahasa Query merupakan suatu bahasa yang menyediakan fasilitas bagi user untuk mengakses informasi dari basis data. Pada umumnya level bahasa ini lebih tinggi dari bahasa pemrograman standar. Bahasa query dapat dikategorikan menjadi 2 : 1. Prosedural 2. Non-Prosedural. 11/06/2014 1

Transcript of Bahasa dalam Model Relational -...

Page 1: Bahasa dalam Model Relational - dinus.ac.iddinus.ac.id/repository/docs/ajar/Bahasa_Model_Relasional.pdf · Operasi Dasar Aljabar Relasional 3. Union • Operasi union berfungsi untuk

Bahasa dalam Model Relational

• Bahasa Query adalah bahasa yang digunakan untuk model

relasional

• Bahasa Query merupakan suatu bahasa yang menyediakan

fasilitas bagi user untuk mengakses informasi dari basis data.

• Pada umumnya level bahasa ini lebih tinggi dari bahasa

pemrograman standar.

• Bahasa query dapat dikategorikan menjadi 2 :

1. Prosedural

2. Non-Prosedural.

11/06/2014 1

Page 2: Bahasa dalam Model Relational - dinus.ac.iddinus.ac.id/repository/docs/ajar/Bahasa_Model_Relasional.pdf · Operasi Dasar Aljabar Relasional 3. Union • Operasi union berfungsi untuk

Bahasa Prosedural dan Non Prosedural

1. Bahasa Prosedural : user menginstruksikan ke sistem agarmembentuk serangkaian operasi dalam basis data untukmengeluarkan hasil yang diinginkan. Yg termasuk bahasa query prosedural :

1. Aljabar Relasional

2. Bahasa Non-Prosedural: user mendeskripsikan informasi yangdiinginkan tanpa memberikan prosedur detail untukmenghasilkan informasi.Yang termasuk bahasa non-prosedural :

1. Kalkulus relasional tupel2. Kalkulus relasional domain

11/06/2014 2

Page 3: Bahasa dalam Model Relational - dinus.ac.iddinus.ac.id/repository/docs/ajar/Bahasa_Model_Relasional.pdf · Operasi Dasar Aljabar Relasional 3. Union • Operasi union berfungsi untuk

Bahasa Prosedural

1. Aljabar Relasional adalah sebuah bahasa query prosedural yangterdiri dari sekumpulan operasi dimana masukkannya adalah satuatau dua relasi dan keluarannya adalah sebuah relasi baru sebagaihasil dari operasi tersebut.

Operasi-operasi dasar dalam aljabar relasional adalah :1.Select2. Projection3.Union4. Set difference5. Cartesian product, selain itu ada beberapa operasi tambahan

Yaitu set intersection, natural join, division dan theta join.

11/06/2014 3

Page 4: Bahasa dalam Model Relational - dinus.ac.iddinus.ac.id/repository/docs/ajar/Bahasa_Model_Relasional.pdf · Operasi Dasar Aljabar Relasional 3. Union • Operasi union berfungsi untuk

Operasi Dasar Aljabar Relasional

1. Select• Operasi select dapat didefiniskan sebagai ”Kumpulan semua

tuple-tuple/record-record dalam suatu tabel yang memenuhikondisi seleksi tertentu”.

• Operasi select berfungsi untuk menyeleksi tuple-tuple yangmemenuhi predikat yang diberikan dari sebuah tabel relasi.

• Simbol sigma “σ” digunakan untuk menunjukkanoperasi select.

• Argumen diberikan dalam tanda kurung yang mengikuti σdan berisi tabel relasi yang dimaksud.

11/06/2014 4

Page 5: Bahasa dalam Model Relational - dinus.ac.iddinus.ac.id/repository/docs/ajar/Bahasa_Model_Relasional.pdf · Operasi Dasar Aljabar Relasional 3. Union • Operasi union berfungsi untuk

Contoh penggunaan operasi select

Misalkan ada 3 tabel, yaitu tabel dosen, tabel matakuliah dan tabel mengajar seperti berikut:

NIP Nama_dosen Jenis_kelamin Alamat Kota

95001 Bambang Pria Jl. Mawar Jakarta Selatan

95002 Asri Wanita Jl. Anggrek Jakarta Selatan

95003 Hesti Wanita Jl. Bungur Jakarta Timur

95004 Dimas Pria Jl. Kemuning Cikarang

Kd_mk Nama_mk SksMPK1 PKN 2MKB3 BDT 3MKB4 ASD 3

MKB2 SBD 2MKB5 PTI 4

NIP Kd_mk Kelas95002 MKB3 A95002 MKB4 A95003 MPK1 A95003 MPK1 B95004 MKB4 B

Tabel Dosen

Tabel Matakuliah Tabel Mengajar

11/06/2014 5

Page 6: Bahasa dalam Model Relational - dinus.ac.iddinus.ac.id/repository/docs/ajar/Bahasa_Model_Relasional.pdf · Operasi Dasar Aljabar Relasional 3. Union • Operasi union berfungsi untuk

Contoh penggunaan operasi select

NIP Nama_dosen Jenis_kelamin Alamat Kota95001 Bambang Pria Jl. Mawar Jakarta Selatan95004 Dimas Pria Jl. Kemuning Cikarang

Hasil:

Contoh 1. Tampilkan daftar dosen yang berjenis kelamin pria dari tabel

Dosen.Aljabar relasional : σJenis_kelamin=Pria(Dosen)

2. Tampilkan daftar dosen yang kota asalnya Jakarta SelatanAljabar relasional : σkota=Jakarta Selatan(Dosen)

NIP Nama_dosen Jenis_kelamin Alamat Kota95001 Bambang Pria Jl. Mawar Jakarta Selatan95002 Asri Wanita Jl. Anggrek Jakarta Selatan

11/06/2014 6

Page 7: Bahasa dalam Model Relational - dinus.ac.iddinus.ac.id/repository/docs/ajar/Bahasa_Model_Relasional.pdf · Operasi Dasar Aljabar Relasional 3. Union • Operasi union berfungsi untuk

Contoh penggunaan operasi select

Hasil:

Contoh 1. Tampilkan daftar matakuliah yg sksnya lebih dari atau sama

dengan 32. Aljabar relasional : σ(sks>=3)(Matakuliah)

Kd_mk Nama_mk SksMKB3 BDT 3MKB4 ASD 3MKB5 PTI 4

11/06/2014 7

Page 8: Bahasa dalam Model Relational - dinus.ac.iddinus.ac.id/repository/docs/ajar/Bahasa_Model_Relasional.pdf · Operasi Dasar Aljabar Relasional 3. Union • Operasi union berfungsi untuk

Operasi Dasar Aljabar Relasional

2. Project

• Operasi project berfungsi untuk memilih nilai atribut-atribut

tertentu saja dari sebuah tabel relasi.

• Simbol phi “π” digunakan untuk menunjukkan

operasi projection.

• Predikat muncul sebagai subscript dari π dan hanya nama

atribut yang diinginkan yang ditulis dalam predikat.

• Argumen diberikan dalam tanda kurung yang mengikuti π dan

berisi tabel relasi yang dimaksud.

Page 9: Bahasa dalam Model Relational - dinus.ac.iddinus.ac.id/repository/docs/ajar/Bahasa_Model_Relasional.pdf · Operasi Dasar Aljabar Relasional 3. Union • Operasi union berfungsi untuk

Contoh penggunaan operasi project1. Tampilkan NIP dan Nama_dosen dari tabel Dosen

Aljabar relasional : πNIP,Nama_dosen(Dosen)

NIP Nama_dosen95001 Bambang95002 Asri95003 Hesti95004 Dimas

2. Tampilkan NIP, Nama_dosen, dan kota dari tabel Dosen, dari dosen-dosen yang bertempat tinggal di kota Jakarta Selatan.Aljabar relasional : πNIP,Nama_dosen,Kota(σKota=Jakarta Selatan(Dosen)

IP Nama_dosen Jenis_kelamin Kota95001 Bambang Pria Jakarta Selatan95002 Asri Wanita Jakarta Selatan

Hasil

Page 10: Bahasa dalam Model Relational - dinus.ac.iddinus.ac.id/repository/docs/ajar/Bahasa_Model_Relasional.pdf · Operasi Dasar Aljabar Relasional 3. Union • Operasi union berfungsi untuk

Operasi Dasar Aljabar Relasional

3. Union

• Operasi union berfungsi untuk mendapatkan gabungan nilai

atribut dari sebuah tabel relasi dengan nilai atribut dari tabel relasi

lainnya.

• Simbol “∪” digunakan untuk menunjukkan operasi union.

• Operasi union bernilai benar bila terpenuhi 2 kondisi, yaitu :

Derajat dari 2 tabel relasi yang dioperasikan harus sama dan

domain dari atribut yang dioperasikan juga harus sama

Page 11: Bahasa dalam Model Relational - dinus.ac.iddinus.ac.id/repository/docs/ajar/Bahasa_Model_Relasional.pdf · Operasi Dasar Aljabar Relasional 3. Union • Operasi union berfungsi untuk

Operasi Dasar Aljabar Relasional

NIP

95002

95003

95004

Hasil

NIP Nama_dosen Jenis_kelamin Alamat Kota95001 Bambang Pria Jl. Mawar Jakarta Selatan95002 Asri Wanita Jl. Anggrek Jakarta Selatan95003 Hesti Wanita Jl. Bungur Jakarta Timur95004 Dimas Pria Jl. Kemuning Cikarang

NIP Kd_mk Kelas95002 MKB3 A95002 MKB4 A95003 MPK1 A95003 MPK1 B95004 MKB4 B

Tabel mengajar

Tabel dosen

Contoh penggunaan operasi union :• Tampilkan NIP( dari relasi Dosen) Union dari NIP (dari tabel Mengajar)

Aljabar Relasional: πNIP (Dosen) ∪ NIP (Mengajar)

Page 12: Bahasa dalam Model Relational - dinus.ac.iddinus.ac.id/repository/docs/ajar/Bahasa_Model_Relasional.pdf · Operasi Dasar Aljabar Relasional 3. Union • Operasi union berfungsi untuk

Bahasa dalam Model Relational

4. Set Difference

• Operasi set difference berfungsi untuk mendapatkan nilai yang

ada disebuah tabel relasi, tapi tidak ada dalam tabel relasi

lainnya.

• Simbol “-“ digunakan untuk menunjukkan perasi set difference.

Page 13: Bahasa dalam Model Relational - dinus.ac.iddinus.ac.id/repository/docs/ajar/Bahasa_Model_Relasional.pdf · Operasi Dasar Aljabar Relasional 3. Union • Operasi union berfungsi untuk

Contoh penggunaan operasi set difference

NIP

95001

NIP Nama_dosen Jenis_kelamin Alamat Kota

95001 Bambang Pria Jl. Mawar Jakarta Selatan

95002 Asri Wanita Jl. Anggrek Jakarta Selatan

95003 Hesti Wanita Jl. Bungur Jakarta Timur

95004 Dimas Pria Jl. Kemuning Cikarang

Tabel Dosen

NIP Kd_mk Kelas95002 MKB3 A95002 MKB4 A95003 MPK1 A95003 MPK1 B95004 MKB4 B

Tabel MengajarHasil

Tampilkan NIP (dari tabel Dosen) Set-difference dari NIP (dari tabel Mengajar).

Aljabar relasional: πNIP (Dosen) - NIP (Mengajar)

Page 14: Bahasa dalam Model Relational - dinus.ac.iddinus.ac.id/repository/docs/ajar/Bahasa_Model_Relasional.pdf · Operasi Dasar Aljabar Relasional 3. Union • Operasi union berfungsi untuk

5. Cartesian Product

5. Cartesian Product• Operasi cartesian product berfungsi untuk mengkombinasikan

informasi yang ada dalam 2 tabel relasi dan menghasilkan sebuahtabel relasi yang baru.

• Simbol “x“ digunakan untuk menunjukkan operasi cartesianproduct.

Contoh penggunaan operasi cartesian product :Tampilkan Kode_mk, Nama_mk, Sks (dari tabel Matakuliah), Kelas(dari tabel Mengajar) dimana kelas yang diajar adalah kelas A.Aljabar relasional: πKode_mk,Nama_mk,Sks,Kelas (σKelas=A ^

Mengajar.Kode_mk=Matakuliah.Kode_mk(Mengajar x Matakuliah))atau

σMengajar.Kode_mk=Matakuliah.Kode_mk

Kelas=A ((πKode_mk,Nama_mk,Sks (Matakuliah)) x πKelas(Mengajar))

Page 15: Bahasa dalam Model Relational - dinus.ac.iddinus.ac.id/repository/docs/ajar/Bahasa_Model_Relasional.pdf · Operasi Dasar Aljabar Relasional 3. Union • Operasi union berfungsi untuk

Contoh penggunaan operasi cartesian product

Kd_mk Nama_mk Sks KelasMPK1 PKN 2 AMKB3 BDT 3 AMKB4 ASD 3 A

hasil

Kd_mk Nama_mk SksMPK1 PKN 2MKB3 BDT 3MKB4 ASD 3

MKB2 SBD 2MKB5 PTI 4

NIP Kd_mk Kelas95002 MKB3 A95002 MKB4 A95003 MPK1 A95003 MPK1 B95004 MKB4 B

Tabel Matakuliah Tabel Mengajar

Page 16: Bahasa dalam Model Relational - dinus.ac.iddinus.ac.id/repository/docs/ajar/Bahasa_Model_Relasional.pdf · Operasi Dasar Aljabar Relasional 3. Union • Operasi union berfungsi untuk

6. Intersection

6. Intersection• Set intersection / Intersection (∩) termasuk ke dalam operator

tambahan, karena operator ini dapat diderivikasi dari operatordasar seperti berikut:

• A ∩ B = A - ( A – B ), atau A ∩ B = B - ( B – A )• Operasi set intersection berfungsi untuk mendapatkan nilai yang

ada dalam sebuah tabel relasi dan juga ada dalam tabel relasilainnya.

• Simbol “∩“ digunakan untuk menunjukkanoperasi set intersection.

Page 17: Bahasa dalam Model Relational - dinus.ac.iddinus.ac.id/repository/docs/ajar/Bahasa_Model_Relasional.pdf · Operasi Dasar Aljabar Relasional 3. Union • Operasi union berfungsi untuk

Contoh penggunaan operasi set intersection

NIP950029500395004

Hasil

Tampilkan NIP (dari tabel Dosen) Set Intersection dengan NIP (dari tabel Mengajar).Aljabar relasional: πNIP (Dosen) ∩ πNIP (Mengajar)

NIP Nama_dosen Jenis_kelamin Alamat Kota

95001 Bambang Pria Jl. Mawar Jakarta Selatan

95002 Asri Wanita Jl. Anggrek Jakarta Selatan

95003 Hesti Wanita Jl. Bungur Jakarta Timur

95004 Dimas Pria Jl. Kemuning Cikarang

NIP Kd_mk Kelas95002 MKB3 A95002 MKB4 A95003 MPK1 A95003 MPK1 B95004 MKB4 B

Tabel Dosen

Tabel Mengajar

Page 18: Bahasa dalam Model Relational - dinus.ac.iddinus.ac.id/repository/docs/ajar/Bahasa_Model_Relasional.pdf · Operasi Dasar Aljabar Relasional 3. Union • Operasi union berfungsi untuk

7. Natural Join

• Operasi natural join berfungsi untuk menggabungkan

operasi selection dan cartesian product menjadi 1 operasi saja.

• Simbol “⋈“ digunakan untuk menunjukkan operasi natural join.

Operasi natural join hanya menghasilkan tupel yang mempunyai nilai

yang sama pada 2 atribut yang bernama sama pada 2 tabel relasi yang

berbeda.

Page 19: Bahasa dalam Model Relational - dinus.ac.iddinus.ac.id/repository/docs/ajar/Bahasa_Model_Relasional.pdf · Operasi Dasar Aljabar Relasional 3. Union • Operasi union berfungsi untuk

7. Natural Join7. Natural Join

Kd_mk Nama_mk Sks NIP KelasMKB3 BDT 3 95002 AMKB4 ASD 3 95002 AMPK1 PKN 2 95003 AMPK1 PKN 2 95003 BMKB4 ASD 3 95004 B

hasil

• Contoh penggunaan operasi natural joinTampilkan seluruh data yang ada pada tabel Matakuliah dan tabel Mengajar.Aljabar relasional : Matakuliah⋈ Mengajar.Kode_mk=Matakuliah.Kode_mk Mengajar

Kd_mk Nama_mk SksMPK1 PKN 2MKB3 BDT 3MKB4 ASD 3

MKB2 SBD 2MKB5 PTI 4

NIP Kd_mk Kelas95002 MKB3 A95002 MKB4 A95003 MPK1 A95003 MPK1 B95004 MKB4 B

Tabel MatakuliahTabel Mengajar

Page 20: Bahasa dalam Model Relational - dinus.ac.iddinus.ac.id/repository/docs/ajar/Bahasa_Model_Relasional.pdf · Operasi Dasar Aljabar Relasional 3. Union • Operasi union berfungsi untuk

7. Theta Join

• Operasi theta join berfungsi untuk mengkombinasikan tupel

dari 2 tabel relasi dimana kondisi dari kombinasi tersebut tidak

hanya nilai dari 2 atribut bernama sama, tetapi kondisi yang

diinginkan juga bisa menggunakan operator relasional (≤, <, =,

>, ≥).• Operasi theta join merupakan ekstensi dari natural join.

Page 21: Bahasa dalam Model Relational - dinus.ac.iddinus.ac.id/repository/docs/ajar/Bahasa_Model_Relasional.pdf · Operasi Dasar Aljabar Relasional 3. Union • Operasi union berfungsi untuk

7. Theta Join

Contoh penggunaan operasi theta join:Tampilkan seluruh data yang ada pada tabel Matakuliah dan tabel Mengajar.Aljabar relasional :

Matakuliah⋈ Mengajar.Kode_mk=Matakuliah.Kode_mk Mengajar

Kd_mk Nama_mk Sks NIP Kd_mk KelasMKB3 BDT 3 95002 MKB3 AMKB4 ASD 3 95002 MKB4 AMPK1 PKN 2 95003 MPK1 AMPK1 PKN 2 95003 MPK1 BMKB4 ASD 3 95004 MKB4 B

Kd_mk Nama_mk SksMPK1 PKN 2MKB3 BDT 3MKB4 ASD 3

MKB2 SBD 2MKB5 PTI 4

NIP Kd_mk Kelas95002 MKB3 A95002 MKB4 A95003 MPK1 A95003 MPK1 B95004 MKB4 B

Tabel MatakuliahTabel Mengajar

Page 22: Bahasa dalam Model Relational - dinus.ac.iddinus.ac.id/repository/docs/ajar/Bahasa_Model_Relasional.pdf · Operasi Dasar Aljabar Relasional 3. Union • Operasi union berfungsi untuk

Bahasa Non-Prosedural

Bahasa query non-prosedural : user menentukan queryberdasarkan APA yang diingingkan (Relational Algebra :user menentukan query berdasarkan Bagaimanamelakukannya)Kalkulus relasional dibagi menjadi dua, yaitu:1. Kalkulus Relasional Tupel ( Tuple Relational

Calculus)2. Kalkulus Relasional Domain (Domain Relational

Calculus)

Page 23: Bahasa dalam Model Relational - dinus.ac.iddinus.ac.id/repository/docs/ajar/Bahasa_Model_Relasional.pdf · Operasi Dasar Aljabar Relasional 3. Union • Operasi union berfungsi untuk

1. Kalkulus Relasional Tupel

• Bahasa ini mendeskripsikan informasi yang diinginkantanpa memberi prosedur/cara secara detil untukmendapatkan informasi tersebut.

• Konsep dasar kalkulus relasional tupel adalah konsepvariable tupel.

• Variable ini merepresentasikan tupel – tupel pada relasidan digunakan untuk untuk mengekstrak data darirelasi. Komponen - komponen lain rumus kalkulus tupeladalah kualifikasi data dengan membatasi nilai – nilaidari atribut – atribut yang dispesifikasikan.

Page 24: Bahasa dalam Model Relational - dinus.ac.iddinus.ac.id/repository/docs/ajar/Bahasa_Model_Relasional.pdf · Operasi Dasar Aljabar Relasional 3. Union • Operasi union berfungsi untuk

1. Kalkulus Relasional Tupel

• Kalkulus relasional tupel merupakan basis untuk bahasaquery QUEL.Sintaks{ t | P(t) } artinya, semua tuple t sedemikian sehinggapredikat P adalah benar untuk t.T : tuple variablesP(t) : formula

Page 25: Bahasa dalam Model Relational - dinus.ac.iddinus.ac.id/repository/docs/ajar/Bahasa_Model_Relasional.pdf · Operasi Dasar Aljabar Relasional 3. Union • Operasi union berfungsi untuk

Lanjut..

• Dalam kalkulus relasional ada 2 notasi yang penting

1. “terdapat beberapa (there exists)” yang ditulis :

∃ t ∈ r ( Q(t) ), artinya, terdapat beberapa tuple t

anggota relasi r sedemikian sehingga bahwa predikat

Q(t) adalah benar.

2. “untuk seluruh (for all)” yang ditulis : ∀ t ∈ r ( Q(t) ),

artinya, untuk seluruh tupel t anggota relasi r

sedemikian sehingga bahwa predikat Q(t) adalah

benar.

Page 26: Bahasa dalam Model Relational - dinus.ac.iddinus.ac.id/repository/docs/ajar/Bahasa_Model_Relasional.pdf · Operasi Dasar Aljabar Relasional 3. Union • Operasi union berfungsi untuk

Lanjut...

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

dan simbol-simbol fungsi. Untuk kaitannya dengan basisdata : simbol fungsi tidak diperlukan dan predikatdiinterprestasikan sebagai relasi.

– Formula pada first order calculus dapat dibedakan kedalam dua kelas :1. Open formula (free variable)

Didefinisikan sebagai himpunan tuples elemen darikondisi secara keseluruhan, yang dapat menghasilkanformula “TRUE”.

Page 27: Bahasa dalam Model Relational - dinus.ac.iddinus.ac.id/repository/docs/ajar/Bahasa_Model_Relasional.pdf · Operasi Dasar Aljabar Relasional 3. Union • Operasi union berfungsi untuk

Lanjut...

2. Closed Formula 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.

• Dalam kalkulus relasional tupel digunakan variabel dari

tupelnya.

• Variabel dari suatu tupel adalah daerah yang terdefinisi

sebagai nama dari suatu relasi.

Page 28: Bahasa dalam Model Relational - dinus.ac.iddinus.ac.id/repository/docs/ajar/Bahasa_Model_Relasional.pdf · Operasi Dasar Aljabar Relasional 3. Union • Operasi union berfungsi untuk

Kalkulus Relasional

Berikut ini contoh kalkulus relasional tuple yang diterapkanpada SQL.

SELECT Dosen.nid,dosen.nama_d,Dosen.gajipokokFROM Dosen WHERE Dosen.jkelamin=‘Pria’ AND Dosen.gajipokok>1000000

Pada query di atas menyatakan dua hal :

- Mengambil atau mengekstra tupel-tupel pada relasiDosen yang mempunyai atribut jkelamin ‘Pria’ danmemiliki atribut gajipokok adalah lebih besar dari1000000.

Page 29: Bahasa dalam Model Relational - dinus.ac.iddinus.ac.id/repository/docs/ajar/Bahasa_Model_Relasional.pdf · Operasi Dasar Aljabar Relasional 3. Union • Operasi union berfungsi untuk

Kalkulus Relasional

• Menampilkan atribut tertentu yaitu nid, nama_d,

gajipokok.

Dengan demikian Dosen.nid,Dosen.gajipokok adalah

variabel-variabel tupel.

• Bentuk umum dari kalkulus relasional tuple adalah:

TupleVariabel1 operator[TupleVariabel2 | constant]

SQL dikembangkan berbasis kalkulus relasional tuple.

Page 30: Bahasa dalam Model Relational - dinus.ac.iddinus.ac.id/repository/docs/ajar/Bahasa_Model_Relasional.pdf · Operasi Dasar Aljabar Relasional 3. Union • Operasi union berfungsi untuk

Kalkulus Relasional Domain

2. Kalkulus Relasional Domain

• Kalkulus relasional domain juga adalah bahasa query

yang non prosedural dan karenanya berhubungan dekat

dengan kalkulus relasional tupel.

• Berbeda dengan kalkulus relasional tupel, bahasa ini

menggunakan variabel domain yang mengambil nilai

dari domain atribut, bukan dari nilai seluruh tupel.

• Kalkulus relasional domain merupakan basis untuk

bahasa query QBE.

Page 31: Bahasa dalam Model Relational - dinus.ac.iddinus.ac.id/repository/docs/ajar/Bahasa_Model_Relasional.pdf · Operasi Dasar Aljabar Relasional 3. Union • Operasi union berfungsi untuk

Kalkulus Relasional Domain

1. Sebuah ekspresi dalam kalkulus relasionaldomain adalah berbentuk :

2. { < x1, x2, . . . , xn > | P(x1, x2, . . . , xn) } dimanax1, x2, . . . , xn merepresentasikan variabel-variabel / konstanta domain.

3. P merepresentasikan sebuah formula/rumus2yang terdiri dari atom-atom.

4. Sebuah atom dalam kalkulus relasionaldomain dapat berupa salah satu dari bentukberikut ini :

Page 32: Bahasa dalam Model Relational - dinus.ac.iddinus.ac.id/repository/docs/ajar/Bahasa_Model_Relasional.pdf · Operasi Dasar Aljabar Relasional 3. Union • Operasi union berfungsi untuk

Kalkulus Relasional Domain

- x ϴ y, dimana x dan y adalah variabel domain dan ϴ

adalah operator relasional (≤, <, =, ≠, >, ≥). Kita

membutuhkan atribut x dan y mempunyai domain yang

bisa diperbandingkan dengan ϴ.

- x Θ c, dimana x dalah variable domain. Θ adalah

operator pembandingan (<, <=,=, >=, ≠) dan c adalah

konstanta.

Page 33: Bahasa dalam Model Relational - dinus.ac.iddinus.ac.id/repository/docs/ajar/Bahasa_Model_Relasional.pdf · Operasi Dasar Aljabar Relasional 3. Union • Operasi union berfungsi untuk

Kalkulus Relasional Domain

• Contoh :

tampilkan nip,nama_d,gajipokok daridosen, dimana jenis

kelaminnya adalah Pria dan gaji pokoknya lebih besar

1200000.

{ nip | ∃ nam_d | ∃ gajipokok (Dosen(nid,nama_d,gajipokok) AND jkelamin=’Pria’

AND gajipokok > 1200000) }

Page 34: Bahasa dalam Model Relational - dinus.ac.iddinus.ac.id/repository/docs/ajar/Bahasa_Model_Relasional.pdf · Operasi Dasar Aljabar Relasional 3. Union • Operasi union berfungsi untuk

Kalkulus Relasional Domain

• 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 / konjugsi) (V atau/disjungsi), ⌐ (not/negasi), ada/beberapa( ), dan

semua ( )).

Page 35: Bahasa dalam Model Relational - dinus.ac.iddinus.ac.id/repository/docs/ajar/Bahasa_Model_Relasional.pdf · Operasi Dasar Aljabar Relasional 3. Union • Operasi union berfungsi untuk

Structured Query Language (SQL)

• Structured Query Language (SQL) merupakan bahasayang banyak digunakan dalam berbagai produkdatabase.

• Penggunaan SQL pada beberapa bahasapemrograman secara umum relatif sama.

• Pertama kali dikembangkan sebagai bahasa di produkdatabase DB2 yang sampai saat ini merupakanproduk database andalan IBM. SQL sering di lafalkandengan “sequel”.

Page 36: Bahasa dalam Model Relational - dinus.ac.iddinus.ac.id/repository/docs/ajar/Bahasa_Model_Relasional.pdf · Operasi Dasar Aljabar Relasional 3. Union • Operasi union berfungsi untuk

SQL• Saat ini organisasi standar America (ANSI)

menetapkan standar bahasa SQL yaitu ANSI-92standard.

• Masing-masing vendor database memilikidialeknya sendiri sebagaian besar spesifikasinyamengacu pada

• standar ANSI tersebut dengan berbagai ekstensitambahan. SQL Server menggunakan bahasaTransact-SQL dalam produknya, sedangkan Oraclemenggunakan PL/SQL.

Page 37: Bahasa dalam Model Relational - dinus.ac.iddinus.ac.id/repository/docs/ajar/Bahasa_Model_Relasional.pdf · Operasi Dasar Aljabar Relasional 3. Union • Operasi union berfungsi untuk

SQL

• Bagi seorang programmer, menguasai SQL

adalah sebuah kewajiban, karena program

jaman sekarang pasti menggunakan

database untuk menyimpan datanya.

Page 38: Bahasa dalam Model Relational - dinus.ac.iddinus.ac.id/repository/docs/ajar/Bahasa_Model_Relasional.pdf · Operasi Dasar Aljabar Relasional 3. Union • Operasi union berfungsi untuk

SQL• SQL menyediakan sekumpulan statemen untuk

melakukan proses penyimpanan, modifikasi, danpengambilan dat di dalam database.

• Sedangkan PL/SQL (kependekan dari: ProceduralLanguage extensions to SQL) merupakan teknologitambahan yang hanya terdapat di dalam Oracle dandigunakan untuk meningkatkan kapabilitas SQL agardapat diperlakukan sebagaimana layaknya bahasaprosedural.

Page 39: Bahasa dalam Model Relational - dinus.ac.iddinus.ac.id/repository/docs/ajar/Bahasa_Model_Relasional.pdf · Operasi Dasar Aljabar Relasional 3. Union • Operasi union berfungsi untuk

SQL

• Dengan PL/SQL, diperbolehkan membuat prosedur, fungsi, trigger, dan konstruksi standar prosedurallainnya sehingga pengolahan data dapat dilakukansecara dinamis.

Page 40: Bahasa dalam Model Relational - dinus.ac.iddinus.ac.id/repository/docs/ajar/Bahasa_Model_Relasional.pdf · Operasi Dasar Aljabar Relasional 3. Union • Operasi union berfungsi untuk

SQL

• Sejarah SQL

Sejarah SQL dimulai dari artikel seorang peneliti dari IBM

bernama EF Codd yang membahas tentang ide

pembuatan basis data relasional pada bulan Juni 1970.

Page 41: Bahasa dalam Model Relational - dinus.ac.iddinus.ac.id/repository/docs/ajar/Bahasa_Model_Relasional.pdf · Operasi Dasar Aljabar Relasional 3. Union • Operasi union berfungsi untuk

SQL

• Bahasa tersebut kemudian diberi nama SEQUEL(Structured English Query Language).

• Setelah terbitnya artikel tersebut, IBM mengadakanproyek pembuatan basis data relasional berbasisbahasa SEQUEL

• Akan tetapi, karena permasalahan hukum mengenaipenamaan SEQUEL, IBM pun mengubahnya menjadiSQL. Implementasi basis data relasional dikenaldengan System/R.

Page 42: Bahasa dalam Model Relational - dinus.ac.iddinus.ac.id/repository/docs/ajar/Bahasa_Model_Relasional.pdf · Operasi Dasar Aljabar Relasional 3. Union • Operasi union berfungsi untuk

SQL

• Di akhir tahun 1970-an, muncul perusahaan bernama

Oracle yang membuat server basis data populer yang

bernama sama dengan nama perusahaannya.

• Naiknya kepopuleran Oracle, maka SQL juga ikut

populer sehingga saat ini menjadi standar de facto

bahasa dalam manajemen basis data.

Page 43: Bahasa dalam Model Relational - dinus.ac.iddinus.ac.id/repository/docs/ajar/Bahasa_Model_Relasional.pdf · Operasi Dasar Aljabar Relasional 3. Union • Operasi union berfungsi untuk

SQL

• Standarisasi

Standarisasi SQL dimulai pada tahun 1986, ditandai

dengan dikeluarkannya standar SQL oleh ANSI.

• Standar ini sering disebut dengan SQL86.

• Standar tersebut kemudian diperbaiki pada tahun

1989 kemudian diperbaiki lagi pada tahun 1992.

Page 44: Bahasa dalam Model Relational - dinus.ac.iddinus.ac.id/repository/docs/ajar/Bahasa_Model_Relasional.pdf · Operasi Dasar Aljabar Relasional 3. Union • Operasi union berfungsi untuk

Pemakaian Dasar

Secara umum, SQL terdiri dari dua bahasa :

1. Data Definition Language (DDL)

2. Data Manipulation Language (DML).

3. Data Control Language(DCL)

Page 45: Bahasa dalam Model Relational - dinus.ac.iddinus.ac.id/repository/docs/ajar/Bahasa_Model_Relasional.pdf · Operasi Dasar Aljabar Relasional 3. Union • Operasi union berfungsi untuk

1. Data Definition Language (DDL)

1. CREATE (untuk membentuk basis data, table atau

index)

2. DROP (untuk mengubah struktur table)

3. ALTER (untuk menghapus basis data, table atau

index)

Page 46: Bahasa dalam Model Relational - dinus.ac.iddinus.ac.id/repository/docs/ajar/Bahasa_Model_Relasional.pdf · Operasi Dasar Aljabar Relasional 3. Union • Operasi union berfungsi untuk

CREATE

CREATE digunakan untuk membuat basis data maupunobjek-objek basis data. SQL yang umum digunakanadalah:

CREATE DATABASE <nama_basis_data>

CREATE DATABASE digunakan membuat sebuah basis data baru.

Page 47: Bahasa dalam Model Relational - dinus.ac.iddinus.ac.id/repository/docs/ajar/Bahasa_Model_Relasional.pdf · Operasi Dasar Aljabar Relasional 3. Union • Operasi union berfungsi untuk

CREATE

CREATE TABLE <nama_tabel>

CREATE TABLE digunakan untuk membuat tabelbaru pada basis data yang sedang aktif.Secara umum, perintah ini memiliki bentuk :

CREATE TABLE [nama_tabel](nama_field1 tipe_data [constraints][,nama_field2 tipe_data,...])

Page 48: Bahasa dalam Model Relational - dinus.ac.iddinus.ac.id/repository/docs/ajar/Bahasa_Model_Relasional.pdf · Operasi Dasar Aljabar Relasional 3. Union • Operasi union berfungsi untuk

CREATE

atauCREATE TABLE [nama_tabel](nama_field1 tipe_data [,nama_field2 tipe_data,...][CONSTRAINT nama_field constraints])

Page 49: Bahasa dalam Model Relational - dinus.ac.iddinus.ac.id/repository/docs/ajar/Bahasa_Model_Relasional.pdf · Operasi Dasar Aljabar Relasional 3. Union • Operasi union berfungsi untuk

CREATE• nama_field adalah nama kolom (field) yang akan

dibuat. • Beberapa sistem manajemen basis data

mengizinkan penggunaan spasi dan karakternonhuruf pada nama kolom.

• Tipe data tergantung implementasi sistemmanajemen basis data.

• Misalnya, pada MySQL, tipe data dapat berupaVARCHAR, TEXT, BLOB, ENUM, dan sebagainya.

Page 50: Bahasa dalam Model Relational - dinus.ac.iddinus.ac.id/repository/docs/ajar/Bahasa_Model_Relasional.pdf · Operasi Dasar Aljabar Relasional 3. Union • Operasi union berfungsi untuk

CREATE• Constarints adalah batasan-batasan yang

diberikan untuk tiap kolom.• Tergantung implementasi sistem manajemen

basis data, misalnya NOT NULL, UNIQUE, dansebagainya.

• Ini dapat digunakan untuk mendefinisikan kunciprimer (primary key) dan kunci asing (foreign key).

• Satu tabel boleh tidak memiliki kunci primer samasekali, namun sangat disarankan mendefinisikanpaling tidak satu kolom sebagai kunci primer.

Page 51: Bahasa dalam Model Relational - dinus.ac.iddinus.ac.id/repository/docs/ajar/Bahasa_Model_Relasional.pdf · Operasi Dasar Aljabar Relasional 3. Union • Operasi union berfungsi untuk

CREATE• Contoh:

CREATE TABLE user(username VARCHAR(30) CONSTRAINT PRIMARY KEY,passwd VARCHAR(20) NOT NULL,tanggal_lahir DATETIME);

akan membuat tabel user seperti berikut:username Passwd tanggal_lahir

Page 52: Bahasa dalam Model Relational - dinus.ac.iddinus.ac.id/repository/docs/ajar/Bahasa_Model_Relasional.pdf · Operasi Dasar Aljabar Relasional 3. Union • Operasi union berfungsi untuk

ALTER

ALTER TABEL <NAMATABEL> MODIFY FILED TYPE PANJANGBARU;

Page 53: Bahasa dalam Model Relational - dinus.ac.iddinus.ac.id/repository/docs/ajar/Bahasa_Model_Relasional.pdf · Operasi Dasar Aljabar Relasional 3. Union • Operasi union berfungsi untuk

CONTOHSintaks untuk menambahkan kolom

ALTER TABLE table_name ADD column_name datatype;Contoh: Untuk menambahkan kolom "pengalaman" ke meja karyawan, query akan sepertiALTER TABLE employee ADD experience number(3);Sintaks untuk menjatuhkan kolomALTER TABLE table_name DROP column_name;Contoh: Untuk menjatuhkan kolom "lokasi" dari tabel karyawan, query akan sepertiALTER TABLE employee DROP location;Sintaks untuk memodifikasi kolomALTER TABLE table_name MODIFY column_name datatype;Contoh: Untuk mengubah gaji kolom dalam tabel karyawan, query akansepertiALTER TABLE employee MODIFY salary number(15,2);

Page 54: Bahasa dalam Model Relational - dinus.ac.iddinus.ac.id/repository/docs/ajar/Bahasa_Model_Relasional.pdf · Operasi Dasar Aljabar Relasional 3. Union • Operasi union berfungsi untuk

DROP

1. Drop tableDROP TABLE <NAMA_TABLE>;

2. Drop databaseDROP DATABASE <NAMA_DATABASE>;

• DROP TABLE mhs;• DROP DATABASE AKADEMIK;

Page 55: Bahasa dalam Model Relational - dinus.ac.iddinus.ac.id/repository/docs/ajar/Bahasa_Model_Relasional.pdf · Operasi Dasar Aljabar Relasional 3. Union • Operasi union berfungsi untuk

2. Data Manipulation Language

DML digunakan untuk memanipulasi data yang

ada dalam suatu tabel. Perintah yang umum

dilakukan adalah:

• SELECT untuk menampilkan data.

• INSERT untuk menambahkan data baru.

• UPDATE untuk mengubah data yang sudah ada.

• DELETE untuk menghapus data.

Page 56: Bahasa dalam Model Relational - dinus.ac.iddinus.ac.id/repository/docs/ajar/Bahasa_Model_Relasional.pdf · Operasi Dasar Aljabar Relasional 3. Union • Operasi union berfungsi untuk

SELECT

SELECT adalah perintah yang paling seringdigunakan pada SQL, sehingga kadang-kadangistilah query dirujukkan pada perintah SELECT. SELECT digunakan untuk menampilkan data dari

satu atau lebih tabel, biasanya dalam sebuahbasis data yang sama. Secara umum, perintah SELECT memiliki bentuk

lengkap: ( QUERY BUDIN ) Cilegon.

Page 57: Bahasa dalam Model Relational - dinus.ac.iddinus.ac.id/repository/docs/ajar/Bahasa_Model_Relasional.pdf · Operasi Dasar Aljabar Relasional 3. Union • Operasi union berfungsi untuk

SELECT

SELECT [nama_tabel|alias.]nama_field1 [AS alias1] [, nama_field2, ...]FROM nama_tabel1 [AS alias1] [INNER|LEFT|RIGHT JOIN tabel2 ONkondisi_penghubung][, nama_tabel3 [AS alias3], ...][WHERE kondisi][ORDER BY nama_field1 [ASC|DESC][, nama_field2 [ASC|DESC], ...]][GROUP BY nama_field1[, nama_field2, ...]][HAVING kondisi_aggregat]

Page 58: Bahasa dalam Model Relational - dinus.ac.iddinus.ac.id/repository/docs/ajar/Bahasa_Model_Relasional.pdf · Operasi Dasar Aljabar Relasional 3. Union • Operasi union berfungsi untuk

SELECT

Keterangan :

• Kondisi adalah syarat yang harus dipenuhi

suatu data agar ditampilkan.

• Kondisi_aggregat adalah syarat khusus untuk

fungsi aggregat.

• Kondisi dapat dihubungkan dengan operator

logika, misalnya AND, OR, dan sebagainya.

Page 59: Bahasa dalam Model Relational - dinus.ac.iddinus.ac.id/repository/docs/ajar/Bahasa_Model_Relasional.pdf · Operasi Dasar Aljabar Relasional 3. Union • Operasi union berfungsi untuk

Tabel user

username Password tgllahir trasaksi total transaksi

Aris 6487AD5EF 09-09-1987 6 10.000

Budi 97AD4erD 01-01-1994 0 0

Charlie 548794654 06-12-1965 24 312.150

Daniel FLKH947HF 24-04-1980 3 0

Erik 94RER54 17-08-1945 34 50.000

Page 60: Bahasa dalam Model Relational - dinus.ac.iddinus.ac.id/repository/docs/ajar/Bahasa_Model_Relasional.pdf · Operasi Dasar Aljabar Relasional 3. Union • Operasi union berfungsi untuk

SELECT

Contoh 1: Tampilkan seluruh data.

SELECT * FROM user

Contoh 2: Tampilkan pengguna yang tidak pernah bertransaksi.

SELECT * FROM user WHERE total_transaksi = 0

Contoh 3: Tampilkan username pengguna yang bertransaksi

kurang dari 10 dan nilainya lebih dari 1.000.

SELECT username FROM user WHERE jml_transakai < 10 AND

total_transaksi > 1000

Page 61: Bahasa dalam Model Relational - dinus.ac.iddinus.ac.id/repository/docs/ajar/Bahasa_Model_Relasional.pdf · Operasi Dasar Aljabar Relasional 3. Union • Operasi union berfungsi untuk

SELECT

Contoh 4: Tampilkan total nominal transaksi yang sudah terjadi.

SELECT SUM(total_transaksi) AS total_nominal_transaksi FROM

user

Contoh 5: Tampilkan seluruh data diurutkan berdasarkan jumlah

transaksi terbesar ke terkecil.

SELECT * FROM user ORDER BY jml_transaksi DESC

Page 62: Bahasa dalam Model Relational - dinus.ac.iddinus.ac.id/repository/docs/ajar/Bahasa_Model_Relasional.pdf · Operasi Dasar Aljabar Relasional 3. Union • Operasi union berfungsi untuk

UPDATE

Untuk mengubah data Sintaks:

UPDATE [NAMA_TABLE] SET [NAMA_KOLOM]=[NILAI] WHERE [KONDISI]Contoh:UPDATE user set password="123456" where username=" Budi "

Page 63: Bahasa dalam Model Relational - dinus.ac.iddinus.ac.id/repository/docs/ajar/Bahasa_Model_Relasional.pdf · Operasi Dasar Aljabar Relasional 3. Union • Operasi union berfungsi untuk

DELETE

Delete digunakan untuk menghapus data

sintaks:

DELETE FROM [NAMA_TABLE] [KONDISI]

CONTOH : Hapus record atau data yg total transaksi=0

DELETE FROM USER WHERE total_transaksi_=0;

Page 64: Bahasa dalam Model Relational - dinus.ac.iddinus.ac.id/repository/docs/ajar/Bahasa_Model_Relasional.pdf · Operasi Dasar Aljabar Relasional 3. Union • Operasi union berfungsi untuk

Fungsi aggregateBeberapa SMBD memiliki fungsi aggregat, yaitu fungsi-fungsi khusus yang melibatkan sekelompok data (aggregat). Secara umum fungsi aggregat adalah:

• SUM untuk menghitung total nominal data• COUNT untuk menghitung jumlah kemunculan data• AVG untuk menghitung rata-rata sekelompok data• MAX dan MIN untuk mendapatkan nilai maksimum/minimum darisekelompok data.Fungsi aggregat digunakan pada bagian SELECT. Syarat untuk fungsiaggregat diletakkan pada bagian HAVING, bukan WHERE.

Contoh: Tampilkan username pengguna yang memiliki jumlah transaksiterbesar

Page 65: Bahasa dalam Model Relational - dinus.ac.iddinus.ac.id/repository/docs/ajar/Bahasa_Model_Relasional.pdf · Operasi Dasar Aljabar Relasional 3. Union • Operasi union berfungsi untuk

JENIS JENIS JOIN SQL :1. INNER JOIN : hanya akan menampilkan baris untuk data

yang memiliki nilai yang sama pada field kunci dengantabel yang berelasi

2. LEFT JOIN : hanya menampilkan data dengan mengacupada tabel yang ada disebelah kiri.

3. RIGHT JOIN : hanya menampilkan data dengan mengacupada tabel yang ada disebelah kanan

4. FULL JOIN : merupakan gabungan dari LEFT JOIN danRIGHT JOIN .

Page 66: Bahasa dalam Model Relational - dinus.ac.iddinus.ac.id/repository/docs/ajar/Bahasa_Model_Relasional.pdf · Operasi Dasar Aljabar Relasional 3. Union • Operasi union berfungsi untuk

3. Data Control Language(DCL)

DCL merupakan perintah SQL yang berhubungan dengan

pengaturan hak akses user MySQL, baik terhadap server,

database, tabel maupun field. Perintah SQL yang termasuk

dalam DCL antara lain :

Page 67: Bahasa dalam Model Relational - dinus.ac.iddinus.ac.id/repository/docs/ajar/Bahasa_Model_Relasional.pdf · Operasi Dasar Aljabar Relasional 3. Union • Operasi union berfungsi untuk

GRANTGRANT : Perintah ini digunakan untuk memberikan hak / izin akses

oleh administrator (pemilik utama) server kepada user (pengguna

biasa).

Hak akses tersebut berupa hak membuat (CREATE), mengambil

(SELECT), menghapsu (DELETE), mengubah (UPDATE) dan hak

khusus berkenaan dengan sistem databasenya.

Sintaks : GRANT privileges ON tbname TO user

CONTOH : grant select, update, insert, delete on perpustakaan.buku

to 'ali'@'localhost';

Page 68: Bahasa dalam Model Relational - dinus.ac.iddinus.ac.id/repository/docs/ajar/Bahasa_Model_Relasional.pdf · Operasi Dasar Aljabar Relasional 3. Union • Operasi union berfungsi untuk

REVOKE

REVOKE : perintah ini memiliki kegunaan terbalik dengan

GRAND, yaitu untuk menghilangkan atau mencabut hak

akses yang telah diberikan kepada user oleh administrator.

Sintak : REVOKE privileges ON tbname FROM user

CONTOH : revoke select, update, insert, delete on

perpustakaan.buku from 'ali'@'localhost';