Base de datos (MySQL)Normalización (Diseño Lógico y Relacional)Ing. Linda Masias Morales
Es el proceso de organizar datos¿Que es la normalización?
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
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 NormalEliminar 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 que 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:Usuario (Nombre, Empresa, DireccionEmpresa, url1, url2)
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. 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 primera forma normal. Si observamos surgen otros problemas como por ejemplo la redundancia de los datos de ingreso con respecto a “Nombre”, “Empresa” y “DireccionEmpresa”, 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: Usuario (IDusuario, Nombre, Empresa, DireccionEmpresa)Url (IDurl, IDusuario, url)Se ha divido el campo “Url”, esto ayudara que en el futuro se pueda añadir mayor cantidad datos.
TerceraformanormalEliminar 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 normalUsuario (IDusuario, Nombre, IDempresa)Empresa (IDempresa, Empresa, DireccionEmpresa)
Ejemplo tercera forma normalUrl (IDurl, IDusuario, url)
Cuarta forma normalEn 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 normalUsuario (IDusuario, Nombre, IDempresa)Empresa (IDempresa, Empresa, DireccionEmpresa)
Ejemplo cuarta forma normalUrl (IDurl, url)UrlRelacion (IDurlRelacion, IDurl; IDusuario)

Gbd5

  • 1.
    Base de datos(MySQL)Normalización (Diseño Lógico y Relacional)Ing. Linda Masias Morales
  • 2.
    Es el procesode organizar datos¿Que es la normalización?
  • 3.
    Normalización Incluye la creaciónde 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.
  • 4.
    Normalización Los datos redundantesdesperdician 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.
  • 5.
    Transformación de modeloconceptual 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.
  • 6.
    Transformación de modeloconceptual 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.
  • 7.
    Relaciones y llavesprimarias vs cardinalidad
  • 8.
    Uno a unoAutomóvil (Placa, N° de serie, Modelo, Color)Tarjeta de circulación (N° de serie, Propietario, Tipo)
  • 9.
    Uno a muchosCliente (DNI, Nombre, Dirección)Cuenta (N° Cta, DNI, Tipo Cta, Saldo)Registro (N° Cta, Fecha)
  • 10.
    Muchos a muchosCliente (DNI, Nombre, Dirección)Producto (Código, Precio, Descripción)Compra (DNI, Código, Valor, Fecha)
  • 11.
    Primera Forma NormalEliminargrupos 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.
  • 12.
    Ejemplo primera formanormal: Digamos que 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:Usuario (Nombre, Empresa, DireccionEmpresa, url1, url2)
  • 13.
    Ejemplo primera formanormal: 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. Usuario (IDusuario, Nombre, Empresa, DireccionEmpresa, url)
  • 14.
    Segunda forma normalCrear tablas separadas para aquellos grupos de datos que se aplican a varios registros.Relacionar estas tablas mediante una clave externa.
  • 15.
    Ejemplo segunda formanormal: 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 “DireccionEmpresa”, 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.
  • 16.
    Ejemplo segunda formanormal: Usuario (IDusuario, Nombre, Empresa, DireccionEmpresa)Url (IDurl, IDusuario, url)Se ha divido el campo “Url”, esto ayudara que en el futuro se pueda añadir mayor cantidad datos.
  • 17.
    TerceraformanormalEliminar aquellos camposque no dependan fuertemente de la clave.
  • 18.
    Ejemplo tercera formanormal 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.
  • 19.
    Ejemplo tercera formanormalUsuario (IDusuario, Nombre, IDempresa)Empresa (IDempresa, Empresa, DireccionEmpresa)
  • 20.
    Ejemplo tercera formanormalUrl (IDurl, IDusuario, url)
  • 21.
    Cuarta forma normalEnlas relaciones varios-con-varios, entidades independientes no pueden ser almacenadas en la misma tabla.
  • 22.
    Ejemplo cuarta formanormal 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.
  • 23.
    Ejemplo cuarta formanormalUsuario (IDusuario, Nombre, IDempresa)Empresa (IDempresa, Empresa, DireccionEmpresa)
  • 24.
    Ejemplo cuarta formanormalUrl (IDurl, url)UrlRelacion (IDurlRelacion, IDurl; IDusuario)