logo

Normale formulieren in DBMS

Normalisatie is het proces van minimaliseren ontslag uit een relatie of een reeks relaties. Redundantie in relatie kan afwijkingen bij het invoegen, verwijderen en bijwerken veroorzaken. Het helpt dus om de redundantie in relaties te minimaliseren. Normale vormen worden gebruikt om redundantie in databasetabellen te elimineren of te verminderen.

Normalisatie van DBMS door Ranjan Hero

In databasebeheersystemen (DBMS) zijn normale vormen een reeks richtlijnen die ervoor zorgen dat het ontwerp van een database efficiënt, georganiseerd en vrij van gegevensafwijkingen is. Er zijn verschillende niveaus van normalisatie, elk met zijn eigen richtlijnen, ook wel normale vormen genoemd.



string.replaceall java

Belangrijke punten met betrekking tot normaalvormen in DBMS

  • Eerste normaalvorm (1NF): Dit is het meest fundamentele niveau van normalisatie. In 1NF mag elke tabelcel slechts één enkele waarde bevatten en moet elke kolom een ​​unieke naam hebben. De eerste normale vorm helpt dubbele gegevens te elimineren en zoekopdrachten te vereenvoudigen.
  • Tweede normaalvorm (2NF): 2NF elimineert overtollige gegevens door te eisen dat elk niet-sleutelattribuut afhankelijk is van de primaire sleutel. Dit betekent dat elke kolom direct gerelateerd moet zijn aan de primaire sleutel, en niet aan andere kolommen.
  • Derde normaalvorm (3NF): 3NF bouwt voort op 2NF door te eisen dat alle niet-sleutelattributen onafhankelijk van elkaar zijn. Dit betekent dat elke kolom rechtstreeks gerelateerd moet zijn aan de primaire sleutel, en niet aan andere kolommen in dezelfde tabel.
  • Boyce-Codd normale vorm (BCNF): BCNF is een strengere vorm van 3NF die ervoor zorgt dat elke determinant in een tabel een kandidaatsleutel is. Met andere woorden, BCNF zorgt ervoor dat elk niet-sleutelattribuut alleen afhankelijk is van de kandidaatsleutel.
  • Vierde normaalvorm (4NF): 4NF is een verdere verfijning van BCNF die ervoor zorgt dat een tabel geen afhankelijkheden met meerdere waarden bevat.
  • Vijfde normaalvorm (5NF): 5NF is het hoogste niveau van normalisatie en omvat het opsplitsen van een tabel in kleinere tabellen om gegevensredundantie te verwijderen en de gegevensintegriteit te verbeteren.

Normale formulieren helpen de gegevensredundantie te verminderen, de gegevensconsistentie te vergroten en de databaseprestaties te verbeteren. Hogere normalisatieniveaus kunnen echter leiden tot complexere databaseontwerpen en -query's. Het is belangrijk om bij het ontwerpen van een database een evenwicht te vinden tussen normalisatie en bruikbaarheid.

Voordelen van normale vorm

  • Verminderde gegevensredundantie: Normalisatie helpt dubbele gegevens in tabellen te elimineren, waardoor de benodigde hoeveelheid opslagruimte wordt verminderd en de database-efficiëntie wordt verbeterd.
  • Verbeterde gegevensconsistentie: Normalisatie zorgt ervoor dat gegevens op een consistente en georganiseerde manier worden opgeslagen, waardoor het risico op inconsistenties en fouten in de gegevens wordt verminderd.
  • Vereenvoudigd databaseontwerp: Normalisatie biedt richtlijnen voor het organiseren van tabellen en gegevensrelaties, waardoor het eenvoudiger wordt een database te ontwerpen en te onderhouden.
  • Verbeterde queryprestaties: Genormaliseerde tabellen zijn doorgaans gemakkelijker om gegevens uit te zoeken en op te halen, wat resulteert in snellere queryprestaties.
  • Eenvoudiger databaseonderhoud: Normalisatie vermindert de complexiteit van een database door deze op te splitsen in kleinere, beter beheersbare tabellen, waardoor het gemakkelijker wordt om gegevens toe te voegen, te wijzigen en te verwijderen.

Over het algemeen helpt het gebruik van normale formulieren in DBMS de gegevenskwaliteit te verbeteren, de database-efficiëntie te vergroten en het databaseontwerp en -onderhoud te vereenvoudigen.

Eerste normaalvorm

Als een relatie een samengesteld attribuut of meerwaardig attribuut bevat, schendt deze de eerste normale vorm of bevindt een relatie zich in de eerste normale vorm als deze geen enkel samengesteld attribuut of meerwaardig attribuut bevat. Een relatie heeft de eerste normale vorm als elk attribuut in die relatie dat is enkelvoudig gewaardeerd attribuut .



  • Voorbeeld 1 - Relatie STUDENT in tabel 1 is niet in 1NF vanwege het meerwaardige attribuut STUD_PHONE. De ontleding ervan in 1NF is weergegeven in tabel 2.
