Huis Persoonlijke financiën SQL Domain-Key Normal Form (DK / NF) en Abnormal Form - dummies

SQL Domain-Key Normal Form (DK / NF) en Abnormal Form - dummies

Inhoudsopgave:

Video: Tune in for Microsoft Connect(); 2018 2024

Video: Tune in for Microsoft Connect(); 2018 2024
Anonim

Nadat een SQL-database zich in de derde normale vorm bevindt, hebt u de meeste, maar niet alle, kansen op afwijkingen van wijzigingen geëlimineerd. Normale vormen voorbij de derde zijn gedefinieerd om die paar overgebleven fouten te pletten.

Normsleutel standaardvorm (DK / NF)

Boyce-Codd normaalvorm (BCNF), vierde normaalvorm (4NF) en vijfde normaalvorm (5NF) zijn voorbeelden van dergelijke vormen. Elke vorm elimineert een mogelijke wijzigingsanomalie, maar biedt geen garantie voor het voorkomen van alle mogelijke aanpassingsanomalieën. De standaardsleutel voor de normale vorm biedt echter een dergelijke garantie.

Een relatie bevindt zich in domeinsleutel normale vorm (DK / NF) als elke beperking van de relatie een logisch gevolg is van de definitie van sleutels en domeinen. Een -beperking in deze definitie is een regel die precies genoeg is om te evalueren of deze klopt. Een -sleutel is een unieke ID van een rij in een tabel. Een domein is de reeks toegestane waarden van een kenmerk.

Kijk naar deze database, die zich in 1NF bevindt, om te zien wat u moet doen om die database in DK / NF te plaatsen.

Tabel: SALES (Customer_ID, Product, Prijs)

Sleutel: Customer_ID

Constraints:

  • Customer_ID bepaalt Product

  • Product bepaalt Prijs

  • Customer_ID moet een geheel getal zijn > 1000

Om Constraint 3 af te dwingen (dat Customer_ID moet een geheel getal groter dan 1000 zijn), kunt u eenvoudig het domein definiëren voor Customer_ID om deze beperking op te nemen. Dat maakt de beperking een logisch gevolg van het domein van de kolom CustomerID. Product is afhankelijk van Customer_ID en Customer_ID is een sleutel, dus je hebt geen probleem met Constraint 1, wat een logisch gevolg is van de definitie van de sleutel.

Constraint 2 is een probleem. Prijs is afhankelijk van (is een logisch gevolg van) Product en Product is geen sleutel. De oplossing is om de SALES-tabel op te splitsen in twee tabellen. Eén tabel gebruikt Customer_ID als een sleutel en de andere gebruikt Product als een sleutel. De database bevindt zich behalve in 3NF ook in DK / NF.

Ontwerp uw databases zodat ze indien mogelijk in DK / NF zijn. Als u dat kunt doen, zorgt het afdwingen van sleutel- en domeinbeperkingen ervoor dat aan alle beperkingen wordt voldaan en dat er geen aanpassingsanomalieën mogelijk zijn. Als de structuur van een database is ontworpen om te voorkomen dat u deze in DK / NF plaatst, moet u de beperkingen bouwen in het toepassingsprogramma dat de database gebruikt. De database zelf garandeert niet dat aan de beperkingen zal worden voldaan.

Afwijkende vorm

Zoals in het leven, dus in databases: soms loont het abnormaal zijn.Je kunt je laten meeslepen door normalisatie en te ver gaan. Je kunt een database in zoveel tabellen opdelen dat het hele ding onpraktisch en inefficiënt wordt. De prestaties kunnen kelderen. Vaak is de optimale structuur voor uw database enigszins gedenormaliseerd.

Eigenlijk zijn praktische databases (de echt grote zelfs) vrijwel nooit genormaliseerd tot helemaal DK / NF. U wilt de databases die u ontwerpt zoveel mogelijk normaliseren om echter de mogelijkheid van gegevensbeschadiging die het gevolg is van wijzigingsafwijkingen te voorkomen.

Nadat u de database zo ver mogelijk hebt genormaliseerd, maakt u enkele retrievals als een droge run. Als de prestaties niet bevredigend zijn, onderzoekt u uw ontwerp om te zien of selectieve denormalisatie de prestaties zou verbeteren zonder concessies te doen aan de integriteit. Door zorgvuldig redundantie toe te voegen op strategische locaties en te denormaliseren, net genoeg , kunt u komen tot een database die zowel efficiënt als veilig is voor anomalieën.

SQL Domain-Key Normal Form (DK / NF) en Abnormal Form - dummies

Bewerkers keuze

Key Taoists in History - dummies

Key Taoists in History - dummies

