logo

Formes normals en DBMS

Normalització és el procés de minimització redundància d'una relació o conjunt de relacions. La redundància en relació pot provocar anomalies d'inserció, supressió i actualització. Per tant, ajuda a minimitzar la redundància en les relacions. Formes normals s'utilitzen per eliminar o reduir la redundància a les taules de bases de dades.

Normalització de DBMS per Ranjan Hero

En els sistemes de gestió de bases de dades (DBMS), els formularis normals són una sèrie de directrius que ajuden a garantir que el disseny d'una base de dades sigui eficient, organitzat i lliure d'anomalies de dades. Hi ha diversos nivells de normalització, cadascun amb el seu propi conjunt de directrius, coneguts com a formes normals.



Punts importants sobre els formularis normals en DBMS

  • Primera forma normal (1NF): Aquest és el nivell més bàsic de normalització. A 1NF, cada cel·la de la taula ha de contenir només un valor únic i cada columna ha de tenir un nom únic. El primer formulari normal ajuda a eliminar les dades duplicades i simplificar les consultes.
  • Segona forma normal (2NF): 2NF elimina les dades redundants en requerir que cada atribut que no sigui clau depengui de la clau primària. Això vol dir que cada columna ha d'estar directament relacionada amb la clau primària i no amb altres columnes.
  • Tercera forma normal (3NF): 3NF es basa en 2NF exigint que tots els atributs que no són clau siguin independents els uns dels altres. Això vol dir que cada columna ha d'estar directament relacionada amb la clau primària i no amb cap altra columna de la mateixa taula.
  • Forma normal de Boyce-Codd (BCNF): BCNF és una forma més estricta de 3NF que garanteix que cada determinant d'una taula sigui una clau candidata. En altres paraules, BCNF assegura que cada atribut no clau depèn només de la clau candidata.
  • Quarta forma normal (4NF): 4NF és un perfeccionament més de BCNF que garanteix que una taula no contingui cap dependència multivalor.
  • Cinquena forma normal (5NF): 5NF és el nivell més alt de normalització i implica descompondre una taula en taules més petites per eliminar la redundància de dades i millorar la integritat de les dades.

Els formularis normals ajuden a reduir la redundància de dades, augmentar la coherència de les dades i millorar el rendiment de la base de dades. Tanmateix, nivells més alts de normalització poden conduir a dissenys i consultes de bases de dades més complexes. És important trobar un equilibri entre la normalització i la pràctica a l'hora de dissenyar una base de dades.

Avantatges de la forma normal

  • Redundància de dades reduïda: La normalització ajuda a eliminar les dades duplicades a les taules, reduint la quantitat d'espai d'emmagatzematge necessari i millorant l'eficiència de la base de dades.
  • Millora de la coherència de les dades: La normalització garanteix que les dades s'emmagatzemen de manera coherent i organitzada, reduint el risc d'incoherències i errors de dades.
  • Disseny simplificat de bases de dades: La normalització proporciona pautes per organitzar taules i relacions de dades, facilitant el disseny i el manteniment d'una base de dades.
  • Rendiment de consultes millorat: Les taules normalitzades solen ser més fàcils de cercar i recuperar dades, el que resulta en un rendiment de consultes més ràpid.
  • Manteniment de la base de dades més fàcil: La normalització redueix la complexitat d'una base de dades desglossant-la en taules més petites i més manejables, fent que sigui més fàcil afegir, modificar i suprimir dades.

En general, l'ús de formularis normals al DBMS ajuda a millorar la qualitat de les dades, augmentar l'eficiència de la base de dades i simplificar el disseny i el manteniment de la base de dades.

Primera forma normal

Si una relació conté un atribut compost o multivalor, viola la primera forma normal o una relació està en la primera forma normal si no conté cap atribut compost o multivalor. Una relació està en la primera forma normal si tots els atributs d'aquesta relació ho són atribut valorat únic .



  • Exemple 1 - La relació STUDENT de la taula 1 no és a 1NF a causa de l'atribut multivalor STUD_PHONE. La seva descomposició en 1NF s'ha mostrat a la taula 2.
Exemple

Exemple

  • Exemple 2 -
ID Name Courses ------------------ 1 A c1, c2 2 E c3 3 M C2, c3>
  • A la taula anterior, el curs és un atribut de valors múltiples, de manera que no és a 1NF. A sota de la taula es troba a 1NF, ja que no hi ha cap atribut de valors múltiples
ID Name Course ------------------ 1 A c1 1 A c2 2 E c3 3 M c2 3 M c3>

