BAB+5+DCL+dan+Normalisasi

advertisement
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
.
Download