Merancang Mysql Database



      Merancang database merupakan hal terpending yang harus dilakukan sebelum membuat sebuah aplikasi yang berbasis database. kali ini iniilmu.com akan memberikan penjelasan bagaimanan merancang atau membuat database mysql. Rancangan database yang baik akan menentukan seberapa baik sebuah aplikasi yang dibangun, Orang yang bertanggung jawab dalam merancang database bisanya disebut sebagai sistem analis. Berikut ni contoh sederhana sebuah rancangan database pada Sistem Pemesanan Barang ( Ordering system ). Rancangan database disajikan dalam bentuk class diagram :

rancangan erd pemesanan

Tipe-tipe Tabel MySQL

     Salah satu kelebihan dari MySQL adalah kalian dapat mendefenisikan tipe untuk tiap tabel. MySQL mendukung beberapa tipe tabel, tergantung konfigurasi saat proses instalasi mysql. Mysql memiliki 3 (tiga) tipe data utama, yaitu MyISAM, InnoDB dan HEAP. 
    Jika kita tidak menyebutkan tipe tabel saat membuat tabel, maka tipe tabel otomatis akan dibuat sesuai konfigurasi default server MySQL. Hal ini ditentukan oleh variabel default-tabel-type di file konfigurasi mysql.

MyISAM

     Tipe tabel MyISAM merupakan tipe tabel yang sederhana, stabil dan mudah digunakan. Jika kita akan mentimpan data sederhana yang tidak terlalu rumit, maka gunakanlah tipe tabel ini. Kelebihan utama MyISAM adalah kecepatan dan kestabilannya. Jika kita memiliki tipe tabel MyISAM, maka mysql secara otomatis akan menentukan salah satu dari tiga jenis tabel MyISAM, yaitu :
  • MyISAM Static, jenis tabel ini digunakan ketika semua kolom dalam tabel didefinisikan dengan ukuran yang pasti ( fixed ). Dengan kata lain, tidak ada kolom yang memiliki tipe seperti VARCHART, TEXT dan BLOB. Karena sifatnya yang fixed, maka jenis ini akan lebih cepat, aman dan stabil.
  • MyISAM Dymanic, jenis ini digunakan ketika terdapat kolom dengan tipe yang dinamis, seperti tipe kolom VARCHAR, keuntungan utama dari jenis ini adalah ukuran yang dinamis, Jadi sifatnya lebih efektif karena ukuran data (file) menyesuaikan isi dari masing-masing kolom (field).
  • MyISAM Compressed, kedua jenis MyISAM, static dan dynamic dapat dikompresi menjadi satu jenis yaitu MyISAM Compressed dengan perintah myisamchk. Tentunya hasilnya lebih kecil dari segi ukuran. tabel yang terkompresi tidak dapat dikenakan operasi seperi INSERT, UPDATE, dan DELETE.

InnoDB

    Tipe tabel InnoDB merupakan tipe tabel Mysql yang mendukung proses transaksi. Tipe ini memiliki beberapa keunggulan, antara lain:
  • Mendukung transaksi antar tabel.
  • Mendukung row-level-locking.
  • Mendukung Foreign-Key Constraints.
  • Crash recovery.

HEAP

    Tabel dengan tipe HEAP tidak menyimpan datanya di harddisk, tetapi menyimpan di RAM. Tipe tabel ini biasanya digunakan sebagai tabel sementara ( temporary ). Tabel secara otomatis akan dihapus ( hilang ) dari mysql saat koneksi ke server diputus atau server mysql dimatikan.

Tipe Tabel yang lain

    Selain 3 ( tiga ) tipe tabel diatas, terdapat juga tipe tabel lain, seperti :
  • BDB, Tipe tabel ini mirip tipe tabel InnoDB, namun penggunaannya belum maksimal.
  • Archieve, Tipe ini tersedia sejak mysql versi 4.1. Tipe ini digunakan untuk menyimpan tabel yang terkompresi, dimana biasanya digunakan dalam proses backup.
  • CSV, Tipe ini digunakan untuk menyimpan data dalam bentuk file text yang dibatasi dengan koma ( delimiter ). Tipe ini tersedia sejak mysql verisi 4.1
  • NDB Table ( MySQL Cluster ), tersedia sejak Mysql 4.1
  • Federated ( External Tables ). Tipe ini tersedia sejak Mysq versi 5.0.

