SlideShare una empresa de Scribd logo
Normalización de la Base
de Datos
Agencia de Recuperación de Vehículos
Instituto Politécnico Nacional
UPIITA-IPN
• Espindola Pizano Ariel Tonatiuh
• Zepeda Tinoco Jorge
Grupo 2TM2 - 2 de marzo de 2015

NORMALIZACIÓN AGENCIA 1
Introducción
Dentro de la Teoría de la Normalización de Bases de Datos, existen cinco formas
normales que son un conjunto de reglas que se deben seguir para garantizar la integridad
de los de datos eliminando dependencias funcionales como la reflexiva, aumentativa y
transitiva (redundancia) en el modelo relacional.
En el diseño de esta base de datos, se llevará a cabo la normalización hasta la tercera
forma normal Boyce-Codd . Además de que solo se mostrará la normalización de a lo más
dos tablas, a modo de simplificar este documento. El procedimiento de normalización
para una tabla es muy similar al resto de las tablas de la base de datos.
Por otro lado, después de normalizar , en consecuencia se tiene que re-diseñar la
relación entre las tablas lo cual será explicado mas adelante.
Antes de Normalizar
Planteamiento del problema
En una agencia de seguridad pública y recuperación de autos, se trabaja en conjunto para saber ciertos
datos acerca de autos robados en los últimos 3 meses o el periodo especificado por el usuario, para ello
se desea construir una base de datos para consultar, modificar y gestionar el proceso o etapa en el que
se encuentra el vehículo.
La organización clasifica tres etapas, denuncia, búsqueda y recuperación.
Cuando el propietario o conductor del vehículo hace la denuncia tiene que proporcionar sus datos y los
del vehículo, así como también el lugar, fecha y hora del acontecimiento. La denuncia también debe
contener folio y un indicio de sospecha.
De los datos de la persona que denuncia se desea almacenar, su nombre completo, domicilio, teléfono,
e-mail , edad (+18 ) y en caso de haber testigos se necesita solo nombre y teléfono de cada uno.
En cuanto a los datos del vehículo deben almacenarse : nombre del propietario actual, placas, No. de
serie (VIN), modelo, marca, color y nacionalidad.
Y el sistema deberá mostrar un dato adicional del vehículo tale como, el status actual del mismo ya sea
recuperado, desaparecido, buscando o perdido, con base en el transcurso de la investigación.
En la etapa de recuperación se debe hacer un diagnóstico por uno de los peritos reconocidos de la
agencia, se debe tener en cuenta que el caso se clasifica de acuerdo a las condiciones en las que se
encontró el auto, completo o siniestrado, si el auto es siniestrado, debe de tomarse en cuenta si las
condiciones son de pérdida total o perdida parcial.
NORMALIZACIÓN AGENCIA 2
A la agencia también le interesa saber quién realizó ese diagnóstico, cuándo y a qué hora.
Si el auto no es recuperado a lo más en 3 meses, se extiende la búsqueda a un mes más, en caso de
que no se encuentre, se considera como desaparecido y finaliza la etapa búsqueda. En caso contrario, si
el auto es recuperado, se procede a la entrega con el cliente corroborando los datos del propietario y del
vehículo. Al término de ello, queda guardado un historial del auto recuperado en ésta agencia.
Modelo Relacional de la problematica
Se observa a simple vista, que puede existir redundancia en las tablas. Eso y más, será
comprobado. Ahora procederemos a seguir las reglas de normalización, y conforme se
avance, se irán notando los cambios en la Base de Datos.
NORMALIZACIÓN AGENCIA 3
Normalización
1FN - Primera forma normal
Se dice que una relación esta en primera forma normal si y solo si tiene un número fijo de
atributos y estos toman valores atómicos (indivisibles) de un dominio.
Cada tupla de una tabla debe representar una entidad y las entidades deben ser
únicas, por lo que se necesita establecer una llave primaria. Tomaremos la tabla “Persona”
para normalizar.
Persona (curp, nombre, domicilio, e-mail, edad, tipo, teléfono)
De acuerdo con la 1FN, esta entidad debe tener una llave que identifique de manera
única cada registro dentro de la tabla, en este caso se observa que la “curp”, es irrepetible,
entonces es único, pero en el planteamiento del problema no se habla de este tipo de
identificación entonces se elimina y en su lugar se determina un atributo “idPersona”, que
también será único e irrepetible ademas de permitir la identificación de la tabla “Persona”
con un dígito de menor longitud que del curp.
Los atributos deben ser atómicos, es decir indivisibles. En este caso el atributo
“nombre” se puede dividir por “apellido_paterno”, “apellido_materno”, también la
dirección se puede dividir por “calle”, “numero”, “colonia”,”delegacion”, “estado” y
“codigo_postal”. Quedando la tabla de la siguiente manera.
Se realiza el mismo procedimiento con el resto de las tablas de la base de datos.
NORMALIZACIÓN AGENCIA 4
Persona (idPersona, nombre, apellido_paterno, apellido_materno, e-mail,
edad, tipo, teléfono ,codigo_postal,colonia, calle, numero, delegacion,
estado, telefono)
La tabla “Recuperacion” contiene datos que no son necesarios, por ejemplo “tipo”, que
indica en qué etapa se encuentra la búsqueda , entonces existen errores de diseño, en su
lugar quedan dos atributos que son “perdida” y “condicion”. Por lo que se decide crear
únicamente una tabla “Recuperados”. Quedando de la siguiente manera.
El atributo “condicion” es de tipo entero que puede tomar valores {0,1}, uno indica
siniestrado (chocado) y cero indica completo.
Donde “perdida” es de tipo entero cuyo dominio es {0,1,2}, el cero indica que no hay
pérdida, el uno indica que es pérdida parcial, el dos significa que es pérdida total.
Cabe mencionar que sus respectivas validaciones se incluyen en la lógica de negocio a
nivel de programación. “Debido a la condición, se asigna el valor de perdida”
Dado que las estructuras de las tablas se van modificando, podemos darnos cuenta que
algunas no tienen razón de ser con base en planteamiento del problema. Como es el caso
de la tabla “Busqueda”, debido a que la información que contiene puede ser más
manejable a nivel de programación dentro de la aplicación.
En la tabla “Vehículo” se conservan los mismos atributos.
Ahora vamos con la tabla “Denuncia”, la cual tiene los siguientes atributos:
Denuncia (folio,idPersona, hora, ubicacion, datos_vehiculo, indicio_sospecha)
Podemos observar que el atributo “datos_vehiculo”, no tiene razón de ser porque para
esos datos existe la tabla vehículo cuyos datos puede obtenerse través de idPersona, por lo
tanto se elimina y la nueva tabla con atributos atómicos y correctamente identificada es la
siguiente:
NORMALIZACIÓN AGENCIA 5
Recuperados (idRecuperados, perdida, condicion,hora,fecha,
nombre_perito,apellido_paterno,apellido_materno)
Denuncia (idDenuncia, idPersona,
sospecha,hora_sucedido,fecha_sucedido,
lugar_sucedido,descripcion_sucedido)
Entonces la tabla “Testigo” queda de la siguiente manera.
2FN - Segunda forma normal
Sea R(A,B,C,D), un esquema de relación, se dice que R esta en 2FN si:
1.- Está en 1FN
2.- Todo atributo no clave V contenido en R, depende funcionalmente de la clave (o claves) y
no de ninguna subconjunto propio de ella (o ellas).
Esto nos quiere decir que toda columna que no sea clave debe guardar relación
directa con la llave primaria. Estos es muy útil para separar la semántica de cada tabla.
Por ejemplo en la tabla “Persona”, los atributos “calle”, “numero”, “colonia”,
”delegacion”, “estado”, “codigo_postal” no tienen relación directa o dependencia
funcional con la persona, sino con la dirección de la persona. Al hacer esto se crea una
nueva tabla llamada “Domicilio”, que a su ves también debe tener una llave única que la
identifique. Entonces las tablas quedarían, como sigue.
Se asigna una PK “idDomicilio” que será creada con datos del domicilio y persona,
lo cual se llevara a cabo a nivel de programación, para más detalles de esto pasar a la
sección de Lógica de Negocio. Para fines prácticos, el atributo se ha configurado como
autoincremental en el GBD por el momento.
NORMALIZACIÓN AGENCIA 6
Testigo (idTestigo, idDenuncia, nombre, telefono)
Domicilio(idDomicilio, codigo_postal, calle, numero, colonia,
delegacion,estado)
Persona (idPersona, idDomicilio, nombre, e-mail, edad, tipo, telefono)
De manera similar sucede con la tabla “Recuperados”, ya que los atributos:
“nombre_perito”, “apellido_paterno”,”apellido_materno” son NO CLAVE y
dependen funcionalmente de un subconjunto propio que puede ser llamado PERITOS,
entonces no esta normalizada a 2FN.
Además, cabe mencionar en incluso los atributos “fecha” y “hora” no guardan
relación directa con la llave primaria “idRecuperados” porque para que se establezca hora
y fecha previamente debe existir un diagnóstico, por lo tanto un subconjunto puede
llamarse DIAGNOSTICOS.
Acto seguido, un perito es quien realiza uno o más diagnósticos, por lo tanto si
creamos una tabla llamada “Diagnostico”, ésta contendría una referencia hacia PERITOS.
Es importante decir que cada nueva tabla que se crea debe de ser identificada de
manera única con una respectiva llave primaria. Al crear una tabla para cada subconjunto,
el esquema queda de la siguiente manera:
“VIN” es una llave propagada (o foránea) de la tabla “Vehículo” que se pone como
llave primaria para identificar a esta tabla de manera única e irrepetible, ya que por cada
auto que existe en la tabla “Vehículo” debe haber o no uno recuperado (puede que
todavía no se recupere) , esto garantiza la integridad referencial entre las tablas.
Los atributos “hora”, “fecha” y “idPeritos”, dependen funcionalmente de la clave
primaria, es decir del diagnóstico.
Esto se puede leer como sigue para entender mejor la dependencia: “El perito DEL
diagnóstico, la hora DEL diagnóstico y la fecha DEL diagnóstico”
NORMALIZACIÓN AGENCIA 7
Recuperados (VIN,Diagnostico_folio, perdida, condicion)
Diagnostico (folio,idPeritos, hora, fecha)
Esta tabla queda perfectamente identificada y con relación directa entre la llave
primaria y los atributos no clave contenidos en la tabla.
La tabla “Denuncia”, es evidente que no está normalizada a 2FN, por lo que se
procede con los mismos pasos de las tablas anteriores dando como resultado las siguientes
tablas.
Nota: Entre la tabla “Denuncia” y “Testigo”, existe una relación N:M (muchos a muchos)
ya que una denuncia puede tener varios testigos pero también un testigo puede estar en varias
denuncias.
La tabla “Denucia ” tiene atributos que no guarda relación directa con la llave
primaria como es el caso de “hora”, “fecha”, “lugar”, “descripción” son de lo sucedido, no
de la denuncia. Entonces se puede interpretar un nuevo subconjunto llamado
ACONTECIMIENTO.
Entonces ahora sí se puede leer, queda de la siguiente forma: “La persona DE la
denuncia y el acontecimiento DE la denuncia”. Se cumple con la relación directa de los
atributos no clave con la llave principal.
NORMALIZACIÓN AGENCIA 8
Peritos (idPeritos, nombre, apellido_paterno, apelido_materno)
Denuncia (idDenuncia, idPersona, idAcontecimiento)
Acontecimiento (idAcontecimiento, hora, fecha, lugar, descripcion,
sospecha)
Testigo (idTestigo, nombre, telefono)
Esta tabla representa la relación muchos a muchos en el modelo relacional.
3FN - Tercera forma normal (Eliminación de dependencia Transitiva)
Un esquema de relación R esta en 3FN si:
1.- Está en 2FN
2.- Todo atributo no clave no depende funcionalmente de ningún atributo no clave.
Para que no haya dependencia transitiva se debe crear una nueva entidad con los
atributos no clave que dependan funcionalmente uno de otro. Si no se realiza este paso, se
tendrán datos repetidos en las tablas, por ende serán mas grandes y será un poco más
confuso identificar algún dato dentro de una consulta.
Hasta el momento se ha normalizado detenidamente la base de datos hasta la 2FN,
donde se analizó tabla por tabla las dependencias funcionales de los atributos, por lo tanto
todas las tablas se encuentran normalizadas en 3FN a excepción de la tabla
“Recuperados”. A continuación se explica por qué.
Recordando que ésta tabla contiene los atributos “perdida” y “condicion”, se puede
observar de acuerdo con la lógica de negocio y el diseño de la base de datos que dada una
CONDICIÓN, se determina el tipo de PÉRDIDA, por ejemplo si “condicion = 0” (sin
daños) entonces “perdida = 0” (no hay pérdida).
Entonces se ve una dependencia funcional entre atributos no clave, por lo tanto hay
una dependencia transitiva. Para eliminarla se propone una nueva tabla “Resultado”, la
cual va ligada con “Diagnostico” ya que es el resultado del diagnóstico realizado por el
perito, con relación 1:N (un resultado puede estar en varios diagnósticos pero un
diagnóstico no puede tener varios resultados).
NORMALIZACIÓN AGENCIA 9
Testigo_Denuncia (idTestigo, idDenuncia)
“condicion” o estado es un hecho del resultado (idResultado) de un diagnóstico
previo, así como también “perdida” depende del resultado (idResultado) donde se
cumpla cierta condición del estado del vehículo.
De esta manera se elimina la dependencia transitiva en consecuencia la tabla
“Recuperados” jamas tendrá valores repetidos
BCFN - Forma Normal de Boyce-Codd
Un esquema de relación R esta en 3FN si y solo si PARA TODAS sus dependencias
funcionales elementales de la forma X->Y, se verifica que X es una clave de R.
Definiciones:
X->Y : Es una dependencia funcional trivial si y solo si Y esta contenida en X.
X->Y: Es una dependencia funcional completa si y solo si no depende funcionalmente de
ningún subconjunto de X.
Una dependencia funcional completa y no trivial , se dice que es una dependencia
funcional elemental.
Esta regla se aplica básicamente para ignorar una de las llaves candidatas (siendo el
caso) y utilizar una solamente para identificar el atributo que esté en cuestión.
NORMALIZACIÓN AGENCIA 10
Resultado (idResultado, condicion, perdida)
Recuperados (VIN ,Diagnostico_folio)
Diagnostico (folio,idPeritos, idResultado,hora, fecha)
De acuerdo al análisis puntual previo en toda la base de datos, se puede decir que
todas las tablas esta en BCNF a excepción de la tabla “Recuperados”, la cual tiene
dos llaves que son únicas, una que es “VIN” la llave primaria y
“Diagnostico_folio” como llave candidata ya que también es única y puede
identificar a la tabla. Es decir, no es dependencia funcional completa.
Tras analizar la tabla “Recuperados” se observa que no tiene razón de existir, ya
que solo contiene el “VIN” propagado de la tabla “Vehiculo” y el “folio” del
diagnóstico , por lo tanto puede haber una relación directa entre DIAGNOSTICO y
VEHICULO si necesidad de pasar por “Recuperados”.
La relación que se forma es de 1:N (varios vehículos tienen un diagnóstico, es decir
por cada vehículo hay un diagnostico pero no pueden haber varios diagnósticos
por cada vehículo).
Es muy importante decir que un vehículo puede estar registrado en la
DENUNCIA, pero puede ser que aún no sea diagnosticado, por lo tanto en este
caso la llave foránea que se genera de la tabla “Vehiculo” por parte de la tabla
“Diagnostico” se puso como atributo OPCIONAL, es decir puede que sea NULO, si
es nulo, entonces no existe la referencia las tablas “Diagnostico”, “Peritos” y
“Resultado”. Esto es obvio porque puede que un VEHICULO ya haya sido
diagnosticado o no. En caso de que sí, pues existe nuevamente la referencia a los
datos de estas tablas mencionadas.
También existe una llave candidata “placas” en la tabla “Vehiculo”, en este caso no
se hizo modificación porque de acuerdo al diseño de la base de datos también es
importante conocer las placas del vehículo ademas del VIN.
Como resultado las siguientes tablas:
NORMALIZACIÓN AGENCIA 11
Diagnostico (folio,idPeritos, idResultado,hora, fecha)
Vehiculo (VIN,idPersona, Diagnostico_folio,placas, modelo, color, marca,
estado)
Finalmente a continuación se muestra la Base de Datos Normalizada hasta la
forma normal Boyce-Codd
Hay un cambio abismal y notorio en comparación con la Base de Datos con que se
comenzó.
Las reglas de normalización son muy útiles cuando empezamos a realizar el modelo
relacional directamente sin una previa conceptualización.
Todavía puede normalizarse más la Base de Datos hasta una 5FN, pero se considera buena
hasta la 4FN (Boyce-Codd) ya que se cuenta con datos consistentes y se garantiza la
integridad de los mismos.
NORMALIZACIÓN AGENCIA 12

