Base de Datos Normalizacin Diseo Lgico y Relacional
Base de Datos Normalización (Diseño Lógico y Relacional) Prof. : Lcdo. Luis Peña
¿Que es la normalización? Es el proceso de organizar datos
Normalización Incluye la creación de tablas y que establece relaciones entre aquellas tablas según reglas diseñadas para proteger los datos y hacer la base de datos que es más flexible al eliminar redundancia y dependencia incoherente.
Normalización Los datos redundantes desperdician espacio en disco y crean problemas de mantenimiento. Si es necesario cambiar datos que aparecen en más de un sitio, el cambio deberá ser exactamente igual en todos estos sitios. Por ejemplo: Un cambio de dirección de un cliente es mucho más fácil de implementar si los datos sólo se almacenan en la tabla Clientes y en ningún otro lugar de la base de datos.
Transformación de modelo conceptual a modelo lógico El proceso de normalización de bases de datos consiste en aplicar una serie de reglas a las relaciones obtenidas tras el paso del modelo entidad-relación. Cada entidad se transforma en una tabla y los atributos de dicha entidad en atributos de la tabla.
Transformación de modelo conceptual a modelo lógico Las relaciones de muchos a muchos se transforman en tablas cuya clave estará formada por la clave primaria de las entidades relacionadas. Las relaciones de uno a muchos propagan la clave principal de la entidad cuya cardinalidad es uno a la entidad de cardinalidad n.
Relaciones y llaves primarias vs cardinalidad cardinalid ad Relación entre entidades Llave foránea Uno a uno No es necesario crear una Se crea una llave foránea relación entre las entidades en una de las entidades relacionadas que corresponde a la llave primaria en la otra Uno a muchos No es necesario crear una Se crea una llave foránea relación entre las entidades del lado de la entidad “muchos” que corresponde a la llave primaria del lado “uno” Muchos a muchos Se crea una relación con En las entidades no hay llave primaria compuesta llave foránea.
Ejercicio Desarrollado Normalización: • • • Formalización 0 1 FN 2 FN 3 FN 4 FN ….
Primera Forma Normal • Eliminar grupos repetidos en tablas individuales. • Identificar cada conjunto de datos relacionados mediante una clave principal. • No utilizar varios campos en una única tabla para almacenar datos similares. Esta forma normal elimina los valores repetidos dentro de una BD.
Ejemplo primera forma normal: Digamos queremos crear una tabla con la información de usuarios, y los datos a guardar son el nombre, la empresa, la dirección de la empresa y algún URL. En principio comenzarías definiendo la estructura de una tabla como esta: Tabla: Usuario Nombre Empresa Direccion. Empr url 1 url 2 esa María Logicenter Urb. Santa Fe logicenter. co lc. con Zegarra m Roberto Softsolution Calle San Softsolution. c ss. com Usuario (Nombre, Empresa, Direccion. Empresa, Misme francisco om url 1, url 2)
Ejemplo primera forma normal: Convertiremos a la primera forma normal teniendo en cuenta las instrucciones antes mencionadas. Observando los campos de la tabla si deseamos ingresar otro “url” tendríamos que añadir otra columna y esto implica demasiadas modificaciones en el programa. Tabla: Usuario Empresa Direccion. Empr url esa Logicenter Urb. Santa Fe logicenter. com IDusuar Nombre io 1 María Zegarra 1 María Logicenter Urb. Santa Fe Zegarra Nombre, Empresa, Usuario (IDusuario, Direccion. Empresa, 2 Roberto url) Softsolution Calle San lc. con Softsolution. co
Segunda forma normal • Crear tablas separadas para aquellos grupos de datos que se aplican a varios registros. • Relacionar estas tablas mediante una clave externa.
Ejemplo segunda forma normal: Ahora teniendo en cuenta la tabla en la primera forma normal. Si observamos surgen otros problemas como por ejemplo la redundancia de los datos de ingreso con respecto a “Nombre”, “Empresa” y “Direccion. Empresa”, estos datos se duplican e inclusive puede ocasionar inconsistencias en la base de datos. Tomando en cuenta las reglas mostradas en la segunda forma normal se procederá con lo siguiente.
Ejemplo segunda forma normal: Tabla: Usuario IDusuari Nombre Empresa Direccion. Empres o a 1 María Logicenter Urb. Santa Fe Zegarra 2 Roberto Nombre, Softsolution Calle San Usuario (IDusuario, Empresa, Direccion. Empresa) Misme francisco Tabla: Url IDusuario url 1 1 logicenter. com 2 1 lc. con 3 2 Softsolution. com 4 2 ss. com Url (IDurl, IDusuario, url) Se ha divido el campo “Url”, esto ayudara que en el futuro se pueda añadir mayor cantidad datos.
Tercera forma normal • Eliminar aquellos campos que no dependan fuertemente de la clave.
Ejemplo tercera forma normal Hemos creado tablas separadas donde la clave primaria de la tabla “Usuario” está relacionada con la clave foránea de la tabla “Url”. Tomando en cuenta las reglas mostradas en la tercera forma normal se procederá con lo siguiente.
Ejemplo tercera forma normal IDusuario 1 2 Tabla: Usuario Nombre María Zegarra 1 Roberto Misme 2 IDempresa Usuario (IDusuario, Nombre, IDempresa) IDempresa 1 2 Tabla: Empresa Direccion. Empresa Logicenter Urb. Santa Fe Softsolution Calle San francisco Empresa (IDempresa, Direccion. Empresa) Empresa,
Ejemplo tercera forma normal Tabla: Url IDusuario IDurl 1 2 3 4 1 1 2 2 Url (IDurl, IDusuario, url) url logicenter. com lc. con Softsolution. com ss. com
Cuarta forma normal • En las relaciones varios-con-varios, entidades independientes no pueden ser almacenadas en la misma tabla.
Ejemplo cuarta forma normal Observando la cardinalidad entre las diferentes tablas, observemos que la cardinalidad entre la tabla “Usuario” y “Url” es una relación de varios a varios, por ende faltaría una última modificación a las tablas ya normalizadas.
Ejemplo cuarta forma normal Tabla: Usuario IDusuario Nombre IDempresa 1 María Zegarra 1 2 Roberto Misme 2 Usuario (IDusuario, Nombre, IDempresa) Tabla: Empresa IDempresa Empresa 1 Logicenter 2 Softsolution Direccion. Empre sa Urb. Santa Fe Calle San francisco Empresa (IDempresa, Empresa, Direccion. Empresa)
Ejemplo cuarta forma normal Tabla: Url IDurl 1 2 url logicenter. com lc. con Url (IDurl, url) Tabla: Url. Relacion IDurl IDusuario IDurl. Relaci on 1 1 1 2 3 2 1 4 2 2 Url. Relacion (IDurl. Relacion, IDurl; IDusuario)
Gracias por su Atención Normalización Prof. : Lcdo. Luis Peña
Uno a uno • Automóvil (Placa, N° de serie, Modelo, Color) • Tarjeta de circulación (N° de serie, Propietario, Tipo) Volver
Uno a muchos • Cliente (DNI, Nombre, Dirección) • Cuenta (N° Cta, DNI, Tipo Cta, Saldo) • Registro (N° Cta, Fecha) Volver
Muchos a muchos • Cliente (DNI, Nombre, Dirección) • Producto (Código, Precio, Descripción) • Compra (DNI, Código, Valor, Fecha) Volver
- Slides: 26