jueves, 16 de junio de 2016

Implementación de procedimientos almacenados y función

Un procedimiento almacenado es un procedimiento almacenado físicamente en una base de datos. Su implementación varía de un gestor de bases de datos a otro. La ventaja de un procedimiento almacenado es que al ser ejecutado, en respuesta a una petición de usuario, es ejecutado directamente en el motor de bases de datos, el cual usualmente corre en un servidor separado. Como tal, posee acceso directo a los datos que necesita manipular y sólo necesita enviar sus resultados de regreso al usuario, deshaciéndose de la sobrecarga resultante de comunicar grandes cantidades de datos salientes y entrantes.

Sintaxis

Crear una base de datos actual utilizando la sintruddcion CREATE PROCEDURE
CREATE PROCEDRE  production.longLeadProducts
AS
SELECT name, ProducNumber
FROM
Production.Product
Where DatsToManufature >=1

Directrices para crear 


  • Calificar nombres de objeto dentro del procedimiento
  • crear un procedimiento almacenado para una tarea
  • crear, probar y solucionar problemas
  • evite utilizar el prefijo sp_en los nombre de procedimientos almacenados.

Parámetros de entrada

  • Proporcione valores predeterminados apropiados
  • Valide los valores de parámetros de entrada. Incluyendo comprobaciones de valores nulos.

Control de errores

Los bloques TRY CATCH proporcionan la estructura
El bloque TRY contiene transacciones proteginas 
El bloque CATCH controla errores
CREARE PROCEDURE dbo.addDATA @a int, @b int
AS
BEGIN TRY
INSERT INTO Table_WithKey VALUES (@a, @b)
END TRY
BEGIN CATCH
SELECT ERROR_NUMBER( ) ErrorNumber,
ERROR_MESSAGE( ) [Message]
END CATCH









Implementación de Vistas

Introducción a las vistas

Una vista es una alternativa para mostrar datos de varias tablas. Una vista es como una tabla virtual que almacena una consulta. Los datos accesibles a través de la vista no están almacenados en la base de datos como un objeto.

Entonces, una vista almacena una consulta como un objeto para utilizarse posteriormente. Las tablas consultadas en una vista se llaman tablas base. En general, se puede dar un nombre a cualquier consulta y almacenarla como una vista.

Vistas Estándar
combinan datos de una o mas tablas hasta en una nueva tabla virtual.

Vistas indizadas
Materializan la vista mediante al creación de un indice único agrupado en la vista.

Vistas con particiones
Combinan datos con particiones horizontales de una o mas tablas de base en uno o varios servidores.

Ventajas

  • Centrar los datos par aun usuario
  • Enmascarar la complejidad de la base de datos
  • Simplificar la admistración de los permisos de los usuarios
  • Mejorar el rendimiento
  • Organizar datos para exportarlos a otras aplicaciones 

Sintaxis

Se utiliza CREATE VIEW de Transact-SQL;
CREATE VIEW [Nombre esquema] nombreDeVista [Columna{.....n}]

Restricciones
  • No se pueden anidar mas de 32 niveles de profundidad.
  • No se pueden contener mas de 1024 columnas.
  • No se pueden utilizar COMPUTE, COMPUTE BY o INTO.
  • No se pueden utilizar ORDER BY sin TOP.

Cifrado de Vistas
Usar la opción WITH ENCRYPTION en la instruccion CREATE VIEW

  • Cifra de definición de vista en al tabla sys.syscomments
  • protege la lógica de creación de la vista

Modificar datos de una Vista

Las vistas no mantienen una copia independiente de los datos (las vistas indizadas son una excepción).

Las actualizaciones de las vistas modifican las tablas base.

Restricciones:

  • No pueden modificar mas de una tabla base
  • No pueden modificar columnas derivadas de funciones de agregado o cálculos
  • No pueden modificar columnas afectadas por clausulas GROUP BY, HAVING, DISTINCT.
Las actualizaciones de las vistas están restringidas por el uso de WITH CHECK OPTION

Consideraciones de rendimiento para las vistas

Las vistas introducen una sobrecarga de rendimiento porque se resuelven dinamicamente.
Las vistas anidadas presentan posibles problemas de rendimiento:
  • Examine la definición de las vistas anidadas no cifradas.
  • Utilice el analizador de SQL server para examinar el rendimiento.
Las vistas indizadas pueden mejorar el rendimiento.









jueves, 26 de mayo de 2016

SQL server managment studio

Sql Server

Es un lenguaje declarativo de acceso a bases de datos relacionales que permite especificar diversos tipos de operaciones en ellas. Una de sus características es el manejo del álgebra y el cálculo relacional que permiten efectuar consultas con el fin de recuperar, de forma sencilla, información de bases de datos, así como hacer cambios en ellas.

Implementan de una base de datos de microsoft.

Creación de bases de datos y archivos de base de datos

Las consideraciones para la creación de una ase de datos son:
  • Propósito del almacenamiento de datos
  • Rendimiento de transacciones
  • Crecimiento potencial del almacenamiento físico de datos
  • Ubicación de los archivos
