Functional Dependency And Normalization

dokumen-dokumen yang mirip
Pengampu : Agus Priyanto. STIKOM YOS SUDARSO PURWOKERTO Smart, Mastery, Innovative, Loving, Enterpreneurship

Teknik Normalisasi. Normalisasi

Kontrak Kuliah. Bentuk-Bentuk Normalisasi. Edi Sugiarto, S.Kom, M.Kom

Kontrak Kuliah. Functional Dependencies. Edi Sugiarto, S.Kom, M.Kom

Dibuat oleh: Tim Pengajar Basis Data

BASIS DATA. Desain Database dan Normalisasi. Fakultas Ilmu Komputer UDINUS

NORMALISASI UNTUK BASIS DATA RELASIONAL

SISTEM BASIS DATA AUB SURAKARTA

Normalisasi Bagian I

DESAIN DATABASE DAN NORMALISASI

Contents. Normalisasi. Bentuk Normalisasi. Dependency. Status Kunci (Key) Dekomposisi

NORMALISASI. Dr.Budi Setiyono, MT

PERTEMUAN 6. Normalisasi Database (Conoly-chap 14) (Ramakisman -chap 15)

Database System 4 Normalization

PERANCANGAN BASIS DATA

NORMALISASI (2) Beberapa Bentuk Normal yang penting: Bentuk Normal Pertama (1 st Normal Form) Bentuk Normal Ke-2 (2 nd Normal Form)

di definisikan hanya dengan memperhatikan functional dependencies dan key constrains

Normalisasi Database

Copyright 2005 PENS-ITS C H A P T E R

PART 2: 1. Langkah Langkah Normalisasi 2. Bentuk Bentuk Normal 1 st NF, 2 nd NF, 3 rd NF, BCNF Dan bentuk-bentuk normal lainnya 3.

NORMALISASI (1) E.F Codd,1970. Normalisasi dilakukan terhadap desain tabel yang sudah ada untuk: 1/28/2012 1/28/2012

ANALISA RANCANGAN DATABASE

Pertemuan 7-8 NORMALISASI

NORMAL FORM. Normalisasi Table sendiri terbagi atas bentuk normal ke 1 sampai bentuk normal ke 5. lebih jelasnya

PERTEMUAN 6 TEKNIK NORMALISASI

Normalisasi Donny Yulianto, S.Kom

C H A P T E R 5-8. Normalisasi Database. Arif Basofi, S.Kom, MT.

Pertemuan 5 TEHNIK NORMALISASI

Database Design II. TPI4210 Sistem dan Teknologi Informasi e-tp.ub.ac.id

Emp_Dept(EmpName, SSN, Bdate, Address, DeptNumber, DeptName, DeptMngSSN) Emp_Proj(SSN,ProjNumber, Hours, EmpName, ProjName, ProjLoc)

Konsep Normalisasi dan Anomali Tabel

Normalisasi. Normalisasi adalah proses pembentukan struktur basis data sehingga sebagian besar ambiguity bisa dihilangkan.

SISTEM BASIS DATA. Pertemuan 9. Functional Dependencies. Copyright 2007 Ramez Elmasri and Shamkant B. Navathe.

Normalisasi Data. Author : Minarni, S.Kom.,MM

PERTEMUAN 9. Penyempurnaan Skema dan Bentuk-bentuk Normal

BASIS DATA (BS203) NORMALISASI. fb: NDoro Edi. Page 1

FUNCTIONALLY DEPENDENT DAN FUNCTIONALLY DETERMINES

PERTIMBANGAN MELAKUKAN DENORMALISASI PADA MODEL BASIS DATA RELASI. Gandung Triyono

Modul 9 : Normalisasi 1st NF sampai dengan BCNF

Basis Data 1 - TIS3333

Tujuan Umum Tujuan Khusus Pokok Bahasan/Materi

Perancangan Basis Data

Bagian 4 Normalisasi. Kuliah Basis Data Pra S2 Ilmu Komputer - FMIPA Drs. Agfianto Eko Putra, M.Si.

Copyright 2005 PENS-ITS C H A P T E R. Normalisasi Database

2. First Normal Form (1NF) Suatu tabel dianggap normal ke satu (1NF) jika : - Tidak terdapat baris yang bernilai ganda atau duplikat.

SISTEM BASIS DATA. Pertemuan 5. 3 SKS Semester 2 S1 Sistem Informasi Nizar Rabbi Radliya

PART 2: 1. Langkah Langkah Normalisasi 2. Bentuk Bentuk Normal 1 st NF, 2 nd NF, 3 rd NF, BCNF Dan bentuk-bentuk normal lainnya. 3.

MODUL 1 SEPUTAR PERANCANGAN DATABASE. 1.1 Entity-Relationship Model (ER Model) dan Entity Relationship Diagram (ERD)

Pertemuan 5 TEHNIK NORMALISASI

OVERVIEW BASIS DATA RELASIONAL. Oleh: Ir. M. Ramadhan, MT

Normalisasi Basis Data

ANALISA RANCANGAN NORMALISASI & DATABASE

Desain Sistem Basis Data. 1. Struktur Basis Data 2. Normalisasi Data 3. ERD (entity relationship diagram)

BAB V. dimengerti, mudah dipelihara, mudah memprosesnya, dan mudah untuk dikembangkan sesuai kebutuhan baru

NORMALISASI DATA. Basis Data

TEKNOLOGI KOMUNIKASI DAN INFORMATIKA UNIVERSITAS NASIONAL 2008 DKNF 5NF 4NF BCNF 3NF 2NF 1NF

Teknik dan Penerapan Normalisasi

RENCANA PROGRAM KEGIATAN PERKULIAHAN SEMESTER (RPKPS)

PERANCANGAN DATA BASE BY LILIS PUSPITAWATI, SE.,M.SI

Pertemuan VII Normalization (1) Fak. Teknik Jurusan Teknik Informatika. Caca E. Supriana, S.Si.,MT.

Desain Database. Dr. Khamami Herusantoso 1/107

Model Data Dalam SBD

BASIS DATA. Model Data Relational. Fakultas Ilmu Komputer UDINUS

