Selasa, 20 Desember 2011

SQL (DML,DDL,DCL)

Terdapat 3 (dua) jenis perintah SQL, yaitu DDL, DML dan DCL.

1. DDL atau Data Definition Language
DDL merupakan perintah SQL yang berhubungan dengan pendefinisian suatu struktur database, dalam hal ini database dan table. Beberapa perintah dasar yang termasuk DDL ini antara lain :

  • CREATE
  • ALTER
  • RENAME
  • DROP
 DDL - Data Definition Language
merupakan kumpulan perintah SQL yang digunakan untuk membuatmengubah danmenghapus struktur dan definisi metadata dari objek-objek database


DDL - Data Definition Language
Seperti definisi yang telah dijelaskan di atas, DDL adalah kumpulan perintah SQL yang digunakan untuk membuat (create), mengubah (alter) dan menghapus (drop) struktur dan definisi tipe data dari objek-objek database.

Objek-objek database pada yang dimaksud - pada MySQL - adalah sebagai berikut :
  • Database
  • Table
  • View
  • Index
  • Procedure (Stored Procedure)
  • Function
  • Trigger
Contoh :

-- Perintah berikut akan membuat table pada database kita dengan nama "ms_karyawan"
CREATE
 TABLE ms_karyawan (
  kode_cabang varchar(10) default NULL,  kode_karyawan varchar(10) NOT NULL,  nama_depan varchar(8) default NULL,  nama_belakang varchar(9) default NULL,  jenis_kelamin varchar(1) default NULL,  PRIMARY KEY  (kode_karyawan)
)
Daftar Perintah DDL pada MySQL 5.0 
Berikut adalah contoh perintah DDL yang digunakan pada MySQL. Klik pada link untuk melihat rincian penggunaan dari perintah tersebut.
  • Pembuatan (CREATE)
  • Perubahan (ALTER & RENAME)
    • ALTER DATABASE
    • ALTER FUNCTION
    • ALTER PROCEDURE
    • ALTER TABLE
    • ALTER VIEW
    • RENAME TABLE
  • Penghapusan (DROP)
    • DROP DATABASE
    • DROP FUNCTION
    • DROP INDEX
    • DROP PROCEDURE
    • DROP TABLE
    • DROP TRIGGER
    • DROP VIEW


Tabel Matrix Perintah DDL MySQL 5.0
 OBJECT
CREATE
 ALTER
 DROP
RENAME 
 DATABASE
 Yes
Yes
 Yes

 FUNCTION
 Yes
Yes
 Yes

 INDEX
 Yes

 Yes

 PROCEDURE
 Yes
Yes
 Yes

 TABLE
 Yes
Yes
 Yes
 Yes
 TRIGGER
 Yes

 Yes

 VIEW
 Yes
Yes
 Yes



  
2. DML atau Data Manipulation Language
DML merupakan perintah SQL yang berhubungan dengan manipulasi atau pengolahan data atau record dalam table. Perintah SQL yang termasuk dalam DML antara lain :
  • SELECT
  • INSERT
  • UPDATE
  • DELETE

DML - Data Manipulation Language
DML sendiri adalah kumpulan perintah SQL yang berhubungan dengan pekerjaan mengolah data di dalam table - dan tidak terkait dengan perubahan struktur dan definisi tipe data dari objek database seperti table, column, dan sebagainya.

Contoh DML : Mengambil Seluruh Row Data dari table MS_KARYAWAN

SELECT 
FROM ms_karyawan


Contoh DML : Memasukkan data ke dalam tabel ms_karyawan

INSERT INTO ms_karyawan(                kode_cabang,                kode_karyawan,                nama_depan,                nama_belakang,                jenis_kelamin)
VALUES ('cab-001','kar-001','Feris','Thia','Laki-laki');
Beberapa daftar Perintah DML MySQL 5.0
  • CALL
  • DELETE
  • DO
  • HANDLER
  • INSERT
  • LOAD DATA INFILE
  • REPLACE
  • SELECT
  • TRUNCATE

3. DCL atau Data Control Language
DCL (bukan BCL) merupakan perintah SQL yang berhubungan dengan pengaturan hak akses user MySQL, baik terhadap server, database, tabel maupun field. Perintah SQL yang termasuk dalam DCL antara lain :
  • GRANT
  • REVOKE

Membuat, Menampilkan, Membuka dan Menghapus Database

