overview dan implementasi bahasa pada basis data...

24
OVERVIEW DAN IMPLEMENTASI BAHASA PADA BASIS DATA MODEL RELATIONAL. PERTEMUAN 6

Upload: dothien

Post on 11-Jul-2019

219 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: OVERVIEW DAN IMPLEMENTASI BAHASA PADA BASIS DATA …dinus.ac.id/repository/docs/ajar/Dtbs_6_Overview_dan_Implementasi_Bhs...sebuah table relasi dengan nilai atribut dari table relasi

OVERVIEW DAN IMPLEMENTASIBAHASA PADA BASIS DATA

MODEL RELATIONAL.PERTEMUAN 6

Page 2: OVERVIEW DAN IMPLEMENTASI BAHASA PADA BASIS DATA …dinus.ac.id/repository/docs/ajar/Dtbs_6_Overview_dan_Implementasi_Bhs...sebuah table relasi dengan nilai atribut dari table relasi

POKOK BAHASA / MATERI

1. Bahasa Query Formal Prosedural : Aljabar relasional (select,

project, cartesian product, Union, set diferent, natural joint, theta

join, intersection, devide).

2. Bahasa Query Formal Non Prosedural : Kalkulus Relational

(Kalkulus Relational Tupel, Kalkulus Relational Domain).

3. Bahasa Query Komersial (Overview SQL, PL/SQL dan QBE)

Page 3: OVERVIEW DAN IMPLEMENTASI BAHASA PADA BASIS DATA …dinus.ac.id/repository/docs/ajar/Dtbs_6_Overview_dan_Implementasi_Bhs...sebuah table relasi dengan nilai atribut dari table relasi

BAHASA PADA MODEL RELASIONAL

• Dalam sistem basis data, terdapat suatu kondisi dimana kita harus

mendapatkan informasi tertentu dari basis data tersebut. Hal

yang bisa dilakukan adalah dengan menggunakan perintah

melalui bahasa tertententu yaitu bahasa query. Bahasa query

sendiri dikelompokkan menjadi 2, yakni :

1. Bahasa Query Formal (Aljabar Relasional dan Kalkulus

Relasional)

2. Bahasa Query Komersial (QUEL, QBE, dan SQL)

Page 4: OVERVIEW DAN IMPLEMENTASI BAHASA PADA BASIS DATA …dinus.ac.id/repository/docs/ajar/Dtbs_6_Overview_dan_Implementasi_Bhs...sebuah table relasi dengan nilai atribut dari table relasi

BAHASA QUERY FORMAL

•Bahasa Query yang diterjemahkan dengan menggunakan

simbol-simbol matematis. BahasaQuery Formal terbagi 2,

yaitu :

1. Bahasa Query Formal Prosedural (Aljabar Relasional)

2. Bahasa Query Formal Non Prosedural (Kalkulus Relasional)

Page 5: OVERVIEW DAN IMPLEMENTASI BAHASA PADA BASIS DATA …dinus.ac.id/repository/docs/ajar/Dtbs_6_Overview_dan_Implementasi_Bhs...sebuah table relasi dengan nilai atribut dari table relasi

1.BAHASA QUERY FORMAL PROSEDURAL(ALJABAR RELASIONAL)

• Yaitu pemakai memberi spesifikasi data apa yang dibutuhkan dan bagaimana cara

mendapatkannya. Contoh : Aljabar Relasional

• Aljabar Relasional yaitu dimana Query diekspresikan dengan cara menerapakan operator

tertentu terhadap suatutabel/relasi:

• Terdapat 5 operasi dasar dari Aljabar Relasional, yaitu :

1. Select,

2. Project,

3. Cartesian product,

4. Union,

5. Set diferent, Natural joint, Theta join, Intersection, Devide

Page 6: OVERVIEW DAN IMPLEMENTASI BAHASA PADA BASIS DATA …dinus.ac.id/repository/docs/ajar/Dtbs_6_Overview_dan_Implementasi_Bhs...sebuah table relasi dengan nilai atribut dari table relasi

1. SelectOperasi select berfungsi untuk menyeleksi tuple-tuple yang memenuhi

predikat yang diberikan dari sebuah tabel relasi. Simbol sigma “”digunakan untuk menunjukkan operasi select.

Contoh :NIM = A11.2000.00001 (Tb_Nilai)

Perintah diats berarti memilih tupel-tupel dari tabel Tb_Nilai yang memiliki

