270 likes | 479 Views
Normalisasi. PERTEMUAN KE-7. Normalisasi Data. Untuk menghindari duplikasi data Merupakan proses mendekomposisikan relasi yang masih memiliki beberapa anomali untuk menghasilkan relasi yang lebih sederhana dan well-structured. Well-Structured Relations.
E N D
Normalisasi PERTEMUAN KE-7
Normalisasi Data • Untuk menghindari duplikasi data • Merupakan proses mendekomposisikan relasi yang masih memiliki beberapa anomali untuk menghasilkan relasi yang lebih sederhana dan well-structured PERANCANGAN BASIS DATA(KP130)
Well-Structured Relations • Sebuah relasi (relasi) yang memiliki data redundancy yang minimal dan memungkinkan user untuk melakukan insert, delete, dan update baris (record) tanpa menyebabkan inkonsistensi data • Tujuannya untuk menghindari beberapa anomali: • Insertion Anomaly – menambah record baru mempengaruhi user untuk membuat duplikasi data • Deletion Anomaly – menghapus record mungkin menyebabkan hilangnya data yang akan dibutuhkan pada record lain • Modification Anomaly – merubah data pada sebuah record mempengaruhi perubahan pada record lain karena adanya duplikasi. PERANCANGAN BASIS DATA(KP130)
Contoh Relasi Apa primary key-nya ? Composite: NIP, KURSUS PERANCANGAN BASIS DATA(KP130)
Anomali pada karyawan • Insertion – tidak dapat memasukkan data karyawan baru yang tidak mengambil kursus • Deletion – jika pegawai 400 dihapus, kita akan kehilangan informasi tentang keberadaan kelas Marketing • Modification – menaikan gaji pegawai 100 mengharuskan kita untuk meng-update beberapa records • Mengapa beberapa anomali ini muncul? Karena kita telah menyatukan 2 tema (entity) dalam satu relasi. Hal ini menyebabkan adanya duplikasi, dan ketergantungan antar entitas PERANCANGAN BASIS DATA(KP130)
Functional Dependencies • Functional Dependency: Nilai sebuah atribut (the determinant) menentukan nilai atribut yang lainnya. • Setiap yang bukan key secara fungsional harus tergantung pada setiap candidate key (primary Key) PERANCANGAN BASIS DATA(KP130)
Langkah-langkah dalam Normalisasi PERANCANGAN BASIS DATA(KP130)
First Normal Form(1NF) • Sudah tidak ada repeating group • Tidak memiliki multivalued attributes • Setiap nilai atribut hanya mempunyai nilai tunggal. • Relasi karyawan sudah Normal ke 1 (1NF) PERANCANGAN BASIS DATA(KP130)
Second Normal Form (2NF) • 1NF dan setiap atribut non-key sepenuhnya secara fungsional tergantung pada semua primary key. • Setiap atribut non-key harus didefinisikan oleh semua key, bukan oleh bagian dari key • Tidak memiliki partial functional dependencies • relasi karyawan belum dalam 2nd Normal Form (2NF) PERANCANGAN BASIS DATA(KP130)
NIP Kursus Nama Bagian Gaji Selesai Contoh • Perhatikan pemetakan atribut di bawah ini • NIP nama,bagian,gaji • Nip,Kursus selesai • Maka relasi karyawan masih belum normal ke-2 (2NF) Ketergantungan pada sepenuhnya pada primary key Ketergantungan hanya pada bagian dari key PERANCANGAN BASIS DATA(KP130)
NIP Nama Bagian Gaji NIP Kursus Selesai Contoh • Karena atribut nama,bagian dan gaji belum tergantung pada primary key, maka atribut-atribut tsb harus dipisahkan dari relasi induknya. PERANCANGAN BASIS DATA(KP130)
Third Normal Form (3NF) • dalamThird Normal Form (3NF) relasi harus dalam 2NF dan tidak ada transitive dependencies yang ada pada relasi. • Transitive dependency adalah ketika ada atribut yang secara tidak langsung tergantung sama key dan atribut stb tergantung pada atribut lain yang bukan key. PERANCANGAN BASIS DATA(KP130)
Contoh • Relasi Customer Id_cust Nm_cust Sales Wilayah 0601 0602 0603 0604 Agus Budi Cecep Dedy M N O P Barat Timur Utara Selatan PERANCANGAN BASIS DATA(KP130)
Contoh • Perhatikan pemetakan atribut di bawah ini • Id_custnm_cust, sales, wilayah • Saleswilayah • Maka relasi Sustomer masih belum normal ke-3 (3NF) Transitive dependency Id_cust Nm_cust Sales wilayah Ketergantungan sepenuhnya pada key PERANCANGAN BASIS DATA(KP130)
Contoh • Karena atribut thajaran,semester masih tergantung pada atribut selain key, maka atribut-atribut tsb harus dipisahkan dari relasi induknya. Sales Wilayah Id_cust Nm_cust Sales PERANCANGAN BASIS DATA(KP130)
Boyce-Codd Normal Form (BCNF) • Table dalam BCNF jika sudah dalam 3NF dan semua determinants adalah candidate keys. • Perbedaan 3NF dan BCNF adalah untuk functional dependency A B, 3NF memperbolehkan ketergantungan ada dalam relasi jika B adalah Primary Key dan A bukan merupakan candidate key. Sedangkan BCNF menuntut untuk ketergantungan tetap ada dalam relasi, A harus menjadi candidate key. • Kejadian pada BCNF adalah sangat jarang. • Potensial terjadinya BCNF boleh terjadi dalam relasi: • Mengandung 2 atau lebih composite candidate keys • candidate keys terjadi overlap, sehingga mempunyai sedikitnya 1 atribut pada keadaan biasa. PERANCANGAN BASIS DATA(KP130)
Contoh ClientInterview • Pada relasi tsb mempunyai 3 candidate key yaitu: • (ClientNo,InterviewDate) • (InterviewDate, InterviewTime, StaffNo) • (RoomNo, InterviewDate,InterviewTime) PERANCANGAN BASIS DATA(KP130)
Boyce-Codd Normal Form (BCNF) • relasi tsb mempunyai Functional Dependencies • Fd1) ClientNo,InterviewDate InterviewTime, StaffNo,RoomNo (Primary key) • Fd2) InterviewDate, InterviewTime, StaffNo ClientNo (Candidate Key) • Fd3) RoomNo, InterviewDate, InterviewTime StaffNo,ClientNo (Candidate Key) • Fd4) StaffNo, InterviewDate RoomNo • Dari relasi tsb yang bukan candidate key (fd4), harus dikeluarkan dari relasi sehingga membentuk 2 relasi. InterView (ClientNo, InterviewDate,InterviewTime, StaffNo) StaffRoom (StaffNo, InterviewDate, RoomNo) PERANCANGAN BASIS DATA(KP130)
Boyce-Codd Normal Form (BCNF) Maka akan terbentuk menjadi 2 relasi, sehingga relasi sudah dalam BCNF InterView StaffRoom PERANCANGAN BASIS DATA(KP130)
Fourth Normal Form (4NF) • Walaupun BCNF mehilangkan anomali pada functional dependencies, jenis yang lain dari ketergantungan disebut multi-valued dependency dapat juga menyebabakan data redundancy. • Possible existence of multi-valued dependencies in a relation is due to 1NF and can result in data redundancy. • Multi-valued Dependency (MVD) • Ketergantungan antar atribut(contoh: A,B dan C) pada relasi, seperti halnya setiap nilai dari A menetukan nilai B dan juga menentukan nilai dari C. kemudian nilai dari B dan C tidak tergantung pada yang lain. PERANCANGAN BASIS DATA(KP130)
Fourth Normal Form (4NF) • MVD antara atribut A, B, and C pada relasi yang digambarkan dengan notasi: A −>> B A −>> C • MVD can be further defined as being trivial or nontrivial. • MVD A −>> B pada relasi R didefinisikan dengan trivial jika (a) B adalah subset dari A or (b) A B = R. • MVD didefinisikan dengan nontrivial jika tidak ada (a) maupun (b) yang dihilangkan. • Trivial MVD tidak dapat menentukan batasan dalam relasi, selama Trivial MVD tidak dapat menentukan batasan. • Ketentuan bahwa relasi dalam Boyce-Codd Normal Form dan berisi bukan nontrivial multi-valued dependencies. PERANCANGAN BASIS DATA(KP130)
Fourth Normal Form (4NF) • relasi EMP mempunyai 2 MVD: ENAME —>> PNAME dan ENAME —>> DNAME. Dekomposisikan dari EMP ke relasi 4NF EMP_PROJECTS and EMP_DEPENDENTS PERANCANGAN BASIS DATA(KP130)
Fourth Normal Form (4NF) • CONTOH PERANCANGAN BASIS DATA(KP130)
Fifth Normal Form (5NF) • A relation decompose into two relations must have the, lossless-join property, which ensures that no spurious tuples are generated when relations are reunited through a natural join operation. • However, there are requirements to decompose a relation into more than two relations. Although rare, these cases are managed by join dependency and fifth normal form (5NF). • 5NF is defined as a relation that has no join dependency. PERANCANGAN BASIS DATA(KP130)
Fifth Normal Form (5NF) PERANCANGAN BASIS DATA(KP130)
Fifth Normal Form (5NF) Relasi (R) PropertyItemSupplier mempunyai atribut PropertyNo, ItemDescription dan SupplierNo R(A,B,C), maka Join Dependency (JD) JD (R1(A,B), R1(B,C), R1(A,C)) PERANCANGAN BASIS DATA(KP130)