Documente Academic
Documente Profesional
Documente Cultură
común.
comunicación, en el cual:
Los sitios han convenido trabajar juntos (si es necesario) con el fin de que un
usuario de cualquier sitio pueda obtener acceso a los datos de cualquier punto de
la red tal como si todos los datos estuvieran almacenados en el sitio propio del
usuario.
Otras definiciones
Es una base de datos construida sobre una red computacional y no por el contrario
Cada sitio es un sistema de base de datos en sí mismo, pero, los sitios han
cualquier sitio pueda obtener acceso a los datos de cualquier punto de la red tal
como si todos los datos estuvieran almacenados en el sitio propio del usuario.
compartir los datos por medio de la distribución en cada localidad pueda controlar hasta
Fiabilidad y disponibilidad
Si se produce un fallo en una localidad del sistema distribuido, es posible que las demás
localidades, una transacción que requiere un dato específico puede contarse con
Por ejemplo, si una línea área no puede tener acceso a la información, es posible que
Desventajas
Transparencia y autonomía
En la selección anterior se vio que una relación puede almacenarse de varias formas en
En esta sección se analizan algunas de las estrategias y objetivos que son comunes a la
Transparencia de la ubicación
Permite a un usuario acceder a los datos sin conocer, tener que ver los sitios donde
residen los mismos. Las ubicaciones de los datos están ocultas al usuario.
Transparencia de la duplicación
Significa que existe más de una copia de los datos, una sola copia se debe escoger cuando
Independencia de la configuración
Permite a la organización añadir o remplazar hardware sin tener que estar cambiando los
SGBD homogéneos
A veces es deseable integrar bases de datos mantenidos por diferentes SGBD sobre
computadoras diferentes.
Duplicación de datos
Ocurre si el sistema mantiene varias copias idénticas de una relación R, con cada copia
preparados para los cambios que, inevitablemente, se van a dar en el área de las bases de
datos.
datos, la relación entre las bases de datos y la web, así como otras áreas y aplicaciones.
Hablar de bases de datos distribuidas es hablar de todo unas pocas bases de datos dentro
Sistemas paralelos
La base de datos esta en una sola maquina con varios CPU y varios discos duros.
Arquitectura Cliente/Servidor
El cliente y el servidor pueden actuar como una sola entidad y también pueden
independientes.
la misma plataforma.
protocolos.
presenta una imagen de un solo sistema a las estaciones clientes. Esto se logra
Sistemas distribuidos
Un objeto distribuido es aquel que esta gestionado por un servidor y sus clientes, invocan
servidor que cuestiona al objeto, se ejecuta el método del objeto con el servidor y el
Es una colección de datos construida sobre una red y que pertenece lógicamente, a un
red.
Cada sitio de la red, la parte de la información, se constituye con una base de datos en si
mismo. Lo anterior expresa claramente que estas bases de datos paralelas necesitan
Un sistema distribuido tiene una gran ventaja porque la información esta distribuida, por
Diferencias.-
Cliente/servidor.- Están integrados en una sola aplicación. El servidor puede ser cliente
Se debe de tomar en cuenta diferentes factores a la hora de realizar una base de datos
distribuida.
Repetición.- El diseñador debe considerar que ese sistema mantendrá varias copias
idénticas. Cada copia se almacenara en una localidad diferente lo que resulta en una
repetición de la información.
combinación de los dos conceptos antes mencionados; es decir, el sistema debe de ser
El diseñador de una base de datos distribuida debe saber que realizarla implica una toma
también sobre los propios datos que constituyen la base de datos, esto es que, tendrá que
Fragmentación
Horizontal = Registros.
Los criterios del diseñador van a depender en gran medida del problema en si, es decir, el
diseñador tomara en cuenta el enfoque que le dará a la base de datos distribuida, porque
colocar la información del tipo de dato, sus características, pero sobre todo donde esta
ubicado. Todo buen diseñador debe tener bien presente que esa información le será útil al
diccionarios que crea correspondientes, es decir crea uno para el usuario y otro para el
administrador.
Identifica los procesos donde se emplean los datos y los sitios donde se necesita el acceso
En un diccionario de datos se encuentra la lista de todos los elementos que forman parte
del flujo de datos de todo el sistema. Los elementos más importantes son flujos de datos,
Ejemplo:
Instituto Tecnologico Superior de Apatzingán 13
Bases de Datos Distribuidas
Nombre Nombre
Alias Tipo
Estructura Tabla
Nombre – Red
el diseñador, las decisiones que se tomen van enfocadas hacia la base de datos.
¿Qué es la transparencia?
usuarios.
componentes especificados por separado. De manera que vean una aplicación como un
transparencia.
archivo.
En un sistema de base de datos distribuidos, los datos se accedan sobre una red de
almacenamiento.
necesita saber que una base de datos esta en particiones. Ni los nombres, ni la ubicación
datos del archivo estuvieran en una misma computadora. Es decir, cuando se crea
fragmentados.
fragmentos.
Así también, será necesario mezclar las respuestas a consultas fragmentadas para obtener
una sola respuesta a una consulta global. El acceso a una base de datos distribuida debe
objetos de la base de datos, su existencia debe ser controlada por el sistema, no por
usuario, se debe tener en cuenta que cuando el sistema se encarga de manejar las replicas
en un sistema, el trabajo de éste es mínimo por lo que se puede obtener una eficiencia
mayor.
Por lo que se sugiere que las replicas las haga el sistema en su totalidad sin que el usuario
Los usuarios ven cada objeto de datos como lógicamente único. Puede que el sistema
Los usuarios no deben preocuparse por los objetos que se hayan replicado ni por la
Fragmentación horizontal.
Fragmentación vertical.
Fragmentación híbrida.
Ejemplo:
Fragmentación horizontal
Fragmentación vertical.
fragmentos.
Estos dos esquemas se pueden aplicar sucesivamente a la misma relación, lo que da lugar
Fragmentar significa tomar datos lógicamente de una tabla para formar otro.
La fragmentación horizontal se realiza sobre las tuplas de la relación, cada fragmento que
Fragmentación vertical
Fragmentación hibrida.
Esta información implica al esquema conceptual global. Es importante señalar como las
situada en la cola del enlace, mientras que se llama relación miembro a la ubicada en la
cabeza del vinculo. Dicho de otra forma podemos pensar en relaciones de origen cuando
nos retiramos a las propietarias y relaciones destinos cuando lo hagamos con las
miembro.
de relaciones destino cuando le hagamos con las miembro. Además dado un enlace,
cordialidad.
Ejemplo:
Cada tupla de la relación r debe pertenecer al menos a uno de los fragmentos, de modo
fragmentos, es decir,
anterior.
Instituto Tecnologico Superior de Apatzingán 22
Bases de Datos Distribuidas
Esta relación se puede dividir en n fragmentos diferentes, cada uno de los cuales consiste
Si el sistema bancario solo tiene dos sucursales --- Guadarrama y Cercedilla---, entonces
Cuenta 1
Cuenta 2
En nuestro ejemplo los fragmentos son disjuntos. Cambiando los predicados de selección
utilizados para generar los fragmentos, se puede que una tupla de r determinada aparezca
Una fragmentación vertical de una relación R produce fragmentos R1, R2,…, Rr, cada uno
de los cuales contiene un subconjunto de los atributos de R así como la llave primaria de
consultas de usuario.
cual permite que las consultas de usuario traten con relaciones más pequeñas haciendo,
horizontal ya que existe un gran número de alternativas para realizarla. Por lo tanto, se
los fragmentos satisfaciendo algún criterio se unen para formar un solo fragmento.
La principal información que necesitaremos se refiere a las aplicaciones por tanto, este
punto tratara de especificar la información que de una aplicación que funciona sobre la
base de datos, podemos extraer teniendo en cuenta que la fragmentación vertical coloca
alguna medida que defina con mas precisión el concepto de simultaneidad. Esta medida
es la afinidad de los atributos que indican la relación estrecha existente entre los
atributos. No es muy realista esperar valores por ello una forma para la cual obtengamos
rotación R = (A1…..A2…..AN).
Ejemplo:
R=R1 U R2 U…U Rn
clave primaria de R en cada una de las Ri. De manera más general puede utilizarse
cualquier superclave.
esquema R. el valor de id-tupla de una tupla es único, y se utiliza para distinguir esa tupla
de las demás.
El atributo id-tupla es, por tanto, un candidato a clave del esquema ampliado, y se incluye
en cada uno de los Ri. La dirección física o lógica de una tupla puede utilizarse como id-
Guadarrama García 1
Guadarrama Cordero 2
Cercedilla Cordero 3
Cercedilla Obeso 4
Guadarrama Obeso 5
Cercedilla Obeso 6
Cercedilla Badorrey 7
Deposito 1
Guadarrama 100.000 1
Guadarrama 64.200 2
Cercedilla 41.000 3
Cercedilla 2.000.000 4
Guadarrama 12.400 5
Cercedilla 224.600 6
Cercedilla 150.000 7
Deposito 2
Para reconstruir la relación depósito original a partir de los fragmentos hay que procesar
Aunque el atributo id-tupla facilite la aplicación de la división vertical, no debe ser visible
independencia de los datos, que es una de las virtudes principales del modelo relacional.
del esquema de la base de datos no será suficiente para satisfacer los requisitos de las
mixta.
fragmentación mixta HV. En el caso contrario, estaremos ante una fragmentación VH. Una
de fragmentación.
Ejemplo:
La relación r se divide en una serie de relaciones fragmentarias r1, r2,… rn. Cada
Esta relación se divide en un principio en los fragmentos deposito1 y deposito2, tal y como
deposito2.
La tarea de distribuir datos no es nada sencillo, sobre todo porque podemos cuidar las
consecuencias de los datos también debemos revisar que tipo de transacción se esta
toda transacción tiene una característica principal que debe ejecutarse de manera
anatómica. Esto es, que ejecuta completamente todas las instrucciones de las
La ventaja principal de compartir los datos por medio de la distribución es que cada
localidad pueda controlar hasta cierto punto los datos almacenados localmente. En un
administrador de base de datos de cada localidad. Dependiendo del diseño del sistema
distribuido, cada administrador local podrá tener un grado de autonomía diferente, que se
conoce como autonomía local. La posibilidad de contar con autonomía local es en muchos
Fiabilidad y disponibilidad
Si se produce un fallo en una localidad de un sistema distribuido, es posible que las demás
localidades, una transacción que requiere un dato específico puede encontrarlo en más de
una localidad. Así, el fallo de una localidad no implica necesariamente la desactivación del
sistema.
El sistema debe detectar cuando falla una localidad y tomar las medidas necesarias para
recuperarse del fallo. El sistema no debe seguir utilizando la localidad que falló. Por
último, cuando se recupere o repare esta localidad, debe contarse con mecanismos para
aplicaciones de tiempo real. Por ejemplo, si una línea aérea no puede tener acceso a la
Si una consulta comprende datos de varias localidades, puede ser posible dividir la
las estrategias de intersección se pueden aplicar en estos sistemas. En los casos en que
hay repetición de los datos, el sistema puede pasar la consulta a las localidades más
ligeras de carga.
• Mayor posibilidad de errores: puesto que las localidades del sistema distribuido
operan en paralelo, es más difícil garantizar que los algoritmos sean correctos.
adicionales son una forma de tiempo extra que no existe en los sistemas centralizados.
Hay gestores que son muy flexibles en cuestiones de programación, mientras que otros
ofrecen más rendimiento. Así, al diseñar el algoritmo tendrá que hacer toda la
información referente a la vida de la base de datos pero por otro lado deberá buscar
siempre de darle soluciones al usuario, pues este será el que al final de cuentas interesa.
datos se refiere, el que utilizaremos (el mas actual) será SQL SERVER, este gestor comenzó
a crearse por la década de los 90´s, ofrece muchas ventajas sobre otros gestores, la única
comerciales como el 98, XP entre otros. Se preguntaran que tiene que ver el gestor con los
algoritmos de datos no replicados, sin embargo la respuesta es muy sencilla, y esta es que
Tipos de datos:
Char (Tamaño).- Almacena caracteres con una longitud fija. Siendo 2000 caracteres el
máximo.
Number (Precisión, escala).- Almacena datos numéricos tanto enteros como decimales,
Escala.- Indica el número de dígitos que puede hacer a la derecha del punto
decimal.
Gigas de información.
Raw (tamaño).- Almacena datos binarios, puede almacenar como mucho 2000 Bytes.
Rowid.- Se tarta de un campo que representa una cadena hexadecimal que indica la
Nchar (tamaño).- Similar al Char y con las mismas características que el Nvarchar2.
Nclock.- Similar al Clock solo que el tamaño del carácter depende del juego de caracteres
utilizado.
datos que ya tengan una copia aunque es muy útil, lo cual podemos asegurar que su
SQL SERVER
Introducción
SQL SERVER es una de las mayores estrategias o inversiones que a hecho la compañía de
Microsoft, su versión fue hecha para Windows server y NT sin embargo, por las
innovaciones de interfaz y la facilidad de uso que tiene esta aplicación hizo necesaria que
se desarrollara para los Windows actuales como el vista y sus diferentes versiones.
sofisticadas para aquellos usuarios de nivel avanzado. Entre algunas de las novedades que
trae SQL SERVER, es que integra un servidor completo y un modulo para la transformación
de datos.
Otras de las características que posee SQL SERVER es un bloqueo dinámico a nivel de fila,
gran tamaño.
Para crear una base de datos en SQL SERVER lo podemos hacer primeramente usando el
Existen dos formas bien definidas que crear una base de datos por medio del asistente y
manualmente.
Manualmente:
Dentro de SQL SERVER existe Enterprise manager, se debe de entrar a el, para poder hacer
la base de datos.
2. Se elige la opción New y por ultimo clic sobre la opción New database.
Precisión.- Se utiliza para campos numéricos, por aquí se indica la cantidad de dígitos que
llevara un numero.
Identify.- Si esta opción se marca con un si estaremos indicando que el campo tendrá un
Is Row Guid.- Esta propiedad creara un contenido global y único. Cualquier tabla puede
tener este tipo de columna en el momento que se crea necesario por el diseñador.
Formula.- Es una propiedad exclusiva y diseñadas para aquellos campos que necesitan
alguna función.
Collation.- En este campo se debe de especificar a que base de datos pertenece la tabla
que estamos generando se hace por default esta tabla pertenecerá a la base de datos
activarse por el menú toolswizards. El mismo abre la primera ventana que nos servirá para
crear la base de datos el ítem data base y seguida doble clic en el ítem create base, lo cual
NAME
LOCATION
NEXT CANCEL
En la etapa siguiente se sugiere un valor inicial para los archivos de la base de datos,
NOMBRE 1
base de datos.
NOMBRE 1
BACK CANCEL
NEXT
Instituto Tecnologico Superior de Apatzingán 43
Bases de Datos Distribuidas
La última de las ventanas el asistente solo nos muestra el resumen de las características
Tablas.- Almacenan información por medio de registros o filas, y se pueden relacionar con
otras tablas.
Vistas.- Son tablas virtuales cuyo contenido se a definido por medio de consultas “Query”.
Procedimientos almacenados.- Los datos de una base de datos solo pueden accederse por
Al crear una aplicación que sirva como interfaz con la base de datos, el diseñador puede
optar por crear un programa SQL que almacena localmente y luego es enviado al servidor
en procedimientos almacenados.
Índices Ful-Text.- Este tipo especial de índices permite la ejecución de consultas con base
Son una representación grafica de la base de datos y las relaciones entre sus tablas para
Dar clic con el botón derecho del mouse sobre la opción de diagrams.
Dar clic sobre la opción new database diagrams. Se activara la primera de las
AVALABLE TABLES
EMPLEADOS
PRODUCTOS ADD
PROVEEDORES
REMOVE
Esta operación es constantemente sencilla. Primero se debe seleccionar la fila que define
la columna con la llave primaria en la nueva relación, en segundo lugar se dará un clic sin
soltar nuevamente sobre la fila de la llave primaria y se arrastrara la tabla que se desea
seleccionar.
Autores Libros
Id_autor. Id_libro.
Nombre. Titulo.
Descripción. Categoría.
Teléfono. Paginas.
e-mail. Editorial.
Ciudad. Edición.
Estado. Fecha.
País. Lugar.
Activo.
Query analizer
Una de las herramientas importantes de SQL SERVER es Query analizer, la cual permite al
Una de las características principales del query analizer es la práctica y el uso del lenguaje
Después de cargar el query analizer, la caja les muestra una caja de dialogo en la cual
debemos especificar con el que queremos conectarnos. Para tener acceso a esta caja se
debe activar en menú file y connect en el campo de SQL SERVER, se debe de ingresar el
nombre del servidor hacia donde se desea conectar, o bien se hara clic con el botón con
tres puntos para obtener una lista de los servidores que tiene la red.
NT SERVER ...
CONNECT INFORMATION
La ventana de trabajo estará compuesta por dos paneles, en caso de que solo aparezca
Vistas
conjunto de datos.
El uso de las vistas es particularmente útil cuando se desea enfocar un tipo determinado
Ejemplo:
Imagínese una base de datos de una corporación, a la cual tiene acceso usuarios de varios
utilizan diferentes vistas, lo que hace posible ofrecer al usuario solo la información que
necesita sin importar si esta proviene de una o de varias tablas de la base de datos.
La primera utilizando el comando de transact- sql llamado create view, o bien utilizando el
editor de vistas del enter. Price manager, al crear una vista se debe tener en cuenta las
siguientes consideraciones:
Una vista solo puede crearse en la base de datos que esta en uso.
Si mas de una columna de la vista tuviera el mismo nombre, estas deben referirse
que pertenecen.
Las columnas de una vista deben ser idénticas a las columnas de las tablas de
origen.
Para guardar las vistas, será necesario primero realizarla, para ello se dara clic en el icono
del disket (guardar), es importante saber que las vistas son guardadas generalmente en la
Porque es tan importante que después de creada una vista sea guardada, la respuesta es:
posterior.
3. Se abre una ventana preguntando cuales son las tablas de las que se realizara la
vista.
TABLES VIEW
ADD
TABLE1….
TABLE2…. CANCEL
TABLE3….
………….. HELP
…………..
4. Este último paso consiste en seleccionar las columnas de la tabla (s) que tendrá
nueva vista.
TABLE 1
ID
NOMBRE
TELEFONO
DIRECCION
Desde el punto de vista del usuario, una vista es una tabla mas como cualquier otra. Por
tanto para ver su contenido será necesario elegir la opción open sql server y enseguida
en equipos diferentes.
Los usuarios de SQL SERVER pueden utilizar consultas distribuidas para obtener acceso a
lo siguiente:
filas. SQL SERVER permite hacer referencia a conjunto de filas desde proveedores OLE BD
es llevado acabo por un modulo del DBNS llamado el procesador de consultas (query
procesador).
El procesamiento de consultas tiene varias etapas a seguir para resolver una consulta SQL,
las características del modelo relacional permiten que cada motor de base de datos elija
Existen varios medios para calcular la respuesta a una consulta. En l caso del sistema
Repetición y fragmentación.
Select.-Obtiene filas de la base de datos y permite realizar la selección de una o varias filas
compleja aunque las clausulas principales pueden resumir del modo siguiente:
Select [select_list]
[where seach_condition]
[group by group_by_expresion]
[having search_condition]
Instituto Tecnologico Superior de Apatzingán 54
Bases de Datos Distribuidas
Whare.- Especifica una condición de búsqueda para restringir las filas que se van a
restringir.
[where]<search_condition>/<old_outer_jom>
Group by.- Especifica los grupos en los que se van a colocar las filas de salida y si se
All.- Incluye todos los grupos y conjuntos de resultados, incluso aquellos en los que no hay
From.- Especifica las tablas de las que se van a obtener filas. La clausula from es necesaria
aritméticas.
Síntesis:
[from {<table_souerce>}[C1,…….N]]
Especifica tablas, vistas, tablas derivadas y tablas combinadas que utilizan en las
• Pasos
– Optimización
– Generación de código
– Ejecución de la consulta
localmente.
de la red local.
Cuando una base de datos es acezada de esta manera la técnica que se utiliza es la de
siguiendo los estándares marcados por las reglas formales y posteriormente realizamos el
envió y la maquina que recibe es la que muestra el resultado pertinente para el usuario,
procesamiento de consultas.
Donde tr * ts será la concatenación de las tuplas tr y ts. Como para cada registro de r se
tiene que realizar una exploración completa de ts, y suponiendo el peor caso, en el cual la
Por otro lado, en el mejor de los casos si se pueden contener ambas relaciones en la
Una variante del algoritmo anterior puede lograr un ahorro en el acceso a bloques, si se
procesan las relaciones por bloques en vez de por tuplas. Para cada bloque Br dar a igual
La diferencia principal en costos de este algoritmo con el anterior es que en el peor de los
casos cada bloque de la relación interna s se lee una vez por cada bloque de dr y no por
Este algoritmo se puede utilizar para calcular si un Join natural es óptimo en la búsqueda o
consulta. Para tales efectos, ambas relaciones deben estar ordenadas para los atributos en
común es decir se asocia un puntero a cada relación, al principio estos punteros apuntan
al inicio de cada una de las relaciones. Según avance el algoritmo el puntero se mueve a
Al igual que el algoritmo de join por mezcla, el algoritmo de join por asociación se puede
utilizar para un Join natural o un equi-join. Este algoritmo utiliza una función de asociación
h para dividir las tuplas de ambas relaciones. La idea fundamental es dividir las tuplas de
Instituto Tecnologico Superior de Apatzingán 59
Bases de Datos Distribuidas
cada relación en conjuntos con el mismo valor de la función de asociación en los atributos
de join.
El número de bloques ocupados por las particiones podría ser ligeramente mayor que.
Debido a que los bloques no están completamente llenos. El acceso a estos bloques puede
añadir un gasto adicional de 2·max a lo sumo, ya que cada una de las particiones podría
tener un bloque parcialmente ocupado que se tiene que leer y escribir de nuevo.
El algoritmo de join por asociación híbrida realiza otra optimización; es útil cuando el
tamaño de la memoria es relativamente grande paro aún así, no cabe toda la relación s en
memoria. Dado que el algoritmo de join por asociación necesita max +1 bloques de
memoria para dividir ambas relaciones se puede utilizar el resto de la memoria (M – max –
esto es, así no es necesaria leerla ni escribirla nuevamente y se puede construir un índice
asociativo.
Cuando r se divide, las tuplas de tampoco se escriben en disco; en su lugar, según se van
generando, el sistema las utiliza para examinar el índice asociativo en y así generar las
tuplas de salida del join. Después de utilizarlas, estas tuplas se descartan, así que la
Join Complejos
Los join en bucle anidado y en bucle anidado por bloques son útiles siempre, sin embargo,
las otras técnicas de join son más eficientes que estas, pero sólo se pueden utilizar en
condiciones particulares tales como join natural o equi-join. Se pueden implementar join
con condiciones más complejas tales como conjunción o disyunción Dado un join de las
forma se pueden aplicar una o más de las técnicas de join descritas anteriormente en cada
condición individual, el resultado total consiste en las tuplas del resultado intermedio que
Un outer join es una extensión del operador join que se utiliza a menudo para trabajar con
Por ejemplo:
Suponiendo que se desea generar una lista con todos los choferes y los autos que
manejan (si manejan alguno) entonces se debe cruzar la relación Chofer con la relación
Móvil. Si se efectúa un join corriente se perderán todas aquellas tuplas que pertenecen a
los choferes, en cambio con un outer join se pueden desplegar las tuplas resultado
El outer join tiene tres formas distintas: por la izquierda, por la derecha y completo. El join
por la izquierda ( ) toma todas las tuplas de la relación de la izquierda que no coincidan
con ninguna tupla de la relación de la derecha, las rellena con valores nulos en los demás
Para el caso de un outer join completo se puede calcular mediante extensiones de los
consulta sobre una base de datos distribuida en una especificación de alto nivel a una
datos locales.
Los diferentes factores pueden tener pesos diferentes dependiendo del ambiente
Por ejemplo:
En las redes de área amplia (WAN), normalmente el costo de comunicación domina dado
que hay una velocidad de comunicación relativamente baja, los canales están saturados y
Así, los algoritmos diseñados para trabajar en una WAN, por lo general, ignoran los costos
dominante, así que se consideran los tres factores con pesos variables.
Dada una consulta algebraica sobre fragmentos, el objetivo de esta capa es hallar una
La estrategia de ejecución para una consulta distribuida puede ser descrita con los
operadores del álgebra relacional y con primitivas de comunicación para transferir datos
entre nodos.
El trabajo de la última capa se efectúa en todos los nodos con fragmentos involucrados en
optimizada usando el esquema local del nodo. Hasta este momento, se eligen los
algoritmos para realizar las operaciones relacionales. La optimización local utiliza los
Como realizar triggers.- La mayor parte de las aplicaciones desarrolladas para administrar
una base de datos desde una computadora personal antiguas aplicaciones de las bases de
datos son los responsables de llevarle el control de las reglas de los negocios.
triggers, o bien por medio del enter prise manager en cualquiera de los dos casos es
triggers.
Ejemplo de la Sintaxis:
As comandos
Donde:
For.- Debe de estar seguido por el tipo de comando o comandos que activan el triggers.
As.- Aquí es donde realmente donde indica el cuerpo del triggers con los comandos que
se van a ejecuta.
Como modificar un trigger: Una vez realizado el triggers puede ser modificado, y no solo
eso si no que además puede modificarse directamente con el comando alter triggers.
Como eliminar triggers.- Para eliminar un trigger podemos utilizar el comando drop
Este comando permite eliminar el trigger de la base de datos y también retua los
privilegios concedidos a otros usuarios. Si se elimina la tabla que contiene un trigger, por
datos distribuidas por medio de ella es posible distribuir en la organización de una base de
La base de datos distribuida puede sincronizarse, de manera que siempre tengan la misma
información.
Por ejemplo:
modelo publish and susenbe. Este modelo esta compuesto por editaros, distribuciones,
Este modelo permite a la re indicación de base de datos mediante el uso de ole bd.
Tipos de replicación
Snaphsopt transaccional y marge: Este tipo de replicación toma una fotografía de las
tablas de la base de datos y esta es replicado a sus suscriptores, quienes reciben una copia
Replicación transaccional
filtración de los datos que van a publicarse. Este tipo de replicación utiliza un archivo de
log para almacenar las modificaciones hechas en un artículo, por ejemplo una tabla desde
a sus suscriptores.
Replicación nerge
pueden hacerse en el Publisher o bien en las copias mantenidas por los suscriptores.
viceversa.
4.1 Transacciones
Es relativamente simple, aun que su manejo es mas complicado sobre todo cuando
una base de datos distribuida delimita el proceso y la transacción así, como la velocidad de
organización a pesar de ser tan sencilla la descripción de una transacción, la historia revela
que el manejo de estas existe una gran distancia entre lo ordinario y lo explicito.
Antes de dar significado simple a lo que es una transacción debemos tener en cuenta que
estas son básicas en una base de datos distribuida; dicho de otras palabras mediante estas
consistencia de los datos se necesita que el sistema de base de datos tenga las
Atomicidad.- Asegura que todos los efectos de la transacción en la B.O. o bien ninguno de
ellos.
unas de otras, de tal manera que cada una tiene la intención de que ninguna se ejecuta
concurrentemente.
Durabilidad.- Una vez que una transacción se ha comprometido las actualizaciones hechas
Por ejemplo:
Begin_transaction Reservación
End
transacciones, están incluidas dentro de otras de un nivel superior que se les conoce como
subtransacciones.
Por ejemplo:
Begin_transaction Reservación
Begin_transaction Vuelo
End. (Vuelo)
Begin_transaction Hotel
Instituto Tecnologico Superior de Apatzingán 72
Bases de Datos Distribuidas
End
End.
Una transacción anidada da otra transacción conserva las mismas propiedades que la de
sus padres, esto implica, que puede contener así mismo transacciones dentro de ella.
Existen restricciones obvias en una transacción anidada: debe empezar después que su
padre y debe terminar antes que él. Más aún, el commit de una subtransacción es
sistema (por ejemplo una base de datos) y en donde se define un punto de inicio (Begin
Dentro de este proceso en bloque los demás usuarios no pueden modificar nada hasta
que no se presente un estado estable de los datos, esto ocasiona inconsistencia temporal
sistema.
Atomicidad de fallas.- Consiste en efectuar todas las transacciones, pero en caso de falla
no se realiza ninguna.
Aborto de transacciones propio para cada transacción.- Es la capacidad que se tiene para
otras, estas transacciones están incluidas dentro de otra de un nivel superior y se les
La transacción de nivel superior puede producir hijos (Subtransacciones) que hagan más
deben ser proporcionadas por el sistema operativo, por el compilador del lenguaje o por
Procesamiento de transacciones.
transacción, estas pueden ser planas (simples) o anidadas. Un aspecto muy importante en
o recursos; para ese control también se utilizan protocolos que proporcionan confiabilidad
Atomicidad.
uso hacia el recurso que se esta manipulando, ese control de concurrencia tiene 2
objetivos:
manejan 2 modos:
Consiste en realizar copias de los bloques que serán utilizados dentro de una transacción
de manera que se trabaje con estas copias para realizar todas las modificaciones
necesarias. Todo el espacio de trabajo con la información que será utilizada es contenido
dentro de estas copias denominado espacio de trabajo privado. Los demás usuarios
trabajarán con la copia original de los bloques pero no podrán obtener segunda copia de
los mismos.
Este método consiste en realizar una lista con todas las transacciones que van siendo
ejecutadas hacia un bloque o espacio de trabajo que sea estable, a esta lista se le conoce
Las transacciones serán actualizadas con la información una vez que se ha determinado el
fin de la transacción.
Por ejemplo:
Begin_transaction Reservación
End
transacciones, están incluidas dentro de otras de un nivel superior que se les conoce como
subtransacciones.
Por ejemplo:
Begin_transaction Reservación
Begin_transaction Vuelo
End. (Vuelo)
Begin_transaction Hotel
End
Instituto Tecnologico Superior de Apatzingán 82
Bases de Datos Distribuidas
End.
Una transacción anidada da otra transacción conserva las mismas propiedades que la de
sus padres, esto implica, que puede contener así mismo transacciones dentro de ella.
Existen restricciones obvias en una transacción anidada: debe empezar después que su
padre y debe terminar antes que él. Más aún, el commit de una subtransacción es
sistema (por ejemplo una base de datos) y en donde se define un punto de inicio (Begin
Dentro de este proceso en bloque los demás usuarios no pueden modificar nada hasta
que no se presente un estado estable de los datos, esto ocasiona inconsistencia temporal
Atomicidad de fallas.- Consiste en efectuar todas las transacciones, pero en caso de falla
no se realiza ninguna.
Aborto de transacciones propio para cada transacción.- Es la capacidad que se tiene para
otras, estas transacciones están incluidas dentro de otra de un nivel superior y se les
La transacción de nivel superior puede producir hijos (Subtransacciones) que hagan más
deben ser proporcionadas por el sistema operativo, por el compilador del lenguaje o por
Procesamiento de transacciones.
transacción, estas pueden ser planas (simples) o anidadas. Un aspecto muy importante en
o recursos; para ese control también se utilizan protocolos que proporcionan confiabilidad
Atomicidad.
uso hacia el recurso que se esta manipulando, ese control de concurrencia tiene 2
objetivos:
manejan 2 modos:
Consiste en realizar copias de los bloques que serán utilizados dentro de una transacción
de manera que se trabaje con estas copias para realizar todas las modificaciones
necesarias. Todo el espacio de trabajo con la información que será utilizada es contenido
dentro de estas copias denominado espacio de trabajo privado. Los demás usuarios
trabajarán con la copia original de los bloques pero no podrán obtener segunda copia de
los mismos.
Este método consiste en realizar una lista con todas las transacciones que van siendo
ejecutadas hacia un bloque o espacio de trabajo que sea estable, a esta lista se le conoce
Las transacciones serán actualizadas con la información una vez que se ha determinado el
fin de la transacción.
lograr este objetivo es ejecutar cada transacción sola, una después de otra.
Sin embargo, esto puede afectar grandemente el desempeño de un DDBMS dado que el
El control de las transacciones es una base de datos brindado un suficiente desempeño del
sistema de bases de datos puesto que permite controlar la ejecución de transacciones que
control de concurrencia permite a los usuarios accesar a la base de datos en una forma
multi programada mientras se preserva la ilusión de que cada usuario este utilizando solo
multiples sometidos por usuarios diferentes no interfieren unos con otros de forma que se
Teoría de la serializad
Comimit commit
Una candelizacion de las acciones de las tres transacciones de las tres transacciones
H1 = { W2 (x), R1(x), R3(x), W1(x), C1, W2(y), R3(y), R2(z), C2, R3(z), C3 }
En bases de datos distribuidos es necesario considerar dos tipos de historia para poder
Dos operaciones en conflicto deben estar en el mismo orden relativo en todas las
clases:
El punto de vista pesimista que considera que muchas transacciones tienen conflictos con
otras, o el punto de vista optimista que supone que no se presentan muchos conflictos
entre transacciones.
distribuidos con algunas modificaciones. Estas modificaciones giran en torno del gestor de
bloques.
Existen diversos enfoques para complementar el gestor de bloqueos, cada uno de ellos
realizan sobre el. Cada tarnsaccion solicita a esta localidad los bloqueos que necesita y
luego, en caso de lectura. La misma se realiza sobre cualquier copia, si es una escritura se
Esta solución tiene por ventaja una implementación muy sencilla le exige dos mensajes
para tratar las solicitudes de bloqueo y una para tratar la de desbloqueo y un tratamiento
muy sencillo para desbloqueo (dado que todas las solicitudes de bloque y desbloqueo se
Una estampa de tiempo es un identificador simple que sirve para identificar cada
Otra propiedad de las estampas de tiempo es la menoticidad, esto es, dos estampas de
monofónicamente crecientes.
transacciones que están preparadas para terminar pero que aun no lo hicieron.
OPT comparte las mismas suposiciones que por este, las transacciones tendieran a
solicite datos que han sido modificados por otra transacción que se encuentra en estado
mecanismos, no con los datos mas aun así con las estampas de tiempo no se asignan al
inicio de una transacción sino justamente al inicio de su fase de validación. Esto se debe a
Algoritmos optimistas
Al final de la ejecución existe una fase de validación que comprueba que cualquiera
Grafo de esperas.
Grafo de reservas.
Grafo de esperas.- Es un grafo en el cual los nodos son las transacciones y la relación de
espera entrenada se define como sigue: Una transacción y relación de espera a otra
Grafo de reservas.- Grafo con dos tipos de nodos, los de las transacciones y los
correspondientes a gránulos.
Un nodo une un granulo G1 a una transacción T10 si T9 tiene bloqueado el granulo G1.
Una condición necesaria para que haya un interbloqueo es que Q1 exista con ciclo en el
grafo de reservas.
terminales.
Instituto Tecnologico Superior de Apatzingán 100
Bases de Datos Distribuidas
marcando los nodos por lo que pasa. Si pasa dos veces por el mismo nodo a
detectado un ciclo.
distintas fallas que pueden ocurrir en un BMS y como es posible restaurar el sistema
tiene la cualidad de ser anotómica a pesar de que puede estar compuesto de varias
“comprometerse” hacer permanentes los cambios que la transacción hizo sobre la base de
4.3 Confiabilidad
Un sistema de manejo de base de datos confiables aquel que puede continuar procesando
las solicitudes de usuario aun cuando el sistema sobre el que opera no es confiable en
otras palabras, aun cuando los componentes de un sistema distribuido fallen un DDMBS
confiable debe seguir ejecutándose las solicitudes de usuario sin violar la consistencia de
la base de datos.
La confiabilidad se puede ver como una medida con la cual un sistema conforma su
especificación.
La operación redo utiliza la información del registro de la base de datos y realiza de nuevo
las acciones que pueden haber sido realizadas antes de la falla, la operación redo genera
nueva imagen.
Por otra parte, es posible que el administrador del buffer haya realizado la escritura en la
base de datos volátil correspondiente debe de incluir datos suficientes para permitir
Cuando ocurre una falta en el sistema es necesario consultar la bitácora para determinar
cuales son las transacciones que necesitan para volver hacerse cuando no necesiten
hacerse.
Estos puntos de verificación nos ayudan para reducir el gasto de tiempo consultando la
Si el sistema se llega a caer se realiza la bitácora buscando del final al inicio el primer
registro check pont ya encontrado se procesan los registros que se encuentran después
mejorada.
El 2pc es conocido también como el protocolo “que no resume nada” para que trata todas
las transacciones de la misma forma sin importar si las mismas cometen o abortan.
Replicación nerge
pueden hacerse en el Publisher o bien en las copias mantenidas por los suscriptores.
viceversa.
Optimización de consultas
resultado.
Optimización global.- Medios físicos y lógicos que permiten realizar la consulta, la red,
PHP.- Permite realizar páginas dinámicas desde la perspectiva del servidor, y después del
ASP es uno de los más ampliamente utilizados, debido a su versatibilidad y gran utilidad.
Manejo de transacciones
transacción, así como la velocidad de los datos es decir, la velocidad en base al número de