Bagikan melalui


Panduan hubungan satu ke satu

Artikel ini menargetkan Anda sebagai pemodel data yang bekerja dengan Power BI Desktop. Artikel ini memberi Anda panduan tentang bekerja dengan hubungan model satu-ke-satu. Hubungan satu-ke-satu dapat dibuat saat kedua tabel masing-masing berisi kolom nilai umum dan unik.

Catatan

Pengantar relasi model tidak tercakup dalam artikel ini. Jika Anda tidak sepenuhnya terbiasa dengan hubungan, propertinya, atau cara mengonfigurasinya, kami sarankan Anda terlebih dahulu membaca artikel Relasi model di Power BI Desktop.

Penting juga jika Anda memiliki pemahaman tentang desain skema bintang. Untuk informasi selengkapnya, lihat Memahami skema bintang dan pentingnya Power BI.

Ada dua skenario yang melibatkan hubungan satu-ke-satu:

  • Degenerasi dimensi: Anda dapat memperoleh dimensi degenerasi dari tabel fakta .

  • Data baris mencakup seluruh tabel: Satu entitas bisnis atau subjek dimuat sebagai dua tabel model (atau lebih), mungkin karena datanya bersumber dari penyimpanan data yang berbeda. Skenario ini dapat umum untuk tabel dimensi . Misalnya, detail produk master disimpan dalam sistem penjualan operasional, dan detail produk tambahan disimpan di sumber yang berbeda.

    Namun, tidak umum untuk menghubungkan dua tabel fakta dengan hubungan satu-ke-satu. Itu karena kedua tabel fakta harus memiliki dimensi dan granularitas yang sama. Selain itu, setiap tabel fakta akan memerlukan kolom unik untuk memungkinkan hubungan model dibuat.

Dimensi degenerasi

Saat kolom dari tabel fakta digunakan untuk pemfilteran atau pengelompokan, Anda dapat mempertimbangkan untuk membuatnya tersedia dalam tabel terpisah. Dengan cara ini, Anda memisahkan kolom yang digunakan untuk memfilter atau mengelompokkan dari kolom tersebut yang digunakan untuk meringkas baris fakta. Pemisahan ini dapat:

  • Kurangi ruang penyimpanan.
  • Menyederhanakan perhitungan model.
  • Membantu meningkatkan performa kueri.
  • Memberikan pengalaman panel Data yang lebih intuitif kepada penulis laporan Anda.

Pertimbangkan tabel sumber bernama Sales yang menyimpan detail referensi baris pesanan penjualan dalam dua kolom.

Diagram memperlihatkan baris tabel untuk tabel dimensi Penjualan yang degeneratif. Desain dijelaskan dalam paragraf berikut.

Kolom OrderNumber menyimpan nomor pesanan, dan kolom OrderLineNumber menyimpan rentetan baris dalam pesanan.

Dalam gambar berikut, perhatikan bahwa kolom nomor pesanan dan nomor baris pesanan belum dimuat ke tabel Sales. Sebagai gantinya, nilainya digunakan untuk membuat kolom kunci pengganti bernama . (Nilai kunci dihitung dengan mengalikan nomor pesanan dengan 1000, lalu menambahkan nomor baris pesanan.)

diagram memperlihatkan dua tabel: Penjualan dan Pesanan Penjualan. Relasi satu-ke-satu menghubungkan kolom ID Nomor Baris Pesanan.

Tabel dimensi Sales Order memberikan pengalaman yang kaya untuk penulis laporan dengan dua kolom: Sales Order dan Sales Order Line. Kolom tertentu ini mendukung desain laporan yang perlu memfilter, mengelompokkan, atau menelusuri paling detail pesanan dan baris pesanan.

Karena tabel Sales Order berasal dari data penjualan, harus ada jumlah baris yang sama persis di setiap tabel. Selanjutnya, harus ada nilai yang cocok di setiap kolom OrderLineNumberID.

Data baris mencakup seluruh tabel

Pertimbangkan contoh yang melibatkan dua tabel dimensi terkait satu-ke-satu: Product dan Product Category. Setiap tabel mewakili data yang diimpor dan memiliki kolom SKU (unit penyimpanan stok) yang berisi nilai unik.

Berikut adalah diagram model parsial dari dua tabel.

