9. SQL-1

advertisement
SQL
Part 1
Review Pertemuan Ke-VIII
 Tuple relational calculus adalah query yang nonprosedural.
 Tuple relational calculus menggambarkan informasi
yang diinginkan tanpa memberi prosedurnya secara
detil untuk mendapatkan informasi tersebut.
 Sebuah query dalam tuple relational calculus ditulis :
{t|P(t)}
2
Pendahuluan
Sistem basis data komersial menghendaki
adanya sebuah bahasa query yang lebih userfriendly.
Oleh karena itu dikenal SQL sebagai bahasa
query yang marketable.
SQL menggunakan kombinasi aljabar
relasional & kalkulus relasional.
3
Pendahuluan
Meskipun SQL adalah bahasa query, namun
SQL mempunyai banyak kemampuan lain
disamping melakukan query terhadap basis
data.
SQL mempunyai kemampuan untuk
mendefinisikan struktur data, modifikasi data
dalam basis data dan menentukan konstrain
sekuriti.
4
LATAR BELAKANG
SQL merupakan bahasa basis data relasional
standard. Terdapat macam-macam versi SQL.
Versi aslinya pertama kali dikembangkan oleh
IBM San Jose Research Laboratory.
5
LATAR BELAKANG
Bahasa SQL mempunyai beberapa bagian
yaitu:
Data Definition Language (DDL)
DDL memberikan perintah untuk mendefinisikan
skema relasi, penghapusan relasi, membuat
indeks dan modifikasi skema relasi.
6
LATAR BELAKANG
Bahasa SQL mempunyai beberapa bagian
yaitu:
Interactive Data-Manipulation Language
(DML)
DML merupakan bahasa query yang
berdasarkan pada aljabar relasi dan kalkulus
relasi tuple.
Termasuk didalamnya adalah perintah untuk
penyisipan, penghapusan dan modifikasi.
7
LATAR BELAKANG
Bahasa SQL mempunyai beberapa bagian
yaitu:
Embedded DML
Bentuk embedded SQL biasanya terdapat
dalam bahasa pemrograman multi guna
seperti PL/I, Cobol , Pascal dan Fortran.
8
LATAR BELAKANG
Bahasa SQL mempunyai beberapa bagian
yaitu:
View Definition
DDL SQL memasukkan perintah untuk
mendefinisikan view.
9
LATAR BELAKANG
Bahasa SQL mempunyai beberapa bagian
yaitu:
Authorization
DDL SQL memasukkan perintah untuk
menentukan hak-hak akses ke relasi dan
view.
10
LATAR BELAKANG
Bahasa SQL mempunyai beberapa bagian
yaitu:
Integrity
DDL SQL memasukkan perintah untuk
menentukan konstrain integritas yang harus
dipenuhi oleh data yang tersimpan dalam
basis data.
11
LATAR BELAKANG
Bahasa SQL mempunyai beberapa bagian
yaitu:
Transaction control
SQL memasukkan perintah-perintah untuk
menentukan awal dan akhir transaksi.
Beberapa implementasi juga memungkinkan
locking data untuk concurrency control.
12
STRUKTUR DASAR
Struktur dasar dari ekspresi SQL terdiri dari
tiga klausa yaitu : select, from dan where.
13
Select
Klausa Select berhubungan dengan operasi
proyeksi dari aljabar relasional.
Operasi ini digunakan untuk mendaftar semua
atribut yang diinginkan sebagai hasil suatu
query.
14
From
Klausa From berhubungan dengan operasi
Cartesian-product dari aljabar relasional.
Operasi ini mencatat semua relasi yang
di”scan” dalam evaluasi suatu query.
15
Where
Klausa Where berhubungan dengan operasi
predikat seleksi dari aljabar relasional.
Operasi ini terdiri dari sebuah predikat yang
menyangkut atribut-atribut dari relasi yang
muncul dalam klausa from.
16
query SQL
Sebuah query SQL biasanya mempunyai
bentuk :
Select A1,A2,…..An
From r1,r2,….rn
Where P
17
Klausa Select
Contoh : “ Tentukan nama-nama dari semua
cabang bank dalam relasi loan “ Query-nya :
select branch-name from loan
Hasil dari query tersebut adalah sebuah relasi
yang berisi sebuah atribut tunggal dengan
nama branch-name.
18
Klausa Select
Bahasa query formal bersifat matematis
dimana relasi adalah sebuah himpunan
sehingga tuple-tuple yang telah muncul tidak
akan muncul lagi (tidak akan terjadi duplikasi
tuple).
Tapi dalam prakteknya untuk menghilangkan
duplikasi tuple sangat memakan waktu.
19
Klausa Select
Oleh karenanya SQL memungkinkan
terjadinya duplikasi tersebut.
Dari contoh di atas, maka query-nya akan
mencatat setiap branch-name setiap kali
branch-name tersebut ditemukan dalam relasi
loan.
20
Klausa Select
Untuk kasus di atas jika diinginkan untuk
menghilangkan duplikasi maka dapat
disisipkan distinct setelah select.
Query di atas ditulis ulang sebagai berikut :
Select distinct branch-name from loan
21
Klausa Select
Klausa selest dapat juga mengandung operasi
aritmatika yaitu operator : +, -, *, / dan operasi
terhadap konstanta atau atribut dari tuple.
Contoh query berikut :
Select branch-name, loan-number, amount *
100 From loan
22
Klausa Select
Akan menghasilkan sebuah relasi yang sama
dengan relasi loan, kecuali bahwa atribut
amount dikalikan dengan 100.
SQL-92 juga menyediakan tipe data spesial
seperti tipe date, dan memungkinkan
beberapa fungsi aritmatika untuk beroperasi
pada tipe-tipe ini.
23
Summary
 Sistem basis data komersial menghendaki adanya
sebuah bahasa query yang lebih user-friendly.
 Oleh karena itu dikenal SQL sebagai bahasa query yang
marketable.
 SQL menggunakan kombinasi aljabar relasional &
kalkulus relasional.
 Struktur dasar dari ekspresi SQL terdiri dari tiga klausa
yaitu : select, from dan where.
24
SOAL LATIHAN
1.Diketahui relasi berikut :
Student(snum: integer, sname: string, major: string, level: string,
age: integer)
Class(name: string, meets at: time, room: string, d: integer)
Enrolled(snum: integer, cname: string)
Faculty(d: integer, fname: string, deptid: integer)
Tuliskan query di bawah ini dalam SQL
 Find the age of the oldest student who is either a History
major or is enrolled in a course taught by I. Teach.
 Find the names of all classes that either meet in room R128 or
have ve or more students enrolled.
 Find the names of all students who are enrolled in two classes
that meet at the same time.
25
REFERENSI
 Referensi Wajib:
Raghu Ramakhrisnan, Johannes Gehrke
, “Database Management System” 6th
Edition, Mc Graw Hill,2006
(chapter : 5)
 Referensi Tambahan/dianjurkan:
David M.Kroenke, Database Concepts
4th Edition, Prentice Hall 2004
26
Download