Bab 5 Data Control Language dan Teknik Normalisasi . 5a. Data Control Language 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. Perintah tersebut adalah : a. Grant dan b. Revoke 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. Grant • 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. Grant 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; 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. Data Control Language 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. 5b. Teknik Normalisasi Basis data yang baik harus memiliki kategori-kategori yang digunakan sebagai pengelompokan data-data. Penggunaan data dilakukan dengan menggunakan tabel-tabel. Pada tabel-tabel tersebut masih dikelompokkan lagi menjadi beberapa bagian untuk membedakan data yang satu dengan data yang lain. Pada sebuah tabel harus memiliki satu kategori data yang digunakan sebagai kunci untuk membedakan data-data yang ada didalam satu tabel. Data kunci tersebut tidak boleh sama antara satu data dengan data yang lain. Data kunci sering disebut dengan Primary Key. Dalam basis data terdapat urutan data mulai dari kumpulan yang terkecil sampai yang terbesar. Urutan nya dapat dilihat pada gambar di bawah ini. Urutan/jenjang Data Penjelasan • Characters : Bagian data yg terkecil, dapat berupa karakter numerik, huruf ataupun karakter-karakter khusus (special characters) yang membentuk suatu item data field. • Field : merepresentasikan suatu atribut dari record yg menunjukkan suatu item dari data, seperti misalnya nama, alamat dll. Kumpulan dari field membentuk suatu record. – field name: harus diberi nama untuk membedakan field yang satu dengan lainnya – field representation: tipe field (karakter, teks, tanggal, angka, dsb), lebar field (ruang maksimum yang dapat diisi dengan karakter-karakter data). – field value: isi dari field untuk masing-masing record. • Record : Kumpulan dari field membentuk suatu record. Record merepresentasikan suatu unit data individu yang tertentu. Kumpulan dari record membentuk suatu file. Misalnya file personalia, tiap-tiap record dapat mewakili data tiap-tiap karyawan. • File /tabel : File terdiri dari record2 yang menggambarkan satu kesatuan data yang sejenis. Misal file mata pelajaran berisi data tentang semua mata pelajaran yang ada. • Basis data : Kumpulan dari file/tabel membentuk suatu basis data Urutan/jenjang data dalam basis data Macam-macam tabel data 1. File Induk (master File) – a. file induk acuan (reference master file) : file induk yang recordnya relatif statis, jarang berubah nilainya. Misalnya file daftar gaji, file mata pelajaran. – b. file induk dinamik (dynamic master file): file induk yang nilai dari record-recordnya sering berubah atau sering dimutakhirkan (update) sebagai hasil dari suatu transaksi. Misalnya file induk data barang, yang setiap saat harus di up-date bila terjadi transaksi. 2. File Transaksi (transaction file) File ini bisa disebut file input; digunakan untuk merekam data hasil dari transaksi yang terjadi. Misalnya file penjualan yang berisi data hasil transaksi penjualan. Macam-macam tabel data 3. File Laporan (Report file) File ini bisa disebut output file, yaitu file yang berisi informasi yang akan ditampilkan. 4. File Sejarah (history file) File ini bisa disebut file arsip (archival file), merupakan file yang berisi data masa lalu yang sudah tidak aktif lagi, tetapi masih disimpan sebagai arsip. 5. File Pelindung (backup file) File ini merupakan salinan dari file-file yang masih aktif di dalam basis data pada suatu saat tertentu. File ini digunakan sebagai pelindung atau cadangan bila file basis data yang aktif mengalami kerusakan atau hilang. 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). Normalisasi Pertama (1st Normal Form) Aturan : a. Mendefinisikan atribut kunci b. Tidak adanya group berulang c. Semua atribut bukan kunci tergantung pada atribut kunci Normalisasi Kedua (2nd Normal Form) Aturan : a. Sudah memenuhi dalam bentuk normal kesatu b. Sudah tidak ada ketergantungan parsial, dimana seluruh field hanya tergantung pada sebagian field kunci. Normalisasi Ketiga (3rd Normal Form) Aturan : a. Sudah berada dalam bentuk normal kedua b. Tidak ada ketergantungan transitif (dimana field bukan kunci tergantung pada field bukan kunci lainnya). c. Bentuk Normal seharusnya berada dalam bentuk normal tertinggi dan bergerak dari bentuk normal satu dan seterusnya untuk setiap kali membatasi hanya satu jenis redudansi. Keseluruhannya cuma ada lima bentuk normal. Tiga bentuk normal pertama menekankan redudansi yang muncul dari Function Dependencies sedangkan bentuk keempat dan kelima menekankan redudansi yang muncul dari kasus Multi Valued Dependencies. . Untuk mendapatkan hasil yang paling normal, maka proses normalisasi dimulai dari normal pertama. Field-field tabel di atas yang merup. group berulang : Employee number, Employee name, Rate category, Hourly rate. Bentuk – Bentuk Normalisasi • Normalisasi Pertama : Solusinya hilangkan duplikasi dgn mencari ketergantungan parsial; menjadikan field-field menjadi tergantung pada satu atau bbrp field, bukan seluruhnya. Karena yang dapat dijadikan kunci adalah Project Number dan Employee Number, maka langkah kemudian dicari field-field mana yang tergantung pada Project Number dan mana yang tergantung pada Employee Number. • Ada beberapa keanehan dalam data pada tabel di atas. Adanya kesalahan penulisan data pada kolom project name record ketiga. Kemungkinan kesalahan penulisan data semakin bertambah seiring bertambahnya record. Normalisasi Kedua : Field-field yang tergantung pada satu field haruslah dipisah dengan tepat, misalnya Project Number menjelaskan Project Name dan Employee Number menjelaskan Employee Name, Rate Category dan Hourly Rate. Untuk membuat hubungan antara dua tabel, dibuat suatu tabel yang berisi key-key dari tabel yang lain. • Pada tabel Project dapat dilihat bahwa Project Name hanya disimpan sekali. Secara jelas bahwa pada tabel employee project tabel mengisi data yang berulangulang. Tapi paling tidak lebih efisien dan mengurangi resiko kesalahan dalam penulisan data yang panjang. Basis data di atas masih belum sempurna. Masih ada anomali pada data. Normalisasi Ketiga : • Pd tabel diatas msh tdp masalah, yi Employee Number 17 mendapatkan hourly rate yang tidak sesuai dengan rate category nya. Solusinya adlh kita harus mencari hub. transitif (transitive relation) dimana field non-key tergantung pd field non-key lainnya. Artinya kita harus memisahkan fielfd nonkunci Rate Category yg tadinya tergantung sec. parsial kepada field kunci Employee Number, utk menghilangkan anomali penulisan data pada field hourly rate. • Tabel2 yg memenuhi kriteria normalisasi ke 3, sudah siap diimplementasikan. Sebenarnya masih ada lagi bentuk normalisasi yang lain, yi Normalisasi Boyce-Codd dan normalisasi keempat, hanya sj sangat jarang dipakai. Pada kebanyakan kasus, normalisasi hanya sampai ketiga. Tugas 5 1. Praktekan perintah2 pada DCL. 2. Berikan contoh normalisasi pada kasus lain. 3. Dari tabel data yang dihasilkan pada perancangan basis data, lakukanlah normalisasi pada tabel-tabel tersebut sampai bentuk normal ketiga ! selesai .