Orphan Data dalam Basis Data

Jika kita bicara basis data secara mendalam, kita tidak bisa lepas dari pembicaraan tentang integritas referensial (referential integrity) yang “mengikat” data-data antartabel. Integritas referensial menjamin data-data yang di-refer (dirujuk) oleh data dari tabel lain tetap eksis, atau jika berubah (delete atau update) maka data yang me-refer mampu menyesuaikan.

Nah, apa yang terjadi jika basis data dengan data yang saling merujuk tersebut tidak menggunakan integritas referensial? Semisal kita memiliki tabel barang (tbarang), tabel penjualan (tpenjualan), dan tabel penjualan detail (tpenjualan_detail)
tbarang:
kd_barang *
nama_barang
merek

tpenjualan:
no_nota *
tgl_nota

tpenjualan_detail
no_nota *
kd_barang *
qty

Ket : *) primary key

Dari tabel dan entitasnya di atas, perhatikan tabel tpenjualan_detail yang merujuk data ke tabel tbarang melalui field kd_barang. Kedua tabel ini akan terhubung dengan relasi tbarang one-to-many tpenjualan_detail.
Jika tanpa integritas referensial, maka jika sebuah record dari tbarang yang menjadi rujukan dalam tpenjualan_detail dihapus, maka record dalam tpenjualan_detail tersebut akan menjadi orphan data, artinya data yang rujukannya sudah tidak eksis lagi. Dan dalam sistem basis data, data seperti ini sangat dihindari karena dampaknya akan sangat merugikan atau bahkan datanya tidak bisa digunakan lagi.

Barangkali ada yang mempunyai ide untuk menangkal orphan data ini di level aplikasi. Bisa, tetapi terbatas pada struktur basis data yang kompleks. Bayangkan bila tbarang di atas dirujuk oleh banyak sekali tabel, maka jika akan menghapus record harus melakukan pengecekan satu persatu. Berbeda kasusnya bila kita menggunakan fasilitas dalam integritas referensial yang mampu secara otomatis menghasilkan error ketika record yang menjadi rujukan berusaha dihapus.

Pembahasan singkat di atas mungkin bisa menjadi referensi bagus untuk mempertimbangkan penggunaan DBMS yang sudah menggunakan integritas referensial secara intensif. Contoh di antaranya adalah Microsoft Access dan Firebird.

Be First to Comment

Leave a Reply

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

Silakan selesaikan soal berikut * Time limit is exhausted. Please reload the CAPTCHA.

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