De oorsprong van het taoïsme reikt terug tot het prehistorische China, en heeft een sterke invloed gehad over de Chinese cultuur in de loop van zijn geschiedenis. De volgende mensen vormden het Taoïsme in de tijd en maakten het tot wat het nu is: Lao Tzu: Lao Tzu is de traditionele & ldquo; oprichter & rdquo; van het taoïsme en de befaamde auteur van de Tao Te Ching. ...

Woorden die worden gebruikt om religieuze twijfel te beschrijven en te labelen - dummies

Woorden die worden gebruikt om religieuze twijfel te beschrijven en te labelen - dummies

Atheïsme en andere soorten religieuze twijfel zijn verworden a-blok met labels en voorwaarden. Sommige zijn belangrijker dan andere; sommige zijn neutraal of positief; anderen worden gebruikt (zelfs door atheïsten) als putdowns. De volgende lijst bevat alle belangrijke labels: goed, slecht en lelijk. Atheist: Gelooft niet dat er een god of goden bestaat. Agnostisch: ...

Basisbeginselen van tools voor het bewerken van mobiele foto's voor visuele sociale marketing - dummies

Basisbeginselen van tools voor het bewerken van mobiele foto's voor visuele sociale marketing - dummies

Met meer en meer mensen gebruikmakend van hun smartphones om foto's te maken voor visuele sociale marketing, is het niet verrassend dat veel toepassingen voor het bewerken van mobiele telefoons beschikbaar zijn. Dit zijn de voordelen van het gebruik van mobiele bewerkings-apps: ze zijn meestal gemakkelijk te gebruiken. Ze kosten meestal minder dan $ 5. Ze hebben unieke filters en bewerken ...

Bewerkers keuze

Hoe u metrics vermijdt met uw website Analytics-gegevens - dummies

Hoe u metrics vermijdt met uw website Analytics-gegevens - dummies

U kunt zich afvragen hoe ter wereld je fouten kunt maken met gegevens die in nette rapporten en grafieken aan je worden geleverd. Social media-metricservices doen er alles aan om alle en alle gegevens die u hen opgeeft, te verzamelen. Er zijn veel valkuilen voor statistieken. U kunt eenvoudig ...

Hoe codes en patronen voor sociale media te ontcijferen - dummies

Hoe codes en patronen voor sociale media te ontcijferen - dummies

Terwijl u uw sociale netwerk volgt media-metrieken in de loop van de tijd en beginnen met het gebruik van enkele van de volgende laag-hulpmiddelen, zoals segmentatie en dayparting, om uw online en sociale interactie te analyseren, het is belangrijk om uw oog te houden op patronen van gebruik, interesse en betrokkenheid en de geheime codes uw bezoekers en fans / volgers sturen ...

Hoe u uw Klout-account verwijdert - dummies

Hoe u uw Klout-account verwijdert - dummies

Als u besluit dat u niet langer wenst deel te nemen aan Klout, je kunt je volledig afmelden door naar de opt-outpagina op Klout te gaan. com. Omdat Klout openbare informatie gebruikt die van het internet is gehaald, kan het zijn dat er al wat gegevens voor u zijn opgeslagen, zelfs als u zich niet voor Klout hebt aangemeld. Of u nu wel of niet ...

Bewerkers keuze

Het tabblad Lettertype gebruiken in Word 2007 - dummies

Het tabblad Lettertype gebruiken in Word 2007 - dummies

Het tabblad Lettertype in het lettertype Word 2007 Het dialoogvenster bevat veel opdrachten voor het opmaken van tekst, waaronder enkele die u niet kunt openen via de groep Lettertype op het tabblad Start. U kunt bijvoorbeeld ook effecten zoals schaduwen en embossing toevoegen en een voorbeeld van de resultaten bekijken voordat u ze toepast. Roep het dialoogvenster Lettertype op. ...

Hoe u de opdracht Go To gebruikt in Word 2007 - dummies

Hoe u de opdracht Go To gebruikt in Word 2007 - dummies

Gebruikt u de opdracht Ga naar in Word 2007 om de invoegwijzer naar een specifieke pagina of regel te sturen of naar de locatie van een aantal interessante dingen die Word mogelijk in uw document kan invoegen.

Hoe de opdracht Ga naar Commando te gebruiken in Word 2016 - dummies

Hoe de opdracht Ga naar Commando te gebruiken in Word 2016 - dummies

U om de invoegwijzer naar een specifieke pagina of regel te sturen of naar de locatie van een aantal interessante items die Word mogelijk in uw document kan proppen. De opdracht Ga naar is je tekstverwerkende teleporter naar elke willekeurige locatie. Ga als volgt te werk om de opdracht Ga naar te gebruiken: ...