atribut NIM bernilai A11.2000.00001.

Page 7: OVERVIEW DAN IMPLEMENTASI BAHASA PADA BASIS DATA …dinus.ac.id/repository/docs/ajar/Dtbs_6_Overview_dan_Implementasi_Bhs...sebuah table relasi dengan nilai atribut dari table relasi

2. ProjectOperasi Project berfungsi untuk memilih nilai atribut-atribut tertentu saja dari

sebuah tabel relasi. Simbol Phi “π” digunakan untuk menunjukkan operasi

project.

Contoh :πKD_MKL, Sks (Tb_MatKul)

Perintah diatas berarti nilai atribut Kd_MatKul dan SKS dari tabelTb_MatKul.

Page 8: OVERVIEW DAN IMPLEMENTASI BAHASA PADA BASIS DATA …dinus.ac.id/repository/docs/ajar/Dtbs_6_Overview_dan_Implementasi_Bhs...sebuah table relasi dengan nilai atribut dari table relasi

3. Cartesian ProductOperasi Cartesian Product berfungsi untuk mengkombinasikan informasi

yang ada dalam 2 tabel relasi yang baru. Simbol “x”.

Contoh :

Tb_Mahasiswa x Tb_MatKulPerintah diatas berarti mengkombinasikan (menggambungkan) seluruh tupe

yang ada pada tabel Tb_Mahasiswa dengan Tabel Tb_MatKul.

Page 9: OVERVIEW DAN IMPLEMENTASI BAHASA PADA BASIS DATA …dinus.ac.id/repository/docs/ajar/Dtbs_6_Overview_dan_Implementasi_Bhs...sebuah table relasi dengan nilai atribut dari table relasi

4. UnionOperasi Union berfungsi untuk mendapatkan gabungan nilai atribut dari

sebuah table relasi dengan nilai atribut dari table relasi lannya. Simbol “U”.

Contoh :πNIM (Tb_Mahasiswa) U πNIM (Tb_Nilai)

Perintah diatas berarti menggabungkan hasil dari nilai atribut NIM dan

Tb_Mahasiswa dengan table Tb_Nilai.

Page 10: OVERVIEW DAN IMPLEMENTASI BAHASA PADA BASIS DATA …dinus.ac.id/repository/docs/ajar/Dtbs_6_Overview_dan_Implementasi_Bhs...sebuah table relasi dengan nilai atribut dari table relasi

5. Set DifferenceOperasi Set Difference berfungsi untuk mendapatkan nilai yang ada dalam

sebuah tabel relasi, tetapi tidak ada dalam table relasi lainnya. Simbol “-”.

Contoh :πNIM (Tb_Mahasiswa) – πNIM (Tb_Nilai)

Perintah diatas berarti mendapatkan nilaib_Mahasiswa, tetapi tidak

terdapat di tabel Tb_Nilai.

https://www.slideshare.net/AribHerzi/model-data-relasional-3

Page 11: OVERVIEW DAN IMPLEMENTASI BAHASA PADA BASIS DATA …dinus.ac.id/repository/docs/ajar/Dtbs_6_Overview_dan_Implementasi_Bhs...sebuah table relasi dengan nilai atribut dari table relasi

Set diferent, Natural joint, Theta join, Intersection, Devide

6. Natural JoinOperasi Natural Join membentuk suatu relasi dari dua relasi yang terdiri

dari kombinasi dari relasi-relasi tersebut. Simbol “⋈”.

a 1

b 2

1 x

1 y

3 z

R S

a 1 x

a 1 y

R ⋈ S

Page 12: OVERVIEW DAN IMPLEMENTASI BAHASA PADA BASIS DATA …dinus.ac.id/repository/docs/ajar/Dtbs_6_Overview_dan_Implementasi_Bhs...sebuah table relasi dengan nilai atribut dari table relasi

• Contoh Natural Join

Contoh Query : dicari nama divisi dimana pegawai dengan NIP 80100

bekerja.

πNamaDiv ( NIP=‘80100’ (PEGAWAI ⋈ DIVISI))

• Hasil :Pemasaran

Page 13: OVERVIEW DAN IMPLEMENTASI BAHASA PADA BASIS DATA …dinus.ac.id/repository/docs/ajar/Dtbs_6_Overview_dan_Implementasi_Bhs...sebuah table relasi dengan nilai atribut dari table relasi

