Jika Anda hanya memiliki 1 baris dalam tabel, tentu saja kardinalitas untuk indeksnya adalah 1. Itu hanya menghitung jumlah nilai unik.
Jika Anda menganggap indeks sebagai tabel pencarian berdasarkan bucket (seperti hash), maka kardinalitasnya adalah jumlah bucket.
Begini cara kerjanya:Saat Anda membuat indeks di atas sekumpulan kolom (a,b,c,d)
, lalu database menelusuri semua baris dalam tabel, melihat ke empat rangkap terurut dari 4 kolom tersebut, untuk setiap baris. Katakanlah tabel Anda terlihat seperti ini:
a b c d e
-- -- -- -- --
1 1 1 1 200
1 1 1 1 300
1 2 1 1 200
1 3 1 1 200
Jadi yang dilihat database hanyalah 4 kolom (a,b,c,d):
a b c d
-- -- -- --
1 1 1 1
1 2 1 1
1 3 1 1
Lihat bahwa hanya ada 3 baris unik yang tersisa? Itu akan menjadi ember kami, tetapi kami akan kembali ke sana. Pada kenyataannya, ada juga record id, atau pengidentifikasi baris untuk setiap baris dalam tabel. Jadi tabel asli kita terlihat seperti ini:
(row id) a b c d e
-------- -- -- -- -- --
00000001 1 1 1 1 200
00000002 1 1 1 1 300
00000003 1 2 1 1 200
00000004 1 3 1 1 200
Jadi ketika kita hanya melihat 4 kolom dari (a,b,c,d), kita sebenarnya juga melihat id baris:
(row id) a b c d
-------- -- -- -- --
00000001 1 1 1 1
00000002 1 1 1 1
00000003 1 2 1 1
00000004 1 3 1 1
Tapi kami ingin melakukan pencarian dengan (a,b,c,d) dan bukan dengan id baris, jadi kami menghasilkan sesuatu seperti ini:
(a,b,c,d) (row id)
--------- --------
1,1,1,1 00000001
1,1,1,1 00000002
1,2,1,1 00000003
1,3,1,1 00000004
Dan terakhir, kami mengelompokkan semua id baris dari baris yang memiliki nilai identik (a,b,c,d) menjadi satu:
(a,b,c,d) (row id)
--------- ---------------------
1,1,1,1 00000001 and 00000002
1,2,1,1 00000003
1,3,1,1 00000004
Lihat itu? Nilai (a,b,c,d), yaitu (1,1,1,1) (1,2,1,1) dan (1,3,1,1) telah menjadi kunci untuk tabel pencarian kami ke dalam baris tabel asli.
Sebenarnya, semua ini tidak benar-benar terjadi, tetapi ini akan memberi Anda gambaran yang baik tentang bagaimana implementasi indeks yang "naif" (yaitu langsung) dapat dilakukan.
Tetapi intinya adalah ini:kardinalitas hanya mengukur berapa banyak baris unik yang ada dalam indeks. Dan dalam contoh kami itu adalah jumlah kunci di tabel pencarian kami, yaitu 3.
Semoga membantu!