Vad är skillnaden mellan första NF och andra NF?

En av de största utmaningarna i utforma en databas är att design-out duplicering av data. Du kan citera detta tillvägagångssätt som "en bit av information, endast en gång". Detta är viktigt eftersom det gör det lättare att säkerställa data förblir konsekventa över flera tabeller. Denna design strategi kallas "normalisera" och reglerna skriven av Edgar Codd (farfar till relationsdatabaser) omfattar olika nivåer av "normalisera", som namnges första Normal Form (1NF), andra Normal Form (2NF)... ända upp till sjätte normalformen (6NF).

Första normalformen är processen att "förenkla" en tabell för att göra det lättare att komma åt och uppdatera och ta bort eventuella strukturella begränsningar. Ta exemplet nedan tabell från ett lager system.

ProductCode
Beskrivning
QuantityInLocationA
ValueInLocationA
QuantityInLocationB
ValueInLocationB
QuantityInLocationC
ValueInLocationC

Detta kunde hålla värden som;

ABC001, Katsouris korv, 12, $1,90, 10, $1.60, 22, $3.50
NOR999, Adler skrivmaskiner, 1, $0.10, 0, $0,00, 0, $0.00

Problemen med denna struktur borde vara ganska självklart; i poster där det finns verkligen ett värde (som den andra) det finns redundanta data. Om du behöver att hålla information om kvantitet och värde för 4, 5 eller 999 platser, tabellen kommer att få större och större med fler och fler redundans. Åtkomst till en uppsättning värden i flera poster är alltför komplex.

Bordet skulle normaliseras för 1NF av "plattas" det, som kommer att behöva en ny nyckelkolumn att hålla vår plats värderingar.

ProductCode
Beskrivning
LocationCode
Kvantitet
Värde

ABC001, Katsouris korv, A, 12, $1,90
ABC001, Katsouris korv, "B", 10, $1,60
ABC001, Katsouris korv, "C", 22, $3.50
NOR999, Adler skrivmaskiner, A, 1, $0,10

Nu kommer du att märka att nu har vi flera poster i stället för en, vi har infört behovet av att lagra en bit av information (beskrivning) flera gånger. Detta anses vara en dålig sak eftersom det kommer att göra det svårare att ändra produktbeskrivningen tillförlitligt, eftersom vi skulle behöva uppdatera flera poster istället för bara en. Detta är där andra normalformen (2NF) Rider till undsättning, gör oss dela denna typ av kolumn i en separat tabell.

Vår produkt tabell blir;

ProductCode
LocationCode
Kvantitet
Värde

Med värden.

ABC001, A, 12, $1,90
ABC001, "B", 10, $1,60
ABC001, "C", 22, $3.50
NOR999, A, 1, $0,10

Sedan har vi en ny tabell som ska innehålla Beskrivning;

ProductCode
Beskrivning

Med värden.

ABC001, Katsouris korv
NOR999, Adler skrivmaskiner

Om du kan behärska 1NF och 2NF, är du 90% vägen till att bli en databas designer!
---1. normalformen: detta diktat som alla bordet vara platt och har inget upprepande grupper. Med andra ord denna tabell är platt och har bara 2 dimensioner-length(number of records or rows) och bredd (antal fält eller kolumner) och viktigast av allt, kan inte innehålla fält med fler än ett värde.
2. normalformen: denna dikterar att data i alla kolumner utan nyckel vara helt beroende av primärnyckeln bara. Med andra ord, måste den primära nyckeln finnas innan posten kan anses vara av den andra normalformen.