7. IntersectionOperasi ini ditujukan untuk memperoleh tupel-tupel yang berada pada

kedua relasi R dan S. Simbol “∩”.

• Contoh :R ∩ S

Page 14: OVERVIEW DAN IMPLEMENTASI BAHASA PADA BASIS DATA …dinus.ac.id/repository/docs/ajar/Dtbs_6_Overview_dan_Implementasi_Bhs...sebuah table relasi dengan nilai atribut dari table relasi

2. BAHASA QUERY FORMAL NON PROSEDURAL

• Yaitu pemakai menspesifikasi data apa yang dibutuhkan tanpa

menspesifikasikan bagaimana untuk mendapatkannya. Contoh :

Kalkulus Relasional (Kalkulus Relational Tupel, Kalkulus Relational

Domain).

• Kalkulus Relasional adalah dimana Query menjelaskan set tuple

yang diinginkan dengan cara menjelaskan predikat tuple yang

diharapkan.

Page 15: OVERVIEW DAN IMPLEMENTASI BAHASA PADA BASIS DATA …dinus.ac.id/repository/docs/ajar/Dtbs_6_Overview_dan_Implementasi_Bhs...sebuah table relasi dengan nilai atribut dari table relasi

• Kalkulus Relasional

Pendeskripsian pemrosesan suatu Query berbeda dengan Aljabar Relasional,

cukup dengan mendefinisikan apa yang diinginkan.

• Ada dua bentuk Kalkulus Relasional yakni :

1. Kalkulus Relasional Tupel yang pertama kalinya diusulkan oleh E.F. Codd.

2. Kalkulus Relasional Domain yang diusulkan Lacroic dan Pirotte.

Page 16: OVERVIEW DAN IMPLEMENTASI BAHASA PADA BASIS DATA …dinus.ac.id/repository/docs/ajar/Dtbs_6_Overview_dan_Implementasi_Bhs...sebuah table relasi dengan nilai atribut dari table relasi

1. Kalkulus Relasional tupel lebih berientasi pada tupel dimana operasi ini ditujukan untuk

memperoleh tupel-tupel yang predikatnya ‘benar’/

• Ekspresi : { t | P(t) }

t : Tupel, P : Predikat terhadap t

• Bentuk-bentuk dari predikat :

1. S ∈ R ; dimana S : varibel, R : relasi2. S[x] θ U[y] ; dimana S dan U : Variabel tupel, x dan y : Atribut-atribut

∅ : Operator Aritmatika3. S[x] θ C ; C : Konstanta

• Operator tambahan : Operator penghubung yakni ^ (and), v (or)

• Contoh Kalkulus Relasional Tupel

✓ Contoh Query: diketahui skema relasi DOSEN (NIP, Nama, Alamat, Kota, Jklel). Dicari informasi mengenai dosen yang berada dikota Bogor.

{ t | t ∈ DOSEN ^ t[Kota] = ‘Bogor’ }

Page 17: OVERVIEW DAN IMPLEMENTASI BAHASA PADA BASIS DATA …dinus.ac.id/repository/docs/ajar/Dtbs_6_Overview_dan_Implementasi_Bhs...sebuah table relasi dengan nilai atribut dari table relasi

2. Kalkulus Relasional Domain

Berbeda dengan kalkulus relasional tupel, kalkulus relasional domain berorientasi pada domaindengan menggunakan variabel-variabel domain.

• Ekspresi : { <x1,x2, xn> | P <x1,x2, xn>} dimana xi : variabel domain, sedang P : Predikatterhadap x.

• Bentuk-bentuk dari predikat :1. <x1, x2, xn> ∈ ; R : Relasi2. x θ y3. x θ c

• Contoh Kalkulus RelasionalDomain• Contoh Query : Diketahui skema relasi DOSEN(Nip, Nama, Alamat, Kota, Jkel}. Dicari informasi mengenai

dosen yang mempunyai NIP 0686111996097.

• { <Nip, Nama, Alamat, Kota, Jkel> | <Nip, Nama, Alamat, Kota, Jkel> ∈ DOSEN ^Nip=‘0686111996097’}

Page 18: OVERVIEW DAN IMPLEMENTASI BAHASA PADA BASIS DATA …dinus.ac.id/repository/docs/ajar/Dtbs_6_Overview_dan_Implementasi_Bhs...sebuah table relasi dengan nilai atribut dari table relasi

