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/.





domingo, 23 de abril de 2017


BASE DE DATOS RELACIONALES.
Conformada por tablas, estas tablas tienen columnas y tuplas. Cada tabla es conocida como relación por eso lleva ese nombre. Es la más usada en la actualidad. 

  • Tuplas(filas): Elementos del conjunto.
  • Atributos: Columnas.
  • Dominio: Tipo de dato.
  • Grado de Relación: Cantidad de columnas.

Figura 20. Elementos del modelo relacional.
Figura 21. Elementos fundamentales del modelo relacional.


Dominios

Restricciones del dominio:

t[A] = <A> o dom(A)
t[matricula] = 710914, 711892 entero, not null



Claves

Clave primaria:
Permite identificar de manera única a una tupla, no es un atributo de entidad.

Clave candidata: Un conjunto de atributos.

Clave foránea: Clave extranjera.

Figura 22. Ejemplo de claves.


PK: Clave primaria.
FK: Clave foránea.
Pata de cuervo: Relación 1 a muchos.


Mantener integridad referencial. 
Insertar: Insertar clave foránea en la otra tabla, rechazar inserción.
Eliminar: Elimina tuplas en cascada.
Actualizar: Actualiza valores en tuplas.


Convertir Entidad-Relación.
Se comienza con un modelo E-R por su fácil uso y diseño, solo se usa dos conceptos, entidad y relación.


Traducir E-R a Relacional:
  • Agregación de claves donde es necesario. 
  • Cantidad entidad se transforma en tabla con los mismos atributos. Existe atributos multivaluados y derivados. 
  • Cada relación se transforma en una tabla donde los atributos son claves de cada entidad participante. 

Cardinalidad:

Relacion 1 a 1: No se genera tabla
Relacion 1 a N: La clave primaria del 1 pasa a formar parte como clave foránea del N.

Figura 23. Ejemplo de transformación de E-R a Relacional.


    Combinar Relaciones.
  • Caso típico: 1-N
  • Relaciones 1-1 deberían descartarse
  • En el caso de 1-N, la clave primaria del 1 pasa al N como foránea.


Modelos de Datos
Es una colección de herramientas conceptuales que describen datos, relaciones, semántica y las restricciones de consistencia.

Modelo Entidad-Relación.

  • Basado en una percepción del mundo real.
  • Es una colección de objetos básicos llamados entidades y relaciones.
  • Cada entidad posee atributos.
  • Entre los atributos solo existe uno que es la clave primaria.
  • Utilizado para el diseño de bases de datos.
Resultado de imagen para modelo entidad relacion
Figura 14. Ejemplo de modelo.

Modelo relacional.

  • Son tablas que representan datos y relaciones entre sí.
  • Una tabla se compone de columnas con un nombre único. 
  • Es la herramienta más usada, la mayoría de bases de datos usan el Modelo de Entidad-Relación y luego se lo traduce al modelo relacional.
Resultado de imagen para modelo relacional
Figura 15.  Ejemplo de modelo.


Modelo orientado a objetos.
  • Es una extensión al modelo de Entidad-Relación con los conceptos de POO como encapsulan, métodos e identidades de objeto.
Resultado de imagen para modelo orientado a objetos
Figura 16.  Ejemplo de modelo.
Modelos de datos semiestructurados.
  • Entran las bases de datos No SQL.
  • Especifican datos donde los elementos de datos individuales del mismo tipo pueden tener diferentes conjuntos de atributos.
Resultado de imagen para modelo de datos semiestructurado
Figura 17.  Ejemplo de modelo.
El modelo de datos de red y el modelo jerárquico. 
  • Fue basado en estos dos modelos, estos modelos estuvieron ligados (también a hardware) con la implementación subyacente y complicaban la tarea del modelado de datos. Ya no son tan usadas excepto en lugares con bases de datos antiguas.
Resultado de imagen para modelo de datos de red y modelo jerarquico
Figura 18.  Ejemplo de modelo.

Análisis de requerimientos

Requisitos funcionales.

  • Se trata de lo que debe de hacer el sistema.

