Software

Een database in de derde normale vorm plaatsen (3NF)

Schrijver: Robert Simon
Datum Van Creatie: 22 Juni- 2021
Updatedatum: 12 Kunnen 2024
Anonim
Normaliseren: 1e t/m 3e normaalvorm
Video: Normaliseren: 1e t/m 3e normaalvorm

Inhoud

Derde normale vorm (3NF) is een databaseprincipe die de integriteit van gegevens ondersteunt door voort te bouwen op de database normalisatieprincipes die worden geboden door de eerste normale vorm (1NF) en de tweede normale vorm (2NF).

Het doel van 3NF is om de databaseverwerking te verbeteren en tegelijkertijd de opslagkosten te minimaliseren.

Derde normale vormvereisten

Er zijn twee basisvereisten voor een database in 3NF:

  • De database moet al voldoen aan de eisen van zowel 1NF als 2NF.
  • Alle databasekolommen moeten afhangen van de primaire sleutel, wat betekent dat de waarde van elke kolom alleen kan worden afgeleid van de primaire sleutel.

Primaire sleutelafhankelijkheid

Laten we verder onderzoeken wat we bedoelen met het feit dat alle kolommen afhankelijk moeten zijn van de primaire sleutel. Als de waarde van een kolom kan worden afgeleid van zowel de primaire sleutel als een andere kolom in de tabel, is deze in strijd met 3NF. Overweeg een tabel met werknemers met deze kolommen:


  • EmployeeID
  • Voornaam
  • Achternaam

Zijn zowel Achternaam als Voornaam alleen afhankelijk van de waarde van EmployeeID? Kan LastName afhangen van FirstName? Nee, omdat niets inherent aan LastName de waarde van FirstName zou suggereren.

Kan FirstName afhangen van LastName? Nee, nogmaals, want hetzelfde is waar: wat een achternaam ook mag zijn, het kon geen hint geven over de waarde van voornaam. Daarom voldoet deze tabel aan 3NF.

Maar overweeg dit Voertuigen tafel:

  • VehicleID
  • Fabrikant
  • Model

De fabrikant en het model kunnen afkomstig zijn van de voertuig-ID, maar het model kan ook afkomstig zijn van de fabrikant omdat slechts één bepaalde fabrikant een voertuigmodel maakt. Dit tabelontwerp voldoet niet aan 3NF en kan daarom resulteren in gegevensafwijkingen. U kunt bijvoorbeeld de fabrikant bijwerken zonder het model bij te werken, waardoor onnauwkeurigheden ontstaan.

Als u de extra afhankelijke kolom naar een andere tabel verplaatst en ernaar verwijst met een externe sleutel, is deze compatibel. Dit zou resulteren in twee tabellen:


In de Voertuigen tafel hieronder is de ModelID een refererende sleutel in de Modeltabel:

  • VehicleID
  • Fabrikant
  • ModelID

Deze nieuwe Modellen tafel brengt modellen in kaart aan fabrikanten. Als u voertuiggegevens specifiek voor een model wilt bijwerken, doet u dit in deze tabel en niet in de Voertuigtabel.

  • ModelID
  • Fabrikant
  • Model

Afgeleide velden in het 3NF-model

Een tabel kan een afgeleid veld bevatten, een veld dat wordt berekend op basis van andere kolommen in de tabel. Bekijk bijvoorbeeld deze tabel met widgetorders:

  • Bestelnummer
  • Klantnummer
  • Eenheid prijs
  • Aantal stuks
  • Totaal

Het totaal breekt 3NF-conformiteit omdat het kan worden afgeleid door de eenheidsprijs te vermenigvuldigen met de hoeveelheid, in plaats van volledig afhankelijk te zijn van de primaire sleutel. U moet Total van de tafel verwijderen om aan het derde normale formulier te voldoen.


Omdat het is afgeleid, is het zelfs beter om het helemaal niet in de database op te slaan, maar het gewoon on-the-fly te berekenen bij het uitvoeren van databasequery's. We hebben deze vraag bijvoorbeeld eerder gebruikt om bestelnummers en totalen op te halen:

SELECT bestelnummer, totaal

VAN WidgetOrders

Gebruik nu de volgende query om dezelfde resultaten te bereiken zonder de normalisatieregels te schenden:

SELECT OrderNumber, UnitPrice * Aantal AS Totaal

VAN WidgetOrders

Fascinerende Berichten

Populaire Artikels

The Movies: Stunts & Effects Cheats voor pc
Gaming

The Movies: Stunts & Effects Cheats voor pc

Ontwikkeld door Lionhead tudio en uitgebracht in 2006, De film: tunt en effecten i een uitbreidingpakket voor het zakelijke imulatiepel De biocoop. Het voegt peciale effecten en tunt toe aan de franc...
De 7 beste online shopping-websites van 2020
Internet

De 7 beste online shopping-websites van 2020

beoordeeld door Wat we leuk vinden Betrouwbare levering en klantenervice. Prime-leden komen in aanmerking voor grati verzending en andere voordelen. Frequente deal. Wat we niet leuk vinden De mobiele...