1. Membuat Database
Sintaks umum membuat database baru adalah:
CREATE DATABASE [IF NOT EXISTS] nama_database;
Bentuk perintah di atas akan membuat sebuah database baru dengan nama nama_database. Aturan penamaan sebuah database sama seperti aturan penamaan sebuah variabel, dimana secara umum nama database boleh terdiri dari huruf, angka dan under-score (_). Jika database yang akan dibuat sudah ada, maka akan muncul pesan error. Namun jika ingin otomatis menghapus database yang lama jika sudah ada, aktifkan option IF NOT EXISTS.Setiap kita membuat database baru, maka sebenarnya MySQL akan membuat suatu folder (direktori) sesuai dengan nama databasenya yang ditempatkan secara default di \mysql\data. Di dalam folder tersebut nantinya akan terdapat file-file yang berhubungan dengan tabel dalam database.
Berikut ini contoh perintah untuk membuat database baru dengan nama “mahasiswa” :
CREATE DATABASE mahasiswa;
Jika query di atas berhasil dieksekusi dan database berhasil dibuat, maka akan ditampilkan pesan sebagai berikut :
Query OK, 1 row affected (0.02 sec)
2. Melihat Database
Untuk melihat database yang baru saja dibuat atau yang sudah ada, dapat menggunakan perintah sebagai berikut :
SHOW DATABASES;
Hasil dari perintah di atas akan menampilkan semua database yang sudah ada di MySQL. Berikut ini contoh hasil dari query di atas :
+--------------+
| Database     |
+--------------+
| mahasiswa    |
| mysql        |
| test         |
+--------------+
3 rows in set (0.02 sec)
3. Membuka Database
Sebelum melakukan manipulasi tabel dan record yang berada di dalamnya, kita harus membuka atau mengaktifkan databasenya terlebih dahulu. Untuk membuka database “mahasiswa”, berikut ini querynya :
USE mahasiswa;
Jika perintah atau query di atas berhasil, maka akan ditampilkan pesan sebagai berikut :
Database changed
4. Menghapus Database
Untuk menghapus suatu database, sintaks umumnya adalah sbb :
DROP DATABASE [IF EXISTS] nama_database;
Bentuk perintah di atas akan menghapus database dengan nama nama_database. Jika databasenya ada maka database dan juga seluruh tabel di dalamnya akan dihapus. Jadi berhati-hatilah dengan perintah ini! Jika nama database yang akan dihapus tidak ditemukan, maka akan ditampilkan pesan error. Aktifkan option IF EXISTS untuk memastikan bahwa suatu database benar-benar ada.
Berikut ini contoh perintah untuk menghapus database dengan nama “mahasiswa” :
DROP DATABASE mahasiswa;



Membuat, Mengubah dan Menghapus Table

1. Membuat Table
Bentuk umum perintah SQL untuk membuat tabel baru adalah sbb:
CREATE TABLE nama_tabel (
field1 tipe(panjang),
field2 tipe(panjang),
...
fieldn tipe(panjang),
PRIMARY KEY (field_key)
);
Bentuk umum di atas merupakan bentuk umum pembuatan tabel yang sudah disederhanakan. Penamaan tabel dan field memiliki aturan yang sama dengan penamaan database.
MySQL menyediakan berbagai tipe data dengan spesifikasi dan panjang masing-masing. Tipe data untuk field dalam MySQL diantaranya ditampilkan pada tabel berikut ini :
JENIS TIPETIPEKETERANGAN
NUMERIKTINYINT-128 s/d 127 SIGNED
0 s/d 255 UNSIGNED
SMALLINT-32768 s/d 32767 SIGNED
0 s/d 65535 UNSIGNED.
MEDIUMINT-8388608 s/d 8388607 SIGNED
0 s/d 16777215 UNSIGNED
INT-2147483648 s/d 2147483647 SIGNED
0 s/d 4294967295 UNSIGNED.
BIGINT-9223372036854775808 s/d 9223372036854775807 SIGNED
0 s/d 18446744073709551615 UNSIGNED.
FLOATBilangan pecahan presisi tunggal
DOUBLEBilangan pecahan presisi ganda
DECIMALBilangan dengan desimal



DATE/TIMEDATETanggal dengan format YYYY-MM-DD
DATETIMETanggal dan waktu dengan format : YYYY-MM-DD HH:MM:SS
TIMESTAMPTanggal dan waktu dengan format : YYYYMMDDHHMMSS
TIMEWaktu dengan format HH:MM:SS
YEARTahun dengan format YYYY