Voorbeeld

Voorbeeld

  • Voorbeeld 2 –
ID Name Courses ------------------ 1 A c1, c2 2 E c3 3 M C2, c3>
  • In de bovenstaande tabel is Course een attribuut met meerdere waarden, dus het bevindt zich niet in 1NF. Onderstaande tabel is in 1NF omdat er geen attribuut met meerdere waarden is
ID Name Course ------------------ 1 A c1 1 A c2 2 E c3 3 M c2 3 M c3>

Tweede normaalvorm

Om in de tweede normaalvorm te zijn, moet een relatie de eerste normaalvorm hebben en mag de relatie geen gedeeltelijke afhankelijkheid bevatten. Een relatie bevindt zich in 2NF als dat het geval is Geen gedeeltelijke afhankelijkheid, d.w.z. , geen enkel niet-prime attribuut (attributen die geen deel uitmaken van een kandidaatsleutel) is afhankelijk van een juiste subset van een kandidaatsleutel van de tabel. Gedeeltelijke afhankelijkheid – Als de juiste subset van de kandidaatsleutel een niet-prime-attribuut bepaalt, wordt dit een gedeeltelijke afhankelijkheid genoemd.

  • Voorbeeld 1 - Beschouw tabel 3 als volgt hieronder.
STUD_NO COURSE_NO COURSE_FEE 1 C1 1000 2 C2 1500 1 C4 2000 4 C3 1000 4 C1 1000 2 C5 2000>
  • {Merk op dat er veel cursussen zijn met hetzelfde cursusgeld} Hier kan COURSE_FEE niet alleen de waarde van COURSE_NO of STUD_NO bepalen; COURSE_FEE kan samen met STUD_NO de waarde van COURSE_NO niet bepalen; COURSE_FEE kan samen met COURSE_NO de waarde van STUD_NO niet bepalen; Daarom zou COURSE_FEE een niet-prime-attribuut zijn, omdat het niet tot de enige kandidaatsleutel {STUD_NO, COURSE_NO} behoort; Maar COURSE_NO -> COURSE_FEE, d.w.z. COURSE_FEE is afhankelijk van COURSE_NO, wat een juiste subset is van de kandidaatsleutel. Het niet-prime-attribuut COURSE_FEE is afhankelijk van een juiste subset van de kandidaatsleutel, wat een gedeeltelijke afhankelijkheid is en dus is deze relatie niet in 2NF. Om de bovenstaande relatie naar 2NF te converteren, moeten we de tabel in twee tabellen splitsen, zoals: Tabel 1: STUD_NO, COURSE_NO Tabel 2: COURSE_NO, COURSE_FEE
   Table 1     Table 2  STUD_NO COURSE_NO COURSE_NO COURSE_FEE  1 C1 C1 1000 2 C2 C2 1500 1 C4 C3 1000 4 C3 C4 2000 4 C1 C5 2000>
  • OPMERKING: 2NF probeert de hoeveelheid overtollige gegevens die in het geheugen worden opgeslagen te verminderen. Als er bijvoorbeeld 100 studenten een C1-cursus volgen, hoeven we het tarief niet op te slaan als 1000 voor alle 100 records. In plaats daarvan kunnen we het in de tweede tabel opslaan, aangezien het cursusgeld voor C1 1000 is.
  • Voorbeeld 2 – Overweeg de volgende functionele afhankelijkheden in relatie R (A, B, C, D)
AB ->C [A en B bepalen samen C] BC -> D [B en C bepalen samen D]>

In de bovenstaande relatie is AB de enige kandidaat-sleutel en is er geen gedeeltelijke afhankelijkheid, dat wil zeggen dat elke juiste subset van AB geen enkel niet-prime-attribuut bepaalt.



X is a super key. Y is a prime attribute (each element of Y is part of some candidate key).>

Voorbeeld 1: Met betrekking tot STUDENT gegeven in Tabel 4, FD ingesteld: {STUD_NO -> STUD_NAME, STUD_NO -> STUD_STATE, STUD_STATE -> STUD_COUNTRY, STUD_NO -> STUD_AGE}

Kandidaatsleutel: {STUD_NO}

Ankita Lokhande leeftijd

Voor deze relatie in tabel 4 zijn STUD_NO -> STUD_STATE en STUD_STATE -> STUD_COUNTRY waar.

STUD_COUNTRY is dus transitief afhankelijk van STUD_NO. Het schendt de derde normaalvorm.

