All Products
Search
Document Center

Quick BI:Model Relasional

Last Updated:Apr 01, 2026

Ikhtisar

Logika komputasi model relasional mengikuti dua prinsip utama:

  • Hanya bidang dalam kueri saat ini dan bidang terkait yang digunakan dalam komputasi. (Jika kueri hanya berisi bidang dari satu tabel logis, tabel logis lain dalam model relasional tidak disertakan dalam komputasi.)

  • Model menjaga integritas data bidang ukuran.

Diagram berikut menunjukkan alur pemrosesan umum. Dibandingkan dengan join fisik langsung, model relasional secara efektif mencegah ekspansi data:

Berikut adalah ikhtisar sederhana mengenai logika pemrosesan dalam model relasional. Dalam skenario dunia nyata, faktor seperti kardinalitas, laju kecocokan data, dan jenis bidang yang Anda gunakan memicu metode pemrosesan yang berbeda. Untuk detailnya, lihat contoh berikut.

Contoh

Konfigurasi model

Bidang tabel data

Tabel utama: Cases

Tabel sekunder: Population

image

image

Struktur model relasional

image

Di mana:

  • Kunci gabungan: Medical Institution = Medical Institution

  • Hubungan join: N:N

  • Laju pencocokan data: Cocok Sebagian

Konfigurasi grafik dan metode perhitungan

Kueri satu tabel

Konfigurasi grafik

Dimensi

Medical Institution (tabel Population), Year (tabel Population)

Ukuran

Sum of Population (tabel Population)

Data hasil

image

Kueri multi-tabel (hanya dimensi)

Konfigurasi grafik

Dimensi

Month (tabel Cases), Year (tabel Population)

Ukuran

-

Data hasil

image

Logika inner join
  • Menggunakan INNER JOIN: Ketika grafik hanya berisi dimensi, hanya data yang cocok yang dianggap bermakna. Data yang tidak cocok, seperti untuk institusi medis D dan E, diabaikan.

  • Sistem melakukan join kedua tabel pada bidang "Medical Institution" menggunakan INNER JOIN untuk membuat tabel antara. Setelah deduplikasi, sistem menampilkan data hasil.

    Institution (Cases)

    Month (Cases)

    Institution (Population)

    Year (Population)

    A

    1

    A

    2020

    A

    1

    A

    2019

    B

    1

    B

    2020

    B

    1

    B

    2019

    C

    1

    C

    2020

    C

    1

    C

    2019

    A

    2

    A

    2020

    A

    2

    A

    2019

    B

    2

    B

    2020

    B

    2

    B

    2019

    C

    2

    C

    2020

    C

    2

    C

    2019

    A

    1

    A

    2020

    A

    1

    A

    2019

Kueri multi-tabel (hanya ukuran)

Konfigurasi grafik

Dimensi

-

Ukuran

Sum of Number of Cases (tabel Cases), Sum of Population (tabel Population)

Data hasil

image

Logika perhitungan
  • Ketika kueri hanya berisi ukuran dan tidak ada dimensi, agregasi menghasilkan satu baris data.

  • Dalam skenario ini, sistem melakukan agregasi ukuran dari tabel Cases dan tabel Population secara terpisah, lalu menggabungkan hasilnya.

Kueri multi-tabel (dimensi dan ukuran)

Contoh 1: Dimensi tabel kiri, ukuran tabel kanan
Konfigurasi grafik

Dimensi

Medical Institution (tabel Cases)

Ukuran

Sum of Population (tabel Population)

Data hasil

image

Langkah perhitungan

Langkah 1: Kombinasi dimensi dihitung dari bidang dimensi dalam grafik, Medical Institution (tabel Cases), dan kunci gabungan dari tabel ukuran, Medical Institution (tabel Population).

Karena kueri ini mencakup ukuran dari tabel Population, langkah ini mempertahankan semua nilai dimensi dari tabel tersebut. Hal ini memastikan integritas ukuran selama perhitungan selanjutnya.

Institution (Population)

Institution (Cases)

A

A

B

B

C

C

E

-

Langkah 2: Kombinasi dimensi kemudian di-join dengan tabel Population untuk membuat tabel antara. Karena hanya kombinasi dimensi yang di-join dan setiap institusi medis unik di dalamnya, tidak terjadi eksplosi data.