Más contenido relacionado

La actualidad más candente

Modelo Entidad Relacion ,Base de datos
Modelo Entidad Relacion ,Base de datosModelo Entidad Relacion ,Base de datos
Modelo Entidad Relacion ,Base de datos
Robert Rodriguez
 
Arboles Binarios y Arboles Binarios de Busqueda
Arboles Binarios y Arboles Binarios de BusquedaArboles Binarios y Arboles Binarios de Busqueda
Arboles Binarios y Arboles Binarios de Busqueda
Kamila Nicole Molina Orellana
 
Modelo relacional
Modelo relacionalModelo relacional
Modelo relacional
Victor Quintero
 
Tipos de atributos y tipos de relaciones
Tipos de atributos y tipos de relacionesTipos de atributos y tipos de relaciones
Tipos de atributos y tipos de relaciones
basilioj
 
Transformar modelo entidad relacion a modelo logico
Transformar modelo entidad relacion a modelo logicoTransformar modelo entidad relacion a modelo logico
Transformar modelo entidad relacion a modelo logicojosecuartas
 
Modelo Entidad Relación
Modelo Entidad RelaciónModelo Entidad Relación
Modelo Entidad Relación
josecuartas
 
Normalizacion de base de datos
Normalizacion de base de datosNormalizacion de base de datos
Normalizacion de base de datos
Sergio Sanchez
 
