Hem Personliga finanser SQL Första, andra och tredje normala formulär - dummies

SQL Första, andra och tredje normala formulär - dummies

Innehållsförteckning:

Video: Ruby on Rails by Leila Hofer 2024

Video: Ruby on Rails by Leila Hofer 2024
Anonim

Det finns tre källor till modifieringsavvikelser i SQL Dessa definieras som första, andra och tredje normala former (1NF, 2NF, 3NF). Dessa normala former fungerar som hjälpmedel för modifieringsavvikelser.

Första normala formuläret

För att vara i första normala form (1NF) måste ett bord ha följande egenskaper:

  • Tabellen är tvådimensionell med rader och kolumner.

  • Varje rad innehåller data som gäller vissa saker eller delar av en sak.

  • Varje kolumn innehåller data för ett enda attribut av det som beskrivs.

  • Varje cell (skärningspunkten i en rad och en kolumn) i tabellen måste bara ha ett enda värde.

  • Inlägg i någon kolumn måste alla vara av samma slag. Om till exempel inmatningen i en rad i en kolumn innehåller ett anställningsnamn måste alla andra rader innehålla anställningsnamn i den kolumnen.

  • Varje kolumn måste ha ett unikt namn.

  • Inga två rader kan vara identiska (det vill säga varje rad måste vara unik).

  • Ordningen på kolumnerna och ordningen i raderna är inte signifikanta.

En tabell (relation) i första normala formen är immun mot vissa slags modifieringsavvikelser men är fortfarande föremål för andra. Försäljningsbordet är i första normala form, och bordet är föremål för radering och införande avvikelser. Första normala formen kan vara användbar i vissa applikationer men otillförlitliga hos andra.

Andra normala formuläret

För att uppskatta andra normala formulär måste du förstå tanken på funktionellt beroende. Ett funktionellt beroende är ett förhållande mellan eller bland attribut. Ett attribut är funktionellt beroende av en annan om värdet av det andra attributet bestämmer värdet på det första attributet. Om du vet värdet på det andra attributet kan du bestämma värdet på det första attributet.

Anta exempelvis att en tabell har attribut (kolumner) StandardCharge, NumberOfTests och TotalCharge som hänför sig till följande ekvation:

TotalCharge = StandardCharge * NumberOfTests

TotalCharge är funktionellt beroende av både StandardCharge och NumberOfTests. Om du känner till värdena för StandardCharge och NumberOfTests kan du bestämma värdet på TotalCharge.

Varje tabell i första normalform måste ha en unik primär nyckel. Den nyckeln kan bestå av en eller flera kolumner. En nyckel som består av mer än en kolumn kallas en kompositnyckel. För att vara i andra normala form (2NF) måste alla icke-nyckelattribut vara beroende av hela nyckeln. Således är varje relation som ligger i 1NF med en enda attributnyckel automatiskt i andra normala form.

Om ett förhållande har en sammansatt nyckel, måste alla icke-nyckelattribut vara beroende av alla komponenter i nyckeln. Om du har ett bord där vissa icke-nyckelattribut inte beror på alla komponenter i nyckeln, bryter du upp tabellen i två eller flera tabeller så att alla icke-nyckelattribut i alla nya tabeller beror på alla komponenter av den primära nyckeln.

Ljud förvirrande? Titta på ett exempel för att klargöra saker. Tänk på försäljnings tabellen. Istället för att bara registrera ett inköp för varje kund lägger du till en rad varje gång en kund köper en vara för första gången. En ytterligare skillnad är att charterkunder (de som har Customer_ID-värden på 1001 till 1007) får rabatt på det normala priset.

Customer_ID identifierar inte en rad unikt. I två rader är Customer_ID 1001. I två andra rader är Customer_ID 1010. Kombinationen av kolonnen Customer_ID och Produkt-kolumnen identifierar en rad. Dessa två kolumner tillsammans är en sammansatt nyckel.

Om inte för det faktum att vissa kunder kvalificerar sig för rabatt och andra inte, skulle tabellen inte vara i andra normala format eftersom priset (en icke-nyckelattribut) bara skulle bero på en del av nyckeln (Produkt). Eftersom vissa kunder kvalificerar sig för rabatt, beror priset på både CustomerID och Product, och tabellen är i andra normala format.

Tredje normal form

Tabeller i andra normala formen är särskilt sårbara för vissa typer av modifieringsavvikelser - i synnerhet de som kommer från transitiva beroenden.

A Transitivt beroende inträffar när ett attribut beror på ett andra attribut, vilket beror på ett tredje attribut. Radering i en tabell med ett sådant beroende kan orsaka oönskade informationsförluster. En relation i tredje normalform är en relation i andra normala form utan transitiva beroenden.

Se igen på försäljningsbordet, vilket du vet är i första normala form. Så länge du begränsar poster för att tillåta endast en rad för varje Customer_ID, har du en primär nyckel med en attribut och tabellen är i andra normala format. Tabellen är emellertid fortfarande föremål för avvikelser. Vad händer om kund 1010 inte är missnöjd med klorbleken, och returnerar föremålet för återbetalning?

