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

Post on 11-Jul-2019

219 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

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

top related