Presentacion de Modelo entidad -relación de Base de Datos
Presentacion de Modelo entidad -relación de Base de Datos Presentacion de Modelo entidad -relación de Base de Datos
Presentacion de Modelo entidad -relación de Base de Datos
Yarquiri Claudio
 
Normalizacion de bases de datos
Normalizacion de bases de datosNormalizacion de bases de datos
Normalizacion de bases de datos
Caro_Noirgean
 
Modelo entidad
Modelo entidadModelo entidad
Modelo Entidad - Relacion
Modelo Entidad - RelacionModelo Entidad - Relacion
Modelo Entidad - Relaciondrakul09
 
NORMALIZACIÓN DE BASES DE DATOS.pdf
NORMALIZACIÓN DE BASES DE DATOS.pdfNORMALIZACIÓN DE BASES DE DATOS.pdf
NORMALIZACIÓN DE BASES DE DATOS.pdf
Sumica1
 
Clase 3 Modelo Entidad Relacion
Clase 3   Modelo Entidad   RelacionClase 3   Modelo Entidad   Relacion
Clase 3 Modelo Entidad Relacionoswchavez
 
Algebra relacional
Algebra relacionalAlgebra relacional
Algebra relacional
claudyabra
 
Modelo relacional
Modelo relacionalModelo relacional
Modelo relacional
miranda271999
 
Estructura de una base de datos
Estructura de una base de datosEstructura de una base de datos
Estructura de una base de datosZcnp1234
 
Cuarta forma normal y quinta forma normal
Cuarta forma normal y quinta forma normalCuarta forma normal y quinta forma normal
Cuarta forma normal y quinta forma normal
Memo Wars
 
Normalización de Base de Datos
Normalización de Base de DatosNormalización de Base de Datos
Normalización de Base de Datos
Mayra Romero
 

La actualidad más candente (20)

Modelo Entidad Relacion ,Base de datos
Modelo Entidad Relacion ,Base de datosModelo Entidad Relacion ,Base de datos
Modelo Entidad Relacion ,Base de datos
 
Arboles Binarios y Arboles Binarios de Busqueda
Arboles Binarios y Arboles Binarios de BusquedaArboles Binarios y Arboles Binarios de Busqueda
Arboles Binarios y Arboles Binarios de Busqueda
 
Modelo relacional
Modelo relacionalModelo relacional
Modelo relacional
 
Tipos de atributos y tipos de relaciones
Tipos de atributos y tipos de relacionesTipos de atributos y tipos de relaciones
Tipos de atributos y tipos de relaciones
 
Transformar modelo entidad relacion a modelo logico
Transformar modelo entidad relacion a modelo logicoTransformar modelo entidad relacion a modelo logico
Transformar modelo entidad relacion a modelo logico
 
Modelo Entidad Relación
Modelo Entidad RelaciónModelo Entidad Relación
Modelo Entidad Relación
 
Ejemplo dfd
Ejemplo dfdEjemplo dfd
Ejemplo dfd
 
Normalizacion de base de datos
Normalizacion de base de datosNormalizacion de base de datos
Normalizacion de base de datos
 
Presentacion de Modelo entidad -relación de Base de Datos
Presentacion de Modelo entidad -relación de Base de Datos Presentacion de Modelo entidad -relación de Base de Datos
Presentacion de Modelo entidad -relación de Base de Datos
 
Normalizacion de bases de datos
Normalizacion de bases de datosNormalizacion de bases de datos
Normalizacion de bases de datos
 
Modelo entidad
Modelo entidadModelo entidad
Modelo entidad
 
Modelo Entidad - Relacion
Modelo Entidad - RelacionModelo Entidad - Relacion
Modelo Entidad - Relacion
 
NORMALIZACIÓN DE BASES DE DATOS.pdf
NORMALIZACIÓN DE BASES DE DATOS.pdfNORMALIZACIÓN DE BASES DE DATOS.pdf
NORMALIZACIÓN DE BASES DE DATOS.pdf
 
