..


Sponsede Lenker

Bruk og forvaltning av identitet kolonner i SQL Server

Artikkel skrevet av Vincent Gaglio
Side 1 av 3

Når du utformer en database for å støtte applikasjoner er avgjørende for å vurdere hvordan man skal håndtere primærnøkler. Det er i denne sammenheng minst to skoler tanke: en som argumenterer for at den riktige tingen å gjøre er å bruke såkalte surrogate tastene (dvs. ikke basert på reelle data) og en annen som hevder at må brukes i stedet for reelle data som sentrale verdier. Så er det en middels sti som består i "en database til bruk innenfor begge disse løsningene, avhengig av den relative fordeler og ulemper (som vi snart).

Når du utformer et bord den inneholder vanligvis en eller flere kolonner som utgjør dens primærnøkkel. Som vi vet en tabellens primærnøkkel er en verdi (eller en kombinasjon av verdier) som unikt identifiserer hver rad. Som nevnt tidligere, hvis en nøkkel består av reelle verdier kalles naturlig nøkkelen, men hvis for eksempel nøkkelen genereres hver gang du setter inn en rad i tabellen det kalles surrogat nøkkelen. En surrogat nøkkel er vanligvis en numerisk verdi i SQL Server, og ofte kolonnene av denne typen er de av identitet, hvorav mer senere.

Et naturlig nøkkelen består av reelle data, dvs. data som har et forhold til verdier i andre kolonner av raden (f.eks skatte-koden til et individ i en Kunder-tabell som også inneholder den generelle). Selv en surrogat nøkkelen identifiserer en rad i en tabell, men dens verdi har ingen relasjon til andre verdier av linjen, og det er rett og slett generert og lagret.

Vi analyserer fordeler og ulemper med de to typene av nøkler som begynner med surrogat:

PRO

  • En surrogat tasten har ingen relasjoner med andre data linje
  • Hvis du trenger å gjøre endringer i databasen om oppdatering av den naturlige taster som kan enkelt gjøres uten å kompromittere den utenlandske viktige relasjoner, dersom sistnevnte ikke er basert på naturlige nøkler, men på et surrogat
  • Den surrogat tastene er vanligvis heltall og krever derfor bare fire byte til å lagre på denne måten lage strukturer mindre Performance Index (som har en positiv effekt på delta operasjoner)

MOT

  • Hvis det koblede tabellene i fremmednøkkel med en verdi surrogat er koblet til en hovedtabellen, for å få de faktiske verdiene av sammenhengen mellom de ulike bordene du må bli med operasjoner
  • Den surrogat Nøkkelen er ikke veldig nyttig når du søker etter spesifikk informasjon, har som verdiene i dem ingen reell mening

Som for de hvite tangentene:

PRO

  • Egner seg til forskning, fordi verdiene har reell betydning
  • Krever færre trinn for å få bli med sentrale verdier, fordi de finnes i alle tabeller som er involvert i blir
  • Egner seg til forskning, fordi verdiene har reell betydning

MOT

  • Det er mye mer komplisert oppdatering, spesielt hvis de utenlandske viktige relasjoner med andre tabeller er basert på dem
  • Indekser anta større fordi naturlige nøkler vanligvis krever mer byte til å lagre
  • Joins basert på kompositt naturlige nøkler (som ofte inkluderer streng data) er tregere enn de gjorde med surrogat nøkler
I samme kategori ...
E-læring
MS Access (avansert) MS Access (avansert)
Lær å opprette og administrere databaser raskt og enkelt. Starter fra 29 €.
MySQL (Course) MySQL (Course)
Forvaltning av open-source database. Fra € 39.
SQL og Database (Course) SQL og Database (Course)
Opprette og administrere relasjonsdatabaser. Fra € 39.
Sponsede Lenker