P4
Kekangan Dalam Database
SQ
http://sidiq.mercubuana-yogya.ac.id
Program Studi Teknik Informatika
Fakultas Teknologi Informasi
SQ - http://sidiq.mercubuana-yogya.ac.id [email protected]
2
Tugas
Mohon untuk dipelajari dan dipahami
Tujuan
●
Mahasiswa mengerti dan memahami
konsep-konsep dalam basis data.
●
Mahasiswa dapat menjelaskan mengenai
SQ - http://sidiq.mercubuana-yogya.ac.id [email protected] 4
Materi
●Kerangkapan Data
●Inkosistensi Data
●Data Terisolasi
●Keamanan Dara
●Integritas Data
SQ - http://sidiq.mercubuana-yogya.ac.id [email protected]
6
Data Redundancy
Merupakan kemunculan data secara berulang kali
pada file basis data yang semestinya tidak
diperlukan.
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]
8 ●
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
Jenis Kerangkapan Data
●
Kejadian kerangkapan data dapat terjadi pada
dua kemungkinan, yaitu :
●
Kerangkapan data dalam satu file
SQ - http://sidiq.mercubuana-yogya.ac.id [email protected]
10
Dalam satu file
●
Kerangkapan yang terjadi jika muncul
kerangkapan nilai-nilai rinci data-data dalam
satu file tersebut.
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
SQ - http://sidiq.mercubuana-yogya.ac.id [email protected]
12
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.
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) =
SQ - http://sidiq.mercubuana-yogya.ac.id [email protected]
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]
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
SQ - http://sidiq.mercubuana-yogya.ac.id [email protected]
18
Kesimpulan
●
Kerangkapan data dalam satu file dapat diatasi
dengan memecah file tersebut menjadi
file-file baru yang lebih sederhana.
●
Banyaknya file yang terbentuk tergantung pada
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
SQ - http://sidiq.mercubuana-yogya.ac.id [email protected]
20
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
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
SQ - http://sidiq.mercubuana-yogya.ac.id [email protected]
22
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
SQ - http://sidiq.mercubuana-yogya.ac.id [email protected]
24
Data Tidak Konseisten
●
Data tidak konsisten merupakan munculnya
data yang tidak konsisten pada kolom yang
sama dalam satu atau beberapa file data yang
direlasikan.
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]
26 ●
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
Dalam Satu File
●
Terjadi jika kemunculan data tidak konsisten
terjadi pada sati file (yang mengalami
kerangkapan data).
SQ - http://sidiq.mercubuana-yogya.ac.id [email protected]
28
●
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 :
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.
SQ - http://sidiq.mercubuana-yogya.ac.id [email protected]
30
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
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,
SQ - http://sidiq.mercubuana-yogya.ac.id [email protected]
32
Dalam Beberapa File
●
Terjadi akibat rancangan struktur file yang
mengalami kerangkapan data dalam beberapa
file.
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
SQ - http://sidiq.mercubuana-yogya.ac.id [email protected]
34
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]
36
Data Terisolasi
●
Data terisolasi disebabkan oleh pemakaian beberapa file basis data
dimana program aplikasi tidak dapat mengakses data-data dari
file-file tertentu, kecuali jika program aplikasi diubah/ditambah, sehingga
seolah-olah ada file yang terpisah/terisolasi terhadap file lain dalam
basis data.
Sebab ???
Akibat ???
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
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]
40
Solusi
●
Untuk mengatasi, perlu dirancang sebuah file
baru yang berfungsi untuk antara data minat
dengan data pembimbing.
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]
42
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.
Cara III
●
Jika :
●
Apabila macam minat yang ada pada mahasiswa
dapat bermacam-macam, satu mahasiswa dapat
memiliki lebih dari satu minat, bisa muncul
minat-minat baru, macam minat-minat dapat berubah-ubah.
●
Maka :
●
Maka cara I dan cara II masih akan menimbulkan
permasalahan.
●
Ketika nilai rinci data minat bisa sangat panjang,
SQ - http://sidiq.mercubuana-yogya.ac.id [email protected]
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
SQ - http://sidiq.mercubuana-yogya.ac.id [email protected]
46
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 dalam domain data mengakibatkan
data-data dalam file Mahasiswa dan Minat _Mahasiswa tidak dapat
dihubungkan.
●
Dapat diatasi dengan cara mengubah domain data dalam
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
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]
50
●
Recovery
●
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.
●
Integrity
●
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.
●
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]
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
SQ - http://sidiq.mercubuana-yogya.ac.id [email protected]
54
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)
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
SQ - http://sidiq.mercubuana-yogya.ac.id [email protected]
56