P4 Kekangan Dalam Database
SQ http://sidiq.mercubuana-yogya.ac.id
Program Studi Teknik Informatika Fakultas Teknologi Informasi Universitas Mercu Buana Yogyakarta
Tugas
Mohon untuk dipelajari dan dipahami untuk perkuliahan dan tugas minggu depan .. !
SQ - http://sidiq.mercubuana-yogya.ac.id
[email protected]
2
Tujuan ●
●
Mahasiswa mengerti dan memahami konsepkonsep dalam basis data. Mahasiswa dapat menjelaskan mengenai konsep-konsep dalam basis data.
SQ - http://sidiq.mercubuana-yogya.ac.id
[email protected]
3
Materi ●
Kerangkapan Data
●
Inkosistensi Data
●
Data Terisolasi
●
Keamanan Dara
●
Integritas Data
SQ - http://sidiq.mercubuana-yogya.ac.id
[email protected]
4
Kerangkapan Data (Data Redundancy) SQ - http://sidiq.mercubuana-yogya.ac.id
[email protected]
5
Data Redundancy Merupakan kemunculan data secara berulang kali pada file basis data yang semestinya tidak diperlukan. Apa Penyebabnya ???
SQ - http://sidiq.mercubuana-yogya.ac.id
[email protected]
6
Penyebab ●
●
Umumnya terjadi akibat aplikasi-aplikasi tidak memperhatikan kriteria sebuah basis data. Penyusunan basis data dilakukan oleh perancang yang berbeda dalam selang waktu yang cukup lama.
Dari wacana di atas ... Perlukah dihindari ????
SQ - http://sidiq.mercubuana-yogya.ac.id
[email protected]
7
●
Kerangkapan data perlu dihindari (paling tidak diminimalkan), ●
Pemborosan media penyimpanan basis data
●
Biaya penyimpanan yang semakin besar
●
Kesulitan (inefisiensi) dalam pengolahan data
●
Pemborosan waktu dalam pengolahan data
●
Semakin besar kemungkinan muncul data tidak konsisten
SQ - http://sidiq.mercubuana-yogya.ac.id
[email protected]
8
Jenis Kerangkapan Data ●
Kejadian kerangkapan data dapat terjadi pada dua kemungkinan, yaitu : ●
Kerangkapan data dalam satu file
●
Kerangkapan data dalam beberapa file
SQ - http://sidiq.mercubuana-yogya.ac.id
[email protected]
9
Dalam satu file ●
●
Kerangkapan yang terjadi jika muncul kerangkapan nilai-nilai rinci data-data dalam satu file tersebut. Contoh I
SQ - http://sidiq.mercubuana-yogya.ac.id
[email protected]
10
Keterangan Contoh I ●
Kerangkapan data terjadi pada kolom “Gaji_Pokok” ●
●
●
●
●
Yaitu untuk setiap Pegawai yang memiliki “Golongan_Pegawai” tertentu yang sama, maka harus dicatat kembali mengenai “Gaji_Pokok” dengan nilai yang sama. Sehingga “Gaji_Pokok” akan disimpan secara berulang.
Santy (P003) memiliki “Golongan_Pegawai” sama dengan Sinta (P001). Sekalipun diketahui dan dapat dipastikan, bahwa “Gaji_Pokok” untuk setiap “Golongan = IIIA” adalah sama, yaitu 750.000,-. Tetapi dalam setiap file Pegawai tersebut, keterangan besarnya “Gaji_Pokok” tersebut harus selalu disimpan kembali setiap dijumpai “Golongan_Pegawai = IIIA”. Jika cacah Pegawai yang memiliki “Golongan_Pegawai” yang sama semakin banyak, maka semakin banyak pula akan terjadi kerangkapan data dalam file Pegawai tersebut. SQ - http://sidiq.mercubuana-yogya.ac.id
[email protected]
11
Solusi Contoh I ●
●
Dalam perancangan basis data, kerangkapan data sebagaimana file Pegawai tersebut harus dihindari. Untuk menghindari kerangkapan data pada file Pegawai tersebut, dapat dilakukan dengan cara merubah struktur file, yaitu memecah file Pegawai menjadi dua file baru (Pegawai_1 dan Golongan_1). ●
●
Pegawai_1 : digunakan untuk mencatat nilai-nilai data yang berhubungan dengan identitas setiap Pegawai. Golongan_1 : digunakan untuk mencatat besarnya “Gaji_Pokok” untuk setiap “Golongan_Pegawai” yang mungkin dimiliki oleh Pegawai.
SQ - http://sidiq.mercubuana-yogya.ac.id
[email protected]
12
Pemecahan file tersebut harus tetap memenuhi definisi basis data, yaitu data-data harus tetap berhubungan. ●
●
Dengan demikian agar kedua file baru (Pegawai_1 dan Golongan_1) tersebut saling berhubungan, maka diperlukan kolom yang dapat menghubungkan kedua file tersebut (yang selanjutnya kolom ini disebut sebagai kunci penghubung), yaitu “Golongan_Pegawai” dalam file Karyawan. Selanjutnya, jika diperlukan keterangan mengenai besarnya “Gaji_Pokok” seorang Pegawai, maka dapat diketahui dengan cara mencari nilai dalam kolom “Gaji_Pokok” (file Golongan_1) = “Gaji_Pokok” (file Pegawai_1).
SQ - http://sidiq.mercubuana-yogya.ac.id
[email protected]
13
SQ - http://sidiq.mercubuana-yogya.ac.id
[email protected]
14
Contoh II ●
Kerangkapan data pada tabel Mahasiswa terjadi pada kolom “Nama_Mhs” dan “Nama_Mtkul”. ●
●
Nama_Mhs: Setiap kali Mahasiswa dengan “NIM” tertentu mengikuti Matakuliah yang berbeda, maka namanya harus disimpan kembali dalam kolom “Nama_Mhs”. Nama_Mtkul : Setiap kali ada Mahasiswa yang mengikuti Matakuliah dengan kode tertentu , maka harus disimpan kembali dengan dalam kolom “Nama_Mtkul”. SQ - http://sidiq.mercubuana-yogya.ac.id
[email protected]
15
SQ - http://sidiq.mercubuana-yogya.ac.id
[email protected]
16
Solusi Contoh II ●
Untuk menghindari kerangkapan data pada file Mahasiswa tersebut, dapat dilakukan dengan cara merubah struktur file, yaitu memecah file Mahasiswa menjadi tiga file baru (Mahasiswa_1, Mata_Kuliah_1, dan KRS_1). ●
●
●
Mahasiswa_1 : digunakan untuk mencatat identitas setiap Mahasiswa. Mata_Kuliah_1 : digunakan untuk mencatat identitas setiap Matakuliah. KRS_1 : digunakan untuk mencatat data Mahasiswa dan Matakuliah yang diikuti. SQ - http://sidiq.mercubuana-yogya.ac.id
[email protected]
17
Kesimpulan ●
●
Kerangkapan data dalam satu file dapat diatasi dengan memecah file tersebut menjadi filefile baru yang lebih sederhana. Banyaknya file yang terbentuk tergantung pada banyaknya kerangkapan data yang terjadi.
SQ - http://sidiq.mercubuana-yogya.ac.id
[email protected]
18
Dalam Beberapa File ●
Terjadi jika muncul nama-nama kolom yang sama dalam beberapa file. Pengecualian : untuk kolom yang digunakan sebagai kunci penghubung antar data dalam file untuk memenuhi definisi basis data.
SQ - http://sidiq.mercubuana-yogya.ac.id
[email protected]
19
Contoh ●
●
File Mahasiswa_1 dan Minat_Mahasiswa : menunjukkan kerangkapan data dalam dua file. Kerangkapan data yang terjadi pada kolom “Nama_Mhs (Minat_Mahasiswa)”, hal ini terjadi karena sebenarnya data Nama_Mahasiswa sudah disimpan dalam file Mahasiswa_1.
SQ - http://sidiq.mercubuana-yogya.ac.id
[email protected]
20
Solusi ●
●
Untuk mengatasi kerangkapan data dalam beberapa file dapat diatasi dengan cara menghapus kolom yang rangkap. Dalam contoh tersebut, maka kolom yang rangkap adalah “Nama_Mhs (Minat_Mahasiswa)”, maka kolom tersebut harus dihapus dari file Minat_Mahasiswa.
SQ - http://sidiq.mercubuana-yogya.ac.id
[email protected]
21
Kesimpulan ●
●
●
Kerangkapan data dalam beberapa file dapat diatasi dengan cara menghapus kolom yang rangkap. Penghapusan tersebut dilakukan sesuia dengan kelompok data. Catatan : Kolom “Nama_Mhs” merupakan kelompok data Mahasiswa yang harus disimpan dalam file Mahasiswa, bukan termasuk kelompok data Minat_Mahasiswa, sehingga tidak perlu disimpan dalam file Minat_Mahasiswa_2.
SQ - http://sidiq.mercubuana-yogya.ac.id
[email protected]
22
Data Tidak Konsisten (Incosistency) SQ - http://sidiq.mercubuana-yogya.ac.id
[email protected]
23
Data Tidak Konseisten ●
Data tidak konsisten merupakan munculnya data yang tidak konsisten pada kolom yang sama dalam satu atau beberapa file data yang direlasikan. Apa Penyebabnya ???
SQ - http://sidiq.mercubuana-yogya.ac.id
[email protected]
24
Penyebab ●
Data entry, input data yang tidak benar
●
Update, pembaruan data yang tidak benar
●
Pengendalian sistem yang tidak terkontrol/tidak baik Beresikokah ???? Apa akibatnya ???
SQ - http://sidiq.mercubuana-yogya.ac.id
[email protected]
25
●
●
Basis data harus terbebas dari masalah data yang tidak konsisten, karena akan mengakibatkan kesalahan fatal pada informasi yang dihasilkan dari pengolahan data dalam basis data karena tidak sesuai dengan fakta yang ada. Data tidak konsisten juga dapat terjadi pada dua kemungkinan, yaitu : ●
Kerangkapan data dalam satu file
●
Kerangkapan data dalam beberapa file SQ - http://sidiq.mercubuana-yogya.ac.id
[email protected]
26
Dalam Satu File ●
●
Terjadi jika kemunculan data tidak konsisten terjadi pada sati file (yang mengalami kerangkapan data). Contoh I :
SQ - http://sidiq.mercubuana-yogya.ac.id
[email protected]
27
●
●
File Pegawai_2 mengandung data tidak konsisten pada nilai “Gaji_Pokok”. Sella (NIP=P002) mempunyai Gaji_Pokok(950.000,-), sedangkan Sany (NIP=P005) mempunyai Gaji_Pokok(1.000.000,-). Padahal keduanya mempunyai Golongan_Pegawai yang sama IVA. Kejadian ini menunjukkan adanya ketidak konsistenan terhadap data dalam file Pegawai.
Permasalahan : Mana yang benar ??
SQ - http://sidiq.mercubuana-yogya.ac.id
[email protected]
28
Solusi ●
Inkosistensi data dapat mengakibatkan kesalahan informasi pada hasil pengolahan data, misal : ●
●
●
Kesalahan pada saat mencetak struk daftar perolehan gaji pegawai Kesalahan jumlah total pengeluaran uang yang dikeluarkan untuk gaji karyawan.
Inkosistensi data dalam satu file dapat diindari dengan cara yang sama dengan contoh kerangkapan data : ●
●
Memecah file menjadi beberapa file-dile baru yang lebih sederhana dan tetap saling terhubung. Penyelesaian sama dengan Tabel Pegawai_1 dan Golongan_1. SQ - http://sidiq.mercubuana-yogya.ac.id
[email protected]
29
Contoh II ●
●
●
File Mahasiswa_2 mengandung data tidak konsisten pada nilai “Nama_Mhs”. Data yang tersimpan "Nama_Mhs = Santy" -> padahal yang benar "NIM = 05050002 > Sella". Data yang tersimpan "Nama_Mtkul=Pemrograman II" -> dalam baris yang lain "Nama_Mtkul=Pemrograman I".
SQ - http://sidiq.mercubuana-yogya.ac.id
[email protected]
30
Solusi Contoh II ●
Inkosistensi data tersebut mengakibatkan : ●
●
Kesalahan informasi pada saat pengolahan data, misal pada saat cetak KRS.
Solusi untuk mengatasi : ●
dapat dilakukan dengan cara merancang file secara benar sesuai dengan definisi basis data. Yaitu mencegah terjadinya kernagkapan data dan memecah file seperti pada Mahasiswa_1, Mata_Kuliah_1, dan KRS_1.
SQ - http://sidiq.mercubuana-yogya.ac.id
[email protected]
31
Dalam Beberapa File ●
●
Terjadi akibat rancangan struktur file yang mengalami kerangkapan data dalam beberapa file. Contoh :
SQ - http://sidiq.mercubuana-yogya.ac.id
[email protected]
32
Akibat ●
●
Pada tabel Minat_Mahasiswa_2 terlihat bahwa Nama_Mhs(NIM=0505003)=Sella. Padahal pada tabel Mahasiswa_3=Santy. Inskosistensi data tersebut mengakibatkan : ●
● ●
Kesalahan informasi hasil pengolahan data dari file Minat_Mhs, misalnya pada saat mencetak daftar Minat_Mhs, yaitu Sella memiliki 2 minat Jaringan dan web. Sedangkan Santy tidak pernah tampil sama sekali.
Data tidak konsisten dalam beberapa file dapat diatasi sebagaimana mengatasi kerangapan data dalam beberapa file , ●
Dengan cara menghapus kolom data yang rangkap sesuai dengan kelompok datanya. Seperti terlihat pada tabel Minat_Mahasiswa_1.
SQ - http://sidiq.mercubuana-yogya.ac.id
[email protected]
33
Kesimpulan ●
Kejadian inkosistensi file dalam basis data umumnya akan sangat sulit diketahui. Oleh karena itu inkosistensi data harus diantisipasi sejak dini, yang dimulai pada saat pertama kali perancangan basis data, yaitu merancang file yang terbebas dari kerangkapan data.
SQ - http://sidiq.mercubuana-yogya.ac.id
[email protected]
34
Data Terisolasi SQ - http://sidiq.mercubuana-yogya.ac.id
[email protected]
35
Data Terisolasi ●
Data terisolasi disebabkan oleh pemakaian beberapa file basis data dimana program aplikasi tidak dapat mengakses data-data dari filefile tertentu, kecuali jika program aplikasi diubah/ditambah, sehingga seolah-olah ada file yang terpisah/terisolasi terhadap file lain dalam basis data.
Sebab ??? Akibat ???
SQ - http://sidiq.mercubuana-yogya.ac.id
[email protected]
36
Sebab ?? ●
Data terisolasi harus dihindari, karena : ●
●
●
Mengakibatkan tidak lengkapnya informasi yang dihasilkan dari pengolahan data dalam basis data. Sehingga menjadikan data-data dalam basis data tidak bernilai karena tidak lengkap.
Data terisolasi terjadi akibat : ●
●
Tidak adanya kemungkinan untuk menghubungkan antar data dalam file Tidak adanya standarisasi data (berkaitan dengan domain/format data, meliputi tipe dan ukuran data).
SQ - http://sidiq.mercubuana-yogya.ac.id
[email protected]
37
Contoh
SQ - http://sidiq.mercubuana-yogya.ac.id
[email protected]
38
●
Seandainya diperlukan informasi mengenai : ●
●
Siapa pembimbing minat mahasiswa bernama Sinta (NIM=05050001) yang mempunyai Minat_Mhs=Pemrograman, maka file-file tersebut tidak dapat memnuhi kebutuhan tersebut. Hal ini karena tidak adanya hubungan antara Pembimbing_Minat_1 dengan file Minat_Mahasiswa_3.
SQ - http://sidiq.mercubuana-yogya.ac.id
[email protected]
39
Solusi ●
Untuk mengatasi, perlu dirancang sebuah file baru yang berfungsi untuk antara data minat dengan data pembimbing.
SQ - http://sidiq.mercubuana-yogya.ac.id
[email protected]
40
Cara I ●
Cara tersebut baik jika dilakukan apabila ada kemungkinan bahwa seorang pembimbing dapat membimbing lebih dari satu minat, sehingga penambahan file Membimbing akan terhindar dari redundancy data Nama_Pembimbing.
SQ - http://sidiq.mercubuana-yogya.ac.id
[email protected]
41
Cara II
●
Cara tersebut baik dilakukan apabila tidak ada kemungkinan bahwa seorang pembimbing dapat membimbing lebih dari satu minat, sehingga penambahan kolom Minat dalam file Pembimbing_Minat_2 akan lebih efisien dalam hal penggunaan media penyimpanan.
SQ - http://sidiq.mercubuana-yogya.ac.id
[email protected]
42
Cara III ●
Jika : ●
●
Apabila macam minat yang ada pada mahasiswa dapat bermacam-macam, satu mahasiswa dapat memiliki lebih dari satu minat, bisa muncul minatminat baru, macam minat dapat berubah-ubah.
Maka : ●
●
Maka cara I dan cara II masih akan menimbulkan permasalahan. Ketika nilai rinci data minat bisa sangat panjang, maka data minat akan lebih efisien jika dikodekan. SQ - http://sidiq.mercubuana-yogya.ac.id
[email protected]
43
SQ - http://sidiq.mercubuana-yogya.ac.id
[email protected]
44
Wacana Lain ●
Dalam hal data terisolasi muncul akibat domain/format data yang tidak standar, maka permasalahan ini hanya dapat diselesaikan dengan cara merubah/menyesuaikan format data dalam file basis data sehingga data-data di dalamnya dapat saling dihubungkan.
SQ - http://sidiq.mercubuana-yogya.ac.id
[email protected]
45
Contoh ●
Contoh : ●
●
●
NIM (Mahasiswa), didefinisikan sebagai numerik. Sedangkan NIM (MInat_Mahasiswa), didefiniskan sebagai karakter. Berarti NIM dalam dua file tersebut mempunyai dua domain yang berbeda.
Perbedaan data-data dalam domain data mengakibatkan datadata dalam file Mahasiswa dan Minat _Mahasiswa tidak dapat dihubungkan. ●
Dapat diatasi dengan cara mengubah domain data dalam definisi struktur file, sehingga data terisolasi akan terhindar. SQ - http://sidiq.mercubuana-yogya.ac.id
[email protected]
46
Kesimpulan ●
Data terisolasi dapat dihindari dengan cara : ●
●
●
Menambah file baru bertipe transaksi yang berfungsi sebagai penghubung antar data dalam file-file lain yang telah ada. Menambah kolom yang berfungsi sebagai penghubung dengan file-file lain yang telah ada. Menyesuaikan domain kolom yang berfungsi untuk menghubungkan antar file.
SQ - http://sidiq.mercubuana-yogya.ac.id
[email protected]
47
Keamanan Data SQ - http://sidiq.mercubuana-yogya.ac.id
[email protected]
48
Keamanan Data ●
●
●
Kemanan data merupakan aspek kritis dalam basis data. Prinsip dasar dari keamanan data dalam basis data dalam basis data adalah bahwa data-data dalam basis data merupakan sumber informasi yang sangat penting dan rahasia. Oleh karena itu, data-data tersebut harus dijaga dari berbagai hal yang kemungkinan dapat merusak data. SQ - http://sidiq.mercubuana-yogya.ac.id
[email protected]
49
●
Recovery ●
●
Integrity ●
●
Suatu proses menggunakan/mengambil kembali basis data dari media penyimpanan cadangan untuk mengembalikan data pada kondisi yang benar karena terjadi kerusakan data akibat kerusakan media penyimpanan, program aplikasi, operating system, basis data, hardware, dll.
Berkaitan dengan unjuk kerja sistem untuk dapat menjaga data-data dalam basis data agar selalu berada dalam kondisi yang benar (tipe dan ukuran), up to data, konsisten, dan selalu tersedia.
Concurency ●
Berkaitan dengan mekanisme pengendalian basis data saat digunakan oleh beberapa aplikasi secara bersamaan agar terhindar dari kesalahan-kesalahan akibat akibat transaksi berbeda yang dilakukan secara bersamaan.
SQ - http://sidiq.mercubuana-yogya.ac.id
[email protected]
50
●
Privacy ●
●
Dimaksudkan sebagai pembatasan akses (hak akses) dalam basis data untuk mencegah dan melindungi basis data dari penggunaan oleh orang-orang yang tidak berhak dan penguhan basis data yang tidak dikehendaki.
Security ●
Suatu mekanisme sistem untuk mencegah dan melindungi basis data, kehilangan akibat kerusakan pada fisik media penyimpanan, kebakaran, banjir, dll.
SQ - http://sidiq.mercubuana-yogya.ac.id
[email protected]
51
Integritas Data SQ - http://sidiq.mercubuana-yogya.ac.id
[email protected]
52
Integritas Data ●
●
Integritas data berhubungan dengan kinerja sistem agar dapat melakukan kendali/kontrol pada semua bagian sistem. Integritas dimaksudkan sebagai suatu sarana untuk meyakinkan bahwa data-data yang tersimpan dalam basis data selalu berada : ●
Dalam kondisi benar (tipe dan ukuran data),
●
Up to date (sesuai dengan kondisi aktual),
●
Konsisten, dan
●
Selalu tersedia (current). SQ - http://sidiq.mercubuana-yogya.ac.id
[email protected]
53
Pencegahan ●
●
Meyakinkan bahwa nilai-nilai data adalah benar sejak pertama kali di inputkan ke dalam basis data. Contoh metode pemecahan, misalnya : ●
●
Mengeset secara seksama prosedure penangkapan data (data capture) yang dilakukan secara manual, atau Membuat modul dalam program aplikai untuk mengecek validitas nilai data pada saat di inputkan ke dalam mesin (data entry) SQ - http://sidiq.mercubuana-yogya.ac.id
[email protected]
54
Integritas dalam basis data berhubungan dengan dua aspek : ●
Integritas dimain (domain integrity)
●
Key constraint, berkaitan dengan dua hal : ● ●
Integritas entitas -> pada kunci primer relasi Integritas referensial -> pada kunci penghubung relasi
SQ - http://sidiq.mercubuana-yogya.ac.id
[email protected]
55
Thanks For Participating In My Class C U Next Week
SQ - http://sidiq.mercubuana-yogya.ac.id
[email protected]
56