Du vill ta bort den tredje raden från bordet, vilket visar att kund 1010 köpte klorblekmedel. Du har ett problem: Om du tar bort den raden, förlorar du också det faktum att klorblek har ett pris på $ 4. Denna situation är ett exempel på ett transitivt beroende. Priset beror på Produkt, vilket i sin tur beror på den primära nyckeln Customer_ID.

Att bryta försäljningsbordet i två tabeller löser problemet med transitivt beroende. De två tabellerna utgör en databas som är i tredje normala form.

SQL Första, andra och tredje normala formulär - dummies

Redaktörens val

Hur man justerar inställningar för din bakgrund i Gamestar Mechanic - dummies

Hur man justerar inställningar för din bakgrund i Gamestar Mechanic - dummies

När du har lagt till en Bakgrund till ditt spel kan du ytterligare anpassa bakgrunden i Gamestar Mechanic genom att använda två ytterligare alternativ i dialogrutan Nivåinställningar: Bakgrundsrullning och Bakgrundsstil. Bakgrundsrullning Parallaxen är en viktig egenskap hos bakgrunden i spel där alternativet Fler skärm är valt. Redigerbar ...

Hur man balanserar svårigheten hos ett Gamestar Mechanic Game - dummies

Hur man balanserar svårigheten hos ett Gamestar Mechanic Game - dummies

Det vanligaste exemplet på balansering ett spel i Gamestar Mechanic balanserar svårigheten: Gör inte spelet så lätt att det är tråkigt och gör det inte så svårt att det är frustrerande. För att finjustera spelets svårighet måste du göra små förändringar utan att bli förbunden till ...

För att kalibrera accelerometern för ditt HTML5-spel - dummies

För att kalibrera accelerometern för ditt HTML5-spel - dummies

Som standard antar HTML5-spelaccelerometern Det neutrala läget är perfekt horisontellt - det vill säga enheten ligger platt på ett bord. Men det här är mobila enheter, och spelare vill ofta ha det neutrala stället att vara någon annanstans. Grundläggande tekniken för att kalibrera tiltkontrollen är att hålla koll på en ...

Redaktörens val

Gör äta rena förändringar i livet - dummies

Gör äta rena förändringar i livet - dummies

Rena ätförändringar i ditt liv är inte svåra att göra, men de tar lite gumption, uthållighet och övning. När du gör en koncentrerad insats för att äta lägre på livsmedelskedjan, märka hur detta beslut påverkar andra delar av ditt liv. För att vara framgångsrik måste du tänka på mat och äta annorlunda, vilka ...

Köttfri måndag och hållbarhet - dummies

Köttfri måndag och hållbarhet - dummies

Köttfri måndag är ett ganska nytt koncept som ofta nämns på Facebook och Twitter. Allt det betyder är att en dag i veckan väljer du att äta vegetarian eller vegan. Inte bara kan Meatless Monday spara pengar (eftersom kött är dyrt), men planen hjälper miljön (eftersom stora kött-, fläsk- och kycklingsanläggningar skapar nitrat ...

5 Hälsofördelar Kopplade till Medelhavsdiet - dummies

5 Hälsofördelar Kopplade till Medelhavsdiet - dummies

Medelhavsdieten har länge varit prydnad för vilket ger hälsoeffekter, såsom att minska kranskärlssjukdom och minska risken för vissa cancerformer. Inklusive färska grönsaker och frukter, baljväxter och hälsosamma fetter i din kost kan hjälpa dig att förbättra din hälsa på många sätt. Forskning visar att en traditionell medelhavsdiet minskar ...

Redaktörens val

Hur man arbetar med Nikon D3300-minneskort - dummies

Hur man arbetar med Nikon D3300-minneskort - dummies

Som mediet som lagrar dina bildfiler , Nikon D3300s minneskort är en viktig del av din kamera. Följ dessa tips för att köpa och behålla kort: Köpkort: När du handlar för ett SD-minneskort är den enda specifikationen som noterar annat än kortkapaciteten kort hastighet, vilket indikerar hur snabbt data ...

Timerfotografering: Nikon D5200-dummies med Nikon D5200

Timerfotografering: Nikon D5200-dummies med Nikon D5200

Med intervall Timer Fotografering på Nikon D5200, du kan ställa in kameran för att automatiskt släppa avtryckaren med intervall som sträcker sig från sekunder till timmar från varandra. Med den här funktionen kan du fånga upp ett ämne eftersom det förändras över tiden - en teknik som är känd som fotografering med tidsfördröjning - utan att behöva stå runt på ...

JPEG Filer på Nikon D3300-dummies

JPEG Filer på Nikon D3300-dummies

Uttalad "jay-peg", det här formatet är standardinställningen på din Nikon D3300, som det är på de flesta digitalkameror. JPEG är populär av två huvudorsaker: Omedelbar användbarhet: Alla webbläsare och e-postprogram kan visa JPEG-filer, så att du kan dela bilder online direkt efter att du har tagit dem. Du kan också få en ...