Perancangan Database Bagian II (Normalisasi( Normalisasi) TUJUAN PEMBELAJARAN

Nor o mal a i l s i a s s a i s La L n a j n u j t u an

SISTEM BASIS DATA. Pertemuan 4. 3 SKS Semester 2 S1 Sistem Informasi Nizar Rabbi Radliya

C H A P T E R. Copyright 2005 PENS-ITS

BASIS DATA Mia Fitriawati, S.Kom., M.Kom.

Normalisasi. Didi Supriyadi, S.T., M.Kom Pertemuan ke-6

BAB 3 ANALISIS DAN PERANCANGAN. menentukan dan mengungkapkan kebutuhan sistem. Kebutuhan sistem terbagi menjadi

TEHNIK NORMALISASI LANJUTAN

Bentuk normal pertama (1NF) untuk menghilangkan atribut bernilai jamak. Bentuk normal kedua (2NF) untuk menghilangkan kebergantungan parsial.

PERTEMUAN 3 NORMALISASI

Rancangan Database. Database. File. Record. Data item atau field. Characters

Normalisasi adalah salah satu pendekatan logical design dari suatu database relational, dan tampaknya sedikit memiliki kemiripan dengan model ER.

Normalisasi. Normalisasi. Normalisasi. Tabel Universal. Tabel Universal 02/12/2010. (Pert. 8) Normalisasi

Pertemuan VI Functional Dependency Fak. Teknik Jurusan Teknik Informatika. Caca E. Supriana, S.Si.,MT.

MODEL RELASI DAN NORMALISASI DATABASE

Modul 8 : Relational Key dan Functional Dependency

MODUL II NORMALISASI DATA

Copyright 2005 PENS-ITS C H A P T E R. Normalisasi 1NF

DESAIN DATABASE (MODEL RELASIONAL DAN DESKRIPSI ATRIBUT)

Pertemuan VIII Normalization (2) Fak. Teknik Jurusan Teknik Informatika. Caca E. Supriana, S.Si.,MT.

NORMALISASI DAN TUGAS PRAKTEK

Mengotimalisasi redundansi Menghilangkan anomali

BAB 2 LANDASAN TEORI

BAB 6 BENTUK BENTUK NORMALISASI

NORMALISASI DAN TUGAS PRAKTEK

MATAKULIAH BASIS DATA

BAB III PERANCANGAN BASIS DATA DGN TEKNIK NORMALISASI

ANOMALI. Anomali ada 3 jenis yaitu: Anomali pengubahan Anomali penyisipan Anomali penghapusan

02. Berfungsi sebagai perantara antara pemakai dengan database adalah a. Data d. Perangkat lunak b. Pemakai e. File c.

BASISDATA. Basis Data Secara Umum

PENJELASAN UMUM MATA KULIAH PENJELASAN UMUM MATA KULIAH BAHAN DISKUSI DI KELAS KONSEP DASAR BASIS DATA. Phase 1 Conceptual Design

Normalisasi Lanjut. I. Review Normalisasi

NORMALISASI PRAKTIKUM BERKAS DAN BASIS DATA 2010/2011. Rizki Arif Firdaus

SEKOLAH TINGGI MANAJEMEN INFORMATIKA & KOMPUTER JAKARTA STI&K SATUAN ACARA PERKULIAHAN

REKOMENDASI PRIMARY KEY SUATU TABEL MELALUI PEMERIKSAAN DUPLIKASI DATA

Basis Data Modul Teori

Transkripsi:

Functional Dependency And Normalization 1.1

motivasi Tabel : Film title year length filmtype studioname starname Star Wars 1977 124 color Fox Carrie Fisher Star Wars 1977 124 color Fox Mark Hamill Star Wars 1977 124 color Fox Harrison Ford Mighty Ducks 1991 104 color Disney Emilio Estevez Wayne s World 1992 95 color Paramount Dana Carvey Wayne s World 1992 95 color Paramount Mike Meyers What your comment.. Is a good design..?? 1.2

motivasi Tabel : Film title year length filmtype studioname starname Star Wars 1977 124 color Fox Carrie Fisher Star Wars 1977 124 color Fox Mark Hamill Star Wars 1977 124 color Fox Harrison Ford Mighty Ducks 1991 104 color Disney Emilio Estevez Wayne s World 1992 95 color Paramount Dana Carvey Wayne s World 1992 95 color Paramount Mike Meyers Update Anomaly Update informasi pada satu tupel tidak mengubah pada tupel yang lain 125 Redundancy Informasi diulang-ulang dalam beberapa tupel 1.3

motivasi Tabel : Film title year length filmtype studioname starname Star Wars 1977 124 color Fox Carrie Fisher Star Wars 1977 124 color Fox Mark Hamill Star Wars 1977 124 color Fox Harrison Ford Mighty Ducks 1991 104 color Disney Emilio Estevez Wayne s World 1992 95 color Paramount Dana Carvey Wayne s World 1992 95 color Paramount Mike Meyers Delete Anomaly Jika Emilio Estavez dihapus, akan kehilangan informasi tentang Mighty Ducks 1.4

motivasi Tabel : Film title year length filmtype studioname starname Star Wars 1977 124 color Fox Carrie Fisher Star Wars 1977 124 color Fox Mark Hamill Star Wars 1977 124 color Fox Harrison Ford Mighty Ducks 1991 104 color Disney Emilio Estevez Wayne s World 1992 95 color Paramount Dana Carvey Wayne s World 1992 95 color Paramount Mike Meyers Star Wars 1977 124 Color MGM James Earl Jones Insertion Anomaly Jika kita sisipkan tupel baru (Star Wars, 177, 124, color, MGM, James Earl Jones) maka akan terjadi inkonsistensi pada atribut studio 1.5

motivasi Masalah Anomali : Redundancy: Pengulangan informasi dalam beberapa tupel yang sebenarnya tidak diperlukan. Update anomalies: Pengubahan informasi dalam satu tupel yang tidak kompak (inkonsistensi). Deletion anomalies: Kehilangan informasi akibat penghapusan informasi. Insertion anomalies: Penambahan tupel baru yang tidak konsisten. 1.6

motivasi Problems With : Goals : Integrity - redundansi - ambiguitas Performance - kecepatan akses - efisiensi storage Maintainability - update - delete - insert Tabel Database yang baik (Good Design) : Mampu merepresentasikan informasi. Jika ada dekomposisi maka dekomposisinya adalah aman (Lossless, not Lossy) Terpeliharanya ketergantungan fungsional Mempunyai skema relasi yang baik, kemudahan update data tanpa anomali (Dependency Preservation) Tidak terjadi pengulangan data - Tidak melanggar Boyce Codd Normal Form (BCNF) - Jika tidak dapat diupayakan memenuhi BCNF, maka minimal memenuhi bentuk 3NF (No Redundancy, anything say once) 1.7

we discuss before Teori Dasar : Dekomposisi Relasi Ketergantungan Fungsional Key 1.8

dekomposisi relasi Dekomposisi : memecah relasi/tabel menjadi relasi/tabel yang lebih kecil untuk mendapatkan skema yang tidak mengandung anomali dan redundansi Diketahui skema relasi R. Gugus relasi {R1, R2,,, Rn} disebut Dekomposisi dari R jika : R1 R2 Rn = R Artinya {R1, R2,, Rn} dekomposisi dari R jika setiap atribut dalam R muncul paling sedikit di salah satu Ri untuk 1 i n 1.9

dekomposisi relasi Film idfilm title year length filmtype idstudio studioname idstar starname F001 Star Wars 1977 124 color STD01 Fox STR01 Carrie Fisher F001 Star Wars 1977 124 color STD01 Fox STR02 Mark Hamill F001 Star Wars 1977 124 color STD01 Fox STR03 Harrison Ford F002 Mighty Ducks 1991 104 color STD02 Disney STR04 Emilio Estevez F003 Wayne s World 1992 95 color STD03 Paramount STR05 Dana Carvey F003 Wayne s World 1992 95 color STD03 Paramount STR06 Mike Meyers original DaftarFilm StudioFilm BintangFilm idfilm title year length filmtype idstudio studioname idstar starname F001 Star Wars 1977 124 color STD01 Fox STR01 Carrie Fisher F002 Mighty Ducks 1991 104 color STD02 Disney STR02 Mark Hamill F003 Wayne s World 1992 95 color STD03 Paramount STR03 Harrison Ford Decomposition result STR04 STR05 STR06 Emilio Estevez Dana Carvey Mike Meyers 1.10

dekomposisi relasi Dekomposisi relasi R menjadi gugus relasi {R1, R2,, Rn} yang tidak menyebabkan hilangnya informasi disebut Lossless-Join Decomposition. Jadi, jika r R dan r i = Ri (R) dimana 1 i n maka akan selalu memenuhi kondisi berikut : atau r n r r n atau i i 1 i 1 Dekomposisi relasi R menjadi gugus relasi {R1, R2,, Rn} yang menyebabkan hilangnya informasi disebut Lossy-Join Decomposition. i 1 Lossless Join digunakan untuk menjamin keutuhan data untuk operasi gabungan (join) dan merupakan fokus dalam desain basis data relasional r i r n r i 1.11

dekomposisi relasi Film = (idfilm, title, year, length, filmtype, idstudio, studioname, idstar, starname) idfilm title year length filmtype idstudio studioname idstar starname F001 Star Wars 1977 124 color STD01 Fox STR01 Carrie Fisher F001 Star Wars 1977 124 color STD01 Fox STR02 Mark Hamill F001 Star Wars 1977 124 color STD01 Fox STR03 Harrison Ford F002 Mighty Ducks 1991 104 color STD02 Disney STR04 Emilio Estevez F003 Wayne s World 1992 95 color STD03 Paramount STR05 Dana Carvey F003 Wayne s World 1992 95 color STD03 Paramount STR06 Mike Meyers Oopss!!! there is Anomaly!! Decompose it 1.12

dekomposisi relasi Film idfilm title year length filmtype idstudio studioname idstar starname F001 Star Wars 1977 124 color STD01 Fox STR01 Carrie Fisher F001 Star Wars 1977 124 color STD01 Fox STR02 Mark Hamill F001 Star Wars 1977 124 color STD01 Fox STR03 Harrison Ford F002 Mighty Ducks 1991 104 color STD02 Disney STR04 Emilio Estevez F003 Wayne s World 1992 95 color STD03 Paramount STR05 Dana Carvey F003 Wayne s World 1992 95 color STD03 Paramount STR06 Mike Meyers DaftarFilm StudioFilm BintangFilm idfilm title year length filmtype idstudio studioname idstar starname F001 Star Wars 1977 124 color STD01 Fox STR01 Carrie Fisher F002 Mighty Ducks 1991 104 color STD02 Disney STR02 Mark Hamill F003 Wayne s World 1992 95 color STD03 Paramount STR03 Harrison Ford Andaikan di dekomposisi Menjadi 3 tabel tsb. Lossless or Lossy? STR04 STR05 STR06 Emilio Estevez Dana Carvey Mike Meyers 1.13

dekomposisi relasi Dengan ke-3 tabel hasil dekomposisi, misal ditanyakan informasi : Di studio manakah Star Wars dibuat? Pasti kita akan membutuhkan tabel DaftarFilm dan StudioFilm. Tapi dapatkah diperoleh informasi yang kita inginkan dari kedua skema relasi tersebut? Tampaknya : TIDAK. Karena kita harus melakukan operasi gabungan terlebih dahulu dari Ke-2 tabel. Misal kita lakukan operasi cross product antara Daftar_Film dan StudioFilm. DaftarFilm StudioFilm 1.14

dekomposisi relasi Kehilangan LOSSY DECOMPOSITION Informasi!! DaftarFilm StudioFilm idfilm title year length filmtype idstudio studioname F001 Star Wars 1977 124 color STD01 Fox F001 Star Wars 1977 124 color STD02 Disney F001 Star Wars 1977 124 color STD03 Paramount F002 Mighty Ducks 1991 104 color STD01 Fox F002 Mighty Ducks 1991 104 color STD02 Disney F002 Mighty Ducks 1991 104 color STD03 Paramount F003 Wayne s World 1992 95 color STD01 Fox F003 Wayne s World 1992 95 color STD02 Disney F003 Wayne s World 1992 95 color STD03 Paramount Ternyata kita tidak mendapatkan informasi yang dibutuhkan, karena film Star Wars dibuat oleh 3 studio (Fox, Disney, Paramount) 1.15

functional dependencies (FD) Functional Dependencies (FD) / Ketergantungan Fungsional (KF) digunakan untuk menggambarkan atau mendeskripsikan bentuk normal atas suatu relasi FD adalah batasan terhadap gugus relasi yang berlaku. Diperoleh berdasarkan hubungan antar atribut data. Kegunaan FD : 1. Untuk memeriksa keabsahan apakah semua relasi sesuai dengan ketergantungan fungsional yang diberikan 2. Untuk menetapkan batasan gugus relasi yang berlaku 3. Untuk menentukan kunci relasi 4. Untuk melakukan normalisasi atas suatu tabel relasional 1.16

functional dependencies (FD) definisi Misalkan R adalah suatu skema relasional, atribut x R dan y R maka x dikatakan secara fungsional menentukan y (atau y bergantung secara fungsional pada x), ditulis x y pada R, jika : 1. Semua tupel t i [x], 1 i n adalah unik/tunggal 2. Semua pasangan tupel dimana t i [x] = t j [x], i j, terjadi juga t i [y] = t j [y] dengan kata lain : Untuk setiap nilai x terdapat hanya satu nilai y (x menentukan secara tunggal nilai y). Jadi apabila terdapat 2 tuple t 1 dan t 2 mempunyai nilai atribut x yang sama, maka juga akan mempunyai nilai atribut y yang sama. t 1 [x] = t 2 [x] t 1 [y] = t 2 [y] pada skema relasi R 1.17

functional dependencies (FD) R = (A, B, C) A B 1 4 1 5 2 7 A B? t 1 (A)=t 2 (A), tetapi t 1 (B) t 2 (B) Maka A B A C? C C1 C1 C2 t 1 (A)=t 2 (A) dan t 1 (C) = t 2 (C) Maka A C contoh R = (A,B,C,D) A B C D A1 B1 C1 D1 A1 B2 C1 D2 A2 B2 C2 D2 A2 B3 C2 D3 A3 B3 C2 D4 A C? C A? (A,B) C? (A,B) D? Yes No Yes Yes 1.18

functional dependencies (FD) 1.19

functional dependencies (FD) contoh Film = (idfilm, title, year, length, filmtype, idstudio, studioname, idstar, starname) idfilm title year length filmtype idstudio studioname idstar starname F001 Star Wars 1977 124 color STD01 Fox STR01 Carrie Fisher F001 Star Wars 1977 124 color STD01 Fox STR02 Mark Hamill F001 Star Wars 1977 124 color STD01 Fox STR03 Harrison Ford F002 Mighty Ducks 1991 104 color STD02 Disney STR04 Emilio Estevez F003 Wayne s World 1992 95 color STD03 Paramount STR05 Dana Carvey F003 Wayne s World 1992 95 color STD03 Paramount STR06 Mike Meyers F004 My Hearts 1992 101 color STD04 MGM STR01 Carrie Fisher F004 My Hearts 1992 101 color STD04 MGM STR02 Harrison Ford Apakah : idfilm title? idstudio studioname? (idfilm,idstar) starname? 1.20

functional dependencies (FD) FD dirumuskan berdasarkan batasan dari dunia nyata suatu atribut. Contoh : - Nomor Induk mahasiswa menentukan NamaMahasiswa NIM NamaMhs - Kode Matakuliah menentukan Nama Mata Kuliah dan SKS KodeMK (NamaMK, SKS) - NIM dan Kode Mata Kuliah menentukan Nilai Matakuliah (NIM,KodeMK) NilaiMK Suatu FD : x y disebut trivial jika y x Contoh : X X X,Y,Z X,Z X,Y X X,Y,Z Z X,Y Y X,Y,Z X,Y,Z 1.21

functional dependencies (FD) Armstrong s Rule A1. Reflexive Diketahui x y Dari A2 Jika y x maka x y Diketahui (z,y) w A2. Augmentation Dari A3 (x,z) w Jika x y maka (x,z) (y,z) A3. Transitive Jika x y dan y z maka x z A4. Decomposition Jika x (y,z) maka x y dan x z A5. Union Jika x y dan x z maka x (y,z) A6. Pseudotranstivity Jika x y dan (z,y) w maka (x,z) w (x,z) (y,z) 1.22

Manfaat FD pada dekomposisi Untuk : 1. Lossless Join Decomposition Mendapatkan dekomposisi yang tidak kehilangan data/informasi 2. No Redundancy Mendapatkkan skema relasi yang tidak mengandung redundansi 3. Dependency Preservation Terjaminnya pemeliharaan ketergantungan sehingga dapat mengatasi masalah update anomali 1.23

uji lossless-join decomposition Misal diketahui skema relasi R didekomposisi menjadi gugus relasi {R1, R2, R3, R4,, Rn}, maka dekomposisi ini disebut Lossless Join Decomposition jika kondisi R1 R2 R3 Rn Ri dipenuhi sekurang-kurangnya untuk 1 nilai i, dimana 1 i n. Dengan kata lain, jika diketahui skema relasi R didekomposisi menjadi gugus relasi {R1, R2}, maka dekomposisi ini disebut Lossless Join Decomposition jika dipenuhi salah satu kondisi : R1 R2 R1 atau R1 R2 R2 Langkah-2 Uji Lossless-joint Decomposition : 1. Uji Dekomposisi R1 R2 Rn = R 2. Uji Lossless-join Menggunakan sifat ketergantungan fungsional 1.24

uji lossless-join decomposition contoh Diketahui skema relasi R=(A,B,C,D,E,F,G,H) didekomposisi menjadi : R1=(A,B,C,D,G) dan R2=(B,D,E,F,H). FD pada R yang berlaku adalah : (1) B A,G (2) E D,H (3) A E,C (4) D F Ujilah apakah dekomposisi {R1,R2} tersebut lossless atau lossy? 1. Uji Dekomposisi R1 R2 = (A,B,C,D,G) (B,D,E,F,H) = (A,B,C,D,E,F,G,H) = R.:. Terbukti bahwa {R1,R2} adalah dekomposisi dari R. 1.25

uji lossless-joint decomposition contoh terbukti {R1,R2} 2. Uji Lossless Lossless R1 R2 = (A,B,C,D,G) (B,D,E,F,H) = (B,D) Akan dibuktikan bahwa paling sedikit satu kondisi berikut dipenuhi : R1 R2 R1 ; (B,D) (A,B,C,D,G) atau R1 R2 R2 ; (B,D) (B,D,E,F,H) Dari (1) B A,G maka : (5) B,D A,G,D (augmentasi) (6) B,D B,D (refleksif) Jadi (7) B,D A,B,D,G (1) B A,G maka (8) B A dan (9) B G Dari (3) A E,C maka (10) A E dan (11) A C maka : Dari (8) B A dan (11) A C Maka (12) B C (transitif) Dan (13) B,D C,D (augmentasi) Dari (7) dan (13) didapat : B,D A,B,C,D,G Dari contoh di atas, tunjukkan pula bahwa (B,D) (B,D,E,F,H) 1.26

Dependency preservation Dependency preservation (dapat di Indonesia-kan sebagai Pemeliharaan Ketergantungan) merupakan kriteria yang harus dicapai untuk mendapatkan tabel dan basis data yang baik. Dependency Preservation (Pemeliharaan Ketergantungan) merupakan kriteria yang menjamin keutuhan relasi ketika suatu relasi didekomposisi menjadi beberapa tabel. Sehingga diharapkan tidak terjadi inkonsistensi atau anomali ketika dilakukan update data. 1.27

uji dependency preservation Misal skema relasi R dengan himpunan ketergantungan fungsional F didekomposisi menjadi R1,R2,R3,,Rn. Dan F1,F2,F3,,Fn adalah himpunan ketergantungan fungsional yang berlaku di R1,R2,R3,,Rn maka dekomposisi tersebut dikatakan memenuhi sifat Dependency Preservation apabila berlaku : (F1 F2 F3 Fn) + = F + 1.28

functional dependencies (FD) Closure FD (F + ) Misal F adalah gugus ketergantungan fungsional pada skema relasi R, maka semua FD yang mungkin dapat diturunkan dari F dengan hukum-hukum FD disebut : Closure dari F, ditulis F +. Armstrong s rule dapat dimanfaatkan untuk menentukan F + Contoh : Diketahui R = (A, B, C, D) F = { A B, B C, A C, C D} maka : A D sebab A C dan C D, dari sifat transitif (A3) didapat A D B D sebab B C dan C D, dari sifat transitif (A3) didapat B D Sehingga {A B, B C, A C, C D, A D, B D} F +. Kita dapat menurunkan anggota-anggota F + yang lain berdasarkan FD yang diketahui menggunakan Armstong s rule. Closure FD (F + ) berguna untuk Uji Dependency Preservation 1.29

uji dependency preservation Contoh : Diketahui skema relasi R=(A,B,C) dengan FD : A B ; B C Didekomposisi menjadi R1=(A,B) dan R2=(B,C) a. Apakah dekomposisi tsb Lossless-Joint? b. Apakah dekomposisi tsb memenuhi Dependency Preservation? a. R1 R2 = (A,B) (B,C) = (A,B,C) = R R1 R2 = (A,B) (B,C) = B Lossless jika B (A,B) atau B (B,C). Karena diketahui B C maka BB BC atau B BC (Augmentasi). Jadi dekomposisi tsb Lossless. 1.30

uji dependency preservation b. R=(A,B,C) dan F = {A B, B C}. Karena A B dan B C maka A C. Maka dapat dibentuk closure F + ={A B, B C,A C}. R1=(A,B) dan F1={A B}. Karena hanya A B yang berlaku di R1. R2=(B,C) dan F2={B C}. Karena hanya B C yang berlaku di R2. F1 F2 = {A B,B C}. Karena A B dan B C maka A C. Sehingga (F1 F2 ) + ={A B,B C,A C}=F + Jadi dekomposisi tsb memenuhi Dependency Preservation. Ujilah dekomposisinya apakah Lossless dan Dependency Preservation Apabila R di atas didekoposisi menjadi R1=(A,B) dan R2=(A,C). Bagaimana bila R1=(A,B) dan R2=(B,C) tetapi FD : B C, AC B 1.31

soal latihan Ujilah dekomposisi dari skema relasi R, apakah lossless atau lossy? 1. R = (A,B,C,D,E,F,G,H) didekomposisi menjadi : R1 = (A,B,C,D,E) dan R2 = (C,D,F,G,H) dengan FD : C (A,B,D) ; F (G,H) ; D (E,F) 2. R = (A,B,C,D,E) didekomposisi menjadi : R1 = (A,B,C,D) dan R2 = (C,D,E) dengan FD : A B ; (C,D) E ; B D ; E A 3. R = (X,Y,Z,W,U,V) didekomposisi menjadi : R1 = (X,Y,Z,W) dan R2 = (W,U,V) dengan FD : W X ; X Z 4. R = (A,B,C,D,E,F) didekomposisi menjadi : R1 = (A,B,C), R2 = (A,D,F) dan R3 = (E,D) dengan FD : A (B,C) ; D (F,A) Uji pula dependency preservation nya untuk masing-masing soal tsb. 1.32

KEYS 1.33

atribut kunci (key) Kunci (key) adalah kolom/atribut atau kombinasi kolom/atribut yang dapat digunakan untuk mengidentifikasi baris dalam tabel (entitas) secara unik. Penentuan Key suatu tabel didasarkan pada sifat determinasi. Determinan : gugus atribut dimana satu atau lebih atribut lain tergantung secara fungsional. A determinan B artinya apabila nilai atribut A akan menentukan nilai-nilai atribut B. A determinan B dapat dituliskan sebagai suatu ketergantungan fungsional A B. Jika A menentukan B,C dan D maka dituliskan A B,C,D. Contoh : Relasi Mahasiswa=(NIM,Nama,Agama,TglLhr) Bila nilai NIM seorang mahasiswa diketahui maka dapat digunakan untuk melihat nilai-nilai atribut Nama, Agama dan Tanggal Lahirnya. Dituliskan NIM Nama,Agama,TglLhr 1.34

superkey Superkey (key) : - gugus atribut entitas yang dapat digunakan untuk mengidentifikasikan entitas/obyek secara unik. - satu atau lebih atribut yang membedakan setiap baris secara unik. Misal R skema relasi, dan K adalah satu atau lebih atribut dari R dimana K R maka K disebut Superkey jika dan hanya jika K R. Catatan : Suatu skema relasi dapat memiliki lebih dari 1 superkey. Bila K adalah superkey maka semua atribut gabungan yang mengandung K juga merupakan superkey Contoh : Relasi Sopir=(NoKTP,NoSIM,Nama,Alamat). Alternatif superkey : NoKTP superkey ; NoKTP Sopir NoSIM superkey ; NoSIM Sopir (NoKTP,NoSIM) superkey ; (NoKTP,NoSIM) Sopir (NoKTP,Nama) superkey ; (NoKTP,Nama) Sopir (NoKTP,NoSIM,Nama) superkey ; (NoSKTP,NoSIM,Nama) Sopir (NoKTP,NoSIM,Nama,Alamat) dengan sendirinya juga superkey Nama bukan superkey. Demikian juga (Nama,Alamat) juga bukan superkey 1.35

candidate key Candidate Key : - Superkey dengan jumlah atribut minimal - Superkey tanpa redundansi (tidak memuat subset superkey yang lain) K adalah Candidate Key dari skema relasi R jika dan hanya jika : K R dan tidak terdapat K dengan R Contoh : Skema relasi Sopir=(NoKTP,NoSIM,Nama,Alamat). Alternatif superkey : NoKTP superkey ; NoKTP Sopir NoSIM superkey ; NoSIM Sopir (NoKTP,NoSIM) superkey ; (NoKTP,NoSIM) Sopir (NoKTP,Nama) superkey ; (NoKTP,Nama) Sopir (NoKTP,NoSIM,Nama) superkey ; (NoSKTP,NoSIM,Nama) Sopir (NoKTP,NoSIM,Nama,Alamat) dengan sendirinya juga superkey Sebagai Candidate Key nya adalah NoKTP atau NoSIM 1.36

primary key Primary Key adalah candidate key yang dipilih untuk digunakan sebagai kunci identitas tabel secara unik (kunci indeks tabel) dan tidak boleh bernilai NULL. Dasar pemilihan Candidate Key sebagai Primary Key : Key tsb menjamin keunikan baris data Key tsb bersifat natural atau universal (lazim dipakai sebagai acuan) Key tsb mudah dan ringkas untuk dipakai sebagai acuan Contoh : Skema relasi Sopir=(NoKTP,NoSIM,Nama,Alamat). Alternatif superkey : NoKTP superkey ; NoKTP Sopir NoSIM superkey ; NoSIM Sopir (NoKTP,NoSIM) superkey ; (NoKTP,NoSIM) Sopir (NoKTP,Nama) superkey ; (NoKTP,Nama) Sopir (NoKTP,NoSIM,Nama) superkey ; (NoSKTP,NoSIM,Nama) Sopir (NoKTP,NoSIM,Nama,Alamat) dengan sendirinya juga superkey Sebagai Candidate Key nya adalah NoKTP atau NoSIM Maka NoSIM lebih baik dipilih sebagai Primary Key untuk skema relasi Sopir 1.37

secondary key Secondary Key adalah atribut (atau kombinasinya), yang digunakan sebagai perantara untuk mendapatkan kembali data asal. Biasanya dipakai pada pencarian data (data retrieval). Contoh : Skema relasi Sopir=(NoKTP,NoSIM,Nama,Alamat) dengan NoSIM sebagai Primary Key. Walaupun atribut ini lazim dipakai sebagai identitas seorang Sopir, tapi apakah seorang sopir dijamin hapal nomor SIM nya ketika misalnya ada transaksi yang berkaitan dengan penggunaan identitas No SIM?. Untuk memudahkan proses pencarian data sopir tersebut maka dapat digunakan atribut lain yang lebih mudah diingat misalnya nama dan/atau alamat. Penggunaan secondary key ini tentu saja tidak menjamin ditemukannya data uang unik, karena memang tidak ditujukan untuk kepentingan keunikan data. Tetapi sebagai alternatif atau fasilitas untuk membantu mengidentifikasi data. Analogikan ketika kita lupa akan ID atau password account email kita. Fasilitas apa yang bisa kita manfaatkan? 1.38

foreign key Foreign Key adalah satu atau lebih atribut dalam satu tabel yang merupakan primary key tabel lain (kunci penghubung). Produk IDProd NamaProduk Harga QtyStock F001 TV 14 1500000 12 F002 TV 21 2100.000 4 Tabel Name : Produk Primary key : IDProd Foreign Key : - F003 TV 21 Flatron 2700000 24 link Order NoOrder Date IDProd QtyOrder IDSls 120301 12/11/04 P001 2 S001 120302 13/11/04 P001 2 S003 120303 22/11/04 P003 6 S001 link Sales IDSls NmSls AlamatAsal KotaAsal S001 Anita Jl. Nakula 9 Kendal S002 Vicky Jl. Arjuna I/6 Semarang S003 Roni Jl. Bima II/3 Semarang Tabel Name : Order Primary key : NoOrder Foreign Key : IDProd,IDSls Tabel Name : Sales Primary key : IDSls Foreign Key : - 1.39

hubungan FD dengan key Amstrong s rule dapat digunakan untuk menurunkan superkey tabel, berdasarkan 1 atau lebih superkey yang diketahui Rule 1 : Apabila diketahui FD yang memuat semua atribut pada tabel, maka atribut-atribut yang terdapat pada ruas kiri dari FD adalah superkey Contoh : Diketahui tabel R = (W,X,Y,Z) dan FD : XY WZ maka XY superkey Sebab : XY WZ maka XY XY (refleksif) XY XYWZ (union) XY R Karena XY R maka XY superkey. Jadi ruas kiri dari FD merupakan superkey. 1.40

hubungan FD dengan key Rule 2 : Atribut yang secara fungsional menentukan superkey dari tabel maka atribut tersebut juga merupakan superkey Contoh : Diketahui W superkey dari tabel R = (W,X,Y,Z) dan FD : Z W maka Z superkey Sebab : Z W dan W WXYZ (karena W superkey), maka Z WXYZ (transitif) Z R Karena Z R maka Z superkey 1.41

hubungan FD dengan key R = (A,B,C,D) A B C D A1 B1 C1 D1 A1 B2 C1 D2 A2 B2 C2 D2 A2 B3 C2 D3 A3 B3 C2 D4 Apakah A superkey dari R? Bukan, sebab A R. Mengapa? Apakah (A,B) superkey dari R? Akan dibuktikan apakah (A,B) R. Jika Ya maka (A,B) superkey dari R. Karena semua tupel t i [A,B] untuk 1 i 5 adalah unik, t 1 [A,B]=(A1,B1) t 2 [A,B]=(A1,B2) t 3 [A,B]=(A2,B2) t 4 [A,B]=(A2,B3) t 5 [A,B]=(A3,B3) Maka (A,B) (A,B,C,D) atau (A,B) R Jadi (A,B) superkey dari R 1.42

hubungan FD dengan key Diketahui S = (A,B,C,D,E,F) dan FD : A BC ; B D ; C EF ; BF A Carilah superkey dan candidate key dari S menggunakan FD A BC A B A C karena A B dan B D maka A D karena A C dan C EF maka A EF A A Sehingga A ABCDEF atau A S (superkey) BF A A ABCDEF maka BF ABCDEF BF S (superkey) Superkey dari S A, BF serta gabungan atribut yang mengandung A, BF, AB, Candidate key dari S A Tips!! Fokuskan perhatian Anda pada atribut-2 di ruas kiri dari FD untuk mencari superkey 1.43

hubungan FD dengan key Latihan : 1. Diberikan R(A,B,C,D) dengan FD : A B,A C dan A D Apakah A candidate key dari R? 2. Diberikan R(A,B,C,D) dengan FD : A B a. Apakah ACD superkey dari R b. Apakah A candidate key dari R 3. Diberikan R(A,B,C,D,E,F) dengan FD : C (AB);B (DE);E F;A BC a. Carilah superkey dari R b. Carilah candidate key dari R 4. Diberikan R(A,B,C,D,E) dengan FD : A (BC);(CD) E;B D;E A a. Carilah superkey dari R b. Carilah candidate key dari R 5. Diberikan R(A,B,C) dengan FD : A B;B C;C A Apakah A merupakan satu-satunya candidate key dari R 1.44

Perhatikan Tabel berikut : a b c d e f g h I j No_fak Tgl_faktur Nm_kons Almt_kons Kota_kons Kode_brg Nama_brg Jml Hrg_sat bayar 101 10-01-08 Ali Jl. A. Yani No. 10 Semarang 1101 Sandal 10 15000 150000 101 10-01-08 Ali Jl. A. Yani No. 10 Semarang 1110 Sepatu 7 100000 700000 101 10-01-08 Ali Jl. A. Yani No. 10 Semarang 1112 Kaos 15 30000 450000 102 11-01-08 Rudi Jl. Seroja Raya 1 Solo 1101 Sandal 20 15000 300000 102 11-01-08 Rudi Jl. Seroja Raya 1 Solo 1113 Jaket 4 200000 800000 1.45

End Session Today Tomorrow We ll Discuss About Normalization 1.46

Normalization 1.47

normalisasi Normalisasi : Teknik/pendekatan yang digunakan dalam membangun disain lojik database relasional melalui organisasi himpunan data dengan tingkat ketergantungan fungsional dan keterkaitan yang tinggi sedemikian sehingga menghasilkan struktur tabel yang normal. Tujuan : Minimalisasi redundansi (pengulangan data) Memudahkan identifikasi entitas Mencegah terjadinya anomali Beberapa bentuk normal (normal forms, NF) : 1NF, 2NF, 3NF, BCNF based on keys and functional dependencies 4NF, 5NF based on keys and multi-valued dependencies) 1.48

