Minggu, 25 Maret 2012

Tugas 5 "DCL dan Normalisasi"


DCL dan Normalisasi

Kali ini saya ingin mencoba membahas dari bab ini yaitu DCL dan Normalisasi, bagaimana kita mengerti dan memahami apa itu DCL (Data Control Language) juga bagaimana perintah-perintah cara pengaplikasianya, lalu ada lagi bagaimana kita bisa memahami contoh kasus lain tentang normalisasi. Berikut penjelasan dari bab ini.

Perintah-perintah DCL
DCL adalah perintah-perintah yang digunakan untuk membantu mengontrol keamanan setiap database atau sebagian isi dari database dengan membuat hak – hak akses tertentu bagi setiap user. Ada 2 perintah yang mendukung terjadinya DCL (Data Control Language) yaitu Grant dan Revoke.

Penjelasan Grant
GRANT : Digunakan untuk memberikan hak akses oleh administrator (pemilik utama) server kepada user (pengguna biasa). Hak akses tersebut berupa hak membuat (CREATE), mengambil (SELECT), menghapus (DELETE), mengubah (UPDATE), dan hak khusus berkenaan dengan sistem databasenya.
Grant berfungsi juga untuk membuat user baru dan memberikan hak istimewa.
Grant digunakan untuk  memberikan privilege kepada tabel yang didefinisikan kepada pemakai lain.
Privilege untuk pemakai dalam perintah grant didefinisikan dengan  menggunakan nama-nama privilege. Nama privilege memudahkan admin untuk dapat memberikan privilege tanpa harus tahu apa  nama field dan tabel yang harus diisi.
Perintah grant secara otomatis akan menambah data pemakai apabila  data nama pemakai yang disertakan pada perintah tersebut belum ada  dalam tabel user. Perintah grant memudahkan administrator untuk tidak  perlu melakukan perintah pendefinisian privilege dengan menggunakan  sql.  Karena dengan menggunakan sql, kita harus hafal nama tabel yang  harus diisi, field apa saja yang harus diisi, jumlah field yang harus diisi.
Sintak Umum :            GRANT hak_akses ON nama_tabel TO pemakai;
                                    GRANT ALL PRIVILEGES ON database_name.* TO ‘myuser’
                                    IDENTIFIED BY ‘mypassword’;
Contoh Penggunaan :
1. GRANT SELECT ON Point_Of_Sales.jenis TO Febe;
2. GRANT SELECT ON Point_Of_Sales.jenisTO Winda;
3. GRANT SELECT ON Point_Of_Sales.item TO Elfrida;
4. GRANT ALL PRIVILEGES ON Point_Of_Sales.User TO Admin;
5. GRANT ALL ON Point_Of_Sales.jualDetail TO Admin
6. SHOW GRANTS FOR root@localhost;
7. SHOW GRANTS FOR Admin;
8. GRANT SELECT,INSERT ON Point_Of_Sales.jualDetail TO kasir;
9. GRANT SELECT(Kode,Nama) ON Point_Of_Sales.jenis TO Elfrida;
10. GRANT UPDATE(kodeItem,NmItem,kategori,Harga) ON Point_Of_Sales.item TO Elfrida;

Penjelasan Revoke
REVOKE : Perintah ini memiliki kegunaan terbalik dengan GRANT, yaitu untuk menghilangkan hak akses yang telah diberikan kepada user oleh administrator atau mencabut hak-hak dari seorang user terhadap database tertentu atau sebagian isi dari database.

Sintak umum revoke
REVOKE hak_akses ON nama_tabel FROM                                                
namaAccount@namaHost;
Menghapus batasan hak akses utk database & tabel :
REVOKE hak_akses ON nama_database.nama_tabel
FROM user;
Menghapus batasan hak akses untuk kolom tertentu :
REVOKE hak_akses(field1,field2, field3,…) ON 
nama_database.nama_tabel FROM user;

Penulisan perintah REVOKE :
Hak akses(field) : kita harus memberikan sedikitnya satu hak akses.  Untuk setiap hak akses yang diberikan, dapat juga diberikan daftar field  yang diletakkan dalam kurung, dan dipisahkan dengan tanda koma. Contoh : REVOKE select (nim, nama), update, insert(nim), …
 NamaTabel : merupakan nama tabel yang dikenal hak akses tersebut, harus ada sedikitnya satu nama tabel. Dan dapat menggunakan simbol asterik (*) untuk mewakili semua tabel pada database aktif. Penulisan namaTabel dapat juga diikuti oleh nama database diikuti nama tabel yang dipisahkan dengan tanda titik. Menggunakan simbol *.* berarti semua  database dan semua tabel yang dikenai hak akses tersebut.

Perintah-perintah lain yang termasuk dalam data control language adalah :
a. Commit
   Merupakan perintah yang digunakan untuk memindahkan transaksi dari memory pemrosesan ke database atau menyimpan secara permanen perubahan-perubahan kedalam database.
b. Rollback
  Merupakan perintah yang digunakan untuk membatalkan transaksi yang belum di commit atau membatalkan perubahan-perubahan terakhir dari perintah commit/rollback terakhir.


