martes, 17 de abril de 2012

ADMINISTRACION DE TRANSACCIONES

Las transacciones distribuidas abarcan dos o más servidores conocidos como administradores de recursos. La administración de la transacción debe ser coordinada entre los administradores de recursos mediante un componente de servidor llamado administrador de transacciones. Cada instancia de SQL Server Database Engine (Motor de base de datos de SQL Server) puede funcionar como administrador de recursos en las transacciones distribuidas que coordinan los administradores de transacciones, como el Coordinador de transacciones distribuidas de Microsoft (MS DTC) u otros administradores que admitan la especificación Open Group XA del procesamiento de transacciones distribuidas. Para obtener más información, consulte la documentación de MS DTC.Una transacción de una sola instancia de Motor de base de datos que abarque dos o más bases de datos es, de hecho, una transacción distribuida. La instancia administra la transacción distribuida internamente; para el usuario funciona como una transacción local.En la aplicación, una transacción distribuida se administra de forma muy parecida a una transacción local. Al final de la transacción, la aplicación pide que se confirme o se revierta la transacción. El administrador de transacciones debe administrar una confirmación distribuida de forma diferente para reducir al mínimo el riesgo de que, si se produce un error en la red, algunos administradores de recursos realicen confirmaciones mientras los demás revierten la transacción. Esto se consigue mediante la administración del proceso de confirmación en dos fases (la fase de preparación y la fase de confirmación), que se conoce como confirmación en dos fases (2PC).Fase de preparación Cuando el administrador de transacciones recibe una solicitud de confirmación, envía un comando de preparación a todos los administradores de recursos implicados en la transacción. Cada administrador de recursos hace lo necesario para que la transacción sea duradera y todos los búferes que contienen imágenes del registro de la transacción se pasan a disco. A medida que cada administrador de recursos completa la fase de preparación, notifica si la preparación ha tenido éxito o no al administrador de transacciones.Fase de confirmación Si el administrador de transacciones recibe la notificación de que todas las preparaciones son correctas por parte de todos los administradores de recursos, envía comandos de confirmación a cada administrador de recursos. A continuación, los administradores de recursos pueden completar la confirmación. Si todos los administradores de recursos indican que la confirmación ha sido correcta, el administrador de transacciones envía una notificación de éxito a la aplicación. Si algún administrador de recursos informó de un error al realizar la preparación, el administrador de transacciones envía un comando para revertir la transacción a cada administrador de recursos e indica a la aplicación que se ha producido un error de confirmación.

miércoles, 29 de febrero de 2012

create database ULV;use ULV;/**********************************************/create table profesores( ID_profesor varchar(10),nombre varchar(20),direccion varchar(40),telefono varchar(15));select * from profesores;/**********************************************/create table materias( ID_materias varchar(10),nombre varchar(20),numero_materias int);select * from materias;/**********************************************/create table alumno(ID_alumno varchar(10),matricula varchar(10),nombre varchar(20),direccion varchar(40),telefono varchar(15),);select * from alumno;/**********************************************/create table calificaciones(ID_calificaciones varchar(10),matricula varchar(10),no_materias int,);select * from calificaciones;

scrip

scrip

Desafios De Los Sistemas Distribuidos