Diagram memperlihatkan model yang berisi dua tabel di mana data baris tersebar di seluruh tabel. Desain dijelaskan dalam paragraf berikut.

Tabel pertama diberi nama Product, dan berisi tiga kolom: Color, Product, dan SKU. Tabel kedua diberi nama Product Category, dan berisi dua kolom: Category dan SKU. Hubungan satu-ke-satu menghubungkan kedua kolom SKU. Hubungan memfilter di kedua arah, yang selalu terjadi untuk hubungan satu-ke-satu.

Untuk membantu menjelaskan cara kerja penyebaran filter hubungan, gambar berikut mengungkapkan beberapa baris tabel. Semua contoh dalam artikel ini didasarkan pada data ini.

Diagram memperlihatkan tabel Kategori Produk dan Produk dan beberapa baris data. Detail baris dijelaskan dalam paragraf berikut.

Detail baris untuk dua tabel tersebut dijelaskan dalam daftar berikut ini:

  • Tabel Product memiliki tiga baris:
    • SKU CL-01, ProductT-shirt, ColorHijau
    • SKU CL-02, ProductJeans, ColorBlue
    • SKU AC-01, ProductHat, ColorBlue
  • Tabel Product Category memiliki dua baris:
    • SKU CL-01, Pakaian Category
    • SKU AC-01, Aksesori Category

Perhatikan bahwa tabel Product Category tidak menyertakan baris untuk produk SKU CL-02. Kita akan membahas konsekuensi dari baris yang hilang ini nanti di artikel ini.

Di panel Data , penulis laporan menemukan bidang terkait produk dalam dua tabel: dan . Mari kita lihat apa yang terjadi saat bidang dari kedua tabel ditambahkan ke visual tabel. Dalam contoh ini, kolom SKU bersumber dari tabel Product.

Diagram memperlihatkan panel Data dengan dua tabel, dan visual tabel yang menyertakan empat kolom. Nilai Kategori untuk produk SKU CL-02 adalah BLANK.

Perhatikan bahwa nilai Category untuk SKU produk CL-02 adalah BLANK. Itu karena tidak ada baris yang sesuai dalam tabel Product Category untuk produk ini.

Rekomendasi

Jika memungkinkan, sebaiknya hindari membuat hubungan model satu-ke-satu saat data baris mencakup seluruh tabel model. Itu karena desain ini dapat:

  • Berkontribusi pada kekacauan panel Data , mencantumkan lebih banyak tabel daripada yang diperlukan.
  • Menyulitkan penulis laporan untuk menemukan bidang terkait, karena didistribusikan di beberapa tabel.
  • Batasi kemampuan untuk membuat hierarki, karena tingkatnya harus didasarkan pada kolom dari tabel yang sama.
  • Menghasilkan hasil yang tidak terduga ketika tidak ada kecocokan baris yang lengkap di antara tabel.

Rekomendasi spesifik berbeda tergantung pada apakah hubungan satu-ke-satu adalah grup sumber intra atau grup lintas sumber. Untuk informasi selengkapnya tentang evaluasi hubungan, lihat hubungan Model di Power BI Desktop.

Hubungan satu-ke-satu grup sumber intra

Saat hubungan grup sumber intra satu-ke-satu ada di antara tabel, kami sarankan untuk mengonsolidasikan data ke dalam satu tabel model. Anda bisa melakukannya dengan menggabungkan kueri Power Query.