Contoh normalisasi pada kasus lain
Sebelum kita mengetahui normalisasi pada kasus baiknya ada baiknya kita harus mengetahui apa makna dari teknik normalisasi dan bagaimana cara penjelasanya dari Teknik Normalisasi untuk diaplikasikan itu sendiri.
Teknik Normalisasi
Normalisasi merupakan sebuah teknik dalam logical desain sebuah basis data, teknik pengelompokkan atribut dari suatu relasi sehingga membentuk struktur relasi yang baik (tanpa redudansi).

Contoh normalisasi dari kasus lain :
Sebuah field dengan banyak data atau kita bisa menyebutnya data tersebut tidak tunggal
no_id
tanggal
Nama_mahasiswa
nama_buku
1
23/03/2012
Andi
Teori fisika,Rancang Gedung
2
23/03/2012
Yono
Aplikasi Linux,ICT
3
23/03/2012
Steven
Pembuatan desain web,Video
4
23/02/2012
Gandhi
Teori fluida dan aerodinamika

Contoh teknik normalisasi sampai ketiga
Teknik Normalisasi Pertama :
Membuat sebuah primery key dari sebuah table, agar setiap data yang ingin kita buat atau field lainya hanya menggantungkan dari satu field dan itu dijadikan sebuah primery key. Dalam kasus ini sebuah nomor id akan dijadikan sebuah primery key namun primery key ini hanya melibatkan satu saja bukan id_buku ataupun id_penerbit.
Ket: field yang bercetak tebal yaitu primery key
tbl_pembelian
no_id
nama_pembeli
id_buku
judul_buku
id_penerbit
penerbit
id_harga
harga_buku
101
Mujiono
3410
Aerodinamika
100
Bumi aksara
36
Rp. 55.000,-
102
Adinda
2450
Rancang Gedung
250
Global Media
75
Rp. 72.000,-
103
Kemal
3410
Aerodinamika               
100
Bumi aksara
36
Rp. 55.000,-
104
Fahrobi
3224
Editing Audio
450
Kampus Buku
67
Rp. 80.000,-
105
Hasan
2789
Mengenal ICT
340
Wahana IT
84
Rp. 65.000,-

Teknik Normalisasi Kedua :
Lalu pada teknik yang kedua, sebuah field yang tergantung pada salah satu field harus dipisahkan, seperti contoh field sebuah judul_buku sangat tergantung pada field id_buku dan sama juga dengan penerbit yang menggantungkan terhadap id_penerbit, maka dari itulah field tersebut harus dipisahkan dengan tabel pembelian dan dari situlah kita bisa membuat sebuah tabel yang terpisah dari kolom tersebut.

tbl_pembelian
no_id
nama_pembeli
id_buku
id_penerbit
101
Mujiono
3410
100
102
Adinda
2450
250
103
Kemal
3410
100
104
Fahrobi
3224
450
105
Hasan
2789
340


tbl_buku
id_buku
judul_buku
3410
Aerodinamika
2450
Rancang Gedung
3410
Aerodinamika
3224
Editing Audio
2789
Mengenal ICT

tbl_penerbit
Id_Penerbit
penerbit
100
Bumi aksara
250
Global Media
100
Bumi aksara
450
Kampus Buku
340
Wahana IT

tbl_harga
id_harga
harga_buku
36
Rp. 55.000,-
75
Rp. 72.000,-
36
Rp. 55.000,-
67
Rp. 80.000,-
84
Rp. 65.000,-


Teknik Normalisasi Ketiga :
Selanjutnya kali ini proses teknik normalisasi ketiga, setelah pada field dipisahkan lalu dibuat table yang baru, maka saat yang tepat adalah pembenahan/memperbaiki data. Ada beberapa keganjilan sebuah data pada tabel sebuah buku record ketiga yang memiliki keganjilan dan tidak sesuai dengan field_id dan sebuah table penerbit pun memiliki redudansi yaitu sebuah pengulangan data, maka dari itulah table buku lalu table penerbit juga table harga harus segera diperbaiki agar tidak terjadi sebuah kesalahan data yang beresiko tidak dapat dismpanya data, berikut table yang diperbaiki :

tbl_buku
id_buku
judul_buku
3410
Aerodinamika
2450
Rancang Gedung
3224
Editing Audio
2789
Mengenal ICT

 tbl_penerbit
id_Penerbit
penerbit
100
Bumi aksara
250
Global Media
450
Kampus Buku
340
Wahana IT

tbl_harga
id_harga
harga_buku
36
Rp. 55.000,-
75
Rp. 72.000,-
67
Rp. 80.000,-
84
Rp. 65.000,-

Demikian bagaiman cara teknik normalisasi sampai ketiga pada databese, Sebenarnya masih ada lagi bentuk normalisasi yang lain, yi Normalisasi Boyce-Codd dan normalisasi keempat, hanya saja ada beberapa yang sangat jarang dipakai pada kebanyakan kasus normalisasi hanya sampai ketiga.