NORMALISASI BASIS DATA Data adalah sebuah

advertisement
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
Download