FAKULTAS TEKNOLOGI INFORMASI Normalisasi UNIVERSITAS BUDI LUHUR www
FAKULTAS TEKNOLOGI INFORMASI Normalisasi UNIVERSITAS BUDI LUHUR www. bl. ac. id PERTEMUAN KE-7 HAL : 1
FAKULTAS TEKNOLOGI INFORMASI - UNIVERSITAS BUDI LUHUR Normalisasi Data • • Untuk menghindari duplikasi data Merupakan proses mendekomposisikan relasi yang masih memiliki beberapa anomali untuk menghasilkan relasi yang lebih sederhana dan well-structured GASAL 2006/2007 PERANCANGAN BASIS DATA(KP 130) HAL : 2
FAKULTAS TEKNOLOGI INFORMASI - UNIVERSITAS BUDI LUHUR 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. GASAL 2006/2007 PERANCANGAN BASIS DATA(KP 130) HAL : 3
FAKULTAS TEKNOLOGI INFORMASI - UNIVERSITAS BUDI LUHUR Contoh Relasi Apa primary key-nya ? GASAL 2006/2007 Composite: NIP, KURSUS PERANCANGAN BASIS DATA(KP 130) HAL : 4
FAKULTAS TEKNOLOGI INFORMASI - UNIVERSITAS BUDI LUHUR 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 GASAL 2006/2007 PERANCANGAN BASIS DATA(KP 130) HAL : 5
FAKULTAS TEKNOLOGI INFORMASI - UNIVERSITAS BUDI LUHUR 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) GASAL 2006/2007 PERANCANGAN BASIS DATA(KP 130) HAL : 6
FAKULTAS TEKNOLOGI INFORMASI - UNIVERSITAS BUDI LUHUR Langkah-langkah dalam Normalisasi GASAL 2006/2007 PERANCANGAN BASIS DATA(KP 130) HAL : 7
FAKULTAS TEKNOLOGI INFORMASI - UNIVERSITAS BUDI LUHUR First Normal Form(1 NF) • Sudah tidak ada repeating group • Tidak memiliki multivalued attributes • Setiap nilai atribut hanya mempunyai nilai tunggal. • Relasi karyawan sudah Normal ke 1 (1 NF) GASAL 2006/2007 PERANCANGAN BASIS DATA(KP 130) HAL : 8
FAKULTAS TEKNOLOGI INFORMASI - UNIVERSITAS BUDI LUHUR Second Normal Form (2 NF) • 1 NF 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 2 nd Normal Form (2 NF) GASAL 2006/2007 PERANCANGAN BASIS DATA(KP 130) HAL : 9
FAKULTAS TEKNOLOGI INFORMASI - UNIVERSITAS BUDI LUHUR Contoh • Perhatikan pemetakan atribut di bawah ini Ketergantungan pada sepenuhnya pada primary key NIP Kursus Nama Bagian Gaji Selesai Ketergantungan hanya pada bagian dari key • NIP nama, bagian, gaji • Nip, Kursus selesai • Maka relasi karyawan masih belum normal ke-2 (2 NF) GASAL 2006/2007 PERANCANGAN BASIS DATA(KP 130) HAL : 10
FAKULTAS TEKNOLOGI INFORMASI - UNIVERSITAS BUDI LUHUR Contoh • Karena atribut nama, bagian dan gaji belum tergantung pada primary key, maka atribut-atribut tsb harus dipisahkan dari relasi induknya. NIP Nama NIP GASAL 2006/2007 Bagian Kursus Gaji Selesai PERANCANGAN BASIS DATA(KP 130) HAL : 11
FAKULTAS TEKNOLOGI INFORMASI - UNIVERSITAS BUDI LUHUR Third Normal Form (3 NF) • dalam. Third Normal Form (3 NF) relasi harus dalam 2 NF 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. GASAL 2006/2007 PERANCANGAN BASIS DATA(KP 130) HAL : 12
FAKULTAS TEKNOLOGI INFORMASI - UNIVERSITAS BUDI LUHUR Contoh • Relasi Customer Id_cust Nm_cust Sales Wilayah 0601 Agus M Barat 0602 Budi N Timur 0603 Cecep O Utara 0604 Dedy P Selatan GASAL 2006/2007 PERANCANGAN BASIS DATA(KP 130) HAL : 13
FAKULTAS TEKNOLOGI INFORMASI - UNIVERSITAS BUDI LUHUR Contoh • Perhatikan pemetakan atribut di bawah ini Transitive dependency Id_cust Nm_cust Sales wilayah Ketergantungan sepenuhnya pada key • Id_cust nm_cust, sales, wilayah • Sales wilayah • Maka relasi Sustomer masih belum normal ke-3 (3 NF) GASAL 2006/2007 PERANCANGAN BASIS DATA(KP 130) HAL : 14
FAKULTAS TEKNOLOGI INFORMASI - UNIVERSITAS BUDI LUHUR Contoh • Karena atribut thajaran, semester masih tergantung pada atribut selain key, maka atribut-atribut tsb harus dipisahkan dari relasi induknya. Sales Wilayah Id_cust GASAL 2006/2007 Nm_cust Sales PERANCANGAN BASIS DATA(KP 130) HAL : 15
FAKULTAS TEKNOLOGI INFORMASI - UNIVERSITAS BUDI LUHUR Boyce-Codd Normal Form (BCNF) • Table dalam BCNF jika sudah dalam 3 NF dan semua determinants adalah candidate keys. • Perbedaan 3 NF dan BCNF adalah untuk functional dependency A B, 3 NF 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. GASAL 2006/2007 PERANCANGAN BASIS DATA(KP 130) HAL : 16
FAKULTAS TEKNOLOGI INFORMASI - UNIVERSITAS BUDI LUHUR Contoh Client. Interview Client. No Interview. Date Interview. Time Staff. No Room. No C 100 13 -May-05 10. 30 S 1 G 101 C 200 13 -May-05 12. 30 S 1 G 101 C 300 13 -May-05 10. 30 S 2 G 102 C 200 14 -May-05 10. 30 S 3 G 102 • Pada relasi tsb mempunyai 3 candidate key yaitu: - (Client. No, Interview. Date) - (Interview. Date, Interview. Time, Staff. No) - (Room. No, Interview. Date, Interview. Time) GASAL 2006/2007 PERANCANGAN BASIS DATA(KP 130) HAL : 17
FAKULTAS TEKNOLOGI INFORMASI - UNIVERSITAS BUDI LUHUR Boyce-Codd Normal Form (BCNF) • relasi tsb mempunyai Functional Dependencies – Fd 1) Client. No, Interview. Date Interview. Time, Staff. No, Room. No (Primary key) – Fd 2) Interview. Date, Interview. Time, Staff. No Client. No (Candidate Key) – Fd 3) Room. No, Interview. Date, Interview. Time Staff. No, Client. No (Candidate Key) – Fd 4) Staff. No, Interview. Date Room. No • Dari relasi tsb yang bukan candidate key (fd 4), harus dikeluarkan dari relasi sehingga membentuk 2 relasi. Inter. View (Client. No, Interview. Date, Interview. Time, Staff. No) Staff. Room (Staff. No, Interview. Date, Room. No) GASAL 2006/2007 PERANCANGAN BASIS DATA(KP 130) HAL : 18
FAKULTAS TEKNOLOGI INFORMASI - UNIVERSITAS BUDI LUHUR Boyce-Codd Normal Form (BCNF) Maka akan terbentuk menjadi 2 relasi, sehingga relasi sudah dalam BCNF Inter. View Client. No Interview. Date Interview. Time Staff. No C 100 13 -01 -05 10. 30 S 1 C 200 13 -01 -05 12. 30 S 1 C 300 13 -01 -05 10. 30 S 2 C 200 13 -01 -05 12. 30 S 2 Staff. Room Interview. Date Staff. No Room. No 13 -01 -05 S 1 R 101 13 -01 -05 S 2 R 102 GASAL 2006/2007 PERANCANGAN BASIS DATA(KP 130) HAL : 19
FAKULTAS TEKNOLOGI INFORMASI - UNIVERSITAS BUDI LUHUR Fourth Normal Form (4 NF) • 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 1 NF 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. GASAL 2006/2007 PERANCANGAN BASIS DATA(KP 130) HAL : 20
FAKULTAS TEKNOLOGI INFORMASI - UNIVERSITAS BUDI LUHUR Fourth Normal Form (4 NF) • 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. GASAL 2006/2007 PERANCANGAN BASIS DATA(KP 130) HAL : 21
FAKULTAS TEKNOLOGI INFORMASI - UNIVERSITAS BUDI LUHUR Fourth Normal Form (4 NF) • relasi EMP mempunyai 2 MVD: ENAME —>> PNAME dan ENAME —>> DNAME. Dekomposisikan dari EMP ke relasi 4 NF EMP_PROJECTS and EMP_DEPENDENTS GASAL 2006/2007 PERANCANGAN BASIS DATA(KP 130) HAL : 22
FAKULTAS TEKNOLOGI INFORMASI - UNIVERSITAS BUDI LUHUR Fourth Normal Form (4 NF) • CONTOH GASAL 2006/2007 PERANCANGAN BASIS DATA(KP 130) HAL : 23
FAKULTAS TEKNOLOGI INFORMASI - UNIVERSITAS BUDI LUHUR Fifth Normal Form (5 NF) • 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 (5 NF). • 5 NF is defined as a relation that has no join dependency. GASAL 2006/2007 PERANCANGAN BASIS DATA(KP 130) HAL : 24
FAKULTAS TEKNOLOGI INFORMASI - UNIVERSITAS BUDI LUHUR Fifth Normal Form (5 NF) GASAL 2006/2007 PERANCANGAN BASIS DATA(KP 130) HAL : 25
FAKULTAS TEKNOLOGI INFORMASI - UNIVERSITAS BUDI LUHUR Fifth Normal Form (5 NF) Relasi (R) Property. Item. Supplier mempunyai atribut Property. No, Item. Description dan Supplier. No R(A, B, C), maka Join Dependency (JD) JD (R 1(A, B), R 1(B, C), R 1(A, C)) GASAL 2006/2007 PERANCANGAN BASIS DATA(KP 130) HAL : 26
- Slides: 26