Nøkler og begrensninger som vanligvis brukes i SQL

Hva Er Nøkler og Begrensninger?

en database må overholde bestemte egenskaper for å opprettholde integriteten og kvaliteten på dataene den lagrer. Nøkler og Begrensninger er regler som definerer hvilke dataverdier som er tillatt i bestemte datakolonner. De er et viktig databasekonsept og er en del av en databases skjemadefinisjon. Definere Nøkler og begrensninger er en del av databasedesignprosessen og sikrer at dataene i en database er pålitelige og opprettholder integriteten. Betingelser kan gjelde for en bestemt kolonne, en hel tabell, mer enn en tabell eller et helt skjema. Et pålitelig databasesystem sikrer at begrensninger holder til enhver tid. Nøkler er en spesiell type begrensning som brukes til å etablere relasjoner og unikhet.

Primærnøkkel

en nødvendig del av å etablere relasjoner mellom to enheter eller to deler av data er å identifisere dataene riktig. I SQL er unikt identifiserende data kritisk. En Primærnøkkel er en unik identifikator for en rad med data. I regnearkanalogien vi har brukt så langt, har det alltid vært en id kolonne. Mens en hvilken som helst kolonne kan tjene som primærnøkkel, er det enkelt å bruke en kolonne som heter id av mnemonic grunner og er en populær konvensjon. I EN RDBMS kan hver tabell bare ha En Primærnøkkel.

en primærnøkkel er en garantert unik identifikator for en rad i en tabell. På grunn av dette kan vi bruke en rads primærnøkkelverdi til å referere til den raden fra andre tabeller. I forrige kapittel etablerte vi relasjoner mellom flere tabeller basert på det, men relasjonsdatabaser trenger en måte å forholde seg til hverandre, og primærnøkkelkolonnen er en måte å gjøre dette effektivt på. I PostgreSQL får primærnøkler også ytelsesfordeler, da det er kjent at de ofte blir brukt til å slå opp data, spesielt i flerbordsoppslag.

Vær oppmerksom på at ikke alle kolonner kalt «id» er primærnøkler; dette er bare en konvensjon. I tillegg kan primærnøkler ha noe navn.

vi har allerede sett syntaksen for å utpeke en kolonne som en primærnøkkelkolonne i tidligere kapitler:

La Oss ta en titt på kommandoen ovenfor som lager et bord kalt users, fra perspektivet til å forstå Primærnøkler.

  1. id kolonne er Primærnøkkelen i denne tabellen. Vi kan også si At primærnøkkelbegrensningen er brukt på kolonnen id.
  2. id kan bare inneholde numeriske verdier (int).
  3. for hver ny rad som legges til i tabellen, økes feltet id automatisk med 1. Med MANGE RDBMS brukes nøkkelordet AUTO_INCREMENT. Med PostgreSQL bruker vi seriell til å automatisk øke våre ider og sette typen som heltall. Det er ikke nødvendig å manuelt angi primærnøkkelverdien hver gang du setter inn data, PostgreSQL vil gjøre Det for deg hvis Du angir seriell som type for id.

Fremmednøkkel

fremmednøkkelkolonner brukes til å referere til en annen rad med data, kanskje i en annen tabell. For å referere til en annen rad trenger databasen en unik identifikator for den raden. Kolonnene for fremmednøkkel inneholder derfor verdien av primærnøkkelen for den refererte raden. For eksempel kan en tabell ha en kolonne kalt user_id som en sekundærnøkkelkolonne, som tilsvarer kolonnen id i tabellen users. Fremmednøkler er HVORDAN RDBMS setter opp relasjoner mellom rader med data, enten i samme tabell eller på tvers av tabeller.

DU kan se fra OVENNEVNTE SQL-setning at linjen for å etablere dette forholdet er

FOREIGN KEY (book_id) REFERENCES books(id) ON DELETE CASCADE

i eksemplet ovenfor er id primærnøkkelen til books – tabellen, som brukes til å etablere en relasjon med vurderingstabellen. id – dataene lagres i anmeldelser-tabellen i feltet book_id for å kartlegge bøkene med anmeldelser. Klausulen ON DELETE CASCADE angir at hvis en bok slettes, slettes også alle anmeldelser knyttet til den boken.

Komposittnøkkel Som Primærnøkkel

i forrige kapittel opprettet vi et mange-til-mange-forhold, der vår primærnøkkel ble laget av to kolonner. user_id og book_id begge sammen dannet primærnøkkelen for kryssreferansetabellen som det kan ses i denne linjen I SQL-setningen.

PRIMARY KEY (user_id, book_id)

når en primary_key består av et unikt par PRIMARY KEY (user_id, book_id), er det kjent som en sammensatt nøkkel. Det oppstår vanligvis i mange til mange relasjoner, og vi må legge til en ekstra tabell for å lagre disse relasjonsdataene. Komposittnøkkelen sikrer at dataene i tabellen vil være unike for forholdet mellom brukeren og boken. Eksempel:

|User_id | Book_id | | 1 | 1 | | 1 | 2 | | 2 | 1 | 

UNIKE Begrensninger

i Tillegg Til Primærnøkkelen, kan en database også bruke En Unik begrensning på en kolonne i databasen. I books-tabellen kan vi for eksempel velge å ikke bare ha book_id som en unik primærnøkkel, men må også lagre bokens ISBN-nummer. ISBN, International Standard Book Number er et 10-sifret unikt nummer for en bok. Vi kan velge å designe vår database for å gjøre denne kolonnen unik. Selv om dette ikke er en primærnøkkel, tillates ikke dupliserte Isbn-Er i books-tabellen, og datakvaliteten opprettholdes.

Den Unike betingelsen tillater ikke duplikatoppføring i bøker-tabellen for kolonneverdien for isbn.

IKKE NULLBEGRENSNINGER

Vi har sett «IKKE NULL» i mange AV VÅRE SQL-setninger. Begrensningen NOT NULL forhindrer at en kolonne tillater en nullverdi (dvs.denne kolonnen må inneholde data). Dette er viktig for viktige felt. For eksempel: hvis du vil legge til en bruker i en database, må du oppgi et brukernavn. Uten denne begrensningen vil databasen bli fylt med nullverdier og bli mindre nyttig.

hvordan HÅNDTERER SQL disse relasjonene?

PostgreSQL tillater relasjoner mellom både skjemaet og dataene i forskjellige tabeller ved BRUK av UTENLANDSKE NØKLER og en operasjon kalt en JOIN. Som navnet antyder, er hensikten å bli med tabeller. Gjennom denne mekanismen kan vi for eksempel få alle detaljer om forfatteren av oversiktstabellen vist ovenfor, siden den har et felt user_id som relaterer seg til user – tabellen. Her er et raskt eksempel:

Nå som vi forstår hvordan du oppretter flere tabeller og rolletastene spille i å etablere relasjoner, vil vi ta en dypere titt på de ulike sammenføyninger og HVORDAN SQL-spørringer er bygget ved hjelp av disse sammenføyninger for å hente data som kreves fra flere tabeller.

Legg igjen en kommentar

Din e-postadresse vil ikke bli publisert.