miércoles, 26 de mayo de 2010

UNIDAD IV OTRAS TENDENCIAS



4.1Bases de Datos Activas.

Un sistema de Base de datos activas es un sistema de gestión de base de datos (SGBD) que contiene un subsistema que permite la definición y la gestión de reglas de producción (reglas activas)

El modelo evento–condición–acció
Las reglas siguen el modelo ECA:

Cada regla reacciona ante un determinado evento, evalúa una condición y, si esta es cierta, ejecuta un acción. La ejecución de las reglas tiene lugar bajo el control de un subsistema autónomo, denominado motor de reglas, que se encarga de detectar los eventos que van sucediendo y de planificar las reglas para que se ejecuten.

En el modelo ECA una regla tiene tres componentes
El Evento: Este pueden ser operaciones de consulta o actualización que se aplican explícitamente sobre la base de datos.


La Condición: determina si la acción de la regla se debe ejecutar. Una vez ocurre el evento disparador, se puede evaluar una condición (es opcional). Si no se especifica condición, la acción se ejecutara cuando suceda el evento


La Acción: puede ser una transacción sobre la base de datos o un programa externo que se ejecutará automáticamente.


Ejemplo:




SGBD ACTIVO:
Cuando se producen ciertas condiciones ejecuta de forma automática ciertas acciones.
Debe ser capaz de monitorizar y reaccionar ante eventos de manera oportuna y eficiente.

SGBD DEDUCTIVO:
Capaz de deducir hechos adicionales a partir de la base de datos extensional aplicando axiomas deductivos y reglas de inferencia.

VENTAJAS DE LAS BD ACTIVAS:

**Mayor productividad
**Mejor mantenimiento
**Reutilización de código
**Reducción del tráfico de mensajes
**Posibilidad de optimización semántica
**Facilitar el acceso a la BD a usuarios finales

4.2 Bases de datos Deductivas

Es sistema de bases de datos que tenga la capacidad de definir reglas con las cuales deducir o inferir información adicional a partir de los hechos almacenados en las bases de datos. de

Un SGBD deductivo es un Sistema que permite derivar nuevas informaciones a partir de las introducidas explícitamente en la Base por el usuario.
Esta función deductiva se realiza mediante la adecuada explotación de ciertos conocimientos generales relativos a las informaciones de la Base.

**Una Base de Datos Deductiva utiliza dos tipos de especificaciones:
Los hechos: se especifican de manera similar a como se especifican las relaciones, excepto que no es necesario incluir los nombres de los atributos.

**Las reglas se parecen un poco a las vistas relacionales. Especifican relaciones virtuales que no están almacenadas realmente, pero que se pueden formar a partir de los hechos aplicando mecanismos de inferencia basados en las especificaciones de las reglas.

Características:

*Una Base de Datos Deductiva debe contar al menos con las siguientes características:

*Tener la capacidad de expresar consultas por medio de reglas lógicas.

*Permitir consultas recursivas y algoritmos eficientes para su evaluación.

*Contar con negaciones estratificadas.

*Soportar objetos y conjuntos complejos.

*Contar con métodos de optimización que garanticen la traducción de especificaciones dentro de planes eficientes de acceso.

*Como característica fundamental de una Base de Datos Deductiva es la posibilidad de inferir información a partir de los datos almacenados, es imperativo modelar la base de datos como un conjunto de fórmulas lógicas, las cuales permiten inferir otras fórmulas nuevas.

4.3 Sistemas de gestión de bases de datos multimedia
La heterogeneidad de los tipos de información que son necesarios en la actualidad son unas las razones que ha favorecido, por parte de la industria y los usuarios, el desarrollo de sistemas de gestión de bases de datos multimedia, que han sido llamados también "gestores de información hipermedia"



Las aplicaciones SGBD tradicionales ofrecían limitaciones en aspectos como el acceso complejo a datos, la transferencia de datos con otros sistemas, o la inexistencia de adecuados interfaces de usuario.

Como respuesta, se tiende a diseñar e implementar nuevos SGBD que sean capaces de utilizar "inteligentemente" los datos disponibles, e integrar las viejas y las antiguas aplicaciones de forma no traumática.

Una base de información hipermedia tiene varios componentes:

1. Base de presentación.
Son los parámetros a aplicar para mostrar la información al usuario.

2. Base de estructura.
Visión lógica del hiperdocumento, según un modelo.

3. Base de contenido.
Es el conjunto de documentos que se integran en el hiperdocumento.

4. Base de utilización.
Es la información sobre hábitos y comportamiento de cada usuario.

La concepción de una base de datos multimedia, en su modelo conceptual debe cumplir dos fases:
1. Cognición.
2. Modelización.

4.4 Bases de Datos Móviles
Las bases de datos móviles nacen debido al auge que tienen actualmente las redes inalámbricas y las comunicaciones vía satélite.
Permite el poder acceder a datos desde prácticamente cualquier sitio.
Los usuarios pueden acceder a este tipo de bases de datos móviles desde cualquier punto fuera de la empresa.

Una base de datos es el conjunto de datos o información de contenido similar almacenados de forma ordenada para su posterior uso.

Y una base de datos móviles es una base de datos portable y físicamente independiente del servidor corporativo que nos la suministra, y que permite comunicarnos con ella desde cualquier lugar remoto compartiendo su información.

Hay diferentes tipos de bases de datos móviles:

*Las Bases de datos móviles de las diferentes empresas o bases de datos corporativas móviles.

*Las Bases de datos móviles que se crean a través de los teléfonos móviles o celulares.

*Las Bases de datos móviles que son consecuencia de las comunicaciones inalámbricas.

Con el advenimiento de la era Internet y la globalización económica cada vez son más las empresas que experimentan la necesidad de compartir recursos geográficamente muy distantes unos de otros.

De estos recursos, la información almacenada en bases de datos empresariales ocupa un lugar esencial.

La red Internet ofrece la infraestructura adecuada para conectar estos recursos a través de una amalgama de máquinas, sistemas operativos y redes de ordenadores de diferentes tipos.

Por qué usar agentes móviles?
La tecnología de agentes móviles soluciona (o pretende solucionar) diversos problemas en diversos frentes. Por un lado, proporciona una solución al derroche de ancho de banda que se produce en la red en una arquitectura cliente/servidor.

jueves, 20 de mayo de 2010

UNIDADIII BASE DE DATOS EXTENDIDAS

3.1 PROGRAMAS PARA LA ADMINISTRACION REMOTA

¿Qué es la administración remota?