First Normal Form (1NF) Suatu relasi disebut memenuhi bentuk normal pertama (1NF) jika dan hanya jika setiap atribut dari relasi tersebut hanya memiliki nilai tunggal dan tidak ada pengulangan grup atribut dalam baris. Bentuk 1NF tidak boleh mengandung grup atribut yang berulang. Tujuan membentuk 1NF : ::. semantik tabel menjadi lebih eksplisit (say anything once). ::. semua operator aljabar relasional dapat diaplikasikan pada tabel. 1.49

First Normal Form (1NF) Tabel : Sales IDSales NamaSales Telepon ADN006 Yeni, SE 3517261, 3520165 ADN007 Memey 4744621,08122861427 ADN008 Tina 08566241521 ADN009 Ir. Yanto 7265122, 7123910 ADN010 Made 6723192 non-atomic Unnormalized Not 1NF 1NF IDSales NamaSales Telepon ADN006 Yeni, SE 3517261 ADN006 Yeni, SE 3520165 ADN007 Memey 4744621 ADN007 Memey 08122861427 ADN008 Tina 08566241521 ADN009 Ir. Yanto 7265122 ADN009 Ir. Yanto 7123910 ADN010 Made 6723192 1.50

First Normal Form (1NF) Unnormalized Not 1NF Tabel : Buku repeated ISBN Thn_Terbit ID_Pengarang Nama_Pengarang ID_Pengarang Nama_Pengarang 12-1202-19222 1992 K0121 Aris M K1021 Kosim P 11-1090-29101 2001 K1021 Kosim P 11-1090-29102 2001 K2091 K Odelia K0121 Aris M 12-1201-90871 2002 K2092 Renaldi K2091 K Odelia 13-2089-12910 2001 K2019 Samsuri J ISBN Thn_Terbit ID_Pengarang Nama_Pengarang 12-1202-19222 1992 K0121 Aris M 12-1202-19222 1992 K1021 Kosim P 11-1090-29101 2001 K1021 Kosim P 11-1090-29102 2001 K2091 K Odelia 11-1090-29102 2001 K0121 Aris M 12-1201-90871 2002 K2092 Renaldi 12-1201-90871 2002 K2091 K Odelia 13-2089-12910 2001 K2019 Samsuri J 1NF 1.51

