Basis Data Bab VI Ketergantungan Fungsional dan Normalisasi

Slides:



Advertisements
Presentasi serupa
NORMALISASI DATA Basis Data.
Advertisements

functional dependencies (FD)
Normalisasi.
Normalisasi Basis Data
Normalisasi Basis Data
Normalization 1.
NORMALISASI.
NORMALISASI.
NORMALISASI.
SISTEM BASIS DATA STMIK – AUB SURAKARTA
Normalisasi Mardhiya Hayaty, ST.
10 Normalisasi Mata Kuliah: Basis Data ILMU KOMPUTER
Perancangan Data Base Relasi
Pertemuan 5 TEHNIK NORMALISASI.
Normalisasi (bagian III)
Sistem Basis Data Renni Angreni, M.Kom.
Normalisasi dan Functional Dependency
UNIVERSUTAS NEGERI MAKASSAR
NORMALISASI BASIS DATA
Rizka Hadiwiyanti, S.Kom, M.Kom
Desain Database Dengan Teknik NORMALISASI
Functional Dependency
Analisa & Perancangan Sistem Informasi
Basis Data Bab VII Normalisasi Presented by Mulyono, S.Si, M.Kom
Basis Data Bab VI Ketergantungan Fungsional dan Normalisasi
FUNCTIONAL DEPENDENCY (NORMALISASI)
Basis Data dan SBP Disusun Oleh : Lily Wulandari.
NORMALISASI.
Pertemuan 9 ANALISA RANCANGAN DATABASE.

NORMALISASI.
Perancangan Basis Data
NORMALISASI.
PERANCANGAN BASIS DATA
Normalization (Part 1).
Normalisasi PERTEMUAN KE-7.
Basis Data.
Sistem Basis Data Rahajeng Ratnaningsih, S. Kom STMIK – AUB Surakarta
TEKNIK NORMALISASI.
NORMALISASI DATA Basis Data.
Normalisasi Basis Data
NORMALISASI KUSRINI.
DataBaseManagementSystem
NORMALISASI.
PERTEMUAN 2 NORMALISASI
Normalization 1.
DESAIN DATABASE DAN NORMALISASI
Matakuliah : Sistem Basisdata Versi Materi
Aris Marjuni, S.Si, M.Kom Normalization 1.
Matakuliah : Sistem Basisdata Versi Materi
Normalization 1.
Model Relasional Part-3
PERTEMUAN KE-12 NORMALISASI (II).
Normalisasi.
PERTEMUAN KE-11 NORMALISASI DATA (I).
Normalization 1.
NORMALISASI KUSRINI, M.KOM.
Normalisasi.
Perancangan Data Base Relasi
NORMALISASI DATA Gede Aditra Pradnyana, S.Kom., M.Kom.
DESAIN DATABASE DAN NORMALISASI
Normalisasi Basis Data
NORMALISASI.
Normalisasi.
Normalization 1.
Presented by Team Basis data
Basis Data Bab VII Normalisasi Presented by Mulyono, S.Si, M.Kom
Normalization 1.
ENTOT SUHARTONO, SKOM, MKOM
NORMALISASI DATABASE Achmad fitro, M.Kom.
Transcript presentasi:

Basis Data Bab VI Ketergantungan Fungsional dan Normalisasi Presented by Team Basis Data Team Basis Data

KF dan Normalisasi Tujuan Intruksional Khusus : Setelah mempelajari bagian ini, mahasiswa akan dapat: menjelaskan pengertian ketergantungan fungsional, menjelaskan konsep dasar normalisasi data, menjelaskan tahapan normalisasi data, membedakan bentuk-bentuk normalisasi data. Team Basis Data 2

