NORMALISASI BASIS DATA1 Tawar, S.Si2 ABSTRAKSI Data adalah sebuah kekayaan yang tidak ternilai harganya bagi sebuah organisasi. Masing-masing organisasi perlu mengelola data yang dimilikinya sehingga dapat dimanfaatkan secara maksimal. Data yang dikelola dengan dengan baik dan benar akan memberikan manfaat yang maksimal serta kecil kemungkinan timbulnya masalah pada waktu pemanfaatan dan perawatan. Teknologi komputer telah banyak berkembang, salah satunya adalah berkembangnya fasilitas pengelolaan data yang dikenal dengan istilah DBMS (Data Base Management System). Sistem ini mengelola data-data menjadi sebuah basis data yang terdiri dari relasi/tabel. Untuk mendapatkan manfaat DBMS secara maksimal, diperlukan perancangan basis data yang benar yaitu dengan menerapkan kaidah normalisasi. A. Pendahuluan Salah satu sumber daya yang cukup penting dalam sebuah organisasi adalah data dan informasi, keduanya merupakan faktor yang penting dalam menentukan berhasil dan tidaknya tujuan sebuah organisasi. Untuk mendapatkan manfaat secara maksimal, organisasi perlu mengelola data dan informasi secara benar, sebagaimana mengelola sumber daya yang lain. Saat ini teknologi komputer telah memanjakan manusia dengan menawarkan konsep teknologi Data Base Management system (DBMS). Teknologi ini dapat dimanfaatkan secara maksimal untuk membantu mengelola sumber daya yang berupa data dan informasi. Kelebihan pengelolaan menggunakan sistem basis data dibandingkan secara manual antara lain : 1. Lebih ringkas secara fisik 1 2 Disampaikan dalam seminar kademik FMIP UAD pada bulan Januari 2000 Dosen pada Program Studi Ilmu Komputer FMIPA UAD 2. Lebih cepat 3. Lebih akurat 4. Lebih efektif (Date, 1986) Untuk mendapatan kelebihan-kelebihan DBMS secara optimal, maka perancangan basis data harus diperhatikan secara cermat dan tepat. Perancangan yang kurang tepat akan mengakibatkan kemungkinan terjadinya kesulitan saat pembacaan maupun koreksi data. (Deen, 1987). Masalah lain yang mungkin muncul akibat perancangan basis data yang kurang tepat: 1. Terjadinya perulangan informasi (duplikasi/redundansi) 2. Ketidakmampuan untuk menyajikan informasi tertentu 3. Hilangnya informasi tertentu. (Korth, 1986) Untuk menghindari masalah-masalah diatas, maka dalam merancang basis data haruslah mengikuti aturan-aturan yang ada. B. Model Data Model data adalah alat untuk menyajikan data sehingga diperoleh kandungan informasi yang lebih, dibandingkan nilai individual data (Tsichritzis, 1982). Macammacam model data : 1. Model Data Entity Relationship Model data ini didasarkan pada dua buah obyek pokok yaitu entitas (entity) dan hubungan antar obyek (relationship). (Korth, 1986) 2. Model Data Network Dalam model data ini, data dinyatakan dengan rekaman (record) dan hubungan antar data dinyatakan dengan link (Korth, 1986). 2 3. Model Data Hirarkis Model data ini mirip dengan model data sebelumnya yaitu model data network, data dinyatakan dengan rekaman dan hubungan antar data dinyatakan dengan link. Perbedaan antara kedua model ini adalah pada pengorganisasian rekaman. Pada model hirarkis kumpulan rekaman diorganisir sebagai tree diagram, dan akarnya berupa dummy node, sedangkan dalam model network diperlakukan sebagai arbitrary graph ( graph sebarang) (Korth, 1986) 4. Model Data Relational Pada model ini, data disajikan dalam bentuk tabel/relasi. Pembahasan selengkapnya mengenai model ini bisa dibaca pada tulisan dibawah . C. Model Data Relational 1. Pengertian Model data relasional merupakan metoda penyajian data dalam bentuk tabel dua dimensi yang terdiri dari baris-baris dan kolom-kolom (Deen, 1987). Masing-masing baris disebut dengan tuple/record dan kolm-kolom disebut dengan atribut/field. 2. Notasi Cara menyatakan suatu relasi adalah dengan menyebutkan nama relasi diikuti dengan nama seluruh atribut dari relasi tersebut dan diapit tanda kurung (Bisland, 1989). Berikut beberapa contoh penulisan relasi: MHS(No_mhs, Nama, Prg_Studi) MATKUL(Kode, Nama, SKS) DOSEN(NIP, Nama, Pangkat) 3 3. Key (kunci) Pengertian key dalam model data relasional adalah atribut atau kombinasi beberapa atribut yang berfungsi dalam identifikasi tuple serta sebagai perantara dalam membuat hubungan antar relasi. Candidate key adalah atribut atau kombinasi beberapa atribut yang dapat menentukan tuple secara tunggal (Bisland, 1989). Setiap relasi minimal mempunyai paling sedikit satu candidate key, selanjutnya dipilih salah satu sebagai primary key. Jadi primary key adalah atribut atau kombinasi beberapa atribut yang dipakai untuk membedakan antara tuple yang satu dengan tuple yang lain. Foreign key adalah atribut atau kombinasi beberapa atribut yang digunakan sebagai perantara dalam membuat hubungan dengan relasi yang lain. Suatu atribut bisa berfungsi sebagai candidate key, apabila memenuhi syarat sebagai berikut : a. Bersifat tunggal (uniqeness) b. Bersifat minimal, artinya jika merupakan kombinasi maka tidak ada atribt yang bisa dihilangkan tanpa merusak sifat tunggalnya. 4. Sifat-sifat relasi Date (1986) dan Bisland (1989) mendefinisikan sifat-sifat relasi sebagai berikut: a. Data-data disajikan dalam bentuk tabel, tanpa memperhatikan bagamana penyimpanan secara fisik. b. Semua data harus bersifat atomic (tunggal) c. Tidak ada tuple ganda 4 d. Urutan atribut dan tuple tidak diperhatikan 5. Aturan Integritas Ada dua aturan integritas yaitu : a. Aturan integritas entitas, atribut-atribut yang terlibat dalam primary key tidak boleh menerima nilai null b. Aturan integritas referensial, dalam dua buah relasi R1 dan R2, jika R2 berisi foreign key (FK) yang merupakan primary key (PK) pada R1, maka setiap nilai FK haruslah: 1) Sama dengan nilai PK pada R1 atau 2) Secara keseluruhan bernilai null, dengan kata lain bahwa setiap tuple pada FK haruslah mengacu pada tuple yang ada pada PK. 6. Dependency (Ketergantungan) Dependency merupakan hubungan antar atribut, baik atribut-atribut dalam satu relasi maupun dalam relasi yang berlainan (Bisland, 1989). Beberapa dependency yang dikenal diantaranya functional dependency, transitive dependency, multivalue dependency dan join dependency. 7. Anomali Anomali adalah efek samping dari penggunaan basis data dan terjadi apabila relasi tidak pada bentuk normal. (Bisland, 1989). Anomali ada tiga macam : a. Anomali penyisipan b. Anomali penghapusan c. Anomali pengubahan. 5 8. Normalisasi Normalisasi adalah proses mengubah relasi dari bentuk tidak normal menjadi bentuk normal (Bisland, 1989) atau proses untuk mengidentifikasi dan menghilangkan anomali (Kroenke, 1990). Proses ini dilakukan dengan memecah sebuah relasi menjadi beberapa relasi lain yang lebih kecil, relasi yang dihasilkan memiliki jumlah atribut lebih sedikit. Dr. Codd pada tahun 1970 mendefinisikan tiga bentuk normal yaitu bentuk normal pertama (1NF), bentuk normal kedua (2NF), bentuk normal ketiga (3NF). Tetapi dalam perkembangan muncul bentuk-bentuk normal yang baru. Bisland (1989) memberikan definisi tentang bentuk normal sebagai berikut : a. Bentuk normal pertama Sebuah relasi dikatakan berada pada bentuk normal pertama jika tidak terdapat group-group berulang b. Bentuk normal kedua Sebuah relasi dikatakan berada pada bentuk normal kedua jika memenuhi syarat bentuk normal pertama dan didalamnya berlaku full functional dependency c. Bentuk normal ketiga Sebuah relasi dikatakan berada pada bentuk normal ketiga jika memenuhi syarat bentuk normal kedua dan didalamnya tidak terdapat transitive dependency d. Bentuk normal Boyce and Code 6 Bentuk normal ini merupakan perluasan dari bentuk normal ketiga. Suatu relasi berada pada bentuk BCNF apabila setiap determinan merupakan candidate key (Kroenke, 1990). Masalah BCNF akan muncul apabila suatu relasi mengandung tiga keadaan berikut: 1) Minimal terdapat dua candidate key 2) Seluruh candidate key bersifat komposit 3) Ada minimal salah satu atribut yang berpartisipasi pada lebih dari satu candidate key. e. Bentuk normal keempat Relasi berada pada bentuk normal keempat apabila memenuhi syarat BCNF dan didalamnya tidak terdapat multivalue dependency (Kroenke, 1990) f. Bentuk normal kelima Relasi berbentuk normal kelima jika relasi tersebut dapat dipecah atau diproyeksikan menjadi beberapa relasi dan dari proyeksi-proyeksi itu dapat disusun kembali (JOIN) menjadi relasi yang sama dengan keadaan semula. D. Contoh Proses Normalisasi 1. Tabel yang mengandung group berulang , tidak berbentuk normal No_mhs Nama Prg_Studi Kode_mk Nama_mk 0231 Cahyo I Komputer PAM211 Kalkulus Lanjut I PAAM261 Prg. Terstruktur I SKS Kd_Dsn Dosen 3 MT002 Yasir 3 IK003 Kamal 7 0232 Hoho 0233 Budi Statistik Matematika PAM367 Simulasi 3 IK002 Jack PAM333 Prg. Linier 3 MT003 Andri PAM241 Met. Statistik I 3 ST002 Fendi PAM345 Analisis Data 3 ST003 Hasbi PAM337 Fungsi Khas 3 MT001 Jaya PAM522 Topologi 3 MT003 Andri PAM432 Teori Optimasi 3 MT004 Susan 2. Normalisasi ke bentuk normal pertama Dua buah relasi berikut diperoleh dengan memecah relasi pertama sehingga masing-masing berbentuk normal pertama MHS(No_mhs, Nama, Prg_Studi) No_mhs Nama Prg_Studi 0231 Cahyo I Komp. 0232 Hoho Statistik 0233 Budi Matematika DAFTAR_MK(No_mhs, Kode_mk, Nama_Mk, SKS, Kd_Dsn, Dosen) No_mhs Kode_mk Nama_mk 0231 PAM211 Kalkulus Lanjut I 0231 PAAM261 0231 SKS Kd_Dsn Dosen 3 MT002 Yasir Prg. Terstruktur I 3 IK003 Kamal PAM367 Simulasi 3 IK002 Jack 0232 PAM333 Prg. Linier 3 MT003 Andri 0232 PAM241 Met. Statistik I 3 ST002 Fendi 0232 PAM345 Analisis Data 3 ST003 Hasbi 0233 PAM337 Fungsi Khas 3 MT001 Jaya 0233 PAM522 Topologi 3 MT003 Andri 8 0233 PAM432 Teori Optimasi 3 MT004 Susan 3. Normalisasi ke bentuk normal kedua Relasi DAFTAR_MK memenuhi bentuk normal pertama tetapi masih terdapat anomali. Misal jika tuple ke-2 dihapus, mahasiswa 0231 membatalkan mata kuliah PAM 261, maka informasi SKS dan dosen yang mengajar ikut terhapus. Hal ini terjadi karena SKS dan Kd_Dsn hanya bergantung pada salah satu atribut komponen primary key, dengan kata lain terdapat partial dependency . Masalah ini dapat diatasi dengan memecah menjadi dua buah relasi yang berbentuk normal kedua, seperti berikut ini : AMBIL(No_mhs, Kode_mk) No_mhs Kode_mk 0231 PAM211 0231 PAAM261 0231 PAM367 0232 PAM333 0232 PAM241 0232 PAM345 0233 PAM337 0233 PAM522 0233 PAM432 PENGAJAR(Kode_mk, Nama_mk, SKS, Kd_Dsn, Dosen) Kode_mk Nama_mk PAM211 Kalkulus Lanjut I PAAM261 SKS Kd_Dsn Dosen 3 MT002 Yasir Prg. Terstruktur I 3 IK003 Kamal PAM367 Simulasi 3 IK002 Jack PAM333 Prg. Linier 3 MT003 Andri PAM241 Met. Statistik I 3 ST002 Fendi 9 PAM345 Analisis Data 3 ST003 Hasbi PAM337 Fungsi Khas 3 MT001 Jaya PAM522 Topologi 3 MT003 Andri PAM432 Teori Optimasi 3 MT004 Susan 4. Normalisasi ke bentuk normal ketiga Relasi PENGAJAR memenuhi bentuk normal kedua teteapi masih terdapat anomali. Misal jika tuple pertama dihapus, yang berarti mata kuliah Kalkulus Lanjut I dihilangkan, maka informasi tentang dosen Yasir juga ikut hilang. Hal serupa juga terjadi apabila ingin mencatat data seorang dosen, maka tidak bisa dilakukan sebelum dosen tersebut memegang minimal satu mata kuliah. Untuk menghilangkan anomali , relasi PENGAJAR dapat dipecah menjadi dua buah relasi yang berbentuk normal ketiga yang tidak memiliki transitive dependency, seperti berikut ini : KULIAH(Kode_mk, Nama_mk, SKS, Kd_Dsn) Kode_mk Nama_mk SKS Kd_Dsn PAM211 Kalkulus Lanjut I 3 MT002 PAAM261 Prg. Terstruktur I 3 IK003 PAM367 Simulasi 3 IK002 PAM333 Prg. Linier 3 MT003 PAM241 Met. Statistik I 3 ST002 PAM345 Analisis Data 3 ST003 PAM337 Fungsi Khas 3 MT001 PAM522 Topologi 3 MT003 PAM432 Teori Optimasi 3 MT004 10 DOSEN(Kd_Dsn, Dosen) Kd_Dsn Dosen MT002 Yasir IK003 Kamal IK002 Jack MT003 Andri ST002 Fendi ST003 Hasbi MT001 Jaya MT004 Susan 5. Normalisasi ke bentuk normal Boyce and Code Relasi berikut memenuhi bentuk normal ketiga tetapi tidak memenuhi bentuk normal Boyce and Code DAFT_NILAI(No_mhs, No_Rkng, Kd_Mk, Nilai) No_mhs No_Rkng Kode_mk Nilai 0231 88681 PAM211 A 0231 88681 PAAM261 B 0231 88681 PAM367 A 0232 88682 PAM333 C 0232 88682 PAM241 A 0233 88683 PAM345 B 0233 88683 PAM337 A 0235 88685 PAM522 B 0237 88687 PAM432 B 11 Pada relasi DAFT_NILAI diasumsikan masing-masing mahasiswa memiliki no rekening yang berbeda dengan mahasiswa yang lain, sehinga dapat dipakai untuk identifikasi tuple secara tunggal. Relasi ini memiliki dua buah candidate key yang bersifat komposit yaitu No_MHs+Kd_Mk dan No_Tlp+Kd_Mk . Atribut Kd_Mk berpartisipasi pada kedua candidate key. Ketiga kondisi tersebut menyebabkan relasi tidak memenuhi syarat BCNF. Untuk mengatasinya, relasi dipecah menjadi dua relasi berikut sehingga memenuhi bentuk normal Boyce and Code. NILAI(No_mhs, No_Rkng, Kd_Mk, Nilai) No_mhs Kode_mk Nilai 0231 PAM211 A 0231 PAAM261 B 0231 PAM367 A 0232 PAM333 C 0232 PAM241 A 0233 PAM345 B 0233 PAM337 A 0235 PAM522 B 0237 PAM432 B REKENING(No_mhs, No_Rkng) No_mhs No_Rkng 0231 88681 0232 88682 0233 88683 0235 88685 0237 88687 12 6. Normalisasi ke bentuk normal keempat Dua buah relasi berikut menyimpan data tentang program studi seorang mahasiswa beserta bahasa asing yang dikuasai, masing-masing dengan cara yang berbeda. Diasumsikan seorang mahasiwa diijinkan mengikuti lebih dari satu program studi dan dimungkinkan menguasai lebih dari satu bahasa asing. Pada relasi BAHASA, mahasiswa 0232 disimpan dalam 4 tuple masing-masing merupakan kombinasu antar Prg_Studi dan Bhs_Asing. Jika dilakukan dengan caa lain seperti relasi BAHASA2, maka informasi yang diperleh akan berubah. Seolah-olah mahasiswa 0232 menguasai bahasa Inggris ketika dia bertindak sebagai mahasiwa Komputer dan menguasai bahasa Jerman ketika bertindak sebagai mhasiswa Akuntansi. Hal ini dilakukan tidak boleh terjadi, sehingga penyimpanan tetap harus dilakukan dengan mengkombinasikan kedua atribut tersebut (Kroenke, 1990), dengan kata lain relasi BAHASA yang dipakai. BAHASA(No_Mhs, Prg_Studi, Bhs_Asing) No_mhs Prg_Studi Bhs_Asing 0232 Komputer Inggris 0232 Akuntasnsi Jerman 0232 Komputer Jerman 0232 Akuntasnsi Inggris 0236 Statistik Perancis 0236 Hukum Belanda 0236 Statistik Belanda 0236 Hukum Perancis BAHASA2(No_Mhs, Prg_Studi, Bhs_Asing) No_mhs Prg_Studi Bhs_Asing 0232 Komputer Inggris 0232 Akuntasnsi Jerman 13 0236 Statistik Perancis 0236 Hukum Belanda Relasi BAHASA masih memiliki anomali meskipun memenuhi syarat BCNF. Diantaranya jika mahasiswa 0232 menambah perbendaharaan bahasa asing yang dikuasai, misal bahasa Arab, maka harus disipkan dua buah tuple sebagai kombinasi kedua atribut. Selanjutnya relasi dipecah menjadi dua buah relasi berikut yang berbetuk normal keempat. PRG_STUDI(No_Mhs, Prg_Studi) No_mhs Prg_Studi 0232 Komputer 0232 Akuntasnsi 0236 Statistik 0236 Hukum BAHASA3(No_Mhs, Bhs_Asing) No_mhs Bhs_Asing 0232 Inggris 0232 Jerman 0236 Perancis 0236 Belanda 7. Normalisasi ke bentuk normal kelima Relasi berikut berisi informasi mengenai mata kuliah yang sedang diambil seorang mahasiswa dan bahasa pemrograman yang dipakai untuk mengerjakan tugas 14 mata kuliah tersebut. Diasumsikan tidak ada functional dependency antara mata kuliah dan bahasa pemrograman. BHS_KULIAH(No_Mhs, Kd_Mk, Bhs_Prg) No_mhs Kd_Mk Bhs_Prg 0232 PAM369 BASIC 0232 PAM369 PASCAL 0232 PAM260 PASCAL 0232 PAM260 FORTRAN 0236 PAM260 PASCAL 0238 PAM369 BASIC Selanjutnya relasi diatas diproyeksikan menjadi tiga relasi berikut : KULIAH(No_Mhs, Kd_Mk) No_mhs Kd_Mk 0232 PAM369 0232 PAM369 0236 PAM260 0238 PAM369 15 ALAT(No_Mhs, Bhs_Prg) No_mhs Bhs_Prg 0232 BASIC 0232 PASCAL 0232 FORTRAN 0236 PASCAL 0238 BASIC BHS (Kd_Mk, Bhs_Prg) Kd_Mk Bhs_Prg PAM369 BASIC PAM369 PASCAL PAM260 FORTRAN PAM260 PASCAL PAM369 BASIC Selanjutnya apabila relasi semula (BHS_KULIAH) dihapus kemudian dilakukan operasi JOIN pada relasi-relasi itu, akan diperoleh tiga kemungkinan relasi berikut ini. a. JOIN (KULIAH, BHS) OVER No_Mhs No_mhs Kd_Mk Bhs_Prg 0232 PAM369 BASIC 0232 PAM260 PASCAL 0232 PAM369 FORTRAN * 0232 PAM260 BASIC * 0232 PAM369 PASCAL 0232 PAM260 FORTRAN 0236 PAM260 PASCAL 0238 PAM369 BASIC 16 b. JOIN (KULIAH, ALAT) OVER Kd_Mk No_mhs Kd_Mk Bhs_Prg 0232 PAM369 BASIC 0232 PAM369 PASCAL 0232 PAM260 PASCAL 0232 PAM260 FORTRAN 0236 PAM260 PASCAL 0236 PAM260 FORTRAN 0238 PAM369 BASIC 0238 PAM369 PASCAL * * c. JOIN (ALAT, BHS) OVER Bhs_Prg No_mhs Kd_Mk Bhs_Prg 0232 PAM369 BASIC 0232 PAM369 PASCAL 0232 PAM260 PASCAL 0232 PAM260 FORTRAN 0236 PAM369 PASCAL 0236 PAM260 PASCAL 0238 PAM369 BASIC * Pada masing-masing relasi hasil JOIN, ternyata diperoleh suatu relasi yang tidak sama persis dengan relasi awal. Tuple-tuple dengan tanda asterik merupakan tuple tambahan / kelebihan yang tidak terdapat pada relasi awalatau pada relasi awal terdapat join dependency. Hal ini terjadi karena atribut yang dipakai untuk operasi JOIN bukan merupakan determinan dari relasi awal. 17 E. KESIMPULAN 1. Data dan informasi yang dimiliki oleg organizes harus dikelola secara benar. 2. Teknologi komputer telah memberikan fasilitas berupa DBMS untuk membantu mengelola data dan informasi 3. Dalam rangka memanfaatkan DBMS, basis data perlu dirancang secara benar yaitu dengan memperhatikan kaidah normalisasi. 18 DAFTAR PUSTAKA Date, C.J., 1988, An Introduction to Database system, 4 th edition, Vol 1, Wesley Publishing Company, Canada Deen, S.M., 1987, Fundamentals of Database system, 9th printed, Mac Millan Education Ltd, Hongkong Korth, H.F., Silbersshatz, a., 1986, Database System Concepts, Mc Graw Hill Inc, USA Kroenke, David M. & Dolan, Kathleeen A., 1990, Database Processing : fundamentals, design,and implementation, 3rd edition, Maxwell Mac Millan Piublishing Singapore Pte. Ltd, Singapore Salsberg, B.J., 1986, An Introduction to Database Design, Academy Press Inc, Orlando , USA. Tsichritzis, D.C., 1982, Data Models, Prentice Hall Inc USA 19