Clase 3 Modelo Entidad Relacion
Clase 3   Modelo Entidad   RelacionClase 3   Modelo Entidad   Relacion
Clase 3 Modelo Entidad Relacion
 
modelo entidad-relacion
modelo entidad-relacionmodelo entidad-relacion
modelo entidad-relacion
 
Algebra relacional
Algebra relacionalAlgebra relacional
Algebra relacional
 
Modelo relacional
Modelo relacionalModelo relacional
Modelo relacional
 
Estructura de una base de datos
Estructura de una base de datosEstructura de una base de datos
Estructura de una base de datos
 
Cuarta forma normal y quinta forma normal
Cuarta forma normal y quinta forma normalCuarta forma normal y quinta forma normal
Cuarta forma normal y quinta forma normal
 
Normalización de Base de Datos
Normalización de Base de DatosNormalización de Base de Datos
Normalización de Base de Datos
 

Destacado

Agencia de autos
Agencia de autosAgencia de autos
Agencia de autos
agenciadeautos
 
Agencia de autos
Agencia de autosAgencia de autos
Agencia de autos
Cosmick Ermi
 
Base De Datos Renta Car
Base De Datos Renta CarBase De Datos Renta Car
Base De Datos Renta Carxgvxavi
 
Normalización de la base de datos (3 formas normales)
Normalización de la base de datos (3 formas normales)Normalización de la base de datos (3 formas normales)
Normalización de la base de datos (3 formas normales)
michell_quitian
 
Normalizacionnosecuanto
NormalizacionnosecuantoNormalizacionnosecuanto
Normalizacionnosecuanto
medicengabriel
 
Video 13
Video 13Video 13
Video 13
Nesstor Josue
 
Normalizacion2
Normalizacion2Normalizacion2
Normalizacion2
medicengabriel
 
Recibo normalizado
Recibo normalizadoRecibo normalizado
Recibo normalizadosara13fag
 
06 Normalización fácil
06 Normalización fácil06 Normalización fácil
06 Normalización fácil
toniserna
 
02 Modelado Conceptual
02 Modelado Conceptual02 Modelado Conceptual
02 Modelado Conceptualtoniserna
 
Normalización de Base de Datos
Normalización de Base de DatosNormalización de Base de Datos
Normalización de Base de DatosVictor Chavez
 
Almacen de datos
Almacen de datosAlmacen de datos
Almacen de datosen mi casa
 
Normalizacion de la bd
Normalizacion de la bdNormalizacion de la bd
Normalizacion de la bd
Elsa Maria Junca
 

Destacado (20)

Agencia de autos
Agencia de autosAgencia de autos
Agencia de autos
 
Agencia de autos
Agencia de autosAgencia de autos
Agencia de autos
 
Base De Datos Renta Car
Base De Datos Renta CarBase De Datos Renta Car
Base De Datos Renta Car
 
Ejercicios normalización
Ejercicios normalizaciónEjercicios normalización
Ejercicios normalización
 
Normalización de la base de datos (3 formas normales)
Normalización de la base de datos (3 formas normales)Normalización de la base de datos (3 formas normales)
Normalización de la base de datos (3 formas normales)
 
Normalizacionnosecuanto
NormalizacionnosecuantoNormalizacionnosecuanto
Normalizacionnosecuanto
 
Normalizacion3
Normalizacion3Normalizacion3
Normalizacion3
 
5 cientifico-martes-19
5 cientifico-martes-195 cientifico-martes-19
5 cientifico-martes-19
 
Normalización bases de datos 02
Normalización bases de datos 02Normalización bases de datos 02
Normalización bases de datos 02
 
Video 13
Video 13Video 13
Video 13
 
Normalizacion de bases de datos
Normalizacion de bases de datosNormalizacion de bases de datos
Normalizacion de bases de datos
 
Normalizacion2
Normalizacion2Normalizacion2
Normalizacion2
 
Normalizacion
NormalizacionNormalizacion
Normalizacion
 
Recibo normalizado
Recibo normalizadoRecibo normalizado
Recibo normalizado
 
Ejercio de normalización
Ejercio de normalizaciónEjercio de normalización
Ejercio de normalización
 
06 Normalización fácil
06 Normalización fácil06 Normalización fácil
06 Normalización fácil
 
02 Modelado Conceptual
02 Modelado Conceptual02 Modelado Conceptual
02 Modelado Conceptual
 
Normalización de Base de Datos
Normalización de Base de DatosNormalización de Base de Datos
Normalización de Base de Datos
 
Almacen de datos
Almacen de datosAlmacen de datos
Almacen de datos
 
Normalizacion de la bd
Normalizacion de la bdNormalizacion de la bd
Normalizacion de la bd
 

Similar a Normalización de Bases de Datos (Hasta Boyce-Codd)

Ej Normalizacion Juan Glz
Ej Normalizacion Juan GlzEj Normalizacion Juan Glz
Ej Normalizacion Juan Glz
Instituto Tecnológico SUperior de Lerdo
 
Contenido 4
Contenido 4Contenido 4
Contenido 4
William Arias
 
Formnormal
FormnormalFormnormal
Formnormal
Mely Pérez
 
Proyectos de bases de datos
Proyectos de bases de datosProyectos de bases de datos
Proyectos de bases de datos
David Arroyo
 
Actividad apropiacion conocimientos_dbenavides
Actividad apropiacion conocimientos_dbenavidesActividad apropiacion conocimientos_dbenavides
Actividad apropiacion conocimientos_dbenavides
Danny Benavides
 
Normalización-Uladech
Normalización-UladechNormalización-Uladech
Normalización-Uladech
jonel
 
TEMA_2_EL_MODELO_ENTIDAD_RELACION.ppt
TEMA_2_EL_MODELO_ENTIDAD_RELACION.pptTEMA_2_EL_MODELO_ENTIDAD_RELACION.ppt
TEMA_2_EL_MODELO_ENTIDAD_RELACION.ppt
AbigailLiendolopez1
 
TEMA 2 EL MODELO ENTIDAD RELACION.ppt
TEMA 2 EL MODELO ENTIDAD RELACION.pptTEMA 2 EL MODELO ENTIDAD RELACION.ppt
TEMA 2 EL MODELO ENTIDAD RELACION.ppt
XiomaraVaca
 
tema4 fundamentos de base de datos
tema4 fundamentos de base de datos tema4 fundamentos de base de datos
tema4 fundamentos de base de datos
AnaidOcampo1
 
Taller Access #2
Taller Access #2Taller Access #2
Taller Access #2
Isaac Galvez
 
Diseño Lógico de la base de datos
Diseño Lógico de la base de datosDiseño Lógico de la base de datos
Diseño Lógico de la base de datos
eeencalada
 
normalizacion base de datos
normalizacion base de datosnormalizacion base de datos
normalizacion base de datos
Victor Manuel Urbano Martinez
 
SQL-SERVER-CLASE-02.pptx
SQL-SERVER-CLASE-02.pptxSQL-SERVER-CLASE-02.pptx
SQL-SERVER-CLASE-02.pptx
StevenCB3
 
TODO SOBRE BASE DE DATOS CON MICROSOFT SQL SERVER
TODO SOBRE BASE DE DATOS CON MICROSOFT SQL SERVERTODO SOBRE BASE DE DATOS CON MICROSOFT SQL SERVER
TODO SOBRE BASE DE DATOS CON MICROSOFT SQL SERVER
SaulTapiaAlmidon
 
