260 likes | 367 Views
SQL Part 1. Review Pertemuan Ke-VIII. Tuple relational calculus adalah query yang non-prosedural. Tuple relational calculus menggambarkan informasi yang diinginkan tanpa memberi prosedurnya secara detil untuk mendapatkan informasi tersebut.
E N D
Review Pertemuan Ke-VIII • Tuple relational calculus adalah query yang non-prosedural. • 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)}
Pendahuluan • 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.
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.
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.
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.
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.
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.
LATAR BELAKANG • Bahasa SQL mempunyai beberapa bagian yaitu: • View Definition DDL SQL memasukkan perintah untuk mendefinisikan view.
LATAR BELAKANG • Bahasa SQL mempunyai beberapa bagian yaitu: • Authorization DDL SQL memasukkan perintah untuk menentukan hak-hak akses ke relasi dan view.
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.
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.
STRUKTUR DASAR • Struktur dasar dari ekspresi SQL terdiri dari tiga klausa yaitu : select, from dan where.
Select • Klausa Select berhubungan dengan operasi proyeksi dari aljabar relasional. • Operasi ini digunakan untuk mendaftar semua atribut yang diinginkan sebagai hasil suatu query.
From • Klausa From berhubungan dengan operasi Cartesian-product dari aljabar relasional. • Operasi ini mencatat semua relasi yang di”scan” dalam evaluasi suatu query.
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.
query SQL • Sebuah query SQL biasanya mempunyai bentuk : • Select A1,A2,…..An • From r1,r2,….rn • Where P
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.
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.
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.
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
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
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.
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.
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.
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