jueves, 6 de julio de 2017


Implementación de una base de datos de Microsoft SQL Server.


Creación de bases de datos:

  • Consideración para la creación de una base de datos.
  1. Propósito de almacenamiento.
  2. Rendimiento de transacciones.
  3. Crecimiento potencial del almacenamiento físico de datos.
  4. Ubicación de los archivos.
  • Registro de transacciones.
  1. La modificación de datos la envía la aplicación.
  2. Páginas de datos se encuentras o se leen en la caché de búfer y se modifican.
  3. La modificación se graba en el registro de transacciones en disco.
  4. Punto de comprobación confirma transacciones.
  • Opciones de base de datos.
  1. Automática: Controla los comportamientos automáticos como estadísticas, cierre de base de datos y reducción.
  2. Disponibilidad: Controla la conexión de la base de datos.
  3. Cursor: Controla el comportamiento y ámbito del cursos.
  4. Recuperación: Control de modelo de recuperación de base de datos.
  5. SQL: Control de opciones de compatibilidad.
  • Orígenes de información de las bases de datos.
  1. Sql Server Management Studio: Herramienta visual que muestra metadatos.
  2. Vistas de catálogo: Proporcionan metadatos que devuelven filas de información.
  3. Funciones de metadatos: Devuelven valor único de metadatos de una función.
  4. Procedimientos almacenados del sistema: Recuperación de metadatos por medio de procesos almacenados.


Creación de tipos de datos y tablas.

Tipos de datos suministrados por el sistema:



Tipos de datos alias
  1. Se basan en los tipos de suministrados por el sistema.
  2. Usan elementos de datos comunes con formato.
  3. Se crean con la instrucción CREATE TYPE.


Tipos de datos alias
  1. Intercalación de columnas.
  2. Capacidad de aceptar valores NULL de columnas.
  3. Tipos de columna especiales: Calculadas, identidad, timestamp, uniqueidentifier.



Implementación de integridad de datos.

Tipos de integridad de datos:
  1. Integridad de dominio (columna).
  2. Integridad de entidad (filas).
  3. Integridad referencial (Entre tablas o columnas de la misma tabla).

Opciones para exigir la integridad de datos:
  1. Tipos de datos: Definir tipo de datos que almacenan una columna.
  2. Reglas: Definir valores aceptables que se insertan en la columna.
  3. Valores Predeterminados: Definir el valor de una columna si no se especifica ningún valor.
  4. Restricciones: Definir el motor de la base de datos exige integridad de datos.
  5. Desencadenadores: Definir código que se ejecuta automáticamente cuando se modifica una tabla.
  6. Esquemas XML: Definir contenido aceptable de documentos XML

Restricciones:


Consideraciones sobre la comprobación de restricción:
  1. Asignar nombres significativos a las restricciones.
  2. Crear y modificar restricciones sin necesidad de volver a crear la tabla.
  3. Comprobación de errores en las aplicaciones y transacciones.
  4. Deshabilitar las restricciones CHECK y FOREIGN KEY.

Inserción de datos:



Eliminación de datos:


Actualización de datos:



Desencadenador INSTEAD OF:



Implementación de Vistas.

Tipos de vistas:
  1. Vistas Estándar: Combinan datos de una o más tablas.
  2. Vistas indizadas: Almacenan la vista mediante la creación de un índice agrupado.
  3. Vistas con particiones: Combinan datos con particiones horizontales de una o más tablas base.

Sintaxis para crear vistas:



Sintaxis para modificar y quitar vistas:



Implementación de Procedimientos almacenados y funciones.

Definición de Procedimiento almacenado: 
Una colección con nombre de instrucciones Transact-SQL o código de Microsoft.NET Framework.
Devuelve un valor de estado para indicar el éxito o el error.
Acepta parámetros de entrada.
Devuelve valores de parámetros de salida.


Sintaxis para crear procedimientos almacenados:

 

Sintaxis para modificar y quitar procedimientos almacenados:





Ejemplo de procedimiento almacenado:


domingo, 4 de junio de 2017



Creación de objetos tablas:


  • Se utiliza el comando CREATE TABLE.
  • Se especifican atributos con sus relaciones y tipos.
  • Se especifica clave primaria.
  • Se especifica restricciones de integridad (fecha inicio con fecha fin).
  • Se especifica la integridad referencial.


Figura 54. Ejemplo de creación de tabla.




Restricciones de la columna:


  • UNIQUE : valores únicos que no se pueden repetir
  • NOT NULL : no valores nulos o vacíos.
  • DEFAULT <valor> : valor que se ponga por defecto
  • CHECK (condición) :
  • PRIMARY KEY : Clave primaria, valor único.
  • REFERENCES nombre_tabla (nombre_atributo) accion_referencial



Ejemplo:

Cantidad Integer Not null Check( Cantidad>0 and Cantidad <500)

Figura 55. Ejemplo de columnas.


Restricciones de tabla:


  • UNIQUE (nombre_atributo,....)
  • PRIMARY KEY (nombre_atributo, …..)
  • FOREIGN KEY (nombre_atributo, …..) REFERENCES nombre_tabla(nombre_atributo) accion_referencial
  • CHECK (condición)


