overview dan implementasi bahasa pada basis data...
TRANSCRIPT
OVERVIEW DAN IMPLEMENTASIBAHASA PADA BASIS DATA
MODEL RELATIONAL.PERTEMUAN 6
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)
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)
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)
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
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.
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.
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.
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.
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
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
• Contoh Natural Join
Contoh Query : dicari nama divisi dimana pegawai dengan NIP 80100
bekerja.
πNamaDiv ( NIP=‘80100’ (PEGAWAI ⋈ DIVISI))
• Hasil :Pemasaran
7. IntersectionOperasi ini ditujukan untuk memperoleh tupel-tupel yang berada pada
kedua relasi R dan S. Simbol “∩”.
• Contoh :R ∩ S
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.
• 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.
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’ }
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’}
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
Contoh :
1. Structures Query Language (SQL)
Berdasarkan aljabar dan kalkulus relasional
Contoh :
Select * from Pegawai Where KodeDiv=‘Div02’
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
• 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;
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
• 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)}
THANK YOU