Analisis Dan Perancangan Sistem ( Systems Analysis And Design)
BAB 10 Designing Database Table 2 Selain cara pada bab sebelumnya, (bab 9) metodologi tersendiri untuk menciptakan struktur table (relasi) dalam basis data (analisis peracangan sistem) dengan tujuan untuk mengurangi kemubaziran data, normalisasi terkadang hanya dipakai sebagai perangkat verifikasi terhadap table-tabel yang dihasilkan oleh metodologi ERD. Normalisasi memberikan panduan yang sangat membantu bagi pengembang untuk mencegah penciptaan struktur table yang kurang fleksibel atau mengurangi ketidakefisienan. Kroenke Mendefinisikan normalisasi sebagai proses untuk mengubah suatu relasi yang memiliki masalah kedalam dua buah relasi atau lebih yang tak memiliki masalah tersebut. Masalah yang dimaksud olek kroenke ini sering disebut dengan istilah anomaly. ANOMALI Yaitu proses pada database yang memberikan efek samping yang tidak diharapkan (misalnya menyebabkan ketidakkonsistenan data atau membuat sesuatu data menjadi hilang ketika data lain dihapus). 1. ANOMALI PEREMAJAAN Anomali ini terjadi bila terjadi pengubahan pada sejumlah data yang mubazir, tetapi tidak seluruhnya diubah. Sebagai contoh, terdapat relasi ORDER yang mengandung data Pemasok dan kota yang menyatakan lokasi pemasok, barang dan jumlah yang menyatakan nama barang dan jumlah barang yang dipesan. PEMASOK Veri Mawar Kia Mawar
KOTA BARANG JUMLAH Medan Pen Disk 12 Bandung Jazz drive 5 Jakarta Motherboard 6 Bandung CPU 8 Relasi ORDER Seandainya pemasok Mawar berpindah ke kota lain, misalnya ke PADANG, dan pengubahan hanya dilakukan pada data pertama (data pemasok mawar pada relasi Order ada dua buah), maka hasilnya seperti yang terlihat dibawah ini : PEMASOK KOTA BARANG JUMLAH Veri Medan Pen Disk 12 Mawar Padang Jazz drive 5 Kia Jakarta Motherboard 6 Mawar Bandung CPU 8 Relasi setelah adanya Pengubahan Terlihat bahwa ada ketidakkonsistenan. Fakta pertama menyatakan bahwa pemasok Mawar di Padang, tetapi fakta kedua menyatakan bahwa pemasok mawar berada di
11
Analisis Dan Perancangan Sistem ( Systems Analysis And Design)
Bandung. Mana yang benar ? keadaaan inilah yang menyatakan adanya ketidak konsistenan. 2. ANOMALI PENYISIPAN Anomali penyisipan terjadi jika pada saat penambahan hendak dilakukan ternyata ada elemen yang masih kosong dan elemen data tersebut justru menjadi kunci. Sebagai contoh, terdapat relasi yang berisi tiga buah atribut. NM-MTK, GEDUNG, KELAS NM-MTK GEDUNG KELAS DATABASE ADV. F F 1.2 DATA Comunication E E 1.1 Technology Inf. System D D 1.1 Architecture Computer A A 1.4 MIS F F 1.4 System Analysis & Design E E 1.3 Database System F F 1.1 Relasi yang menimbulkan anomali penyisipan Relasi diatas menyatakan bahwa • NM-MTK mengunakan GEDUNG tertentu (misal Database Adv. mengunakan gedung F) • Suatu gedung berada pada kelas tertentu (misalnya gedung F terdapat kelas F 1.2) Masalahnya, bagaimana caranya meyimpan fakta bahwa F 1.1 yang terdapat pada gedung F ?. Penyisipan tidak dapat dilakukan mengingat tak informasi NM-MTK yang menggunakan tersebut. Kasus serupa dapat dilihat pada relasi berikut ini : NIM 200401 200401 200401 200401 200402 200402 200403
NM-KURSUS BIAYA English Class 100000 Merakit Computer 150000 Microsoft Office 99000 Service Monitor 120000 Merakit Computer 150000 Microsoft Office 99000 Networking 175000 Contoh relasi yang menimbulkan anomaly penyisipan
Relasi diatas mencatat kursus-kursus yang dikuti oleh siswa (misalnya 200401 mengambil kursus English class, merakit computer, Microsoft office, service monitor) selain juga menyatakan biaya kursus (misalnya biaya kursus English class adalah 100000). Masalah akan timbul apabila dibuka kursus baru, misalnya Bahasa Rakitan dengan biaya sebesar 80000, akan tetapi untuk sementara belum seorang pun yang mengambil kursus ini. Akibatnya, data kursus baru itu tidak dapat dicatat. 3. ANOMALI PENGHAPUSAN 12
Analisis Dan Perancangan Sistem ( Systems Analysis And Design)
Anomali penghapusan terjadi sekiranya sesuatu baris (tuple) yang tak terpakai dihapus dan sebagai akibatnya data lain yang hilang. Dengan mengambil contoh relasi kursus diatas, apa yang terjadi seandainya data bahwa siswa dengan identitas 200403 yang mengambil kursus Networking dihapus ? Data yang menyatakan biaya kursus networking sebesar 175000 juga akan terhapus. DEPENDENSI (KETERGANTUNGAN) Dependensi merupakan konsep yang mendasari normalisasi. Dependensi menjelaskan hubungan antara attibut atau secara lebih khusus menjelaskan nilai suatu atribut yang menentukan nilai atribut lainnya. Dependensi ini kelak menjadi acuan bagi pendekomposisian data ke dalam bentuk yang paling efisien. 1. DEPENDENSI FUNGSIONAL Adalah macam dependensi yang banyak diulas pada literature Database. Dependensi Fungsional didefinisikan Sebagai berikut : Suatu atribut mempunyai dependensi fungsional terhadap atribut X jika dan hanya jika setiap nilai X berhubungan dengan sebuah nilai Y Contoh : Relasi ORDER-JUAL dinotasikan dengan ORDER-JUAL ( PEMBELI, KOTA, BARANG, JUMLAH) Yang artinya bahwa relasi ORDER-JUAL mengandung attribute PEMBELI, KOTA, BARANG dan JUMLAH. Sample data pada relasi ini dapat dilihat pada table berikut PEMBELI P1 P1 P2 P2 P2 P3 P3
KOTA Padang Padang Bukittinggi Bukittinggi Bukittinggi P.Panjang P.Panjang
BARANG B1 B2 B1 B2 B3 B3 B4
JUMLAH 12 6 10 20 6 12 4
Pada contoh diatas, pembeli secara fungsional menentukan Kota, sebab terlhat bahwa untuk pembeli yang sama, Kotanya juga sama dengan demikian : PEMBELI
KOTA
Contoh yang lain : { Pembeli, Barang} { Pembeli, Barang} { Pembeli, Barang}
JUMLAH KOTA {JUMLAH,KOTA}
13
Analisis Dan Perancangan Sistem ( Systems Analysis And Design)
• •
Bagian yang terletak disebelah kiri panah biasa disebut penentu (determinan) dan bagian yang terletak disebelah kanan panah disebut yang tergantung (dependen) Tanda { } biasa digunakan kalau ada lebih dari satu atribut, baik pada penentu maupun yang tergantung.
2. DEPENDENSI FUNGSIONAL SEPENUHNYA Definisi dependensi fungsional sepenuhnya adalah sebagai berikut : Suatu atribut Y mempunyai dependensi fungsional penuh terhadap atribut X jika : • Y mempunyai dependensi fungsional terhadap X • Y tidak memiliki dependensi terhadap bagian dari X Sebagai contoh terdapat relasi PELANGGAN : PELANGGAN( KD-PEL,NAMA,KOTA,NO-FAX) Pada relasi ini : 1. {KD-PEL, KOTA} NO-FAX 2. KD-PEL NO-FAX Mengingat bahwa NO-FAX bergantung pada {KD-PEL,KOTA} kondisi 1, dan juga bergantung pada KD-PEL kondisi 2, yang tidak lain adalah bagian dari {KD-PEL, KOTA}, maka NO-FAX tidaklah mempunyai dependensi fungsional sepenuhnya terhadap {KD-PEL, KOTA}. Dengan kata lain NO-FAX hanya mempunyai dependensi fungsional terhadap KD-PEL. Berkaitan dengan hal ini terdapat istilah irreducible dependent atau dependensi yang tak dapat dibagi lagi. Istilah ini identik dengan dependensi fungsional sepenuhnya (full Functional dependent) atau terkadang hanya disebut dependensi sepenuhnya (fully Dependent). 3. DEPENDENSI TOTAL Pengertiannya adalah : Suatu attribute Y mempunyai dependensi total terhadap attribut X jika : • Y Memiliki dependensi fungsional terhadap X • X mempunyai dependensi fungsional terhadap Y Contoh KD-PEM NAMA KOTA K1 Kamal Padang K2 Kamelia Payakumbuh K3 Kartini Batusangkar Jadi : KD-PEM < ---- > NAMA Dengan asumsi bahwa tak ada nama pemasok yang sama
14
Analisis Dan Perancangan Sistem ( Systems Analysis And Design)
4. DEPENDENSI TRANSITIF, Attribut Z mempunyai dependensi transitif terhadap X bila : • Y memiliki dependensi fungsional terhadap X • Z Memiliki dependensi fungsional terhadap Y Contoh : NM-MTK VISUAL BASIC ORACLE BORLAND C++ DELPI
GEDUNG A B C A
KELAS A 1.1 B 1.2 C 1.2 A 1.1
WAKTU Senin, 8 – 10 Selasa 10 – 12 Rabu 8 – 10 Selasa 8 - 10
Jadi relasi nya adalah : NM-MTK GEDUNG
--Æ { Gedung, Waktu } --Æ Kelas
Terlihat bahwa NM-MTK --Æ GEDUNG ---Æ KELAS Dengan demikian KELAS mempunyai dependensi transitif terhadap NM-MTK DIAGRAM DEPENDENSI FUNGSIONAL Diagram dependensi fungsional adalah diagaram yang digunakan untk menggambarkan dependensi fungsional. Diagram ini menunjukan hubungan antara attribute yang menjadi penentu attribute lainnya. Dengan hubungan yang dinyatakan dengan tanda panah. Sebagai contoh, dependensi fungsional pada relasi yang terdapat conoth diatas, dapat disajikan dalam diagram dependensi fungsional sebagaimana berikut ini : GEDUNG
KELAS
NM-MTK WAKTU DEKOMPOSISI TAK HILANG Pada proses normalisasi seringkali terjadi pemecahan sebuah relasi menjadi dua relasi atau lebih. Proses pemecahan seperti ini biasa disebut dengan dekomposisi. Secara lebih khusus, macam dekomposisi yang dilakukan adalah dekomposisi tak hilang, yang artinya bahwa tak ada informasi yang hilang ketika relasi dipecah menjadi relasi-relasi lain. Contoh Bentuk relasi awal 15
Analisis Dan Perancangan Sistem ( Systems Analysis And Design)
NOBP 200401 200402 200403 200404 200405
NAMA DICKY NIA DIDIT DICKY RINDU
PROG-STUDI AKT AKT MNJ MNJ EP
Bentuk dekomposisi tak hilang : RELASI -1 NOBP NAMA 200401 DICKY 200402 NIA 200403 DIDIT 200404 DICKY 200405 RINDU
RELASI - 2 NOBP PROG-STUDI 200401 AKT 200402 AKT 200403 MNJ 200404 MNJ 200405 EP
Bentuk dekomposisi tak hilang : RELASI -1 NOBP NAMA 200401 DICKY 200402 NIA 200403 DIDIT 200404 DICKY 200405 RINDU
RELASI - 2 NAMA PROG-STUDI DICKY AKT NIA AKT DIDIT MNJ DICKY MNJ RINDU EP
BENTUK NORMAL Aturan-aturan normalisasi dinyatakan dalam istilah bentuk normal. Bentuk normal adalah suatu aturan yang dikenakan pada relasi-relasi dalam database dan harus dipenuhi oleh relasi-relasi tersebut pada level-level normalisasi. Suatu relasi dikatakan berada dalam bentuk normal tertentu jika memenuhi kondisi-kondisi tertentu. 1. Bentuk Normal Pertama Definisi Bentuk normal pertama (1 NF) : Suatu relasi dikatakan dalam bentuk normal pertama jika dan hanya jika setiap attribut bernilai tunggal untuk setiap baris. Bentuk normal pertama dikenakan pada table yang belum ternormalisasi. Tabel yang belum ternormalisasi adalah table yang memiliki attribute yang berulang. Sebagai contoh berikut ini data dalam keadaan belum ternormalisasi.
NIM 200401
NAMA IDWAR
JABATAN ANALYST YUNIOR
KEAHLIAN DATABASE
LAMA (TH) 5 16
Analisis Dan Perancangan Sistem ( Systems Analysis And Design)
200402
AMSAL
ANALYST SENIOR
200403
SUMIJAN
PROGRAMMER
COBOL SYS. ANALYST DESIGN SYS COBOL VISUAL BASIC BORLAND C++
8 10 8 10 5 4
Pada contoh diatas, keahlian menyatakan attribute yang berulang (misalnya, Sumijan memiliki 3 keahlian dan Idwar memiliki 2 keahlian ). Bentuk seperti ini perlu diubah menjadi bentuk normal pertama. Data yang tak ternormalisasasi pada data diatas dapat diubah ke dalam bentuk normal pertama dengan cara membuat setiap baris berisi kolom dengan jumlah sama dan setiap kolom hanya mengandung satu nilai. Data yang ada diatas perlu diubah menjadi relasi 1 NF. NIM 200401 200401 200402 200402 200403 200403 200403
NAMA IDWAR IDWAR AMSAL AMSAL SUMIJAN SUMIJAN SUMIJAN
JABATAN ANALYST YUNIOR ANALYST YUNIOR ANALYST SENIOR ANALYST SENIOR PROGRAMMER PROGRAMMER PROGRAMMER
KEAHLIAN DATABASE COBOL SYS. ANALYST DESIGN SYS. COBOL VISUAL BASIC BORLAND C++
LAMA (TH) 5 8 10 8 10 5 4
CONTOH LAIN ( Belum normal 1 NF) NOPES S01 S02 S02
TGL-PES ITEM1
ITEM2
01/04/04 01/04/04 04/04/04
P2 P5 P2
P1 P3 P1
Dirubah jadi 1 NF NO-PES S01 S01 S01 S01 S02 S02
TGL-PES 01/04/04 01/04/04 01/04/04 01/04/04 01/04/04 01/04/04
ITEM3
ITEM4
P3 P6
P4
ITEM P1 P2 P3 P4 P3 P5
TOTAL 99000 120000 77000
TOTAL 99000 99000 99000 99000 120000 120000 17
Analisis Dan Perancangan Sistem ( Systems Analysis And Design)
S02 S03 S03
01/04/04 04/04/04 04/04/04
P6 P1 P2
120000 77000 77000
2. Bentuk Normal Kedua Definisi Bentuk Normal Kedua ( 2 NF) berdasarkan dependensi Fungsional Suatu relasi berada dalam bentuk normal kedua jika dan hanya jika : • Suatu relasi berada dalam bentuk normal pertama • Semua attribut bukan kunci memiliki dependensi sepenuhnya terhadap kunci primer Atribut bukan kunci adalah atribut yang tidak merupakan bagian kunci primer Dalam ungkapan yang lebih praktis, bentuk normal kedua mensyaratkan setiap attirbut bergantung kepada kunci primer. Relasi dari contoh diatas tidak tergolong sebagai bentuk normal kedua, meskipun memenuhi persyaratan bentuk 1 NF. Perhatikan bahwa NAMA dan JABATAN mempunyai dependensi sepenuhnya terhadap NIM (sebab untuk setiap nilai NIM yang sama , NAMA dan JABATAN juga sama). Namun tidak demikian halnya dengan KEAHLIAN dan LAMA. Untuk mengubah suatu relasi yang tergolong sebagai bentuk normal pertama ke bentuk 2 NF perlu dilakukan dekomposisi terhadap relasi tersebut. Proses dekomposisi dapat dilakukan dengan menggambarkan diagram dependensi fungsional terlebih dahulu. Berdasarkan diagram ini, relasi dalam bentuk 1 NF dipecah menjadi sejumlah relasi. Contoh NIM NAMA JABATAN KEAHLIAN 200401 IDWAR ANALYST YUNIOR DATABASE 200401 IDWAR ANALYST YUNIOR COBOL 200402 AMSAL ANALYST SENIOR SYS. ANALYST 200402 AMSAL ANALYST SENIOR DESIGN SYS. 200403 SUMIJAN PROGRAMMER COBOL 200403 SUMIJAN PROGRAMMER VISUAL BASIC 200403 SUMIJAN PROGRAMMER BORLAND C++ Diagram Dependensi Fungsional dari table diatas adalah sbb:
LAMA (TH) 5 8 10 8 10 5 4
NAMA NIM LAMA
JABATAN KEAHLIAN
18
Analisis Dan Perancangan Sistem ( Systems Analysis And Design)
Diagram dependensi fungsional diatas menjelaskan bahwa : • NAMA dan JABATAN memiliki dependensi fungsional terhadap NIM • LAMA mempunyai dependensi fungsional terhadap gabungan NIM dan KEAHLIAN Berdasarkan diagram dependensi fungsional tersebut, pendekomposisiannya menghasilkan dua buah relasi, yaitu : RELASI 1 dan RELASI 2 RELASI-1 ( NIM, NAMA, JABATAN ) RELASI-2 ( NIM, KEAHLIAN, LAMA) Pada kedua relasi diatas, tanda garis bawah digunakan untuk menyatakan kunci primer masing-masing relasi. Dengan pendekomposisian seperti diatas, isi kedua relasi tersebut akan berupa sebagaimana hasil berikut ini. RELASI-1 NIM 200401 200402 200403
NAMA IDWAR AMSAL SUMIJAN
RELASI-2 NIM 200401 200401 200402 200402 200403 200403 200403
JABATAN ANALYST YUNIOR ANALYST SENIOR PROGRAMMER
KEAHLIAN DATABASE COBOL SYS. ANALYST DESIGN SYS. COBOL VISUAL BASIC BORLAND C++
LAMA (TH) 5 8 10 8 10 5 4
Begitu juga untuk data tabel yang kedua diatas : Untuk menggambarkan proses dekompisisi relasi yang tergolong dalam bentuk normal pertama ke bentuk normal kedua adalah : R ( A, B, C, D) Kunci Primer (A, B) A --Æ D R dapat digantikan dengan dua proyeksi R1 dan R2 R1 ( A, D ) KUNCI PRIMER ( A )
19
Analisis Dan Perancangan Sistem ( Systems Analysis And Design)
R2 ( A, B, C ) KUNCI Primer ( A, B) KUNCI TAMU ( A ) Referensi R1 Contoh adalah sebagai berikut : NO-PES TGL-PES ITEM TOTAL S01 01/04/04 P1 99000 S01 01/04/04 P2 99000 S01 01/04/04 P3 99000 S01 01/04/04 P4 99000 S02 01/04/04 P3 120000 S02 01/04/04 P5 120000 S02 01/04/04 P6 120000 S03 04/04/04 P1 77000 S03 04/04/04 P2 77000 TABEL BERADA dalam 1 NF Maka akan diperoleh dua relasi : ORDER-1 ( NO-PES, TGL-PES, TOTAL) ORDER-2 ( NO-PES, ITEM) Dalam hal ini NO-PES bertindak ebagai kunci primer ORDER-1 dan gabungan NO-PES dan ITEM bertindak sebagai kunci primer pada ORDER-2. Pada ORDER-2, NO-PES menjadi kunci tamu yang mereferensi ke ORDER-1. ORDER-1 NO-PES S01 S02 S03
TGL-PES 01/04/04 01/04/04 04/04/04
TOTAL 99000 120000 77000
ORDER-2 NO-PES S01 S01 S01 S01 S02 S02 S02 S03 S03
ITEM P1 P2 P3 P4 P3 P5 P6 P1 P2 20
Analisis Dan Perancangan Sistem ( Systems Analysis And Design)
Relasi hasil dekomposisi yang memenuhi bentuk 1 NF Masalah yang masih sering terjadi pada relasi yang tergolong pada bentuk normal kedua diakibatkan oleh adanya dependensi transitif. Dependensi transitif mengakibatkan kemungkinan munculnya permasalahan sebagaimana pada bentuk 1 NF ( bentuk normal pertama). 3. BENTUK NORMAL KETIGA Pengertian bentuk 3 NF adalah Suatu relasi dikatakan dalam bentuk normal ketiga (3NF) jika : • Berada dalam bentuk normal kedua • Setiap atribut bukan kunci tidak memiliki dependensi transitif terhadap kuncii primer RELASI-1 dan RELASI-2 pada contoh sebelumnya memenuhi criteria definisi, sehingga kedua relasi tersebut masuk ke dalam bentuk normal ketiga. Begitu juga halnya dengan ORDER-1 dan ORDER-2 Contoh suatu relasi yang memenuhi bentuk normal kedua tetapi tidak memenuhi bentuk normal ketiga dapat dilihat pada contoh berikut : NO-PES NO-URUT KD-ITEM NM-ITEM S01 01 P1 CD-ROOM S01 02 P2 KEYBOARD S01 03 P3 MOUSE S01 04 P4 SPEAKER S02 01 P3 MOUSE S02 02 P5 FLASH DISK S02 03 P6 ZIP S03 01 P1 CD-ROOM S03 02 P2 KEYBOARD Tabel ini memenuhi bentuk 2 NF, tapi tidak memenuhi bentuk 3 NF Pada contoh diatas, kunci primer relasi berupa gabungan NO-PES dan NO-URUT. Baik KD-ITEM maupun NM-ITEM mempunyai dependensi fungsional terhadap kunci primer tersebut. Namun perlu diperhatikan bahwa bila KD-ITEM bernilai sama, NM-ITEM juga bernilai sama. Hal ini menunjukan adanya suatu dependensi diantara kedua atribut tersebut. Lalu manakah yang memjadi penentu. ? Apakah Kd-ITEM bergantung pada NM-ITEm atau sebaliknya ? Suatu item bisa saja memiliki nama sama, tetapi mempunyai karakteristik yang berbeda. Sebagai contoh, dua mobil bisa saja diberi nama sama, tetapi masing-masing mempunyai warna tersendiri. Pada keadaan seperti ini tidaklah bisa dikatakan bahwa NM-ITEM yang menentukan KD-ITEM. Lebih tepat kalau KD-ITEM yang menjadi penetu. Jadi NM-ITEM memiliki dependensi fungsional terhadap KD-ITEM. Adanya dependensi NM-ITEM terhadap KD-ITEM pada relasi ini menunjukan bahwa NM-ITEM tidak memiliki dependensi secara lansung terhadap kunci
21
Analisis Dan Perancangan Sistem ( Systems Analysis And Design)
primer (Gabungan NO-PES dan NO-URUT). Dengan kata lain NM-ITEM dependensi transitif terhadap kunci primer.
memiliki
Agar relasi dari tabel diatas memenuhi Bentuk normal 3 NF maka diperlukan langkah normalisasi dengan mengikuti pendekatan : Bila terdapat relasi R ( A, B, C ) Kunci Primer ( A ) atau B ---Æ C Maka relasi R dapat digantikan dengan dua proyeksi R1 dan R2 dengan bentuk sbb: R1 ( B, C ) Kunci Primer ( B ) R2 ( A, B ) Kunci Primer ( A ) Kunci Tamu ( B ) Referensi R1 Dengan menggunakan pendekatan diatas, maka relasi pada tabel diatas dapat didekomposisi menjadi 2 relasi sebagaimana diperlihatkan pada hasil berikut ini :
NO-PES S01 S01 S01 S01 S02 S02 S02 S03 S03
R1 NO-URUT KD-ITEM 01 P1 02 P2 03 P3 04 P4 01 P3 02 P5 03 P6 01 P1 02 P2
R2 KD-ITEM NM-ITEM P1 CD-ROOM P2 KEYBOARD P3 MOUSE P4 SPEAKER P5 FLASH DISK P6 ZIP Dekomposisi yang menghasilkan relasi-relasi bentuk 3 NF 4. BENTUK NORMAL BOYCE-CODD (BCNF) Definisi : Suatu relasi disebut memenuhi bentuk BCNF jika dan hanya jika semua penentu (determinan) adalah kunci kandidat (atribut yang bersifat unik). 22
Analisis Dan Perancangan Sistem ( Systems Analysis And Design)
BCNF merupakan bentuk normal sebagai perbaikan terhadap 3 NF. Suatu relasi yang memenuhi BCNF, tetapi tidak untuk sebaliknya. Suatu relasi yang memenuhi 3NF belum tentu memenuhi BCNF. Dalam banyak literature disebutkan bahwa BCNF adalah perbaikan dari 3 NF, karena bentuk normal ketigapun mungkin masih mengandung anomaly sehingga masih perlu dinormalisasi lebih lanjut. Lihat contoh sbb : NM-MHS NM-MTK DOSEN KIA ANALYSIS AMSAL KIA MIS IDWAR MAWAR ANALYSIS AMSAL VERI MIS SARJON Relasi TABEL diatas yang memenuhi 3 NF tapi tidak memenuhi BCNF Relasi diatas didasarkan oleh fakta : • Seorang mhs dapat mengambil mtk • Setiap Dosen hanya mengajar pada sebuah NM-MTK (contoh, AMSAL hanya mengajar ANALYSIS). • Setiap Mhs pada setiap MTK hanya diajar oleh seorang dosen ( DOSEN MIS pada kelas KIA hanyalah IDWAR • Suatu MTK yang sama bisa saja memiliki lebih dari satu Dosen (contoh. Ada kelas MTK MIS yang diajar oleh IDWAR dan SARJON Pada keadaan ini kunci relasi TABEL berupa gabungan : • •
NM-MHS dan NM-MTK NM-MHS dan DOSEN
Relasi TABEL memenuhi Bentuk 3 NF. Mengapa ? seab tak ada dependensi transitif pada relasi tersebut. Namun relasi TABEL tidak memenuhi BCNF, karena adanya diterminan DOSEN ( yang menentukan NM-MTK) dan determinan ini tidak berdiri sebagai kunci kandidat.
NM-MHS
DOSEN
NM-MTK
Diagram dependensi fungsional pada relasi TABEL Relasi tabel masih menimbulkan anomali. Sebagai contoh bila baris yang berisi NMMHS bernama VERI dihapus maka informasi yang menyatakan bahwa SARJON adalah DOSEN MIS akan ikut hilang.
23
Analisis Dan Perancangan Sistem ( Systems Analysis And Design)
Cara mengkonversi relasi yang telah memenuhi bentuk 3 NF ke BCNF adalah : a. carilah semua penentu b. bila terdapat penentu yang bukan berupa kunci kandidat maka : • Pisahkan relasi tersebut • Buat penentu tersebut sebagai kunci primer Itukah sebabnya agar memenuhi BCNF, relasi TABEL perlu didekomposisi jadi : • TABEL-1 (NM-MHS, DOSEN) • TABEL-2 (DOSEN, NM-MTK) TABEL-1 TABEL-2 DOSEN NM-MTK NM-MHS DOSEN AMSAL ANALYSIS KIA AMSAL IDWAR MIS KIA IDWAR SARJON MIS MAWAR AMSAL VERI SARJON 5. DEPENDENSI NILAI BANYAK dan BENTUK NORMAL KEEMPAT Dependensi nilai banyak merupakan terjemahan dari multivalued dependency (MVD). Dependensi dipakai pada bentuk $ NF. Dependensi ini dipakai untuk menyatakan hubungan satu ke banyak. NM-MTK Comp. Science
DOSEN IDWAR ZULHENDRA
MIS
IDWAR
MATERI Pengenalan computer Word processing Spreadsheet CBIS E-Commerce Technology
Tabel menyatakan dependensi nilai banyak Tabel diatas mengungkapkan tentang dosen yang mengajar matakuliah dan materi matakuliah bersangkutan. Sebagai contoh ada 2 dosen yang mengajar comp. science yaitu Idwar dan Zulhendra. Adapun materi matakuliah adalah Pengenalan computer, word processing, spreadsheet. Dari table diatas dapat di NORMALISASI sebagai berikut table itu NM-MTK Comp. Science Comp. Science Comp. Science Comp. Science Comp. Science Comp. Science MIS MIS
DOSEN MATERI IDWAR Pengenalan computer IDWAR Word processing IDWAR Spreadsheet ZULHENDRA Pengenalan computer ZULHENDRA Word processing ZULHENDRA Spreadsheet IDWAR CBIS IDWAR E-Commerce Technology Hasil relasi normalisasi terhadap TABLE 24
Analisis Dan Perancangan Sistem ( Systems Analysis And Design)
Masalah relasi yang memenuhi BCNF sebagaimana kasus diatas sebenarnya dapat dipecahkan melalui dekomposisi. Hal ini disebabkan adanya kenyataan bahwa antara dosen dan materi tida ada ketergantungan. Solusi yang tepat terhadap masalah ini dapat diselesaikan dengan konsep dependensi nilia banyak. Secara umum, dependensi nilai banyak muncul pada relasi yang paling tidak memiliki 3 atau 2 diantaranya bernilai banyak dan nilai-nilainya tergantung hanya pada atribut ketiga. Pada suatu relasi R dengan attribute A,B,C atribut B dikatakan bersifat multidependen terhadap A jika : • Sekumpulan nilai B yang diberikan pada pasangan (A,C) hanya tergantung pada nilai A • Tak tergantung pada nilai C Hubungan diatas dinyatakan dengan : A --- >> B Artinya A menentukan banyak nilai B atau B multidependen terhadap A Teorema Fagin yang berkain dengan dependensi nilai banyak : Bila R (A,B,C) merupakan suatu relasi, dengan A,B,C adalah attirbut-atribut relasi tersebut, maka proyeksi dari R berupa (A,B dan (a,C) jika R memenuhi MVD A --- >> B | C. Perlu diketahui bila terdapat : A --- >> B A --- >> C Maka keduanya dapat ditulis menjadi A --- >> B | C NM-MTK Comp. Science Comp. Science MIS A --- >> B NM-MTK Comp. Science Comp. Science Comp. Science MIS MIS
DOSEN IDWAR ZULHENDRA IDWAR
MATERI Pengenalan computer Word processing Spreadsheet CBIS E-Commerce Technology A --- >> C
Relasi seperti diatas memenuhi bentuk 4 NF
25
Analisis Dan Perancangan Sistem ( Systems Analysis And Design)
Secara praktis, suatu relasi memenuhi bentuk normal keempat jika : • Telah berada pada BCNF dan • Tidak mengandung dua atribut atau lebih yang bernilai banyak
6. Dependensi Gabungan dan Bentuk NORMAL KELIMA (5 NF) Suatu relasi R (X, Y, ...., Z ) memenuhi dependensi gabungan jika gabungan dari proyeksi A,B, ..., C, dengan A,B, ..., C merupakan subhimpunan dari atribut-atribut R. Dependensi gabungan sesuai dengan definisi diatas dinyatakan dengan notasi : * ( A,B, ..., C) dengan A = XY,
B=YZ,
C=ZX
Sebagai contoh terdapat hubungan dealer yang mengageni suatu perusahaan distributor kendaraan. Dalam hal ini distributor memiliki sejumlah produk kendaraan.
DEALER PT . TOYOTA PT . TOYOTA PT . TOYOTA PT SUTAN KASIM
DISTRIBUTOR NISSAN TOYOTA TOYOTA MITSUBISHI
KENDARAAN TRUK NISSAN TOYOTA KIJANG TOYOTA AVANZA KUDA
Relasi diatas memenuhi dependensi gabungan * (DEALER DISTR, DISTR KENDARAAN, DEALER KENDARAAN). Oleh karena itu relasi DDK dapat didekomposisi menjadi tiga relasi : DEA-DIST ( DEALER, DISTR) DIST-KEND ( DISTR, KEND) DEA-KEND ( DEALER, KEND) Gabungan ketiga relasi diatas akan membentuk relasi DDK Perlu diketahi bahwa gabungan dari dua pryeksi diatas bisa jadi menghasilkan relasi antara yang mengandung baris yang salah. Namun gabungan ketiga proyeksi akan menghasilkan relasi yang sesuai dengan aslinya. Bentuk 5 NF disebut juga PJ/NF (projection Join/ Normal Form), menggunakan acuan dependensi gabungan. Suatu relasi berada dalam 5 NF jika dan hanya jika setaip dependensi gabungan dalam R tersirat oleh kunci kandidat relasi R. Secara praktis dapat dikatakan bahwa suatu relasi R berada dalam 5 NF jika data yang ada padanya tak dapat lagi didekomposisi menjadi relasi-relasi yang lebih kecil dengan kunci kandidat relasi-relasi yang lebih kecil ini tidak sama dengan kunci kandidat
26
Analisis Dan Perancangan Sistem ( Systems Analysis And Design)
relasi. Relasi seperti DEA-DIST, DIST-KEND dan DEA-KEND memenuhi 5 NF, sedangkan relasi DDK tidak memenuhi bentuk 5 NF (Normal kelima)
DEALER PT . TOYOTA PT . TOYOTA PT SUTAN KASIM
DISTR NISSAN TOYOTA TOYOTA MITSUBISHI
DISTR NISSAN TOYOTA MITSUBISHI
KEND TRUK NISSAN KIJANG AVANZA KUDA
Gabungan DEALER PT . TOYOTA PT . TOYOTA PT . TOYOTA PT . TOYOTA PT S. KASIM PT S. KASIM
DISTR NISSAN TOYOTA TOYOTA TOYOTA MITSUBISHI MITSUBISHI
KENDARAAN TRUK NISSAN TOYOTA KIJANG TOYOTA AVANZA TRUK DYNA GRANDIAN KUDA
DEALER PT . TOYOTA PT . TOYOTA PT . TOYOTA PT . TOYOTA PT SUTAN KASIM
KEND TRUK NISSAN KIJANG AVANZA SEDAN NISSAN KUDA
RELASI DDK ASLI Record yang bertulisan miring adalah baris yang salah.
Gabungan kedau proyeksi menghasilkan baris yang salah, tetapi gabungan ketiga proyeksi menghasilkan relasi yang sesuai dengan aslinya. Untuk memahami pengertian tersirat pada kunci kandidat, perhatikan relasi berikut : NOBP 200401 200402 200403
NM-MHS AMIEN RAIS WIRANTO SUSILO B.Y.
ALAMAT Jl. Merdeka 1 Jl. Medan 2 Jl. Merapi 3
KOTA Yogya Klaten Madura
Relasi MHS diatas memenuhi dependensi gabungan * ( (NOBP,nm-MHS), (NOBP,ALAMAT,KOTA)), dengan kata lain, relasi MHS akan sama dengan gabungan kedua pryeksinya, (NOBP, NM-MHS) dan (NOBP, ALAMAT, KOTA). Pada konteks ini, dependensi gabungan tersirat oleh kunci kandidat NoBP yang sama baik pada relasi MHS maupun kedua proyeksinya. Relasi yang mempunyai sifat seperti itu dikatakan memenuhi bentuk normal kelima (5 NF).
27