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