STRINGCHAR0 – 255 karakter
VARCHAR0 – 255 karakter
TINYTEXTString dengan panjang maksimum 255 karakter
TEXTString dengan panjang maksimum 65535 karakter
BLOBString dengan panjang maksimum 65535 karakter
MEDIUMTEXTString dengan panjang maksimum 16777215 karakter
MEDIUMBLOBString dengan panjang maksimum 16777215 karakter
LONGTEXTString dengan panjang maksimum 4294967295 karakter
LONGBLOBString dengan panjang maksimum 4294967295 karakter



KHUSUSENUMTipe data dengan isi tertentu
SETTipe data dengan isi tertentu
Sebagai contoh, kita akan membuat tabel baru dengan struktur sebagai berikut :
Nama tabel: mhs
NoNama FieldTipePanjang
1nimVarchar10
2namaVarchar30
3tgllahirDate-
4alamatText-
Untuk membuat tabel tersebut di atas, query atau perintah SQL-nya adalah sebagai berikut :
CREATE TABLE mhs (
nim varchar(10) NOT NULL,
nama varchar(30) NOT NULL,
tgllahir date,
alamat text,
PRIMARY KEY(nim)
 );
Jika query untuk membuat tabel di atas berhasil dijalankan, maka akan ditampilkan pesan sebagai berikut :
Query OK, 0 rows affected (0.16 sec)
Pada perintah di atas, beberapa hal yang perlu diperhatikan :
  • CREATE TABLE merupakan perintah dasar dari pembuatan table.
  • mhs merupakan nama tabel yang akan dibuat.
  • Nim, nama, tgllahir dan alamat merupakan nama field
  • Varchar, date dan text merupakan tipe data dari field
  • NOT NULL merupakan option untuk menyatakan bahwa suatu field tidak boleh kosong.
  • PRIMARY KEY merupakan perintah untuk menentukan field mana yang akan dijadikan primary key pada tabel.
  • 10 dan 30 di belakang tipe data merupakan panjang maksimal dari suatu field
  • Untuk tipe data date dan text (dan beberapa tipe data lainnya) panjang karakter maksimalnya tidak perlu ditentukan.
  • Jangan lupa akhiri perintah dengan titik-koma (;)
Selanjutnya untuk melihat tabel mhs sudah benar-benar sudah ada atau belum, ketikkan perintah berikut ini :
SHOW TABLES;
Perintah di atas akan menampilkan seluruh tabel yang sudah ada dalam suatu database. Contoh hasil dari perintah di atas adalah sebagai berikut :
+---------------------+
| Tables_in_mahasiswa |
+---------------------+
| mhs                 |
+---------------------+
1 rows in set (0.01 sec)
Untuk melihat struktur tabel “mhs” secara lebih detail, cobalah perintah atau query sebagai berikut :
DESC mhs;
DESC merupakan singkatan dari DESCRIBE (dalam query bisa ditulis lengkap atau hanya 4 karakter pertama) dan mhs adalah nama tabel yang akan dilihat strukturnya. Dari perintah di atas, akan ditampilkan struktur tabel mhs sebagai berikut :
+----------+-------------+------+-----+---------+-------+
| Field    | Type        | Null | Key | Default | Extra |
+----------+-------------+------+-----+---------+-------+
| nim      | varchar(10) |      | PRI |         |       |
| nama     | varchar(30) |      |     |         |       |
| tgllahir | date        | YES  |     | NULL    |       |
| alamat   | text        | YES  |     | NULL    |       |
+----------+-------------+------+-----+---------+-------+
4 rows in set (0.00 sec)
Dari struktur tabel mhs yang ditampilkan di atas, dapat diketahui bahwa :
  • Terdapat 4 (empat) field dengan tipe masing-masing.
  • Primary Key dari tabel mhs adalah nim. Lihat kolom Key pada field nim.
  • Untuk field nim dan nama defaultnya tidak boleh kosong. Lihatlah kolom Nulldan Default pada field nim dan nama
  • Untuk field tgllahir dan alamat defaultnya boleh kosong. Lihatlah kolom Nulldan Default pada field tgllahir dan alamat.

Proses perancangan DBMS(DataBase Manajemen Sistem)

Proses Perancangan Database

Proses perancangan database terdiri dari 6 tahap:
  • Tahap 1, Pengumpulan data dan analisis
  • Tahap 2, Perancangan database secara konseptual
  • Tahap 3, Pemilihan DBMS
  • Tahap 4, Perancangan database secara logika (data model mapping)
  • Tahap 5, Perancangan database secara fisik
  • Tahap 6, Implementasi Sistem database
Secara khusus proses perancangan berisi 2 aktifitas paralel:
  1. Aktifitas yang melibatkan perancangan dari isi data dan struktur database,
  2. Aktifitas mengenai perancangan pemrosesan database dan aplikasi-aplikasi perangkat lunak.