Second Normal Form (2NF) Suatu relasi disebut memenuhi bentuk normal kedua (2NF) jika dan hanya jika : 1. memenuhi 1NF 2. setiap atribut yang bukan kunci utama tergantung secara fungsional terhadap semua atribut kunci dan bukan hanya sebagian atribut kunci (fully functionally dependent). Untuk normalisasi ke bentuk 2NF, maka tabel 1NF didekomposisi menjadi beberapa tabel yang masing-masing memenuhi 2NF. Bila terdapat ketergantungan parsial maka : eliminate. Tujuan membentuk 2NF : :: semantik tabel 2NF menjadi lebih eksplisit (fully FD) :: mengurangi update anomali yang masih mungkin terjadi pada 1NF 1.52

Second Normal Form (2NF) Contoh : Diketahui tabel R=(A,B,C,D,E) ; A,B kunci utama (primary key) dengan FD : A,B C,D,E maka tabel R memenuhi 2NF sebab : A,B C,D,E berarti : A,B C, A,B D dan A,B E Jadi semua atribut bukan kunci utama tergantung penuh pada (A,B). Note : Jika suatu relasi memenuhi 1NF dan hanya memiliki tepat satu atribut kunci utama maka relasi tsb memenuhi 2NF 1.53

Second Normal Form (2NF) Bagaimana bila R = (A,B,C,D,E) tetapi dengan FD : (A,B) (C,D) dan B E. Apakah memenuhhi 2NF? Jelas bahwa R bukan 2NF karena ada atribut E yang bergantung hanya pada atribut B saja dan bukan terhadap (A,B). Dari FD : (A,B) (C,D) juga mencerminkan bahwa hanya C dan D saja yang bergantung secara fungsional terhadap (A,B), tidak untuk E. Jadi bukan 2NF. Untuk mengubah menjadi 2NF, lakukan dekomposisi menjadi : R1 = (A,B,C,D) dan R2 = (B,E). Tampak R1 dan R2 memenuhi 2NF. 1.54