En informática, se considera Administración Remota a la funcionalidad de algunos programas que permiten realizar ciertos tipos de acciones desde un equipo local y que las mismas se ejecuten en otro equipo remoto.

Programas de Administración Remota

**AnalogX TSDropCopy: Es una herramienta simple, pero extremadamente útil para todos aquellos administradores de servidores que acceden a los mismos mediante los servicios de terminal remota de Windows 2000. Programa Libre.

**EMCO Remote Desktop: Es una herramienta de administración que permite conectarse a un PC remoto e interactuar con el mismo. Programa de pago.

**epAssist Personal Assistant v2.01: Permite chequeando el e-mail de tu oficina en la computadora de tu casa, o chequear el e-mail de tu casa desde la casa de tus amigos, o pidiéndole a tu máquina que te envíe archivos específicos. Ahora es un programa de pago.

**Ideal Administration 4.40: Ideal Administration ofrece una estación de administración centralizada para los dominios basados en Windows NT/2000, en donde el trabajo como administrador será mucho más sencillo.

**Mobile Administrator 1.0.25: Mobile Administrator permite tener control de tu ordenador desde cualquier lugar usando dispositivos portatiles tales como Palm Pilots, PC basados en Windows CE, Teléfonos Celulares y cualquier dispositivo WAP disponible conectado a Internet. Programa de pago.

**PC Remote Control 4.0.0.180: PC Remote Control es una pequeña aplicación que permite controlar un PC a través de diferentes procedencias. Programa de pago.

**Remote Administrator 2.1: Remote Administrator permite manejar vía Internet cualquier ordenador como si se lo tuviera al lado. Se pueden ejecutar programas, transferir archivos y hasta reiniciar o apagar la máquina remota.

**Remote Shutdown 1.0: Remote Shutdown te brinda la posibilidad de poder reiniciar cualquier sistema NT/2000/XP remotamente si tienes derechos de administrador de red.

3.2ESPIONAJE DE TECLADO
Conocido también como Keylog.
Es la Acción de registrar las pulsaciones que realice una persona en el teclado de una PC.
Suele usarse como malware (software malicioso) del tipo daemon, permitiendo que otros usuarios tengan acceso a contraseñas importantes, como los números de una tarjeta de crédito, u otro tipo de información privada que se quiera obtener.

Es un tipo de software que se encarga de registrar las pulsaciones que se realizan en el teclado, para memorizarlas en un fichero y/o enviarlas a través de internet.

KeyLogger con Hardware
Son dispositivos disponibles en el mercado que vienen en tres tipos:
Adaptadores en línea que se intercalan en la conexión del teclado, tienen la ventaja de poder ser instalados inmediatamente.

Sin embargo, mientras que pueden ser eventualmente inadvertidos se detectan fácilmente con una revisión visual detallada.

**Dispositivos que se pueden instalar dentro de los teclados estándares,

**requiere de habilidad para soldar y de tener acceso al teclado que se modificará.

**No son detectables a menos que se abra el cuerpo del teclado.
Teclados reales del reemplazo que contienen el KeyLogger ya integrado.

Son virtualmente imperceptibles, a menos que se les busque específicamente.

KeyLogger con software
Basado en núcleo: Este método es el más difícil de escribir, y combatir. Tales keyloggers residen en el nivel del núcleo y son así prácticamente invisibles.

Enganchados: Estos keyloggers registran las pulsaciones de las teclas del teclado con las funciones proporcionadas por el sistema operativo.

Métodos creativos: Aquí el programador utiliza funciones como GetAsyncKeyState, GetForegroundWindow, etc.

3.3DETECCION DE CONTRASEÑAS

CRACKER:
Es cualquier persona que viola la seguridad de un sistema informático de forma similar a como lo haría un hacker, sólo que a diferencia de este último, el cracker realiza la intrusión con fines de beneficio personal o para hacer daño.

El cracking es la modificación del software con la intención de eliminar los métodos de protección de los cuales este disponga:

protección de copias, versiones de prueba, números de serie, claves de hardware (contraseñas), verificación de fechas, verificación de CD o publicidad y Hardware.

En ocasiones el cracking es la única manera de realizar cambios sobre software para el que su fabricante no presta soporte, especialmente

cuando lo que se quiere es, o corregir defectos, o exportar datos a nuevas aplicaciones, en estos casos (sólo en estos casos) en la mayoría de legislaciones no se considera el cracking como actividad ilegal.

El password cracking es un proceso informático que consiste en descifrar la contraseña de determinadas aplicaciones elegidas por el usuario.

Se busca codificar los códigos de cifrado en todos los ámbitos de la informática. Se trata del rompimiento o desciframiento de claves (passwords).


3.4 CONEXION AUTOMATICA A SITIOS PREPAGADOS


Las opciones extendidas con conexión automática a sitios pagados incluyen las siguientes opciones:

1. Riskware.avc: Esta base de datos detecta malware que se inicia remotamente y que así controla el PC de la victima. Por ejemplo:

* programas para administración remota
* espionaje de teclado
* detección de contraseñas
* conexión automática a sitios pagados

Los administradores de sistema debieran recordar que esta base de datos puede generar advertencias del software de seguridad preexistente.

por ejemplo un software que provee control remoto y no está teniendo su propio instalador ni sus iconos.

2. Pornware.avc: Esta base de datos contiene textos que identifican varios sitios pornográficos:

* programas que se auto conectan a sitios pornográficos
* programas que descargan automáticamente archivos con material explicito

3. Adware.avc: Esta base de datos identifica varios tipos de ads y programas relacionados. Precaución! Recomendamos que tenga la máxima precaución en la remoción de estos programas, debido a que al ejecutar estos procesos se puede dañar el archivo al cual estaba adjunto.

Como incluir las bases de datos extendidas en las descargas automáticas
Para incluir las bases de datos extendidas en la opción de descargas automáticas, cambie todos los terminos de links de "updates" a "update_ext".

Por ejemplo: http://downloads1.kaspersky-labs.com/updates
Cambia a: http://downloads1.kaspersky-labs.com/updates_ext






jueves, 18 de marzo de 2010

UNIDADII Base de datos para la toma de decisiones


Base de datos para la toma de decisiones