La heterogeneidad se
aplica en los siguientes elementos:
*Redes
*Hardware de
computadores
*Sistemas
operativos
*Lenguajes de
programación
*Implementaciones de
diferentes desarrolladores
Middleware: es el estrato de
software que provee una abstracción de programación, así como un enmascaramiento
de la heterogeneidad subyacente de las redes, hardware, sistemas operativos y
lenguajes de programación. Ejemplo: Corba, Java RMI
Código
móvil:
*Código Móvil: código
que puede enviarse desde un computador a otro y ejecutarse en este
último.
*El concepto de
máquina virtual ofrece un modo de crear código ejecutable sobre cualquier
hardware
Desafíos:
Extensibilidad
Es la característica
que determina si el sistema puede extenderse de varias maneras. Un sistema puede
ser abierto o cerrado con respecto a extensiones de hardware o de software. Para
lograr la extensibilidad es imprescindible que las interfaces clave sean publicadas.
Los Sistemas
Distribuidos Abiertos pueden extenderse a nivel de hardware mediante la
inclusión de computadoras a la red y a nivel de software por la introducción de
nuevos servicios y la re implementación de los antiguos.
Otro beneficio de los
sistemas abiertos es su independencia de proveedores concretos.
Desafíos:
Seguridad
La seguridad tiene
tres componentes: Confidencialidad: protección contra individuos no autorizados
Integridad: protección contra la alteración o corrupción Disponibilidad:
protección contra la interferencia que impide el acceso a los recursos
Existen dos desafíos
que no han sido resueltos en su totalidad:
*Ataques de
denegación de servicio
*Seguridad
del código móvil
Desafíos:
Escalabilidad
Se dice que un
sistema es escalable si conserva su efectividad cuando ocurre un incremento
significativo en el número de recursos y en el número de usuarios. El diseño de
SD escalables presenta los siguientes retos:
Control de costo de
los recursos físicos: para que un sistema
con n usuarios sea escalable, la cantidad de recursos físicos necesarios
para soportarlo debería ser O(n).
Controlar la
degradación del rendimiento: Ejemplo: Los
algoritmos que emplean estructuras jerárquicas se comportan mejor frente al
crecimiento de la escala, que los algoritmos que emplean estructuras
lineales.
Evitar cuellos de
botella: los algoritmos
deberían ser descentralizados.
Prevenir el
desbordamiento de los recursos de software
Desafíos:
Tratamiento de fallos
Detección de
fallos: Ejemplo. Se pueden
utilizar sumas de comprobación (checksums) para detectar datos corruptos en un
mensaje.
Enmarascamiento de
fallos: Ejemplo.
*Los mensajes pueden
retransmitirse
*Replicar
los datos
Tolerancia de fallos:
los
programas clientes de los servicios pueden diseñarse para tolerar ciertos
fallos. Esto implica que los usuarios tendrán también que tolerarlos.
Recuperación de
fallos: implica el diseño de
software en el que, tras una caída del servidor, el estado de los datos puede
reponerse o retractarse (rollback) a una situación anterior.
Redundancia:
emplear componentes
redundantes.
Desafíos:
Concurrencia
Existe la posibilidad
de acceso concurrente a un mismo recurso. La concurrencia en los servidores se
puede lograr a través de threads. Cada objeto que represente un recurso
compartido debe responsabilizarse de garantizar que opera correctamente en un
entorno concurrente. Para que un objeto sea seguro en un entorno concurrente,
sus operaciones deben sincronizarse de forma que sus datos permanezcan
consistentes.
Desafíos:
Transparencia
Transparencia de
acceso: permite acceder a los recursos locales y remotos empleando operaciones
idénticas. Transparencia de ubicación: permite acceder a los recursos sin
conocer su localización. Transparencia de concurrencia: permite que varios
procesos operen concurrentemente sobre recursos compartidos sin interferencia
mutua.
Transparencia de
replicación: permite replicar los recursos sin que los usuarios y los
programadores necesiten su conocimiento. Transparencia frente a fallos: permite
ocultar fallos. Transparencia de movilidad: permite la reubicación de recursos y
clientes en un sistema sin afectar la operación de los usuarios y los
programas.
Transparencia de
rendimiento: permite reconfigurar el sistema para mejorar el desempeño según
varíe su carga. Transparencia al escalado: permite al sistema y a las
aplicaciones expandirse en tamaño sin cambiar la estructura del sistema o los
algoritmos de aplicación.

martes, 28 de febrero de 2012

BASE DE DATOS

¿QUE ES UNA BASE DE DATOS?
Una base de datos o banco de datos (en ocasiones abreviada con la sigla BD o con la abreviatura b. d.) es un conjunto de datos pertenecientes a un mismo contexto y almacenados sistemáticamente para su posterior uso. En este sentido, una biblioteca puede considerarse una base de datos compuesta en su mayoría por documentos y textos impresos en papel e indexados para su consulta. Actualmente, y debido al desarrollo tecnológico de campos como la informática y la electrónica, la mayoría de las bases de datos están en formato digital (electrónico), que ofrece un amplio rango de soluciones al problema de almacenar datos.Existen programas denominados sistemas gestores de bases de datos, abreviado SGBD, que permiten almacenar y posteriormente acceder a los datos de forma rápida y estructurada. Las propiedades de estos SGBD, así como su utilización y administración, se estudian dentro del ámbito de la informática.Las aplicaciones más usuales son para la gestión de empresas e instituciones públicas. También son ampliamente utilizadas en entornos científicos con el objeto de almacenar la información experimental.

¿QUE ES UNA SMBD?