Requisitos de datos.
Sirve para determinar lo que va a almacenar al sistema con tipos de datos, esquemas o diseños lógicos.



Diagramas Entidad-Relación.

Se describe el esquema de una base de datos. Las entidades son rectángulos y representan objetos reales. Los óvalos representan atributos, propiedades de objetos. Los rombos representan enlaces y las lineas, o conectores, enlazan atributos con entidades, o entidades con relaciones.

Elementos:

Entidad: Es aquel objeto, real o abstracto, acerca del cual se desea almacenar información en la base de datos.  

Relación: Es una asociación o correspondencia existente entre una o varias entidades. La relación puede ser regular, si asocia tipos de entidad regulares, o débil, si asocia un tipo de entidad débil con un tipo de entidad regular.

Cardinalidad: Representa la participación en la relación de cada una de las entidades afectadas, es decir, el número máximo y mínimo de ocurrencias de un tipo de entidad.

Dominio: Es un conjunto nominado de valores homogéneos. El dominio tiene existencia propia con independencia de cualquier entidad, relación o atributo.

Atributo: Es una propiedad o característica de un tipo de entidad. Se trata de la unidad básica de información que sirve para identificar o describir la entidad. Un atributo se define sobre un dominio. Cada tipo de entidad ha de tener un conjunto mínimo de atributos.

Exclusividad: En la representación de las relaciones exclusivas se incluye un arco sobre las líneas que conectan el tipo de entidad a los dos o más tipos de relación.

Jerarquía: La representación de las jerarquías se realiza mediante un triángulo invertido, con la base paralela al rectángulo que representa el supertipo y conectando a éste y a los subtipos. Si la división en subtipos viene determinada en función de los valores de un atributo discriminante, éste se representará asociado al triángulo que representa la relación.

Resultado de imagen para entidad bdd
Figura 19. Representación gráfica de elementos.


Independencia de datos

Independencia física

  • La base de datos siempre debe estar funcionando así se cambie de disco duro, sistema operativo, etc. 
  • El esquema conceptual no se afecta por cambios al esquema físico de datos. El esquema físico hace referencia al hardware. 

Independencia lógica

  • Algunos elementos del esquema externo no son afectados por cambios al esquema conceptual. 
  • Agregar columnas adicionales no afecta a las vistas. 

Transacciones
Ejecución de varias sentencias como si fueran una sola, resultando en un cambio consistente de los datos. Proporcionan flexibilidad y control cuando los datos cambian y asegura la consistencia de los datos.
  • Begin transaction: Comienza y termina una transacción. 
  • Commit transaction: Termina una transacción. 
  • Registro y recuperación en caso de fallas. 
  • Control de concurrencia. 

A.C.I.D

  • Atomicidad: Se refiere a no es divisible, no se ejecuta por partes. 
  • Consistencia: La base de datos se mantiene consistente siempre. 
  • Aislamiento (Isolation): Las transacciones no pueden estar mezcladas entre sí. 
  • Durabilidad: Transacción durable. 

Administrador de base de datos

Planificar la base de datos, desarrollar estándares políticas y procedimientos, diseño lógico de la base de datos. Y para la administración de una base de datos se debe tomar en cuenta el diseño e implementación de la base de datos, acceso y control para el control de usuarios y contraseñas, mantenimiento para mejorar el rendimiento, respaldo.



Usuarios finales
  • Paramétricos: Personas que usualmente no conocen de informática. 
  • Expertos: Personas que generan informes de errores. 

Claves para el futuro

Personal:
  • Funciones especializadas. 
  • formación continua. 
  • Mayor conocimiento de SO. 
  • Automatización de las funciones de administración. 
  • Internet. 
  • Métricas de productividad y calidad del servicio. 

Lenguajes

Según área

  • Vistas, definición de datos, manipulación de datos, etc.

Según nivel

  • Alto nivel, sin procedimientos. Bajo nivel, con procedimientos.

Interfaces de usuario

  • Intérprete de comandos. 
  • Formularios. 
  • Interfaces gráficas. 
  • Interfaces en lenguaje natural.