..


Sponsrade länkar

Användning och förvaltning av identitet kolumner i SQL Server

Artikel skriven av Vincent Gaglio
Sidan 1 av 3

När du utformar en databas som stöd för ansökningar är viktigt att överväga hur man hanterar primärnycklar. Det är i detta avseende minst två skolor av tanke: en som hävdar att rätt sak att göra är att använda så kallade surrogatnycklar (dvs inte baserat på verkliga data) och en annan som påstår som måste användas i stället för verkliga data som nyckelvärden. Sedan finns det en medelväg som består i att "en databas för användning inom båda dessa lösningar, beroende på de relativa fördelarna och nackdelarna (som vi kommer snart).

Vid utformning av en tabell innehåller vanligtvis en eller flera kolumner som utgör dess primärnyckel. Som vi vet en tabellens primärnyckel är ett värde (eller en kombination av värden) som unikt identifierar varje rad. Som nämnts tidigare, om en nyckel består av verkliga värden kallas naturlig nyckel, men om till exempel nyckel genereras varje gång du sätter in en rad i tabellen kallas det surrogat nyckeln. Ett surrogat nyckel är vanligtvis ett numeriskt värde i SQL Server, och ofta kolumner av denna typ är de som identitet, varav mer senare.

En naturlig nyckel består av verkliga data, dvs data som har en relation med värden i andra kolumner i raden (t.ex. skatte-koden för en individ i en tabellen Kunder som också innehåller sin allmängiltighet). Även ett surrogat nyckel identifierar en rad i en tabell, men dess värde har ingen relation till andra värden på linjen och det är helt enkelt genereras och lagras.

Vi analyserar för-och nackdelar för de två typer av nycklar som börjar med surrogat:

PRO

  • Ett surrogat tangent har inga förbindelser med andra data linjen
  • Om du behöver göra ändringar i databasen för uppdatering av den naturliga nycklar som lätt kan göras utan att äventyra främmande nyckel relationer, om denna inte är baserade på naturliga nycklar men på ett surrogat
  • Den surrogatnycklar är oftast heltal och kräver därför bara fyra byte för att lagra på detta sätt göra strukturer mindre Performance Index (som har en positiv effekt av koppling verksamhet)

MOT

  • Om de länkade tabellerna i främmande nyckel med värdet surrogat är kopplat till en huvudtabellen, att få de verkliga värdena för samband mellan de olika tabellerna Du måste gå med verksamhet
  • Den surrogat viktiga är inte särskilt användbar när du söker efter specifik information, har de värden som finns i dem någon verklig mening

När det gäller naturliga nycklar:

PRO

  • Lämpa sig för forskning eftersom de värden som har verklig mening
  • Kräver färre steg för att få ansluta sig till centrala värden eftersom de finns i alla tabeller inblandade i går
  • Lämpa sig för forskning eftersom de värden som har verklig mening

MOT

  • Det är mycket mer komplicerat uppdatera, särskilt om den främmande nyckeln relationer till andra tabeller baserade på dessa
  • Index ta större eftersom naturliga nycklar oftast kräver mer byte att lagra
  • Ansluter baserat på komposit naturliga nycklar (som ofta inkluderar string-data) är långsammare än de som görs med surrogatnycklar
I samma kategori ...
E-Learning
MS Access (avancerat) MS Access (avancerat)
Lär dig skapa och hantera databaser snabbt och enkelt. Från 29 €.
MySQL (kurs) MySQL (kurs)
Hantering av öppen källkod databas. Från 39 €.
SQL och databas (kurs) SQL och databas (kurs)
Skapa och hantera relationsdatabaser. Från 39 €.
Sponsrade länkar