sql >> Database teknologi >  >> RDS >> Mysql

For normalform og for- og efternavne

1NF handler om atomicitet, ikke redundans (det er hvad højere normale former handler om). I det væsentlige, hvis alle attributter er atomare, er din tabel i 1NF.

Det er klart, om en tabel er i 1NF afhænger af, hvad du definerer som "atomisk". Hvad "atomicitet" faktisk betyder, er et spørgsmål om kontrovers, men jeg ville tage en pragmatisk tilgang fra sag til sag her og blot spørge:

I forbindelse med det problem, jeg forsøger at løse, giver det nogensinde mening at få adgang til nogen del af værdien, eller jeg altid får adgang til hele værdien?

Hvis jeg altid får adgang til helheden, er den atomær i netop den sammenhæng.

I dit eksempel er det sandsynligt, at du vil have adgang til first_name og last_name separat, så full_name ville være ikke-atomare, og det ville være årsagen til at overtræde 1NF. Hvis du derimod ved, at du aldrig får brug for at få adgang til for- og efternavn separat, så kunne du have bare full_name og stadig ikke overtræder 1NF.

"Adgang til" værdien skal forstås ret bredt her. Det kan selvfølgelig betyde at læse det fra databasen, men det kan også betyde at bruge det i en begrænsning eller indeksere det osv...



  1. Hvordan får man størrelsen på en MySQL-database?

  2. Maching brugere fra brugernavn til brugergruppe

  3. Værktøj til oversættelse af Oracle PL/SQL til Postgresql PL/pgSQL

  4. MySQL Tutorial:MySQL IN-klausul (Grundlæggende)