Perancangan Basis Data Refresh : Perancangan Basis Data Diperlukan, agar memiliki basis data yang kompak dan efisien dalam penggunaan ruang penyimpanan, cepat dalam pengaksesan, dan mudah dalam memanipulasi (Tambah, Ubah, hapus) data. Perancangan Basis data dapat dilakukan dengan: Normalisasi terhadap struktur tabel yang diketahui Langsung menggunakan Model Entity Relationalship Team Basis Data 3

KF dan Normalisasi Motivasi Normalisasi data merupakan suatu proses untuk mendapatkan struktur tabel atau relasi yang efisien dan bebas dari anomali, dan mengacu pada cara data item dikelompokkan ke dalam struktur record. Anomali merupakan efek samping yang tidak diharapkan, yang ditimbulkan dari suatu proses. Team Basis Data 4

KF dan Normalisasi Motivasi Terdapat empat macam anomali : Anomali Peremajaan, yang terjadi apabila dilakukan pengubahan data yang mengakibatkan pengubahan data lain yang tidak mempunyai hubungan secara logika. Anomali Penyisipan, yang terjadi apabila dilakukan penambahan atau penyisipan data yang mengakibatkan perlunya penambahan atau penyisipan data lain yang tidak mempunyai hubungan secara logika. Anomali Penghapusan, yang terjadi apabila dilakukan penghapusan data yang mengakibatkan hilangnya data lain yang tidak mempunyai hubungan secara logika. Redundansi, Pengulangan informasi dalam beberapa tupel yang sebenarnya tidak diperlukan. Team Basis Data 5

KF dan Normalisasi Motivasi 6 Goals : Problems With : 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) Goals : Integrity - redundansi - ambiguitas Performance - kecepatan akses - efisiensi storage Maintainability - update - delete - insert Problems With : Team Basis Data 6

KF dan Normalisasi Motivasi Is a “good” design .. ?? Tabel : Film title year length filmType studioName starName Star Wars 1977 124 color Fox Carrie Fisher Mark Hamill Harrison Ford Mighty Ducks 1991 104 Disney Emilio Estevez Wayne’s World 1992 95 Paramount Dana Carvey Mike Meyers What your comment ……….. Is a “good” design .. ?? Team Basis Data 7 7

KF dan Normalisasi Motivasi Update Anomaly Redundancy Tabel : Film title year length filmType studioName starName Star Wars 1977 124 color Fox Carrie Fisher Mark Hamill Harrison Ford Mighty Ducks 1991 104 Disney Emilio Estevez Wayne’s World 1992 95 Paramount Dana Carvey Mike Meyers 125 Update Anomaly Update informasi pada satu tupel tidak mengubah pada tupel yang lain Redundancy Informasi diulang-ulang dalam beberapa tupel Team Basis Data 8

KF dan Normalisasi Motivasi Delete Anomaly Tabel : Film title year length filmType studioName starName Star Wars 1977 124 color Fox Carrie Fisher Mark Hamill Harrison Ford Mighty Ducks 1991 104 Disney Emilio Estevez Wayne’s World 1992 95 Paramount Dana Carvey Mike Meyers Delete Anomaly Jika Emilio Estavez dihapus, akan kehilangan informasi tentang Mighty Ducks Team Basis Data 9

KF dan Normalisasi Motivasi Insertion Anomaly Tabel : Film title year length filmType studioName starName Star Wars 1977 124 color Fox Carrie Fisher Mark Hamill Harrison Ford Mighty Ducks 1991 104 Disney Emilio Estevez Wayne’s World 1992 95 Paramount Dana Carvey Mike Meyers Star Wars 1977 124 Color MGM James Earl Jones Insertion Anomaly Jika kita sisipkan tupel baru (Star Wars, 1977, 124, color, MGM, James Earl Jones) maka akan terjadi inkonsistensi pada atribut studio Team Basis Data 10

KF dan Normalisasi Teori Dasar : Ketergantungan Fungsional Key Dekomposisi Relasi Normalisasi Team Basis Data 11

Ketergantungan fungsional KF dan Normalisasi Ketergantungan fungsional Team Basis Data 12