Acciones referenciales


  • ON UPDATE acción
  • ON DELETE acción
  • RESTRICT


Borrado de tablas

Elimina tablas. Si se utiliza CASCADE CONSTRAINT se elimina la tabla con todas sus restricciones.

Figura 56. Ejemplo de borrado de tablas.


Modificar una tabla


  • Acciones de modificación:
    Añadir atributos ADD nuevo_atributo tipo restricciones.
    Las restricciones pueden ser solo NOT NULL, CHECK y DEFAULT.
  • Borrar atributos:
    DROP (nombre_atributo, …..)
    DROP COLUMN nombre atributo [CASCADE CONSTRAINT].
  • Modificar atributos:
    MODIFY nombre_atributo nuevo_tipo restricciones


Inserción de datos


  • Introduce información en la tabla y atributos indicados.
  • El orden y el tipo de los atributos debe coincidir con el orden y tipo de valores.
  • Si el valor no se indica se puede tomar un valor de NULL.
    Ejemplo: INSERT INTO TABLA (columna1, columna2, …...)


Figura 57. Ejemplo de creación de inserción de datos.



Modificación de datos


  • Actualiza en la tabla indicada los valores del atributo siempre y cuando se cumpla la condición especificada.
  • Los valores se pueden obtener mediante una subconsulta o mediante fórmulas matemáticas.
  • Siempre debe existir condición para no actualizar todas las filas de la tabla con un mismo valor.


Figura 58. Ejemplo de creación de modificación.


Borrado de datos


  • Borra de la tabla las tuplas que cumplen cierta condición.
  • Si no hay condición se pueden borrar todos los datos de la columna.


Figura 59. Ejemplo de creación de modificación de datos.


Consulta de datos


  • Consulta valores de una o varias tablas de acuerdo a las condiciones impuestas en la sentencia.
  • Las partes obligatorias son SELECT y FROM.
  • HAVING solo aparece si hay GROUP BY


Ejemplo:
SELECT lista_atributos
FROM lista_tablas
WHERE condicion
GROUP BY lista_atributos
HAVING condición
ORDER BY lista_atributos [ASC/DESC]



SELECT: Indica los atributos que se quieren obtener
FROM: Selecciona las tablas de las cuales quiero obtener datos.
WHERE: Condicion de la consulta.
GROUP BY: Trabaja solo cuando se usan operaciones (SELECT nombre, avg(cantidad) FROM tabla GROUP BY nombre
HAVING: Condiciones de operaciones y solo se usa cuando existe un GROUP BY
ORDER BY: Ordena datos de manera ascendente y descendente.


Alias en tablas

Cuando un dato se usa en más relaciones.

Ejemplo: Tabla ALIASTabla
                 Cliente C


Subconsultas

Se admiten varios niveles de anidación.
Para evitar problemas es recomendable cualificar atributos y utilizar alias para las relaciones.


Operaciones

AVG = Promedio
SUM = Sumatoria
MAX = Valor máximo.
MIN = Valor minimo



Funciones de SQL


  • DDL (data definition languaje)

Creación de estructuras de la base de datos. Integridad de los datos.
Se usan comandos como create, alter, drop = Database, table, user, function, constraint, trigger, procedure, etc.
Create para crear.
Alter para modificar.
Drop para borrar objeto.


  • DML (data manipulation languaje)

Recuperación y manipulación de datos.
Se usan los comandos insert, update, delete y select.
Insert inserta datos a la tabla. Update actualiza datos del usuario. Delete borra un registro (tupla). Select para seleccionar una columna.


  • DCL (data control languaje)

Control de acceso y compartición de datos.
Se usan los comandos Grant y revoke.
Grant otorga permisos. Revoke quita permisos.


Roles de SQL


  1. Invocación directa o interactiva
  2. Invocación no directa.


Ventajas de SQL


  • Independencia de fabricantes.
  • Portabilidad a cualquier plataforma.
  • SQL estandarizado.
  • Basado en modelo relacional.
  • Lenguaje de alto nivel.
  • Consultas interactivas.
  • Utilización de lenguajes de programación.
  • Múltiples vistas de datos.
  • Definición dinámica de los datos.
  • Arquitectura cliente/servidor.


Tipos de datos:


  • Char.
  • BIT.
  • Integer.
  • Numeric.
  • Decimal (p,q).
  • Varchar.
  • Float..
  • Date: YYYY-MM-DD
  • Time HH:MM:SS

Creación de dominios:

Los dominios se utilizan como tipos de datos. Permite cambiar simultáneamente a varios atributos.

Ejemplo:
Create domain [AS] tipodato [DEFAULT valor_defecto] [CHECK condición]

Operadores:


  • Comparación: (=, <>, <,>, <=, >=, is null)
  • Lógicos: AND, OR, NOT
  • Intervalos: Between…...AND.
  • Cadenas de texto: LIKE
  • Conjuntos: IN

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