Institution (Population)

Institution (Cases)

Population (Population)

A

A

100

B

B

80

C

C

70

A

A

110

B

B

75

C

C

90

-

E

60

-

E

60

Langkah 3: Lakukan agregasi tabel antara berdasarkan dimensi yang digunakan dalam grafik untuk mendapatkan hasil akhir.

Karena "Medical Institution E" dari tabel Population tidak dapat dicocokkan dengan entri di tabel Cases, hasilnya berisi baris di mana dimensi Medical Institution bernilai null.

image

Contoh 2: Dimensi tabel kiri, ukuran tabel kanan (salah)
Konfigurasi grafik

Dimensi

Year (tabel Cases)

Ukuran

Sum of Population (tabel Population)

Data hasil

image

Langkah perhitungan

Langkah 1: Kombinasi dimensi dihitung dari bidang dimensi dalam grafik, Year (tabel Cases), dan kunci gabungan dari tabel ukuran, Medical Institution (tabel Population). Untuk kejelasan, Medical Institution (tabel Cases) juga ditampilkan di sini.

Karena kueri ini mencakup ukuran dari tabel Population, langkah ini mempertahankan semua nilai dimensi dari tabel tersebut. Hal ini memastikan integritas ukuran selama perhitungan selanjutnya.

Institution (Population)

Institution (Cases)

Year (Cases)

A

A

2019

A

A

2020

B

B

2020

C

C

2020

E

-

-

Catatan

Dalam tabel Cases, "Medical Institution A" memiliki catatan untuk tahun 2019 dan 2020. Akibatnya, kombinasi dimensi berisi dua baris untuk "A" pada bidang Medical Institution (tabel Population).

Langkah 2: Kombinasi dimensi kemudian di-join dengan tabel Population untuk membuat tabel antara.

Year (Cases)

Institution (Population)

Population (Population)

2019

A

100

2020

A

100

2020

B

80

2020

C

70

2019

A

110

2020

A

110

2020

B

75

2020

C

90

-

E

60

-

E

60

Catatan

Joining dua baris duplikat "A" dalam kombinasi dimensi ke tabel Population menduplikasi data populasi untuk "Medical Institution A", menyebabkan eksplosi data.

Langkah 3: Tabel antara kemudian diagregasi berdasarkan dimensi yang digunakan dalam grafik untuk menghasilkan hasil akhir.

image

Catatan

Dalam skenario ini, eksplosi data terjadi meskipun menggunakan model relasional. Untuk menghindari masalah seperti ini, kami merekomendasikan hal berikut:

  • Konfigurasikan kunci gabungan dengan benar: Dalam contoh ini, Anda harus menetapkan Medical Institution dan Year sebagai kunci gabungan komposit. Hal ini mencegah eksplosi data saat tabel antara dibuat pada Langkah 2.

  • Gunakan dimensi dan ukuran dari tabel logis yang sama ketika kueri lintas tabel tidak diperlukan: Dalam contoh ini, kueri Medical Institution dan Population hanya dari tabel Population akan menghasilkan hasil yang benar.

Contoh 3: Dimensi tabel kanan, ukuran tabel kiri (salah)
Konfigurasi grafik

Dimensi

Year (tabel Population)

Ukuran

Sum of Number of Covered Areas (tabel Cases)

Data hasil

image

Langkah perhitungan

Langkah 1: Kombinasi dimensi dihitung dari bidang dimensi dalam grafik, Year (tabel Population), dan kunci gabungan dari tabel ukuran, Medical Institution (tabel Cases). Untuk kejelasan, Medical Institution (tabel Population) juga ditampilkan di sini.

Karena kueri ini mencakup ukuran dari tabel Cases, langkah ini mempertahankan semua nilai dimensi dari tabel tersebut. Hal ini memastikan integritas ukuran selama perhitungan selanjutnya.

Institution (Cases)

Institution (Population)

Year (Population)

A

A

2020

A

A

2019

B

B

2020

B

B

2019

C

C

2020

C

C

2019

D

-

-

Catatan

Dalam tabel Population, institusi medis A, B, dan C masing-masing memiliki catatan untuk tahun 2019 dan 2020. Hal ini menyebabkan dua baris untuk "A", dua untuk "B", dan dua untuk "C" muncul dalam kombinasi dimensi pada bidang Medical Institution (tabel Cases). Institusi Medis E dari tabel populasi tidak cocok.

Langkah 2: Kombinasi dimensi kemudian di-join dengan tabel Cases untuk membuat tabel antara.

Institution (Cases)

Year (Population)

Covered areas (Cases)

A

2020

1

A

2019

1

B

2020

1

B

2019

1

C

2020

2

C

2019

2

A

2020

1

A

2019

1

B

2020

1

B

2019

1

C

2020

2

C

2019

2

D

-

1

A

2020

1

A

2019

1

Catatan

Joining baris duplikat untuk institusi medis A, B, dan C dalam kombinasi dimensi ke tabel Cases menduplikasi data Number of Covered Areas, menyebabkan eksplosi data.

Langkah 3: Tabel antara kemudian diagregasi berdasarkan dimensi yang digunakan dalam grafik untuk menghasilkan hasil akhir.

image

Catatan

Kueri ini salah menghitung jumlah Number of Covered Areas untuk institusi medis A, B, dan C karena duplikasi. Penyebab dan rekomendasinya sama seperti pada Contoh 2.

  • Konfigurasikan kunci gabungan dengan benar: Anda harus menetapkan Medical Institution dan Year sebagai kunci gabungan komposit.

  • Gunakan dimensi dan ukuran dari tabel logis yang sama ketika kueri lintas tabel tidak diperlukan: Anda harus melakukan kueri Year dan Number of Covered Areas hanya dari tabel Cases.

Perbandingan dengan pemodelan fisik

Pada versi sebelumnya, pemodelan set data Quick BI didasarkan pada pemodelan fisik. Pendekatan ini menggunakan antarmuka visual untuk mengonfigurasi join dan menggabungkan beberapa tabel menjadi satu tabel lebar.

Dengan pemodelan fisik, Anda harus secara eksplisit menentukan jenis join, seperti left join, inner join, atau full join. Hal ini mengharuskan Anda memahami data secara menyeluruh dan memprosesnya terlebih dahulu untuk memastikan integritas dan keunikan. Jika tidak, Anda berisiko mengalami masalah serius seperti eksplosi data.

Contoh terperinci

Konfigurasi model

Bidang tabel data

Tabel Kasus

Tabel populasi

image

image

Struktur model fisik

image

Tabel lebar model fisik

Karena bidang 'Medical Institution' berisi nilai yang tidak unik, terjadi eksplosi data parah setelah pemodelan fisik. Misalnya, pada gambar di bawah, 'Population (tabel Population)' untuk 'Medical Institution' 'A' dan 'Year (tabel Population)' '2019' dihitung secara salah sebanyak tiga kali.

image

Konfigurasi dan perhitungan grafik

Contoh 1
Konfigurasi grafik

Dimensi

Medical Institution (tabel Cases)

Ukuran

Sum of Population (tabel Population)

Data hasil

image

Hasil yang benar

image

Contoh 2
Konfigurasi grafik

Dimensi

Year (tabel Cases)

Ukuran

Sum of Population (tabel Population)

Data hasil

image

Hasil yang benar

image

Kekurangan pemodelan fisik

Dengan pemodelan fisik, Anda harus memvalidasi akurasi model. Ketika data berisi nilai yang tidak unik atau hilang, Anda harus mengambil langkah tambahan untuk mencegah kesalahan data, seperti:

  • Gunakan SQL untuk mengagregasi data yang tidak unik sebelum membuat join.

  • Gunakan fungsi LOD untuk menentukan granularitas agregasi dan mencegah perhitungan yang salah.

  • Gunakan SQL untuk melengkapi data yang hilang atau menyesuaikan jenis join untuk mengatasi celah data dan mencegah kehilangan data.

Operasi ini memerlukan keahlian SQL, sehingga sulit bagi pengguna bisnis non-teknis. Selain itu, proses pemodelan fisik bersifat membosankan dan kompleks, mengharuskan Anda memverifikasi hasil secara berulang untuk memastikan akurasi.

Dalam pemodelan fisik, semakin banyak tabel yang di-join, semakin besar risiko eksplosi data. Model yang kompleks juga menyulitkan penelusuran dan penyelesaian masalah. Oleh karena itu, untuk meminimalkan jumlah tabel yang di-join, sebaiknya gunakan pemodelan fisik untuk membuat model terpisah untuk setiap skenario analisis. Namun, pendekatan ini menyebabkan proliferasi set data seiring bertambahnya skenario analisis, sehingga sulit dikelola dan dipelihara dalam jangka panjang.

