Base de Datos Distribuidas
Base de Datos Distribuidas
Base de Datos Distribuidas
Centralizado Distribuido
Control centralizado: un solo DBA Control jerárquico:DBA global y DBA local
Entre las características más resaltantes de las bases de datos centralizadas se encuentran las
siguientes:
- Los componentes de las bases de datos centralizadas son: los datos, el software de
gestión de bases de datos y los dispositivos de almacenamiento secundario asociados.
Aquí están las razones básicas por las cuales muchas organizaciones están dejando el modelo
centralizado a favor de la distribución de bases de datos:
Fiabilidad Crecimiento
Seguridad Velocidad y eficiencia de los recursos
Rentable Responsabilidad y contención
Acceso local
AMBIENTES DE BASES DE DATOS
DISTRIBUIDAS
Una de las decisiones más importantes que el diseñador de bases de datos distribuidas debe tomar es
el posicionamiento de la data en el sistema y el esquema bajo el cual lo desea hacer. Para esto existen
cuatro alternativas principales: centralizada, replicada, fragmentada, e híbrida.
CENTRALIZADA
Es muy similar al modelo de Cliente/Servidor en el sentido que la BDD está centralizada en un lugar
y los usuarios están distribuidos. Este modelo solo brinda la ventaja de tener el procesamiento
distribuido ya que en sentido de disponibilidad y fiabilidad de los datos no se gana nada.
Distribución de los datos
REPLICADAS
El esquema de BDD de replicación consiste en que
cada nodo debe tener su copia completa de la base de
datos. Es fácil ver que este esquema tiene un alto costo
en el almacenamiento de la información. Debido a que
la actualización de los datos debe ser realizada en
todas las copias, también tiene un alto costo de
escritura, pero todo esto vale la pena si tenemos un
sistema en el que se va a escribir pocas veces y leer
muchas, y dónde la disponibilidad y fiabilidad de los
datos sea de máxima importancia.
Distribución de los datos
PARTICIONADAS O FRAGMENTADAS
Este modelo consiste en que solo hay una copia de cada elemento, pero la información está distribuida
a través de los nodos. En cada nodo se aloja uno o más fragmentos disjuntos de la base de datos.
Como los fragmentos no se replican esto disminuye el costo de almacenamiento, pero también
sacrifica la disponibilidad y fiabilidad de los datos. Algo que se debe tomar en cuenta cuando se desea
implementar este modelo es la granularidad de la fragmentación. La fragmentación se puede realizar
también de tres formas:
Híbrida
Este esquema simplemente representa la combinación del esquema de partición y replicación. Se
particiona la relación y a la vez los fragmentos están selectivamente replicados a través del sistema
de BDD.
UNIDAD 02
El Transact-SQL permite:
La base de datos Master registra toda la información de nivel de sistema para el servidor SQL
Server. Esto incluye las cuentas de inicio de sesión, parámetros de configuración del servidor,
la existencia de otras bases de datos, etc. La base de datos Master es absolutamente crítica
MASTER
para los datos, por le que debería mantener siempre una copia de seguridad de la misma. La
mayor parte de los procedimientos almacenados del sistema también se guardan en esta base
de datos, junto a los mensajes de error.
Su uso principal es el almacenamiento de la información que emplea el agente SQL Server,
como programación de trabajos, definición de operadores y alertas. La información de la copia
MSBD
de seguridad también se almacena en esta base de datos, y se emplea en la restauración de
la base de datos.
Es una base de datos plantilla, que se emplea cada vez que se crea una nueva base de datos.
Los contenidos de la base Model se copian a la nueva base. Si se desea que determinados
MODEL
objetos, permisos, usuarios se creen automáticamente cada vez que se crea una base de
datos, pueden incluirse en esta base.
Algunas veces SQL Server necesita crear tablas temporales internas (o tablas de trabajo) para
determinadas operaciones. Entre dichas operaciones se incluye la ordenación, las
operaciones multitabla, el tratamento de cursores, etc. Estas tablas temporales se borran tan
TEMPDB pronto como el conjunto de resultados se devuelve a la aplicación cliente, o cuando se cierra
el cursor. Almacena todas las tablas y procedimientos almacenados temporales. Esta base de
crea de nuevo cada vez que se inicia SQL Server, por lo que no tiene sentido crear copias de
seguridad de esta.
Transact SQL
CREATE DATABASE TALLER
PERMITE CREAR CON DDL:
CREATE USER ALUMNO
• CREATE (CREAR)
• ALTER (MODIFICAR)
CREATE PROCEDURE LISTAR
• DROP (ELIMINAR)
CREATE TRIGGER ACTUALIZAR
Transact SQL BASE DE
DATOS
CREATE Query para Crear Base de Datos. En este caso esta creando la Base de
datos Universidad
USE master
VARIABLES
Una variable es una entidad a la que se asigna un valor. Este valor
puede cambiar durante el proceso donde se utiliza la variable. SQL
Server tiene dos tipos de variables: locales y globales. Las variables
locales están definidas por el usuario, mientras que las variables
globales las suministra el sistema y están predefinidas.
CONSTRUCCION DE PROGRAMACION TRANSACT-SQL
Variables Locales
Las variables locales se declaran, nombran y escriben mediante la
palabra clave
declare, y reciben un valor inicial mediante una instrucción select o
set.
Los nombres de las variables locales deben empezar con el símbolo
“@”. A cada variable local se le debe asignar un tipo de dato definido
por el usuario o un tipo de dato suministrado por el sistema distinto
de text, image o sysname.
CONSTRUCCION DE PROGRAMACION TRANSACT-SQL
Variable Contenido
• Variables Públicas @@ERROR Contiene 0 si la última transacción se ejecutó
de forma
Las variables globales son
variables predefinidas correcta; en caso contrario, contiene el último
número de error generado por el sistema. La
suministradas por el variable global @@error se utiliza generalmente
sistema. Se distinguen de para verificar el estado de error de un proceso
las variables locales por ejecutado.
tener dos símbolos “@”. @@IDENTITY Contiene el último valor insertado en una
columna
Estas son algunas variables
IDENTITY mediante una instrucción insert
globales del servidor: @@VERSION Devuelve la Versión del SQL Server
@@SERVERNAME Devuelve el Nombre del Servidor
@@LANGUAGE Devuelve el nombre del idioma en uso
@@MAX_CONNECTIONS Retorna la cantidad máxima de conexiones
permitidas
HERRAMIENTAS PARA EL CONTROL DE FLUJOS
Palabra Clave Función
El lenguaje de control IF … ELSE Define una ejecución condicional, cuando la condición la
Estructuras de control IF
La palabra clave IF se utiliza para definir una
condición que determina si se ejecutará la instrucción
siguiente. La instrucción SQL se ejecuta si la
condición se cumple, es decir, si devuelve TRUE
(verdadero). La palabra clave ELSE introduce una
instrucción SQL alternativa que se ejecuta cuando la
condición IF devuelva FALSE.
HERRAMIENTAS PARA EL CONTROL DE FLUJOS
• Declare CURSOR
• Esta instrucción permite la declaración y la descripción del cursor ANSI.
Sintaxis:
CURSORES EN TRANSACT-SQL
Abrir un Cursor
Esta instrucción permite hacer operativo el cursor y crear eventualmente las tablas temporales
asociadas. La variable @@CURSOR_ROWS se asigna después de OPEN.
Leer un Registro: FETCH
Es la instrucción que permite extraer una fila del cursor y asignar valores a variables con su
contenido. Tras FETCH, la variable @@FETCH_STATUS está a 0 si FETCH no retorna errores.
Cerrar el cursor
Cierra el cursor y libera la memoria. Esta operación debe interponerse lo antes posible con el
fin de liberar los recursos cuanto antes.
Liberar los recursos
Es un comando de limpieza, no forma parte de la especificación ANSI. DEALLOCATE
PROGRAMACIÓN AVANZADA TRANSACT SQL
PROGRAMACIÓN AVANZADA TRANSACT SQL
Procedimientos Almacenados
Los procedimientos almacenados son grupos formados por instrucciones SQL y el lenguaje de control de
flujo. Cuando se ejecuta un procedimiento, se prepara un plan de ejecución para que la subsiguiente
ejecución sea muy rápida. Los procedimientos almacenados pueden:
• Incluir parámetros
• Llamar a otros procedimientos
• Devolver un valor de estado a un
procedimiento de llamada o lote para indicar
el éxito o el fracaso del mismo y la razón de
dicho fallo.
• Devolver valores de parámetros a un
procedimiento de llamada o lote
• Ejecutarse en SQL Server remotos
PROGRAMACIÓN AVANZADA TRANSACT SQL
• Especificar parámetros
• Un procedimiento almacenado se comunica con el programa que lo llama
mediante sus parámetros. Cuando un programa ejecuta un procedimiento
almacenado, es posible pasarle valores mediante los parámetros del
procedimiento.
• Estos valores se pueden utilizar como variables estándar en el lenguaje de
programación TRANSACT-SQL. El procedimiento almacenado también puede
devolver valores al programa que lo llama mediante parámetros OUTPUT. Un
procedimiento almacenado puede tener hasta 2.100 parámetros, cada uno de
ellos con un nombre, un tipo de datos, una dirección y un valor
predeterminado
PROGRAMACIÓN AVANZADA TRANSACT SQL
• TRANSACCIONES EN TRANSACT-SQL
• Una transacción es un conjunto de operaciones TRANSACT SQL que se
ejecutan como un único bloque, es decir, si falla una operación TRANSACT
SQL fallan todas. Si una transacción tiene éxito, todas las modificaciones de
los datos realizadas durante la transacción se confirman y se convierten en
una parte permanente de la base de datos. Si una transacción encuentra
errores y debe cancelarse o revertirse, se borran todas las modificaciones de
los datos.
• El ejemplo clásico de transacción es un registro de pedidos, donde agregamos
un registro a la tabla pedidoscabe y agregamos un registro a la tabla
pedidosdeta (producto solicitado por el cliente) y descontamos el stock del
producto solicitado en el pedido.
PROGRAMACIÓN AVANZADA TRANSACT SQL
Creación de disparadores
Un disparador es un objeto de la base de datos. Cuando se crea un disparador,
se especifica la tabla y los comandos de modificación de datos que deben
“disparar” o activar el disparador. Luego, se indica la acción o acciones que
debe llevar a cabo un disparador.
TRIGGERS O DISPARADORES
Disparador de Eliminación
Cuando se elimina una fila de una tabla, SQL Server inserta los valores que
fueron eliminados en la tabla DELETED el cual es una tabla del sistema. Está
tabla toma la misma estructura del cual se origino el TRIGGER, de tal manera
que se pueda verificar los datos y ante un error podría revertirse los cambios.
En este caso, la reversión de los cambios significará restaurar los datos
eliminados.
TRIGGERS O DISPARADORES
Disparador de Actualización
Cuando se actualiza una fila de una tabla, SQL Server inserta los valores que
antiguos en la tabla DELETED y los nuevos valores los inserta en la tabla
INSERTED. Usando estas dos tablas se podrá verificar los datos y ante un error
podrían revertirse los cambios.
INTRODUCCION A LAS ESTRATEGIAS DE SEGURIDAD Y
RESTAURACION EN SQL SERVER
INTRODUCCION A LAS ESTRATEGIAS DE SEGURIDAD Y
RESTAURACION EN SQL SERVER
• Restaurar una base de datos completa a partir de una copia de seguridad completa de la base de
datos (restauración completa).
• Restaurar parte de una base de datos (restauración parcial).
• Restaurar archivos o grupos de archivos en una base de datos.
• Restaurar páginas específicas en una base de datos (restauración de páginas).
• Restaurar un registro de transacciones en una base de datos (restauración del registro de
transacciones).
• Revertir una base de datos al punto temporal capturado por una instantánea de la base de datos.