Om het in de derde normaalvorm te converteren, ontleden we de relatie STUDENT (STUD_NO, STUD_NAME, STUD_PHONE, STUD_STATE, STUD_COUNTRY_STUD_AGE) als: STUDENT (STUD_NO, STUD_NAME, STUD_PHONE, STUD_STATE, STUD_AGE) STATE_COUNTRY (STATE, COUNTRY)

Beschouw relatie R(A, B, C, D, E) A -> BC, CD -> E, B -> D, E -> A Alle mogelijke kandidaatsleutels in bovenstaande relatie zijn {A, E, CD, BC} Alle attributen bevinden zich aan de rechterkant en alle functionele afhankelijkheden zijn priem.

Voorbeeld 2: Vind de hoogste normaalvorm van een relatie R(A,B,C,D,E) met FD ingesteld als {BC->D, AC->BE, B->E}

Stap 1: Zoals we kunnen zien, (AC)+ ={A,C,B,E,D}, maar geen van de subsets ervan kan alle attributen van de relatie bepalen, dus AC zal de kandidaatsleutel zijn. A of C kan niet worden afgeleid van enig ander attribuut van de relatie, dus er zal slechts 1 kandidaatsleutel {AC} zijn.

Stap 2: Prime-attributen zijn die attributen die in dit voorbeeld deel uitmaken van kandidaatsleutel {A, C} en andere zullen in dit voorbeeld niet-prime {B, D, E} zijn.

Java 8-functies

Stap 3: De relatie R heeft de eerste normale vorm, aangezien een relationeel DBMS geen meerwaardige of samengestelde attributen toestaat. De relatie heeft de 2e normaalvorm omdat BC->D de 2e normaalvorm heeft (BC is geen juiste subset van kandidaatsleutel AC) en AC->BE is de 2e normaalvorm (AC is kandidaatsleutel) en B->E bevindt zich in de 2e normaalvorm (B is geen juiste subset van kandidaatsleutel AC).

De relatie heeft niet de derde normaalvorm omdat in BC->D (noch BC is een supersleutel, noch D een hoofdattribuut) en in B->E (noch B is een supersleutel, noch E een hoofdattribuut), maar voldoen aan de derde normaalwaarde, want ofwel moet de LHS van een FD een supersleutel zijn, ofwel moet de RHS het hoofdkenmerk zijn. De hoogste normale relatievorm zal dus de 2e normaalvorm zijn.

Beschouw bijvoorbeeld de relatie R(A, B, C) A -> BC, B -> A en B beide zijn supersleutels, dus de bovenstaande relatie is in BCNF.

Derde normaalvorm

Er wordt gezegd dat een relatie zich in de derde normaalvorm bevindt, als we geen transitieve afhankelijkheid hebben voor niet-prime attributen. De basisvoorwaarde bij de Derde Normaalvorm is dat de relatie in de Tweede Normaalvorm moet zijn.

Hieronder staat de basisvoorwaarde waaraan moet worden voldaan in de niet-triviale functionele afhankelijkheid X -> Y:

  • X is een supersleutel.
  • Y is een primair attribuut (dit betekent dat het element van Y deel uitmaakt van de kandidaatsleutel).

Voor meer informatie, zie Derde normaalvorm in DBMS.

BCNF

BCNF (Boyce-Codd Normal Form) is slechts een geavanceerde versie van de Third Normal Form. Hier hebben we enkele aanvullende regels dan de derde normaalvorm. De basisvoorwaarde voor elke relatie om in BCNF te zijn, is dat deze de derde normaalvorm moet hebben.

We moeten ons concentreren op enkele basisregels die voor BCNF gelden:

np std
1. Table must be in Third Normal Form. 2. In relation X->Y, X moeten een supersleutel zijn in een relatie.>

Voor meer informatie, zie BCNF in DBMS.

Vierde normaalvorm

De vierde normaalvorm bevat geen niet-triviale meervoudige afhankelijkheid, behalve de kandidaatsleutel. De basisvoorwaarde bij de Vierde Normaalvorm is dat de relatie in BCNF moet zijn.

De basisregels staan ​​hieronder vermeld.

1. It must be in BCNF. 2. It does not have any multi-valued dependency.>

Voor meer informatie, zie Vierde normaalvorm in DBMS.

Vijfde normaalvorm

De vijfde normaalvorm wordt ook wel de geprojecteerde normaalvorm genoemd. De basisvoorwaarden van de Vijfde Normaalvorm worden hieronder vermeld.

afhandeling van uitzonderingen in Java
Relation must be in Fourth Normal Form. The relation must not be further non loss decomposed.>

Voor meer informatie, zie Vijfde normaalvorm in DBMS.

