I. Tahapan Pemodelan
Dalam suatu pemodelan tidak ada istilah model yang kita rancang benar atau salah, yang ada hanyalah model yang kita rancang tepat atau tidak tepat terhadap aplikasi yang akan kita buat
Tahapan dalam membuat model database :
1. Menentukan Entity(object dalam suatu sistem)
Tiap entity umumnya dijadikan dalam 1 tabel yang disebut tabel entity. Misal : dalam sistem penjualan maka ada entity supplier, customer, barang dan transaksi
2. Menentukan Atribut(Property) dari entity yang telah ditetapkan
Misal : tabel customer mempunyai atribut nama, alamat, kota, kodepos, propinsi, tanggal record dibuat, tanggal record diupdate, status record(aktif/tidak) dsb
3. Menentukan Kardinalitas(derajat relasi) antara entity-entity yang telah ditetapkan.
Kardinalitas(derajat relasi) :
Jumlah maximal entity yang dapat berelasi dengan entity pada himpunan entity lain.
Kardinalitas antara 2 himpunan entity (misal A dan B) dapat berupa :
1. One to One (1:1)
Tiap entity pada himpunan entity A boleh berelasi hanya maximal 1 entity di himpunan entity B, begitu juga sebaliknya. Tidak boleh terjadi duplikasi pada kedua himpunan entitiy.
2. One to Many (1:n)
Tiap entitiy pada himpunan entity A boleh berelasi lebih dari satu entity pada himpunan entity B. Tidak boleh terjadi duplikasi pada himpunan entity A.
3. Many to One (n:1)
Kebalikan dari definisi One to Many
4. Many to many (m:n)
Tiap entitiy pada himpunan entity A boleh berelasi lebih dari satu entity pada himpunan entity B. begitu pula sebaliknya.
Pada aplikasi sederhana pemodelan yang dibuat masih sederhana namun jika aplikasi berkembang menjadi lebih komplek otomatis pemodelan yang dirancang akan lebih komplek pula. Jumlah entity, atribut dan relasi juga akan bertambah. Dan terkadang yang semula merupakan atribut, pada aplikasi yang lebih komplek atribut tersebut harus diubah menjadi sebuah entity dikarenakan hubungan one to many atau many to many dengan atribut lain. Misal : tabel customer mempunyai atribut alamat. jika pada aplikasi yang kita rancang memungkinkan 1 customer bisa memiliki lebih dari 1 alamat maka alamat yang sebelumnya merupakan atribut dari entity customer harus diubah menjadi entity yang menempati suatu tabel tersendiri dah selanjutnya harus dibuat hubungan relasi one to many dari tabel customer ke tabel alamat.
II. Normalisasi
Normalisasi merupakan proses pengelompokan data menjadi tabel yang menunjukkan entity dan relasi. Proses normalisasi suatu data sampai tidak ada kesulitan pada proses Create, Read(Select/Retrieve), Update dan Delete(Destroy),atau yang sering disingkat CRUD, data pada database.
Misal : kita mengambil kasus transaksi penjualan dengan mengambil data sample dari nota penjualannya dan kita coba membuat step-step bentuk normalisasinya.
======================================================================
| PT Winaros Kawula Bahari |
| Jl. Cangkringmalang Beji- Pasuruan |
| www.kawula.or.id |
| |
| No Nota : Kode Customer : |
| Tanggal : Nama : |
| Alamat : |
| |
| ================================================================= |
| |No | Kode | Nama Barang | Harga |Quantity | Total | |
| ================================================================= |
| |1 | | | | | | |
| ================================================================= |
| |2 | | | | | | |
| ================================================================= |
| Total | | | |
| ======================= |
| Pasuruan, 23 Agustus 2008 |
| Kasir, |
| |
| Stevany |
======================================================================
Dalam perancangan dikenal beberapa tahap pembentukan tabel yaitu :
1. Bentuk Tidak Normal ( Unnormalized )
Kumpulan data yang akan ditangani tidak ada keharusan mengikuti suatu format tertentu, bisa berupa data yang tidak lengkap atau terduplikasi. Data yang dikumpulkan apa adanya sesuai keberadaanya.
2. Bentuk Normal Pertama (First Normal Form / 1NF )
Data dipisahkan pada field yang tepat dan bernilai atomik(tidak ada set atribut yang berulang-ulang/ bernilai ganda(Multi Value) ).
======================================================================
| No Nota | Tanggal |Kode Customer|Nama Customer|Alamat |
======================================================================
|001/SBY/01/2008|01/01/2008| A001 |Anna Via |Jl Mawar 1 |
======================================================================
|002/SBY/02/2008|01/02/2008| A002 |Andrea |Jl.Kinibalu 2|
======================================================================
Lanjutan record tabel
=====================================================
Kode Barang|Nama Barang | Harga |Quantity| Total |
=====================================================
T01 |Tas Elizabeth|150.000 | 3 |450.0000|
=====================================================
S01 |Sepatu Beauty|100.000 | 2 |200.0000|
=====================================================
3. Bentuk Normal Kedua (Second Normal Form / 2NF )
Menentukan kunci field sebagai acuan pencarian data dan memiliki sifat yang unit. Diasumsikan bahwa data telah memenuhi kriteria bentuk normal pertama. atribut bukan kunci haruslah bergantung secara fungsi pada primary key.
Dari tabel diatas maka primary key nya dapat ditentukan sebagai berikut :
A. No Nota
B. Kode Customer
C. Kode Barang
dari ketiga primary key diatas maka dapat diturunkan tabel yang mempunyai ketergantungan pada masing-masing kunci.
===============
|Tabel Nota |
===============
|No Nota |
|Tanggal Nota |
|Kode Customer|
|Kode Barang |
|Quantity |
|Harga |
==============
=================
|Tabel Customer |
=================
|Kode Customer |
|Nama Customer |
|Alamat |
================
================
| Tabel Barang |
================
|Kode Barang |
|Nama Barang |
|Harga |
================
Dengan struktur tabel diatas maka proses insert, delete, Update todak bermasalah, Kode customer dan nama customer baru dapat diinsertkan tanpa harus ada transaksi di tabel nota. Begitu juga Kode barang dan nama barang baru.
Selanjutnya terdapat masalah di tabel nota karena field entity dan harga tidak bergantung pada primary key No Nota di tabel nota tapi fungsinya bergantung pada kode barang. Hal ini disebut ketergantungan transitif dann harus dipisah dalam 2 buah tabel(tabel master-detail).
4. Bentuk Normal Ketiga (third Normal Form / 3NF )
Bentuk normal ketiga mempunyai syarat setiap tabel tidak mempunyai field yang bergantung transitif, namun harus bergantung penuh pada kunci utama.
Dengan Demikian, Relasi haruslah dalam bentuk normal kedua(2NF) dan semua atribut yang bukan primer tidak punya hubungan transitif. Dengan kata lain, setiap atribut bukan kunci haruslah bergantung hanya pada primary key secara menyeluruh.
Mengacu pada bentuk normal ketika maka model yang kita buat sebelumnya harus diubah menjadi :
=================
|Tbl Nota Master|
=================
|No Nota |
|Tanggal Nota |
|Kode Customer |
================
=================
|Tbl Nota Detail|
=================
|No Nota |
|Kode Barang |
|Quantity |
|Harga |
=================
=================
|Tabel Customer |
=================
|Kode Customer |
|Nama Customer |
|Alamat |
=================
================
| Tabel Barang |
================
|Kode Barang |
|Nama Barang |
|Harga |
================
5. Boyce-codd Normal Form (BCNF)
Mempunyai paksaan yang lebih kuat dari bentuk normal ketiga untuk menjadi BCNf, relasi harus dalam bentuk normal kesatu dan setiap atribut harus bergantung secara fungsi pada atribut superkey
No comments:
Post a Comment