Para la toma de decisiones es importante contar con la mayor cantidad de información relevante y oportuna. Al respecto, hay dos tipos de información: la estructurada que encontramos en las bases de datos relacionales tradicionales y la no-estructurada.
La información estructurada es la que estamos acostumbrados a administrar y a procesar para el soporte a la toma de decisiones, lo cual representa una gran desventaja para una empresa, puesto que perdemos de vista información muy valiosa que se encuentra no-estructurada, fuera de las bases de datos.
La información no-estructurada la encontramos en fuentes tales como documentos, el web o las suscripciones a servicios de información y en formatos muy diversos como texto, videos, audio o imágenes.
Desafortunadamente lo más sencillo y tradicional para los administradores de información, es su tratamiento para estructurarla en una base de datos, con lo cual se pierde el contexto de los datos en un documento, por ejemplo.

2.1 Almacenes de Datos (Data Warehouse)

Un Almacén de Datos (o Data Warehouse) es una gran colección de datos que recoge información de múltiples sistemas fuentes u operacionales dispersos, y cuya actividad se centra en la Toma de Decisiones -es decir, en el análisis de la información- en vez de en su captura. Una vez reunidos los datos de los sistemas fuentes se guardan durante mucho tiempo, lo que permite el acceso a datos históricos; así los almacenes de datos proporcionan al usuario una interfaz consolidada única para los datos, lo que hace más fácil escribir las consultas para la toma de decisiones.


2.1.1 Características del Almacén de Datos

• Organizado en torno a temas. La información se clasifica en base a los aspectos que son de interés para la empresa.
• Integrado. Es el aspecto más importante. La integración de datos consiste en convenciones de nombres, codificaciones consistentes, medida uniforme de variables, etc.
• Dependiente del tiempo. Esta dependencia aparece de tres formas:
o La información representa los datos sobre un horizonte largo de tiempo.
o Cada estructura clave contiene (implícita o explícitamente) un elemento de tiempo (día, semana, mes, etc.).
o La información, una vez registrada correctamente, no puede ser actualizada.
• No volátil. El Almacén de Datos sólo permite cargar nuevos datos y acceder a los ya almacenados, pero no permite ni borrar ni modificar los datos.

2.1.2 Arquitectura Data Warehouse


La estructura básica de la arquitectura Data Warehouse incluye:

1. Datos operacionales. Origen de datos para el componente de almacenamiento físico del Almacén de Datos.
2. Extracción de datos. Selección sistemática de datos operacionales usados para formar parte del Almacén de Datos.
3. Transformación de datos. Procesos para sumarizar y realizar cambios en los datos operacionales.
4. Carga de datos. Inserción de datos en el Almacén.
5. Almacén. Almacenamiento físico de datos de al arquitectura Data Warehouse.
6. Herramienta de acceso. Herramientas que proveen acceso a los datos.


2.1.3 Diseño


Para construir un Data Warehouse se necesitan herramientas para ayudar a la migración y a la transformación de los datos hacia el almacén. Una vez construido, se requieren medios para manejar grandes volúmenes de información. Se diseña su arquitectura dependiendo de la estructura interna de los datos del almacén y especialmente del tipo de consultas a realizar. Con este criterio los datos deben ser repartidos entre numerosos data marts. Para abordar un proyecto de data warehouse es necesario hacer un estudio de algunos temas generales de la organización o empresa, los cuales se describen a continuación:

  • Situación actual de partida.- Cualquier solución propuesta de data warehouse debe estar muy orientada por las necesidades del negocio y debe ser compatible con la arquitectura técnica existente y planeada de la compañía.

  • Tipo y características del negocio.- Es indispensable tener el conocimiento exacto sobre el tipo de negocios de la organización y el soporte que representa la información dentro de todo su proceso de toma de decisiones.

  • Entorno técnico.- Se debe incluir tanto el aspecto del hardware (mainframes, servidores, redes,...) así como aplicaciones y herramientas. Se dará énfasis a los Sistemas de soporte a decisiones (DSS), si existen en la actualidad, cómo operan, etc.

  • Expectativas de los usuarios.- Un proyecto de data warehouse no es únicamente un proyecto tecnológico, es una forma de vida de las organizaciones y como tal, tiene que contar con el apoyo de todos los usuarios y su convencimiento sobre su bondad.

  • Etapas de desarrollo.- Con el conocimiento previo, ya se entra en el desarrollo de un modelo conceptual para la construcción del data warehouse.

  • Prototipo.- Un prototipo es un esfuerzo designado a simular tanto como sea posible el producto final que será entregado a los usuarios.

  • Piloto.- El piloto de un data warehouse es el primero, o cada uno de los primeros resultados generados de forma iterativa que se harán para llegar a la construcción del producto final deseado.

  • Prueba del concepto tecnológico.- Es un paso opcional que se puede necesitar para determinar si la arquitectura especificada del data warehouse funcionará finalmente como se espera.

Estructura lógica del Almacén de Datos
La estructura lógica de un Almacén de Datos está compuesta por los siguientes niveles:

• Metadatos. Describen la estructura de los datos contenidos en el almacén.
o Están en una dimensión distinta al resto de niveles.
• Datos detallados actuales. Obtenidos directamente del procesado de los datos.
o Forman el nivel más bajo de detalle.
o Ocupan mucho espacio.
o Se almacenan en disco, para facilitar el acceso.
• Datos detallados históricos. Igual que los anteriores, pero con datos correspondientes al pasado. o Se suelen almacenar en un medio externo, ya que su acceso es poco frecuente.
• Datos ligeramente resumidos. Primer nivel de agregación de los datos detallados actuales.
o Corresponden a consultas habituales.
o Se almacenan en disco.
• Datos muy resumidos. Son el nivel más alto de agregación.
o Corresponden a consultas que se realizan muy a menudo y que se deben obtener muy rápidamente.
o Suelen estar separados del Almacén de datos, formando Supermercados de Datos (Data Marts).
Estructura física del Almacén de Datos
La estructura física puede presentar cualquiera de las siguientes configuraciones:
Arquitectura centralizada. Todo el Almacén de datos se encuentra en un único servidor.

  • Arquitectura distribuida. Los datos del Almacén se reparten entre varios servidores. Asignando cada servidor a uno o varios temas lógicos.

Arquitectura distribuida por niveles. Refleja la estructura lógica del Almacén, asignando los servidores en función del nivel de agregación de los datos que contienen. Un servidor está dedicado para los datos de detalle, otro para los resumidos y otro para los muy resumidos.
Cuando los datos muy resumidos se duplican en varios servidores para agilizar el acceso se habla de Supermercados de datos (Data Marts).
Software Data Warehouse
• Red Brick Warehouse
• Essbase
• Pilot Decission Support Suite
• Microsoft SQL Server

2.2 Minería de datos (Data Mining)