Registros de transacciones
  1. La modificación de datos la envía la aplicación.
  2. Las paginas de datos se encuentran en, o se leen en, la cache de buffer y se modifican.
  3. La modificación se graba en el registro de transacciones en disco.
  4. El punto de comprobación escribe la transacciones confirmadas en la base de datos.
Opciones de base de datos

Establezca las opciones de base de datos utilizando:
  • SQL server management studio
  • Instrucción ALTER DATABASE.














jueves, 19 de mayo de 2016

Funciones de Agregacion

Alias en Tablas


  • Cuando la misma relación se la usa mas de una vez en al consulta
  • en ese caso se utilizan alias para las tablas

Funciones de agregación


  • Son funciones que toman una colección de valores como entrada y producen un único valor de salida.
  • COUNT(atributo)

    Devuelve el numero de tuplas o valores especificados en una consulta para el atributo indicado.
  • SUM(atributo,MAX(atributo), MIN(atributo), AVG(atributo).
  • Se pueden utilizar e la clausula SELECT o en el HAVING. 
  • en el SELECT no pueden aparecer otros atributos a menos que se le incluyan en el GROUP BY.

HAVING

  • Se utiliza con GROUP BY
  • Impone condiciones sobre los grupos formados previamente el en GROUP BY.
  • Las condiciones son similares a las utilizadas en WHERE, pero se pueden utilizar funciones de agregación. 
  • mientras que WHERE impone condiciones a las tuplas, HAVING impone condiciones los grupos.

Operaciones de conjuntos

  • UNION, INTERSECT, MINUS
  • SELECT id FROM alumnos UNION (SELECT id FROM empleados)

GRANT AND REVOKE

  • La sentencia GRANT es usada para otorgar permisos a un usuario o rol
    GRANT SELECT ON authors TO alex.
  • La sentencia REVOKE es usada para remover un permiso otorgado previamente para un usuario en la base de datos.

















lunes, 9 de mayo de 2016

Funciones

Inserción de datos

insert into nombre_tabla (lista_atributos)
values (lista_valores)

  • Introduce información en la tabla y atributos indicados.
  • El orden y el tipo de los tributos debe coincidir con el orden y tipo de los valores.
  • los valores se pueden obtener mediante una consulta.
  • si un atributo no se indica toma valor null.
  • Si se omite la lista de atributos, los valores se almacenan de acuerdo al orden de definición de los mismo en el create table.
  • Los tipos de la lista de valores deben coincidir con los tipos de definición en el create table.

Modificación de datos

UPDATE nombre_tabla
SET nombre_atributo= nuevo_valor,....
WHERE condicion;

  • 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 sub consulta o mediante formulas matemáticas
  • Si no hay condición se actualizan todas las filas de la tabla.

Borrado de Datos

DELETE nombre_tabla
WHERE condición;
  • Borra la tabla las tuplas que cumplen cierta condición.
  • Si no hay condición se borran todas las filas de la tabla.
  • A diferencia de DROP TABLE no borra la estructura de la tabla.


Consulta de Datos

SELECT lista_atributos
FROM lista_tablas
WHERE condición
GROUP BY lista_atributos
HAVING condición
ORDER BY lista_Atributos
  • Consulta valores de una o varias tablas de acuerdo a las condiciones impuestas en la sentencia
  • Las únicas partes obligatorias son SELECT y FROM, el resto son opcionales 
    • Si aparecen deben ir en orden que pertennecen en al sentencia
    • HAVING solo se puede aparecer si hay un GROUP BY







lunes, 25 de abril de 2016

Normalización de base de datos

¿Que es la normalizacion?

Es un conjunto de reglas que sirven para ayudar a ls diseñadores a desarrollar un esquema que minimice los problemas de lógica.

este método se emplea porque el viejo estilo de poner todos los datos en un solo lugar era ineficiente y conducía a errores de lógica.

Grados de Normalizacion 

  • Primera Forma Normal (1FN)
  • Segunda Forma Normal (2FN)
  • Tercera Forma Normal (3FN)
Existen cuarto niveles mas de normalizacion:
  • Cuarta forma Boyce-Codd
  • Cuarta Forma Normal
  • Quinta Forma Normal
  • Forma normal de dominio 

Primera Forma Normal:

Una tabla está en primera forma normal si todos los atributos son atómicos.

Segunda Forma Normal:

Una tabla 1NF esta en 2NFsi y solo si, dada cualquier clave candidata y cualquier atributo que no sea parte de la clave candidata, dicho atributo depende de toda la clave candidata en vez de solo una parte de ella.  















jueves, 14 de abril de 2016

Álgebra Relacional

¿Que es Álgebra Relacional?

Se denomina álgebra relacional a un conjunto de operaciones encargadas de la manipulación de datos agrupados (relaciones).

Estas operaciones describen la manipulación de datos. son en si, una representación intermedia de una consulta a una base de datos, al aplicarse una operación a una tabla , tengo el resultado de otra tabla.

Seleccionar 

Selecciona el valor de ciertas tuplas, selecciona filas completas.

Proyectar

Es muy parecido a la selección pero en este método se selecciona solo ciertos atributos no filas completas.

Unión 

Esta operación que retorna un conjunto de tuplas la cual se crea dependiendo de las relaciones escogidas.

Intersección

esta operación obtiene como resultado la cantidad de tuplas que se encuentran en las relaciones.