Di lain pihak, kita biasanya menentukan perancangan aplikasi-aplikasi database dengan mengarah kepada konstruksi skema database yang telah ditentukan selama aktifitas yang pertama.
6 tahapan diatas tadi tidak harus diproses berurutan. Pada tahap ke 1 merupakan kumpulan informasi yang berhubungan dengan penggunaan database. Tahap 6 merupakan implementasi database-nya.
Tahap 1 dan 6 kadang-kadang bukan merupakan bagian dari perancangan database. Sedangkan yang merupakan inti dari proses perancangan database adalah pada tahap 2, 4, 5.
  • Tahap 1 – Pengumpulan data dan analisa
    Merupakan suatu tahap dimana kita melakukan proses indentifikasi dan analisa kebutuhan-kebutuhan data dan ini disebut pengumpulan data dan analisa. Untuk menentukan kebutuhan-kebutuhan suatu sistem database, kita harus mengenal terlebih dahulu bagian-bagian lain dari sistem informasi yang akan berinteraksi dengan sistem database, termasuk para user yang ada dan parauseryang baru beserta aplikasi-aplikasinya. Kebutuhan-kebutuhan dari parauser dan aplikasi-aplikasi inilah yang kemudian dikumpulkan dan dianalisa.
    Berikut ini adalah aktifitas-aktifitas pengumpulan data dan analisa:
    1. Menentukan kelompok pemakai dan bidang-bidang aplikasinya
    2. Peninjauan dokumentasi yang ada
    3. Analisa lingkungan operasi dan pemrosesan data
    4. Daftar pertanyaan dan wawancara
  • Tahap 2, Perancangan database secara konseptual
    Pada tahap ini akan dihasilkan conceptual schema untuk database yang tergantung pada sebuah DBMS yang spesifik. Sering menggunakan sebuah high-level data modelseperti ER/EER modelselama tahap ini. Dalam conceptual schema, kita harus merinci aplikasi-aplikasi databaseyang diketahui dan transaksi-transaksi yang mungkin.Tahap perancangan databasesecara konseptual mempunyai 2 aktifitas pararel:
    1. Perancangan skema konseptual
      Menguji kebutuhan-kebutuhan data dari suatu database yang merupakan hasil dari tahap 1 dan menghasilkan sebuah conceptual database schemapada DBMS-independent model data tingkat tinggi seperti EER (Enhanced Entity Relationship) model.Untuk menghasilkan skema tersebut dapat dihasilkan dengan penggabungan bermacam-macam kebutuhan user dan secara langsung membuat skema database atau dengan merancang skema-skema yang terpisah dari kebutuhan tiap-tiap user dan kemudian menggabungkan skema-skema tersebut. Model data yang digunakan pada perancangan skema konseptual adalah DBMS-independent dan langkah selanjutnya adalah memilih DBMS untuk melakukan rancangan tersebut.
    2. Perancangan transaksi
      Menguji aplikasi-aplikasi databasedimana kebutuhan-kebutuhannya telah dianalisa pada fase 1, dan menghasilkan perincian transaksi-transaksi ini.Kegunaan tahap ini yang diproses secara paralel bersama tahapp perancangan skema konseptual adalah untuk merancang karakteristik dari transaksi-transaksi database yang telah diketahui pada suatu DBMS-independent. Transaksi-transaksi ini akan digunakan untuk memproses dan memanipulasi database suatu saat dimana databasetersebut dilaksanakan.
  • Tahap 3, Pemilihan DBMS
    Pemilihan databaseditentukan oleh beberapa faktor diantaranya faktor teknik, ekonomi, dan politik organisasi.Contoh faktor teknik:
    Keberadaan DBMS dalam menjalankan tugasnya seperti jenis-jenis DBMS (relational, network, hierarchical, dan lain-lain), struktur penyimpanan, dan jalur akses yang mendukung DBMS, pemakai, dan lain-lain.Faktor-faktor ekonomi dan organisasi yang mempengaruhi satu sama lain dalam pemilihan DBMS :
    1. Struktur data
      Jika data yang disimpan dalam database mengikuti struktur hirarki, maka suatu jenis hirarki dari DBMS harus dipikirkan.
    2. Personal yang telah terbiasa dengan suatu sistem
      Jika staf programmer dalam suatu organisasi sudah terbiasa dengan suatu DBMS, maka hal ini dapat mengurangi biaya latihan dan waktu belajar.
    3. Tersedianya layanan penjual
      Keberadaan fasilitas pelayanan penjual sangat dibutuhkan untuk membantu memecahkan beberapa masalah sistem.
  • Tahap 4, Perancangan database secara logika (data model mapping)
    Tahap selanjutnya adalah membuat sebuah skema konseptual dan skema eksternal pada model data dari DBMS yang terpilih. Tahap ini dilakukan oleh pemetaan skema konseptual dan skema eksternal yang dihasilkan pada tahap 2. Pada tahap ini, skema konseptual ditransformasikan dari model data tingkat tinggi yang digunakan pada tahap 2 ke dalam model data dari model data dari DBMS yang dipilih pada tahap 3.Pemetaan tersebut dapat diproses dalam 2 tingkat:
    1. Pemetaan system-independent
      Pemetaan ke dalam model data DBMS dengan tidak mempertimbangkan karakteristik atau hal-hal yang khusus yang berlaku pada implementasi DBMS dari model data tersebut.
    2. Penyesuain skema ke DBMS yang spesifik
      Mengatur skema yang dihasilkan pada langkah 1 untuk disesuaikan pada implementasi yang khusus di masa yang akan datang dari suatu model data yang digunakan pada DBMS yang dipilih.Hasil dari tahap ini memakai perintah-perintah DDL (Data Definition Language) dalam bahasa DBMS yang dipilih yang menentukan tingkat skema konseptual dan eksternal dari sistem database. Tetapi 10 dalam beberapa hal, perintah-perintah DDL memasukkan parameter-parameter rancangan fisik sehingga DDL yang lengkap harus menunggu sampai tahap perancangan databasesecara fisik telah lengkap.Tahap ini dapat dimulai setelah pemilihan sebuah implementasi model data sambil menunggu DBMS yang spesifik yang akan dipilih. Contoh: jika memutuskan untuk menggunakan beberapa relational DBMS tetapi belum memutuskan suatu relasi yang utama. Rancangan dari skema eksternal untuk aplikasi-aplikasi yang spesifik seringkali sudah selesai selama proses ini.
  • Tahap 5, Perancangan database secara fisik
    Perancangan database secara fisik merupakan proses pemilihan struktur-struktur penyimpanan dan jalur-jalur akses pada file-file databaseuntuk mencapai penampilan yang terbaik pada bermacam-macam aplikasi.Selama fase ini, dirancang spesifikasi-spesifikasi untuk database yang disimpan yang berhubungan dengan struktur-struktur penyimpanan fisik, penempatan record dan jalur akses. Berhubungan dengan internal schema(pada istilah 3 level arsitektur DBMS).Beberapa petunjuk dalam pemilihan perancangandatabasesecara fisik :
    1. Response time
      Waktu yang telah berlalu dari suatu transaksi database yang diajukan untuk menjalankan suatu tanggapan. Pengaruh utama pada response timeadalah di bawah pengawasan DBMS yaitu : waktu akses database untuk data item yang ditunjuk oleh suatu transaksi. Response time juga dipengaruhi oleh beberapa faktor yang tidak berada di bawah pengawasan DBMS, seperti penjadwalan sistem operasi atau penundaan komunikasi.
    2. Space utility
      Jumlah ruang penyimpanan yang digunakan oleh file-file database dan struktur-struktur jalur akses.
    3. Transaction throughput
      Rata-rata jumlah transaksi yang dapat diproses per menit oleh sistemdatabase, dan merupakan parameter kritis dari sistem transaksi (misal : digunakan pada pemesanan tempat di pesawat, bank, dll). Hasil dari fase ini adalah penentual awal dari struktur penyimpanan dan jalur akses untuk file-file database.
  • Tahap 6, Implementasi Sistem database
    Setelah perancangan secara logika dan secara fisik lengkap, kita dapat melaksanakan sistem database. Perintah-perintah dalam DDL dan SDL(Storage Definition Language) dari DBMS yang dipilih, dihimpun dan digunakan untuk membuat skema database dan file-file database (yang kosong). Sekarangdatabasetersebut dimuat (disatukan) dengan datanya.Jika data harus dirubah dari sistem komputer sebelumnya, perubahan-perubahan yang rutin mungkin diperlukan untuk format ulang datanya yang kemudian dimasukkan kedatabase yang baru. Transaksi-transaksi database sekarang harus dilaksanakan oleh para programmmer aplikasi.Spesifikasi secara konseptual diuji dan dihubungkan dengan kode program dengan perintah-perintah dariembedded DML yang telah ditulis dan diuji. Suatu saat transaksi-transaksi tersebut telah siap dan data telah dimasukkan ke dalam database, maka tahap perancangan dan implementasi telah selesai, dan kemudian tahap operasional dari sistem database dimulai.