Konsep Database Design Dalam Lingkup Ruang Kerja Yang Nyata | Iksan Komputer

Friday, July 5, 2019

Konsep Database Design Dalam Lingkup Ruang Kerja Yang Nyata

Saat saya masih sangat aktif bekerja sebagai DBA di sebuah Internet company, saya berbincang dengan seorang rekan kerja saya seorang programer sarjana elektro yang sedang menempuh pendidikan S2 Informatika di sebuah PT (Perguruan Tinggi) terkenal.

Sebut saja namanya Dino (DI). Dengan mengacu diri saya sebagai BR, petikannya kira-kira seperti ini. BR: Sedang ngapain DI? DI: Sedang ngerjain tugas. BR: Tugas apa? Tugas pelajaran Database. BR: Disuruh ngapain? DI: Merancang database, pakal bentuk normal. BR (dengan tersenyum pahit): Ah, nggak ada gunanya, toh enggak akan dipakai.

Konsep Database Design


Teman saya juga tersenyum pahit. Saya tahu, dia cuma ingin lulus.

Mungkin Anda merasa saya "nyinyir" tentang database design. Tetapi, memang there is no such thing as database design. Maksudnya, proses normalisasi yang diajarkan di buku-buku teks dan bahkan buku-buku dari produsen DBMS (Microsoft, Oracle, IBM, Sybase, dan lain-lain) sama sekali tidak bisa diotomasi.

Semua alumni informatika pernah mendapat kuliah database. Di beberapa universitas, kuliah database bisa diajarkan lebih dari satu kali. Apa yang diingat alumni tentang kuliah tersebut? Hampir tidak ada.

Mengapa tidak? Karena bagian terpenting dari database design: normalisasi, tidak dapat dipraktikkan.

Pembaca yang praktisi mungkin tersenyum mendengar kekonyolan universitas. Tapi, praktisi pun melakukan kekonyolan yang mirip. Materi training semua produsen DBMS (termasuk yang open souxe) akan singgung normalisasi. Tapi, mereka semua diam tentang fasilitas otomasi proses normalisasi. Tak satupun kelompok pemakai pernah komplain berat bahwa semua produsen bicara tentang normalisasi, ta’pi tak satupun memfasilitasinya. Personil-personil yang sangat dihormati pun tidak pernah komplain.

Bila saya sebagai owner produsen DBMS dan tahu tentang hal di atas, saya tertawa. Betapa mudahnya mengecoh banyak orang.

Ada pepatah "the devil is in the detail". Pepatah ini memiliki banyak makna; salah satunya: bagi mereka yang tidak menyimak rincian, "setan" akan menipu mereka. Ya, kita tertipu, perhatian kita gampang dibelokkan ke pernak-pernik key, sintaks, dan lain-lain sehingga kita lupa betapa produsen (tidak hanya akademisi) juga cuma berteori tentang normalisasi. Ya, praktisi juga bisa tidak membumi.

Pembaca, saya tak ingin cuma bisa nyinyir. Apa yang terutama dalam database design? Memilah kolom-kolom agar tabel-tabel berada dalam bentuk normal 3, yang berkonsekuensi pada optimasi kendali data dan redundansi data. Misal, kita memiliki 100 item (kolom) data. Pertanyaannya: apa dasar memilah kolom-kolom tersebut? Kalau kita pilah 100 kolom tersebut atas 2 tabel dengan jumlah kolom 46 dan 54, apa dasarnya? Kalau kita pilah atas 3 tabel dengan jumlah kolom 21, 55, dan 24, apa dasarnya? Pemilihan kolom-kolom dengan dasar ilmiah yang kuat (disebut normalisasi) itulah inti, mandatory part of database design. Database design tidak ada kalau proses normalisasi absen.

Bagaimana dalam praktik? Praktisi memang memilah tabel-tabel. Apakah mereka memakai dasar Ilmiah untuk itu? Tidak, atas dasar feeling aja. Kalau ada orang-orang yang berani menyatakan bahwa tabel mereka dalam bentuk normal 3, katakan begini: buktikan klaim Anda dengan Axioms Armstrong. Yakinlah mitra bicara Anda hampir pasti tak ingat Axloma Armstrong. Seorang mitra bicara saya pernah mengklaim demikian, dan saya minta dia buktikan. Saat ia bingung (sering juga menyatakan "Ya pokoknya begitu”), saya bilang "Tidak bisa main "pokoknya". Kalau Anda tidak paham cara pembuktiannya, Anda asai klaim saja tabelnya dalam bentuk normal 3."

Apa lagi yang terjadi dalam praktik? Kalau ada penambahan kebutuhan Item data, programer biasanya asal tambah kolom dan tabel. Saya tahu ada tabel-tabel yang kolomnya > 50, bahkan mencapai ratusan. Pedulikah pemakai? Tidak. Pedulikah IT manager, di pihak konsultan maupun klien? Tidak. Mereka bahkan tidak tahu.

Kalau tidak ada yang paham masalahnya terlebih-lebih, tak peduli mungkin memang sebaiknya hapus saja materi database design. Dan kalau Anda merasa membeli produk ratusan juta akan membantu Anda merancang database dalam sense di atas, Anda keliru. Sekalipun Anda membeli DBMS seharga miliaran rupiah, produk tersebut tidak akan mengotomasi proses normalisasi. There's no such thing as database design.

Konsep Database Design Dalam Lingkup Ruang Kerja Yang Nyata Rating: 4.5 Diposkan Oleh: rosari J

0 comments:

Post a Comment