Gbd5

24
Base de datos (MySQL) Normalización (Diseño Lógico y Relacional) Ing. Linda Masias Morales

Transcript of Gbd5

Page 1: Gbd5

Base de datos (MySQL)

Normalización(Diseño Lógico y Relacional)

Ing. Linda Masias Morales

Page 2: Gbd5

¿Que es la normalización?

Es el proceso de organizar

datos

Page 3: Gbd5

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.

Page 4: Gbd5

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.

Page 5: Gbd5

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.

Page 6: Gbd5

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.

Page 7: Gbd5

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.

Page 8: Gbd5

Uno a uno

• Automóvil (Placa, N° de serie, Modelo, Color)

• Tarjeta de circulación (N° de serie, Propietario, Tipo)

Page 9: Gbd5

Uno a muchos

• Cliente (DNI, Nombre, Dirección)

• Cuenta (N° Cta, DNI, Tipo Cta, Saldo)

• Registro (N° Cta, Fecha)

Page 10: Gbd5

Muchos a muchos

• Cliente (DNI, Nombre, Dirección)• Producto (Código, Precio, Descripción)• Compra (DNI, Código, Valor, Fecha)

Page 11: Gbd5

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.

Page 12: Gbd5

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)

Page 13: Gbd5

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)

Page 14: Gbd5

Segunda forma normal

• Crear tablas separadas para aquellos grupos de datos que se aplican a varios registros.

• Relacionar estas tablas mediante una clave externa.

Page 15: Gbd5

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.

Page 16: Gbd5

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.

Page 17: Gbd5

Terceraformanormal

• Eliminar aquellos campos que no dependan fuertemente de la clave.

Page 18: Gbd5

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.

Page 19: Gbd5

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)

Page 20: Gbd5

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

Page 21: Gbd5

Cuarta forma normal

• En las relaciones varios-con-varios, entidades independientes no pueden ser almacenadas en la misma tabla.

Page 22: Gbd5

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.

Page 23: Gbd5

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)

Page 24: Gbd5

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)