Maybaygiare.org

Blog Network

Hvad er Kardinalitet i en Database?

databaser har meget jargon, og kardinalitet er et af de ord, som erfarne mennesker har tendens til at glemme, at de ikke vidste engang. Men hvis du ikke ved det—og det tager et stykke tid at virkelig blive fortrolig med kardinalitet-er det super forvirrende, når DBA bare falder det midt i en sætning uden at bremse! Frygt ikke: jeg har dig, som de siger.Kardinalitet betyder to ting i databaser. Til vores formål betyder det ene meget mere end det andet. Lad os først gøre det enkle og derefter grave i det, der betyder noget for forespørgselsydelse.Definitionen af kardinalitet, der betyder meget for forespørgselsydelse, er datakardinalitet. Det handler om, hvor mange forskellige værdier der er i en kolonne.Den første betydning af kardinalitet er, når du designer databasen—hvad der kaldes datamodellering. I denne forstand, kardinalitet betyder, om et forhold er en-til-en, mange-til-en, eller mange-til-mange. Så du taler virkelig om forholdet kardinalitet.Cardinality officielle, ikke-database ordbog definition er matematisk: antallet af værdier i et sæt. Når det anvendes på databaser, er betydningen lidt anderledes: det er antallet af forskellige værdier i en tabelkolonne i forhold til antallet af rækker i tabellen. Gentagne værdier i kolonnen tæller ikke.Vi taler normalt ikke om kardinalitet som et tal. Det er mere almindeligt at blot tale om” høj “og” lav ” kardinalitet. Mange forskellige værdier er høj kardinalitet; mange gentagne værdier er lav kardinalitet.Billede en produktbeskrivelsestabel i en e-handelsdatabase:ProductID kolonnen vil være høj kardinalitet, fordi det sandsynligvis er den primære nøgle i den tabel, så den er helt unik. Hvis der er tusind rækker i tabellen, vil der være tusind forskellige ProductID værdier. KolonnenCategory vil have en masse gentagelse, og det vil være lav eller medium kardinalitet: måske 50 eller 100 forskelligeCategory værdier. Name er sandsynligvis høj kardinalitet, medmindre der er mere i denne tabel, end det ser ud til (såsom flere rækker til forskellige Produktfarver og andre variationer).Kardinalitet påvirker ydeevnen meget, fordi det påvirker forespørgselsudførelsesplanen. Planlæggeren vil undersøge kolonnestatistikker og bruge dem til at finde ud af, hvor mange værdier en forespørgsel sandsynligvis vil matche, blandt andet. Afhængigt af hvad den Finder, kan den bruge forskellige forespørgselsudførelsesplaner for at forsøge at få den bedste ydeevne. Men det er et emne for et andet blogindlæg, fordi det kræver lidt arbejde at explain.So nu, næste gang nogen falder “høj kardinalitet” i en sætning uden pause, du ved, at de virkelig betyder “mange forskellige værdier.”Og der har du det!

Skriv et svar

Din e-mailadresse vil ikke blive publiceret.