normalisasi
-
Upload
canz-hyu-richz -
Category
Documents
-
view
4 -
download
2
description
Transcript of normalisasi
-
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 Disampaikan dalam seminar kademik FMIP UAD pada bulan Januari 2000
2 Dosen pada Program Studi Ilmu Komputer FMIPA UAD
-
2
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). Macam-
macam 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).
-
3
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)
-
4
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
-
5
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.
-
6
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
-
7
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 SKS Kd_Dsn Dosen
0231 Cahyo I Komputer PAM211 Kalkulus Lanjut I 3 MT002 Yasir
PAAM261 Prg. Terstruktur I 3 IK003 Kamal
-
8
PAM367 Simulasi 3 IK002 Jack
0232 Hoho Statistik PAM333 Prg. Linier 3 MT003 Andri
PAM241 Met. Statistik I 3 ST002 Fendi
PAM345 Analisis Data 3 ST003 Hasbi
0233 Budi Matematika 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 SKS Kd_Dsn Dosen
0231 PAM211 Kalkulus Lanjut I 3 MT002 Yasir
0231 PAAM261 Prg. Terstruktur I 3 IK003 Kamal
0231 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
-
9
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 SKS Kd_Dsn Dosen
PAM211 Kalkulus Lanjut I 3 MT002 Yasir
PAAM261 Prg. Terstruktur I 3 IK003 Kamal
PAM367 Simulasi 3 IK002 Jack
PAM333 Prg. Linier 3 MT003 Andri
PAM241 Met. Statistik I 3 ST002 Fendi
-
10
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
-
11
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
-
12
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
-
13
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
-
14
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
-
15
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
-
16
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
-
17
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.
-
18
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.
-
19
DAFTAR PUSTAKA
Date, C.J., 1988, An Introduction to Database system, 4th
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