Kamis, 18 Juni 2015

Relasi Antar Tabel


     Sebelum membuat database, tentunya user harus merancang relasi antar tabel atau hubungan dari tabel ke tabel. Dalam suatu tabel terdapat satu primary key (kunci utama) dan jika tabel tersebut berelasi maka diantara tabel tersebut harus memiliki foreign key (kunci tamu). Dalam relasi tabel terdapat kardinalitas. Kardinalitas merupakan jumlah yang menunjukkan maksimum entitas yang dapat berelasi dengan entitas pada himpunan entitas yang lain. Macam kardinalitas yaitu, One to One, One to Many, dan Many to Many.
     Untuk membuat suatu relasi antar tabel, pertama buat dahulu database yang kemudian disusul dengan tabel - tabel. Untuk lebih jelasnya silahkan lihat gambar dibawah :


     Gambar di atas menunjukkan pembuatan database anwari_penjualan yang berisi tabel barang_jenis, barang, pelanggan, penjualan, dan penjualan_detail. Karena pada kasus ini yang pertama akan direlasikan adalah tabel barang_jenis dan barang, maka tambahkan foreign key (kunci tamu) pada tabel barang. Perintahnya :
ALTER TABLE barang ADD FOREIGN KEY(kd_jenis) REFERENCES barang_jenis(kd_jenis);

      Jika sudah isikan data pada tabel barang, hingga data seperti gambar dibawah :

     Kemudian isi juga pada tabel barang_jenis hingga data seperti gambar dibawah :

  Dari kedua tabel tersebut jika direlasikan akan membentuk kardinalitas One to Many (Satu ke Banyak), untuk lebih jelas lihat gambar :
Keterangan :
*   : primary key
** : foreign key
1   : One
N  : Many

     Maksud gambar diatas adalah, satu jenis barang terdiri dari lebih dari satu barang (banyak barang), misalnya jenis barang harddisk, terdiri dari Seagate 40GB, Seagate 60GB. Jadi satu jenis barang bisa memiliki anggota banyak barang.

     Karena kedua tabel tersebut sudah berelasi dan data - datanya telah terisi, coba tampilkan data tabel barang dan barang jenis. Data yang ditampilkan adalah kode barang, nama jenis, nama barang dan harga.
Maksud perintah diatas adalah :
SELECT : untuk memilih
barang.kd_barang : menampilkan data kd_barang pada tabel barang
barang_jenis.nm_jenis : menampilkan data nm_jenis pada tabel barang_jenis
FROM barang_jenis, barang : dari tabel barang_jenis dan barang
WHERE barang_jenis.kd_jenis = barang.kd_jenis : dimana yang akan ditampilkan adalah data kunci utama pada tabel barang_jenis sama dengan data kunci tamu pada tabel barang 

     Contoh berikutnya adalah menampilkan data dengan syarat data yang ditampilkan hanya barang yang jenisnya harddisk saja