Maybaygiare.org

Blog Network

Wat is kardinaliteit in een Database?

Databases hebben veel jargon, en kardinaliteit is een van die woorden die ervaren mensen hebben de neiging om te vergeten dat ze niet eens wisten. Maar als je het niet weet—en het duurt een tijdje om echt comfortabel met cardinaliteit—het is super verwarrend als de DBA gewoon laat vallen in het midden van een zin zonder te vertragen! Vrees niet: Ik heb je, zoals ze zeggen.Cardinaliteit betekent twee dingen in databases. Voor onze doeleinden is het ene veel belangrijker dan het andere. Laten we eerst de eenvoudige doen, en dan graven in degene die van belang is voor query prestaties.De definitie van kardinaliteit die belangrijk is voor query prestaties is data cardinaliteit. Dit gaat allemaal over hoeveel verschillende waarden in een kolom staan.De eerste betekenis van cardinaliteit is wanneer je de database ontwerpt—wat data modellering wordt genoemd. In deze zin betekent kardinaliteit of een relatie één-op-één, veel-op-één, of veel-op-velen is. Dus je hebt het echt over de relatie kardinaliteit.Cardinality ‘ s officiële, niet-database woordenboek definitie is mathematisch: het aantal waarden in een verzameling. Wanneer toegepast op databases, de betekenis is een beetje anders: het is het aantal verschillende waarden in een tabel kolom, ten opzichte van het aantal rijen in de tabel. Herhaalde waarden in de kolom tellen niet mee.We praten meestal niet over cardinaliteit als een nummer. Het is meer gebruikelijk om gewoon te praten over “hoog ” en” laag ” kardinaliteit. Veel verschillende waarden is een hoge kardinaliteit; veel herhaalde waarden is een lage kardinaliteit.Afbeelding een productbeschrijvingstabel in een e-commercedatabase:de kolom ProductID zal een hoge kardinaliteit zijn omdat het waarschijnlijk de primaire sleutel van die tabel is, dus het is totaal uniek. Als er duizend rijen in de tabel staan, zullen er duizend verschillende ProductID waarden zijn. De kolom Category zal veel herhaling hebben, en het zal een lage of gemiddelde kardinaliteit zijn: misschien 50 of 100 verschillende Category waarden. Name is waarschijnlijk een grote kardinaliteit, tenzij er meer in deze tabel zit dan het oog lijkt (zoals meerdere rijen voor verschillende productkleuren en andere variaties).Cardinaliteit heeft veel invloed op de prestaties, omdat het het uitvoeringsplan van de query beïnvloedt. De planner zal kolomstatistieken onderzoeken en deze gebruiken om onder andere uit te zoeken hoeveel waarden een query waarschijnlijk zal overeenkomen. Afhankelijk van wat het vindt, het kan verschillende query uitvoering plannen gebruiken om te proberen om de beste prestaties te krijgen. Maar dat is een onderwerp voor een andere blog post, want het kost een beetje werk om explain.So nu, de volgende keer dat iemand “hoge kardinaliteit” in een zin laat vallen zonder te pauzeren, Weet je dat ze echt bedoelen “veel verschillende waarden.”En daar heb je het!

Geef een antwoord

Het e-mailadres wordt niet gepubliceerd.