Lompat ke konten utama

Kompetisi Ajak Teman: hadiah total Rp1.000.000 tunai untuk 3 pengajak terbanyak. Berakhir 29 November 2026. Ikut kompetisi

←

Kualitas Data dan Validasi Pipeline

Pelajaran 5 dari 14

Keunikan dan integritas referensial

Keunikan: kunci ganda, baris kembar, dan konflik

Setelah pelajaran ini kamu bisa menemukan nilai kunci ganda dan memilahnya menjadi baris kembar persis atau konflik isi.

±13 menitDiperiksa 7 Okt 2026

Materi

Keunikan dalam kerangka Pemerintah Inggris adalah sejauh mana record tidak terduplikasi: satu record untuk setiap entitas yang diwakilinya. Contohnya sekolah dengan 500 siswa yang menyimpan 501 record karena Fred Smith dan Freddy Smith tercatat terpisah, sehingga keunikannya 500/501 atau 99,8%.

Kelas Desain Basis Data sudah membahas cara mencari nilai kunci ganda dengan GROUP BY dan HAVING COUNT(*) > 1. Dalam audit kualitas, temuan itu perlu dipilah lagi. Kunci ganda yang barisnya kembar persis bisa lahir dari pemuatan yang terulang; salinannya bisa dibuang dengan aturan tertulis. Kunci ganda yang isinya berbeda adalah konflik: dua versi fakta untuk satu entitas, dan tidak ada kueri yang tahu versi mana yang benar. Konflik dikembalikan ke pemilik data.

Cara memilahnya: hitung berapa versi isi yang berbeda di dalam setiap kunci ganda, yaitu jumlah baris dari SELECT DISTINCT kolom-kolom isinya. Satu versi berarti kembar, lebih dari satu berarti konflik. Kunci kosong tidak dihitung di sini karena NULL adalah urusan pemeriksaan kelengkapan. Dokumentasi SQLite juga mencatat bahwa di kolom UNIQUE setiap NULL dianggap berbeda dari NULL lain, sehingga batasan UNIQUE tidak pernah menolak NULL ganda.

SELECT isbn, COUNT(*) AS baris
FROM buku
WHERE isbn IS NOT NULL
GROUP BY isbn
HAVING COUNT(*) > 1;

-- versi isi untuk satu isbn
SELECT COUNT(*) FROM (
  SELECT DISTINCT judul, penerbit, tahun FROM buku WHERE isbn = '978-602-0000-00-1'
);

Latihan

0/3 lulus

Jawaban diperiksa di server. Lulus berarti kamu memahami contohnya, bukan penilaian seluruh pekerjaanmu.

Latihan 3 dari 3

Kolom email di tabel anggota diberi batasan UNIQUE di SQLite. Tiga anggota belum punya email dan disimpan dengan email NULL. Apa yang terjadi?

Pilih satu jawaban

Catatanmu

Memuat catatan…

tersimpan otomatis, ikut tercetak · 0/4.000

Luluskan semua latihan dulu untuk menandai pelajaran ini selesai.

Lanjutkan ke