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.











jueves, 7 de abril de 2016

Entidad Relacional

Claves candidatas y claves primarias

Claves Candidatas: son las posibles claves a escoger para ser la clave principal la cual es atómica.

Clave Primaria: es la clave escogida entre las candidatas para ser el atributo atómico el cual diferencia cada entidad.

lunes, 4 de abril de 2016

Entidad-Relacion

Entidad Débil

Una entidad puede no tener suficientes atributos para formar una clave primaria. Tal entidad se denomina entidad débil.

Subclases

Se usan subclases cuando detectamos una entidad que tiene un grupo de instancias con ciertas particularidades.

Notación:

Especialización:
Atributos específicos: cuando se tienen muchos atributos diferenciadores.

Relaciones específicas: 
Cuando las entidades se relacionan con diferentes entidades.

No es bueno especializar tanto, esta bien que algunos atributos sean nulos pero no siempre se debe hacer esto ya que no siempre es necesario y a causa de hacerlo siempre puede dificultar la estructura de la base de datos y lo mejor es mantener la dificultad baja.

Principios de diseño

  • Correctitud: representar adecuadamente el modelo.
  • Buscar simplicidad: entidades que sean estrictamente necesarias. 
  • Evitar redundancia.
  • Cuando aparece un ciclo, hay redundancia. Mantener sólo si es necesario por eficiencia. 

Entidades Eliminables

Sólo tienen relaciones 1-1 con otra entidad.
No pensar en las tablas. El modelo E-R es para conceptualizar.
Leer y re-leer el diagrama.














jueves, 24 de marzo de 2016

Modelo E-R


El modelo de datos entidad-relación (E-R) está basado en una percepción del mundo real que consta de una colección de objetos básicos, llamados entidades, y de relaciones entre estos objetos.

Modelo Relacional 

En el modelo relacional se utiliza un grupo de tablas para representar los datos y las relaciones entre ellos. Cada tabla está compuesta por varias columnas, y cada columna tiene un nombre único.

Otros Modelos de Datos

  1. Semi-estructurados
  2. Modelo de red y modelo jerárquico 
  3. Orientado a objetos 
  4. Relacional orientado a objetos

Definiciones


  1. Entidad:Un objeto que existe y es distinguible de algún tipo (~instancia). 
  2. Conjunto:de entidades.: Una colección de objetos similares (~clase). 
  3. Atributos:Propiedades de entidades en un conjunto de entidades. 
  4. Relaciones: Conexiones entre dos o más entidades. 
  5. Conjunto de relaciones: Conexiones entre dos o más conjuntos de entidades
los diagramas entidad-relación describen el esquema de una base de datos, estas bases son estructuradas por entidades atributos relaciones y lineas.

Relaciones









 

lunes, 21 de marzo de 2016

Lenguaje de Base de datos

Lenguajes de base de datos 

Según área:
Vistas, definición de datos, manipulación de datos, etc.

Según nivel:
Alto nivel: no procedimientos.
Bajo nivel: procedimientos.

Lenguajes de practica:

Lenguaje para definir vistas:
SQL

Lenguaje para definir datos:
SQL

Lenguaje para definir almacenamiento:
Extensiones propietarias de SQL

Lenguaje para manipulación de datos:
SQL


jueves, 17 de marzo de 2016

Base de Datos - Gestion de Archivos

Objetivos de un sistema gestor de archivos

cumplir con el gestor de datos mientras cumple con las necesidades del usuario de tal manera que sea optimo el rendimiento, minimizar la perdida de datos y proporcionar soporte de E/S para múltiples usuarios en un conjunto estándar de rutinas de interfaz.

Funciones del sistema de gestor de archivos 

Una de las funciones mas importantes es identificar un archivo usando un directorio que describe la ubicación de todos los archivos y atributos, la E/S se lleva a cabo por bloques y los archivos se asignan en estos bloques gestionando el espacio libre de manera que se reconozca los bloques libres.

Criterios de elección

  1. Acceso rápido
  2. Actualización
  3. Economía de almacenamiento 
  4. Fácil mantenimiento 

Porque no usar archivos 

Desventajas:
  • no se puede hacer búsqueda rápida
  • no modifica fragmentos pequeños
  • no hace consultas completas
  • no puede modificar varios archivos a la vez

Arquitectura del software del sistema de archivos 

Tipos de archivos

archivo de pila
archivo secuencial
archivo secuencial indexado

organización de archivos vs base de datos

  1. sistema de información basado en archivos
  2. sistema de información de base de datos

Base de datos: definición

Una colección de datos relacionados, y una descripción de estos datos, diseñados para cumplir con las necesidades de información de una organización.

Pero ¿Que es una base de datos? Es una colección de datos relacionados que generalmente es parte de un sistema mas grande, una de sus características es que tiene un uso de datos auto descriptivo también compartir datos y múltiples vistas del mismo al igual que transacciones multi usuario.

Sistema gestor de base de datos

Un sistema de software que permite a sus usuarios crear, mantener y controlar el acceso a una base de datos.

Usuario SGBD:

Este tipo de usuario debe tener acceso al software y que le permita crear base de datos y esquemas, preguntar sobre datos (Query language), almacena los datos de forma persistente y controlar el acceso de múltiples usuarios.

Usos de los SGBD: 

  • Sistemas de información geográfica
  • Bases de datos multimedia  
  • Sistemas de proceso analítico on-line
  • Bases de datos distribuidas
Ventajas: 
  • Concurrencia 
  • Consistencia
  • Control de redundancia
  • Independencia de datos
  • Relaciones complejas

Cuando no usar base de datos relacionales?

Problemas simples ya que las bases de datos agregan un costo y incluye un sobre costo en tiempo de ejecución.

Arquitectura 


Nivel interno:
  • Estructura física de almacenamiento. 
  • Todos los detalles de cómo el SGBD utiliza: El disco duro. La memoria, etc.
  • Tema principal: El sistema debe ser rápido en responder y eficiente en el uso de espacio. 
  • Administrador de la base de datos
Nivel Conceptual:
  1. Estructura lógica de almacenamiento
  2. Diseño conceptual
  3. Administrador de datos
  4. Indicar conceptualmente el problema a modelar
Nivel Externo:

  • Vistas sobre las tablas.  
  • Requiere sólo acceso parcial a los datos. 
  • Desarrolladores de aplicaciones  Usuarios finales  
  • Cada vista debe reflejar adecuadamente la parte de los datos que interesa a cada uno.
un esquema de base de datos es la descripción de la estructura de la base de datos y descripción de datos especificando otros datos (meta-datos), el esquema interno es una descripción de la organización física de los datos y una descripción a bajo nivel.