PDFBETA
PDFBETAPDFBETA
PDFBETA
Arleette C'a
 
Normalizacion de base de datos
Normalizacion de base de datosNormalizacion de base de datos
Normalizacion de base de datos
Yarquiri Claudio
 

Similar a Normalización de Bases de Datos (Hasta Boyce-Codd) (20)

Ej Normalizacion Juan Glz
Ej Normalizacion Juan GlzEj Normalizacion Juan Glz
Ej Normalizacion Juan Glz
 
Contenido 4
Contenido 4Contenido 4
Contenido 4
 
Formnormal
FormnormalFormnormal
Formnormal
 
Proyectos de bases de datos
Proyectos de bases de datosProyectos de bases de datos
Proyectos de bases de datos
 
Normalizacion
NormalizacionNormalizacion
Normalizacion
 
Actividad apropiacion conocimientos_dbenavides
Actividad apropiacion conocimientos_dbenavidesActividad apropiacion conocimientos_dbenavides
Actividad apropiacion conocimientos_dbenavides
 
Entidad relacion
Entidad relacionEntidad relacion
Entidad relacion
 
Normalización-Uladech
Normalización-UladechNormalización-Uladech
Normalización-Uladech
 
TEMA_2_EL_MODELO_ENTIDAD_RELACION.ppt
TEMA_2_EL_MODELO_ENTIDAD_RELACION.pptTEMA_2_EL_MODELO_ENTIDAD_RELACION.ppt
TEMA_2_EL_MODELO_ENTIDAD_RELACION.ppt
 
TEMA 2 EL MODELO ENTIDAD RELACION.ppt
TEMA 2 EL MODELO ENTIDAD RELACION.pptTEMA 2 EL MODELO ENTIDAD RELACION.ppt
TEMA 2 EL MODELO ENTIDAD RELACION.ppt
 
004 normalizacion
004 normalizacion004 normalizacion
004 normalizacion
 
Guia normalización
Guia normalizaciónGuia normalización
Guia normalización
 
tema4 fundamentos de base de datos
tema4 fundamentos de base de datos tema4 fundamentos de base de datos
tema4 fundamentos de base de datos
 
Taller Access #2
Taller Access #2Taller Access #2
Taller Access #2
 
Diseño Lógico de la base de datos
Diseño Lógico de la base de datosDiseño Lógico de la base de datos
Diseño Lógico de la base de datos
 
normalizacion base de datos
normalizacion base de datosnormalizacion base de datos
normalizacion base de datos
 
SQL-SERVER-CLASE-02.pptx
SQL-SERVER-CLASE-02.pptxSQL-SERVER-CLASE-02.pptx
SQL-SERVER-CLASE-02.pptx
 
TODO SOBRE BASE DE DATOS CON MICROSOFT SQL SERVER
TODO SOBRE BASE DE DATOS CON MICROSOFT SQL SERVERTODO SOBRE BASE DE DATOS CON MICROSOFT SQL SERVER
TODO SOBRE BASE DE DATOS CON MICROSOFT SQL SERVER
 
PDFBETA
PDFBETAPDFBETA
PDFBETA
 
Normalizacion de base de datos
Normalizacion de base de datosNormalizacion de base de datos
Normalizacion de base de datos
 

Último

Desarrollo de Habilidades de Pensamiento.
Desarrollo de Habilidades de Pensamiento.Desarrollo de Habilidades de Pensamiento.
Desarrollo de Habilidades de Pensamiento.
AlejandraCasallas7
 
Estructuras básicas_ conceptos básicos de programación.pdf
Estructuras básicas_  conceptos básicos de programación.pdfEstructuras básicas_  conceptos básicos de programación.pdf
Estructuras básicas_ conceptos básicos de programación.pdf
ItsSofi
 
proyecto invernadero desde el departamento de tecnología para Erasmus
proyecto invernadero desde el departamento de tecnología para Erasmusproyecto invernadero desde el departamento de tecnología para Erasmus
proyecto invernadero desde el departamento de tecnología para Erasmus
raquelariza02
 
Inteligencia Artificial y Ciberseguridad.pdf
Inteligencia Artificial y Ciberseguridad.pdfInteligencia Artificial y Ciberseguridad.pdf
Inteligencia Artificial y Ciberseguridad.pdf
Emilio Casbas
 
Trabajo Coding For kids 1 y 2 grado 9-4.pdf
Trabajo Coding For kids 1 y 2 grado 9-4.pdfTrabajo Coding For kids 1 y 2 grado 9-4.pdf
Trabajo Coding For kids 1 y 2 grado 9-4.pdf
jjfch3110
 
