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 (^_^)