Model relasional: kasus khusus

Penanganan bidang lintas tabel

Bidang lintas tabel adalah bidang terhitung yang menggunakan bidang dari beberapa tabel logis. Bidang ini tidak termasuk dalam satu tabel logis tertentu dan dikategorikan secara terpisah dalam set data.

Menghitung bidang lintas tabel selalu melibatkan beberapa tabel logis. Hasilnya bergantung pada hubungan join mereka, yang ditentukan oleh ukuran dan dimensi dalam kueri. Oleh karena itu, bidang ini hanya dapat dihitung dalam konteks kueri tertentu, sehingga data tingkat detailnya tidak tersedia untuk pratinjau.

image

Bidang lintas tabel pasca-agregasi

Anda membuat bidang lintas tabel pasca-agregasi dengan terlebih dahulu mengagregasi bidang dari tabel tunggal, lalu menggunakannya dalam perhitungan aritmetika lintas tabel (seperti penjumlahan, pengurangan, perkalian, atau pembagian).

Contohnya:

image

Untuk menghitung bidang ini, Quick BI pertama-tama menghitung SUM([人数(人数表)]) dari tabel jumlah orang dan SUM([覆盖区域数(病例表)]) dari tabel kasus, menghasilkan dua tabel antara berikut:

Medical institution (tabel kasus)

SUM(Jumlah orang (tabel jumlah orang))

A

210

B

155

C

160

-

120

Medical institution (tabel kasus)

SUM(Jumlah area yang dicakup (case table))

A

3

B

2

C

4

D

1

Quick BI kemudian melakukan join kedua tabel antara tersebut dan melakukan pembagian untuk menghitung hasil akhir.

image

Bidang lintas tabel tingkat detail

Anda membuat bidang lintas tabel tingkat detail dengan menggunakan bidang dari tabel tunggal dalam perhitungan lintas tabel pada tingkat detail sebelum agregasi apa pun.

Contohnya:

image

Untuk menghitung bidang ini, Quick BI pertama-tama melakukan join "tabel kasus" dan "tabel jumlah orang" pada kunci gabungannya untuk membuat tabel antara berikut:

Medical institution (tabel kasus)

Number of covered areas (tabel kasus)

Medical institution (tabel jumlah orang)

Number of people (tabel jumlah orang)

A

1

A

110

A

1

A

100

B

1

B

75

B

1

B

80

C

2

C

90

C

2

C

70

A

1

A

110

A

1

A

100

B

1

B

75

B

1

B

80

C

2

C

90

C

2

C

70

A

1

A

110

A

1

A

100

Quick BI kemudian melakukan pembagian pada tabel antara ini dan mengagregasi hasilnya berdasarkan dimensi dalam grafik untuk menghasilkan hasil akhir:

image

Penanganan konstanta

Dalam model relasional, Quick BI memperlakukan konstanta (seperti teks biasa atau literal numerik) sebagai bidang lintas tabel tetapi menghitungnya secara berbeda dari bidang lintas tabel lainnya.

Sebagai contoh, jika Anda membuat konstanta '1' dalam set data model relasional, bidang tersebut muncul dalam kategori "Bidang Lintas Tabel":

image

image

Konstanta dalam perhitungan satu tabel

Dalam kasus ini, Quick BI memperlakukan konstanta sebagai bidang dalam tabel logis tersebut. Perhitungan kemudian mengikuti jalur kueri satu tabel, seperti yang ditunjukkan di bawah:

image

Konstanta dalam perhitungan multi-tabel

Dalam skenario ini, penanganan konstanta menjadi ambigu. Mengaitkan konstanta dengan tabel yang berbeda akan menghasilkan hasil perhitungan yang berbeda dan dapat menyebabkan hasil yang tidak terduga.

Oleh karena itu, dalam skenario ini, Quick BI memperlakukan konstanta sebagai bidang lintas tabel. Konstanta kemudian kehilangan asosiasinya dengan dimensi di semua tabel dan, akibatnya, tidak berpartisipasi dalam agregasi. Efeknya ditunjukkan di bawah:

image