La minería de datos (en inglés, data mining) se define como la extracción no trivial de información implícita, previamente desconocida y potencialmente útil, a partir de datos. En la actual sociedad de la información, donde cada día a día se multiplica la cantidad de datos almacenados casi de forma exponencial, la minería de datos es una herramienta fundamental para analizarlos y explotarlos de forma eficaz para los objetivos de cualquier organización. La minería de datos se define también como el análisis y descubrimiento de conocimiento a partir de datos.
La minería de datos hace uso de todas las técnicas que puedan aportar información útil, desde un sencillo análisis gráfico, pasando por métodos estadísticos más o menos complejos, complementados con métodos y algoritmos del campo de la inteligencia artificial y el aprendizaje automático que resuelven problemas típicos de agrupamiento automático, clasificación, predicción de valores, detección de patrones, asociación de atributos, etc. Es, por tanto, un campo multidisciplinar que cubre numerosas áreas y se aborda desde múltiples puntos de vista, como la estadística, la informática (cálculo automático) o la ingeniería.

2.2.1 Antecedentes


Ya desde los años sesenta los estadísticos manejaban términos como data fishing, data mining o data archaeology con la idea de encontrar correlaciones sin una hipótesis previa en bases de datos con ruido. A principios de los años ochenta, Rakesh Agrawal, Gio Wiederhold, Robert Blum y Gregory Piatetsky-Shapiro, entre otros, empezaron a consolidar los términos de data mining y KDD. A finales de los años ochenta sólo existían un par de empresas dedicadas a esta tecnología; en 2002 existen más de 100 empresas en el mundo que ofrecen alrededor de 300 soluciones.
Las listas de discusión sobre este tema las forman investigadores de más de ochenta países. Esta tecnología ha sido un buen punto de encuentro entre personas pertenecientes al ámbito académico y al de los negocios.

2.2.2 Fases de proyectos de minería de datos


Los pasos a seguir para la realización de un proyecto de minería de datos son siempre los mismos, independientemente de la técnica específica de extracción de conocimiento usada.
El proceso de minería de datos pasa por las siguientes fases
2.2.3 Filtrado de datos

El formato de los datos contenidos en la fuente de datos (base de datos, Data Warehouse...) nunca es el idóneo, y la mayoría de las veces no es posible ni siquiera utilizar ningún algoritmo de minería sobre los datos en bruto.


2.2.4 Selección de Variables.

Aún después de haber sido preprocesados, en la mayoría de los casos se tiene una cantidad ingente de datos. La selección de características reduce el tamaño de los datos eligiendo las variables más influyentes en el problema, sin apenas sacrificar la calidad del modelo de conocimiento obtenido del proceso de minería.

Los métodos para la selección de características son básicamente dos:

• Aquellos basados en la elección de los mejores atributos del problema,
• Y aquellos que buscan variables independientes mediante tests de sensibilidad, algoritmos de distancia o heurísticos.

2.2.5 Extracción de Conocimiento.

Mediante una técnica de minería de datos, se obtiene un modelo de conocimiento, que representa patrones de comportamiento observados en los valores de las variables del problema o relaciones de asociación entre dichas variables.
También pueden usarse varias técnicas a la vez para generar distintos modelos, aunque generalmente cada técnica obliga a un pre procesado diferente de los datos.

2.2.6 Interpretación y Evaluación.

Una vez obtenido el modelo, se debe proceder a su validación, comprobando que las conclusiones que arroja son válidas y suficientemente satisfactorias.
En el caso de haber obtenido varios modelos mediante el uso de distintas técnicas, se deben comparar los modelos en busca de aquel que se ajuste mejor al problema. Si ninguno de los modelos alcanza los resultados esperados, debe alterarse alguno de los pasos anteriores para generar nuevos modelos.

2.3 Minería Web

Una de las extensiones del data mining consiste en aplicar sus técnicas a documentos y servicios del Web, lo que se llama web mining (minería de web) (Kosala y otros, 2000). Todos los que visitan un sitio en Internet dejan huellas digitales (direcciones de IP, navegador, galletas, etc.) que los servidores automáticamente almacenan en una bitácora de accesos (log). Las herramientas de web mining analizan y procesan estos logs para producir información significativa, por ejemplo, cómo es la navegación de un cliente antes de hacer una compra en línea. Debido a que los contenidos de Internet consisten en varios tipos de datos, como texto, imagen, vídeo, metadatos o hiperligas, investigaciones recientes usan el término multimedia data mining (minería de datos multimedia) como una instancia del web mining (Zaiane y otros, 1998) para tratar ese tipo de datos. Los accesos totales por dominio, horarios de accesos más frecuentes y visitas por día, entre otros datos, son registrados por herramientas estadísticas que complementan todo el proceso de análisis del web mining.
Normalmente, el web mining puede clasificarse en tres dominios de extracción de conocimiento de acuerdo con la naturaleza de los datos:

• Web content mining (minería de contenido web). Es el proceso que consiste en la extracción de conocimiento del contenido de documentos o sus descripciones. La localización de patrones en el texto de los documentos, el descubrimiento del recurso basado en conceptos de indexación o la tecnología basada en agentes también pueden formar parte de esta categoría.
• Web structure mining (minería de estructura web). Es el proceso de inferir conocimiento de la organización del WWW y la estructura de sus ligas.
• Web usage mining (minería de uso web). Es el proceso de extracción de modelos interesantes usando los logs de los accesos al web.

Algunos de los resultados que pueden obtenerse tras la aplicación de los diferentes métodos de web mining son:
• El ochenta y cinco por ciento de los clientes que acceden a la página home de productos y a la de noticias de la misma página acceden también a la página de historia. Esto podría indicar que existe alguna noticia interesante de la empresa que hace que los clientes se dirijan a historias de suceso. Igualmente, este resultado permitiría detectar la noticia sobresaliente y colocarla quizá en la página principal de la empresa.
• El sesenta por ciento de los clientes que hicieron una compra en línea en la página del producto 1 también compraron en la página del producto 4 después de un mes. Esto indica que se podría recomendar en la página del producto 1 comprar el producto 4 y ahorrarse el costo de envío de este producto.
Los anteriores ejemplos ayudan a formar una pequeña idea de lo que se puede obtener. Sin embargo, en la realidad existen herramientas de mercado muy poderosas con métodos variados y visualizaciones gráficas excelentes.

http://exa.unne.edu.ar/depar/areas/informatica/SistemasOperativos/Mineria_Datos_Vallejos.pdf

miércoles, 24 de febrero de 2010

UNIDAD I BASE DE DATOS DISTRIBUIDAS