Langkah-langkah berikut menyajikan metodologi untuk mengonsolidasikan dan memodelkan data terkait satu ke satu.

  1. Gabungkan kueri: Saat menggabungkan dua kueri, berikan pertimbangan untuk kelengkapan data di setiap kueri. Jika satu kueri berisi sekumpulan baris lengkap (seperti daftar master), gabungkan kueri lain dengannya. Atur transformasi penggabungan untuk menggunakan gabungan luar kiri , yang merupakan jenis gabungan default. Jenis gabungan ini memastikan Anda akan menyimpan semua baris kueri pertama, dan melengkapinya dengan baris yang cocok dari kueri kedua. Perluas semua kolom kueri kedua yang diperlukan ke dalam kueri pertama.

    Diagram memperlihatkan data yang dikonsolidasikan ke satu tabel dimensi Produk.

  2. Nonaktifkan beban kueri: Pastikan untuk menonaktifkan beban kueri kedua. Dengan cara ini, beban kueri tersebut tidak akan memuat hasilnya sebagai tabel model. Konfigurasi ini mengurangi ukuran penyimpanan model data, dan membantu menghapus kekacauan panel Data .

    Dalam contoh kami, penulis laporan sekarang menemukan satu tabel bernama di panel Data . Tabel ini berisi semua bidang terkait produk.

  3. Ganti nilai yang hilang: Jika kueri kedua memiliki baris yang tidak cocok, nilai null muncul di kolom yang diperkenalkan darinya. Jika sesuai, pertimbangkan untuk mengganti nilai null dengan nilai token. Mengganti nilai yang hilang sangat penting ketika penulis laporan memfilter atau mengelompokkan menurut nilai kolom, karena BLANK dapat muncul dalam visual laporan.

    Dalam gambar berikut, perhatikan bahwa kategori untuk SKU produk CL-02 sekarang tertera [Tidak Ditentukan]. Dalam kueri, kategori null diganti dengan nilai teks token ini.

    Diagram memperlihatkan panel Data untuk tabel Produk. Ini juga memperlihatkan visual tabel dengan empat kolom. Nilai Kategori untuk produk SKU CL-02 sekarang diberi label Tidak Ditentukan.

  4. Membuat hierarki: Jika ada hubungan antara kolom tabel yang sekarang dikonsolidasikan, pertimbangkan untuk membuat hierarki. Dengan cara ini, penulis laporan akan dengan cepat mengidentifikasi peluang untuk latihan visual laporan.

    Dalam contoh kami, penulis laporan sekarang dapat menggunakan hierarki yang memiliki dua tingkat: Category dan Product.

    Diagram memperlihatkan panel Data. Tabel Produk menyertakan hierarki Produk.

Jika Anda menyukai bagaimana tabel terpisah membantu menata bidang Anda, kami masih menyarankan untuk mengonsolidasikan ke dalam satu tabel. Anda masih bisa menata bidang Anda, tetapi dengan menggunakan folder tampilan sebagai gantinya.

Dalam contoh kami, penulis laporan dapat menemukan bidang Category dalam folder tampilan Marketing.

Diagram memperlihatkan panel Data tempat bidang Kategori berada dalam folder tampilan bernama Pemasaran.

Jika Anda masih memutuskan untuk menentukan hubungan grup sumber intra satu-ke-satu dalam model Anda, jika memungkinkan, pastikan ada baris yang cocok dalam tabel terkait. Sebagai hubungan grup sumber intra satu-ke-satu dievaluasi sebagai hubungan reguler, masalah integritas data dapat muncul dalam visual laporan Anda sebagai BLANK. (Anda bisa melihat contoh pengelompokan BLANK dalam visual tabel pertama yang disajikan dalam artikel ini.)

Hubungan satu-ke-satu grup sumber silang

Saat terdapat hubungan satu-ke-satu antara grup sumber persilangan di antara tabel, tidak ada desain model yang dapat digunakan sebagai alternatif—kecuali Anda telah mengonsolidasikan data tersebut di sumber data Anda sebelumnya. Power BI akan mengevaluasi hubungan model satu-ke-satu sebagai hubungan terbatas. Oleh karena itu, berhati-hatilah untuk memastikan ada baris yang cocok dalam tabel terkait, karena baris yang tidak cocok dihilangkan dari hasil kueri.

Diagram memperlihatkan hubungan satu-ke-satu dari grup sumber silang, yang merupakan hubungan terbatas.

Mari kita lihat apa yang terjadi ketika bidang dari kedua tabel ditambahkan ke visual tabel, dan hubungan terbatas ada di antara tabel.

Diagram memperlihatkan dua visual tabel, yang dijelaskan dalam paragraf berikut.

Visual tabel pertama, yang menggunakan hubungan grup lintas sumber, hanya menampilkan dua baris. SKU produk CL-02 hilang karena tidak ada baris yang cocok dalam tabel Product Category. Visual tabel kedua, berdasarkan satu tabel terkonsolidasi dalam model, menampilkan tiga baris.

Untuk informasi selengkapnya tentang dokumen resmi ini, lihat sumber daya berikut: