Upload
linda-masias
View
997
Download
0
Embed Size (px)
Citation preview
Base de datos (MySQL)
Normalización(Diseño Lógico y Relacional)
Ing. Linda Masias Morales
¿Que es la normalización?
Es el proceso de organizar
datos
Normalización
Incluye la creación de tablas y que establecerelaciones entre aquellas tablas según reglasdiseñadas para proteger los datos y hacer labase de datos que es más flexible al eliminarredundancia y dependencia incoherente.
Normalización
Los datos redundantes desperdician espacio endisco y crean problemas de mantenimiento.
Si es necesario cambiar datos que aparecen enmás de un sitio, el cambio deberá serexactamente igual en todos estos sitios.
Por ejemplo: Un cambio de dirección de uncliente es mucho más fácil de implementar si losdatos sólo se almacenan en la tabla Clientes y enningún otro lugar de la base de datos.
Transformación de modelo conceptual a modelo lógico
El proceso de normalización de bases dedatos consiste en aplicar una serie de reglas alas relaciones obtenidas tras el pasodel 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 setransforman en tablas cuya clave estaráformada por la clave primaria de las entidadesrelacionadas.
Las relaciones de uno a muchos propagan laclave principal de la entidad cuya cardinalidades uno a la entidad de cardinalidad n.
Relaciones y llaves primarias vs cardinalidad
cardinalidad Relación entre entidades Llave foránea
Uno a uno No es necesario crear una
relación entre las entidades
Se crea una llave foránea en una
de las entidades relacionadas que
corresponde a la llave primaria en
la otra
Uno a
muchos
No es necesario crear una
relación entre las entidades
Se crea una llave foránea del lado
de la entidad “muchos” que
corresponde a la llave primaria del
lado “uno”
Muchos a
muchos
Se crea una relación con llave
primaria compuesta formada por
las llaves primarias de las
entidades que une la relación.
En las entidades no hay llave
foránea.
Uno a uno
• Automóvil (Placa, N° de serie, Modelo, Color)
• Tarjeta de circulación (N° de serie, Propietario, Tipo)
Uno a muchos
• Cliente (DNI, Nombre, Dirección)
• Cuenta (N° Cta, DNI, Tipo Cta, Saldo)
• Registro (N° Cta, Fecha)
Muchos a muchos
• Cliente (DNI, Nombre, Dirección)• Producto (Código, Precio, Descripción)• Compra (DNI, Código, Valor, Fecha)
Primera Forma Normal
• Eliminar grupos repetidos en tablasindividuales.
• Identificar cada conjunto de datosrelacionados mediante una clave principal.
• No utilizar varios campos en una única tablapara almacenar datos similares.
Esta forma normal elimina los valores repetidosdentro de una BD.
Ejemplo primera forma normal:
Digamos que queremos crear una tabla con lainformación de usuarios, y los datos a guardarson el nombre, la empresa, la dirección de laempresa y algún URL. En principio comenzaríasdefiniendo la estructura de una tabla como esta:
Tabla: Usuario
Nombre Empresa DireccionEmpresa url1 url2
María Zegarra Logicenter Urb. Santa Fe logicenter.com lc.con
Roberto Misme Softsolution Calle San francisco Softsolution.com ss.com
Usuario (Nombre, Empresa, DireccionEmpresa, url1, url2)
Ejemplo primera forma normal:
Convertiremos a la primera forma normalteniendo en cuenta las instrucciones antesmencionadas. Observando los campos de la tablasi deseamos ingresar otro “url” tendríamos queañadir otra columna y esto implica demasiadasmodificaciones en el programa.
Tabla: Usuario
IDusuario Nombre Empresa DireccionEmpresa url
1 María Zegarra Logicenter Urb. Santa Fe logicenter.com
1 María Zegarra Logicenter Urb. Santa Fe lc.con
2 Roberto Misme Softsolution Calle San francisco Softsolution.com
2 Roberto Misme Softsolution Calle San francisco ss.com
Usuario (IDusuario, Nombre, Empresa, DireccionEmpresa, url)
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 primeraforma normal. Si observamos surgen otrosproblemas como por ejemplo la redundancia delos datos de ingreso con respecto a “Nombre”,“Empresa” y “DireccionEmpresa”, estos datos seduplican e inclusive puede ocasionarinconsistencias en la base de datos.
Tomando en cuenta las reglas mostradas en lasegunda forma normal se procederá con losiguiente.
Ejemplo segunda forma normal: Tabla: Usuario
IDusuario Nombre Empresa DireccionEmpresa
1 María Zegarra Logicenter Urb. Santa Fe
2 Roberto Misme Softsolution Calle San francisco
Usuario (IDusuario, Nombre, Empresa, DireccionEmpresa)
Tabla: Url
IDurl 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ñadirmayor cantidad datos.
Terceraformanormal
• Eliminar aquellos campos que no dependan fuertemente de la clave.
Ejemplo tercera forma normal
Hemos creado tablas separadas donde la claveprimaria de la tabla “Usuario” estárelacionada con la clave foránea de la tabla“Url”.
Tomando en cuenta las reglas mostradas en latercera forma normal se procederá con losiguiente.
Ejemplo tercera forma normalTabla: Usuario
IDusuario Nombre IDempresa
1 María Zegarra 1
2 Roberto Misme 2
Usuario (IDusuario, Nombre, IDempresa)
Tabla: Empresa
IDempresa Empresa DireccionEmpresa
1 Logicenter Urb. Santa Fe
2 Softsolution Calle San francisco
Empresa (IDempresa, Empresa, DireccionEmpresa)
Ejemplo tercera forma normal
Url (IDurl, IDusuario, url)
Tabla: Url
IDurl IDusuario url
1 1 logicenter.com
2 1 lc.con
3 2 Softsolution.com
4 2 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 lasdiferentes tablas, observemos que lacardinalidad entre la tabla “Usuario” y “Url” esuna relación de varios a varios, por endefaltaría una última modificación a las tablas yanormalizadas.
Ejemplo cuarta forma normalTabla: Usuario
IDusuario Nombre IDempresa
1 María Zegarra 1
2 Roberto Misme 2
Tabla: Empresa
IDempresa Empresa DireccionEmpresa
1 Logicenter Urb. Santa Fe
2 Softsolution Calle San francisco
Usuario (IDusuario, Nombre, IDempresa)
Empresa (IDempresa, Empresa, DireccionEmpresa)
Ejemplo cuarta forma normal
Tabla: Url
IDurl url
1 logicenter.com
2 lc.con
Tabla: UrlRelacion
IDurlRelacion IDurl IDusuario
1 1 1
2 1 2
3 2 1
4 2 2
Url (IDurl, url)
UrlRelacion (IDurlRelacion, IDurl; IDusuario)