Tipe-tipe Field ( kolom ) MySQL

    MySQL memiliki cukup banyak tipe data untuk field ( kolom ) tabel. Tipe field ( kolom ) ini menentukan besar kecilnya ukuran suatu tabel. Tipe field di mysql setidaknya terbagi menjadi  beberapa kelompok, seperti :

Tipe Numeric

     Tipe data numerik digunakan untuk menyimpan data numeric ( angka ). Ciri utama data numeric adalah suatu data yang memungkinkan untuk dikenai operasi aritmatika seperti pertambahan, pengurangan, perkalian dan pembagian. Berikut ini tipe field ( kolom ) di mysql yang termasuk ke dalam kelompok tipe numerik :


1. TINYINT
  • Penggunaan : digunakan untuk menyimpan data bilangan bulat positif dan negatif
  • Jangkauan    : -128 s/d 127
  • Ukuran         : 1 byte ( 8 bit )
2. SMALLINT

  • Pengunaan : digunakan untuk menyimpan data bilangan bulat positif dan negatif
  • Jangkauan  : -32.768 s/d 32.767
  • Ukuran       : 2 byte ( 16 bit )
3. MEDIUMINT


  • Penggunaan : digunakan untuk menyimpan data bilangan bulat positif dan negatif
  • Jangkauan    : -8.388.608 s/d 8.388.607
  • Ukuran         : 3 byte ( 24 bit )
4. INT


  • Penggunaan : digunakan untuk menyimpan data bilangan bulat dan negatif
  • jangkauan    : -2.147.483.648 s/d 2.147.483.647
  • Ukuran         : 4 byte ( 32 bit )
5. BIGINT


  • Penggunaan : digunakan untuk penyimpanan data bilangan bulat positif dan negatif.
  • Jangkauan    : 9,22 x 10^18
  • Ukuran         : 8 byte ( 64 bit )
6. FLOAT


  • Penggunaan : digunakan untuk menyimpan data bilangan pecahan positif dan negatif presisi                             tunggal.
  • Jangkauan   : -3402823466E+38 s/d -1.175494351E-38, 0 , dan 1.175494351E-38 s/d                                       3.402823466E+38
  • Ukuran        : 4 byte ( 32 bit )
7. DOUBLE


  • Penggunaan : digunakan untuk menyimpan data bilangan pecahan positif dan negatif presisi                            ganda.
  • Jangkauan   : -1.79...E+308 s/d -2.22...E-308, 0 , dan 2.22.....E-308 s/d 1.79...E+308
  • Ukuran        : 8 byte ( 64 bit )
8. REAL

    Merupakan sinonim dari DOUBLE
9. DECIMAL

  • Penggunaan : digunakan untuk menyimpan data bilangan pecahan positif dan negatif.
  • Jangkauan    : -1.79...E+308 s/d -2.22...E-308,0, dan 2.22..E-308 s/d 1.79..E+308
  • Ukuran         : 8 byte ( 64 bit )
10. NUMERIC

     Merupakan sinonim dari DECIMAL.

Tipe Date dan Time

    Tipe data date dan time digunakan untuk menyimpan data tanggal dan waktu. Berikut ini tipe field ( kolom ) mysql yang termasuk ke dalam kelompok tipe date dan time :

1. Date

  • Penggunaan : digunakan untuk menyimpan tanggal.
  • Jangkauan    : 1000-01-01 s/d 9999-12-31 ( YYYY-MM-DD)
  • Ukuran         : 3 byte
2. Time


  • Penggunaan : digunakan untuk menyimpan data waktu.
  • Jangkauan    : -838:59:59 s/d + 838:59:59 ( HH : MM : SS )
  • Ukuran         : 3 byte
3. Datetime


  • Penggunaan : digunakan untuk menyimpan data tanggal dan waktu.
  • Jangkauan    : '1000-01-01 00:00:00' s/d '9999-12-31 23:59:59'
  • Ukuran         : 8 byte.
4. YEAR


  • Panggunaan : digunakn untuk menyimpan data tahun dari tanggal.
  • Jangauan      : 1900 s/d 2155
  • Ukuran         : 1 byte

Tipe String ( Text )

    Tipe data string digunakan untuk menyimpan data string (text). Ciri utama data string adalah suatu data yang memungkinkan untuk dikenai operasi aritmatika seperti pertambahan, pengurangan, perkalian dan pembagian. Berikut ini tipe field ( kolom ) di mysql yang termasuk ke dalam kelompok tipe string :

