Wednesday, June 13, 2012

Dasar Merancang Tabel , Relasi antar Tabel dan Data Integrity dgn MYSQL – C#

Buat anda yang sedang atau pernah  kuliah di informatika mungkin artikel ini tdk terlalu berguna. Artikel ini saya tujukan buat anda yang belum pernah mempelajari dasar membuat  tabel di dalam sebuah database.

Merancang Tabel
Penjelasan tujuan perancangan tabel di dalam database diantaranya bisa dilihat pada contoh berikut:
Misalnya pada sebuah manufacture yang memproduksi  Televisi , mempunya tabel output produksi sbb:



TABEL 1
Tabel diatas sepertinya tampak biasa saja bagi anda yang belum pernah mempelajari dasar dasar merancang tabel / database. Tapi sebenarnya tabel diatas bukanlah tabel yang baik.  Kekurangan dari tabel diatas antara lain:
- Jika pada hari itu tdk ada produksi di line B , maka kita akan kehilangan informasi ttg model ABC.   ini disebut anomali.

- Jika saya ingin mengganti  data kolom  Tujuan  untuk  model ABC  dari Pilipina ke Banglades maka semua tujuan pd tiap  baris harus diganti satu persatu. begitu juga  jika size ingin dirubah maka semua data size  tiap baris harus dirubah. hal ini tentu bukan cara  yg efisien.

- Adanya  data yang sama di input berulang,   data size dan tujuan  untuk model yg sama akan diinput kembali  pada tiap baris  hal ini disebut redudant .  ini memboroskan  lokasi memori tempat menyimpan data.
Tabel yang baik tdk mengandung anomali ataupun redudant.

Untuk  memperbaiki tabel diatas,   hilangkan anomali dan redudant. Salah satu caranya adalah dengan membuat tabel di atas menjadi 2 tabel sbb:
Tabel MasterModel :



TABEL 2
Tabel OutputProduksi :



TABEL 3
Setelah tabel 1 dipecah menjadi  dua tabel yaitu tabel 2 dan tabel 3 maka :
- Jika kita ingin merubah data pada model , size  atau  data pd kolom tujuan kita cukup sekali saja merubahnya yaitu pada tabel 2.

-  Jika tdk ada produksi pada tgl berapapun data informasi model tdk  akan hilang  dan tetap ada di tabel 2.

- Data output produksi menjadi lebih hemat memori karena kolom  model size dan tujuan tdk diikutkan dalam tabel output produksi.

Yang  jadi pertanyaan  sekarang adalah dari mana aplikasi tahu kalau tabel 3 mempunyai hubungan /relasi dengan tabel 2?
Pada contoh di atas idmodel pada tabel 3 mengacu pada idmodel pada tabel2.
kesimpulan yg bisa diambil dari  hubungan/relasi   antara tabel 2 dan tabel3 :
  • pertama : data dalam kolom  idmodel pada tabel2 tdk boleh kosong ( ketika kolom lain ada isinya) atau istilahnya NOT NULL.  contoh  pada baris kedua data pada tabel dibawah ini.

  • kedua :  data dalam kolom idmodel tabel2  tidak boleh ada yg sama. contoh pada tabel dibawah ini data kolom idmodel ada yg sama hal ini tdk di izinkan.

  • kolom idmodel pada tabel 3 mengacu pada idmodel tabel 2 dan isinya boleh kosong  atau NULL.
Dalam istilah database,  kolom  idmodel pada  tabel 2 disebut  Primary Key  yaitu  kolom yang unik sebagai indentitas record dlm sebuah tabel  dan idmodel pada tabel 3 disebut Foreign Key.
Untuk membuat  Tabel2  dengan Primary key dan tabel 3 dgn  Foreign Key  perintah nya  SQL untuk database mysql seperti dibawah ini:

 CREATE TABLE MasterModel(
idmodel  INT  NOT NULL PRIMARY KEY,
MODEL    VARCHAR(50),
SIZE     VARCHAR(50),
Tujuan   VARCHAR(50),
);


Sedangkan untuk membuat tabel 3 dengan idmodel sebagai Foreign key

CREATE TABLE OutputProduksi(
idmodel FOREIGN KEY REFERENCES MasterModel(idmodel))
TGL    DATE,
WAKTU  TIME,
LINE   VARCHAR(10)
);


Baris perintah diatas memberitahu DBMS bahwa terjadi hubungan antara tabel sbb:
 


Anda ingin mencari refrensi dan contoh program lengkap ? Kami ada. Sekarang Anda bisa mencari Relasi Tabel di situs ini : http://www.bunafitkomputer.com. Koleksi program lengkap di sana, proyek PHP dan MySQL, juga jQuery dan Framework. Bukunya juga ada.

1 comment: