meniadakan redundansi. Redundansi terjadi jika fakta yang sama disimpan lebih dari
sekali.Duplikasi : Duplikasi berbeda dengan redundansi. Kadang-kadang duplikasi diperlukan
dalam basis data sementara redundansi harus dihindari.MENGHILANGKAN REDUNDANSISalah
satu cara untuk menghilangkan redundansi adalah dengan dekomposisi. Sebuahrelasi yang
menyimpan sebuah fakta lebih dari sekali dapat didekomposisi ke dalam relasi-relasi yang
hanya menyimpan sebuh fakta sekali.
A. Database
Data base adalah suatu koleksi data computer yang terintegrasi, diorganisasikan dan disimpan dengan
cara yang memudahkan pengambilan kembali. DASD (medium file master yang baik) harus
digunakan. Tujuan utama dari konsep database adalah meminimumkan pengulangan data dan
mencapai independensi. Pengulangan data (data redundancy ) adalah duplikasi data artinya data yang
sama disimpan dalan beberapa file. Independensi data adalah kemampuan untuk membuat perubahan
dalan struktur data tanpa membuat perubahan pada program yang memproses data. Independensi
data dicapai dengan menempatkan spesifikasi data dalam label dan kamus yang terpidah secara fisik
dari program. Program mengacu pada tabel untuk mengakses data. Perubahan pada struktur data
hanya dilakukan sekali, yaitu dalam tabel.
Ketika perusahaan mengadopsi konsep database, hirarki data menjadi:
• Database
• File
• Catatan
• elamen data
File-file tersendiri dapat tetap ada, mewakili komponen -komponen utama dari database namun
organisasi fisik dari data tidak menghambat pemakai. Tersedia berbagai cara untuk mengintegrasikan
isi dari file-file yang memiliki hubungan logis.
Advertisement
Normalisasi database merupakan suatu pendekatan sistematis untuk meminimalkan redundansi data pada suatu
database agar database tersebut dapat bekerja dengan optimal. Jika anda seorang database administrator ketika
terjadi sesuatu pada database seperti penurunan kinerja, mungkin anda akan ditanya apakah database tersebut
telah di normalisasi?
Tujuan Normalisasi Database
Tujuan normalisasi database adalah untuk menghilangkan dan mengurangi redudansi data dan tujuan yang kedua
adalah memastikan dependensi data (Data berada pada tabel yang tepat).
Jika data dalam database tersebut belum di normalisasi maka akan terjadi 3 kemungkinan yang akan merugikan
sistem secara keseluruhan.
1. INSERT Anomali : Situasi dimana tidak memungkinkan memasukkan beberapa jenis data secara langsung di
database.
2. DELETE Anomali: Penghapusan data yang tidak sesuai dengan yang diharapkan, artinya data yang harusnya
tidak terhapus mungkin ikut terhapus.
3. UPDATE Anomali: Situasi dimana nilai yang diubah menyebabkan inkonsistensi database, dalam artian data
yang diubah tidak sesuai dengan yang diperintahkan atau yang diinginkan.
Normalisasi Database
Normalisasi database terdiri dari banyak bentuk, dalam ilmu basis data ada setidaknya 9 bentuk normalisasi yang
ada yaitu 1NF, 2NF, 3NF, EKNF, BCNF, 4NF, 5NF, DKNF, dan 6NF. Namun dalam prakteknya dalam dunia industri
bentuk normalisasi ini yang paling sering digunakan ada sekitar 5 bentuk.
Normal Form
Data yang direkam dan dimasukkan secara mentah dalam suatu tabel pada bentuk ini sangat mungkin terjadi
inkonsistensi dan anomali data
Contoh Normal Form
Pada bentuk ini ada beberapa ciri ciri yang penting, yang pertama adalah akan terjadi anomali dalam insert, update,
dan delete. Hal ini menyebabkan beberapa fungsi DML dalam SQL tidak dapat berjalan dengan baik. Sebagai contoh
jika ingin menghapus penerbit maka data judul buku akan ikut terhapus begitu juga jika ingin menghapus peminjam,
maka data penerbit dan buku yang harusnya tidak terhapus akan ikut hilang.
First Normal Form (1NF)
Bentuk normal yang pertama atau 1NF mensyaratkan beberapa kondisi dalam sebuah database, berikut adalah
fungsi dari bentuk normal pertama ini.
Pada intinya bentuk normalisasi 1NF ini mengelompokkan beberapa tipe data atau kelompok data yang sejenis agar
dapat dipisahkan sehingga anomali data dapat di atasi. Contoh adalah ketika kita ingin menghapus, mengupdate,
atau menambahkan data peminjam, maka kita tidak bersinggungan dengan data buku atau data penerbit. Sehingga
inkonsistensi data dapat mulai di jaga.
Menghapus beberapa subset data yang ada pada tabel dan menempatkan mereka pada tabel terpisah.
Menciptakan hubungan antara tabel baru dan tabel lama dengan menciptakan foreign key.
Tidak ada atribut dalam tabel yang secara fungsional bergantung pada candidate key tabel tersebut.
Contoh normalisasi database bentuk 2NF
Contoh Normalisasi Database 2NF
Contoh di atas kita menggunakan tabel bantuan yaitu tabel transaksi, pada intinya bentu kedua ini adalah tidak boleh
ada field yang berhubungan dengan field lainnya secara fungsional. Contoh Judul Buku tergantung dengan id_Buku
sehingga dalam bentuk 2NF judul buku dapat di hilangkan karena telah memiliki tabel master tersendiri.
Tidak semua kasus atau tabel dapat kita sesuaikan dengan berbagai bentuk normalisasi ini, untuk contoh 3NF kita
akan mengambil contoh dari tabel order.
Pada tabel pertama di atas, apakah semua kolom sepenuhnya tergantung pada primary key? tentu tidak, hanya saja
ada satu field yaitu total yang bergantung pada harga dan jumlah, total dapat dihasilkan dengan mengalikan harga
dan jumlah. Bentuk 3NF dalam tabel di atas dapat dilakukan dengan membuang field Total.
Bentuk SQL
Menjadi
SELECT ORDERID, HARGA*JUMLAH AS TOTAL
FROM ORDER
Pada ilmu database atau basis data, normalisasi digunakan untuk menghindari terjadinya berbagai anomali data dan
tidak konsistensinya data. Ini merupakan fungsi database secara umum. Dalam beberapa kasus normalisasi ini
sangat penting untuk menunjang kinerja database dan memastikan bahwa data dalam database tersebut aman dan
tidak terjadi kesalahan jika mendapat perintah SQL terutama DML yaitu update, insert, dan delete.
Perlu diketahui dalam beberapa kasus Normalisasi database terkadang harus diubah menjadi bentuk denormalisasi,
terutama untuk data yang telah besar dan membengkak. Denormalisasi ini ditujukan untuk meningkatkan
performance dengan meletakkan beberapa field menjadi satu tabel sehingga mudah di tarik. Denormalisasi ini sering
digunakan untuk menarik data yang besar dari database.
NORMALISASI
Normalisasi merupakan teknik analisis data yang mengorganisasikan atribut-atribut data dengan
cara mengelompokkan sehingga terbentuk entitas yang non-redundant, stabil, dan fleksible
Normalisasi dilakukan sebagai uji coba pada suatu relasi secara berkelanjutan untuk menentukan
apakah relasi itu sudah baik, yaitu dapat dilakukan proses insert,update,delete, dan modifikasi
pada satu atau beberapa atribut tanpa mempengaruhi integritas data dalam relasi tersebut.
*Pada proses normalisasi terhadap tabel pada database dapat dilakukan dengan tiga tahap
normalisasi antara lain :
Bentuk ini merupakan kumpulan data yang akan direkam, tidak ada keharusan
mengikukti format tertentu, dapat saja data tidak lengkap atau terduplikasi. Data dikumpulkan
apa adanya sesuai dengan saat menginput.
Untuk mentransformasikan tabel yang belum ternomalisasi di atas menjadi tabel yang memenuhi
kriteria 1NF adalah kita harus merubah seluruh atribut yang multivalue menjadi atribut single
value, dengan cara menghilangkan repeating group pada tabel di atas.
Pada tahap ini dilakukan penghilangan beberapa group elemen yang berulang agar menjadi satu
harga tunggal yang berinteraksi di antara setiap baris pada suatu tabel, dan setiap atribut harus
mempunyai nilai data yang atomic (bersifat atomic value). Atom adalah zat terkecil yang masih
memiliki sifat induknya, bila terpecah lagi maka ia tidak memiliki sifat induknya.
1. setiap data dibentuk dalam flat file, data dibentuk dalam satu record demi satu record nilai
dari field berupa “atomic value”.
Langkah pertama yang dilakukan pada Tabel Pelanggan Biaya (pada Tabel 9.3) tersebut adalah
menghilangkan elemen data yang berulang dengan data-data Pelanggan yang sesuai pada setiap
baris. Hasil dari tabel yang telah memenuhi bentuk normal pertama dapat dilihat pada Tabel 9.4.
kita dapat mengidentifikasi primary key untuk relasi Pelanggan_Biaya yang masih memiliki
composite key (No_Pelanggan, No_Property). Pada kasus ini kita akan memperoleh primary key
yang bersifat composite key. Relasi Pelanggan_Biaya dapat didefinisikan sebagai berikut.
Pelanggan_Biaya =(No_Pelanggan, No_Property, Nama, Alamat_Property, Tgl_Pinjam, Tgl_Selesai,
Biaya,No_Pemilik, Nama_Pemilik)
Bentuk normal kedua didasari atas konsep full functional dependency (ketergantungan fungsional
sepenuhnya) yang dapat didefinisikan sebagai berikut. Jika A adalah atribut-atribut dari suatu
relasi, B dikatakan full functional dependency (memiliki ketergantungan fungsional terhadap A,
tetapi tidak secara tepat memiliki ketergantungan fungsional dari subset (himpunan bagian) dari
A.
Walaupun relasi 2-NF memiliki redudansi yang lebih sedikit dari pada relasi 1-NF, namun relasi
tersebut masih mungkin mengalami kendala bila terjadi anomaly peremajaan (update) terhadap
relasi tersebut. Misalkan kita akan melakukan update terhadap nama dari seorang Pemilik
(pemilik), seperti Durki (No_Pemilik: CO93), kita harus melakukan update terhadap dua baris
dalam relasi Property_Pemilik (lihat Tabel 9.5, (c) relasi Property_Pemilik). Jika kita hanya
mengupdate satu baris saja, sementara baris yang lainnya tidak, maka data didalam database
tersebut akan inkonsisten / tidak teratur. Anomaly update ini disebabkan oleh suatu
ketergantungan transitif (transitive dependency). Kita harus menghilangkan ketergantungan
tersebut dengan melakukan normalisasi ketiga (3-NF).
2. Atribute bukan kunci (non-key) harus tidak memiliki ketergantungan transitif, dengan kata lain
suatu atribut bukan kunci (non_key) tidak boleh memiliki ketergantungan fungsional (functional
dependency) terhadap atribut bukan kunci lainnya, seluruh atribut bukan kunci pada suatu relasi
hanya memiliki ketergantungan fungsional terhadap priamry key di relasi itu saja.
Seluruh atribut non-primary key pada relasi Pelanggan dan Biaya di atas terlihat memiliki
ketergantungan fungsional (functional dependency) terhadap primary key dari masing-masing
tabel / relasi. Relasi / tabel Pelanggan dan Biaya di atas tidak memiliki ketergantungan transitif
(transitive dependency), sehingga tabel tersebut telah memenuhi
kriteria normal ketiga (3-NF). Seluruh atribut non-primary key pada relasi Property_Pemilik di atas
terlihat memiliki ketergantungan fungsional (functional dependency) terhadap primary
key, kecuali Nama_Pemilik yang masih memiliki ketergantungan fungsional
(functional dependency) terhadap No_Pemilik. Inilah contoh ketergantungan dari transitif
(transitive dependency), yang terjadi ketika atribut non-primary key (Nama_Pemilik)
bergantung secara fungsi terhadap satu atau lebih atribut non-primary key lainnya (No_Pemilik).
Kita harus menghilangkan ketergantungan transitif (transitive dependency) tersebut
dengan menjadikan relasi Property_Pemilik menjadi 2 relasi / tabel dengan format /
bentuk sebagai berikut.
Nama_PemilikNo_Pemilik
Hasil akhir normalisasi tabel Pelanggan_Biaya sampai ke bentuk normal ketiga adalah
Walaupun relasi 2-NF memiliki redudansi yang lebih sedikit dari pada relasi 1-NF,
namun relasi tersebut masih mungkin mengalami kendala bila terjadi anomaly
Misalkan kita akan melakukan update terhadap nama dari seorang Pemilik (pemilik), seperti Durki
(No_Pemilik: CO93), kita harus melakukan update terhadap dua baris dalam relasi
Property_Pemilik (lihat Tabel 9.5, (c) relasi Property_Pemilik). Jika kita hanya mengupdate satu
baris saja, sementara baris yang lainnya tidak, maka data didalam database tersebut akan
inkonsisten / tidak teratur. Anomaly update ini disebabkan oleh suatu ketergantungan transitif
(transitive dependency). Kita harus menghilangkan ketergantungan tersebut dengan melakukan
normalisasi ketiga (3-NF).
2. Atribute bukan kunci (non-key) harus tidak memiliki ketergantungan transitif, dengan kata lain
suatu atribut bukan kunci (non_key) tidak boleh memiliki ketergantungan fungsional (functional
dependency) terhadap atribut bukan kunci lainnya, seluruh atribut bukan kunci pada suatu relasi
hanya memiliki ketergantungan fungsional terhadap priamry key di relasi itu saja. Seluruh atribut
non-primary key pada relasi Pelanggan dan Biaya di atas terlihat memiliki ketergantungan
fungsional (functional dependency) terhadap primary key dari masing-masing tabel / relasi.
Relasi / tabel Pelanggan dan Biaya di atas tidak memiliki ketergantungan transitif (transitive
dependency), sehingga tabel tersebut telah memenuhi kriteria normal ketiga (3-NF).
Nama_PemilikNo_Pemilik
Hasil akhir normalisasi tabel Pelanggan_Biaya sampai ke bentuk normal ketiga adalah
sebagai berikut:
Seluruh atribut bukan kunci pada suatu relasi hanya memiliki ketergantungan fungsional terhadap
primary key di relasi itu saja.
Deskripsi normalisasi
Normalisasi adalah proses pengorganisasian data dalam database. Ini termasuk menciptakan Daftar Tabel
dan menjalin hubungan antara Daftar Tabel tersebut sesuai aturan yang dirancang baik untuk melindungi
data dan membuat database yang lebih fleksibel dengan menghilangkan redundansi dan ketergantungan
yang tidak konsisten.
Data redundansi limbah ruang disk dan menciptakan masalah pemeliharaan. Jika data yang ada di lebih
dari satu tempat harus diganti, data harus diubah dalam cara yang sama di semua lokasi. Perubahan
alamat penyuratan pelanggan jauh lebih mudah untuk menerapkan jika data yang disimpan di Daftar
Tabel pelanggan dan tempat lain dalam database.
Apa itu "tidak konsisten ketergantungan"? Sementara itu intuitif bagi pengguna untuk melihat dalam
Daftar Tabel pelanggan untuk alamat penyuratan pelanggan tertentu, itu mungkin tidak masuk akal untuk
melihat di sana untuk gaji karyawan yang panggilan pada pelanggan. Gaji karyawan terkait, atau
tergantung pada, karyawan dan dengan demikian harus pindah ke Daftar Tabel karyawan. Dependensi
tidak konsisten dapat membuat data sulit untuk akses karena jalan untuk menemukan data mungkin
hilang atau rusak.
Ada beberapa aturan untuk database normalisasi. Setiap aturan yang disebut "bentuk normal." Jika aturan
pertama diamati, database dikatakan dalam "pertama bentuk normal." Jika aturan pertama tiga diamati,
database dianggap berada di "ketiga bentuk normal." Meskipun tingkat lain dari normalisasi mungkin,
bentuk normal ketiga dianggap tingkat tertinggi yang diperlukan untuk sebagian besar aplikasi.
Seperti dengan banyak peraturan formal dan spesifikasi, skenario dunia nyata tidak selalu memungkinkan
untuk kepatuhan sempurna. Secara umum, normalisasi memerlukan Daftar Tabel tambahan dan beberapa
pelanggan menemukan ini rumit. Jika Anda memutuskan untuk melanggar salah satu aturan pertama tiga
normalisasi, pastikan bahwa aplikasi Anda mengantisipasi setiap masalah yang bisa terjadi, seperti data
yang berlebihan dan tidak konsisten dependensi.
Apa yang terjadi ketika Anda menambahkan vendor ketiga? Menambahkan sebuah field bukanlah
jawabannya; itu memerlukan modifikasi program dan tabel atak dan tidak lancar mengakomodasi jumlah
vendor yang dinamis. Sebaliknya, tempat semua informasi vendor didalam table yang terpisah yang
disebut vendor, kemudian link persediaan untuk vendor dengan item nomor bukti kunci, atau vendor
untuk persediaan dengan vendor kode bukti kunci.
Sebagai contoh, dalam Daftar Tabel rekruitmen karyawan, calon Universitas nama dan alamat penyuratan
dapat disertakan. Tetapi Anda perlu daftar lengkap dari Universitas untuk kelompok surat. Jika informasi
Universitas disimpan dalam Daftar Tabel kandidat, ada cara untuk Daftar Universitas dengan kandidat saat
ini tidak ada. Buat Daftar Tabel perguruan tinggi dengan terpisah dan menghubungkannya ke tabel atak
calon dengan Universitas kode bukti kunci.
PENGECUALIAN: Mengikuti bentuk ketiga normal, sementara secara teoritis diinginkan, tidak selalu
praktis. Jika Anda memiliki Daftar Tabel pelanggan dan Anda ingin menghilangkan semua dependensi
interfield mungkin, Anda harus membuat Daftar Tabel terpisah untuk kota-kota, kode ZIP, perwakilan
penjualan, pelanggan kelas, dan faktor lainnya yang dapat digandakan dalam beberapa catatan. Dalam
teori, normalisasi bernilai mengerucutkan. Namun, banyak Daftar Tabel kecil dapat menurunkan kinerja
atau melebihi buka file dan kapasitas kehabisan memori.
Mungkin lebih layak untuk menerapkan bentuk normal ketiga hanya untuk data yang sering berubah. Jika
tetap tergantung beberapa bidang, desain aplikasi Anda untuk meminta user untuk memverifikasi semua
bidang terkait ketika salah satu berubah.
Bentuk-bentuk normalisasi
Keempat bentuk normal, juga disebut Boyce Codd Normal formulir (BCNF), dan bentuk normal kelima
ada, tapi jarang dianggap dalam desain praktis. Mengabaikan aturan-aturan ini mungkin mengakibatkan
desain database kurang sempurna, tetapi seharusnya tidak mempengaruhi fungsi.
1. Unnormalized tabel:
Tablesshould memiliki hanya dua-dimensi. Karena salah satu siswa memiliki beberapa kelas,
theseclasses harus tercantum didalam table yang terpisah. Bidang kelas 1, Class2 dan Class3in di
atas catatan yang indikasi desain kesulitan.
Spreadsheetsoften menggunakan dimensi ketiga, tetapi tidak boleh Daftar Tabel. Cara lain untuk
melihat atthis masalah dengan hubungan satu-ke-banyak, tidak menaruh satu sisi dan sisi banyak
di tabel atak yang sama. Sebaliknya, membuat tabel atak lain pertama normalform dengan
menghilangkan grup berulang (kelas #), seperti yang ditunjukkan di bawah ini:
Catatan beberapa kelas # nilai untuk setiap siswa # nilai di atas tabel atak. Kelas #is fungsional
tergantung pada siswa # (primary key), jadi ini relationshipis tidak dalam bentuk normal yang
kedua.
Siswa:
4.
Pendaftaran:
Siswa # Kelas #
1022 101-07
1022 143-01
1022 159-02
4123 201-01
4123 211-02
4123 214-01
Pada contoh terakhir, tergantung pada atribut penasihat Adv kamar (nomor kantor penasihat)
isfunctionally. Solusinya adalah untuk memindahkan thatattribute dari Daftar Tabel siswa ke Daftar
Tabel fakultas, sebagai shownbelow:
Siswa:
Siswa # Penasihat
1022 Jones
4123 Smith
6.
Fakultas:
Jones 412 42
Smith 216 42
support.microsoft