logo

Segona forma normal (2NF)

La primera forma normal (1NF) no elimina la redundància, sinó que elimina els grups que es repeteixen. En lloc de tenir diverses columnes del mateix tipus de dades en un registre, (forma 0NF o no normalitzada) elimineu la informació repetida en una relació separada i les representeu com a files. Això és el que constitueix 1NF.

Segona forma normal

La segona forma normal (2NF) es basa en el concepte de dependència totalment funcional. La segona forma normal s'aplica a les relacions amb claus compostes, és a dir, relacions amb una clau primària composta per dos o més atributs. Una relació amb una clau primària d'un sol atribut es troba automàticament en almenys 2NF. Una relació que no es troba a 2NF pot patir anomalies d'actualització. Per estar en la segona forma normal, una relació ha d'estar en la primera forma normal i la relació no ha de contenir cap dependència parcial. Una relació està a 2NF si no té cap dependència parcial, és a dir, cap atribut no primer (atributs que no formen part de cap clau candidata) depèn de cap subconjunt adequat de cap clau candidata de la taula. En altres paraules,

Una relació que es troba en la primera forma normal i cada atribut que no és de clau primària depèn completament funcionalment de la clau primària, aleshores la relació està en segona forma normal (2NF).



Nota - Si el subconjunt adequat de la clau candidata determina un atribut no primer, s'anomena dependència parcial . El normalització de les relacions 1NF amb 2NF implica el eliminació de dependències parcials . Si existeix una dependència parcial, eliminem els atributs parcialment dependents de la relació col·locant-los en una nova relació juntament amb una còpia del seu determinant. Considereu els exemples que es donen a continuació.

Exemple-1: Considereu la taula de la següent manera.

STUD_NO COURSE_NO COURSE_FEE 1 C1 1000 2 C2 1500 1 C4 2000 4 C3 1000 4 C1 1000 2 C5 2000>

{Tingueu en compte que hi ha molts cursos que tenen la mateixa tarifa. } Aquí, COURSE_FEE no pot decidir per si sol el valor de COURSE_NO o STUD_NO; COURSE_FEE juntament amb STUD_NO no poden decidir el valor de COURSE_NO; COURSE_FEE juntament amb COURSE_NO no poden decidir el valor de STUD_NO; Per tant, COURSE_FEE seria un atribut no principal, ja que no pertany a l'única clau candidata {STUD_NO, COURSE_NO} ; Però, COURSE_NO -> COURSE_FEE, és a dir, COURSE_FEE depèn de COURSE_NO, que és un subconjunt adequat de la clau candidata. L'atribut no principal COURSE_FEE depèn d'un subconjunt adequat de la clau candidata, que és una dependència parcial i, per tant, aquesta relació no es troba a 2NF. Per convertir la relació anterior a 2NF, hem de dividir la taula en dues taules com ara: Taula 1: STUD_NO, COURSE_NO Taula 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  2 C5>

Nota - 2NF intenta reduir les dades redundants que s'emmagatzemen a la memòria. Per exemple, si hi ha 100 estudiants que cursen el curs C1, no hem d'emmagatzemar la seva tarifa com a 1000 per als 100 registres, sinó que una vegada que la podem emmagatzemar a la segona taula, ja que la tarifa del curs per a C1 és de 1000.

Exemple-2: Considereu les dependències funcionals següents en la relació R (A, B, C, D)

AB ->C [A i B junts determinen C] BC -> D [B i C junts determinen D]>

Resposta:

En primer lloc, podem comprovar si hi ha dependències parcials. Una dependència parcial es produeix quan un atribut no principal (no part de cap clau candidata) depèn només d'una part d'una clau candidata.

Les claus candidates per a la relació R es poden determinar trobant el tancament de cada atribut:

AB determina totes les claus.

Ara, comprovem les dependències parcials:

No hi ha dependències parcials en aquesta relació perquè cada atribut no primer (C i D) depèn de totes les claus candidates de les quals forma part (AB i BC, respectivament).

Per tant, la relació R ja es troba en 3a forma normal (3NF) perquè compleix les condicions de 1a forma normal (1NF) i 2a forma normal (2NF) i no té cap dependència transitiva.

Conclusió

En conclusió, 2NF és un concepte fonamental de normalització de bases de dades que ajuda a eliminar dependències parcials de la vostra base de dades relacional. Seguir les regles de 2NF ajuda a organitzar la vostra base de dades per evitar anomalies i garantir la integritat de les dades, facilitant l'emmagatzematge i la recuperació de dades.