Co to jest kardynalność w bazie danych?

Bazy danych mają wiele żargonu, a kardynalność jest jednym z tych słów, które doświadczeni ludzie mają tendencję do zapominania, że nie wiedzieli kiedyś. Ale jeśli go nie znasz – a potrzeba trochę czasu, aby naprawdę poczuć się komfortowo z kardynalnością – jest to bardzo mylące, gdy DBA po prostu wrzuca je w środek zdania bez zwalniania tempa! Nie bój się: Mam cię, jak to się mówi.Kardynalność oznacza dwie rzeczy w bazach danych. Dla naszych celów, jedna z nich ma o wiele większe znaczenie niż druga. Zajmijmy się najpierw tą prostą, a następnie zagłębmy się w tę, która ma znaczenie dla wydajności zapytań.Definicja kardynalności, która ma duże znaczenie dla wydajności zapytań, to kardynalność danych. Chodzi o to, ile różnych wartości znajduje się w kolumnie.Pierwsze znaczenie kardynalności pojawia się podczas projektowania bazy danych, co nazywamy modelowaniem danych. W tym sensie kardynalność oznacza, czy relacja jest jeden do jednego, wiele do jednego, czy wiele do wielu. Oficjalna, niebazodanowa definicja słownikowa kardynalności jest matematyczna: liczba wartości w zbiorze. W przypadku zastosowania do baz danych znaczenie jest nieco inne: jest to liczba odrębnych wartości w kolumnie tabeli, w stosunku do liczby wierszy w tabeli. Powtarzające się wartości w kolumnie nie liczą się.Zwykle jednak nie mówimy o kardynalności jako o liczbie. Bardziej powszechne jest mówienie o „wysokiej” i „niskiej” kardynalności. Duża ilość odrębnych wartości to wysoka kardynalność; duża ilość powtarzających się wartości to niska kardynalność.Wyobraź sobie tabelę z opisem produktu w bazie danych e-commerce:Kolumna ProductID będzie miała wysoką kardynalność, ponieważ prawdopodobnie jest kluczem głównym tej tabeli, więc jest całkowicie unikalna. Jeśli w tabeli znajduje się tysiąc wierszy, będzie tysiąc różnych wartości ProductID. Kolumna Category będzie miała dużo powtórzeń, a jej kardynalność będzie niska lub średnia: może 50 lub 100 różnych wartości Category. Name to prawdopodobnie wysoka kardynalność, chyba że w tej tabeli jest więcej niż się wydaje (np. wiele wierszy dla różnych kolorów produktów i innych wariantów).Kardynalność ma duży wpływ na wydajność, ponieważ wpływa na plan wykonania zapytania. Planner bada statystyki kolumn i używa ich do określenia, jak wiele wartości zapytanie może dopasować, między innymi. W zależności od tego, co znajdzie, może użyć różnych planów wykonania zapytania, aby uzyskać jak najlepszą wydajność. Ale to jest temat na inny wpis na blogu, ponieważ wymaga to trochę pracy, aby to wyjaśnić.Więc teraz, następnym razem, gdy ktoś upuści „wysoką kardynalność” w zdaniu bez pauzy, wiesz, że naprawdę ma na myśli „wiele różnych wartości”. I tam masz to!

.

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany.