Jumat, 09 November 2012

Cara Membangun Database yang Baik


 


Pembuatan (design) database yang baik memudahkan kita untuk memelihara dan mengupgrade (suatu saat nanti) menjadi system database yang lebih kompleks. Dengan sistem database yang benar, Anda tidak perlu merubah nomor telepon supplier didalam tiga tempat, tapi cukup didalam data pusatnya. Membangun database yang benar pada awal pembuatan merupakan langkah awal agar database Anda mudah digunakan dan dimodifikasi pada masa-masa berikutnya.


 
Terdapat beberapa langkah dalam membangun database yang baik, yaitu:
1.      Tentukan tujuan pembuatan database.
2.      Tentukan table-table yang diperlukan.
3.      Tentukan field-field yang dibutuhkan didalam masing-masing table.
4.      Tentukan table yang akan digunakan secara bersama-sama.
5.      Identifikasi field-field yang akan menjadi kunci, baik primary key maupun foreign key.
6.      Tentukan relationships antara masing-masing table.
7.      Check ulang, kemudian coba ringkaskan kembali design database yang sudah dibuat (jika memungkinkan).
8.      Memasukkan data statis kedalam table.
9.      Menciptakan object-object database lainnya.

 
Langkah 1 – Tentukan tujuan pembuatan database

Inilah langkah dasar yang harus Anda tentukan:
-         Hendak digunakan untuk apa database Anda?
-         Apa tujuan pembuatan database ini?
-         Siapa saja user atau pengguna database Anda?

 
Dengan memahami langkah ini, maka salah satu pondasi dasar database telah selesai Anda buat. Dengan demikian, kita tinggal memikirkan apa saja yang kita butuhkan untuk membangun database ini.

 
Langkah 2 – Tentukan table-table yang diperlukan

Sebagaimana membuat bangunan rumah, setelah selesai membuat sketsa, tentulah menentukan bahan bangunan apa saja yang dibutuhkan untuk mewujudkan sketsa tersebut menjadi bangunan jadi yang diinginkan. Pada database, bahan dasar untuk membangun database adalah table. Bertanyalah kepada user (pengguna) yang hendak menggunakan database Anda, apa yang sebenarnya mereka kehendaki dari database yang akan Anda buat. Uraikan secara detail output atau laporan yang akan mereka butuhkan didalam database yang akan Anda buat. Kumpulkan sketsa dan format apa saja yang mereka kehendaki. Buatlah sketsa database menggunakan pensil atau ballpoint didalam kertas kosong, dimana didalam sketsa ini memperlihatkan table-table yang kira-kira akan diperlukan nantinya.

 


 
Gambar contoh Sketsa Database yang saya buat diatas kertas HVS

 
Semakin banyak daftar informasi yang telah Anda terima dari mereka (user) akan memudahkan perancangan awal pembuatan database. Maka disinilah akan muncul berbagai ide didalam pikiran dan hati Anda. Apa yang harus Anda lakukan, apa saja yang Anda butuhkan, dan lain-lain. Dengan demikian Anda akan memahami table dan field apa saja yang dibutuhkan untuk membangun database tersebut.

 
Langkah 3 – Tentukan field-field yang dibutuhkan didalam masing-masing table

Masing-masing table mempunyai field-field yang harus Anda tentukan. Sebagai contoh, Anda telah menentukan table Daftar Supplier, tentu saja didalam table ini harus memuat data-data seperti: Nomor Supplier, Nama Supplier, Alamat Supplier, Nomor Telepon Supplier, dan lain-lain. Maka disinilah field-field tersebut dibuat, dan janganlah terburu-buru menyelesaikan langkah ini. Pikirkanlah kembali, benarkah hanya field-field tersebut yang Anda butuhkan. Sebab, membuat field susulan kadangkala akan merepotkan nantinya, dan bisa jadi akan memodifikasi sebagian besar database Anda, jika memang field tersebut dibutuhkan oleh hampir sebagian besar object didalam database Anda.

 
Janganlah ada suatu field yang merupakan hasil perhitungan dari field-field lainnya didalam table. Misalnya saja, didalam table Daftar Pesanan terdapat field Quantity dan field Harga, maka janganlah menambahkan field Total Harga didalam table ini, karena kita bisa menggunakan object query untuk melakukan ini, tidak perlu didalam table.

 
Jangan pula menambahkan field-field yang sifatnya daftar suatu materi didalam table utama. Contoh, Anda menambahkan field daftar produk yang Anda pesan dari supplier didalam table Daftar Supplier yaitu field Produk1, field Produk2, dan field Produk3. Ini akan sangat merepotkan ketika kita hendak mencari supplier apa saja yang mempunyai produk tertentu, dan yang lebih merepotkan adalah seandainya terdapat supplier yang daftar produknya lebih dari tiga, maka Anda harus menambahkan field tambahan didalam table Daftar Supplier. Cara yang benar adalah cukup daftar produk ini disimpan didalam table Master Barang, kemudian tambahkan disana Nomor Supplier-nya.

 
Jangan pula menambahkan field-field statis yang sama didalam beberapa table yang berbeda. Contoh, jika Anda telah membuat field Nama Supplier didalam table Supplier, maka Anda tidak perlu menambahkan field Nama Supplier didalam table Order, karena Nama Supplier ini bisa diambil dengan menggunakan object query. Namun jika field tersebut dinamis yang sifatnya bisa berubah, misalnya saja Harga Barang, maka Anda boleh menambahkan field Harga Barang ini didalam table Order dan table Master Barang.

 
Langkah 4 – Tentukan table yang akan digunakan secara bersama-sama

