Carrera: Base de datos II
Ciclo:
Dependencias funcionales y normalizació n en bases de
Nombre del mó dulo:
datos relacionales
2.1 Dependencia funcional
Tema: 2.2 Reglas de normalizació n
Tarea3: Reglas de normalizació n hasta la
Nombre: Miguel Angel Alejandro Aguirre
4FN y Forma Normal
de Boyce Codd (FNBC)
Instrucción: Aplica las reglas de normalizació n al siguiente ejemplo hasta la 4FN y la forma
normal de Boyce Codd (FNBC). Guarda tu archivo
[Link] y sú belo como tarea.
I. Lee la problemá tica que se te presenta a continuació n.
II. La realizació n de dicha tarea la llevaras acabo en un archivo de Word.
III. Con base en los conocimientos obtenidos en el modulo:
Aplica la normalizació n al siguiente ejemplo hasta la 3FN
Aplica las reglas de normalizació n hasta la 4FN
Aplica la forma normal de Boyce Codd (FNBC).
Aplicación de las reglas de normalización hasta la 3FN
Tabla que recoge informació n sobre los artículos que ofrecen diversos vendedores.
Id_vendedor Calle Ciudad Estado Id _ artículo Cantidad_prod
1 Luisa Xalapa Veracruz 123 6
3 Alejandro Boca del Rio Veracruz 567 8
7 Ricardo Poza Rica Veracruz 980 9
9 Olivia Cardel Veracruz 123 4
Primera Forma Normal (1FN): No hay columnas repetidas ni grupos de columnas repetidas.
La tabla ya está en 1FN.
Segunda Forma Normal (2FN): La tabla está en 1FN y no hay dependencias parciales de
ninguna clave candidata. Sin embargo, podemos notar que existe una dependencia funcional
entre el ID_vendedor y la direcció n y el estado del vendedor. Para solucionar esto, podemos
crear una nueva tabla para los vendedores y establecer una relació n entre las tablas. La
estructura de la nueva tabla sería la siguiente:
Tabla: Vendedores
Id_vendedor (clave primaria)
Calle
Ciudad
Estado
La tabla original quedaría de la siguiente manera:
Tabla: Ventas
Id_vendedor (clave forá nea de la tabla Vendedores)
Id_artículo
Cantidad_prod
Tercera Forma Normal (3FN): La tabla está en 2FN y no hay dependencias transitivas de
ninguna clave candidata. Sin embargo, podemos notar que existe una dependencia transitiva
entre el ID_artículo y la cantidad de productos vendidos. Para solucionar esto, podemos crear
una nueva tabla para los artículos y establecer una relació n entre las tablas. La estructura de
la nueva tabla sería la siguiente:
Tabla: Artículos
Id_artículo (clave primaria)
Cantidad_prod
La tabla de ventas quedaría de la siguiente manera:
Tabla: Ventas
Id_vendedor (clave forá nea de la tabla Vendedores)
Id_artículo (clave forá nea de la tabla Artículos)
Entonces, las tres tablas normalizadas quedan de la siguiente manera:
Tabla: Vendedores
Id_vendedor Calle Ciudad Estado
1 Luisa Xalapa Veracruz
3 Alejandro Boca del Rio Veracruz
7 Ricardo Poza Rica Veracruz
Id_vendedor Calle Ciudad Estado
9 Olivia Cardel Veracruz
Tabla: Artículos
Id_artículo Cantidad_prod
123 6
567 8
980 9
Tabla: Ventas
Id_vendedor Id_artículo
1 123
3 567
7 980
9 123
Aplicación de las reglas de normalización hasta la 4FN
Nombre Empresa Dir_empresa url1 url2
Juan ABB Av. Orizaba [Link] [Link]/inicio
Carlos PEMEX Col. 2 de abril [Link] [Link]
Erica TELMEX Col. Revolució n [Link]
Matilde FAMSA Col. Centro [Link] [Link]/
[Link]
Para aplicar la normalizació n hasta la cuarta forma normal (4FN), debemos seguir los
siguientes pasos:
Primera Forma Normal (1FN): No hay columnas repetidas ni grupos de columnas repetidas.
La tabla ya está en 1FN.
Segunda Forma Normal (2FN): La tabla está en 1FN y no hay dependencias parciales de
ninguna clave candidata. Sin embargo, podemos notar que existe una dependencia funcional
entre el nombre y la direcció n de la empresa. Para solucionar esto, podemos crear una nueva
tabla para las empresas y establecer una relació n entre las tablas. La estructura de la nueva
tabla sería la siguiente:
Tabla: Empresas
Nombre_empresa (clave primaria)
Dir_empresa
La tabla original quedaría de la siguiente manera:
Tabla: Personas
Nombre
Empresa (clave forá nea de la tabla Empresas)
url1
url2
Tercera Forma Normal (3FN): La tabla está en 2FN y no hay dependencias transitivas de
ninguna clave candidata. Sin embargo, podemos notar que existe una dependencia transitiva
entre la url1 y la url2 para las personas que trabajan en una misma empresa. Para solucionar
esto, podemos crear una nueva tabla para las URLs y establecer una relació n entre las tablas.
La estructura de la nueva tabla sería la siguiente:
Tabla: URLs
Id_url (clave primaria)
url
La tabla de personas quedaría de la siguiente manera:
Tabla: Personas
Nombre
Empresa (clave forá nea de la tabla Empresas)
Id_url1 (clave forá nea de la tabla URLs)
Id_url2 (clave forá nea de la tabla URLs)
Cuarta Forma Normal (4FN): La tabla está en 3FN y no hay dependencias multivaluadas. Sin
embargo, podemos notar que existe una dependencia multivaluada entre las URLs y las
empresas. Para solucionar esto, podemos crear una nueva tabla para las URLs de cada
empresa y establecer una relació n entre las tablas. La estructura de la nueva tabla sería la
siguiente:
Tabla: URLs_Empresa
Nombre_empresa (clave primaria y clave forá nea de la tabla Empresas)
Id_url (clave primaria y clave forá nea de la tabla URLs)
Las tablas normalizadas quedarían de la siguiente manera:
Tabla: Empresas
Nombre_empresa Dir_empresa
ABB Av. Orizaba
PEMEX Col. 2 de abril
TELMEX Col. Revolución
FAMSA Col. Centro
Tabla: URLs
Id_url url
1 [Link]
2 [Link]/inicio
3 [Link]
4 [Link]
5 [Link]
6 [Link]
7 [Link]/[Link]
Tabla: URLs_Empresa
Nombre_empresa Id_url
ABB 1
ABB 2
PEMEX 3
PEMEX 4
TELMEX 5
FAMSA
Aplicación de la forma normal de Óbice Codd ( FNBC)
Se considera la relació n:
R (estudiante,cod_matricula,curso,centro,profesor,texto)
Se pide aplicar hasta la FNBC.
Para aplicar la normalizació n hasta la FNBC, debemos seguir los siguientes pasos:
Identificar las dependencias funcionales de la relació n.
Verificar si la relació n cumple con la primera forma normal (1FN).
Verificar si la relació n cumple con la segunda forma normal (2FN).
Verificar si la relació n cumple con la tercera forma normal (3FN).
Verificar si la relació n cumple con la forma normal de Boyce-Codd (FNBC).
Para este ejemplo, las dependencias funcionales son:
estudiante, cod_matricula -> curso, centro, profesor, texto
curso -> texto
Primera forma normal (1FN)
La relació n ya está en 1FN, ya que no hay atributos multivaluados o atributos que contengan
listas.
Segunda forma normal (2FN)
La relació n no cumple con 2FN, ya que hay una dependencia funcional parcial de curso a texto.
Para solucionar esto, debemos separar la relació n en dos tablas:
Tabla 1: matricula (estudiante, cod_matricula, curso, centro, profesor)
Tabla 2: curso_texto (curso, texto)
La tabla 1 cumple con 2FN, ya que todos los atributos dependen completamente de la clave
primaria (estudiante, cod_matricula). La tabla 2 también cumple con 2FN, ya que el atributo
texto depende completamente de la clave primaria (curso).
Tercera forma normal (3FN)
La relació n no cumple con 3FN, ya que hay una dependencia transitiva de curso a profesor y
centro. Para solucionar esto, debemos separar la relació n en tres tablas:
Tabla 1: matricula (estudiante, cod_matricula, curso)
Tabla 2: curso_centro (curso, centro)
Tabla 3: curso_profesor (curso, profesor)
La tabla 1 cumple con 3FN, ya que todos los atributos dependen directamente de la clave
primaria (estudiante, cod_matricula, curso). La tabla 2 también cumple con 3FN, ya que el
atributo centro depende directamente de la clave primaria (curso). La tabla 3 también cumple
con 3FN, ya que el atributo profesor depende directamente de la clave primaria (curso).
Forma normal de Boyce-Codd (FNBC)
La relació n cumple con la FNBC, ya que no hay dependencias funcionales no triviales de un
subconjunto de la clave primaria a ningú n otro atributo.
Las tablas resultantes quedarían de la siguiente manera:
Tabla 1: matricula (estudiante, cod_matricula, curso)
estudiante cod_matricula curso
……………. …………………. ………….
estudiante cod_matricula curso
………………….. ……………………… …………..
…………….. …………………. ……………..
Tabla 2: curso_centro (curso, centro)
curso centro
... ...
... ...
... ...
Tabla 3: curso_profesor (curso, profesor)
curso profesor
... ...
... ...
... ...
Tabla 4: curso_texto (curso, texto)
curso texto
... ...
... ...
... ...