3. BAHASA QUERY KOMERSIAL

• Bahasa Query yang dirancang sendiri oleh programmer menjadi

suatu program aplikasi agar pemakai lebih mudah

menggunakannya (user friendly).

• Bahasa Query Komersil terdiri dari :

1. SQL (Overview SQL)

2. QUEL

3. QBE

Page 19: OVERVIEW DAN IMPLEMENTASI BAHASA PADA BASIS DATA …dinus.ac.id/repository/docs/ajar/Dtbs_6_Overview_dan_Implementasi_Bhs...sebuah table relasi dengan nilai atribut dari table relasi

Contoh :

1. Structures Query Language (SQL)

Berdasarkan aljabar dan kalkulus relasional

Contoh :

Select * from Pegawai Where KodeDiv=‘Div02’

Page 20: OVERVIEW DAN IMPLEMENTASI BAHASA PADA BASIS DATA …dinus.ac.id/repository/docs/ajar/Dtbs_6_Overview_dan_Implementasi_Bhs...sebuah table relasi dengan nilai atribut dari table relasi

Contoh :

2. Query Language (QUEL)

• QUEL merupakan bahasa pendefinisian dan manipulasi data untuk

INGRES (Interactive Graphic and Retrieval System), dikembangkan sejak

tahun 1970-an.

• Perintah-perintah pada Quel :1. Pendefinisian data antara lain:

CREATE, INDEX, MODIFY, DESTROY

2. Manipulasi data antara lain :

RETRIVE, APPEND, DELETE, REPLACE

Page 21: OVERVIEW DAN IMPLEMENTASI BAHASA PADA BASIS DATA …dinus.ac.id/repository/docs/ajar/Dtbs_6_Overview_dan_Implementasi_Bhs...sebuah table relasi dengan nilai atribut dari table relasi

• Sintaks RETRIEVE :▪ RETRIEVE [UNIQUE] tabel.kolom WHERE [fungsi/Any] Kondisi SORT BY Kolom;

▪ RANGE OF Inisial/Huruf IS (Nama tabel);

• Contoh Query :1. Ingin dibuat inisial dari tabel PEGAWAI dan DIVISI

RANGE OF P IS PEGAWAI, D IS DIVISI;

2. Ingin ditampilkan nama dan alamat pegawai yang gajinya lebih besar dari 500.000.

RETRIVE (P.Nama, P.Alamat) WHERE P.Gaji >500000;

Page 22: OVERVIEW DAN IMPLEMENTASI BAHASA PADA BASIS DATA …dinus.ac.id/repository/docs/ajar/Dtbs_6_Overview_dan_Implementasi_Bhs...sebuah table relasi dengan nilai atribut dari table relasi

3. Query By Example (QBE)

• Berdasarkan pada kalkulus relasional domain.

• QBE Pertama kali dikembangkan oleh Zloof pada tahun 1975. Untuk mengekspresikan

permintaan dari pemakai dilakukan dengan memasukkan nilai contoh ke dalam template Query

yang menyerupai sebuah tabel.

• Operator perintah antara lain :

P. (Print), D. (Delete), I. (Insert),U. (Update).

Operator aritmatika : <, =,>, ≥, ≠, ≤

Pegawai NIP Nama Alamat Gaji KodeDiv

P Div02

Page 23: OVERVIEW DAN IMPLEMENTASI BAHASA PADA BASIS DATA …dinus.ac.id/repository/docs/ajar/Dtbs_6_Overview_dan_Implementasi_Bhs...sebuah table relasi dengan nilai atribut dari table relasi

• Contoh QBE• Relations for this presentation

Sailors (sid: integer, sname: string, rating: integer, age: real)

Boats (bid: integer, bname: string, color: string)

Reserves (sid: integer, bid: integer, day: date)

• Query atas Relasi tunggal

➢ Print names and ages of all sailors

❖ {<N, A> | ∃I, T( <I, N, T, A>∈Sailors)}

➢ Print all fields of the sailor with rating 10

❖ {<I, N, 10, A>|∃I, N, A(<I, N, 10, A>∈Sailors)}

Page 24: OVERVIEW DAN IMPLEMENTASI BAHASA PADA BASIS DATA …dinus.ac.id/repository/docs/ajar/Dtbs_6_Overview_dan_Implementasi_Bhs...sebuah table relasi dengan nilai atribut dari table relasi

THANK YOU