Sistema Manejador de Base de Datos.
Definición El sistema de gestión de bases de datos es
esencial para el adecuado funcionamiento y manipulación de los datos contenidos
en la base. Se puede definir como: "El Conjunto de programas, procedimientos,
lenguajes, etc. que suministra, tanto a los usuarios no informáticos como a los
analistas, programadores o al administrador, los medios necesarios para
describir, recuperar y manipular los datos almacenados en la base, manteniendo
su integridad, confidencialidad y seguridad".

QUE ES SQL?


El lenguaje de consulta estructurado o SQL (por sus siglas en inglés structured query language) es un lenguaje declarativo de acceso a bases de datos relacionales que permite especificar diversos tipos de operaciones en estas. Una de sus características es el manejo del álgebra y el cálculo relacional permitiendo efectuar consultas con el fin de recuperar -de una forma sencilla- información de interés de una base de datos, así como también hacer cambios sobre ella.

Los orígenes del SQL están ligados a los de las bases de datos relacionales. En 1970 E. F. Codd propone el modelo relacional y asociado a este un sublenguaje de acceso a los datos basado en el cálculo de predicados. Basándose en estas ideas, los laboratorios de IBM definen el lenguaje SEQUEL (Structured English Query Language) que más tarde sería ampliamente implementado por el sistema de gestión de bases de datos (SGBD) experimental System R, desarrollado en 1977 también por IBM. Sin embargo, fue Oracle quien lo introdujo por primera vez en 1979 en un programa comercial.El SEQUEL terminaría siendo el predecesor de SQL, siendo este una versión evolucionada del primero. El SQL pasa a ser el lenguaje por excelencia de los diversos sistemas de gestión de bases de datos relacionales surgidos en los años siguientes y es por fin estandarizado en 1986 por el ANSI, dando lugar a la primera versión estándar de este lenguaje, el "SQL-86" o "SQL1". Al año siguiente este estándar es también adoptado por la ISO.Sin embargo, este primer estándar no cubre todas las necesidades de los desarrolladores e incluye funcionalidades de definición de almacenamiento que se consideraron suprimir. Así que en 1992 se lanza un nuevo estándar ampliado y revisado del SQL llamado "SQL-92" o "SQL2".En la actualidad el SQL es el estándar de facto de la inmensa mayoría de los SGBD comerciales. Y, aunque la diversidad de añadidos particulares que incluyen las distintas implementaciones comerciales del lenguaje es amplia, el soporte al estándar SQL-92 es general y muy amplio.El ANSI SQL sufrió varias revisiones y agregados a lo largo del tiempo:AñoNombreAliasComentarios1986SQL-86SQL-87Primera publicación hecha por ANSI. Confirmada por ISO en 1987.1989SQL-89Revisión menor.1992SQL-92SQL2Revisión mayor.1999SQL:1999SQL2000Se agregaron expresiones regulares, consultas recursivas (para relaciones jerárquicas), triggers y algunas características orientadas a objetos.2003SQL:2003 Introduce algunas características de XML, cambios en las funciones, estandarización del objeto sequence y de las columnas autonumericas. (Ver Eisenberg et al.: SQL:2003 Has Been Published.)2006SQL:2006 ISO/IEC 9075-14:2006 Define las maneras en las cuales el SQL se puede utilizar conjuntamente con XML. Define maneras de importar y guardar datos XML en una base de datos SQL, manipulándolos dentro de la base de datos y publicando el XML y los datos SQL convencionales en forma XML. Además, proporciona facilidades que permiten a las aplicaciones integrar dentro de su código SQL el uso de XQuery, lenguaje de consulta XML publicado por el W3C (World Wide Web Consortium) para acceso concurrente a datos ordinarios SQL y documentos XML.2008SQL:2008 Permite el uso de la cláusula ORDER BY fuera de las definiciones de los cursores. Incluye los disparadores del tipo INSTEAD OF. Añade la sentencia TRUNCATE

¿QUE ES UN LMD?
Sentancia LMD como tal no existe, ya que un lmd es:Un lenguaje de manipulación de datos (Data Manipulation Language, o DML en inglés) es un lenguaje proporcionado por el sistema de gestión de base de datos que permite a los usuarios de la misma llevar a cabo las tareas de consulta o manipulación de los datos, organizados por el modelo de datos adecuado.El lenguaje de manipulación de datos más popular hoy día es SQL, usado para recuperar y manipular datos en una base de datos relacional. Otros ejemplos de DML son los usados por bases de datos IMS/DL1, CODASYL u otras.entonces todas las intrucciones de sql que es el que normalmente usamos son lmd: select, insert, updateUna sentencia INSERT de SQL agrega uno o más registros a una (y sólo una) tabla en una base de datos relaciona.