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:

no LINE TGL WAKTU MODEL SIZE Tujuan
 1 A  4/27/2010  09:03:22 AAA 14 Australia
2 A 4/27/2010  09:04:21 AAA 14 Australia
3 B 4/27/2010  09:05:13 ABC 21 Pilipina
4 B 4/28/2010  09:05:34 ABC 21 Pilipina
5 B 4/28/2010  09:06:22 ABC 21 Pilipina

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 :

idmodel MODEL SIZE Tujuan
 01A AAA 14 Australia
01B AAA 14 Belgia
02A ABC 21 Jepang
02B ABC 21 Rusia
02C ABC 21 Pilipina

TABEL 2

Tabel OutputProduksi :

idmodel TGL WAKTU LINE
 01A   4/27/2010  09:03:22 A
01B  4/27/2010   09:04:21 A
02C  4/27/2010 09:05:13  B
02C  4/28/2010   09:05:34 B
02C  4/28/2010 09:06:22 B
02C  4/29/2010 09:06:22 A
02C  4/29/2010 09:06:22 A
02B  4/29/2010 09:06:22 B
02B  4/30/2010 09:06:22 B
01A  4/30/2010 09:06:22 A
02C  4/30/2010 09:06:22 A

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.
idmodel MODEL SIZE Tujuan
 01A AAA 14 Australia
AAA 14 Belgia
02A ABC 21 Jepang


  • 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.
idmodel MODEL SIZE Tujuan
 01A AAA 14 Australia
 01A AAA 14 Belgia
 02A ABC 21 Jepang
  • 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:

Relasi antara tabel

Data Integrity (integritas data) 

Data integrity  artinya data di database  benar dan konsisten. Ada dua aspek yang membentuk data integrity yaitu:

  • Entity Integrity  (EI) :  Bahwa nilai data pada primary key harus ada dan nilainya tdk boleh ada yang sama. DBMS (database managamen system spt SQL Server, MYSQl dll)  memberlakukan  EI  dgn tdk mengijinkan operasi INSERT atau UPDATE dan  menghasilkan pesan kesalahan jika ada Nilai kosong atau sama. Untuk membuat EI anda harus mendefinisikan kolom yg dijadikan Primary Key.
  • Referensial Integrity  adalah konsep database yang memastikan bahwa hubungan antara tabel tetap konsisten.  Misalnya Pada contoh hubungan tabel MasterModel dan OutputProduksi. Kita tidak bisa menghapus data model di tabel MasterModel, karena data tsb terkait ke tabel OutputProduksi.

to be continyu

referensi:

http://functionx.com/mysqlnet/csharp/Lesson12.htm

About pccontrol

Berisi Tutorial Menggunakan PC untuk mengontrol Peralatan dengan cara mudah & praktis.

Posted on 18/08/2011, in Dasar Basisdata (Database), Visual C#. Bookmark the permalink. 6 Comments.

  1. Terimakasih atas petunjuknya gan . . .
    sangat membantu.

  2. thanks atas info nya..
    maju trus

  3. thanks atas info nya,membantu banget buat saya

  4. Enak mas Jelasiinnya, ditunggu kelanjutannya

  5. mantapsss,,, sangat berguna sekali buat ane gan yg masih belajar tentang relasi tabel….

  6. wah ga ada yg komeng pada binun yah :-) apa udah cukup jelas?

Komentar ,Saran atau Pertanyaan

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: