Yap, udah dua minggu gak posting mengenai tugas database. Alhamdulillah yah, berhubung tugas yang lain juga banyak yang menumpuk. Terimakasih Bapaknya :)
Dan sekarang gue kembali untuk posting tugas database, mengenai Data Control Language dan Teknik NormalisasiSilakan dibaca, semoga bermanfaat.


Data Control Language
Sebelumnya, gue akan memberitahukan apa sih DCL itu? DCL adalah perintah-perintah yang digunakan untuk membantu dalam mengontrol keamanan setiap database atau sebagian isi dari database dengan membuat hak – hak akses tertentu bagi setiap user. Perintah-perintah itu adalah:

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.

Berikut adalah sintak umumnya :  
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
Perintah revoke 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.
Berikut adalah sintak umumnya:
REVOKE hak_akses ON nama_tabel FROM namaAccount@namaHost;
REVOKE hak_akses ON nama_database.nama_tabel FROM user;
REVOKE hak_akses(field1,field2, field3,…) ON nama_database.nama_tabel FROM user;
Dan ini adalah 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.

Commit
Merupakan perintah yang digunakan untuk memindahkan transaksi dari memory pemrosesan ke database atau menyimpan secara permanen perubahan-perubahan kedalam database.

Rollback
Merupakan perintah yang digunakan untuk membatalkan transaksi yang belum di commit atau membatalkan perubahan-perubahan terakhir dari perintah commit/rollback terakhir.


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.


Contoh normalisasi

1. Bentuk Normal Pertama (1NF)
Sebuah model data dikatakan memenuhi bentuk normal pertama apabila setiap atribut yang dimilikinya memiliki satu dan hanya satu nilai. Apabila ada atribut yang memiliki nilai lebih dari satu, atribut tersebut adalah kandidat untuk menjadi entitas tersendiri.

NIM
Nama
TTL
Matkul
Kode_
matkul
Nilai
Bobot
4311122022
Rahmania Habiba
5/6/1993
Komputasi Numerik
101
A
4
4311122006
Malik Aslam
11/10/1992
Computer Graphic
102
A
4
4311122014
Tiara Rahmawati
20/7/1993
Basis Data
102
A
4

2. Bentuk Normal Kedua (2NF)
Sebuah model data dikatakan memenuhi bentuk normal kedua apabila ia memenuhi bentuk normal pertama dan setiap atribut non-identifier sebuah entitas bergantung sepenuhnya hanya pada semua identifier entitas tersebut.

tbl_mahasiswa
NIM
Nama
TTL
4311122022
Rahmania Habiba
5/6/1993
4311122006
Malik Aslam
11/10/1992
4311122014
Tiara Rahmawati
20/7/1993


tbl_matkul
Matkul
Kode_
matkul
Komputasi Numerik
101
Computer Graphic
102
Basis Data
102


tbl_nilai
NIM
Matkul
Kode_
matkul
Nilai
4311122022
Komputasi Numerik
101
A
4311122006
Computer Graphic
102
A
4311122014
Basis Data
102
A

3. Bentuk Normal Ketiga (3NF)
Sebuah model data dikatakan memenuhi bentuk normal ketiga apabila ia memenuhi bentuknormal kedua dan tidak ada satupun atribut non-identifying (bukan pengidentifikasi unik) yang bergantung pada atribut non-identifying lain. Apabila ada, pisahkan salah satu atribut tersebut menjadi entitas baru, dan atribut yang bergantung padanya menjadi atribut entitas baru tersebut.

tbl_bobot
Nilai
Bobot
A
4
B
3
C
2
D
1
E
0


tbl_nilai2
NIM
Kode_
matkul
Nilai
4311122022
101
A
4311122006
102
A
4311122014
102
A
Rahmania Habiba. Powered by Blogger.