(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática
(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática
(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática
vazquezgarciajesusma
 
(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática
(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática
(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática
vazquezgarciajesusma
 
Estructuras Básicas_ Conceptos Basicos De Programacion.pdf
Estructuras Básicas_ Conceptos Basicos De Programacion.pdfEstructuras Básicas_ Conceptos Basicos De Programacion.pdf
Estructuras Básicas_ Conceptos Basicos De Programacion.pdf
IsabellaRubio6
 
Estructuras básicas_ conceptos de programación (1).docx
Estructuras básicas_ conceptos de programación  (1).docxEstructuras básicas_ conceptos de programación  (1).docx
Estructuras básicas_ conceptos de programación (1).docx
SamuelRamirez83524
 
3Redu: Responsabilidad, Resiliencia y Respeto
3Redu: Responsabilidad, Resiliencia y Respeto3Redu: Responsabilidad, Resiliencia y Respeto
3Redu: Responsabilidad, Resiliencia y Respeto
cdraco
 
Alan Turing Vida o biografía resumida como presentación
Alan Turing Vida o biografía resumida como presentaciónAlan Turing Vida o biografía resumida como presentación
Alan Turing Vida o biografía resumida como presentación
JuanPrez962115
 
DESARROLO DE HABILIDADES DE PENSAMIENTO.pdf
DESARROLO DE HABILIDADES DE PENSAMIENTO.pdfDESARROLO DE HABILIDADES DE PENSAMIENTO.pdf
DESARROLO DE HABILIDADES DE PENSAMIENTO.pdf
marianabz2403
 
Conceptos Básicos de Programación Proyecto
Conceptos Básicos de Programación ProyectoConceptos Básicos de Programación Proyecto
Conceptos Básicos de Programación Proyecto
cofferub
 
Desarrollo de Habilidades de Pensamiento.docx (3).pdf
Desarrollo de Habilidades de Pensamiento.docx (3).pdfDesarrollo de Habilidades de Pensamiento.docx (3).pdf
Desarrollo de Habilidades de Pensamiento.docx (3).pdf
AlejandraCasallas7
 
INFORME DE LAS FICHAS.docx.pdf LICEO DEPARTAMENTAL
INFORME DE LAS FICHAS.docx.pdf LICEO DEPARTAMENTALINFORME DE LAS FICHAS.docx.pdf LICEO DEPARTAMENTAL
INFORME DE LAS FICHAS.docx.pdf LICEO DEPARTAMENTAL
CrystalRomero18
 
Conceptos Básicos de Programación. Tecnología
Conceptos Básicos de Programación. TecnologíaConceptos Básicos de Programación. Tecnología
Conceptos Básicos de Programación. Tecnología
coloradxmaria
 
Trabajo Coding For kids 1 y 2 grado 9-4.pdf
Trabajo Coding For kids 1 y 2 grado 9-4.pdfTrabajo Coding For kids 1 y 2 grado 9-4.pdf
Trabajo Coding For kids 1 y 2 grado 9-4.pdf
cj3806354
 
biogas industrial para guiarse en proyectos
biogas industrial para guiarse en proyectosbiogas industrial para guiarse en proyectos
biogas industrial para guiarse en proyectos
Luis Enrique Zafra Haro
 
Estructuras Básicas_Tecnología_Grado10-7.pdf
Estructuras Básicas_Tecnología_Grado10-7.pdfEstructuras Básicas_Tecnología_Grado10-7.pdf
Estructuras Básicas_Tecnología_Grado10-7.pdf
cristianrb0324
 
Posnarrativas en la era de la IA generativa
Posnarrativas en la era de la IA generativaPosnarrativas en la era de la IA generativa
Posnarrativas en la era de la IA generativa
Fernando Villares
 

Último (20)

Desarrollo de Habilidades de Pensamiento.
Desarrollo de Habilidades de Pensamiento.Desarrollo de Habilidades de Pensamiento.
Desarrollo de Habilidades de Pensamiento.
 
Estructuras básicas_ conceptos básicos de programación.pdf
Estructuras básicas_  conceptos básicos de programación.pdfEstructuras básicas_  conceptos básicos de programación.pdf
Estructuras básicas_ conceptos básicos de programación.pdf
 
proyecto invernadero desde el departamento de tecnología para Erasmus
proyecto invernadero desde el departamento de tecnología para Erasmusproyecto invernadero desde el departamento de tecnología para Erasmus
proyecto invernadero desde el departamento de tecnología para Erasmus
 
Inteligencia Artificial y Ciberseguridad.pdf
Inteligencia Artificial y Ciberseguridad.pdfInteligencia Artificial y Ciberseguridad.pdf
Inteligencia Artificial y Ciberseguridad.pdf
 
Trabajo Coding For kids 1 y 2 grado 9-4.pdf
Trabajo Coding For kids 1 y 2 grado 9-4.pdfTrabajo Coding For kids 1 y 2 grado 9-4.pdf
Trabajo Coding For kids 1 y 2 grado 9-4.pdf
 
(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática
(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática
(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática
 
(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática
(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática
(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática
 
Estructuras Básicas_ Conceptos Basicos De Programacion.pdf
Estructuras Básicas_ Conceptos Basicos De Programacion.pdfEstructuras Básicas_ Conceptos Basicos De Programacion.pdf
Estructuras Básicas_ Conceptos Basicos De Programacion.pdf
 
Estructuras básicas_ conceptos de programación (1).docx
Estructuras básicas_ conceptos de programación  (1).docxEstructuras básicas_ conceptos de programación  (1).docx
Estructuras básicas_ conceptos de programación (1).docx
 
3Redu: Responsabilidad, Resiliencia y Respeto
3Redu: Responsabilidad, Resiliencia y Respeto3Redu: Responsabilidad, Resiliencia y Respeto
3Redu: Responsabilidad, Resiliencia y Respeto
 
Alan Turing Vida o biografía resumida como presentación
Alan Turing Vida o biografía resumida como presentaciónAlan Turing Vida o biografía resumida como presentación
Alan Turing Vida o biografía resumida como presentación
 
DESARROLO DE HABILIDADES DE PENSAMIENTO.pdf
DESARROLO DE HABILIDADES DE PENSAMIENTO.pdfDESARROLO DE HABILIDADES DE PENSAMIENTO.pdf
DESARROLO DE HABILIDADES DE PENSAMIENTO.pdf
 
Conceptos Básicos de Programación Proyecto
Conceptos Básicos de Programación ProyectoConceptos Básicos de Programación Proyecto
Conceptos Básicos de Programación Proyecto
 
Desarrollo de Habilidades de Pensamiento.docx (3).pdf
Desarrollo de Habilidades de Pensamiento.docx (3).pdfDesarrollo de Habilidades de Pensamiento.docx (3).pdf
Desarrollo de Habilidades de Pensamiento.docx (3).pdf
 
INFORME DE LAS FICHAS.docx.pdf LICEO DEPARTAMENTAL
INFORME DE LAS FICHAS.docx.pdf LICEO DEPARTAMENTALINFORME DE LAS FICHAS.docx.pdf LICEO DEPARTAMENTAL
INFORME DE LAS FICHAS.docx.pdf LICEO DEPARTAMENTAL
 
Conceptos Básicos de Programación. Tecnología
Conceptos Básicos de Programación. TecnologíaConceptos Básicos de Programación. Tecnología
Conceptos Básicos de Programación. Tecnología
 
Trabajo Coding For kids 1 y 2 grado 9-4.pdf
Trabajo Coding For kids 1 y 2 grado 9-4.pdfTrabajo Coding For kids 1 y 2 grado 9-4.pdf
Trabajo Coding For kids 1 y 2 grado 9-4.pdf
 
biogas industrial para guiarse en proyectos
biogas industrial para guiarse en proyectosbiogas industrial para guiarse en proyectos
biogas industrial para guiarse en proyectos
 
Estructuras Básicas_Tecnología_Grado10-7.pdf
Estructuras Básicas_Tecnología_Grado10-7.pdfEstructuras Básicas_Tecnología_Grado10-7.pdf
Estructuras Básicas_Tecnología_Grado10-7.pdf
 
Posnarrativas en la era de la IA generativa
Posnarrativas en la era de la IA generativaPosnarrativas en la era de la IA generativa
Posnarrativas en la era de la IA generativa
 

Normalización de Bases de Datos (Hasta Boyce-Codd)

  • 1. Normalización de la Base de Datos Agencia de Recuperación de Vehículos Instituto Politécnico Nacional UPIITA-IPN • Espindola Pizano Ariel Tonatiuh • Zepeda Tinoco Jorge Grupo 2TM2 - 2 de marzo de 2015
 NORMALIZACIÓN AGENCIA 1
  • 2. Introducción Dentro de la Teoría de la Normalización de Bases de Datos, existen cinco formas normales que son un conjunto de reglas que se deben seguir para garantizar la integridad de los de datos eliminando dependencias funcionales como la reflexiva, aumentativa y transitiva (redundancia) en el modelo relacional. En el diseño de esta base de datos, se llevará a cabo la normalización hasta la tercera forma normal Boyce-Codd . Además de que solo se mostrará la normalización de a lo más dos tablas, a modo de simplificar este documento. El procedimiento de normalización para una tabla es muy similar al resto de las tablas de la base de datos. Por otro lado, después de normalizar , en consecuencia se tiene que re-diseñar la relación entre las tablas lo cual será explicado mas adelante. Antes de Normalizar Planteamiento del problema En una agencia de seguridad pública y recuperación de autos, se trabaja en conjunto para saber ciertos datos acerca de autos robados en los últimos 3 meses o el periodo especificado por el usuario, para ello se desea construir una base de datos para consultar, modificar y gestionar el proceso o etapa en el que se encuentra el vehículo. La organización clasifica tres etapas, denuncia, búsqueda y recuperación. Cuando el propietario o conductor del vehículo hace la denuncia tiene que proporcionar sus datos y los del vehículo, así como también el lugar, fecha y hora del acontecimiento. La denuncia también debe contener folio y un indicio de sospecha. De los datos de la persona que denuncia se desea almacenar, su nombre completo, domicilio, teléfono, e-mail , edad (+18 ) y en caso de haber testigos se necesita solo nombre y teléfono de cada uno. En cuanto a los datos del vehículo deben almacenarse : nombre del propietario actual, placas, No. de serie (VIN), modelo, marca, color y nacionalidad. Y el sistema deberá mostrar un dato adicional del vehículo tale como, el status actual del mismo ya sea recuperado, desaparecido, buscando o perdido, con base en el transcurso de la investigación. En la etapa de recuperación se debe hacer un diagnóstico por uno de los peritos reconocidos de la agencia, se debe tener en cuenta que el caso se clasifica de acuerdo a las condiciones en las que se encontró el auto, completo o siniestrado, si el auto es siniestrado, debe de tomarse en cuenta si las condiciones son de pérdida total o perdida parcial. NORMALIZACIÓN AGENCIA 2
  • 3. A la agencia también le interesa saber quién realizó ese diagnóstico, cuándo y a qué hora. Si el auto no es recuperado a lo más en 3 meses, se extiende la búsqueda a un mes más, en caso de que no se encuentre, se considera como desaparecido y finaliza la etapa búsqueda. En caso contrario, si el auto es recuperado, se procede a la entrega con el cliente corroborando los datos del propietario y del vehículo. Al término de ello, queda guardado un historial del auto recuperado en ésta agencia. Modelo Relacional de la problematica Se observa a simple vista, que puede existir redundancia en las tablas. Eso y más, será comprobado. Ahora procederemos a seguir las reglas de normalización, y conforme se avance, se irán notando los cambios en la Base de Datos. NORMALIZACIÓN AGENCIA 3
  • 4. Normalización 1FN - Primera forma normal Se dice que una relación esta en primera forma normal si y solo si tiene un número fijo de atributos y estos toman valores atómicos (indivisibles) de un dominio. Cada tupla de una tabla debe representar una entidad y las entidades deben ser únicas, por lo que se necesita establecer una llave primaria. Tomaremos la tabla “Persona” para normalizar. Persona (curp, nombre, domicilio, e-mail, edad, tipo, teléfono) De acuerdo con la 1FN, esta entidad debe tener una llave que identifique de manera única cada registro dentro de la tabla, en este caso se observa que la “curp”, es irrepetible, entonces es único, pero en el planteamiento del problema no se habla de este tipo de identificación entonces se elimina y en su lugar se determina un atributo “idPersona”, que también será único e irrepetible ademas de permitir la identificación de la tabla “Persona” con un dígito de menor longitud que del curp. Los atributos deben ser atómicos, es decir indivisibles. En este caso el atributo “nombre” se puede dividir por “apellido_paterno”, “apellido_materno”, también la dirección se puede dividir por “calle”, “numero”, “colonia”,”delegacion”, “estado” y “codigo_postal”. Quedando la tabla de la siguiente manera. Se realiza el mismo procedimiento con el resto de las tablas de la base de datos. NORMALIZACIÓN AGENCIA 4 Persona (idPersona, nombre, apellido_paterno, apellido_materno, e-mail, edad, tipo, teléfono ,codigo_postal,colonia, calle, numero, delegacion, estado, telefono)
  • 5. La tabla “Recuperacion” contiene datos que no son necesarios, por ejemplo “tipo”, que indica en qué etapa se encuentra la búsqueda , entonces existen errores de diseño, en su lugar quedan dos atributos que son “perdida” y “condicion”. Por lo que se decide crear únicamente una tabla “Recuperados”. Quedando de la siguiente manera. El atributo “condicion” es de tipo entero que puede tomar valores {0,1}, uno indica siniestrado (chocado) y cero indica completo. Donde “perdida” es de tipo entero cuyo dominio es {0,1,2}, el cero indica que no hay pérdida, el uno indica que es pérdida parcial, el dos significa que es pérdida total. Cabe mencionar que sus respectivas validaciones se incluyen en la lógica de negocio a nivel de programación. “Debido a la condición, se asigna el valor de perdida” Dado que las estructuras de las tablas se van modificando, podemos darnos cuenta que algunas no tienen razón de ser con base en planteamiento del problema. Como es el caso de la tabla “Busqueda”, debido a que la información que contiene puede ser más manejable a nivel de programación dentro de la aplicación. En la tabla “Vehículo” se conservan los mismos atributos. Ahora vamos con la tabla “Denuncia”, la cual tiene los siguientes atributos: Denuncia (folio,idPersona, hora, ubicacion, datos_vehiculo, indicio_sospecha) Podemos observar que el atributo “datos_vehiculo”, no tiene razón de ser porque para esos datos existe la tabla vehículo cuyos datos puede obtenerse través de idPersona, por lo tanto se elimina y la nueva tabla con atributos atómicos y correctamente identificada es la siguiente: NORMALIZACIÓN AGENCIA 5 Recuperados (idRecuperados, perdida, condicion,hora,fecha, nombre_perito,apellido_paterno,apellido_materno) Denuncia (idDenuncia, idPersona, sospecha,hora_sucedido,fecha_sucedido, lugar_sucedido,descripcion_sucedido)
  • 6. Entonces la tabla “Testigo” queda de la siguiente manera. 2FN - Segunda forma normal Sea R(A,B,C,D), un esquema de relación, se dice que R esta en 2FN si: 1.- Está en 1FN 2.- Todo atributo no clave V contenido en R, depende funcionalmente de la clave (o claves) y no de ninguna subconjunto propio de ella (o ellas). Esto nos quiere decir que toda columna que no sea clave debe guardar relación directa con la llave primaria. Estos es muy útil para separar la semántica de cada tabla. Por ejemplo en la tabla “Persona”, los atributos “calle”, “numero”, “colonia”, ”delegacion”, “estado”, “codigo_postal” no tienen relación directa o dependencia funcional con la persona, sino con la dirección de la persona. Al hacer esto se crea una nueva tabla llamada “Domicilio”, que a su ves también debe tener una llave única que la identifique. Entonces las tablas quedarían, como sigue. Se asigna una PK “idDomicilio” que será creada con datos del domicilio y persona, lo cual se llevara a cabo a nivel de programación, para más detalles de esto pasar a la sección de Lógica de Negocio. Para fines prácticos, el atributo se ha configurado como autoincremental en el GBD por el momento. NORMALIZACIÓN AGENCIA 6 Testigo (idTestigo, idDenuncia, nombre, telefono) Domicilio(idDomicilio, codigo_postal, calle, numero, colonia, delegacion,estado) Persona (idPersona, idDomicilio, nombre, e-mail, edad, tipo, telefono)
  • 7. De manera similar sucede con la tabla “Recuperados”, ya que los atributos: “nombre_perito”, “apellido_paterno”,”apellido_materno” son NO CLAVE y dependen funcionalmente de un subconjunto propio que puede ser llamado PERITOS, entonces no esta normalizada a 2FN. Además, cabe mencionar en incluso los atributos “fecha” y “hora” no guardan relación directa con la llave primaria “idRecuperados” porque para que se establezca hora y fecha previamente debe existir un diagnóstico, por lo tanto un subconjunto puede llamarse DIAGNOSTICOS. Acto seguido, un perito es quien realiza uno o más diagnósticos, por lo tanto si creamos una tabla llamada “Diagnostico”, ésta contendría una referencia hacia PERITOS. Es importante decir que cada nueva tabla que se crea debe de ser identificada de manera única con una respectiva llave primaria. Al crear una tabla para cada subconjunto, el esquema queda de la siguiente manera: “VIN” es una llave propagada (o foránea) de la tabla “Vehículo” que se pone como llave primaria para identificar a esta tabla de manera única e irrepetible, ya que por cada auto que existe en la tabla “Vehículo” debe haber o no uno recuperado (puede que todavía no se recupere) , esto garantiza la integridad referencial entre las tablas. Los atributos “hora”, “fecha” y “idPeritos”, dependen funcionalmente de la clave primaria, es decir del diagnóstico. Esto se puede leer como sigue para entender mejor la dependencia: “El perito DEL diagnóstico, la hora DEL diagnóstico y la fecha DEL diagnóstico” NORMALIZACIÓN AGENCIA 7 Recuperados (VIN,Diagnostico_folio, perdida, condicion) Diagnostico (folio,idPeritos, hora, fecha)
  • 8. Esta tabla queda perfectamente identificada y con relación directa entre la llave primaria y los atributos no clave contenidos en la tabla. La tabla “Denuncia”, es evidente que no está normalizada a 2FN, por lo que se procede con los mismos pasos de las tablas anteriores dando como resultado las siguientes tablas. Nota: Entre la tabla “Denuncia” y “Testigo”, existe una relación N:M (muchos a muchos) ya que una denuncia puede tener varios testigos pero también un testigo puede estar en varias denuncias. La tabla “Denucia ” tiene atributos que no guarda relación directa con la llave primaria como es el caso de “hora”, “fecha”, “lugar”, “descripción” son de lo sucedido, no de la denuncia. Entonces se puede interpretar un nuevo subconjunto llamado ACONTECIMIENTO. Entonces ahora sí se puede leer, queda de la siguiente forma: “La persona DE la denuncia y el acontecimiento DE la denuncia”. Se cumple con la relación directa de los atributos no clave con la llave principal. NORMALIZACIÓN AGENCIA 8 Peritos (idPeritos, nombre, apellido_paterno, apelido_materno) Denuncia (idDenuncia, idPersona, idAcontecimiento) Acontecimiento (idAcontecimiento, hora, fecha, lugar, descripcion, sospecha) Testigo (idTestigo, nombre, telefono)
  • 9. Esta tabla representa la relación muchos a muchos en el modelo relacional. 3FN - Tercera forma normal (Eliminación de dependencia Transitiva) Un esquema de relación R esta en 3FN si: 1.- Está en 2FN 2.- Todo atributo no clave no depende funcionalmente de ningún atributo no clave. Para que no haya dependencia transitiva se debe crear una nueva entidad con los atributos no clave que dependan funcionalmente uno de otro. Si no se realiza este paso, se tendrán datos repetidos en las tablas, por ende serán mas grandes y será un poco más confuso identificar algún dato dentro de una consulta. Hasta el momento se ha normalizado detenidamente la base de datos hasta la 2FN, donde se analizó tabla por tabla las dependencias funcionales de los atributos, por lo tanto todas las tablas se encuentran normalizadas en 3FN a excepción de la tabla “Recuperados”. A continuación se explica por qué. Recordando que ésta tabla contiene los atributos “perdida” y “condicion”, se puede observar de acuerdo con la lógica de negocio y el diseño de la base de datos que dada una CONDICIÓN, se determina el tipo de PÉRDIDA, por ejemplo si “condicion = 0” (sin daños) entonces “perdida = 0” (no hay pérdida). Entonces se ve una dependencia funcional entre atributos no clave, por lo tanto hay una dependencia transitiva. Para eliminarla se propone una nueva tabla “Resultado”, la cual va ligada con “Diagnostico” ya que es el resultado del diagnóstico realizado por el perito, con relación 1:N (un resultado puede estar en varios diagnósticos pero un diagnóstico no puede tener varios resultados). NORMALIZACIÓN AGENCIA 9 Testigo_Denuncia (idTestigo, idDenuncia)
  • 10. “condicion” o estado es un hecho del resultado (idResultado) de un diagnóstico previo, así como también “perdida” depende del resultado (idResultado) donde se cumpla cierta condición del estado del vehículo. De esta manera se elimina la dependencia transitiva en consecuencia la tabla “Recuperados” jamas tendrá valores repetidos BCFN - Forma Normal de Boyce-Codd Un esquema de relación R esta en 3FN si y solo si PARA TODAS sus dependencias funcionales elementales de la forma X->Y, se verifica que X es una clave de R. Definiciones: X->Y : Es una dependencia funcional trivial si y solo si Y esta contenida en X. X->Y: Es una dependencia funcional completa si y solo si no depende funcionalmente de ningún subconjunto de X. Una dependencia funcional completa y no trivial , se dice que es una dependencia funcional elemental. Esta regla se aplica básicamente para ignorar una de las llaves candidatas (siendo el caso) y utilizar una solamente para identificar el atributo que esté en cuestión. NORMALIZACIÓN AGENCIA 10 Resultado (idResultado, condicion, perdida) Recuperados (VIN ,Diagnostico_folio) Diagnostico (folio,idPeritos, idResultado,hora, fecha)
  • 11. De acuerdo al análisis puntual previo en toda la base de datos, se puede decir que todas las tablas esta en BCNF a excepción de la tabla “Recuperados”, la cual tiene dos llaves que son únicas, una que es “VIN” la llave primaria y “Diagnostico_folio” como llave candidata ya que también es única y puede identificar a la tabla. Es decir, no es dependencia funcional completa. Tras analizar la tabla “Recuperados” se observa que no tiene razón de existir, ya que solo contiene el “VIN” propagado de la tabla “Vehiculo” y el “folio” del diagnóstico , por lo tanto puede haber una relación directa entre DIAGNOSTICO y VEHICULO si necesidad de pasar por “Recuperados”. La relación que se forma es de 1:N (varios vehículos tienen un diagnóstico, es decir por cada vehículo hay un diagnostico pero no pueden haber varios diagnósticos por cada vehículo). Es muy importante decir que un vehículo puede estar registrado en la DENUNCIA, pero puede ser que aún no sea diagnosticado, por lo tanto en este caso la llave foránea que se genera de la tabla “Vehiculo” por parte de la tabla “Diagnostico” se puso como atributo OPCIONAL, es decir puede que sea NULO, si es nulo, entonces no existe la referencia las tablas “Diagnostico”, “Peritos” y “Resultado”. Esto es obvio porque puede que un VEHICULO ya haya sido diagnosticado o no. En caso de que sí, pues existe nuevamente la referencia a los datos de estas tablas mencionadas. También existe una llave candidata “placas” en la tabla “Vehiculo”, en este caso no se hizo modificación porque de acuerdo al diseño de la base de datos también es importante conocer las placas del vehículo ademas del VIN. Como resultado las siguientes tablas: NORMALIZACIÓN AGENCIA 11 Diagnostico (folio,idPeritos, idResultado,hora, fecha) Vehiculo (VIN,idPersona, Diagnostico_folio,placas, modelo, color, marca, estado)
  • 12. Finalmente a continuación se muestra la Base de Datos Normalizada hasta la forma normal Boyce-Codd Hay un cambio abismal y notorio en comparación con la Base de Datos con que se comenzó. Las reglas de normalización son muy útiles cuando empezamos a realizar el modelo relacional directamente sin una previa conceptualización. Todavía puede normalizarse más la Base de Datos hasta una 5FN, pero se considera buena hasta la 4FN (Boyce-Codd) ya que se cuenta con datos consistentes y se garantiza la integridad de los mismos. NORMALIZACIÓN AGENCIA 12