Merancang database mungkin terlihat sangat sederhana namun pada kenyataannya adalah suatu hal yang rumit. Beberapa kesalahan yang anda buat bisa membahayakan proyek anda, meningkatkan cost dan memakan banyak resource/space storage pada hardware.

5. Dependency pada middleware
Salah satu kesalahan paling umum yang sering ditemukan adalah menyimpan informasi dalam database yang tidak dapat gunakan jika tidak ada middleware – atau lebih buruk- front-end. Ini ibaratnya seperti cerita yang diceritakan hanya setengah atau sebagian dari cerita.

Bayangkan sebuah skenario dimana tabel history anda mengatakan seseorang menjadi “status 1” minggu lalu, dan baru kemarin orang yang sama menjadi “status 12”. “Apa maksud status 1? Apa maksud status 12? “ – DB analyst pasti akan bertanya-tanya. Dan Ia tidak akan mendapatkan petunjuk karena informasinya ada pada layer middleware.

Setiap kali anda mendefinisikan nomor status kolom, sebaiknya dirancangkan sebuah table dukungan untuk menerangkan arti statusnya. Hal ini akan membantu anda dalam melakukan analisis data.

4. Protokol penyimpanan dibuat sendiri – dan data dimasukkan ke field BLOB
Programmer tampaknya cinta field BLOB. Mereka  membuat protokol mereka sendiri dalam middleware mereka dan memasukkan XML, JSON apapun di dalamnya. Aplikasi berjalan  sangat mulus, dan semua data menjadi tidak berguna dalam setiap konteks selain aplikasi mereka sendiri.

Ann Winblad pernah berkata: Data is the new oil. Setiap desainer database harus berpikir tentang hal itu juga. Setelah anda menempatkan data dalam field BLOB dengan custom protokol , anda mengorbankan semua kemampuan database untuk mengolah data yang ada- filtering, pivoting, indexing dan sebagainya. Jadi, hindarilah hal tersebut. Kecuali anda memiliki beberapa kasus yang sangat spesifik dan anda tidak akan pernah ingin data yang ada untuk diindeks. Lebih baik anda merancangkan semua kolom yang dibutuhkan dan menyimpan data sesuai dengan kolom-kolom yang dibuat.

3. Mengabaikan Timezone
Mengelola zona waktu pada field DATE dan DATETIME dapat menjadi masalah serius dalam sistem. Sistem harus selalu menyajikan tanggal dan waktu yang tepat kepada pengguna, terutama di zona waktu mereka sendiri.

Misalnya, waktu kadaluawarsanya suatu penawaran khusus (fitur yang paling penting di setiap toko online) harus dipahami oleh semua pengguna dengan cara yang sama. Jika anda hanya mengatakan “promosi berakhir pada tanggal 24 Desember”, mereka akan menganggap promosinya berakhir pada tengah malam 24 Desember di zona waktu mereka sendiri. Jika yang Anda maksud “Malam Natal” di zona waktu anda sendiri, anda harus mengatakan “24 Desember 23,59 UTC” (atau apa pun zona waktu Anda). Pada beberapa pengguna, tanggalnya akan menjadi “24 Desember 19,59”, untuk yang lain tanggalnya akan menjadi “25 Desember 4,49”. Berhati-hatilah, para pengguna harus melihat tanggal promosi di zona waktu mereka sendiri.

Dalam system yang memiliki multi-timezone, field tipe DATE  harusnya tidak digunakan. Field Ini harus selalu menjadi tipe TIMESTAMP.

2. Kolom width yang terlalu pendek

Jika field pada aplikasi berupa plain-text  dalam GUI – nya (pengguna dapat memasukkan hanya komentar yang belum diformat) maka itu berarti field dapat menyimpan hingga 1000 karakter teks. Dan dengan begitu – tidak ada error yang terjadi.

Tetapi jika field pada aplikasi memungkinkan beberapa format, seperti bbcode atau HTML.  Maka jumlah yang tepat dari karakter yang dimasukkan oleh  pengguna tidak dapat diketahui. Jika mereka memasukkan komentar sederhana seperti:

5a

Maka hanya ada 17 karakter yang dimasukkan. Bagaimana jika pengguna menggunakan format bold seperti:

5b

Maka akan ada 24 karakter yang dimasukkan. Padahal dalam GUI, pengguna hanya melihat 17 karakter yang dimasukkan.

Jadi jika pengguna  dapat memformat komentar menggunakan beberapa jenis editor WYSIWYG, dapat berpotensi menimbulkan error. Ketika pengguna memasukkan karakter dengan format yang melebihi panjang maksimum komentar (1000 karakter dalam HTML mentah) maka jumlah karakter yang terlihat dalam GUI  bisa jadi masih jauh di bawah 1000.

Ketika menetapkan batas field teks, anda harus selalu ingat tentang pengkodean teks. Jenis varchar (100) berarti 100 karakter di PostgreSQL tapi 100 byte di Oracle!

1. Penyalahgunaan tipe data

Setiap programmer tahu integer, string, float dan lain-lain. Nah, katakanlah semua tahu sampai tentang tipe data. Namun, database biasanya menawarkan beberapa varian dari tipe data. Jadi, hal no.1 dari daftar kesalahan yang harus anda hindari, adalah penyalahgunaan tipe data.

Sebelum merancang database apapun, anda harus bertanya pada diri sendiri pilihan apa saja yang ada. Misalnya, database yang anda pakai dapat menawarkan jenis INTERGER, tapi anda sebaiknya menggunakan TINYINT untuk menyimpannya. Kolom tanggal dan waktu, floating point dan angka decimal. Beberapa database bahkan mendukung array dan data spasial! Jadi, apapun database yang dipilih, jangan salah  untuk mendefinisikan tipe data yang tepat untuk setiap kolom. Hal ini dapat menghemat banyak cost dan space pada storage anda.

Bagaimana? Ingin tips lain mengenai Database?

PT. Inovasi Informatika Indonesia (i3) membantu profesional TI Indonesia dalam mencapai potensi terbaiknya. Kami menyelenggarakan pelatihan teknologi dari beberapa principal terkemuka seperti CompTIA, ECCouncil, EMC, Oracle, RedHat, dan VMware.
Selain sebagai tempat training IT yang banyak direkomendasikan oleh praktisi, i3 juga menawarkan jasa IT Services di 4 bidang utama keahlian: Open Source, Virtualisasi, Database, dan IT Security. Semua training dan services ditangani oleh instructor dan konsultan yang berpengalaman dan memiliki sertifikasi internasional.
Informasi lebih lanjut tentang lengkap jadwal pelatihan dan layanan IT silahkan hubungi kami melalui info@i-3.co.id