Bagikan melalui


Tentukan Hubungan Banyak-ke-Banyak dan Properti Hubungan Banyak-ke-Banyak

Berlaku untuk: SQL Server Analysis Services Azure Analysis Services Fabric/Power BI Premium

Topik ini menjelaskan dimensi banyak ke banyak di Analysis Services, termasuk kapan harus menggunakannya dan cara membuatnya.

Pengantar

Analysis Services mendukung dimensi banyak ke banyak, memungkinkan analitik yang lebih kompleks daripada yang dapat dijelaskan dalam skema star klasik. Dalam skema star klasik, semua dimensi memiliki hubungan satu-ke-banyak dengan tabel fakta. Setiap fakta bergabung ke satu anggota dimensi; satu anggota dimensi dikaitkan dengan banyak fakta.

Banyak-ke-banyak menghapus pembatasan pemodelan ini dengan mengaktifkan fakta (seperti saldo akun) untuk dikaitkan dengan beberapa anggota dengan dimensi yang sama (saldo akun bersama dapat dikaitkan dengan dua atau lebih pemilik akun bersama).

Secara konseptual, hubungan dimensi banyak ke banyak dalam Analysis Services setara dengan hubungan banyak ke banyak dalam model relasional, mendukung jenis skenario yang sama. Contoh umum banyak-ke-banyak meliputi:

  • Siswa terdaftar di banyak kursus; setiap kursus memiliki banyak siswa.

  • Dokter memiliki banyak pasien; pasien memiliki banyak dokter.

  • Nasabah memiliki banyak rekening bank; rekening bank mungkin milik lebih dari satu pelanggan.

  • Di Adventure Works, banyak pelanggan memiliki banyak alasan untuk memesan produk, dan alasan penjualan dapat dikaitkan dengan banyak pesanan.

Secara analitik, masalah yang dipecahkan hubungan banyak ke banyak adalah representasi akurat dari hitungan atau jumlah yang relatif terhadap hubungan dimensi (biasanya dengan menghilangkan hitungan ganda saat melakukan perhitungan untuk anggota dimensi tertentu). Contoh diperlukan untuk mengklarifikasi titik ini. Pertimbangkan produk atau layanan yang termasuk dalam lebih dari satu kategori. Jika Anda menghitung jumlah layanan menurut kategori, Anda ingin layanan milik kedua kategori disertakan dalam masing-masing layanan. Pada saat yang sama, Anda tidak ingin overstate jumlah layanan yang Anda berikan. Dengan menentukan hubungan dimensi banyak-ke-banyak, Anda lebih cenderung mendapatkan hasil yang benar kembali saat mengkueri berdasarkan kategori atau berdasarkan layanan. Namun, pengujian menyeluruh selalu diperlukan untuk memastikan bahwa ini masalahnya.

Secara struktural, menciptakan hubungan dimensi banyak ke banyak mirip dengan bagaimana Anda dapat membuat banyak-ke-banyak dalam model data relasional. Sedangkan model relasional menggunakan tabel persimpangan untuk menyimpan asosiasi baris, model multidimensi menggunakan grup pengukuran menengah. Grup pengukuran menengah adalah istilah yang kami gunakan untuk merujuk ke tabel yang memetakan anggota dari dimensi yang berbeda.

Secara visual, hubungan dimensi banyak ke banyak tidak ditunjukkan dalam diagram kubus. Sebagai gantinya, gunakan tab Penggunaan Dimensi untuk mengidentifikasi hubungan banyak ke banyak dalam model dengan cepat. Hubungan banyak ke banyak ditunjukkan oleh ikon berikut.

Ikon banyak ke banyak dalam penggunaan dimensi

Klik tombol untuk membuka kotak dialog Tetapkan Hubungan untuk memverifikasi jenis hubungan banyak ke banyak, dan untuk melihat grup pengukuran menengah mana yang digunakan dalam hubungan.

Tombol Tentukan Hubungan dalam penggunaan dimensi

Di bagian berikutnya, Anda akan mempelajari cara menyiapkan dimensi banyak ke banyak dan menguji perilaku model. Jika Anda lebih suka meninjau informasi tambahan atau mencoba tutorial terlebih dahulu, lihat Pelajari Selengkapnya di akhir artikel ini.

Membuat dimensi banyak ke banyak

Hubungan banyak ke banyak yang sederhana mencakup dua dimensi yang memiliki kardinalitas banyak ke banyak, kelompok ukuran menengah untuk menyimpan asosiasi anggota, dan kelompok pengukuran fakta yang berisi data terukur, seperti jumlah total penjualan atau saldo rekening bank.

Dimensi dalam hubungan banyak ke banyak mungkin memiliki tabel koresponden di DSV, di mana setiap dimensi dalam model didasarkan pada tabel yang ada di sumber data. Sebaliknya, dimensi dalam model Anda mungkin berasal dari tabel fisik yang lebih sedikit atau berbeda di DSV. Menggunakan Sales Reasons dan Sales Orders sebagai kasus, kubus sampel Adventure Works menunjukkan hubungan banyak ke banyak menggunakan dimensi yang ada sebagai struktur data khusus model, tanpa rekan fisik di DSV. Dimensi Pesanan Penjualan didasarkan pada tabel fakta, bukan tabel dimensi, di sumber data yang mendasar.