Segona forma normal

Per estar en segona forma normal, una relació ha d'estar en primera forma normal i la relació no ha de contenir cap dependència parcial. Una relació és a 2NF si ho té Sense dependència parcial, és a dir , cap atribut no principal (atributs que no formen part de cap clau candidata) depèn de cap subconjunt adequat de cap clau candidata de la taula. Dependència parcial - Si el subconjunt adequat de clau candidata determina un atribut no primer, s'anomena dependència parcial.

  • Exemple 1 - Considereu la taula-3 com a continuació.
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 del curs} 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>
  • 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 cal que emmagatzemem la seva tarifa com a 1000 per als 100 registres, en canvi, 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]>

En la relació anterior, AB és l'única clau candidata i no hi ha cap dependència parcial, és a dir, cap subconjunt propi d'AB no determina cap atribut no primer.



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

Exemple 1: En relació amb l'ESTUDIANT que es mostra a la taula 4, FD va establir: {STUD_NO -> STUD_NAME, STUD_NO -> STUD_STATE, STUD_STATE -> STUD_COUNTRY, STUD_NO -> STUD_AGE}

Clau del candidat: {STUD_NO}

Per a aquesta relació de la taula 4, STUD_NO -> STUD_STATE i STUD_STATE -> STUD_COUNTRY són certs.

Per tant, STUD_COUNTRY depèn transitivament de STUD_NO. Infringeix la tercera forma normal.

Per convertir-lo a la tercera forma normal, descompondrem la relació STUDENT (STUD_NO, STUD_NAME, STUD_PHONE, STUD_STATE, STUD_COUNTRY_STUD_AGE) com a: STUDENT (STUD_NO, STUD_NAME, STUD_PHONE, STUD_STATE, STUD_AGE) STUD_COUNTRY (STATE, COUNTRY)

Considereu la relació R(A, B, C, D, E) A -> BC, CD -> E, B -> D, E -> A Totes les claus candidates possibles en la relació anterior són {A, E, CD, BC} Tots els atributs estan al costat dret de totes les dependències funcionals són primes.

Exemple 2: Trobeu la forma normal més alta d'una relació R(A,B,C,D,E) amb FD establerta com a {BC->D, AC->BE, B->E}

Pas 1: Com podem veure, (AC)+ ={A,C,B,E,D} però cap dels seus subconjunts pot determinar tots els atributs de la relació, de manera que AC serà la clau candidata. A o C no es poden derivar de cap altre atribut de la relació, de manera que només hi haurà 1 clau candidata {AC}.

Pas 2: Els atributs primers són aquells atributs que formen part de la clau candidata {A, C} en aquest exemple i altres no seran primers {B, D, E} en aquest exemple.

Pas 3: La relació R es troba en la primera forma normal, ja que un SGBD relacional no permet un atribut multivalor o compost. La relació està en 2a forma normal perquè BC->D està en 2a forma normal (BC no és un subconjunt adequat de la clau candidata AC) i AC->BE està en 2a forma normal (AC és la clau candidata) i B->E està en segona forma normal (B no és un subconjunt adequat de la clau candidata AC).

La relació no està en 3a forma normal perquè en BC->D (ni BC és una superclau ni D és un atribut primer) i en B->E (ni B és una superclau ni E és un atribut primer), sinó per satisfer la 3a normalitat perquè, o LHS d'un FD hauria de ser superclau o RHS hauria de ser l'atribut principal. Així, la forma normal més alta de relació serà la 2a forma normal.

Per exemple, considereu la relació R(A, B, C) A -> BC, B -> A i B són superclaus, de manera que la relació anterior està a BCNF.

Tercera forma normal

Es diu que una relació està en tercera forma normal, si no teníem cap dependència transitiva per als atributs no primers. La condició bàsica amb la Tercera Forma Normal és que la relació ha d'estar en Segona Forma Normal.