KF dan Normalisasi Ketergantungan Fungsional (KF) 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 Team Basis Data 13

KF dan Normalisasi Ketergantungan Fungsional (KF) 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 ti [x], 1  i  n adalah unik/tunggal 2. Semua pasangan tupel dimana ti [x] = tj [x], i  j, terjadi juga ti [y] = tj [y] dengan kata lain : Untuk setiap nilai x terdapat hanya satu nilai y (x menentukan secara tunggal nilai y). Jadi apabila terdapat 2 tuple t1 dan t2 mempunyai nilai atribut x yang sama, maka juga akan mempunyai nilai atribut y yang sama. t1[x] = t2 [x]  t1[y] = t2 [y] pada skema relasi R Team Basis Data 14

KF dan Normalisasi Ketergantungan Fungsional (KF) A B C D A1 B1 C1 D1 contoh R = (A,B,C,D) R = (A, B, C) A B C D A1 B1 C1 D1 B2 D2 A2 C2 B3 D3 A3 D4 A B 1 4 5 2 7 C C1 C2 A  B ? t1(A)=t2(A), tetapi t1(B)  t2(B) Maka A  B A  C ? C  A ? (A,B)  C ? (A,B)  D ? Yes A  C ? No t1(A)=t2(A) dan t1(C) = t2(C) Yes Maka A  C Yes Team Basis Data 15

KF dan Normalisasi Ketergantungan Fungsional (KF) 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 STR02 Mark Hamill STR03 Harrison Ford F002 Mighty Ducks 1991 104 STD02 Disney STR04 Emilio Estevez F003 Wayne’s World 1992 95 STD03 Paramount STR05 Dana Carvey STR06 Mike Meyers F004 My Hearts 101 Apakah : idfilm  title ? idstar  studioName ? (idfilm,idstar)  starName ? Team Basis Data 16

KF dan Normalisasi Ketergantungan Fungsional (KF) 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  X X,Y  Y X,Y,Z  X,Z X,Y,Z  Z X,Y,Z  X,Y,Z Team Basis Data 17

KF dan Normalisasi Ketergantungan Fungsional (KF) A1. Reflexive Armstrong’s Rule Diketahui x  y Dari A2 (x,z)  (y,z) Diketahui (z,y)  w Dari A3 (x,z)  w A1. Reflexive Jika y  x maka x  y A2. Augmentation 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 Team Basis Data 18

KF dan Normalisasi KUNCI Team Basis Data 19

KF dan Normalisasi atribut kunci (key) 20 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. Contoh lain Jika A menentukan B,C dan D maka dituliskan A  B,C,D. Contoh : Relasi Mahasiswa=(NIM,Nama,Agama,TglLhr) Bila nilai/value NIM seorang mahasiswa diketahui maka dapat digunakan untuk melihat nilai-nilai atribut Nama, Agama dan Tanggal Lahirnya. Dituliskan NIM  Nama,Agama,TglLhr Team Basis Data 20

KF dan Normalisasi superkey 21 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 Team Basis Data 21

KF dan Normalisasi candidate key 22 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 Team Basis Data 22

KF dan Normalisasi primary key 23 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 Team Basis Data 23

KF dan Normalisasi secondary key 24 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 yang 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 ? Team Basis Data 24

KF dan Normalisasi foreign key Produk link Sales Order link 25 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 F003 TV 21” Flatron 2700000 24 Tabel Name : Produk Primary key : IDProd Foreign Key : - link Sales Order link IDSls NmSls AlamatAsal KotaAsal S001 Anita Jl. Nakula 9 Kendal S002 Vicky Jl. Arjuna I/6 Semarang S003 Roni Jl. Bima II/3 NoOrder Date IDProd QtyOrder IDSls 120301 12/11/04 P001 2 S001 120302 13/11/04 S003 120303 22/11/04 P003 6 Tabel Name : Sales Primary key : IDSls Foreign Key : - Tabel Name : Order Primary key : NoOrder Foreign Key : IDProd,IDSls Team Basis Data 25