1.1 Arquitectura
Por este motivo una base de datos debe presentar los datos de forma que el usuario pueda interpretarlos y modificarlos. Evidentemente esto no lo podemos aplicar a un informático que necesite saber donde se encuentran físicamente los datos para poder tratarlos. Podemos destacar tres niveles principales según la visión y la función que realice el usuario sobre la base de datos:
Nivel Interno: es el nivel más cercano al almacenamiento físico de los datos. Permite escribirlos tal y como están almacenados en el ordenador. En este nivel se diseñan los archivos que contienen la información, la ubicación de los mismos y su organización, es decir se crean los archivos de configuración.
Nivel conceptual: En este nivel se representan los datos que se van a utilizar sin tener en cuenta aspectos como lo que representamos en el nivel interno.
Nivel externo: es el más cercano al usuario. En este nivel se describen los datos o parte de los datos que más interesan a los usuarios.
Estos tres niveles de visión de usuarios los proporcionan los sistemas gestores de base de datos (ya veremos más adelante que significa esto). Una base de datos especifica tiene un único nivel interno y un único nivel conceptual pero puede tener varios niveles externos.





1.1.1 Autonomía

La autonomía local es el grado hasta el cual el diseñador o administrador de una localidad pueden ser independientes del resto del sistema distribuido.

1.1.2 Heterogeneidad



Un DDBMS homogéneo tiene recaudos múltiples de datos; integra recursos múltiples de datos.
Las bases de datos distribuidas homogéneas son similares a las bases de datos centralizadas, pero en vez de almacenar todos los datos en un sitio, los datos se distribuyen en diferentes sitios de una red.
Si nosotros queremos partir de una arquitectura conceptual estándar para los
DDBMS, debemos conocer que partir de la arquitectura de ANSI-SPARC, nosotros podríamos incluir un DBMS local y esquemas locales recordando que estos no tienen que estar explícitamente presentes en ninguna implementación particular.
Para manejar la distribución de otros aspectos, nosotros debemos agregar dos niveles adicionales, a la arquitectura estándar tercer - nivel ANSI-SPARC, los que nombramos fragmentación y localización de schemas.



1.1.3Distribución y esquema global
OBJETOS DISTRIBUIDOS
En los sistemas Cliente/Servidor, un objeto distribuido es aquel que esta gestionado por un servidor y sus clientes invocan sus métodos utilizando un "método de invocación remota". El cliente invoca el método mediante un mensaje al servidor que gestiona el objeto, se ejecuta el método del objeto en el servidor y el resultado se devuelve al cliente en otro mensaje.




1.2Diseño de bases de datos distribuidas


Existen diversas formas de afrontar el problema del diseño de la distribución. Las más usuales se muestran en la figura 3. En el primer caso, caso A, los dos procesos fundamentales, la fragmentación y la asignación, se abordan de forma simultánea. Esta metodología se encuentra en desuso, sustituida por el enfoque en dos fases, caso B: la realización primeramente de la partición para luego asignar los fragmentos generados. El resto de los casos se comentan en la sección referente a los distintos tipos de la fragmentación.


Figura 3. Enfoques para realizar el diseño distributivo



Antes de exponer las alternativas existentes de fragmentación, se desean presentar las ventajas e inconvenientes de esta técnica. Se ha comentado en la introducción la conveniencia de descomponer las relaciones de la base de datos en pequeños fragmentos, pero no se ha justificado el hecho ni se han aportado razones para efectuarlo. Por ello, desde este punto se va a intentar aportar las razones necesarias para llevar a cabo esa descomposición, esa fragmentación.



El principal problema de la fragmentación radica en encontrar la unidad apropiada de distribución. Una relación no es una buena unidad por muchas razones. Primero, las vistas de la aplicación normalmente son subconjuntos de relaciones. Además, la localidad de los accesos de las aplicaciones no está definida sobre relaciones enteras pero sí sobre subconjuntos de las mismas. Por ello, sería normal considerar como unidad de distribución a estos subconjuntos de relaciones.
Segundo, si las aplicaciones tienen vistas definidas sobre una determinada relación (considerándola ahora una unidad de distribución) que reside en varios sitios de la red, se puede optar por dos alternativas. Por un lado, la relación no estará replicada y se almacena en un único sitio, o existe réplica en todos o algunos de los sitios en los cuales reside la aplicación. Las consecuencias de esta estrategia son la generación de un volumen de accesos remotos innecesario. Además, se pueden realizar réplicas innecesarias que causen problemas en la ejecución de las actualizaciones y puede no ser deseable si el espacio de almacenamiento está limitado.
Tercero, la descomposición de una relación en fragmentos, tratados cada uno de ellos como una unidad de distribución, permite el proceso concurrente de las transacciones. También la relación de estas relaciones, normalmente, provocará la ejecución paralela de una consulta al dividirla en una serie de subconsultas que operará sobre los fragmentos.
Pero la fragmentación también acarrea inconvenientes. Si las aplicaciones tienen requisitos tales que prevengan la descomposición de la relación en fragmentos mutuamente exclusivos, estas aplicaciones cuyas vistas estén definidas sobre más de un fragmento pueden sufrir una degradación en el rendimiento. Por tanto, puede ser necesario recuperar los datos de dos fragmentos y llevar a cabo sobre ellos operación de unión y yunto , lo cual es costoso.
Un segundo problema se refiere al control semántico. Como resultado de la fragmentación los atributos implicados en una dependencia se descomponen en diferentes fragmentos los cuales pueden destinarse a sitios diferentes. En este caso, la sencilla tarea de verificar las dependencias puede resultar una tarea de búsqueda de los datos implicados en un gran número de sitios.



1.2.1Diseño top-down: fragmentación.