Sebagaimana kita tidak perlu membuat field statis yang sama didalam beberapa table, jangan juga kita membuat table statis yang sama didalam suatu database. Jadi Anda tidak perlu membuat table Master Barang khusus untuk supplier A, sedangkan untuk supplier B Anda membuat table Master Barang yang lain. Seandainya akan dibuat form atau report dari data tersebut, maka Anda akan bekerja dua kali, dan ini akan lebih memakan waktu. Dan yang lebih merepotkan lagi adalah seandainya terjadi perubahan design table didalam table yang satu, maka table lainnya harus dirubah juga.

 
Table-table statis yang akan digunakan secara bersama-sama umumnya merupakan data master, dengan demikian seandainya terjadi perubahan data didalam table master, maka secara otomatis pada table-table lainnya akan ikut berubah. Inilah salah satu keunggulan database Access, bekerja secara sistematis serta mengupdate data kedalam semua table yang berhubungan.

 
Langkah 5 – Identifikasi field-field yang akan menjadi kunci

Setelah membuat table, tentukanlah field-field yang akan menjadi kunci (primary key dan foreign key). Primary key berguna agar data didalam table tidak duplikat atau double, sedangkan foreign key berguna untuk menghubungkan field primary key didalam table master ke suatu field pada table detail. Tambahkan pula index kedalam beberapa field yang ditentukan, baik index jenis Duplicate OK ataupun No Duplicate.

 
Field kunci, baik primary key maupun foreign key serta index harus ditentukan sejak awal, dengan demikian design database pada langkah berikutnya akan mudah. Khusus untuk primary key jenis number, sebaiknya menggunakan type AutoNumber (Long Integer) agar user tidak perlu menginput lagi.

 
Langkah 6 – Tentukan relationships antara masing-masing table

Setelah Anda membuat field kunci, maka hubungkanlah kunci-kunci ini dengan suatu hubungan yang Anda tentukan, yaitu melalui relationships yang telah disediakan oleh Access (pelajari kembali relationships yang sudah penulis jelaskan pada pelajaran sebelumnya). Ingat! Pembuatan database tanpa relationships seperti membuat database model flat (bukan RDBMS), sehingga maintenance data akan sulit nantinya. Dan memang salah satu keunggulan Access karena didalamnya terdapat fasilitas pembuatan relationships yang sangat baik.

 
Langkah 7 – Check ulang, kemudian coba ringkaskan kembali design database yang sudah dibuat (jika memungkinkan)

Ketergesa-gesaan adalah perbuatan yang kurang baik, dan terkadang membawa penyesalan dimasa mendatang. Maka janganlah tergesa-gesa untuk membangun object-object database lainnya jika Anda belum mencheck ulang design database dari langkah 1 sampai dengan 6. Lihatlah kembali, apakah memang hanya ini yang Anda butuhkan. Mungkinkah design database yang sudah dibuat dapat diperingkas lagi? Jika Anda telah yakin, maka teruskan ke langkah berikutnya.

 
Langkah 8 – Memasukkan data statis kedalam table

Langkah ini sebenarnya tidak wajib, namun ia akan diperlukan ketika Anda hendak mencoba menjalankan program pada langkah berikutnya. Anda mungkin ingin melihat langsung hasil suatu proses ketika menjalankan program tersebut. Oleh karena itu Anda harus menyiapkan serta mengisi data statis, yaitu data yang sifatnya umum atau biasa disebut juga sebagai data master, dimana data ini akan digunakan oleh banyak table. Contoh, daftar supplier, daftar barang, daftar customer, dan lain-lain. Adapun table dinamis seperti table daftar transaksi barang, table absensi karyawan tidak perlu Anda isi karena memang ia merupakan data bergerak yang senantiasa berubah dan bertambah. Umumnya data statis ini dapat langsung diimport dari file spreadsheet ataupun database lainnya, seperti Microsoft Excel, SQL Server, dan lain-lain. Oleh karena itu, kita dapat menyiapkan suatu file template didalam Excel yang formatnya sama dengan table master, kemudian kita mengisi seluruh data statis kedalam file Excel tersebut. Setelah selesai, kita dapat langsung mengimportnya kedalam database Access.

 
Langkah 9 – Menciptakan object-object database lainnya