Second Normal Form (2NF) Diketahui Workshop = (NIM,Modul,Biaya,Grade) Peserta Workshop NIM Modul Biaya Tabel biaya peserta workshop NIM Modul Biaya Grade P11.2004.0129 VB.Net 250000 A P11.2004.0130 Prolog 100000 A P11.2004.0129 Prolog 100000 B P11.2004.0201 Delphi 6 150000 A P11.2004.0250 VB.Net 250000 B Grade Key : NIM+Modul FD : Modul Biaya (Biaya ditentukan oleh Modul yang diambil mahasiswa) 1NF Not 2NF Sebab dalam tabel ini, Biaya tidak bergantung penuh pada atribut kunci (NIM,Modul) 1.55

Second Normal Form (2NF) NIM Modul Biaya Grade (NIM,Modul) = key (NIM,Modul) Biaya (partial) (NIM,Modul) Grade (full) NIM Modul Biaya Grade Eliminate Make Decomposition : Works1 = (NIM,Modul,Grade) Works2 = (Modul,Biaya) Fully Dependency 1.56

Second Normal Form (2NF) Workshop NIM Modul Biaya Grade P11.2004.0129 VB.Net 250000 A P11.2004.0130 Prolog 100000 A P11.2004.0129 Prolog 100000 B P11.2004.0201 Delphi 6 150000 A P11.2004.0250 VB.Net 250000 B More Better Then 1NF NIM Modul Grade P11.2004.0129 VB.Net A P11.2004.0130 Prolog A P11.2004.0129 Prolog B P11.2004.0201 Delphi 6 A P11.2004.0250 VB.Net B Modul Biaya VB.Net 250000 Prolog 100000 Delphi 6 150000 Works1 Works2 1.57