Dado que una relación se corresponde esencialmente con una tabla y la cuestión consiste en dividirla en fragmentos menores, inmediatamente surgen dos alternativas lógicas para llevar a cabo el proceso: la división horizontal y la división vertical. La división o fragmentación horizontal trabaja sobre las tuplas, dividiendo la relación en subrelaciones que contienen un subconjunto de las tuplas que alberga la primera. La fragmentación vertical, en cambio, se basa en los atributos de la relación para efectuar la división. Estos dos tipos de partición podrían considerarse los fundamentales y básicos. Sin embargo, existen otras alternativas. Fundamentalmente, se habla de fragmentación mixta o híbrida cuando el proceso de partición hace uso de los dos tipos anteriores. La fragmentación mixta puede llevarse a cabo de tres formas diferentes: desarrollando primero la fragmentación vertical y, posteriormente, aplicando la partición horizontal sobre los fragmentos verticales (denominada partición VH), o aplicando primero una división horizontal para luego, sobre los fragmentos generados, desarrollar una fragmentación vertical (llamada partición HV), o bien, de forma directa considerando la semántica de las transacciones. Otro enfoque distinto y relativamente nuevo, consiste en aplicar sobre una relación, de forma simultánea y no secuencial, la fragmentación horizontal y la fragmentación vertical; en este caso, se generara una rejilla y los fragmentos formaran las celdas de esa rejilla, cada celda será exactamente un fragmento vertical y un fragmento horizontal (nótese que en este caso el grado de fragmentación alcanzado es máximo, y no por ello la descomposición resultará más eficiente).
Volviendo a la figura 3, puede observarse como los casos C y D se basan en la mencionada generación de la rejilla, con la diferencia que en el primero de ellos se produce una fusión, una desfragmentación de las celdas, agrupándolas de la manera más adecuada para obtener mayor rendimiento, ya que los fragmentos generados son muy pequeños. En el segundo caso se asignan las celdas a los sitios y luego se realiza una rigurosa optimización de cada sitio. El caso E sería aquel en el que se utiliza la fragmentación VH o la fragmentación HV.
Grado de fragmentación. Cuando se va a fragmentar una base de datos deberíamos sopesar qué grado de fragmentación va a alcanzar, ya que éste será un factor que influirá notablemente en el desarrollo de la ejecución de las consultas. El grado de fragmentación puede variar desde una ausencia de la división, considerando a las relaciones unidades de fragmentación; o bien, fragmentar a un grado en el cada tupla o atributo forme un fragmento. Ante estos dos casos extremos, evidentemente se ha de buscar un compromiso intermedio, el cual debería establecerse sobre las características de las aplicaciones que hacen uso de la base de datos. Dichas características se podrán formalizar en una serie de parámetros. De acuerdo con sus valores, se podrá establecer el grado de fragmentación del banco de datos.



Grado de fragmentación.


Cuando se va a fragmentar una base de datos deberíamos sopesar qué grado de fragmentación va a alcanzar, ya que éste será un factor que influirá notablemente en el desarrollo de la ejecución de las consultas. El grado de fragmentación puede variar desde una ausencia de la división, considerando a las relaciones unidades de fragmentación; o bien, fragmentar a un grado en el cada tupla o atributo forme un fragmento. Ante estos dos casos extremos, evidentemente se ha de buscar un compromiso intermedio, el cual debería establecerse sobre las características de las aplicaciones que hacen uso de la base de datos. Dichas características se podrán formalizar en una serie de parámetros. De acuerdo con sus valores, se podrá establecer el grado de fragmentación del banco de datos.



Reglas de corrección de la fragmentación.


A continuación se enuncian las tres reglas que se han de cumplir durante el proceso de fragmentación, las cuales asegurarán la ausencia de cambios semánticos en la base de datos durante el proceso.

1. Compleción. Si una relación R se descompone en una serie de fragmentos R1, R2, ..., Rn, cada elemento de datos que pueda encontrarse en R deberá poder encontrarse en uno o varios fragmentos Ri. Esta propiedad extremadamente importante asegura que los datos de la relación global se proyectan sobre los fragmentos sin pérdida alguna. Tenga en cuenta que en el caso horizontal el elemento de datos, normalmente, es una tupla, mientras que en el caso vertical es un atributo.


2.Reconstrucción. Si una relación R se descompone en una serie de fragmentos R1, R2, ..., Rn, puede definirse una operador relacional tal que:

El operador alfa será diferente dependiendo de las diferentes formas de fragmentación. La reconstrucción de la relación a partir de sus fragmentos asegura la preservación de las restricciones definidas sobre los datos en forma de dependencias.







3. Disyunción. Si una relación R se descompone horizontalmente en una serie de fragmentos R1, R2, ..., Rn, y un elemento de datos di se encuentra en algún fragmento Rj, entonces no se encuentra en otro fragmento Rk (k= o diferente j). Esta regla asegura que los fragmentos horizontales sean disjuntos. Si una relación R se descompone verticalmente, sus atributos primarios clave normalmente se repiten en todos sus fragmentos.




Alternativas de asignación.



Partiendo del supuesto que el banco de datos se haya fragmentado correctamente, habrá que decidir sobre la manera de asignar los fragmentos a los distintos sitios de la red. Cuando una serie de datos se asignan, éstos pueden replicarse para mantener una copia. Las razones para la réplica giran en torno a la seguridad y a la eficiencia de las consultas de lectura. Si existen muchas reproducciones de un elemento de datos, en caso de fallo en el sistema se podría acceder a esos datos ubicados en sitios distintos. Además, las consultas que acceden a los mismos datos pueden ejecutarse en paralelo, ya que habrá copias en diferentes sitios. Por otra parte, la ejecución de consultas de actualización, de escritura, implicaría la actualización de todas las copias que existan en la red, cuyo proceso puede resultar problemático y complicado. Por tanto, un buen parámetro para afrontar el grado de réplica consistiría en sopesar la cantidad de consultas de lectura que se efectuarán, así como el número de consultas de escritura que se llevarán a cabo. En una red donde las consultas que se procesen sean mayoritariamente de lectura, se podría alcanzar un alto grado de réplica, no así en el caso contrario. Una base de datos fragmentada es aquella donde no existe réplica alguna. Los fragmentos se alojan en sitios donde únicamente existe una copia de cada uno de ellos a lo largo de toda la red. En caso de réplica, podemos considerar una base de datos totalmente replicada, donde existe una copia de todo el banco de datos en cada sitio, o considerar una base de datos parcialmente replicada donde existan copias de los fragmentos ubicados en diferentes sitios. El número de copias de un fragmento será una de las posibles entradas a los algoritmos de asignación, o una variable de decisión cuyo valor lo determine el algoritmo.




Comparación de las alternativas de réplica



Información necesaria.




Un aspecto importante en el diseño de la distribución es la cantidad de factores que contribuyen a un diseño óptimo. La organización lógica de la base de datos, la localización de las aplicaciones, las características de acceso de las aplicaciones a la base de datos y las características del sistema en cada sitio, tienen una decisiva influencia sobre la distribución. La información necesaria para el diseño de la distribución puede dividirse en cuatro categorías: la información del banco de datos, la información de la aplicación, la información sobre la red de ordenadores y la información sobre los ordenadores en sí. Las dos últimas son de carácter cuantitativo y servirán, principalmente, para desarrollar el proceso de asignación. Se entrará en detalle sobre la información empleada cuando se aborden los distintos algoritmos de fragmentación y asignación.