1. Char
  • Penggunaan : digunakan untuk menyimpan data string ukuran tetap.
  • Jangkauan    : 0 s/d 255 karakter
2. Varchar 
  • Penggunaan : digunakan untuk menyimpan data string ukuran dinamis.
  • Jangkauan    : 0 s/d 255 karakter ( versi 4.1 ), 0 s/d 65.535 ( versi 5.0.3 )
3. Tinytext
  • Penggunaan : digunakan untuk menyimpan data text.
  • Jangkauan    : 0 s/d 255 ( versi 4.1 ), 0 s/d 65.535 ( versi 5.0.3 )
4. Text
  • Penggunaan : digunakan untuk menyimpan data text.
  • Jangkauan    : 0 s/d 65535 ( 2^16 - 1 ) karakter
5. MediuamText
  • Penggunaan : digunakan untuk menyimpan data text.
  • Jangkauan    : 0 s/d 2^24 - 1 karakter
6. LongText
  • Penggunaan : digunakan untuk menyimpan data text.
  • Jangkauan    : 0 s/d 2^32 - karakter

Tipe BLOB

    Tipe data blob digunakan untuk menyimpan data biner. Tipe ini biasanya digunakan untuk menyimpan kode-kode biner dari suatu file atau object. Blob merupakan singkatan dari binary karge object. berikut ini tipe field ( kolom ) di mysql yang termasuk ke dalam kelompok tipe blob:

1. Bit ( sejak versi 5.0.3 )
  • Penggunaan : digunakan untuk menyimpan data biner.
  • Jangkauan    : 64 digit biner
2. Tinyblob
  • Penggunaan : digunakan untuk menyimpan data biner
  • Jangkauan    : 255 byte
3. Blob
  • Penggunaan : digunakan untuk menyimpan data biner.
  • Jangkauan   : 2^16 - 1 byte
4. Mediumblob
  • Penggunaan : digunakan untuk menyimpan data biner
  • Jangkauan    : 2^24 - 1 byte
5. Longblog
  • Penggunaan : digunakan untuk menyimpan data biner.
  • Jangkauan   : 2^32 - 1 byte.

Tipe Data yang lain

   Selain tipe data diatas, mysql juga menyediakan tipe data yang lain. Tipe data di mysql memungkinkan terus bertambah seiring dengan perkembangan versi mysql. Berikut beberapa tipe data tambahan mysql :

1. Enum

  • Penggunaan : enumerasi ( kumpulan data ).
  • Jangkauan    : sampai dengan 65535 string
2. SET

  • Penggunaan : combination ( himpunan data ).
  • Jangkauan   : sampai dengan 255 string anggotas.

Merancang Database yang Baik

     Seperti yang telah disebutkan sebelumnya, bahwa rancangan database menentukan suatu aplikasi efektif atau tidak, efesien atau tidak, baik atau tidak. Pembahasan mengenai bagaiman merancang database yang baik tentunya sangat panjang. Kita dapat mencari referensi terkait dengan perancangan database.  

Beberapa Aturan Merancang Database yang baik


  1. Tabel dalam database tidak boleh mengandung record ( data ) ganda, atau dengan kata lain tidak boleh ada redudancy data. Jika terdapat data yang sama, maka perlu dilihatkan kembali rancangan tabelnya.
  2. Setiap tabel dalam database, harus memiliki field ( kolom ) yang unit, Field ini disebut sebagai primary key.
  3. Tabel harus sudah normal.
  4. Besar atau ukuran database hendaknya dibuat seminimal mungkin. Hal ini ditentukan oleh pemilihan tipe data yang tepat.
  5. Merancang database hendeknya memperhatikan apakah rancangan dapat menampung data ( record ) sesuai dengan yang dibutuhkan oleh aplikasi.

Tips Penamaan Identifier


  1. Penamaan identifier ( database, tabel, kolom ) di mysql bersifat case-sensitif. Penaman identifier hendaknya konsisten untuk semua tabel dalam suatu database. kita dapat menggunakan mode lower-case, UPPER-CASE, cameCase dll.
  2. Nama database, tabel dan kolom maksimal 64 karakter
  3. Hindari penggunaan karakter khusus
  4. Pilih nama untuk field ( kolom ) yang mencerminkan isi data yang disimpan.  


You might also like

0 Comments


EmoticonEmoticon

About