Third Normal Form (3NF) Suatu relasi disebut memenuhi bentuk normal ketiga (3NF) jika dan hanya jika : 1. memenuhi 2NF 2. setiap atribut yang bukan kunci tidak tergantung secara fungsional terhadap atribut bukan kunci yang lain dalam relasi tsb (tidak terdapat ketergantungan transitif pada atribut bukan kunci). Another Definition : Suatu relasi disebut memenuhi bentuk normal ketiga (3NF) jika dan hanya jika setiap FD nontrivial : X A, dimana X dan A atribut (atau kompositnya), memenuhi salah satu kondisi : 1. X adalah superkey 2. A merupakan anggota candidate key (A disebut prime attribute) 1.58

Third Normal Form (3NF) Jika suatu relasi sudah memenuhi 2NF tapi tidak memenuhi 3 NF, maka untuk normalisasi ke bentuk 3NF, tabel 2NF didekomposisi menjadi beberapa tabel hingga masing-masing memenuhi 3NF. Tujuan membentuk 3NF : :: semantik tabel 3NF menjadi lebih eksplisit (fully FD hanya pada primary key). :: menghindari update anomali yang masih mungkin terjadi pada 2NF. Note : Jika suatu relasi memenuhi 2NF dan hanya memiliki tepat satu atribut yang bukan kunci utama maka relasi tsb memenuhi 3NF 1.59

Third Normal Form (3NF) Contoh : Diketahui tabel R=(A,B,C,D,E) ; A,B kunci utama (primary key) dengan FD : A,B C,D,E dan C D,E maka R bukan 3NF sebab : Atribut D dan E (bukan kunci utama) bergantung secara fungsional pada C (yang juga bukan kunci utama). Melalui FD : Diketahui A,B C,D,E. Karena sifat refleksif maka A,B A,B. Sehingga A,B A,B,C,D,E (A,B) : Superkey. Diketahui C D,E. Karena sifat refleksif maka C C. Sehingga C C,D,E. Karena C A,B,C,D,E maka C bukan superkey. Tidak memenuhi definisi 3NF. Jadi R bukan 3NF. Agar R memenuhi 3NF maka didekomposisi menjadi : R1=(A,B,C) dan R2=(C,D,E) sehingga R1 dan R2 memenuhi 3NF. 1.60

Third Normal Form (3NF) FD : A,B C,D,E berarti A,B C ; C D,E ; A,B D,E A,B D reduce A,B E reduce Dekomposisinya : R1=(A,B,C) ; FD : (A,B) C R2=(C,D,E) ; FD : C D,E R A B C D E A B C C D E R1 R2 1.61

Third Normal Form (3NF) Misal diketahui struktur informasi dari suatu dokumen supplier : S Status City PQ P Qty S1 20 LONDON P1 300 P2 200 P3 400 P4 200 P5 100 P6 100 S2 10 PARIS P1 300 P2 400 S3 10 PARIS P2 200 S4 20 LONDON P2 200 P4 399 P5 400 Akan dibentuk suatu tabel dengan skema TPS=(S,Status,City,P,Qty) dengan (S,P) = primary key dan berlaku FD : S,P Qty S Stat, City City Status Lakukan normalisasi dari 1NF hingga 3NF. 1.62

Third Normal Form (3NF) TPS S Status City P Qty S1 20 LONDON P1 300 S1 20 LONDON P2 200 S1 20 LONDON P3 400 S1 20 LONDON P4 200 S1 20 LONDON P5 100 S1 20 LONDON P6 100 S2 10 PARIS P1 300 S2 10 PARIS P2 400 S3 10 PARIS P2 200 S4 20 LONDON P2 200 S4 20 LONDON P4 399 S4 20 LONDON P5 400 1NF Not 2NF Problem : Redundansi inconsistency low speed process Anomaly : S (Status,City) tapi kita tidak bisa insert data (S5,30,JAKARTA) tanpa diikuti data P (khususnya) dan Q. Menghapus 1 baris data akan jg merusak keutuhan informasi. Solusi : Dekomposisi menjadi : TPS1 dan TPS2 1.63

Third Normal Form (3NF) TPS1 S Status City 1NF S1 20 LONDON 2NF S2 10 PARIS Not 3NF (trans.) S3 10 PARIS S City S4 20 LONDON City Status Sekarang kita dapat menambah data (S5,30,JAKARTA) dgn aman Tapi masih ada anomaly : Karena City Status maka kita tidak bisa entry data City baru sebelum Status punya nilai. Penghapusan 1 baris sebagian data City juga bisa merusak keutuhan informasi S. Selain itu, masih ada redundansi pada Status dan City TPS2 S P Qty S1 P1 300 S1 P2 200 S1 P3 400 S1 P4 200 S1 P5 100 S1 P6 100 S2 P1 300 S2 P2 400 S3 P2 200 S4 P2 200 S4 P4 399 S4 P5 400 1NF 2NF 3NF 1.64

Third Normal Form (3NF) TPS1-1 TPS1-2 TPS2 1NF S City S1 LONDON S2 PARIS S3 PARIS S4 LONDON 1NF 2NF 3NF City Status LONDON 20 PARIS 10 1NF 2NF 3NF S P Qty 2NF S1 P1 300 3NF S1 P2 200 S1 P3 400 S1 P4 200 S1 P5 100 S1 P6 100 S2 P1 300 S2 P2 400 S3 P2 200 S4 P2 200 S4 P4 399 S4 P5 400 1.65

Third Normal Form (3NF) Try it!! 1.Diberikan skema relasi R = (A,B,C,D,E,F,G,H,I,J,K) dengan ketergantungan fungsional : A B,C,D ; C D ; E F ; A,E G,H,I,J,K ; I J,K Apakah R memenuhi 3NF? Jika tidak, rancanglah skema relasi R sedemikian sehingga memenuhi bentuk 3NF. Bila Saudara melakukan dekomposisi tabel, lengkapi dengan uji dekomposisi dan uji lossless. 2.Diketahui R=(A,B,C,D,E,F,G) dimana (A,B) : primary key Ketergantungan fungsional yang berlaku (FD) : A C,D,F ; B C,D,E,G ; E G Jika diketahui bahwa R memenuhi 1NF, apakah R memenuhi 2NF dan 3NF? Jika tidak, rancanglah skema relasi R sedemikian sehingga memenuhi bentuk 3NF. Bila Saudara melakukan dekomposisi tabel, lengkapi dengan uji dekomposisi dan uji lossless. 1.66

Boyce Codd Normal Form (BCNF) Suatu relasi disebut memenuhi BCNF jika dan hanya jika setiap determinan yang ada pada relasi tersebut adalah candidate key. Definisi yang lain : Suatu relasi disebut memenuhi BCNF jika untuk setiap FD nontrivial : X A atribut X adalah superkey. Untuk normalisasi ke bentuk BCNF, maka tabel 3NF didekomposisi menjadi beberapa tabel yang masing-masing memenuhi BCNF. Tujuan membentuk BCNF : :: semantik multiple candidate key menjadi lebih eksplisit (FD hanya pada candidate key). :: menghindari update anomali yang masih mungkin terjadi pada 3NF. Dari definisi 3NF dan BCNF, maka apabila suatu relasi memenuhi BCNF pasti memenuhi 3NF, tetapi belum tentu sebaliknya. ketergantungan funsional Trivial adalah suatu atribut yang bergantung secara fungsional terhadap kunci primer, mungkin saja merupakan kunci primer bagi atribut yang lain. 1.67

Boyce Codd Normal Form (BCNF) Contoh : Diketahui tabel R=(A,B,C) dengan FD : A B dan B C maka R bukan BCNF, sebab : A superkey? A B (diketahui) A B dan B C maka A C (transitif) A A (refleksif) Sehingga A (A,B,C) atau A R. Jadi A superkey. B superkey? B C (diketahui) B B (refleksif) Tapi B A. Sehingga B A,B,C atau B bukan superkey. Agar R memenuhi BCNF maka didekomposisi menjadi : R1=(A,B) ; FD : A B dan R2=(B,C) ; FD : B C. sehingga R1 dan R2 masing-masing memenuhi BCNF. Sebab A dan B dua-duanya sekarang menjadi superkey. 1.68

Boyce Codd Normal Form (BCNF) Contoh : Diketahui tabel R=(A,B,C) dengan FD : AB C dan C B. Apakah : 3NF? BCNF? R memenuhi 3NF karena : AB C ; maka AB ABC, atau AB R. Jadi AB superkey dari R C B ; maka AC AB, atau AC ABC dan AC R. Jadi AC juga superkey (sekaligus juga candidate key) dari R Karena AB superkey dan C subset candidate key maka R memenuhi 3NF R bukan BCNF karena : AB superkey tetapi C bukan superkey. 1.69

