Introducción
Cuando se realiza el modelado de una base de datos, suelen
cometerse algunos errores como caer en la redundancia de información. Estos
errores perjudican a futuro la base de datos, pues si ésta no se planifica
correctamente, ocurrirán problemas cuando se intente eliminar una tupla, pues
se puede eliminar información adicional. Es por eso que una vez que se tiene el
modelo relacional, se debe de seguir el proceso de normalización.
Primera forma normal (1FN)
Esta forma consiste en verificar la atomicidad de los
distintos atributos de las relaciones. (Marabini) Un atributo es
atómico cuando es indivisible. Los atributos que se deben de verificar son
aquellos que sean compuestos o multivaluados.
Primeramente, y de manera
importante, se debe de tener contemplado el propósito de cada atributo, es
decir, que usos futuros se le darán. Esto determinara si el atributo debe ser
dividido en otros o dejarese intacto. El ejemplo más común es el atributo
Nombre, el cual puede ser tomado como un solo atributo indivisible o separarse
en sus componentes Nombres, ApellidoPaterno y ApellidoPaterno. Hacer una u otra
opción depende de la finalidad del atributo.
Segunda forma normal (2FN)
Para que en una relación se cumpla la 2FN, tiene que
cumplirse de manera obligatoria la 1FN. Esta forma consiste en asegurar que en
la relación, todos los atributos no clave dependan de la clave maestra, y no de
ningún subconjunto de ella (Mora) .
En caso
de que algún atributo no cumpla dicha dependencia, se procede a separarlo en
una nueva tabla (Hispano, 2003) , dentro de la cual
si pueda mantener una dependencia con la clave maestra de dicha tabla.
Tercera forma normal (3FN)
Aun cuando un atributo dependa de la clave maestra, puede
depender simultáneamente de otro atributo. Estas dependencias se llaman
dependencias transitivas. Para que una relación se encuentre en 3FN, además de
tener que encontrarse antes en 2FN, debe de eliminar las dependencias
transitivas. (Mora)
Nuevamente
se procede a separar los atributos que se encuentren en dependencia transitiva,
creando nuevas tablas en las que los atributos mantengan una dependencia
exclusivamente con la clave maestra de la nueva tabla.
Ejercicios
Ejercicio 1
Cliente(ID_cliente, Nombre)
Coche(ID_coche, Accidentes registrados, ID_cliente)
Ejercicio2
Usuario(DNI, Nombres, Apellidos)
Cliente(DNI, Nombres, Apellidos, Direccion, Telefono, Matricula)
Mecanico(DNI, Nombres, Apellidos, Fecha de contratacion, Salario,
Matricula, FechaDeReparacion, Horas)
Coche(Matricula, Modelo, Color, Marca)
Coche_Nuevo(Matricula, Modelo, Color, Marca # de unidades
existentes)
Coche_Usado(Matricula, Modelo, Color, Marca # de km recorridos)
Ejercicio3
Jugador(ID_Jugador, Estadisticas)
Partido(ID_Partido, Resultado, ID_Jugador)
Ejercicio4
Cliente(No. de cliente, Limite, Descuento, Saldo, Direccion de
envio)
Pedido(ID_Pedido, Cabecera, Cuerpo, No.de articulo, ID_CLiente)
Artículo(No. de articulo, Descripcion, # de existencia,Fabricas
que lo distribuyen)
Fábrica(No. de fabrica, # de productos que provee, Telefono, No. De
articulo)
Ejercicio5
Usuario(RUT, Nombre, Direccion)
Cliente(RUT, Nombre, Direccion , Telefono, ID_Compra)
Proveedor(RUT, Nombre, Direccion , Sitio web, Telefono, ID_Venta)
Adquiere(ID_Compra, ID_Producto, Monto total, Precio, Cantidad)
Venta(ID_Venta, ID_Producto, Fecha, Nombre cliente, Descuento)
Producto(ID_Producto, Nombre proveedor, Precio actual, Nombre,
Stock, ID_Categoria)
Categoria(ID_Categoria, Nombre, Descripcion)
Ejercicio6
Aeropuerto(Codigo, Ciudad, Pais, Nombre, Numero de vuelo)
Programa de vuelo(Numero de vuelo, Linea aerea, Linea, Numero de
orden)
Escala tecnica(Numero de orden, ID_Vuelo)
Vuelo(ID_Vuelo, Fecha, plazas vacias, modelo de avión, ID_Avion)
Avion(ID_Avion, Modelo, capacidad, Codigo)
Ejercicio7
Sede(Presupuesto, Cantidad)
Complejo(Localizacion, Jefe de organizacion, Area)
Monodeportivos(Localizacion, Jefe de organizacion, Area)
Multideportivos(Localizacion, Jefe de organizacion, Area, Areass)
Evento(ID_Evento, Fecha, Numero de participantes, Duracion,
Localizacion, ID_Comisario)
Comisario(ID_Comisario , Rol del comisario, Cantidad)
Ejercicio8
Partido(ID_Partido, Premio de consolacion, Ronda, Premio,
Arbitro, Ganador, ID_torneo, Nombre_jugador)
Torneo(ID_torneo , Año, Pais, Lugar, Modalidad)
Jugador(Nombre, Nacionalidad, Premios, FechaContratacion,
Posicion, Premio)
Entrenador(NombreEntrenador, Nombre_Jugador)
Ejercicio9
Pelicula(ID_Pelicula, Idioma, Subtitulos, Pais de origen, Año,
URL, Resumen, Fecha de estreno, Calificacion, Duracion, Titulo original,Titulo
de distribucion, Genero, Nombre_participante, ID_funcion)
Cine(Nombre_Cine, Telefono, Direccion, Numero_Sala)
Opinion(ID_Opinion, Calificacion, Comentario, ID_persona)
Participante(Nombre_Participante, Nacionalidad, ID_pelicula)
Actor(Nombre_Participante, Nacionalidad, # de películas,
ID_Personaje)
Director(Nombre_Participante, Nacionalidad, # de peliculas)
Personaje(ID_Personaje)
Persona(ID_Persona, Edad, Nombre, Fecha)
Sala(Numero_Sala, Nombre, Butacas)
Funciones(ID_Funcion, Dia, hora, ID_sala)
Promocion(ID_Promocion, Descripcion, Descuento, ID_Funcion)
Ejercicio10
Mueble(Nombre, Precio, Cantidad)
Pieza(ID_Pieza, ID_Mueble, Cantidad)
Estante(ID_Estante, Altura, pasillo, ID_Pieza)
Conclusión
La normalización de las relaciones que se dan en una base de
datos permite optimizar éstas, eliminando redundancias y otros problemas que
pueden ser perjudiciales en determinado momento. Una vez que el modelado de la
base de datos se encuentra normalizado, dicha base puede comenzar a ser creada.
Bibliografía
Hispano, M. (29 de 05 de 2003). Recuperado el 23 de 03
de 2014, de
http://www.eet2mdp.edu.ar/alumnos/MATERIAL/MATERIAL/info/infonorma.pdf
Marabini, R. (s.f.).
Recuperado el 23 de 03 de 2014, de http://biocomp.cnb.csic.es/~roberto/II/Docencia/SI1/Clase/Reserved/Formas_Normales.pdf
Mora, E. (s.f.). Universidad
de Cantabria. Recuperado el 23 de 03 de 2014, de
http://personales.unican.es/zorrillm/PDFs/Docencia/BasesDatos/Formas%20Normales.pdf
No hay comentarios:
Publicar un comentario