La fragmentación horizontal se realiza sobre las tuplas de la relación. Cada fragmento será un subconjunto de las tuplas de la relación. Existen dos variantes de la fragmentación horizontal: la primaria y la derivada. La fragmentación horizontal primaria de una relación se desarrolla empleando los predicados definidos en esa relación. Por el contrario, la fragmentación horizontal derivada consiste en dividir una relación partiendo de los predicados definidos sobre alguna otra.



Información necesaria para la fragmentación horizontal.




Información sobre la base de datos.



Esta información implica al esquema conceptual global. Es importante señalar cómo las relaciones de la base de datos se conectan con otras. En una conexión de relaciones normalmente se denomina relación propietaria a aquella situada en la cola del enlace, mientras que se llama relación miembro a la ubicada en la cabecera del vínculo. Dicho de otra forma podemos pensar en relaciones de origen cuando nos refiramos a las propietarias y relaciones destino cuando lo hagamos con las miembro. Definiremos dos funciones: propietaria y miembro, las cuales proyectarán un conjunto de enlaces sobre un conjunto de relaciones. Además, dado un enlace, devolverán el miembro y el propietario de la relación, respectivamente. La información cuantitativa necesaria gira en torno a la cardinalidad de cada relación, notada como card(R).




Información sobre la aplicación.



Necesitaremos tanto información cualitativa como cuantitativa. La información cualitativa guiará la fragmentación, mientras que la cuantitativa se necesitará en los modelos de asignación. La principal información de carácter cualitativo son los predicados empleados en las consultas de usuario. Si no fuese posible investigar todas las aplicaciones para determinar estos predicados, al menos se deberían investigar las más importantes. Podemos pensar en la regla "80/20" para guiarnos en nuestro análisis, esta regla dice que el 20% de las consultas existentes acceden al 80% de los datos. Llegados a este punto, sería interesante determinar los predicados simples. Dada una relación R(A1, A2, ..., An), donde Ai es un atributo definido sobre el dominio Di, un predicado simple pj definido sobre R es de la forma


donde teta es un operador relacional y Valor se escoge de entre el dominio de Ai. Usaremos Pri para notar al conjunto de todos los predicados simples definidos sobre una relación Ri. Los miembros de Pri se notan por pij.

1.2.2Diseño bottom-up : integración de bases de datos.

En la actualidad, muchas instituciones se han dado cuenta de la importancia que el Web tiene en el desarrollo de sus potencialidades, ya que con ello pueden lograr una mejor comunicación con personas o instituciones situadas en cualquier lugar del mundo.
Gracias a la conexión con la red mundial Internet, poco a poco, cada individuo o institución va teniendo acceso a mayor cantidad de información de las diversas ramas de la ciencia con distintos formatos de almacenamiento.
La mayor parte de información es presentada de forma estática a través de documentos HTML, lo cual limita el acceso a los distintos tipos de almacenamiento en que ésta pueda encontrarse.


Pero, en la actualidad surge la posibilidad de utilizar aplicaciones que permitan acceder a información de forma dinámica, tal como a bases de datos, con contenidos y formatos muy diversos.
Una de las ventajas de utilizar el Web para este fin, es que no hay restricciones en el sistema operativo que se debe usar, permitiendo la conexión entre si, de las páginas Web desplegadas en un browser del Web que funciona en una plataforma, con servidores de bases de datos alojados en otra plataforma. Además, no hay necesidad de cambiar el formato o estructura de la información dentro de las bases de datos.


1.3 Arquitecturas Cliente/Servidor para SGBD

Esta arquitectura consiste básicamente en un cliente que realiza peticiones a otro programa (el servidor) que le da respuesta. Aunque esta idea se puede aplicar a programas que se ejecutan sobre una sola computadora es más ventajosa en un sistema operativo multiusuario distribuido a través de una red de computadoras.
En esta arquitectura la capacidad de proceso está repartida entre los clientes y los servidores, aunque son más importantes las ventajas de tipo organizativo debidas a la centralización de la gestión de la información y la separación de responsabilidades, lo que facilita y clarifica el diseño del sistema.
1.3.1Filosofía Cliente/Servidor

La arquitectura cliente/servidor genérica tiene dos tipos de nodos en la red: clientes y servidores. Consecuentemente, estas arquitecturas genéricas se refieren a veces como arquitecturas de dos niveles o dos capas.

Algunas redes disponen de tres tipos de nodos:

*Clientes que interactúan con los usuarios finales.
*Servidores de aplicación que procesan los datos para los clientes.
*Servidores de la base de datos que almacenan los datos para los servidores de aplicación
1.3.2Sockets
Los sockets no son más que puntos o mecanismos de comunicación entre procesos que permiten que un proceso hable ( emita o reciba información ) con otro proceso incluso estando estos procesos en distintas máquinas. Esta característica de interconectividad entre máquinas hace que el concepto de socket nos sirva de gran utilidad. Esta interfaz de comunicaciones es una de las distribuciones de Berkeley al sistema UNIX, implementándose las utilidades de interconectividad de este Sistema Operativo ( rlogin, telnet, ftp, ... ) usando sockets.
Un socket es al sistema de comunicación entre ordenadores lo que un buzón o un teléfono es al sistema de comunicación entre personas: un punto de comunicación entre dos agentes ( procesos o personas respectivamente ) por el cual se puede emitir o recibir información. La forma de referenciar un socket por los procesos implicados es mediante un descriptor del mismo tipo que el utilizado para referenciar ficheros. Debido a esta característica, se podrá realizar redirecciones de los archivos de E/S estándar (descriptores 0,1 y 2) a los sockets y así combinar entre ellos aplicaciones de la red. Todo nuevo proceso creado heredará, por tanto, los descriptores de sockets de su padre.
La comunicación entre procesos a través de sockets se basa en la filosofía CLIENTE-SERVIDOR: un proceso en esta comunicación actuará de proceso servidor creando un socket cuyo nombre conocerá el proceso cliente, el cual podrá "hablar" con el proceso servidor a través de la conexión con dicho socket nombrado.
El mecanismo de comunicación vía sockets tiene los siguientes pasos:
1º) El proceso servidor crea un socket con nombre y espera la conexión.
2º) El proceso cliente crea un socket sin nombre.
3º) El proceso cliente realiza una petición de conexión al socket servidor.
4º) El cliente realiza la conexión a través de su socket mientras el proceso servidor mantiene el socket servidor original con nombre.
4.1.- Tipos de sockets.
Define las propiedades de las comunicaciones en las que se ve envuelto un socket, esto es, el tipo de comunicación que se puede dar entre cliente y servidor. Estas pueden ser:
- Fiabilidad de transmisión.
- Mantenimiento del orden de los datos.
- No duplicación de los datos.
- El "Modo Conectado" en la comunicación.
- Envío de mensajes urgentes.