Boyce Codd Normal Form (BCNF) Students sid name age 53666 Jones 18 53668 Smith 18 53669 Melissa 17 53670 Hilden 19 Students=(sid, name, age) FD : sid name, age BCNF, sebab sid superkey Pinjam idpinjam sid bid date P-01 53666 B002 10/11/2005 P-02 53668 B001 10/11/2005 P-03 53668 B004 11/12/2005 P-04 53670 B002 14/11/2005 Books bid title year B001 MySQL 2002 B002 Algorithm 2003 B003 Visual Foxpro 6.0 2003 B004 Visual basic 6.0 2005 Books=(bid, title, year) FD : bid title, year BCNF, sebab bid superkey Pinjam=(idpinjam, sid, bid, date) FD : idpinjam bid, date Bukan BCNF, sebab idpinjam bukan superkey idpinjam sid 1.70

Boyce Codd Normal Form (BCNF) Pinjam idpinjam sid bid date P-01 53666 B002 10/11/2005 P-02 53668 B001 10/11/2005 P-03 53668 B004 11/12/2005 P-04 53670 B002 14/11/2005 Didekomposisi menjadi : Pinjam1 Pinjam2 idpinjam sid idpinjam bid date P-01 53666 P-01 B002 10/11/2005 P-02 53668 P-02 B001 10/11/2005 P-03 53668 P-03 B004 11/12/2005 P-04 53670 P-04 B002 14/11/2005 FD trivial BCNF idpinjam bid, date idpinjam superkey BCNF 1.71

Comparison of BCNF And 3NF It is always possible to decompose a relation into relations in 3NF and the decomposition is lossless the dependencies are preserved It is always possible to decompose a relation into relations in BCNF and the decomposition is lossless it may not be possible to preserve dependencies. 1.72

Comparison of BCNF And 3NF Contoh kasus redundansi pada 3NF Jadwal = (Nim,Modul,Dosen) FD = {Dosen Modul} Relasi ini memenuhi 3NF, karena tidak ada ketergantungan transitif. Tetapi tidak memenuhi BCNF karena dari Dosen Modul maka Dosen bukan candidate key. Alternatif yang dilakukan adalah dekomposisi tabel menjadi : NIM Modul Dosen NIM Dosen Dosen Modul P11.2004.0129 VB.Net Ajib P11.2004.0129 Ajib Ajib VB.Net P11.2004.0130 Prolog Aris P11.2004.0130 Aris Aris Prolog P11.2004.0201 VB Net Budi P11.2004.0201 Budi Jono Prolog P11.2004.0250 Prolog Jono P11.2004.0250 Jono Budi VB.Net P11.2004.0260 VB.Net Budi P11.2004.0260 Budi NOT BCNF BCNF 1.73

Design Goals Goal for a relational database design is: BCNF. Lossless join. Dependency preservation. If we cannot achieve this, we accept one of Lack of dependency preservation Redundancy due to use of 3NF 1.74

Design Steps (doesn t meet the definition of a relation) Praktisi database kebanyakan menganggap bahwa tingkatan normalisasi hingga BCNF atau 3NF dianggap sudah cukup untuk meminimalisasi masalah dalam desain database (redundansi,lossless,dependency preservation) Entity Set First Normal Form Second Normal Form Third Normal Form Boyce-Codd Normal Form Remove multivalued & repeating attributes. Meet definition of relation Remove partial dependencies Remove transitive dependencies Select relation where all determinants are candidate key 1.75

Contoh Untuk Tuan Ali Jl, A. Yani No. 10 Semarang Faktur : 101 Tanggal : 10-01-2008 No Kode Barang Nama Barang Harga Satuan Jumlah Jumlah Bayar 1 1101 Sandal 15.000 10 150.000 2 1110 Sepatu 100.000 7 700.000 3 1112 Kaos 30.000 15 450.000 Total 1.300.000 1.76

Bentuk Tidak Normal Tidak Normal Pertama, Karena ada multivalued attribute Bentuk Tidak Normal (Unnormalized Form) No_fa k Tgl_faktur Nm_kons Almt_kons Kota_kons Kode_brg Nama_brg Jml Hrg_sat bayar 101 10-01-08 Ali Jl. A. Yani No. 10 Semarang 1101 Sandal 10 15000 150000 1110 Sepatu 7 100000 700000 1112 Kaos 15 30000 450000 102 11-01-08 Rudi Jl. Seroja Raya 1 Solo 1101 Sandal 20 15000 300000 1113 Jaket 4 200000 800000 1.77

Bentuk Normal Pertama No_fak Tgl_faktur Nm_kons Almt_kons Kota_kons Kode_brg Nama_brg Jml Hrg_sat bayar 101 10-01-08 Ali Jl. A. Yani No. 10 Semarang 1101 Sandal 10 15000 150000 101 10-01-08 Ali Jl. A. Yani No. 10 Semarang 1110 Sepatu 7 100000 700000 101 10-01-08 Ali Jl. A. Yani No. 10 Semarang 1112 Kaos 15 30000 450000 102 11-01-08 Rudi Jl. Seroja Raya 1 Solo 1101 Sandal 20 15000 300000 102 11-01-08 Rudi Jl. Seroja Raya 1 Solo 1113 Jaket 4 200000 800000 Tidak ada multivalued attribute. Tetapi masih ada Anomali 1.78

Bentuk Normal Kedua Ketergantungan Fungsional tabel tersebut : Kode_brg -> nama_brg, hrg_sat Nm_kons -> almt_kons, kota_kons No_fak -> nm_kons, tgl_faktur No_fak, kode_brg -> jml, bayar Berdasarkan KF di atas, maka tabel Belum 2NF karena. Sehingga harus didekomposisi menjadi : - Uji Lossless?.. barang Kode_brg Nama_brg Hrg_sat konsumen Nm_kons Almt_kons Kota_kons detil No_fak Kode_brg Jml bayar faktur No_fak Nm_kons Tgl_faktur 1.79

Bentuk Normal Kedua Perhatikan masing-masing tabel, Masih ada anomali? Barang Kode_brg Nama_brg Hrg_sat 1101 Sandal 15000 1110 Sepatu 100000 1112 Kaos 30000 1113 Jaket 200000 konsumen Nm_kons Almt_kons Kota_kons Ali Jl. A. Yani No. 10 Semarang Rudi Jl. Seroja Raya 1 Solo detil No_fak Kode_brg Jml Bayar 101 1101 10 150000 101 1110 7 700000 101 1112 15 450000 102 1101 20 300000 102 1113 4 800000 faktur No_fak Nm_kons Tgl_faktur 101 Ali 10-01-2008 102 Rudi 11-01-2008 1.80

Bentuk Normal Ketiga Barang Kode_brg Nama_brg Hrg_sat 1101 Sandal 15000 1 NF Analisis. 1110 Sepatu 100000 2 NF Analisis. 1112 Kaos 30000 1113 Jaket 200000 3 NF Analisis. KF : Kode_brg -> nama_brg, hrg_sat Ketergantungan Transitif? 1.81

Bentuk Normal Ketiga konsumen Nm_kons Almt_kons Kota_kons Ali Jl. A. Yani No. 10 Semarang 1 NF 2 NF Analisis. Analisis. Rudi Jl. Seroja Raya 1 Solo KF : Nm_kons -> almt_kons, kota_kons 3 NF Analisis. faktur No_fak Nm_kons Tgl_faktur 1 NF Analisis. 101 Ali 10-01-2008 2 NF Analisis. 102 Rudi 11-01-2008 3 NF Analisis. KF : No_fak -> nm_kons, kota_kons 1.82

Bentuk Normal Ketiga detil No_fak Kode_brg Jml Bayar 101 1101 10 150000 1 NF Analisis. 101 1110 7 700000 2 NF Analisis. 101 1112 15 450000 102 1101 20 300000 3 NF Analisis. 102 1113 4 800000 KF : Ketergantungan Transitif? No_fak, kode_brg -> jml, bayar 1.83

Diagram Relasi Diagram Relasi setelah proses normalisai : barang Kode_brg Nama_brg Hrg_sat konsumen Nm_kons Almt_kons Kota_kons detil No_fak Kode_brg Jml bayar faktur No_fak Nm_kons Tgl_faktur 1.84

Berdasarkan formulir tersebut, Rancanglah tabel penyimpanan datanya Lakukan normalisasi hingga 3NF atau BCNF 1.85

The Callenge of Database Design Designers must make design compromises that are triggered by conflicting goals : design standards (design elegance or faithfulness), to develop good design : Lossless, No Redundant, Dependency Preservation processing speed (performance), and high processing speeds is top priority (efficiency) minimizing the number and complexity of relationships or table information requirements capablility for delivering all specified query and reporting of user requirements timely Contoh bentuk kompromi yang populer : Denormalisasi (pelanggaran normalisasi) 1.86

Denormalisasi Design Standards Vs (proceessing speed,information requirements) Normalisasi hanyalah merupakan teknik pendekatan yang digunakan untuk mendapatkan desain database (lojik) yang baik dan bukan sebagai aturan baku DBMS yang harus digunakan. Bersifat Normatif, memungkinkan untuk dilanggar dengan alasan : Kecepatan Proses (Efisiensi) dan Pelayanan Informasi Tepat Waktu Bentuk-bentuk Denormalisasi : - Membuat Atribut Turunan pada Tabel, mis : Cost=Qty*Price - Atribut yang Berlebihan, mis : NIM mahasiswa sudah mencerminkan program studi mahasiswa, tetapi dalam tabel mahasiswa dibuat atribut Program Studi. - Summary Table (mis : summary table for report) - Membiarkan relasi transitif dalam satu tabel untuk kemudahan proses Konsekuensi Denormalisasi : Redundancy, Not Atomic, Worst Space dll 1.87

