SlideShare una empresa de Scribd logo
1 de 7
Descargar para leer sin conexión
Normalizar una base de datos relacional
Normalizar una base de datos relacional significa organizar sus estructuras (tablas, columnas y
relaciones) para reducir la redundancia de datos y mejorar la integridad de estos. Es un proceso
que involucra dividir grandes tablas en tablas más pequeñas y definir relaciones entre ellas, para
que los datos se almacenen de manera lógica, coherente y sin duplicación innecesaria.
La normalización es una técnica que se ha desarrollado para obtener estructuras de datos
eficientes, garantizando un buen diseño lógico de la base de datos. Es decir, se utiliza para mejorar
el esquema, de modo que éste satisfaga ciertas restricciones que eviten la duplicidad de datos, y
garantiza que el esquema resultante esté más próximo al modelo de la empresa, sea consistente,
con la mínima redundancia y la máxima estabilidad.
La normalización es una ayuda muy útil en el proceso de diseño de las bases de datos, pero
conviene señalar que no es una panacea. Hay que tener en cuenta que las formas normales no
son prescripciones para la creación de un modelo de datos “correcto”. Un modelo de datos podría
llegar a estar perfectamente normalizado, pero podría proporcionar las respuestas tan despacio y
de forma tan complicada que el sistema de base de datos construido sobre él resulte inoperativo.
No hay que olvidar que al descomponer una relación penalizamos las consultas, provocando una
pérdida de eficiencia en las mismas. Aunque, en general, se aconseja llevar los esquemas
relacionales al menos a 3FN, existen ciertos casos en los que, una vez realizada la descomposición,
exigencias de eficiencia muy estrictas obligan a llevar a cabo el proceso inverso, es decir, una
desnormalización, combinando las relaciones hasta dejarlas en formas normales anteriores.
Por lo tanto, hay que poner en la balanza hasta dónde conviene normalizar para que el resultado
sea un modelo de datos eficiente y efectivo, aunque no cabe duda que con las tres primeras formas
normales las probabilidades de obtener este resultado son muy altas.
Formas normales
Las formas normales son reglas o estándares que guían el proceso de normalización. Existen varias
formas normales, pero en la práctica, las bases de datos suelen normalizarse hasta la tercera o
cuarta forma normal. Aquí hay un resumen sencillo de las primeras tres y una mención de las
subsiguientes:
1. Primera Forma Normal (1FN)
o Asegura que cada columna de una tabla contenga valores atómicos (indivisibles).
o Unicidad de las filas o registros.
o La 1FN prohíbe la repeticion de grupos de información. La tabla no debe contener
columnas repetidas o grupos de columnas que contengan el mismo tipo de
información. Por ejemplo, en lugar de tener columnas como Clase1, Clase2, Clase3
etc., es mejor tener una tabla separada para las clases y relacionarla con la tabla
principal.
2. Segunda Forma Normal (2FN)
o Cumple con 1FN.
o Todos los atributos (columnas) no clave deben depender completamente de la clave
primaria de la tabla. Si una tabla tiene una clave compuesta (más de un atributo como
clave primaria), todos los demás atributos deben depender de toda la clave y no solo
de una parte de ella.
3. Tercera Forma Normal (3FN)
o Cumple con 2FN.
o Los atributos no clave deben depender solamente de la clave primaria y no de otros
atributos no clave. Es decir, elimina dependencias transitivas.
4. Forma Normal de Boyce-Codd (BCNF)
o Una extensión más estricta de 3FN.
o En resumen, para cualquier dependencia funcional X→Y, X debe ser una superclave.
Si X determina Y (significa que si dos filas en la tabla tienen los mismos valores para los atributos
en X, entonces también tendrán los mismos valores para los atributos en Y-, entonces X debe ser
superclave.
En la mayoria de los casos nos bastará con llegar a la 3ª FN, puesto que cumpliendo con la 3ª FN se cumple
con la forma normal BCNF.
Primera Forma Normal (1FN).
La Primera Forma Normal (1FN) se centra en asegurar que todas las columnas de una tabla
contengan valores atómicos.
Ejemplo: Librería
Supongamos que tenemos una tabla para almacenar información sobre los libros que una librería
tiene en stock:
ID Titulo Autores
1 Amanecer Rojo Pierce Brown
2 Guía del Autoestopista Douglas Adams, Jane Doe
3 Dune Frank Herbert
A primera vista, esta tabla podría parecer adecuada. Sin embargo, si te fijas en el campo "Autores"
de la segunda fila, verás que hay más de un autor listado, separado por una coma. Esto significa
que la columna "Autores" no tiene valores atómicos (indivisibles), lo que va en contra de 1FN.
Normalizando a 1FN
Para llevar la tabla a 1FN, podríamos dividir la columna "Autores" en registros separados. Esto
podría significar tener múltiples registros para un solo libro si tiene más de un autor.
Podría quedar así:
ID Titulo Autor
1 Amanecer Rojo Pierce Brown
2 Guía del Autoestopista Douglas Adams
3 Guía del Autoestopista Jane Doe
4 Dune Frank Herbert
Aquí, el libro "Guía del Autoestopista" aparece dos veces en la tabla, una vez para cada autor. Esto
asegura que cada celda en la columna "Autor" tenga un valor atómico, cumpliendo con 1FN.
Esto facilita la consulta, búsqueda y actualización de autores sin tener que tratar con cadenas de
texto delimitadas por comas en la columna. Es más estructurado y evita ambigüedades y
complicaciones.
Segunda Forma Normal (2FN).
La Segunda Forma Normal (2FN) se centra en asegurar que todas las columnas no clave en una
tabla dependan completamente de la clave primaria. Esto es especialmente relevante para tablas
con claves primarias compuestas.
Ejemplo: Estudiantes y Cursos
Imagina que estás diseñando una base de datos para una universidad. Tienes una tabla que
registra qué estudiantes están inscritos en qué cursos durante un semestre específico:
ID_Estudiante ID_Curso Nombre_Estudiante Nombre_Curso Profesor
101 CS101 Juan Programación Sr. García
102 CS101 Marta Programación Sr. García
101 MA101 Juan Matemáticas Sra. Pérez
Aquí, la clave primaria compuesta sería (IDEstudiante,IDCurso) porque un estudiante puede estar
inscrito en múltiples cursos y un curso puede tener múltiples estudiantes.
Problema: Los atributos "Nombre_Estudiante" dependen solo de "ID_Estudiante" y los atributos
"Nombre_Curso" y "Profesor" dependen solo de "ID_Curso". No dependen de la clave compuesta
completa, lo que viola la 2FN.
Normalizando a 2FN:
Para cumplir con 2FN, descompondríamos la tabla en tres:
1. Tabla Estudiantes:
o ID_Estudiante (Clave Primaria)
o Nombre_Estudiante
2. Tabla Cursos:
o ID_Curso (Clave Primaria)
o Nombre_Curso
o Profesor
3. Tabla Inscripciones:
o ID_Estudiante
o ID_Curso
o La combinación de (ID_Estudiante, ID_Curso) sería la clave primaria.
Las tablas quedan así: (todos los atributos no clave dependen de su PK, cumpliendo con la 2FN)
Estudiantes:
ID_Estudiante Nombre_Estudiante
101 Juan
102 Marta
Cursos:
ID_Curso Nombre_Curso Profesor
CS101 Programación Sr. García
MA101 Matemáticas Sra. Pérez
Inscripciones:
ID_Estudiante ID_Curso
101 CS101
102 CS101
101 MA101
Tercera Forma Normal (3FN).
La Tercera Forma Normal (3FN) se asegura de que los atributos no clave de una tabla dependan
solo de la clave primaria y no de otros atributos no clave. En otras palabras, se eliminan las
dependencias transitivas.
Ejemplo: Empleados y Departamentos
Imagina que tienes una tabla que registra información sobre empleados y los departamentos en los
que trabajan:
ID_Emplead
o
Nombre_Emplead
o
ID_Departament
o
Nombre_Departament
o
Ubicación_Departament
o
1 Ana D01 Ventas Piso 3
2 Carlos D02 RRHH Piso 2
3 Beatriz D01 Ventas Piso 3
Problema: Aquí, el atributo "Ubicación_Departamento" depende del atributo
"Nombre_Departamento", que a su vez depende de la clave primaria "ID_Empleado". Esta es una
dependencia transitiva porque "Ubicación_Departamento" depende indirectamente de
"ID_Empleado" a través de "Nombre_Departamento". Esto va en contra de 3FN.
Normalizando a 3FN:
Para llevar la tabla a 3FN, debemos eliminar la dependencia transitiva. Podemos hacerlo dividiendo
la tabla original en dos tablas: una para empleados y otra para departamentos.
1. Tabla Empleados:
o ID_Empleado (Clave Primaria)
o Nombre_Empleado
o ID_Departamento (Clave Foránea)
2. Tabla Departamentos:
o ID_Departamento (Clave Primaria)
o Nombre_Departamento
o Ubicación_Departamento
Las tablas quedarían así:
Empleados:
ID_Empleado Nombre_Empleado ID_Departamento
1 Ana D01
2 Carlos D02
3 Beatriz D01
Departamentos:
ID_Departamento Nombre_Departamento Ubicación_Departamento
D01 Ventas Piso 3
D02 RRHH Piso 2
Con este diseño, la ubicación del departamento ya no depende transitivamente del ID del empleado.
Ahora, todos los atributos no clave en cada tabla dependen directamente de la clave primaria,
cumpliendo con la 3FN.
Forma Normal (BCNF).
La Forma Normal de Boyce-Codd (BCNF) es una extensión más rigurosa de la Tercera Forma
Normal (3FN). Una tabla está en BCNF si, para cada una de sus dependencias funcionales, la parte
izquierda es una superclave. Una superclave es un conjunto de uno o más atributos que, tomados
colectivamente, permiten identificar de manera única una entidad (registro) en la tabla.
BCNF es más estricta y requiere que para cualquier dependencia funcional X→Y, X debe ser una
superclave. Es decir, no permite ninguna excepción donde un atributo no clave determine otro
atributo no clave, incluso si es parte de la clave primaria.
Ejemplo:
Imagina una tabla Profesores:
ProfesorID Asignatura Departamento Jefe_Departamento
1 Matemáticas Ciencias Dra. López
2 Biología Ciencias Dra. López
3 Historia Humanidades Dr. Pérez
Dependencias Funcionales:
1. ProfesorID→[Asignatura,Departamento,JefeDepartamento]
(Cada profesor tiene una única asignatura, departamento y jefe de departamento).
2. Departamento→JefeDepartamento
(Cada departamento tiene un único jefe).
Analizando 3FN y BCNF:
 3FN: La tabla viola 3FN porque Jefe_Departamento depende de Departamento (una columna no
clave). Para cumplir con 3FN, deberíamos dividir la tabla para eliminar esta dependencia
transitiva.
 BCNF: La tabla también viola BCNF debido a la dependencia funcional 2
(Departamento→JefeDepartamento) ya que Departamento no es una superclave.
Para normalizar a BCNF (que también cumpliría con 3FN), podríamos dividir la tabla en dos:
1. Profesores:
ProfesorID Asignatura Departamento
1 Matemáticas Ciencias
2 Biología Ciencias
3 Historia Humanidades
2. Departamentos:
Departamento Jefe_Departamento
Ciencias Dra. López
Humanidades Dr. Pérez
Ambas tablas ahora cumplen con 3FN y BCNF ya que todas las dependencias funcionales
cumplen con las reglas. La descomposición en 3FN y BCNF puede ser igual en muchos casos,
pero BCNF añade una capa adicional de rigor para gestionar todas las dependencias funcionales,
no solo las que involucran claves primarias.
Diferencias entre 3FN y BCNF:
 Si una tabla en 3FN tiene una dependencia funcional donde un atributo no clave determina
otro atributo no clave, pero ese determinante es parte de la clave primaria, 3FN permite
esa dependencia.
 BCNF no permite ninguna excepción: si hay una dependencia funcional X→Y, entonces X
tiene que ser una superclave, sin importar si es parte de una clave primaria o no.

Más contenido relacionado

Similar a Normalizar bases de datos relacionales

Similar a Normalizar bases de datos relacionales (20)

capV_normalizacion.pptx
capV_normalizacion.pptxcapV_normalizacion.pptx
capV_normalizacion.pptx
 
Normalizaciondebasesdedato
NormalizaciondebasesdedatoNormalizaciondebasesdedato
Normalizaciondebasesdedato
 
Formnormal
FormnormalFormnormal
Formnormal
 
Clase 0.3 normalizacion. sql server aplicado
Clase 0.3   normalizacion. sql server aplicadoClase 0.3   normalizacion. sql server aplicado
Clase 0.3 normalizacion. sql server aplicado
 
diseño de salidas de pantallas. sesión 15.
diseño de salidas de pantallas. sesión 15.diseño de salidas de pantallas. sesión 15.
diseño de salidas de pantallas. sesión 15.
 
Normalización de bases de datos
Normalización de bases de datosNormalización de bases de datos
Normalización de bases de datos
 
Normalización.pptx
Normalización.pptxNormalización.pptx
Normalización.pptx
 
Guia normalización
Guia normalizaciónGuia normalización
Guia normalización
 
Normalización
NormalizaciónNormalización
Normalización
 
Normalización de Base de Datos
Normalización de Base de DatosNormalización de Base de Datos
Normalización de Base de Datos
 
NORMALIZACION DE DATOS.pptx
NORMALIZACION DE DATOS.pptxNORMALIZACION DE DATOS.pptx
NORMALIZACION DE DATOS.pptx
 
Normalizacion de tablas
Normalizacion de tablasNormalizacion de tablas
Normalizacion de tablas
 
Normalizacion
NormalizacionNormalizacion
Normalizacion
 
Unidad iii normalizacion
Unidad iii normalizacionUnidad iii normalizacion
Unidad iii normalizacion
 
Unidad iv base de datos
Unidad iv base de datosUnidad iv base de datos
Unidad iv base de datos
 
NORMALIZACIÓN DE BASE DE DATOS
NORMALIZACIÓN DE BASE DE DATOSNORMALIZACIÓN DE BASE DE DATOS
NORMALIZACIÓN DE BASE DE DATOS
 
4. normalización
4. normalización4. normalización
4. normalización
 
4. normalización
4. normalización4. normalización
4. normalización
 
4. normalización
4. normalización4. normalización
4. normalización
 
4. normalización
4. normalización4. normalización
4. normalización
 

Último

137489674-Regimenes-Tributarios-MYPES-ppt.ppt
137489674-Regimenes-Tributarios-MYPES-ppt.ppt137489674-Regimenes-Tributarios-MYPES-ppt.ppt
137489674-Regimenes-Tributarios-MYPES-ppt.pptALEJANDRAKATHERINESA
 
La Electricidad y la Electrónica gabriela (1).pdf
La Electricidad y la Electrónica gabriela (1).pdfLa Electricidad y la Electrónica gabriela (1).pdf
La Electricidad y la Electrónica gabriela (1).pdfelabarbosa396
 
Home Assistant - Un Hub para controlarlos a todos
Home Assistant - Un Hub para controlarlos a todosHome Assistant - Un Hub para controlarlos a todos
Home Assistant - Un Hub para controlarlos a todosDebora Gomez Bertoli
 
Patrones Funcionales de Marjory Gordon.pptx
Patrones Funcionales de Marjory Gordon.pptxPatrones Funcionales de Marjory Gordon.pptx
Patrones Funcionales de Marjory Gordon.pptxErandiCamperoBojorge
 
Presentación Materiales para la Construcción.ppt
Presentación Materiales para la Construcción.pptPresentación Materiales para la Construcción.ppt
Presentación Materiales para la Construcción.pptCARLOSAXELVENTURAVID
 
El uso de las T I C en la vida cotidiana.
El uso de las T I C en la vida cotidiana.El uso de las T I C en la vida cotidiana.
El uso de las T I C en la vida cotidiana.SEAT
 
Linea del tiempo del celular .
Linea del tiempo del celular                   .Linea del tiempo del celular                   .
Linea del tiempo del celular .MiliMili32
 
9-Sociales-Colombia siglo XX.pdf sociales
9-Sociales-Colombia siglo XX.pdf sociales9-Sociales-Colombia siglo XX.pdf sociales
9-Sociales-Colombia siglo XX.pdf socialesJhonathanRodriguez10
 
1-ART 9 LEY 31953 - DDGPP - 22.01.2024.pdf
1-ART 9 LEY 31953 - DDGPP - 22.01.2024.pdf1-ART 9 LEY 31953 - DDGPP - 22.01.2024.pdf
1-ART 9 LEY 31953 - DDGPP - 22.01.2024.pdfgeraldoquispehuaman
 
linea de tiempo television y su avance en los años
linea de tiempo television y su avance en los añoslinea de tiempo television y su avance en los años
linea de tiempo television y su avance en los añosMaraPazCrdenas
 
644400074-LA-CONSOLIDACION-DE-LA-REPUBLICA-OLIGARQUICA-pdf.pptx
644400074-LA-CONSOLIDACION-DE-LA-REPUBLICA-OLIGARQUICA-pdf.pptx644400074-LA-CONSOLIDACION-DE-LA-REPUBLICA-OLIGARQUICA-pdf.pptx
644400074-LA-CONSOLIDACION-DE-LA-REPUBLICA-OLIGARQUICA-pdf.pptxRosiClaros
 

Último (11)

137489674-Regimenes-Tributarios-MYPES-ppt.ppt
137489674-Regimenes-Tributarios-MYPES-ppt.ppt137489674-Regimenes-Tributarios-MYPES-ppt.ppt
137489674-Regimenes-Tributarios-MYPES-ppt.ppt
 
La Electricidad y la Electrónica gabriela (1).pdf
La Electricidad y la Electrónica gabriela (1).pdfLa Electricidad y la Electrónica gabriela (1).pdf
La Electricidad y la Electrónica gabriela (1).pdf
 
Home Assistant - Un Hub para controlarlos a todos
Home Assistant - Un Hub para controlarlos a todosHome Assistant - Un Hub para controlarlos a todos
Home Assistant - Un Hub para controlarlos a todos
 
Patrones Funcionales de Marjory Gordon.pptx
Patrones Funcionales de Marjory Gordon.pptxPatrones Funcionales de Marjory Gordon.pptx
Patrones Funcionales de Marjory Gordon.pptx
 
Presentación Materiales para la Construcción.ppt
Presentación Materiales para la Construcción.pptPresentación Materiales para la Construcción.ppt
Presentación Materiales para la Construcción.ppt
 
El uso de las T I C en la vida cotidiana.
El uso de las T I C en la vida cotidiana.El uso de las T I C en la vida cotidiana.
El uso de las T I C en la vida cotidiana.
 
Linea del tiempo del celular .
Linea del tiempo del celular                   .Linea del tiempo del celular                   .
Linea del tiempo del celular .
 
9-Sociales-Colombia siglo XX.pdf sociales
9-Sociales-Colombia siglo XX.pdf sociales9-Sociales-Colombia siglo XX.pdf sociales
9-Sociales-Colombia siglo XX.pdf sociales
 
1-ART 9 LEY 31953 - DDGPP - 22.01.2024.pdf
1-ART 9 LEY 31953 - DDGPP - 22.01.2024.pdf1-ART 9 LEY 31953 - DDGPP - 22.01.2024.pdf
1-ART 9 LEY 31953 - DDGPP - 22.01.2024.pdf
 
linea de tiempo television y su avance en los años
linea de tiempo television y su avance en los añoslinea de tiempo television y su avance en los años
linea de tiempo television y su avance en los años
 
644400074-LA-CONSOLIDACION-DE-LA-REPUBLICA-OLIGARQUICA-pdf.pptx
644400074-LA-CONSOLIDACION-DE-LA-REPUBLICA-OLIGARQUICA-pdf.pptx644400074-LA-CONSOLIDACION-DE-LA-REPUBLICA-OLIGARQUICA-pdf.pptx
644400074-LA-CONSOLIDACION-DE-LA-REPUBLICA-OLIGARQUICA-pdf.pptx
 

Normalizar bases de datos relacionales

  • 1. Normalizar una base de datos relacional Normalizar una base de datos relacional significa organizar sus estructuras (tablas, columnas y relaciones) para reducir la redundancia de datos y mejorar la integridad de estos. Es un proceso que involucra dividir grandes tablas en tablas más pequeñas y definir relaciones entre ellas, para que los datos se almacenen de manera lógica, coherente y sin duplicación innecesaria. La normalización es una técnica que se ha desarrollado para obtener estructuras de datos eficientes, garantizando un buen diseño lógico de la base de datos. Es decir, se utiliza para mejorar el esquema, de modo que éste satisfaga ciertas restricciones que eviten la duplicidad de datos, y garantiza que el esquema resultante esté más próximo al modelo de la empresa, sea consistente, con la mínima redundancia y la máxima estabilidad. La normalización es una ayuda muy útil en el proceso de diseño de las bases de datos, pero conviene señalar que no es una panacea. Hay que tener en cuenta que las formas normales no son prescripciones para la creación de un modelo de datos “correcto”. Un modelo de datos podría llegar a estar perfectamente normalizado, pero podría proporcionar las respuestas tan despacio y de forma tan complicada que el sistema de base de datos construido sobre él resulte inoperativo. No hay que olvidar que al descomponer una relación penalizamos las consultas, provocando una pérdida de eficiencia en las mismas. Aunque, en general, se aconseja llevar los esquemas relacionales al menos a 3FN, existen ciertos casos en los que, una vez realizada la descomposición, exigencias de eficiencia muy estrictas obligan a llevar a cabo el proceso inverso, es decir, una desnormalización, combinando las relaciones hasta dejarlas en formas normales anteriores. Por lo tanto, hay que poner en la balanza hasta dónde conviene normalizar para que el resultado sea un modelo de datos eficiente y efectivo, aunque no cabe duda que con las tres primeras formas normales las probabilidades de obtener este resultado son muy altas.
  • 2. Formas normales Las formas normales son reglas o estándares que guían el proceso de normalización. Existen varias formas normales, pero en la práctica, las bases de datos suelen normalizarse hasta la tercera o cuarta forma normal. Aquí hay un resumen sencillo de las primeras tres y una mención de las subsiguientes: 1. Primera Forma Normal (1FN) o Asegura que cada columna de una tabla contenga valores atómicos (indivisibles). o Unicidad de las filas o registros. o La 1FN prohíbe la repeticion de grupos de información. La tabla no debe contener columnas repetidas o grupos de columnas que contengan el mismo tipo de información. Por ejemplo, en lugar de tener columnas como Clase1, Clase2, Clase3 etc., es mejor tener una tabla separada para las clases y relacionarla con la tabla principal. 2. Segunda Forma Normal (2FN) o Cumple con 1FN. o Todos los atributos (columnas) no clave deben depender completamente de la clave primaria de la tabla. Si una tabla tiene una clave compuesta (más de un atributo como clave primaria), todos los demás atributos deben depender de toda la clave y no solo de una parte de ella. 3. Tercera Forma Normal (3FN) o Cumple con 2FN. o Los atributos no clave deben depender solamente de la clave primaria y no de otros atributos no clave. Es decir, elimina dependencias transitivas. 4. Forma Normal de Boyce-Codd (BCNF) o Una extensión más estricta de 3FN. o En resumen, para cualquier dependencia funcional X→Y, X debe ser una superclave. Si X determina Y (significa que si dos filas en la tabla tienen los mismos valores para los atributos en X, entonces también tendrán los mismos valores para los atributos en Y-, entonces X debe ser superclave. En la mayoria de los casos nos bastará con llegar a la 3ª FN, puesto que cumpliendo con la 3ª FN se cumple con la forma normal BCNF.
  • 3. Primera Forma Normal (1FN). La Primera Forma Normal (1FN) se centra en asegurar que todas las columnas de una tabla contengan valores atómicos. Ejemplo: Librería Supongamos que tenemos una tabla para almacenar información sobre los libros que una librería tiene en stock: ID Titulo Autores 1 Amanecer Rojo Pierce Brown 2 Guía del Autoestopista Douglas Adams, Jane Doe 3 Dune Frank Herbert A primera vista, esta tabla podría parecer adecuada. Sin embargo, si te fijas en el campo "Autores" de la segunda fila, verás que hay más de un autor listado, separado por una coma. Esto significa que la columna "Autores" no tiene valores atómicos (indivisibles), lo que va en contra de 1FN. Normalizando a 1FN Para llevar la tabla a 1FN, podríamos dividir la columna "Autores" en registros separados. Esto podría significar tener múltiples registros para un solo libro si tiene más de un autor. Podría quedar así: ID Titulo Autor 1 Amanecer Rojo Pierce Brown 2 Guía del Autoestopista Douglas Adams 3 Guía del Autoestopista Jane Doe 4 Dune Frank Herbert Aquí, el libro "Guía del Autoestopista" aparece dos veces en la tabla, una vez para cada autor. Esto asegura que cada celda en la columna "Autor" tenga un valor atómico, cumpliendo con 1FN. Esto facilita la consulta, búsqueda y actualización de autores sin tener que tratar con cadenas de texto delimitadas por comas en la columna. Es más estructurado y evita ambigüedades y complicaciones.
  • 4. Segunda Forma Normal (2FN). La Segunda Forma Normal (2FN) se centra en asegurar que todas las columnas no clave en una tabla dependan completamente de la clave primaria. Esto es especialmente relevante para tablas con claves primarias compuestas. Ejemplo: Estudiantes y Cursos Imagina que estás diseñando una base de datos para una universidad. Tienes una tabla que registra qué estudiantes están inscritos en qué cursos durante un semestre específico: ID_Estudiante ID_Curso Nombre_Estudiante Nombre_Curso Profesor 101 CS101 Juan Programación Sr. García 102 CS101 Marta Programación Sr. García 101 MA101 Juan Matemáticas Sra. Pérez Aquí, la clave primaria compuesta sería (IDEstudiante,IDCurso) porque un estudiante puede estar inscrito en múltiples cursos y un curso puede tener múltiples estudiantes. Problema: Los atributos "Nombre_Estudiante" dependen solo de "ID_Estudiante" y los atributos "Nombre_Curso" y "Profesor" dependen solo de "ID_Curso". No dependen de la clave compuesta completa, lo que viola la 2FN. Normalizando a 2FN: Para cumplir con 2FN, descompondríamos la tabla en tres: 1. Tabla Estudiantes: o ID_Estudiante (Clave Primaria) o Nombre_Estudiante 2. Tabla Cursos: o ID_Curso (Clave Primaria) o Nombre_Curso o Profesor 3. Tabla Inscripciones: o ID_Estudiante o ID_Curso o La combinación de (ID_Estudiante, ID_Curso) sería la clave primaria. Las tablas quedan así: (todos los atributos no clave dependen de su PK, cumpliendo con la 2FN) Estudiantes: ID_Estudiante Nombre_Estudiante 101 Juan 102 Marta Cursos: ID_Curso Nombre_Curso Profesor CS101 Programación Sr. García MA101 Matemáticas Sra. Pérez Inscripciones: ID_Estudiante ID_Curso 101 CS101 102 CS101 101 MA101
  • 5. Tercera Forma Normal (3FN). La Tercera Forma Normal (3FN) se asegura de que los atributos no clave de una tabla dependan solo de la clave primaria y no de otros atributos no clave. En otras palabras, se eliminan las dependencias transitivas. Ejemplo: Empleados y Departamentos Imagina que tienes una tabla que registra información sobre empleados y los departamentos en los que trabajan: ID_Emplead o Nombre_Emplead o ID_Departament o Nombre_Departament o Ubicación_Departament o 1 Ana D01 Ventas Piso 3 2 Carlos D02 RRHH Piso 2 3 Beatriz D01 Ventas Piso 3 Problema: Aquí, el atributo "Ubicación_Departamento" depende del atributo "Nombre_Departamento", que a su vez depende de la clave primaria "ID_Empleado". Esta es una dependencia transitiva porque "Ubicación_Departamento" depende indirectamente de "ID_Empleado" a través de "Nombre_Departamento". Esto va en contra de 3FN. Normalizando a 3FN: Para llevar la tabla a 3FN, debemos eliminar la dependencia transitiva. Podemos hacerlo dividiendo la tabla original en dos tablas: una para empleados y otra para departamentos. 1. Tabla Empleados: o ID_Empleado (Clave Primaria) o Nombre_Empleado o ID_Departamento (Clave Foránea) 2. Tabla Departamentos: o ID_Departamento (Clave Primaria) o Nombre_Departamento o Ubicación_Departamento Las tablas quedarían así: Empleados: ID_Empleado Nombre_Empleado ID_Departamento 1 Ana D01 2 Carlos D02 3 Beatriz D01 Departamentos: ID_Departamento Nombre_Departamento Ubicación_Departamento D01 Ventas Piso 3 D02 RRHH Piso 2 Con este diseño, la ubicación del departamento ya no depende transitivamente del ID del empleado. Ahora, todos los atributos no clave en cada tabla dependen directamente de la clave primaria, cumpliendo con la 3FN.
  • 6. Forma Normal (BCNF). La Forma Normal de Boyce-Codd (BCNF) es una extensión más rigurosa de la Tercera Forma Normal (3FN). Una tabla está en BCNF si, para cada una de sus dependencias funcionales, la parte izquierda es una superclave. Una superclave es un conjunto de uno o más atributos que, tomados colectivamente, permiten identificar de manera única una entidad (registro) en la tabla. BCNF es más estricta y requiere que para cualquier dependencia funcional X→Y, X debe ser una superclave. Es decir, no permite ninguna excepción donde un atributo no clave determine otro atributo no clave, incluso si es parte de la clave primaria. Ejemplo: Imagina una tabla Profesores: ProfesorID Asignatura Departamento Jefe_Departamento 1 Matemáticas Ciencias Dra. López 2 Biología Ciencias Dra. López 3 Historia Humanidades Dr. Pérez Dependencias Funcionales: 1. ProfesorID→[Asignatura,Departamento,JefeDepartamento] (Cada profesor tiene una única asignatura, departamento y jefe de departamento). 2. Departamento→JefeDepartamento (Cada departamento tiene un único jefe). Analizando 3FN y BCNF:  3FN: La tabla viola 3FN porque Jefe_Departamento depende de Departamento (una columna no clave). Para cumplir con 3FN, deberíamos dividir la tabla para eliminar esta dependencia transitiva.  BCNF: La tabla también viola BCNF debido a la dependencia funcional 2 (Departamento→JefeDepartamento) ya que Departamento no es una superclave.
  • 7. Para normalizar a BCNF (que también cumpliría con 3FN), podríamos dividir la tabla en dos: 1. Profesores: ProfesorID Asignatura Departamento 1 Matemáticas Ciencias 2 Biología Ciencias 3 Historia Humanidades 2. Departamentos: Departamento Jefe_Departamento Ciencias Dra. López Humanidades Dr. Pérez Ambas tablas ahora cumplen con 3FN y BCNF ya que todas las dependencias funcionales cumplen con las reglas. La descomposición en 3FN y BCNF puede ser igual en muchos casos, pero BCNF añade una capa adicional de rigor para gestionar todas las dependencias funcionales, no solo las que involucran claves primarias. Diferencias entre 3FN y BCNF:  Si una tabla en 3FN tiene una dependencia funcional donde un atributo no clave determina otro atributo no clave, pero ese determinante es parte de la clave primaria, 3FN permite esa dependencia.  BCNF no permite ninguna excepción: si hay una dependencia funcional X→Y, entonces X tiene que ser una superclave, sin importar si es parte de una clave primaria o no.