Oleh : Asri, S.Kom 1
NORMALISASI DATA
Oleh : Asri, S.Kom 2
• Perancangan basis data diperlukan, agar kita bisa memiliki basis data yang kompak dan efisien dalam penggunaan ruang penyimpanan, cepat dalam pengaksesan dan mudah dalam pemanipulasian (tambah, ubah, hapus) data.
• Dalam merancang basis data, kita dapat melakukannya dengan :– Menerapkan normalisasi pada struktur table yang
telah diketahui.– Menerapkan model ER (Entity Relationship)
NORMALISASI DATABASE
Oleh : Asri, S.Kom 3
• Proses Normalisasi, merupakan proses pengelompokan data elemen menjadi table-table yang menunjukkan entity dan relasinya. Pada proses normalisasi selalu diuji pada beberapa kondisi,apakah ada kesulitan pada saat menambah / insert, menghapus / delete, mengubah / update, danmembaca / retrieve pada suatu Database.
NORMALISASI DATABASE
Oleh : Asri, S.Kom 4
• Bila ada kesulitan pada pengujian tersebut, maka relasi tersebut dipecahkan menjadi beberapa table lagi, sehingga diperoleh database yang optimal.
NORMALISASI DATABASE
Oleh : Asri, S.Kom 5
• Normalisasi lebih difokuskan pada tinjauan komprehensif terhadap setiap kelompok data (table) secara individual. Lebih jauh tinjauan tersebut dititikberatkan pada data di masing – masing kolom pembentuk tabel. Kita menggunakan istilah baru, yaitu atribut yang sebenarnya identik dengan pemakaian istilah kolom data atau field
Atribut Table
Oleh : Asri, S.Kom 6
Aturan Penulisan Nama File dan Field (PENTING SEKALI)
• Harus berisi Huruf dan angka• Tidak boleh mengandung spasi• Tidak boleh mengandung tanda baca
(, . ! ? Dll)• Tidak boleh menggunakan tanda
matematis (*, -, +, =, / dll)• Tidak boleh menggunakan karakter
khusus (#, $, ^, &, dll)
Oleh : Asri, S.Kom 7
Panjang Field (Atribut)• Panjang dari field (atribut) harus diisi sesuai dengan
kebutuhan, jangan selalu mengisi dengan default.
Oleh : Asri, S.Kom 8
• Table Dosen, memiliki 9 buah field / atribut, yaitu :– Nid– nama_d– tempat_lhr– tgl_lahir– Jkelamin– Alamat– Kota– Kodepos– gajipokok
CONTOH
Oleh : Asri, S.Kom 9
• Table Matakuliah, memiliki 4 buah atribut, yaitu : – Kdmk– nama_mk– Sks– semester
CONTOH
Oleh : Asri, S.Kom 10
• Table Jurusan, memiliki 4 buah atribut, yaitu : – kode_jur– nama_jur– Jenjang– nama_kajur
CONTOH
Oleh : Asri, S.Kom 11
• Table Mengajar, memiliki 9 buah atribut, yaitu : – Nid– thn_akademik– Smt– Hari– jam_ke– Kdmk– Waktu– Kelas– kode_jur
CONTOH
Oleh : Asri, S.Kom 12
• Dari 4 table di atas, masing-masing table memiliki field / atribut sebagai key, dan field / atribut lainnya sebagai atribut deskriptif. Ada pula atribut yang tergolong atribut sederhana atau komposit dan lainnya.
CONTOH
Oleh : Asri, S.Kom 13
Key dan Atribut Deskriptif
• Key, adalah satu atau gabungan beberapa atribut yang dapat membedakan semua baris data (row) dalam tabel secara unik. Artinya adalah apabila suatu field / atribut dijadikan key, maka tidak boleh ada dua atau lebih baris data dengan nilai yang sama untuk field / atribut tersebut.
Oleh : Asri, S.Kom 14
Key dan Atribut Deskriptif
• Sehubungan dengan pernyataan tersebut, maka kita dapat membedakan 3 (tiga) macam key
• yang dapat diterapkan pada suatu tabel :• 1. Candidate-Key.• 2. Key Primer (Primary-Key).• 3. Kunci tamu (Foreign Key)
Oleh : Asri, S.Kom 15
Candidate-Key
• Candidate_key adalah merupakan kumpulan field / atribut minimal yang dapat membedakan setiap baris data dalam sebuah table secara unik.Sebuah Candidate-key tidak boleh berisi atribut atau kumpulan atribut yang telah menjadi superkey yang lain. Jadi sebuah Candidate-key pasti superkey, tapi belum tentu sebaliknya.
Oleh : Asri, S.Kom 16
Candidate-Key
• Pada table Dosen tersebut diatas, yang dapat menjadi Candidate-key adalah :– (nid).– (nama_d), jika kita bisa menjamin tidak ada
nilai yang sama untuk atribut ini.
Oleh : Asri, S.Kom 17
Candidate-Key
• Pada sebuah table dimungkinkan ada lebih dari satu Candidate-key, seperti contoh diatas.
• Salah satu dari Candidate–key ini (jika memang lebih dari satu) dapat dijadikan sebagai Key Primer (Primary key).
Oleh : Asri, S.Kom 18
Primary-Key
• Primary_key adalah candidate-key yang dipilih untuk mengidentifikasi tupel secara unik pada suatu relasi. Kunci utama dapat terbentuk dari satu atribut atau lebih.
Oleh : Asri, S.Kom 19
Primary-Key
• Pemilihan Key Primer dari sejumlah Candidate-key pada suatu table didasari pada ketiga hal berikut ini:– Key tersebut lebih sering (natural) untuk
dijadikan acuan.– Key tersebut lebih ringkas.– Jaminan keunikan Key tersebut lebih baik.
Oleh : Asri, S.Kom 20
Primary-Key
• Dengan pertimbangan tersebut, kedua Candidate-key pada table dosen, yaitu nid dan nama_d, yang lebih cocok sebagai Key Primer adalah (nid). Hal ini dikarenakan bahwa jaminan keunikan daripada nid (nomor induk dosen) akan terjamin karena karena setiap nid pada suatu perguruan tinggi pastinya tidak akan sama nilainya, sedangkan kenapa tidak memilih nama_d, karena nama_d kemungkinan ada yang sama nilainya.
Oleh : Asri, S.Kom 21
Foreign-Key
• Kunci tamu adalah satu atribut (satu set atribut) yang melengkapi satu relationship (hubungan) yang menunjukkan ke induknya. Kunci tamu ditempatkan pada relasi anak dan sama dengan kunci primer induk direlasikan.
Oleh : Asri, S.Kom 22Gambar 4.1. Relasi one to many
Hubungan antara relasi induk dengan anak adalah satu lawan banyak (one to many relationship).
Oleh : Asri, S.Kom 23
KUNCI TAMU
• Kunci tamu dari table / relasi mengajar adalah : nid, kdmk dan kode_jur karena dalam table ini membutuhkan data – data yang ada dalam table dosen, matakuliah dan jurusan
• Kunci primer untuk table / relasi mengajar adalah id, thn_akademik, smt, hari, jam_ke, karena unik dan mewakili entity.
Oleh : Asri, S.Kom 24
KUNCI TAMU
• Dalam hal hubungan 2 buah relasi yang mempunyai relation banyak ke banyak (many to many), maka terdapat 2 buah kunci tamu pada relasi konektornya.
Oleh : Asri, S.Kom 25
KUNCI TAMU
• Contoh:
• Gambar 4.2. Relasi many to many
Oleh : Asri, S.Kom 26
KUNCI TAMU
• Hubungan relasi proyek dengan pegawai adalah many to many, dengan pengertian bahwa satu pegawai mengerjakan lebih dari 1 proyek dan 1 proyek dikerjakan oleh beberapa pegawai.
• Untuk menunjukkan hubungan tersebut, maka dipakai relasi konektor yang berisi kunci tamu dari kedua relasi (proyek dan pegawai).
Oleh : Asri, S.Kom 27
KUNCI TAMU
• Pada relasi proyek_pegawai tersebut atribut nik dan no_proyek merupakan kunci tamu (FK) dan keduanya juga menjadi primay key, dan keduanya merupakan kunci primer (primary key) pada relasi induknya.
Oleh : Asri, S.Kom 28
BENTUK NORMAL DATABASE
Bentuk tidak Normal (UNF)
Btk Normal Pertama (1NF)
Btk Normal Kedua (2NF)
Btk Normal Ketiga (3NF)
Btk Normal Boyce-Codd (BCNF)
Btk Normal Keempat (4NF)
Btk Normal Kelima (5NF)
Hilangkan atribut bernilai ganda
Hilangkan dependensi parsial
Mengatasi dependensi gabungan
Hilangkan >1 dependensi bernilai ganda
Hilangkan dependensi transitif
Hilangkan ketergantungan kepada yg bukan
kunci kandidat
Oleh : Asri, S.Kom 29
ANOMALI
• Anomali adalah masalah yang timbul ketika terjadi pemutakhiran data dalam relasi, diantaranya :– Anomali penyisipan– Anomali perubahan– Anomali penghapusan
Oleh : Asri, S.Kom 30
ANOMALIKode_barangNama_brg Hrg_jual Kode_pemas
okNm_Pemasok Kota
T-001 TV ABC 14" 600000P22 PT Citra Jaya Bogor
T-002 TV ABC 21" 950000P22 PT Citra Jaya Bogor
T-003 TV ABC 14" 450000P11 PT Amerta Bandung
T-004 TV Rhino 29" 1750000P33 PT Kartika Yogya
T-005 TV Rhino 14" 475000P44 PT Nindya Tangerang
Oleh : Asri, S.Kom 31
ANOMALI PENYISIPAN
• Adalah masalah yang timbul akibat terjadinya penyisipan data.
• Contoh pada relasi diatas, jika ada pemasok baru yang akan memasok barang, data pemasok tidak bisa dimasukkan karena yang menjadi primery key adalah kode barang, sampai si pemasok memasukkan barang ke perusahaan diatas.
Oleh : Asri, S.Kom 32
• Masalah kedua, misalnya pemasok P33 akan memasukkan barang lain berupa TV Rhino 14”, maka data P33 harus diinput lagi, berikut, jika data kotanya bukan Yogya, tetapi Yogyakarta, maka terjadi ketidak konsistenan data, karena kedua nama tersebut menunjukkan satu kota.
ANOMALI PENYISIPAN
Oleh : Asri, S.Kom 33
Anomali Perubahan
• Adalah masalah yang timbul ketika data dalam relasi dirubah.
• Contoh, jika pemasok P22 yang semula berlokasi di Bogor dan sekarang pindah ke Bekasi, jika datanya lebih dari 1 buah maka harus dilakukan perubahan terhadap seluruh data yang ada, jika hanya dirubah 1 data saja, maka datanya menjadi tidak konsisten
Oleh : Asri, S.Kom 34
Anomali Penghapusan
• Adalah masalah yang timbul akibat suatu baris dalam relasi dihapus.
• Misalnya adalah jika kode barang T004 akan dihapus, data tersebut hanya dipasok oleh pemasok P33, akibatnya data pemasok P33 menjadi hilang.
Oleh : Asri, S.Kom 35
Dependensi
• Dependensi adalah kekangan yang terjadi antara atribut-atribut dalam suatu tabel data, terdiri dari :– Dependensi fungsional (disebut Dependensi)– Dependensi Sepenuhnya– Dependensi Parsial– Dependensi Total– Dependensi Transitif
Oleh : Asri, S.Kom 36
• Adalah kekangan antara dua buah atribut atau antara dua buah himpunan atribut, misalnya dalam relasi R dengan atribut X dan Y biasanya dinotasikan
X � YDibaca dengan
X menentukan Y , atauY tergantung secara fungsional pada XX disebut DeterminanY disebut dependen
Dependensi Fungsional
Oleh : Asri, S.Kom 37
• Contoh:Kode_barang � harga_jual
Bisa diuji dengan satu kode barang hanya memiliki 1 harga jual, sekarang coba kita balik apakah 1 harga jual memiliki hanya 1 kode barang, tentu saja tidak, jadi harga jual tidak menentukan kode barang, jadi dependensinya dirubah menjadi
{X, Y} � Z
Dimana Z mempunyai dependensi terhadap pasangan X dan Y (Z=harga jual, X=kode barang, Y=Nama Barang)
Dependensi Fungsional
Oleh : Asri, S.Kom 38
Database ContohDosen_Pendidikan
No_Dosen Nama_Dosen Je_Kel Pendidikan Lulus_tahun
D41 Fahmi Pria S1 1987
D41 Fahmi Pria S2 1990
D42 Sita Dewi Wanita S1 1988
D42 Sita Dewi Wanita S2 1990
D42 Sita Dewi Wanita S3 1999
D43 Rio Febian Pria S1 1994
Oleh : Asri, S.Kom 39
• Suatu atribut Y dikatakan memiliki dependensi sepenuhnya terhadap X apabila memenuhi dua kondisi berikut :– Y mempunyai dependensi fungsional
terhadap X– Y tidak memiliki dependensi terhadap bagian
dari X
Dependensi Sepenuhnya
Oleh : Asri, S.Kom 40
• Contoh :{No_Dosen, Pendidikan} � Tahun_lulus
Pada dependensi fungsional, Tahun_Lulus bergantung pada gabungan No_Dosen dan pendidikan, perhatikan bahwa no_dosen D41, memiliki 2 tahun lulus, dan pendidikan S1 memiliki 3 tahun lulus, artinya tahun lulus bergantung pada gabungan no_dosen dan pendidikan, jadi dikatakan bahwa Tahun_lulus memiliki dependensi sepenuhnya terhadap {No_dosen , pendidikan}
Dependensi Sepenuhnya
Oleh : Asri, S.Kom 41
Dependensi Parsial
• Suatu atribut Y dikatakan memiliki dependensi parsial terhadap X apabila memenuhi dua kondisi, yaitu – Y adalah atribut non-kunci primer dan X
adalah kunci primer– Y memiliki dependensi terhadap bagian dari X
(tetapi tidak terhadap keseluruhan dari X)
Oleh : Asri, S.Kom 42
• Contoh : relasi Dosen_Pendidikan
Atribut Jen_Kel memiliki dependensi terhadap No_Dosen (bagian dari kunci primer yaitu {No_Dosen, pendidikan}
Dependensi Parsial
Oleh : Asri, S.Kom 43
Dependensi Total
• Atribut Y dikatakan memiliki dependensi total terhadap X jika memenuhi dua kondisi berikut :– Y memiliki dependensi fungsional terhadap X– X memiliki dependensi fungsional terhadap Y
Dependensi seperti ini dinotasikan sebagai berikut :
X � Y
Oleh : Asri, S.Kom 44
• Contoh :
- kode_pemasok � nama_pemasok
- nama_pemasok � kode_pemasok
Dependensi Total
Oleh : Asri, S.Kom 45
Dependensi Transitif
• Suatu atribut Z dikatakan memiliki dependensi transitif terhadap X apabila memenuhi dua kondisi berikut :– Z memiliki dependensi fungsional terhadap Y– Y memiliki dependensi fungsional terhadap X
Dinotasikan sebagai berikut :X � Y � Z
Oleh : Asri, S.Kom 46
• Contoh :
kode_barang � nama_pemasok
Dimana sesungguhnya :
kode_barang � kode_pemasok
kode_pemasok � nama_pemasok
Dependensi Transitif
Oleh : Asri, S.Kom 47
Bentuk Tidak Normal
• Berupa data yang diterima, tanpa membaginya kedalam tabel-tabel yang ditentukan, contoh :Seorang pegawai memiliki nomor_pegawai, nama_pegawai, nomor_klien, nama_klien, alamat_klien, keperluan_klien
Satu orang pegawai mungkin akan melayani lebih dari 1 orang klien.
Oleh : Asri, S.Kom 48
Bentuk Tidak Normalno_pegawa
inama_pegawai no_klien nama_klien
P27 Amir Udinsah K01 Rini Suwandi
K02 Edi Damhudi
K04 Fatwa Sari
P28 Kartika Amelia K03 Robert Irwandi
K07 Veronica Suci
P29 Barkah K05 Gabriela Febrianti
P30 Mahendra K06 Siti Amiarti
K08 Sandi Sunardi
Oleh : Asri, S.Kom 49
Bentuk Normal Pertama (1NF)
• Adalah suatu keadaan yang membuat setiap perpotongan baris dan kolom dalam relasi hanya berisi satu nilai
• Untuk membentuk 1NF perlu dilakukan langkah-langkah menghilangkan atribut-atribut yang memiliki nilai ganda.
Oleh : Asri, S.Kom 50
Bentuk Normal Pertama (1NF)no_pegawa
inama_pegawai no_klien nama_klien
P27 Amir Udinsah K01 Rini Suwandi
P27 Amir Udinsah K02 Edi Damhudi
P27 Amir Udinsah K04 Fatwa Sari
P28 Kartika Amelia K03 Robert Irwandi
P28 Kartika Amelia K07 Veronica Suci
P29 Barkah K05 Gabriela Febrianti
P30 Mahendra K06 Siti Amiarti
P30 Mahendra K08 Sandi Sunardi
Oleh : Asri, S.Kom 51
Bentuk Normal Kedua (2NF)
• Adalah bentuk yang mensyaratkan bahwa relasi harus sudah dalam bentuk 1NF dan tidak mengandung dependensi parsial.
• Cara untuk menghilangkan dependensi parsial adalah :– Ubahlah setiap dependensi parsial menjadi sebuah
relasi, dengan kunci primernya adalah determinannya.
– Ubahlah dependensi yang terkait langsung dengan kunci primer sebagai relasi tersendiri dan kunci primernya adalah kunci primer dalam relasi semula
Oleh : Asri, S.Kom 52
Bentuk Normal ketiga (3NF)
• Bentuk 3NF adalah dengan syarat, sudah berada dalam bentuk normal kedua dan tidak mengandung dependensi transitif
• Dependensi transitif didekomposisi relasinya dengan cara sebagai berikut :– Bentuk relasi yang mewakili dependensi
fungsional yang tidak melibatkan kunci primer dalam relasi semula, determinannya menjadi kunci primer relasi yang dibentuk.
Oleh : Asri, S.Kom 53
– Bentuk relasi yang berisi kunci primer relasi semula, kemudian pindahkan semua atribut bukan kunci primer yang bergantung pada kunci primer tetapi tidak bergantung pada determinan lain ke relasi tersebut. Jadikan atribut yang menjadi kunci primer relasi semula sebagai kunci primer relasi baru. Adapun atribut yang berasal dari determinan yang menjadi perantara dalam dependensi transitif akan bertindak sebagai kunci asing.
Bentuk Normal ketiga (3NF) Con’t
Oleh : Asri, S.Kom 54
Bentuk Normal Boyce-Codd (BCNF)
• Bentuk BCNF ini melibatkan kunci kandidat, dikatakan tabel sudah dalam bentuk normal Boyce-Codd jika– Tabel tersebut sudah dalam bentuk 3NF– Tidak ada dependensi fungsional yang
determinannya merupakan bukan kunci kandidat
Oleh : Asri, S.Kom 55
• Untuk membentuk BCNF, maka bentuk 3NF yang memiliki dependensi yang melibatkan determinan bukan kunci kandidat harus dinyatakan dalam relasi tersendiri dan atribut yang berkedudukan sebagai dependen dikeluarkan dari relasi semula.
Bentuk Normal Boyce-Codd (BCNF) Con’t
Oleh : Asri, S.Kom 56
Bahan Bacaan :
• Kadir, Abdul; Dasar Perancangan & Implementasi Database Relasional, Penerbit Andi Yogyakarta.
• Kristanto, Harianto, Ir, Konsep & Perancangan Database, Penerbit Andi Yogyakarta