Perancangan Database dengan Implementasi di MySQL

Emm, sebelum membaca artikel ini ada baiknya paham atau paling nggak membaca sekilas tentang ERD (Entity Relationship Diagram) terlebih dahulu, ada dimari sih  ( atau bisa ditempat lain, disitu kayakke gak lengkap haha).  Kenapa butuh belajar ERD ? ya ntar soalnya merancangnya pakai itu.  Oke, langsung saja kita masuk ke hal yang sangat teknis sekali yaitu bagaimana merancang sebuah database sederhana, yaitu database rak buku.  Oh ya sebelumnya juga laptopnya udah terinstall database MySQL ya hehe, masternya silakan googling atau dimari http://www.apachefriends.org/en/xampp.html.

Rak buku, nah sekarang coba imajinasikan seperti apa rak buku itu.  Di sana kira-kira ada apa saja ?. . . . . . . . ( Oke ceritanya berpikir ya ).

Nah, paling gak sepahit-pahitnya kalian membayangkan ada rak dan ada buku kan ya ?

Berarti paling tidak ada dua entitas tersebut.  Nah sekarang apa hubungan diantara dua entitas tersebut ? . . . .. . . . . . ( dibayangkan lagi ceritanya).

Paling gak kalian juga akan membayangkan rak tersebut ada di dalam buku kan ya ? lalu relasi apa yang terbentuk ? ……………..(dibayangkan lagi ceritanya ).

Sekarang melakukan analisis.  Rak buku itu pasti mempunyai kolom-kolom kan ya, dimana setiap kolom bisa diisi banyak buku, tetapi akan sangat mustahil jika satu buku ada di dua kolom, nah dari sini terlihat bahwa kardinalitas antara buku dan rak buku adalah one to many.

Oke, sekarang bikin ERD nya terlebih dahulu.

rakbuku

Nah kalau udah sekarang coba kita aplikasikan ke SBD (Sistem Basis Data) nya, dalam hal ini ceritanya memakai MySQL.

Sintaknya seperti ini :

Pertama kita bikin database terlebih dahulu

CREATE DATABASE `rakbuku`;

Lalu bikin table masternya, yaitu table rak dan tabel buku.

CREATE TABLE IF NOT EXISTS `buku` (
  `noBuku` INT(11) NOT NULL AUTO_INCREMENT,
  `Judul` VARCHAR(50) NOT NULL,
  `Pengarang` VARCHAR(50) NOT NULL,
  `Penerbit` VARCHAR(50) NOT NULL,
  `Tahun` INT(5) UNSIGNED NOT NULL,
  PRIMARY KEY (`noBuku`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;
 
CREATE TABLE IF NOT EXISTS `rak` (
  `noKolom` INT(11) NOT NULL,
  `status` VARCHAR(5) NOT NULL,
  PRIMARY KEY (`noKolom`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;

Setelah itu bikin tabel yang berisi data hubungan antara rak dan buku

CREATE TABLE IF NOT EXISTS `tempatbuku` (
  `Petugas` VARCHAR(50) NOT NULL,
  `noBuku` INT(11) NOT NULL,
  `noKolom` INT(11) NOT NULL,
  KEY `noBuku` (`noBuku`),
  KEY `noKolom` (`noKolom`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;

Setelah itu pasang foreign key nya. Oh ya foreign key mudahnya adalah kunci buat merujuk ke tabel utama ( kunci tamu), jadi kunci tamu ini isinya harus ada di tabel induknya ( haa kalau gak mudeng googling aja :p )

ALTER TABLE `tempatbuku`
  ADD CONSTRAINT `tempatbuku_ibfk_2` FOREIGN KEY (`noKolom`) REFERENCES `rak` (`noKolom`),
  ADD CONSTRAINT `tempatbuku_ibfk_1` FOREIGN KEY (`noBuku`) REFERENCES `buku` (`noBuku`);

Selesai.

Oh ya, kalau ada kesalahan mohon dikoreksi ya 😀

Leave a Comment