Don’t update or delete, just insert!

Pertama saya mendengar “don’t update or delete, just insert” dalam kaitannya dengan database, saya seperti tersentak. Ya, kenapa itu tidak terpikir dari dulu? Kenapa saya tidak menjaga data-data yang sudah ada? Saya memang masih awam mengenai penanganan data.

Seringkali saya membuat sebuah sistem yang memungkinkan user bisa mengedit dan mendelete posting/entry dalam database. Dan saya pun biasanya langsung mengupdate atau mendelete saja data tersebut dari database. Padahal seharusnya dalam ilmu database, saya tidak melakukan hal itu, tapi hanya menandai bahwa entry ini telah diedit/update atau dihapus tanpa harus melakukannya dalam arti sebenarnya. Jadi di dalam database ada data yang paling baru, maupun data lama. Hanya saja yang ditampilkan tetap yang terbaru.

Kenapa harus begitu? Dengan hanya menandai data saja, maka kita bisa melakukan penelusuran jejak apabila di kemudian hari ada suatu kejadian yang tidak diinginkan. Bisa juga untuk melakukan penelitian atau analisa mengenai karakteristik user. Dan berbagai macam tujuan lainnya. Toh sekarang harga tempat penyimpanan(harddisk) juga murah.

Bagaimana menurut teman-teman?

PS: Hal ini saya dapatkan dari ‘kuliah singkat’ dari Bapak Bambang Nurcahyo Prastowo.

10 thoughts on “Don’t update or delete, just insert!

  1. ocha

    betul, jaman sekarang memang media penyimpanan data sudah jauh lebih murah..biaya sewa hosting untuk menyimpan data yang bisa diakses oleh banyak orang juga sudah murah..kenapa masih harus memikirkan pembengkakan database? ada begitu banyak cara lain untuk me-manage db tanpa harus melakukan delete atau update..

    btw, kenapa ngga diperjelas aja disini bagaimana harus menangani permasalahan db seperti itu?? kan jadi satu tutorial, tuh… πŸ˜†

    Reply
  2. ganda

    Dulu udah pernah baca ini, dan mangut-mangut. Saya pikir, kenapa harus menghapus data? Misalkan data tentang buku perpustakaan, jika bukunya hilang, kenapa harus dihapus? Mungkin ada yang membantah dengan mengatakan agar tidak ada pembengkakan data di harddisk. Well, kan bisa diatasi dengan metode pengarsipan? Seperti datawarehouse, jadi data-data yang lama bisa diletakkan dalam server yang berbeda, dan sekiranya dibutuhkan untuk di restore, bisa dilakukan lagi sinkronisasi dari database arsip ke data yang utama, yang penting data tetap terjaga.

    Contoh lagi, misalnya secara tidak sengaja pengguna melakukan penghapusan suatu records, bukankah lebih bijaksana memberikan semacam flag? Jadi misal flag adalah N, berarti records di hapus. akan lebih bijaksana lagi dengan sebuah record baru dengan timestamp sebagai waktu pemasukannya, plus siapa orang yang melakukan aksi tersebut. dengan ini bisa juga kita ketahui, siapa2 saja karyawan yang suka ngelamun saat kerja, sampai sebuah records database terhapus. human error adalah biasa, tapi kalau error yang sama terjadi berkali2 oleh orang yang sama, sepertinya kapasitas karyawan tersebut perlu di pertanyakan. hahahaha.. *ngomong kayak bisnis man*

    Tapi di sisi performansi, proses insert data ini pasti lebih memakan waktu dari sekedar update. karena database akan melakukan restrukturisasi index pada tabel tersebut dan tabel yang berkaitan dengannya.

    Jangan hapus, data-data lama mungkin akan di butuhkan di kemudian hari. Apalagi sesuatu yang fital, agar bisa di restore.

    Reply
  3. ganda

    Deletes can be very expensive for heavily linked tables, and the locks can cause other queries to fail while the delete is happening.

    Reply
  4. cefer

    yupz bener banget ndan, data atau info saat ini sangat berharga sekali, sayang sekali jika data yang sudah kita peroleh selama ini hanya “menghilang” begitu saja..

    dan saya yakin bawa Data itu akan menjadi sangat penting / berguna di kemudian hari..

    Reply
  5. Chipz

    Wah! setuju banget ndan, saya juga baru terbuka matanya setelah membahas hal ini dengan njenengan beberapa waktu yang lalu. Saya pikir benar juga, database memang tidak seharusnya dihapus atau diupdate..

    Reply
  6. Angga Lingga

    Yups sangat setuju banget. Mengapa jangan dihapus dan diupdate sangat erat kaitannya dengan Data Warehouse nantinya. Jadi bisa ada semacam lognya πŸ˜€

    Reply
  7. Planet Orange

    Balik ke konsep awal DB bro…. namanya juga database,jadi tidak ada record yang boleh dihapus, kl disembunyikan iya…..

    Saya telah menganut faham ini lebih dari 3 tahun πŸ™‚

    Reply

Leave a Reply to ganda Cancel reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.