Toepassingen van normaalvormen in DBMS

  • Data consistentie: Normale formulieren zorgen ervoor dat de gegevens consistent zijn en geen overbodige informatie bevatten. Dit helpt inconsistenties en fouten in de database te voorkomen.
  • Gegevensredundantie: Normale formulieren minimaliseren gegevensredundantie door gegevens in tabellen te organiseren die alleen unieke gegevens bevatten. Dit vermindert de hoeveelheid opslagruimte die nodig is voor de database en maakt het eenvoudiger te beheren.
  • Reactietijd: Normale formulieren kunnen de prestaties van query's verbeteren door het aantal joins dat nodig is om gegevens op te halen te verminderen. Dit helpt de verwerking van zoekopdrachten te versnellen en de algehele systeemprestaties te verbeteren.
  • Database-onderhoud: Normale formulieren maken het gemakkelijker om de database te onderhouden door de hoeveelheid overtollige gegevens te verminderen die moeten worden bijgewerkt, verwijderd of aangepast. Dit helpt het databasebeheer te verbeteren en het risico op fouten of inconsistenties te verminderen.
  • Databaseontwerp: Normale formulieren bieden richtlijnen voor het ontwerpen van databases die efficiënt, flexibel en schaalbaar zijn. Dit zorgt ervoor dat de database indien nodig eenvoudig kan worden gewijzigd, bijgewerkt of uitgebreid.

Enkele belangrijke punten over normale vormen

  • BCNF is vrij van redundantie veroorzaakt door functionele afhankelijkheden.
  • Als een relatie in BCNF ligt, dan is ook aan 3NF voldaan.
  • Als alle attributen van de relatie een hoofdattribuut zijn, dan bevindt de relatie zich altijd in 3NF.
  • Een relatie in een Relationele Database is altijd en minimaal in 1NF-vorm.
  • Elke binaire relatie (een relatie met slechts 2 attributen) bevindt zich altijd in BCNF.
  • Als een relatie alleen singleton-kandidaatsleutels heeft (dat wil zeggen dat elke kandidaatsleutel uit slechts 1 attribuut bestaat), dan bevindt de relatie zich altijd in 2NF (omdat er geen gedeeltelijke functionele afhankelijkheid mogelijk is).
  • Soms kan het zijn dat het kiezen voor het BCNF-formulier de functionele afhankelijkheid niet behoudt. Ga in dat geval alleen voor BCNF als de verloren FD(s) niet nodig zijn, anders normaliseer alleen tot 3NF.
  • Er zijn nog veel meer normale vormen die bestaan ​​na BCNF, zoals 4NF en meer. Maar in echte databasesystemen is het over het algemeen niet vereist om verder te gaan dan BCNF.

Conclusie

Concluderend kunnen relationele databases worden gerangschikt volgens een reeks regels die normale vormen worden genoemd database beheer (1NF, 2NF, 3NF, BCNF, 4NF en 5NF), waardoor gegevensredundantie wordt verminderd en de gegevensintegriteit behouden blijft. Door verschillende soorten gegevensafwijkingen en afhankelijkheden op te lossen, breidt elke volgende normaalvorm zich uit op de vorige. De specifieke vereisten en eigenschappen van de gegevens die worden opgeslagen, bepalen welke normale vorm moet worden gebruikt; hogere normaalvormen bieden een striktere data-integriteit, maar kunnen ook resulteren in ingewikkelder databasestructuren.

Vraaglinks van vorig jaar

  • GATE CS 2012, vraag 2
  • GATE CS 2013, vraag 54
  • GATE CS 2013, vraag 55
  • GATE CS 2005, vraag 29
  • GATE CS 2002, vraag 23
  • GATE CS 2002, vraag 50
  • GATE CS 2001, vraag 48
  • GATE CS 1999, vraag 32
  • GATE IT 2005, vraag 22
  • GATE IT 2008, vraag 60
  • GATE CS 2016 (Set 1), Vraag 31

Veelgestelde vragen over normaal formulier

Vraag.1: Waarom is normalisatie belangrijk in DBMS?

Antwoord:

Normalisatie helpt bij het voorkomen van afwijkingen in de database, wat uiteindelijk de consistentie van de database garandeert en helpt bij het eenvoudig onderhouden van de database.

Vraag 2: Is het mogelijk om de database te overnormaliseren?

Antwoord:

Ja, overmatige normalisatie leidt tot complexe query's en vermindert ook de prestaties. Het zorgt voor een evenwicht tussen normalisatie en bruikbaarheid.

Vraag 3: Is het nodig om een ​​database te normaliseren naar de hoogste normale vorm, zoals (BCNF of 4NF)?

Antwoord:

Er is geen bepaalde noodzakelijke voorwaarde voor enige databasenormalisatie. Vaak kan een lagere vorm voldoende zijn voor specifieke prestaties en eenvoud.