Setelah semua langkah diatas dilakukan, barulah kita mulai membuat object-object database lainnya, seperti query, form, report, macro, page, serta module.

Contoh : Rencana Penyusunan Data Siswa

Berikut ini adalah contoh membangun database yang benar yang disampaikan secara tahap demi tahap. Aplikasi dilakukan pada table rencana penyusunan data siswa sekolah beserta registrasinya pada tahun ajaran baru. Diharapkan setelah mempelajari contoh ini, pembaca dapat memahami bagaimana membuat dan menyusun field-field dan table-table didalam suatu database secara benar.

 
1.      Table tidak normal (yang masih salah):

 
NoSiswa
Nama Guru
Ruang Guru
Kelas1
Kelas2
Kelas3
1022
Jones
412
101-07
143-01
159-02
4123
Smith
216
201-01
211-02
214-01

 
2.      Table normal yang pertama: Jangan ada field yang mempunyai arti yang sama yang dibuat lebih dari satu field

 
Lihatlah table yang tidak normal sebagaimana pada no.1 diatas. Didalamnya terdapat field-field yang mempunyai arti sama, yaitu Kelas1, Kelas2, dan Kelas3. Field-field ini semestinya dibuat didalam satu field, kemudian untuk menyatakan kelas diisi didalam recordnya secara langsung. Lihatlah table berikut ini:
   

NoSiswa
Nama Guru
Ruang Guru
Kelas
1022
Jones
412
101-07
1022
Jones
412
143-01
1022
Jones
412
159-02
4123
Smith
216
201-01
4123
Smith
216
211-02
4123
Smith
216
214-01

 
3.      Table normal yang kedua: Hapuskan data yang berlebih-lebihan

 
Lihatlah table pada no.2 diatas. Kendatipun Kelas sudah dijadikan satu field, didalamnya masih terdapat penulisan data yang diulang-ulang, yaitu penulisan NoSiswa, Nama Guru dan Ruang Guru untuk masing-masing Kelas. Hal ini sangat tidak efisien, karena user akan lebih banyak menginput data. Dan table ini lebih sulit untuk dibuat primary key nya, karena untuk menambahkan primary key pada table seperti ini harus menggunakan multiple primary key, sehingga hal ini tidak efisien. Maka cara yang lebih tepat adalah pisahkan data-data didalam table ini menjadi dua table, table yang satu menyimpan data master siswa (table Master Siswa), table yang lain menyimpan data registrasi siswa (table Registrasi Siswa). Kedua table ini akan dihubungkan dengan relationships. Pembuatan table seperti ini disebut juga model Master-Detail. Lihatlah table-table berikut ini:

 
Table Master Siswa:
NoSiswa
Nama Guru
Ruang Guru
1022
Jones
412
4123
Smith
216
NoSiswa pada table ini merupakan primary key.

 
Table Registrasi Siswa:
NoSiswa
Kelas
1022
101-07
1022
143-01
1022
159-02
4123
201-01
4123
211-02
4123
214-01
NoSiswa pada table ini merupakan foreign key.

 
4.      Table normal yang ketiga: Pisahkan data yang tidak bergantung dengan suatu kunci

 
Pada table Master Siswa diatas terdapat field Nama Guru dan Ruang Guru yang penulisannya disatukan dengan data siswa. Sebaiknya data guru ini dipisahkan didalam table tersendiri, karena nama guru merupakan field yang datanya dapat diisi secara berulang kali, oleh karena itu harus dibuat kunci (primary key) pada field Nama Guru ini. Pisahkanlah data ini secara khusus, misalnya pada Table Master Guru. Dengan demikian, didalam database ini sekarang memiliki tiga table, yaitu table Master Siswa, table Registrasi Siswa dan table Master Guru. Ketiga table ini harus dihubungkan dengan relationships. Lihatlah table-table berikut ini:

 
Table Master Siswa:
NoSiswa
Nama Guru
1022
Jones
4123
Smith
NoSiswa pada table ini merupakan primary key.

 
Table Registrasi Siswa:
NoSiswa
Kelas
1022
101-07
1022
143-01
1022
159-02
4123
201-01
4123
211-02
4123
214-01
NoSiswa pada table ini merupakan foreign key.

 
Table Master Guru:
Nama Guru
Ruang Guru
Jones
412
Smith
216
Nama Guru pada table ini merupakan primary key.

 
Demikianlah beberapa tahapan dalam menyusun database yang benar yang dilakukan diawal pembuatan database. Sebab bila Anda merombak ulang database setelah database tersebut selesai dibuat, hal tersebut membutuhkan banyak waktu, dan terkadang mengalami kendala yang bisa mengakibatkan program database tidak berjalan dengan baik dan benar.

Selamat men-desain database (^_^)

0 comments:

Posting Komentar

Recent Comments