Prosedur berikutnya mengasumsikan bahwa Anda sudah tahu entitas mana yang berpartisipasi dalam hubungan banyak ke banyak. Lihat Pelajari Lebih Lanjut untuk studi lebih lanjut.

Untuk mengilustrasikan langkah-langkah yang digunakan untuk membuat hubungan banyak ke banyak, prosedur ini membuat kembali salah satu hubungan banyak ke banyak dalam kubus sampel Adventure Works. Jika Anda memiliki data sumber (yaitu, gudang data sampel Adventure Works) yang diinstal pada instans mesin database relasional, Anda dapat mengikuti langkah-langkah ini.

Langkah 1: Memverifikasi hubungan DSV

  1. Dalam SQL Server Data Tools, dalam proyek multidimensi, buat sumber data ke gudang data relasional Adventure Works DW 2012, yang dihosting pada instans mesin database SQL Server.

  2. Buat Tampilan Sumber Data menggunakan tabel yang sudah ada berikut ini:

    • FactInternetSales

    • FactInternetSalesReason

    • DimSalesReason

  3. Verifikasi bahwa semua tabel yang Anda rencanakan untuk digunakan dalam hubungan banyak ke banyak terkait dalam DSV melalui hubungan kunci utama. Ini adalah persyaratan untuk membuat tautan ke grup pengukuran perantara dalam langkah berikutnya.

    Catatan

    Jika sumber data yang mendasar tidak menyediakan hubungan kunci primer dan asing, Anda dapat membuat hubungan secara manual di DSV. Untuk informasi selengkapnya, lihat Menentukan Hubungan Logis dalam Tampilan Sumber Data (Analysis Services).

    Contoh berikut mengonfirmasi bahwa tabel yang digunakan dalam prosedur ini ditautkan menggunakan kunci primer.

    DSV memperlihatkan DSV tabel terkait

Langkah 2: Membuat dimensi dan mengukur grup

  1. Di SQL Server Data Tools, dalam proyek multidimensi, klik kanan Dimensi dan pilih Dimensi Baru.

  2. Buat dimensi baru berdasarkan tabel yang sudah ada, DimSalesReason. Terima semua nilai default saat menentukan sumber.

    Untuk atribut, pilih semua.

    Daftar atribut dalam daftar Atribut dimensi baru

  3. Buat dimensi kedua berdasarkan tabel yang ada, Fact Internet Sales. Meskipun ini adalah tabel fakta, ini berisi informasi Pesanan Penjualan. Kami akan menggunakannya untuk membangun dimensi Pesanan Penjualan.

  4. Di Tentukan Informasi Sumber, Anda akan melihat peringatan yang menunjukkan kolom Nama harus ditentukan. Pilih SalesOrderNumber sebagai Nama.

    Dimensi Pesanan Penjualan memperlihatkan kolom nama

  5. Pada halaman wizard berikutnya, pilih atribut. Dalam contoh ini, Anda hanya dapat memilih SalesOrderNumber.

    Dimensi pesanan penjualan memperlihatkan

  6. Ganti nama dimensi menjadi Dim Sales Orders, sehingga Anda memiliki konvensi penamaan yang konsisten untuk dimensi.

    Halaman panduan memperlihatkan halaman Wizard penggantian nama dimensi

  7. Klik kanan Kubus dan pilih Kubus Baru.

  8. Dalam mengukur tabel grup, pilih FactInternetSales dan FactInternetSalesReason.

    Anda memilih FactInternetSales karena berisi langkah-langkah yang ingin Anda gunakan dalam kubus. Anda memilih FactInternetSalesReason karena ini adalah grup pengukuran perantara, menyediakan data asosiasi anggota yang berkaitan dengan pesanan penjualan dengan alasan penjualan.

  9. Pilih pengukuran untuk setiap tabel fakta.

    Untuk menyederhanakan model Anda, hapus semua langkah, lalu pilih hanya Jumlah Penjualan dan Jumlah Penjualan Internet Fakta di bagian bawah daftar. FactInternetSalesReason hanya memiliki satu ukuran, sehingga dipilih untuk Anda secara otomatis.

  10. Dalam daftar dimensi, Anda akan melihat Dim Sales Reason dan Dim Sales Orders.

    Di halaman Pilih Dimensi Baru, wizard meminta Anda untuk membuat dimensi baru untuk Dimensi Penjualan Internet Fakta. Anda tidak memerlukan dimensi ini, sehingga Anda dapat menghapusnya dari daftar.

  11. Beri nama kubus dan klik Selesai.

