lunes, 15 de mayo de 2017

NORMALIZACIÓN

Es un conjunto de reglas que sirven para ayudar a los diseñadores a desarrollar un esquema que minimice los problemas de lógica.
Cada regla está basada en la que le antecede, es decir:

Regla 1 debe cumplirse para la regla 2
Regla 1 y 2 debe cumplirse para la regla 3 y así sucesivamente.


Figura 46. Reglas de normalización.





Grados de Normalización:Son tres niveles básicos:
  • Primera Forma Normal (1NF)
  • Segunda Forma Normal (2NF)
  • Tercera Forma Normal (3NF)

Existen 3 niveles más secundarios:
  • Forma normal de Boyce Codd.
  • Cuarta forma normal.
  • Quinta forma normal.


Primera Forma Normal.


Todos los atributos son atómicos. Un atributo es atómico si los elementos del dominio son indivisibles, mínimo.
Tabla contiene clave primaria.
Clave primaria no contiene atributos nulos.
No posee ciclos repetitivos (Univaluado).
No debe existir variación en el número de columnas.


Ejemplo:


Se empieza con esta tabla y se desea agregar más números de teléfono.

Figura 47. Ejemplo de primera forma normal.

Ingreso de nuevo número telefónico en cliente.
Figura 48. Ingresamos nuevo número de cliente James Wright..

Resultado final de cumplimiento 1NF
Figura 49. Resultado final de primera forma normal.



Segunda Forma Normal.
Cualquier clava candidata y cualquier atributo que no sea parte de la clave candidata, dicho atributo depende de toda la candidata. Cuando una tabla 1NF no tiene clave candidatas, la tabla está en 2NF.

Figura 50. Ejemplo a realizar en la segunda forma normal.
Figura 51. Resultado de ejemplo .


Tercera Forma Normal.
Tiene que cumplirse la 2NF.
Campos no dependen de la clave primaria pero si depende de otros atributos generando una nueva tabla.
Consiste en eliminar la dependencia transitiva

Figura 52. Ejemplo práctico de tercera forma normal.


Figura 53. Ejemplo de tercera forma normal.


REFERENCIAS:
Murillo (2014). “Normalización”, Madrid, España , MCGRAW-HILL INTERAMERICANA EDITORES


Join o Reunion.
Es equivalente a seleccionar combinacciones completas del producto cartesiano


Figura 41. Estructura de JOIN

Figura 42. Estructura de JOIN en SQL.




Operación JOIN en MSSQL

R1|x|R2 -> Select * from R1 INNER JOIN R2 ON R1.k = R2.k Tabla=K

JOIN:
Elimina algunos datos que no están en las dos tablas.


Figura 43. Ejemplo de JOIN y LEFT JOIN


LEFT JOIN:

Reemplaza los eliminados por valores nulos en la tabla de la izquierda.



Figura 44. Ejemplo de LEFT JOIN


RIGHT JOIN:
Reemplaza los eliminados por valores nulos en la tabla de la derecha.

Figura 45. Ejemplo de RIGHT JOIN.


Álgebra relacional:


Conjunto de operaciones encargadas de la manipulación de datos agrupados (relaciones). Las operaciones describen la manipulación de datos, representación intermedia de consulta a una base de datos. 

Al aplicarse una operación una tabla hay de resultado otra tabla.



Figura 24. Imagen de introducción al álgebra relacional.



Operadores:

  • Comparación. 
  • Conjunción. 
  • Disyunción. 
  • Negación. 

Figura 25. Operadores de álgebra relacional.




Seleccionar (σ):

Selecciona el valor de ciertas tuplas y también filas completas.

Estructura:
σcondición( R ) = {t∈R : condición (t) es cierto}

Ejemplo:

σnombre='David' (Tabla)
σid=12 (Tabla)
σnombre='David' and id=12(Tabla)

Figura 26. Ejemplo de operación de álgebra relacional "seleccionar".
Figura 27. Demostración de filas al realizar operación.



Es representado así también:
σcondición( R ) = select * from where

Proyectar ( π ):
Muestra columnas enteras.


                                   Figura 28. Demostración de columnas al realizar operación.


Figura 29. Ejemplo de operación de proyección.
Figura 30. Segundo ejemplo de operación proyección.



Ejercicio de operación de álgebra relacional compuesta.


Figura 31. Ejemplo de operación compuesta.


Eliminar Duplicados ( ઠ ) :

Elimina tuplas duplicadas en una relación.



Figura 32. Ejemplo de eliminación de filas.
Figura 33. Ejemplo de eliminación de filas y además evidencia de que 2001 no se repite.


Producto cartesiano ( x ):
Operación binaria en la cual obtenemos una nueva tabla con los atributos de las dos tablas iniciales.

Figura 34. Ejemplo de operación producto cartesiano.


Ejemplo completo de proyección, selección y producto cartesiano.
πpelicula.nombre , estudio.nombre( σpelicula.idEstudio=estudio.idEstudio(Pelicula x Estudio))


Figura 35. Ejemplo de operación de producto cartesiano.

Figura 35. Explicación de funcionamiento de producto cartesiano.

Figura 36. Estructuración de producto cartesiano en SQL.


Figura 37. Estructuración al seleccionar combinaciones en SQL.




Foránea 

Operaciones de conjuntos: Se trabajan sobre dos o más relaciones que sean compatibles. 






Unión: 

A={a,b,c} B={c,d,e,f}

Figura 38. Registros repetidos aparecen una sola vez en ejemplo de unión.

Intersección:
Figura 39. Ejemplo de intersección.

Diferencia:
Figura 40. Ejemplo de diferencia.



REFERENCIAS:
Camacho, E (2015). ”Operaciones algebraicas relacionales”. Recuperado de: https://sg.com.mx/revista/42/nosql-la-evolucion-las-bases-datos#.WCKFRtXhCM8


Sepúlveda, W. (2013). “Consultas en SQL: Llegaron para quedarse”. Recuperado de: http://basesdedatosnosql.blogspot.com/.