bahasa Query basis data bab 8 Dosen : Yayu Sri Rahayu, M Kom. STMIK EL RAHMA JOGJAKARTA 2015
Bahasa Query merupakan bahasa yang termasuk dalam kategori bahasa tingkat tinggi (high level language) yang digunakan user untuk mendapatkan informasi/data dari basis data. Bahasa Query formal Bahasa Query formal yang sering digunakan secara umum adalah Aljabar Relasional yang merupakan bahasa Query yang Prosedural. Terdapat dua jenis bahasa query relasional formal yang utama, yaitu: Aljabar relasional. Kalkulus relasional.
BAHASA QUERY FORMAL Bahasa query formal basis data relasional adalah bahasa untuk meminta informasi dari basis data. Bahasa query relasional formal merupakan bahasa antara yang digunakan basis data, yaitu SQL dikonversi menjadi bahasa rlasional formal sehingga dapa diterapkan sekumpulan informasi untuk memperoleh query paling efisien
ALJABAR RELATIONAL Relational Algebra (aljabar relasional) merupakan kumpulan operasi terhadap relasi dimana setiap operasi menggunakan satu atau lebih relasi untuk menghasilkan satu relasi yang baru dan termasuk kategori prosedural dan juga menyediakan seperangkat operator untuk memanipulasi data.
ALJABAR RELATIONAL Terdapat lima operasi dasar dalam aljabar relasional, yaitu: Selection ( ) Projection ( ) Cartesian – product ( X, juga disebut sebagai cross product ) Union ( ) Set – difference ( - ) Rename ( )
ALJABAR RELATIONAL Operasi – operasi turunan dari operasi – operasi dasar tersebut adalah: Set intersection ( ) Theta join ( ) Natural-join ( ) Outer-join ( ) Division ( )
OPERASI SELEKSI ( SELECT ) Selection / Select ( ), adalah operasi untuk menyeleksi tupel – tupel yang memenuhi suatu predikat, kita dapat menggunakan operator perbandingan (<,>,>=,<=,=,#) pada predikat. Beberapa predikat dapat dikombinasikan menjadi predikat manjemuk menggunakan penghubung AND ( ) dan OR ( ).
OPERASI SELEKSI ( SELECT ) Sintaks yang digunakan untuk menyatakan operasi adalah : p (E1) Contoh : Tampilkan data mahasiswa yang tempat tinggalnya di Bogor. kota = ‘Bogor’ (mahasiswa)
OPERASI SELEKSI ( SELECT ) Tampilkan daftar dosen yang tempat lahirnya di ‘Bekasi tempat_lhr=’Bekasi’ (Dosen) Tampilkan daftar dosen yang tempat lahirnya di ‘Jakarta’ atau ‘Bogor’ tempat_lhr=’Jakarta’ tempat_lhr=’Bogor’ (Dosen)
Tampilkan daftar dosen yang tempat lahirnya di ‘Bogor’ dan jenis kelaminnya ‘Pria’ tempat_lhr=’Bogor’ jkelamin=’Pria’ (Dosen)
OPERASI PROJECTION (PROJECT) Projection / Project ( ), adalah operasi untuk memperoleh kolom – kolom tertentu. Operasi project adalah operasi unary yang mengirim relasi argumen dengan kolom – kolom tertentu. Sintaks yang digunakan dalam operasi proyeksi ini adalah sebagai berikut : colum1,…,column ( tabel)
CONTOH OPERASI PROJECTION (PROJECT) Tampilkan nid,nama_d,alamat,kota dari relasi Dosen nid,nama_d,alamat,kota(Dosen) Tampilkan nid,nama_d,alamat,kota,gajipokok dari relasi Dosen, dimana gaji pokoknya lebih besar dari Rp.1200000 id,nama_d,alamat,kota,gajipokok( gajipokok>1200000 (Dosen))
OPERASI CARTESIAN PRODUCT Cartesian-product ( X ), adalah operasi untuk menghasilkan table hasil perkalian kartesian. Sintaks yang digunakan dalam operasi proyeksi ini adalah sebagai berikut : R X S = {(x,y) | xR dan yS}
OPERASI CARTESIAN PRODUCT Operasi cartesian-product memungkinkan kita mengkombinasikan informasi beberapa relasi, operasi ini adalah operasi biner. Sebagaimana telah dinyatakan bahwa relasi adalah subset hasil cartesian-product dan himpunan domain relasi – relasi tersebut. Kita harus memilih atribut – atribut untuk relasi yang dihasilkan dari cartesian-product.
CONTOH OPERASI CARTESIAN PRODUCT Tampilkan nid,nama_d (dari relasi Dosen), nama_mk (dari relasi Matakuliah), thn_akademik,smt,hari,jam_ke,waktu,kelas (dari relasi Mengajar) dimana semester mengajar adalah pada semester ‘1’. nid,nama_d,nama_mk, thn_akademik,smt,hari,jam_ke,waktu,kelas ( smt=1 Dosen.nid=Mengajar.nid Mengajar.kdmk=Matakuliah.kdmk(DosenxMatakuliahxMengajar))
CONTOH OPERASI CARTESIAN PRODUCT Tampilkan nama_d (dari relasi Dosen), nama_mk,sks (dari relasi Matakuliah), hari,jam_ke,waktu (dari relasi Mengajar) dimana sks matakuliah >3 atau hari mengajar = ‘Jumat’. nama_d,nama_mk,sks,hari,jam_ke,waktu ( sks>3 hari=’Jumat’ Mengajar.nid=Dosen.nid Mengajar.kdmk=Matakuliah.kdmk(MengajarxDosenxMatakuliah))
OPERASI UNION Union ( ), adalah operasi untuk menghasilkan gabungan table degan syarat kedua table memiliki atribut yangsama, yaitu domain atribut ke-i masing – masing table harus sama. Sintaks yang digunakan dalam operasi union ini adalah sebagai berikut : R S = {x | xR atau X S}
OPERASI UNION Operasi ini dapat dilaksanakan apabila R dan S mempunyai atribut yang sama sehingga jumlah komponennya sama. Tabel Mahasiswa NIM NAMA_MHS ALAMAT_MHS KOTA TGL_LHR 980001 Ali Akbar Jl. Merdeka Bogor 02-01-1979 980002 Budi Haryanto Jl. Gajah Mada Jakarta 06-10-1978
Tabel Dosen KODE_DOS NAMA_DOS ALAMAT_DOS KOTA SY Syamsudin, S.Si Jl. Suci Bekasi FS Farida Syarif, Ir Jl. Tenteram Jakarta
CONTOH OPERASI UNION Jila dilakukan operasi union : kota (mahasiswa) kota (Dosen) Maka hasilnya : KOTA Bogor Jakarta Bekasi
OPERASI SET DIFFERENCE Set-difference ( -- ), adalah operasi untuk mendapatkan table pada suatu relasi, tapi tidak ada pada relasi yang lainnya. Sintaks yang digunakan dalam operasi union ini adalah sebagai berikut : R – S = { x | xR dan X S} Operasi ini dapat dilaksanakan apabila R dan S mempunyai atribut yang tidak sama yang akan ditampilkan, artinya adalah atribut R yang tidak ada di S akan ditampilkan, sedangkan atribut yang sama tidak ditampilkan.
CONTOH OPERASI SET DIFFERENCE Jika tabel Kuliah_S1 dan Tabel Kuliah_D3 berisi data sebagai berikut : Tabel Kuliah_S1 Kode_kul Nama_kul Sks semester IF-110 Pemrograman I 3 1 IF-221 Struktur Data 2 IF-310 Basis Data 4 IF-320 Pemrograman II IF-411 Sistem Basis Sata IF-423 Sistem Pakar
CONTOH OPERASI SET DIFFERENCE Tabel Kuliah_D3 Kode_kul Nama_kul Sks semester IF-110 Pemrograman I 3 1 IF-120 Aplikasi Akuntansi 2 IF-221 Struktur Data IF-310 Basis Data 4
CONTOH OPERASI SET DIFFERENCE Maka hasil operasi : nama_kul (Kuliah_S1) - nama_kul (Kuliah_D3) Nama_kul Pemrograman II Sistem Basis Data Sistem Pakar
OPERASI RENAME
CONTOH OPERASI RENAME Salinlah table baru dengan nama DosenNew dari table Dosen, dimana jenis kelaminnya adalah ‘Pria’. DosenNew ( jkelamin=’Pria’) (Dosen))
BAHASA QUERY TERAPAN
STRUCTURE QUERY LANGUAGE (SQL) SQL merupakan bahasa query yang paling banyak dipilih oleh DBMS dan Development Tools. Seperti pada : Visual Basic, Delphi, PowerBuilder, Java dll.
STRUKTUR DASAR SQL Ekspresi dasar SQL terdiri dari 3 klausa. 1. Select 2. From 3. Where
STRUKTUR DASAR SQL Klausa Select digunakan untuk menetapkan daftar atribut (field) yang diinginkan sebagai hasil query. Klausa From digunakan untuk menetapkan relasi atau tabel (atau gabungan tabel) yang akan ditelusuri selama query data dilakukan. Klausa Where, yang sifatnya opsional digunakan sebagai predikat (kriteria) yang harus dipenuhi dalam memperoleh hasil query.
STRUKTUR DASAR SQL Sintaksnya adalah : Select A1 [A2, A3….An] From T1 [T2….Tm] [where P] Dimana : A1, A2…An merupakan daftar atribut T1, T2…Tm merupakan daftar tabel atau relasi. P merupakan predikat Query. [] merupakan tanda opsional (booleh digunakan, boleh tidak digunakan), tergantung kebutuhan.
Klausa Select Contoh : Jika kita ingin menampilkan NIM dan Nama Mahasiswa yang ada di tabel Mahasiswa, maka kita dapat menggunakan perintah SQL sbb : Select nim, nama_mhs from mahasiswa
Klausa Where Contoh : Menampilkan semua atribut untuk mahasiswa dengan NIM = ‘980002’ Select * from mahasiswa where nim =‘980002’
Klausa Where Menampilkan semua matakuliah yang diselenggarakan di semester 3 tetapi jumlah sks-nya lebih besar dari 2. Perintah SQL-nya : Select * from mahasiswa where semester = 3 and sks > 2
Klausa From Klausa From digunakan untuk menetapkan tabel yang kita jadikan sebagai sumber (lokasi) pencarian Contoh : Select * From kuliah, dosen Where kuliah.kode_dos = dosen.kode_dos
Pengurutan Hasil Query Dengan menggunakan ekspresi dasar SQL maka hasil query ditampilkan dengan urutan yang sesuai dengan struktur penyimpanan yang kita terapkan pada tabel query. Contoh : Select * from mahasiswa order by nama_mhs
Fungsi Agresi Disamping menampilkan nilai-nilai atribut yang ada di dalam tabel, sering pula ada kebutuhan untuk menampilkan data-data agresi seperti : banyaknya record, total nilai suatu atribut, rata-rata nilai atribut, nilai atribut terbesar ataupun nilai atribut terkecil.
Fungsi Agresi Data Agresi dapat di peroleh dengan menggunakan fungsi-fungsi sbb : 1. Count 2. Sum 3. Avg 4. Max 5. Min
Contoh Fungsi Agresi Menampilkan banyaknya record mahasiswa Select count * from mahasiswa
Manipulasi Data DML menyediakan 4 (empat) pernyataan untuk melakukan manipulasi data dalam database, yaitu: SELECT, untuk query (meminta informasi) dari database. INSERT, untuk melakukan penyisipan data pada table dalam suatu database. UPDATE, untuk melakukan perubahan data pada suatu table dalam suatu database. DELETE, untuk melakukan penghapusan data pada suatu
Manipulasi Data (2) Insert Terdapat 2 (dua) bentuk pernyataan kalimat INSERT, yaitu: Bentuk pertama INSERT, dimana memungkinkan satu baris tunggal disisipkan kealam table. Bentuk kedua INSERT, dimana memungkinkan banyak baris sekaligus dikopikan kesatu table atau lebih.
Manipulasi Data Insert Sintaks : INSERT [ INTO] NAMA TABEL [Daftar_Kolom] Value DAFTAR_NILAI
Manipulasi Data Insert INSERT : Klausa ini menspesifikasikan nama tabel dimana data bisa ditambahkan VALUE : Klausa ini menspesifikasikan nilai data yang akan disisipkan ke dalam kolom pada tabel Daftar_Kolom : Merupakan daftar kolom yang dipisahkan oleh tanda koma menyatakan kolom-kolom yang akan diisi data. Jika tidak ada kolom yang dinyatakan, berarti semua kolom di dalam akan diisi data. Jika hanya sebagian daftar yang dinyatakan, nilai null atau nilai default akan diisikan ke kolom yang tidak disebutkan dalam daftar kolom. Daftar Nilai : Daftar nilai untuk kolom tabel yang akan disisipkan sebagai sebuah baris data dalam tabel. Data yang diberikan pada daftar nilai harus sesuai dengan daftar kolom. Banyak data harus sama dengan banyak kolom, tipe data, presisi, dan skala dari setiap data harus sesuai dengan kolomnya.
Manipulasi Data Insert Contoh : Misalkan kita akan menyisipkan data pada ke 5 (lima) table pada database NilaiMahasiswa tersebut diatas untuk masing – masing table 1 (satu) record untuk record pertama, maka perintahnya adalah:
Manipulasi Data Insert Table Mahasiswa INSERT INTO Mahasiswa Values (‘I01031001’,’Dewi Nurbaini’,’Bekasi’,’12/10/87’, ’Wanita’,’Jl. Dahlia I Blok BC 2/3’,’Bekasi Utara’, ’Hindu’,’021-8791290’,’TI’)
Manipulasi Data Update Kalimat UPDATE memungkinkan kita memodifikasi satu nilai kolom atau lebih unuk data table yang telah ada. Kita dapat menerapkan perubahan kesemua baris di table, satu subset baris, atau satu baris. Sintaks dari kalimat UPDATE tersebut adalah sebagai berikut: UPDATE table_name SET column_1 = value_1 [,column_2 = value_2 [,…]] WHERE condition
Contoh Perintah Update Table Mahasiswa UPDATE Mahasiswa set alm_m=’Jl.Seruni Raya No.3’, kota_m=’Cikarang’,agama_m=’Islam’,telpon_m=’02-9897119’, kode_jur=’TI’ WHERE nim=’I01031002’
Manipulasi Data Delete Kalimat DELETE memungkinkan kita menghapus satu record ataulebih pada suatu table dlam database. Sintaks dari kalimat DELETE tersebut adalah sebagai berikut: DELETE FROM table_name WHERE condition
Data Definition Data DDL (Data Definition Language) memungkinkan kita membuat dan menghancurkan objek – objek basis data (database/schema, domain, table, view, dan index . Perintah DDL seperti Create, Alter, Drop
Data Definition Data Create Sintaks : Create Database [Database_name] Contoh : Create Database NilaiMahasiswa
Contoh Membuat Tabel dengan perintah Create Create Table Mahasiswa ( nim char (9) not null, nama_m varchar (35) not null, tpt_lhr_m varchar(26), tgl_lhr_m datetime, j_kelamin varchar(10), alm_m varchar(90), kota_m varchar (20), agama_m varchar(10), telpon_m char (13), kode_jur char (2) )
Data Definition Data Alter Menambahkan kolom email dengan tipe data varchar, panjang karakternya = 30 ALTER TABLE Mahasiswa Add email varchar(30)
Data Definition Data Drop Sintaks : Drop Table [table_name] [RESTRICT | CASCADE] Contoh : Untuk melakukan penghapusan table Mahasiswa berserta strukturnya, maka perintahnya adalah: Drop Table Mahasiswa