Langkah 3: Tentukan hubungan Banyak-ke-Banyak

  1. Di perancang kubus, klik tab Penggunaan Dimensi. Perhatikan bahwa sudah ada hubungan banyak ke banyak antara Dim Sales Reason dan Fact Internet Sales. Ingat bahwa ikon berikut menunjukkan hubungan banyak ke banyak.

    Ikon banyak ke banyak dalam penggunaan dimensi

  2. Klik sel persimpangan antara Dim Sales Reason dan Fact Internet Sales, lalu klik tombol untuk membuka kotak dialog Tetapkan Hubungan.

    Anda dapat melihat bahwa kotak dialog ini digunakan untuk menentukan hubungan banyak-ke-banyak. Jika Anda menambahkan dimensi yang memiliki hubungan reguler, Anda akan menggunakan kotak dialog ini untuk mengubahnya menjadi banyak-ke-banyak.

    Tombol Tentukan Hubungan dalam penggunaan dimensi

  3. Sebarkan proyek ke instans multidimensi Analysis Services. Pada langkah berikutnya, Anda akan menelusuri kubus di Excel untuk memverifikasi perilakunya.

Menguji Banyak-ke-Banyak

Ketika Anda menentukan hubungan banyak-ke-banyak dalam kubus, pengujian sangat penting untuk memastikan kueri mengembalikan hasil yang diharapkan. Anda harus menguji kubus menggunakan alat aplikasi klien yang akan digunakan oleh pengguna akhir. Dalam prosedur berikutnya, Anda akan menggunakan Excel untuk menyambungkan ke kubus dan memverifikasi hasil kueri.

Telusuri kubus di Excel

  1. Sebarkan proyek lalu telusuri kubus untuk mengonfirmasi bahwa agregasi valid.

  2. Di Excel, klik Data | Dari Sumber | LainDari Analysis Services. Masukkan nama server, pilih database dan kubus.

  3. Buat PivotTable yang menggunakan berikut ini:

    • Jumlah Penjualan sebagai Nilai

    • Nama Alasan Penjualan pada Kolom

    • Nomor Pesanan Penjualan pada Baris

  4. Analisis hasilnya. Karena kita menggunakan data sampel, kesan awal adalah bahwa semua pesanan penjualan memiliki nilai yang identik. Namun, jika Anda menggulir ke bawah, Anda mulai melihat variasi data.

    Di bagian bawah, Anda dapat menemukan jumlah penjualan dan alasan penjualan untuk nomor pesanan SO5382. Total keseluruhan pesanan khusus ini adalah 539,99, dan alasan pembelian yang dikaitkan dengan pesanan ini termasuk Promosi, Lainnya dan Harga.

    Lembar kerja Excel memperlihatkan lembar kerja Excel agregasi banyak-ke-banyak

    Perhatikan bahwa Jumlah Penjualan dihitung dengan benar untuk pesanan; itu adalah 539,99 untuk seluruh pesanan. Meskipun 539,99 ditunjukkan karena setiap alasan, nilai tersebut tidak dijumlahkan karena ketiga alasan, secara keliru menggembungkan total keseluruhan kami.

    Mengapa menempatkan jumlah penjualan di bawah setiap alasan penjualan di tempat pertama? Jawabannya adalah bahwa hal itu memungkinkan kita untuk mengidentifikasi jumlah penjualan yang dapat kita kaitkan dengan setiap alasan.

  5. Gulir ke bagian bawah lembar kerja. Sekarang mudah untuk melihat bahwa Harga adalah alasan terpenting untuk pembelian pelanggan, relatif terhadap alasan lain serta total keseluruhan.

    Buku kerja Excel memperlihatkan total dalam buku kerja Excel banyak-ke-banyak

Tips untuk menangani hasil kueri yang tidak terduga

  1. Sembunyikan pengukuran dalam grup pengukuran perantara, seperti hitungan, yang tidak mengembalikan hasil yang bermakna dalam kueri. Ini mencegah orang mencoba menggunakan agregasi yang menghasilkan data yang tidak berarti. Untuk menyembunyikan ukuran, atur Visibilitas ke False pada atribut di perancang dimensi.

  2. Buat perspektif untuk menggunakan subset pengukuran dan dimensi yang mendukung pengalaman analitik yang ingin Anda berikan. Mungkin, kubus yang berisi banyak kelompok pengukuran dan dimensi tidak bekerja sama dengan baik dalam semua kasus. Dengan mengisolasi dimensi dan mengukur grup yang ingin Anda gunakan bersama-sama, Anda memastikan hasil yang lebih dapat diprediksi.

  3. Selalu ingat untuk menyebarkan dan menyambungkan kembali setelah mengubah model. Di Excel, gunakan tombol Refresh pada pita Analisis PivotTable.

  4. Hindari menggunakan grup pengukuran tertaut dalam beberapa hubungan banyak ke banyak, terutama ketika hubungan tersebut berada di kubus yang berbeda. Melakukannya dapat mengakibatkan agregasi ambigu.

Pelajari lebih lanjut

Gunakan tautan berikut untuk mendapatkan informasi tambahan yang membantu Anda mempelajari konsepnya.

Revolusi banyak ke banyak 2.0

Tutorial: Contoh dimensi banyak ke banyak untuk SQL Server Analysis Services

Lihat juga

Hubungan Dimensi

Menyebarkan Proyek Analysis Services (SSDT)
Perspektif dalam Model Multidmensional