Thursday, June 14, 2012

Relasi Antar Tabel Pada Sebuah Database

Pada saat melakukan normalisasi terhadap sebuah data, maka data akan dipecah kedalam beberapa tabel yang berelasi satu sama lainnya. Ada 3 relasi antar table sebagai berikut.

One-to-one Satu-ke-satu

Relasi one-to-one merupakan relasi tabel yang jarang digunakan, relasi ini merelasikan satu data sebuah tabel dengan hanya satu data dari tabel lainnya. Indikasi untuk menggunakan tipe relasi ini adalah jika sebuah data memiliki sebuah subset data tertentu yang menerangkan lebih detil data itu, dimana subset data ini tidak dimiliki oleh data tersebut pada umumnya. Sebagai contoh, sebuah product secara umum memiliki id_produk, nama, harga, jenis. Namun pada tipe product tertentu seperti buku, memiliki data tambahan seperti penulis, penerbit, ISBN, tanggal_terbit. Satu data di tabel product hanya terhubung dengan satu data di tabel buku. Jika digambarkan seperti di bawah.

one-to-one1.png

One-to-many Satu-ke-banyak

Relasi one-to-many adalah relasi antar dua tabel dimana satu data (record) dari Tabel 1 bisa terhubung dengan beberapa record di Tabel 2. Misalnya penjualan memiliki id_penjualan, tanggal_jual, kasir. Setiap penjualan bisa terhubung dengan banyak item_penjualan. item_penjualan memiliki id_item,id_penjualan, id_produk, jumlah, harga_jual. Jika digambarkan seperti:
one-to-many.png

Many-to-many Banyak-ke-Banyak

Relasi many-to-many merupakan relasi yang paling kompleks, karena diperlukan tabel lain untuk menghubungkan dua tabel data yang saling berkepentingan. Seperti halnya penjualan bisa terhubung (berkepentingan) dengan banyak product, dan product bisa terhubungan dengan banyak penjualan. Tabel penjualan dan product memiliki relasi banyak ke banyak yang dihubungkan oleh tabel item_penjualan. Contoh lain adalah dosen bisa memiliki banyak mahasiswa dan mahasiswa bisa memiliki banyak dosen. Relasi banyak ke banyak antara dosen dan mahasiswa memerlukan tabel lain, sebut saja tabel mahasiswa_dosen. Jika digambarkan seperti di bawah.





many-to-many.png


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.

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.

Relasi Tabel Master Aplikasi Sistem Informasi Personalia

Agar kita dapat memelihara keakuratan, ketepatan dan konsistensi data dalam sebuah database kita perlu membuat relasi tabel. Microsoft Access menyediakan fitur relasi tabel untuk menghubungkan antara tabel satu dengan tabel lainnya. Dalam aplikasi Sistem Informasi Personalia yang kita buat terdapat 6 buah tabel master data yaitu:
  1. Tabel Karyawan
  2. Tabel Jabatan
  3. Tabel Cabang
  4. Tabel Bagian
  5. Tabel Departemen
  6. Tabel Headquarter
1. Relasi antara tabel Karyawan dan Jabatan
Relasi antara tabel Karyawan dan Jabatan adalah relasi satu ke banyak dimana satu data Jabatan dapat terhubung dengan lebih dari satau data Karyawan. Sebagai contoh kita lihat tabel berikut:
Pada tabel di atas kita melihat tiga nama karyawan mempunyai jabatan yang sama yaitu Manager dan 2 orang karyawan sebagai Supervisor.



2. Relasi antara tabel Karyawan dan Cabang
Relasi antara tabel Karyawan dan Cabang adalah relasi satu ke banyak dimana satu data Cabang dapat terhubung dengan lebih dari satau data Karyawan. Sebagai contoh kita lihat tabel berikut:

 
3. Relasi antara tabel Karyawan, Bagian, Departemen dan Headquarter
Relasi antara tabel Karyawan dan Bagian adalah relasi satu ke banyak dimana satu data Bagian dapat terhubung dengan lebih dari satau data Karyawan.
Relasi antara tabel Bagian dan Departemen adalah relasi satu ke banyak dimana satu data Departemen dapat terhubung dengan lebih dari satau data Bagian.
Relasi antara tabel Departemen dan Headquarter adalah relasi satu ke banyak dimana satu data Headquarter dapat terhubung dengan lebih dari satau data Departemen.
Sebagai contoh kita lihat tabel berikut:


Berikut adalah gambar relasi tabel master untuk aplikasi Sistem Informasi Personalia:

 


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.