KF dan Normalisasi hubungan KF 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. Team Basis Data 26

KF dan Normalisasi hubungan KF 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 Team Basis Data 27

KF dan Normalisasi hubungan KF dengan key A B C D A1 B1 C1 D1 B2 D2 A2 R = (A,B,C,D) Apakah (A,B) superkey dari R ? A B C D A1 B1 C1 D1 B2 D2 A2 C2 B3 D3 A3 D4 Akan dibuktikan apakah (A,B)  R. Jika Ya maka (A,B) superkey dari R. Karena semua tupel ti[A,B] untuk 1  i  5 adalah unik, t1[A,B]=(A1,B1) t2[A,B]=(A1,B2) t3[A,B]=(A2,B2) t4[A,B]=(A2,B3) t5[A,B]=(A3,B3) Maka (A,B)  (A,B,C,D) atau (A,B)  R Jadi (A,B) superkey dari R Apakah A superkey dari R ? Bukan, sebab A  R. Mengapa ? Team Basis Data 28

KF dan Normalisasi hubungan KF 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 Superkey dari S A, BC, BF serta gabungan atribut yang mengandung A, BC dan BF Candidate key dari S A, BC, BF 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) B  D maka BC  DC C  EF maka BC  BEF Jadi BC  BCDEF BC  BCDEF dan BCBF dan BFA maka BC  A BC  ABCDEF BC  S (superkey) Tips !! Fokuskan perhatian Anda pada atribut-atribut di ruas kiri dari FD untuk mencari superkey BF  A A  ABCDEF maka BF  ABCDEF BF  S (superkey) Team Basis Data 29

KF dan Normalisasi hubungan KF 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 5. Diberikan R(A,B,C) dengan FD : AB;BC;CA Apakah A merupakan satu-satunya candidate key dari R Team Basis Data 30

Jawaban Soal No. 1 1. Diberikan R(A,B,C,D) dengan FD : AB, AC dan AD Apakah A candidate key dari R ? Jawab AB, AC, AD // AB,C,D (union) // AA (refleksi) // AA,B,C,D (union) :. A merupakan Candidate key dari R Team Basis Data

Jawaban Soal No. 2 2. Diberikan R(A,B,C,D) dengan FD : AB a. Apakah ACD superkey dari R b. Apakah A candidate key dari R Jawab AB, // AA, AB // AA,B // ACD  ABCD (Augmentasi) ACD merupakan Superkey A bukan Candidat Key Team Basis Data

Jawaban No. 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 Jawab: CAB // CA, CB (Decomposisi) CB, BDE // CDE (transitive) CAB, CDE // CABDE (union) CE, EF // CABDEF // CC // CABCDEF Team Basis Data

Jawaban 3A 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 Jawab. CAB // CC (refleksi), CAB // CABC (union) CB, CAC (dekomposisi) CB, BDE // CDE (transitive) CDE, CABC // CABCDE (union) CE, CABCD (dekomposisi) CE, EF // C F (transitive) CF, CABCDE // CABCDEF (union) Team Basis Data

Jawaban No. 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 Jawab ABC // AA(refleksi), ABC // AABC (union) // AABC (di dekomposisi) AB, AAC AB, BD // AD (transitive) AABC, AD // AABCD (union) // AABCD (didekomposisi) AAB, ACD ACD, CDE // AE (transitive) AABCD, AE // AABCDE (Union) :. AR Team Basis Data

Jawaban No. 5 Diberikan R(A,B,C) dengan FD : AB;BC;CA Apakah A merupakan satu-satunya candidate key dari R Jawab AB, BC // AC (transitive) // ABC (union) // AA (refleksi)  AABC :. A R BC, CA // BA (transitive) // BAC (union) // BB (refleksi) BABC :. AR CA, AB // CB (transitive) // CAB (union) // CC (refleksi)  CABC :. CR Team Basis Data

KF dan Normalisasi Dekomposisi Relasi Team Basis Data 37

KF dan Normalisasi Manfaat KF 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 Team Basis Data 38

KF dan Normalisasi 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 : Uji Dekomposisi R1  R2  …  Rn = R 2. Uji Lossless-join Menggunakan sifat ketergantungan fungsional Team Basis Data 39

KF dan Normalisasi 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 ? 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. Team Basis Data 40

KF dan Normalisasi uji lossless-join decomposition R1 R2 E A B F C D H G B D terbukti {R1,R2} Lossless uji lossless-join decomposition contoh 2. Uji 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 (union) (1) B  A,G maka (8) B  A dan (9) B  G (dekomposisi) 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) Team Basis Data 41

R1  R2  R2 ; (B,D)  (B,D,E,F,H) Dari (10) DAN (8) B  A dan A  E JADI (11) B  E Dari (2) E  D,H (Refleksif) Dari (11) dan (2) didapat : B  E dan E  D,H Maka (12) B  D,H (Refleksif) (13) B  D (Decomposisi) (14) B  H Dari (11) dan (14) didapat : B  E dan B  H (Union) Jadi (15) B  E,H (16) B,D  E,H,D (augmentasi) Jadi (7) dan (16) B,D  B,D,E,F,H (Jadi Lossless) Dari (4) D  F (5) B,D  B,F (augmentasi) (6) B,D  B,D (refleksif) Jadi (7) B,D  B,D,F (3) A  E,C maka (8) A  E dan (Decomposisi) (9) A  C Dari (1) B  A,G maka (10) B  A dan (decomposisi) (11) B  G maka : Team Basis Data 42

KF dan Normalisasi Ketergantungan Fungsional (KF) 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 Team Basis Data 43

KF dan Normalisasi 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+ 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. Team Basis Data 44

KF dan Normalisasi 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) Apakah dekomposisi tsb Lossless-Joint ? Apakah dekomposisi tsb memenuhi Dependency Preservation ? 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. Team Basis Data 45

KF dan Normalisasi 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 didekomposisi menjadi R1=(A,B) dan R2=(A,C). Bagaimana bila R1=(A,B) dan R2=(B,C) tetapi FD : BC, ACB Team Basis Data 46

KF dan Normalisasi Dekomposisi relasi R1  R2  …  Rn = R 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 Team Basis Data 47

KF dan Normalisasi Dekomposisi relasi original Film BintangFilm idfilm title year length filmType idstudio studioName idstar starName F001 Star Wars 1977 124 color STD01 Fox STR01 Carrie Fisher STR02 Mark Hamill STR03 Harrison Ford F002 Mighty Ducks 1991 104 STD02 Disney STR04 Emilio Estevez F003 Wayne’s World 1992 95 STD03 Paramount STR05 Dana Carvey STR06 Mike Meyers BintangFilm DaftarFilm StudioFilm idstar starName STR01 Carrie Fisher STR02 Mark Hamill STR03 Harrison Ford STR04 Emilio Estevez STR05 Dana Carvey STR06 Mike Meyers idfilm title year length filmType F001 Star Wars 1977 124 color F002 Mighty Ducks 1991 104 F003 Wayne’s World 1992 95 idstudio studioName STD01 Fox STD02 Disney STD03 Paramount Decomposition result Team Basis Data 48

KF dan Normalisasi 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 ri = Ri(R) dimana 1  i  n maka akan selalu memenuhi kondisi berikut : atau Dekomposisi relasi R menjadi gugus relasi {R1, R2, …, Rn} yang menyebabkan hilangnya informasi disebut Lossy-Join Decomposition. Lossless Join digunakan untuk menjamin keutuhan data untuk operasi gabungan (join) dan merupakan fokus dalam desain basis data relasional Team Basis Data 49

KF dan Normalisasi Dekomposisi relasi there is Anomaly !! 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 STR02 Mark Hamill STR03 Harrison Ford F002 Mighty Ducks 1991 104 STD02 Disney STR04 Emilio Estevez F003 Wayne’s World 1992 95 STD03 Paramount STR05 Dana Carvey STR06 Mike Meyers there is Anomaly !! Decompose it …… Team Basis Data 50

KF dan Normalisasi Dekomposisi relasi Film DaftarFilm StudioFilm idfilm title year length filmType idstudio studioName idstar starName F001 Star Wars 1977 124 color STD01 Fox STR01 Carrie Fisher STR02 Mark Hamill STR03 Harrison Ford F002 Mighty Ducks 1991 104 STD02 Disney STR04 Emilio Estevez F003 Wayne’s World 1992 95 STD03 Paramount STR05 Dana Carvey STR06 Mike Meyers DaftarFilm StudioFilm BintangFilm idfilm title year length filmType F001 Star Wars 1977 124 color F002 Mighty Ducks 1991 104 F003 Wayne’s World 1992 95 idstudio studioName STD01 Fox STD02 Disney STD03 Paramount idstar starName STR01 Carrie Fisher STR02 Mark Hamill STR03 Harrison Ford STR04 Emilio Estevez STR05 Dana Carvey STR06 Mike Meyers Lossless or Lossy ? Andaikan di dekomposisi Menjadi 3 tabel tsb …. Team Basis Data 51

KF dan Normalisasi 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 kita memperoleh 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 Team Basis Data 52

KF dan Normalisasi Dekomposisi relasi Kehilangan Informasi !! DaftarFilm  StudioFilm idfilm title year length filmType idstudio studioName F001 Star Wars 1977 124 color STD01 Fox STD02 Disney STD03 Paramount F002 Mighty Ducks 1991 104 F003 Wayne’s World 1992 95 Ternyata kita tidak mendapatkan informasi yang dibutuhkan, karena film Star Wars dibuat oleh 3 studio (Fox, Disney, Paramount) Team Basis Data 53

KF dan Normalisasi soal latihan 54 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) Ujilah pula dependency preservation nya untuk masing-masing soal tsb. Team Basis Data 54

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) A.Uji Dekomposisi R1  R2 = (A,B,C,D,E)  (C,D,F,G,H) = (A,B,C,D,E,F,G,H) = R .:. Terbukti bahwa {R1,R2} adalah dekomposisi dari R. B.Uji Lossless R1  R2 = (A,B,C,D,E)  (C,D,F,G,H) = (C,D) dibuktikan paling sedikit satu kondisi dipenuhi : R1  R2  R1 ; (C,D)  (A,B,C,D,E) R1  R2  R2 ; (C,D)  (C,D,F,G,H) Team Basis Data

(8),(4):(9) C  E (transitif) (10) C  C (Refleksif) Menguji R1  R2  R1 ; (C,D)  (A,B,C,D,E) Dari (1) C  A,B,D (3) D  E,F (Decomposisi) (4) D  E (5) D  F Dari (1) C  A,B,D (6) C  A (7) C  B (8) C  D (8),(4):(9) C  E (transitif) (10) C  C (Refleksif) Dari(6),(7),(9),(10) (11) C  A,B,C,E (12 ) C,D  A,B,C,D,E (Augmentasi) C,D  A,B,C,D,E (Jadi Lossless) Menguji R1  R2  R2 ; (C,D)  (C,D,F,G,H) Dari (3) D  E,F (4) D  E dan (Decomposisi) (5) D  F (2) F  G,H Dari(2)&(5) D  F  G,H (7) D  G,H (8) D D (Refleksif) (9) D  D,G,H (5),(9) D  D,F,G,H (10) C,D  C, D,F,G,H (Augmentasi) (C,D)  (C,D,F,G,H) (Jadi Lossless) Team Basis Data

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 A.Uji Dekomposisi R1  R2 = (A,B,C,D)  (C,D,E) = (A,B,C,D,E) = R .:. Terbukti bahwa {R1,R2} adalah dekomposisi dari R. B.Uji Lossless R1  R2 = (A,B,C,D)  (C,D,E) = (C,D) dibuktikan paling sedikit satu kondisi dipenuhi : R1  R2  R1 ; (C,D)  (A,B,C,D) R1  R2  R2 ; (C,D)  (C,D,E) Team Basis Data

Jadi (6) C,D  A (Transitif) dari (6) C,D A (1) A  B Menguji R1  R2  R1 ; (C,D)  (A,B,C,D) Dari (2) C,D  E dari (4) E  A Jadi (6) C,D  A (Transitif) dari (6) C,D A (1) A  B Jadi (7) C,D  B (Transitif) (8) C,D  C,D (refleksif) Dari (6),(7),(8) C,D  A,B,C,D (Jadi Lossless) Menguji R1  R2  R2 ; (C,D)  (C,D,E) Dari (2) C,D  E (5) C,D  C,D (Refleksif) Dari (2) dan (5) diperoleh (C,D)  (C,D,E) (Jadi Lossless) Team Basis Data

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 A.Uji Dekomposisi R1  R2 = (X,Y,Z,W)  (W,U,V) = (X,Y,Z,W,U,V) = R .:. Terbukti bahwa {R1,R2} adalah dekomposisi dari R. Menguji R1  R2  R1 ; (W)  (X,Y,Z,W) Dari (1) W  X dari (2) X Z Jadi (3) W  Z (Transitif) (4) W W (Refleksif) Jadi (1),(3),(4) W  X,Z,W (Jadi Lossy) B.Uji Lossless R1  R2 = (X,Y,Z,W)  (W,U,V) = (w) dibuktikan paling sedikit satu kondisi dipenuhi : R1  R2  R1 ; (W)  (X,Y,Z,W) R1  R2  R2 ; (W)  (W,U,V) Team Basis Data

4. R = (A,B,C,D,E,F) didekomposisi menjadi : R1 = (A,B,C), R2 = (A,D,F) dan R3 = (E,D) dengan FD : 1. A  (B,C) 2. D  (F,A) A.Uji Dekomposisi R1  R2  R3 = (A,B,C)  (A,D,F)  (E,D) = (A,B,C,D,E,F) = R .:. Terbukti bahwa {R1,R2,R3} adalah dekomposisi dari R. B.Uji Lossless R1  R2 = (A,B,C)  (A,D,F) = (A) R2  R3 = (A,D,F)  (E,D) = (D) Team Basis Data

R1  R2  R1 ; (A)  (A,B,C) atau R1  R2  R2 ; (A)  (A,D,F) R1 = (A,B,C), R2 = (A,D,F) dan R3 = (E,D) dengan FD : A  (B,C) ; D  (F,A) R1  R2  R1 ; (A)  (A,B,C) Dari (1) A  B,C (5) A  A (refleksif) Jadi A  A,B,C (Jadi Lossless) Apakah R1  R2  R2 ; (A)  (A,D,F) Dari (1) A  B,C (5) A  A (refleksif) Jadi A  A,B,C ( lossy) R2  R3  R2 ; (D)  (A,D,F) atau R2  R3  R3 ; (D)  (E,D) R2  R3  R2 ; (D)  (A,D,F) Dari (2) D  F,A (5) D  D (refleksif) Jadi D  A,D,F (Jadi Lossless) R2  R3  R3 ; (D)  (E,D) Dari (2) D  F,A (5) D  D (refleksif) Jadi D  A,D,F (lossy) Jadi tabel R di decomposisi menjadi R1,R2,R3 adalah Lossy Team Basis Data