02/12/2010 Agenda Pengantar SQL DDL Tipe Data Referential Integrity Constraint Structured Query Language (SQL) (Pert. 9) Oleh : Umi Laili Yuhana, S.Kom, M.Sc. Sarwosri, S.Kom, M.T. Dr. Ir. Siti Rochimah BASIS DATA TEKNIK INFORMATIKA - ITS GASAL 2010/2011 1 BASIS DATA TEKNIK INFORMATIKA - ITS GASAL 2010/2011 2 SQL • Singkatan dari Structured Query Language, dalam bahasa inggris dibaca SEQUEL • SQL : bahasa query standar yang digunakan untuk mengakses basis data relasional STRUCTURED QUERY LANGUAGE (SQL) BASIS DATA TEKNIK INFORMATIKA - ITS GASAL 2010/2011 3 Kemampuan SQL 4 Pemakai SQL • Pendefinisian struktur data (contoh: create table, create view, dll) • Pengubahan data (contoh: update data) • Manipulasi data / memperoleh data • Pengaturan sekuritas BASIS DATA TEKNIK INFORMATIKA - ITS GASAL 2010/2011 BASIS DATA TEKNIK INFORMATIKA - ITS GASAL 2010/2011 • Database Administrator • Programmer • Pengguna 5 BASIS DATA TEKNIK INFORMATIKA - ITS GASAL 2010/2011 6 1 02/12/2010 Elemen SQL Penggunaan SQL Contoh SQL: SELECT * FROM PEGAWAI WHERE ALAMAT = “JL. Teknik Kimia 25 Surabaya” Perintah SQL yang meminta sesuatu tindakan kepada DBMS; contoh: Alter, commit, create, delete, drop, grant, insert, revoke, rollback, select, update SQL dipakai oleh DBA untuk menciptakan serta mengendalikan pengaksesan basis data SQL sebagai bahasa administrasi basis data Fungsi bawaan: sebuah sub program yang menghasilkan suatu nilai jika dipanggil. Contoh: Min, AVG, dll SQL sebagai bahasa query interaktif Pengguna dapat memberikan perintahperintah untuk mengakses basis data sesuai kebutuhan terutama yang diperlukan saat itu SQL sebagai bahasa pemrograman basis data Pemrogram dapat menggunakan perintah-perintah SQL dalam aplikasi yang dibuat, guna mengakses basis data SQL sebagai bahasa klien/server Klien dapat menjalankan aplikasi yang mengakses Basis data yang ada di server BASIS DATA TEKNIK INFORMATIKA - ITS GASAL 2010/2011 7 Kelompok Pernyataan SQL Data Definition Language (DDL) • • Untuk mendefinisikan objek-objek basis data, tabel, atribut, batasanbatasan thd atribut, serta hubungan antar tabel Meliputi : CREATE, ALTER, DROP Data Control Language (DCL) • • Untuk mengendalikan pengaksesan data Meliputi : GRANT, REVOKE, LOCK TABLE Data Manipulation Language (DML) • • • Untuk memanipulasi data dalam basis data Misal: untuk pengambilan, pemasukan, pengubahan dan penghapusan. Meliputi: SELECT, INSERT, DELETE, UPDATE Pengendali Transaksi • • Untuk mengendalikan pengeksekusian transaksi Meliputi : COMMIT, ROLLBACK Pengendali Programatik • • Mencakup pernyataan yang berhubungan dengan pemanfaatan SQL dalam bahasa lain BASIS DATA TEKNIKCLOSE INFORMATIKA - ITS Meliputi : DECLARE, FETCH, OPEN, GASAL 2010/2011 9 Nama digunakan sebagai identitas bagi objek-objek pada DBMS. Contoh objek: tabel, kolom, pengguna, dll. Contoh nama tabel: Pegawai Ekspresi adalah segala sesuatu yang menghasilkan nilai. Ekspresi digunakan untuk menghitung nilai. Contoh: harga_total = harga * jumlah_barang Setiap data memiliki tipe data. Contoh tipe data: Char, integer, numeric, varchar, money, boolean, blob, serial, date, dll Konstanta menyatakan nilai yang tetap. Contoh: 75, Jl. Teknik Kimia 25 Surabaya, dll BASIS DATA TEKNIK INFORMATIKA - ITS GASAL 2010/2011 8 Tipe Data • Untuk setiap kolom/field yang terdapat pada sebuah tabel, harus ditentukan pula tipe datanya yang menentukan jangkauan nilai yang bisa diisikan • Masing-masing DBMS memiliki jenis dan nama tipe data tersendiri. Bisa jadi ada yang khusus (tidak ada pada yang lain), atau diberi dengan nama lain, atau bahkan tidak memiliki tipe data yang standar BASIS DATA TEKNIK INFORMATIKA - ITS GASAL 2010/2011 10 Tipe Data Beberapa Tipe data yang standar SQL-92 adalah: Binary Binary varying Character() Character varying() Datetime Double precision DATA DEFINITION LANGUAGE (DDL) Float Integer Numeric Dsb BASIS DATA TEKNIK INFORMATIKA - ITS GASAL 2010/2011 11 BASIS DATA TEKNIK INFORMATIKA - ITS GASAL 2010/2011 12 2 02/12/2010 DDL Data Definition Language (DDL) berkaitan dengan perintah-perintah untuk pendefinisian obyek-obyek basis data DDL untuk CREATE Tabel Syntax pembuatan tabel Jenis Perintah DDL & Contohnya DDL untuk database CREATE; untuk membuat obyek baru Contoh: CREATE DATABASE db_akademik DDL untuk Tabel ALTER; untuk memodifikasi obyek [aturann] berisi aturan untuk field/kolom ybs, bersifat opsional. Biasanya berupa: NOT NULL DEFAULT<nilai> [aturanTabel] berisi aturan-aturan yang berlaku untuk tabel tersebut. Jika aturan lebih dari satu, maka dibatasi oleh tanda koma. Aturan tabel biasanya: •primary key (<DaftarKolomKey>) •foreign key (<daftarKolomForeignKey>) references <namaTabel> (<daftarKolom>) •[ON DELETE <aturanDelete>] [ON UPDATE <aturanUpdate>]) [AturanTabel] bisa diberi nama. Jika diberi nama, maka syntaxnya sbb: CONSTRAINT <namaAturan> <AturanTabel> Contoh: DDL untuk View ALTER TABLE cust_table ADD (cust_sex char(1) NOT NULL, cust_credit_rating number); DROP; untuk menghapus obyek DDL untuk Trigger / stored procedure Contoh: DROP TABLE cust_table DDL untuk Index BASIS DATA TEKNIK INFORMATIKA - ITS GASAL 2010/2011 BASIS DATA TEKNIK INFORMATIKA - ITS GASAL 2010/2011 13 14 DDL Untuk ALTER & DROP Tabel CREATE TABLE Modifikasi tabel: 1. Menambahkan kolom baru: ALTER TABLE <namaTabel> ADD <namakolom> <tipedata> <aturan> CONTOH: ALTER TABLE mahasiswa ADD (tgl_lahir date); Contoh: Pembuatan tabel Mahasiswa dan set nrp menjadi primary key, nilai default pada jeniskel=”L”, nipdosen mereferensi ke tabel dosen field nip CREATE TABLE Mahasiswa( NRP CHAR(10) not null, NIP CHAR(18) not null, MHSNAMA VARCHAR2(20), MHSALAMAT VARCHAR2(50), MHSJENISKEL CHAR(1) DEFAULT ‘L’, constraint PK_MAHASISWA primary key (NRP), constraint FK_MHS_DSN foreign key (NIP) REFERENCES Dosen(NIP) ); BASIS DATA TEKNIK INFORMATIKA - ITS GASAL 2010/2011 2. Menghapus kolom: ALTER TABLE <namaTabel> DROP TABLE <namaTabel> AS • Trigger adalah sebuah obyek dalam database yang berupa prosedur yang merespon setiap kali terdapat proses modifikasi pada tabel • Proses modifikasi berupa: Insert, Update dan delete Syntax: CREATE TRIGGER <namaTrigger> ON TABLE <namaTabel> FOR [DELETE] [,] [INSERT] [,] [UPDATE] AS <perintahSQL> • Contoh: Membuat View dengan nama MahasiswaPria: Contoh: CREATE VIEW MahasiswaPria AS SELECT * FROM Mahasiswa WHERE jeniskel=”L” BASIS DATA TEKNIK INFORMATIKA - ITS GASAL 2010/2011 16 DDL Untuk TRIGGER • Syntax CREATE VIEW <namaView> <SQLQuery> BASIS DATA TEKNIK INFORMATIKA - ITS GASAL 2010/2011 15 DDL Untuk View View adalah tabel bayangan Tidak menyimpan data secara fisik. Biasanya berupa hasil query dari tabel-tabel dalam sebuah database drop <namakolom> Menghapus tabel, syntax: 17 Membuat trigger dg nama tLogUbahNilai untuk setiap penambahan / update data pada tabel Pesertakul, dilakukan penambahan data pada tabel LogHistoris CREATE TRIGGER tLogUbahNilai ON TABLE pesertakul FOR UPDATE, INSERT AS INSERT INTO LogHistoris (tanggal, proses) VALUES (getDate(), ‘Terjadi proses perubahan data nilai’) BASIS DATA TEKNIK INFORMATIKA - ITS GASAL 2010/2011 18 3 02/12/2010 Referential Integrity Constraint • Digunakan untuk: menjaga konsistensi barisbaris data antara 2 buah tabel • Berkaitan dengan insert, update dan delete data Child Tabel REFERENTIAL INTEGRITY CONSTRAINT BASIS DATA TEKNIK INFORMATIKA - ITS GASAL 2010/2011 Tabel mahasiswa berelasi dengan tabel dosen Karenanya, referential integrity constraintnya harus diperhatikan dan dijaga Parent Tabel BASIS DATA TEKNIK INFORMATIKA - ITS GASAL 2010/2011 19 20 Referential Integrity Constraint Referential Integrity Constraint Aturan untuk Update berlaku pada proses modifikasi di parent table Aturan untuk Delete berlaku pada proses modifikasi di parent table Cascade Pembaruan sebuah baris data diikuti Cascade Menghapus seluruh baris data pada child dengan pembaruan baris data pada child table yang terelasikan. Restrict mencegah proses pembaruan data jika terdapat baris data di child table yang terelasikan. Ignore mengabaikan referensi. Boleh memperbarui data pada parent, tapi tidak memperbarui data yang berelasi pada child table. table yg terelasikan. Restrict mencegah penghapusan jika terdapat baris data yang berelasi pada child table. Ignore mengabaikan referensi. Boleh menghapus data, dan tidak ada efeknya bagi child table. BASIS DATA TEKNIK INFORMATIKA - ITS GASAL 2010/2011 BASIS DATA TEKNIK INFORMATIKA - ITS GASAL 2010/2011 21 Referential Integrity Constraint Referential Integrity Constraint Aturan untuk Insert Contoh • Restrict Tidak boleh menambah data pada child table, jika nilai yang dimasukkan pada kolom yang berelasi tidak terdapat pada parent tabelnya. • Ignore mengabaikan referensi. Boleh menambah data pada child, walaupun nilai yang dimasukkan pada kolom yang berelasi tidak terdapat pada parent tabel. CREATE TABLE Mahasiswa (nrp CHAR(10), nama CHAR(20), nip CHAR(10) PRIMARY KEY (nrp), FOREIGN KEY (nip) REFERENCES Dosen ON DELETE CASCADE ON UPDATE CASCADE ) BASIS DATA TEKNIK INFORMATIKA - ITS GASAL 2010/2011 23 BASIS DATA TEKNIK INFORMATIKA - ITS GASAL 2010/2011 22 24 4 02/12/2010 Latihan Soal Pembahasan • Buatlah sebuah tabel barang yang atributnya kode barang, dan nama barang. • Tulislah syntax DDL-nya, lalu dengan syntax alter table, tambahkan primary key pada kode barang. • Dan tambahkan atribut jumlah barang pada tabel barang. • Lalu, buatlah tabel pembelian dengan atribut id pembelian, id barang (merupakan foreign key dari tabel barang), jumlah barang barang transaksi, dan tanggal. BASIS DATA TEKNIK INFORMATIKA - ITS GASAL 2010/2011 25 • • • • Membuat tabel barang dengan atribut kode barang dan nama barang : CREATE TABLE BARANG( KODE_BARANG CHAR(8), NAMA_BARANG VARCHAR2(25) ); Menambahkan primary key pada kode barang : ALTER TABLE BARANG ADD CONSTRAINT PK_BARANG PRIMARY KEY (KODE_BARANG) Menambahkan atribut jumlah barang : ALTER TABLE BARANG ADD JUMLAH BARANG (NUMBER) Membuat tabel pembelian : CREATE TABLE PEMBELIAN ( ID_BELI CHAR(8), KODE_BARANG CHAR(8), JUMLAH_TRANSAKSI NUMBER, TANGGAL DATE, CONSTRAINT PK_PEMBELIAN PRIMARY KEY (ID_BELI), CONSTRAINT FK_PEMBELIAN FOREIGN KEY (KODE_BARANG) REFERENCES BARANG(KODE_BARANG) ); BASIS DATA TEKNIK INFORMATIKA - ITS GASAL 2010/2011 26 Pustaka • Konsep & Tuntunan Praktis Basis Data, Abdul Kadir, 2001 BASIS DATA TEKNIK INFORMATIKA - ITS GASAL 2010/2011 27 5