Los tipos disponibles son los siguientes:

Tipo SOCK_DGRAM: sockets para comunicaciones en modo no conectado, con envío de datagramas de tamaño limitado ( tipo telegrama ). En dominios Internet como la que nos ocupa el protocolo del nivel de transporte sobre el que se basa es el UDP.

Tipo SOCK_STREAM: para comunicaciones fiables en modo conectado, de dos vías y con tamaño variable de los mensajes de datos. Por debajo, en dominios Internet, subyace el protocolo TCP.

Tipo SOCK_RAW: permite el acceso a protocolos de más bajo nivel como el IP ( nivel de red )

Tipo SOCK_SEQPACKET: tiene las características del SOCK_STREAM pero además el tamaño de los mensajes es fijo.
1.3.3RPC

El RPC (del inglés Remote Procedure Call, Llamada a Procedimiento Remoto) es un protocolo que permite a un programa de ordenador ejecutar código en otra máquina remota sin tener que preocuparse por las comunicaciones entre ambos. El protocolo es un gran avance sobre los sockets usados hasta el momento. De esta manera el programador no tenía que estar pendiente de las comunicaciones, estando éstas encapsuladas dentro de las RPC.

Las RPC son muy utilizadas dentro del
paradigma cliente-servidor. Siendo el cliente el que inicia el proceso solicitando al servidor que ejecute cierto procedimiento o función y enviando éste de vuelta el resultado de dicha operación al cliente.
Hay distintos tipos de RPC, muchos de ellos estandarizados como pueden ser el RPC de Sun denominado
ONC RPC (RFC 1057), el RPC de OSF denominado DCE/RPC y el Modelo de Objetos de Componentes Distribuidos de Microsoft DCOM, aunque ninguno de estos es compatible entre sí. La mayoría de ellos utilizan un lenguaje de descripción de interfaz (IDL) que define los métodos exportados por el servidor.
Hoy en día se está utilizando el
XML como lenguaje para definir el IDL y el HTTP como protocolo de red, dando lugar a lo que se conoce como servicios web. Ejemplos de éstos pueden ser SOAP o XML-RPC.
1.3.4CORBA

En computación, CORBA (Common Object Request Broker Architecture — arquitectura común de intermediarios en peticiones a objetos), es un estándar que establece una plataforma de desarrollo de sistemas distribuidos facilitando la invocación de métodos remotos bajo un paradigma orientado a objetos.
CORBA fue definido y está controlado por el Object Management Group (OMG) que define las APIs, el protocolo de comunicaciones y los mecanismos necesarios para permitir la interoperabilidad entre diferentes aplicaciones escritas en diferentes lenguajes y ejecutadas en diferentes plataformas, lo que es fundamental en computación distribuida.
En un sentido general, CORBA "envuelve" el código escrito en otro lenguaje, en un paquete que contiene información adicional sobre las capacidades del código que contiene y sobre cómo llamar a sus métodos. Los objetos que resultan, pueden entonces ser invocados desde otro
programa (u objeto CORBA) desde la red. En este sentido CORBA se puede considerar como un formato de documentación legible por la máquina, similar a un archivo de cabeceras, pero con más información.
CORBA utiliza un lenguaje de definición de interfaces (
IDL) para especificar las interfaces con los servicios que los objetos ofrecerán. CORBA puede especificar a partir de este IDL, la interfaz a un lenguaje determinado, describiendo cómo los tipos de dato CORBA deben ser utilizados en las implementaciones del cliente y del servidor. Implementaciones estándar existen para Ada, C, C++, Smalltalk, Java, Python, Perl y Tcl.

Al compilar una interfaz en IDL se genera código para el cliente y el servidor (el implementador del objeto). El código del cliente sirve para poder realizar las llamadas a métodos remotos. Es el conocido como stub, el cual incluye un proxy (representante) del objeto remoto en el lado del cliente. El código generado para el servidor consiste en unos skeletons (esqueletos) que el desarrollador tiene que rellenar para implementar los métodos del objeto.
CORBA es más que una especificación multiplataforma, también define servicios habitualmente necesarios como seguridad y transacciones. Y así este no es un sistema operativo en si, en realidad es un
middleware.
1.4 Optimización de preguntas y transacciones

Una transacción en un Sistema de Gestión de Bases de Datos (SGBD), es un conjunto de órdenes que se ejecutan formando una unidad de trabajo, es decir, en forma indivisible o atómica.
Un
SGBD se dice transaccional, si es capaz de mantener la integridad de los datos, haciendo que estas transacciones no puedan finalizar en un estado intermedio. Cuando por alguna causa el sistema debe cancelar la transacción, empieza a deshacer las órdenes ejecutadas hasta dejar la base de datos en su estado inicial (llamado punto de integridad), como si la orden de la transacción nunca se hubiese realizado.
Para esto, el lenguaje de consulta de datos
SQL (Structured Query Language), provee los mecanismos para especificar que un conjunto de acciones deben constituir una transacción.
BEGIN TRAN: Especifica que va a empezar una transacción.
COMMIT TRAN: Le indica al motor que puede considerar la transacción completada con éxito.
ROLLBACK TRAN: Indica que se ha alcanzado un fallo y que debe restablecer la base al punto de integridad.
En un sistema ideal, las transacciones deberían garantizar todas las propiedades
ACID; en la práctica, a veces alguna de estas propiedades se simplifica o debilita con vistas a obtener un mejor rendimiento.


Protocolo de compromiso en dos fases. (Twophasecommitprotocol)


1. El coordinador envía una solicitud de voto (vote request) a los nodos participantes en la ejecución de la transacción.

2. Cuando los participantes reciben la solicitud de voto, respondenenviando al coordinador un mensaje con su voto (Sío No). Si un participante vota No, la transacción se aborta (abort).

3. El coordinador recoge los mensajes con los votos de todos los participantes. Si todos han votado Sí, entonces el coordinador también vota si y envía un mensaje commita todos los participantes. En otro caso, el coordinador decide abandonar y envía un mensaje aborta todos los participantes que han votado afirmativamente.

4. Cada participante que ha votado sí, espera del coordinador un mensaje commito abortpara terminar la transacción de forma normal o abortarla.