Lompat ke konten utama

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

←

SQL untuk Gudang Data

Pelajaran 1 dari 16

Fakta dan dimensi

Tabel fakta dan grain

Setelah pelajaran ini kamu bisa menyatakan grain sebuah tabel fakta, membuktikannya dengan kueri, dan mengenali dimensi degenerasi.

±14 menitDiperiksa 3 Okt 2026

Materi

Basis data operasional dirancang untuk mencatat transaksi satu per satu, dan kelas Desain Basis Data membahas cara menormalkannya. Gudang data punya tugas lain: menjawab pertanyaan analisis seperti berapa penjualan per bulan per wilayah. Microsoft Learn menjelaskan bahwa skema bintang, cara penyusunan yang matang dan dipakai luas di gudang data relasional, mewajibkan setiap tabel dikelompokkan sebagai tabel fakta atau tabel dimensi.

Tabel fakta menyimpan peristiwa atau pengukuran: pesanan, saldo stok, kurs, suhu. Isinya kolom kunci dimensi yang merujuk tabel dimensi dan kolom ukuran berupa angka yang akan diringkas. Kolom kunci menentukan dimensionalitas, sedangkan nilai kuncinya menentukan grain, yaitu tingkat paling rinci yang diwakili satu baris. Kimball dan Ross menempatkan penetapan grain sebagai langkah kedua dari empat langkah desain, sesudah memilih proses bisnis dan sebelum memilih dimensi dan fakta.

Tabel fakta bengkelGrain satu barisKunci dimensiUkuran
fakta_servissatu jenis pekerjaan di satu nota servistanggal_key, mekanik_key, layanan_keyjam_kerja, biaya
fakta_target_bengkelsatu cabang dalam satu bulantanggal_key (tanggal 1), cabang_keytarget_biaya

Fakta juga bisa memuat atribut yang bukan kunci dan bukan ukuran, misalnya nomor nota. Microsoft menyebut kolom seperti itu dimensi degenerasi: dipakai untuk menyaring atau mengelompokkan, tetapi tidak layak dibuatkan tabel sendiri karena hanya satu kolom. Tabel fakta umumnya tanpa kunci primer; kunci yang tersirat adalah gabungan kunci dimensi dan atributnya. Grain diuji dengan membandingkan banyak baris dengan banyak kombinasi kolom yang seharusnya unik.

-- Grain fakta_servis: satu baris per (no_nota, pekerjaan_ke)
SELECT COUNT(*) AS baris,
       (SELECT COUNT(*) FROM (SELECT DISTINCT no_nota, pekerjaan_ke FROM fakta_servis)) AS kombinasi
FROM fakta_servis;

Latihan

0/3 lulus

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

Latihan 2 dari 3

Tabel fakta_target menyimpan tanggal_key yang selalu tanggal 1 setiap bulan, cabang_key, dan target_nilai. Apa grain tabel itu?

Pilih satu jawaban

Catatanmu

Memuat catatan…

tersimpan otomatis, ikut tercetak · 0/4.000

Luluskan semua latihan dulu untuk menandai pelajaran ini selesai.

Lanjutkan ke

Tampilkan 1 lagi