Additional Material (Normal Form Other) 1.88

Multivalued Dependency (MVD) Beberapa bentuk normal (normal forms, NF) : 1NF, 2NF, 3NF, BCNF based on keys and functional dependencies 4NF, 5NF based on keys and multi-valued dependencies) Multivalued Dependencies (MVD) Misal R adalah skema relasi. A, B dan C adalah subset atribut dari R maka A disebut multidependensi pada B, ditulis A B, jika untuk setiap nilai A terdapat sekumpulan nilai B dan sekumpulan nilai C, tetapi nilai B dan nilai C independen. 1.89

Multivalued Dependency (MVD) Relasi MVD melibatkan minimal 3 atribut relasi, misal A-B-C Untuk setiap nilai A, terdapat sekumpulan nilai B dan sekumpulan nilai C. Sekumpulan nilai B independen dengan sekumpulan nilai C, semikian juga sebaliknya. Penawaran Mata Kuliah Mata KuliahInstruktur Pustaka Basis Data Himawan CJ Date Purwanto HF Korth Aris Marjuni Matematika M Sidiq C Liu MT Lang MVD : Mata Kuliah Instruktur Mata Kuliah Pustaka 1.90

Multivalued Dependency (MVD) Dalam contoh lain : R1 R2 R3 X Y Z 1 1 1 1 1 2 1 2 1 1 2 2 2 2 1 2 2 2 3 3 3 X Y? X Z? Y X? Z X? MVD Exist X Y Z 1 1 1 1 1 2 1 2 1 1 2 2 2 2 1 2 1 2 No MVD Why? X Y Z 1 1 1 1 1 2 1 2 1 2 2 1 2 2 2 No MVD Why? 1.91

Multivalued Dependency (MVD) Refleksif : x x Augmentation : Jika x y maka xz yz Transitif : Jika x y dan y z maka x z-y Pseudotransitif : Jika x y dan yw z maka xw z-yw Union : Jika x y dan x z maka x yz Dekomposisi : Jika x y dan x z maka x yz dan x z-y Komplemen : Jika x y dan z=r-x-y maka x z 1.92

Fourth Normal Form (4NF) Skema relasi R disebut 4NF jika dan hanya jika BCNF dan Tidak terdapat MVD. Apabila terdapat MVD dalam R, misal X Y maka harus memenuhi salah satu : - MVD adalah trivial atau - X adalah superkey 1.93

Fourth Normal Form (4NF) Misal diketahui R = (A, B, C, D, E, F) MVD : A B dan CD EF. Bila diasumsikan R memenuhi BCNF, apakah memenuhi 4NF? Jika belum upayakan menjadi 4NF. Bukan 4NF sebab terdapat MVD dan nontrivial. Dekomposisi R : Dari A B, dibentuk R1=(A,B) Karena A B maka A C,D,E,F dan dibentuk R2=(A,C,D,E,F) R1=(A,B) memenuhi 4NF, sebab MVD : A B trivial R2=(A,C,D,E,F) Bukan 4NF, karena MVD : CD EF nontrivial Dekomposisi R2 : R1=(A,B) Dari CD EF dibentuk R21=(C,D,E,F) R21=(C,D,E,F) Karena CD EF dan CD A, dibentuk R22=(C,D,A) R21=(C,D,E,F) R22=(C,D,A) 4NF, karena MVD : CD EF trivial Memenuhi 4NF R22=(C,D,A) 4NF, karena tidak ada MVD. 1.94

Fourth Normal Form (4NF) Misal diketahui R = (A, B, C, G, H, I) MVD : A B, B HI dan CG H. Bila diasumsikan R memenuhi BCNF, apakah memenuhi 4NF? Jika belum upayakan menjadi 4NF. Bukan 4NF sebab terdapat MVD, nontrivial dan bukan superkey. Dekomposisi R : Dari A B, dibentuk R1=(A,B) Karena A B maka A C,G,H,I dan dibentuk R2=(A,C,G,H,I) R1=(A,B) memenuhi 4NF, sebab MVD : A B trivial R2=(A,C,G,H,I) Bukan 4NF, karena MVD : CG H nontrivial Dekomposisi R2 : Dari CG H dibentuk R21=(C,G,H) Karena CG H maka CG A,I dan dibentuk R22=(C,G,A,I) R21=(C,G,H) 4NF, karena MVD : CG H trivial, tetapi R22=(C,G,A,I) bukan 4NF, karena ada MVD : A I (dari A B, B HI maka A -->HI dan A I). Dekomposisi R22 menjadi R221=(A,I) dan R222=(A,C,G) dan masing-masing merupakan bentuk 4NF. 1.95 R1=(A,B) R21=(C,G,H) R221=(A,I) R222=(A,C,G) Memenuhi 4NF

Fourth Normal Form (4NF) BCNF, sebab : - 1NF, Yes - 2NF, Yes. Sebab semua atribut mrpk atribut kunci. - 3NF, Yes. Sebab tidak ada ketergantungan transitif. - BCNF, Yes. Tidak ada FD pada atribut bukan kunci. - 4NF, No. Sebab terdapat MVD yang nontrivial. Dekomposisi MVD : Mata Kuliah Instruktur Mata Kuliah Pustaka 1.96

Fourth Normal Form (4NF) 4NF Mata Kuliah Instruktur 4NF 1.97 Mata Kuliah Pustaka Refference : Toby J. Teorey, Database Modeling & Design, page 112-116

Fourth Normal Form (4NF) R1 R2 R3 X Y Z 1 1 1 1 1 2 1 2 1 1 2 2 2 2 1 2 2 2 3 3 3 4NF? No. - MVD nontrivial - Bukan Superkey X Y Z 1 1 1 1 1 2 1 2 1 1 2 2 2 2 1 2 1 2 4NF? Yes X Y Z 1 1 1 1 1 2 1 2 1 2 2 1 2 2 2 4NF? Yes 1.98

Fifth Normal Form (5NF) Misal SPJ berisi data-data Supplier (S) yang memasok barang (P) untuk suatu Project (J). Satu supplier dapat memasok banyak barang, supplier juga Dapat berpartisipasi pada banyak proyek. SPJ S P J S1 P1 J2 S1 P2 J1 S2 P1 J1 S1 P1 J1 Key : S, P, J MVD : S P S J 4NF? No SP S S1 S1 S2 P P1 P2 P1 S P 4NF? Yes PJ P P1 P2 P1 J J2 J1 J1 S J 4NF? Yes Jika SP dan PJ di-project join-kan kembali on P akan diperoleh : SP join PJ S P J S1 P1 J2 S1 P1 J1 S2 P1 J2 S2 P1 J1 S1 P2 J1 Tupel asing Ternyata projection-join dari dekomposisinya tidak mengembalikan Ke relasi asal. 1.99

Fifth Normal Form (5NF) Relasi hasil project-join tsb akan kembali ke bentuk relasi asal SPJ setelah di project-join Kan dengan SJ pada S dan J SP join PJ SJ SPJ (Original) S P J S J S P J S1 P1 J2 S1 P1 J1 S2 P1 J2 Project-join on (S,J) S1 S1 S2 J2 J1 J1 S1 P1 J2 S1 P1 J1 S2 P1 J1 S2 P1 J1 S1 P2 J1 S1 P2 J1 SP PJ SJ S P P J S J S1 P1 P1 J2 S1 J2 S1 P2 P2 J1 S1 J1 S2 P1 P1 J1 S2 J1 Dekomposisi Akhir 1.100

Fifth Normal Form (5NF) Disebut juga Projection-Join Normal Form (PJ/NF) Skema relasi R disebut memenuhi 5NF jika tidak dapat dibuat menjadi beberapa tabel kecil yang lossless melalui operasi projectionjoin atau Skema relasi R disebut memenuhi 5NF jika setiap join dependency (JD) nontrivial pada R diimplikasikan oleh Candidate key dari R Join Dependency Batasan dekomposisi yang lossless pada sejumlah operasi project-join 1.101

Fifth Normal Form (5NF) SPJ SP PJ SJ S P J S P P J S J S1 P1 J2 S1 P1 P1 J2 S1 J2 S1 P2 J1 S1 P2 P2 J1 S1 J1 S2 P1 J1 S2 P1 P1 J1 S2 J1 S1 P1 J1 Key : S, P, J MVD : S P S J 4NF? No S P 4NF? Yes 5NF? Yes S J 4NF? Yes 4NF? Yes 5NF? Yes, tidak dapat didekomposisi lagi Trivial pada candidate key 4NF? Yes, tidak ada MVD 5NF? Yes Refference : C.J. Date, An Introduction To Database Systems, page 394-399 1.102

1NF SUMMARY 2NF 3NF BCNF 4NF 5NF LEVEL NORMALISASI 1.103

SUMMARY It is best to find a database design that meet the 3-criteria : NF (Normal-Form) note Dependency Preservation Lossless-Join note If we only have functional dependencies (FD), the first criteria is just BCNF. If we only have multivalued dependency (MVD), the first criteria is just 4NF. If we only have join dependency (JD), the first criteria is just 5NF. If we cannot meet all 3-criteria, we compromise on 4NF, and accept BCNF, or even 3NF if necessary, to ensure dependency preservation. 1.104