06 Normalización fácil

1,493 views
1,308 views

Published on

Una introducción práctica y simplificada a la normalización de relaciones de bases de datos

Published in: Education
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
1,493
On SlideShare
0
From Embeds
0
Number of Embeds
183
Actions
Shares
0
Downloads
34
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

06 Normalización fácil

  1. 1. Normalización de bases de datos <ul><li>Diseñar una buena BD, en general es un proceso creativo. En general no es posible dar reglas sistemáticas para todas las situaciones.
  2. 2. Las reglas de normalización son una excepción a lo anterior
  3. 3. La normalización es un proceso sistemático que podemos aplicar a las tablas del modelo relacional
  4. 4. Permite garantizar que nuestro modelo al menos, evita algunos problemas graves de diseño </li></ul>
  5. 5. Formas normales (i) <ul><li>Consisten en unas reglas que debe cumplir el diseño
  6. 6. Estas reglas están organizadas por niveles. Un nivel más alto exige todos los más bajos anteriores. </li></ul>Tablas en 1FN Tablas en 2FN Tablas en 3FN Tablas en FN de Boyce-Codd (FNBC) Tablas en 4FN Tablas en 5FN
  7. 7. Formas normales (ii) <ul><li>Para que una BD sea aceptablemente simple y no presente problemas graves de: </li><ul><ul><li>Redundancia
  8. 8. Uniformidad de datos
  9. 9. Manipulación de la informaciónos
  10. 10. Eficacia de las transacciones </li></ul><li>E xigiremos que nuestras BDs cumplan al menos la 3FN </li></ul><li>Las formas normales superiores resuelven problemas raros y de momento no las exigiremos </li></ul>
  11. 11. 1FN – 1ª Forma Normal <ul><li>Una tabla está en 1FN sólo si todos sus atributos son atómicos . Es decir, tienen valores únicos, no hay atributos que sean listas de valores.
  12. 12. La tabla siguiente no está en 1FN: </li></ul>DNI Nombre Telefonos Dirección 43065877X Torcuato Luca de Tena 625726388 971282015 665330890 C/ Urquinaona, 12 43119241T Andrés Riutord Bosch 971112211 616433571 C/ Costa de sa Pols, 12
  13. 13. Concepto necesario: Dependencia funcional <ul><li>Si X e Y son dos grupos de los atributos de una tabla. Decimos que X->Y ( ”Y” depende funcionalmente de ”X” o también ”X” determina a ”Y”) si todas las filas de datos que tuvieran valores idénticos para los atributos X tienen forzosamente valores idénticos para los atributos Y
  14. 14. Ejemplo : en la mayoría de situaciones del mundo real: DNICliente detetermina a NombreCliente, por tanto podemos escribir: {DNICliente}->{NombreCliente}
  15. 15. Entender cada caso de dependencia funcional exige entender el significado de los atributos </li></ul>
  16. 16. 2FN – 2ª Forma Normal <ul><li>Una tabla está en 2FN si está en 1FN y cada atributo que no es una clave depende de toda la clave primaria (no sólo de una parte)
  17. 17. Ejemplo : Esta tabla DetallesFactura no está en 2FN, ya que {CodProducto}->{DescripcionProducto} y la clave primaria se compone de 2 atributos </li></ul>NumFactura CodProducto Cantidad DescripcionProducto 21 4 2 Lejía 21 5 1 Amoniaco 23 4 10 Lejía
  18. 18. Concepto necesario: Dependencia funcional transitiva <ul><li>Decimos que X determina transitivamente a Z si X -> Y e Y -> Z (¡Ojo! Además no pasa que Y -> X )
  19. 19. Ejemplo : {CodVenta} determina transitivamente a {NombreCliente} porque: </li><ul><li>Si sabemos que sólo hay un cliente por venta entonces {CodVenta} -> {CodCliente} (¡Ojo! vemos que al revés no es cierto, {CodCliente} no determina {CodVenta} )
  20. 20. Está claro que {CodCliente} -> {NombreCliente} </li></ul></ul>CodVenta FechaVenta CodCliente NombreCliente CodVendedor 32 05/07/2004 23455 John Smith 22 33 05/07/2004 13229 Quincy Scrubb 12 34 05/07/2004 23455 John Smith 91
  21. 21. 3FN – 3ª Forma Normal <ul><li>Una tabla está en 3FN si está en 2FN y ninguno de los atributos fuera de la clave primaria depende transitivamente de la clave primaria
  22. 22. Cuando una tabla está en 2FN y no está en 3FN es porque hay algún atributo que en lugar de depender directamente de la clave primaria, depende de ella através de algún otro atributo intermedio </li></ul>
  23. 23. Resumen <ul><li>1FN = Todos los atributos son atómicos
  24. 24. 2FN = 1FN + Sin dependencias parciales de la Primary Key
  25. 25. 3FN = 2 FN + Sin dependencias transitivas </li></ul>

×