A continuació s'esmenta la condició bàsica que s'ha de complir en la dependència funcional no trivial X -> Y:

  • X és una súper clau.
  • Y és un atribut principal (això significa que l'element de Y és una part de la clau del candidat).

Per a més informació, consulteu Tercera forma normal en DBMS.

BCNF

BCNF (Boyce-Codd Normal Form) és només una versió avançada de Third Normal Form. Aquí tenim algunes regles addicionals a la tercera forma normal. La condició bàsica perquè qualsevol relació estigui en BCNF és que ha d'estar en Tercera Forma Normal.

Hem de centrar-nos en algunes regles bàsiques que són per a BCNF:

1. Table must be in Third Normal Form. 2. In relation X->Y, X ha de ser una superclau en una relació.>

Per a més informació, consulteu BCNF en DBMS.

Quarta forma normal

La quarta forma normal no conté cap dependència multivaued no trivial, excepte la clau candidata. La condició bàsica amb la quarta forma normal és que la relació ha d'estar en BCNF.

Les regles bàsiques s'esmenten a continuació.

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

Per a més informació, consulteu Quarta forma normal en DBMS.

Cinquena forma normal

La cinquena forma normal també s'anomena forma normal projectada. Les condicions bàsiques de la cinquena forma normal s'esmenten a continuació.

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

Per a més informació, consulteu Cinquena forma normal en DBMS.

Aplicacions de formularis normals en DBMS

  • Coherència de les dades: Els formularis normals garanteixen que les dades siguin coherents i no continguin cap informació redundant. Això ajuda a prevenir incoherències i errors a la base de dades.
  • Redundància de dades: Els formularis normals minimitzen la redundància de dades organitzant les dades en taules que només contenen dades úniques. Això redueix la quantitat d'espai d'emmagatzematge necessari per a la base de dades i en facilita la gestió.
  • Temps de resposta: Els formularis normals poden millorar el rendiment de les consultes reduint el nombre d'unions necessàries per recuperar dades. Això ajuda a accelerar el processament de consultes i millorar el rendiment general del sistema.
  • Manteniment de bases de dades: Els formularis normals faciliten el manteniment de la base de dades reduint la quantitat de dades redundants que s'han d'actualitzar, suprimir o modificar. Això ajuda a millorar la gestió de la base de dades i reduir el risc d'errors o inconsistències.
  • Disseny de bases de dades: Els formularis normals proporcionen pautes per dissenyar bases de dades eficients, flexibles i escalables. Això ajuda a garantir que la base de dades es pugui modificar, actualitzar o ampliar fàcilment segons sigui necessari.

Alguns punts importants sobre les formes normals

  • BCNF està lliure de redundància causada per dependències funcionals.
  • Si una relació està en BCNF, llavors 3NF també es compleix.
  • Si tots els atributs de la relació són atributs primers, aleshores la relació és sempre a 3NF.
  • Una relació en una base de dades relacional és sempre i almenys en forma 1NF.
  • Cada relació binària (una relació amb només 2 atributs) està sempre en BCNF.
  • Si una relació només té claus candidates individuals (és a dir, cada clau candidata només consta d'1 atribut), aleshores la relació sempre està a 2NF (perquè no hi ha cap dependència funcional parcial possible).
  • De vegades, anar pel formulari BCNF pot no preservar la dependència funcional. En aquest cas, aneu a BCNF només si no calen els FD perduts, en cas contrari, normalitzeu només fins a 3NF.
  • Hi ha moltes més formes normals que existeixen després de BCNF, com ara 4NF i més. Però en els sistemes de bases de dades del món real, generalment no cal anar més enllà de BCNF.

Conclusió

En conclusió, les bases de dades relacionals es poden organitzar segons un conjunt de regles anomenades formes normals base de dades administració (1NF, 2NF, 3NF, BCNF, 4NF i 5NF), que redueixen la redundància de dades i preserven la integritat de les dades. En resoldre diversos tipus d'anomalies i dependències de dades, cada forma normal posterior s'expandeix a la que va ser anterior. Els requisits i les propietats particulars de les dades que s'emmagatzemen determinen quina forma normal s'ha d'utilitzar; Els formularis normals més alts ofereixen una integritat de dades més estricta, però també poden resultar en estructures de bases de dades més complicades.

Enllaços de preguntes de l'any anterior

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

Preguntes freqüents sobre la forma normal

P.1: Per què és important la normalització al SGBD?

Resposta:

La normalització ajuda a prevenir anomalies de la base de dades, que en última instància garanteix la coherència de la base de dades i facilita el manteniment de la base de dades.

java sinó si

P.2: És possible sobrenormalitzar la base de dades?

Resposta:

Sí, una normalització excessiva anirà a consultes complexes i també redueix el rendiment. Aconsegueix un equilibri entre normalització i practicitat.

P.3: És necessari normalitzar una base de dades a la forma normal més alta com (BCNF o 4NF)?

Resposta:

No hi ha cap condició necessària per a la normalització de la base de dades. Moltes vegades, una forma inferior pot ser suficient per a un rendiment i simplicitat específics.