SISTEMA DE BD TRANSACCIONAL.docx

Embed Size (px)

Citation preview

UNIVERSIDAD REGIONAL AUTONOMA DE LOS ANDESUNIANDES

EXTENSIN SANTO DOMINGO

FACULTAD DE SISTEMAS MERCANTILES

CARRERA INGENIERIA EN SISTEMAS

MODULO DE BASE DE DATOS

TEMA:BASE DE DATOS TRANSACIONALES

AUTOR: FRANKLIN JAVIER BOHORQUEZ VERA

TUTOR: Ing. Carlos Sampedro

FECHA: Mayo 05 del 2013

PERIODO MAYO OCTUBRE 2012

1. INTRODUCCINLos orgenes de las bases de datos se remontan a la Antigedad donde ya existan bibliotecas y toda clase de registros. Adems tambin se utilizaban para recoger informacin sobre las cosechas y censos. Sin embargo, su bsqueda era lenta y poco eficaz y no se contaba con la ayuda de mquinas que pudiesen reemplazar el trabajo manual.Posteriormente, el uso de las bases de datos se desarroll a partir de las necesidades de almacenar grandes cantidades de informacin o datos. Sobre todo, desde la aparicin de las primeras computadoras, el concepto de bases de datos ha estado siempre ligado a la informtica.En 1884 Herman Hollerith cre la mquina automtica de tarjetas perforadas, siendo nombrado as el primer ingeniero estadstico de la historia. En esta poca, los censos se realizaban de forma manual.En la poca de los sesenta, las computadoras bajaron los precios para que las compaas privadas las pudiesen adquirir; dando paso a que se popularizara el uso de los discos, cosa que fue un adelanto muy efectivo en la poca, debido a que a partir de este soporte se poda consultar la informacin directamente, sin tener que saber la ubicacin exacta de los datos.En esta misma poca se dio inicio a las primeras generaciones de bases de datos de red y las bases de datos jerrquicas, ya que era posible guardar estructuras de datos en listas y rboles.Otro de los principales logros de los aos sesenta fue la alianza de IBM y American Airlines para desarrollar SABRE, un sistema operativo que manejaba las reservas de vuelos, transacciones e informaciones sobre los pasajeros de la compaa American Airlines.Y, posteriormente, en esta misma dcada, se llev a cabo el desarrollo del IDS desarrollado por Charles Bachman (que formaba parte de la CODASYL) supuso la creacin de un nuevo tipo de sistema de bases de datos conocido como modelo en red que permiti la creacin de un standard en los sistemas de bases de datos gracias a la creacin de nuevos lenguajes de sistemas de informacin.CODASYL (Conference on Data Systems Languages) era un consorcio de industrias informticas que tenan como objetivo la regularizacin de un lenguaje de programacin estndar que pudiera ser utilizado en multitud de ordenadores.Los miembros de este consorcio pertenecan a industrias e instituciones gubernamentales relacionadas con el proceso de datos, cuya principal meta era promover un anlisis, diseo e implementacin de los sistemas de datos ms efectivos; y aunque trabajaron en varios lenguajes de programacin como COBOL, nunca llegaron a establecer un estndar fijo, proceso que se llev a cabo por ANSI.Por su parte, a principios de los aos ochenta comenz el auge de la comercializacin de los sistemas relacionales, y SQL comenz a ser el estndar de la industria, ya que las bases de datos relacionales con su sistema de tablas (compuesta por filas y columnas) pudieron competir con las bases jerrquicas y de red, como consecuencia de que su nivel de programacin era sencillo y su nivel de programacin era relativamente bajo.En la dcada de 1990 la investigacin en bases de datos gir en torno a las bases de datos orientadas a objetos. Las cuales han tenido bastante xito a la hora de gestionar datos complejos en los campos donde las bases de datos relacionales no han podido desarrollarse de forma eficiente. As se desarrollaron herramientas como Excel y Access del paquete de Microsoft Office que marcan el inicio de las bases de datos orientadas a objetos.En la actualidad, las tres grandes compaas que dominan el mercado de las bases de datos son IBM, Microsoft y Oracle. Por su parte, en el campo de internet, la compaa que genera gran cantidad de informacin es Google. Aunque existe una gran variedad de software que permiten crear y manejar bases de datos con gran facilidad, como por ejemplo LINQ, que es un proyecto de Microsoft que agrega consultas nativas semejantes a las de SQL a los lenguajes de la plataforma .NET. El objetivo de este proyecto es permitir que todo el cdigo hecho en Visual Studio sean tambin orientados a objetos; ya que antes de LINQ la manipulacin de datos externos tena un concepto ms estructurado que orientado a objetos; y es por eso que trata de facilitar y estandarizar el acceso a dichos objetos.Cabe destacar que Visual Studio es un entorno de desarrollo integrado para sistemas operativos Windows que soporta varios lenguajes de programacin tales como Visual C++, Visual#, Visual J#, ASP.NET y Visual Basic.NET, aunque se estn desarrollando las extensiones necesarias para otros, cuyo objetivo es permitir crear aplicaciones, sitios y aplicaciones web, as como servicios web a cualquier entorno que soporte la plataforma .Net, creando as aplicaciones que intercomuniquen entre estaciones de trabajo, pginas web y dispositivos mviles.

2. OBJETIVOS2.1. GENERAL Obtener conceptos claros y concisos referentes al tema principal, para tener un fundamento terico y prctico y asi establecer conocimientos que servirn para el desarrollo de la materia y los posteriores temas de aprendizaje, todo esto mediante referencias bibliogrficas, y consultas de a diferentes especialistas de la materia.2.2. ESPECIFICOSa) Interaccionar en diferentes foros, referentes al tema principal, y obtener conceptos y fuentes de ayuda para la concepcin de fundamentos claros.b) Realizar relaciones entre una base de datos transaccional, y una base datos comunes. c) Relacionar y determinar conclusiones basadas en cada uno de los puntos establecidos en el desarrollo del tema.

3. FUNDAMENTACIN CIENTIFICA

El concepto deBases de Datos Transaccionaleses un sinnimo de fiabilidad superior a las Bases de Datos comunes. Las Transacciones son ampliamente utilizadas enSistemas Bancariospor mencionar solo un ejemplo.Una Base de Datos Transaccional alberga la idea deo todo o mejor nada.Para poder hablar de una base de datos transaccionales, debemos tener claro lo siguiente:Gestor TransaccionalUngestor transaccionales un componente que procesa informacin descomponindola de forma unitaria en operaciones indivisibles, llamadas transacciones. Cada transaccin debe finalizar de forma correcta o incorrecta como una unidad completa. No puede acabar en un estado intermedio.Los gestores transaccionales se disean para mantenerbases de datosen un estado conocido y consistente, asegurando que todas las operaciones que son interdependientes realizadas sobre la base de datos se han completado todas correctamente o se han cancelado todas.Por ejemplo, tmese un ejemplo tpico de una transaccin bancaria que requiere mover 500 de la cuenta de un cliente a otra. Esta transaccin es una operacin nica segn la visin del banco, pero requiere al menos dos operaciones desde la visin de la computadora: restar 500 de la cuenta del cliente origen y sumarle 500 al cliente destino. Si la operacin de resta finaliza correctamente pero la operacin de suma no (o viceversa), el balance del banco al final del da no ser correcto. Por lo tanto, debe haber una forma de asegurar que ambas operaciones finalizan correctamente o incorrectamente y as evitar cualquier tipo de inconsistencia en la base de datos del banco. Un gestor transaccional proporciona esta caracterstica.Un gestor transaccional permite enlazar varias operaciones individuales automticamente como una sola transaccin indivisible. El gestor garantiza que todas las operaciones finalizan sin errores o ninguna de ellas. Si algunas operaciones finalizaron correctamente pero otras no, el gestor inicia el proceso derollbackde todas las operaciones implicadas (incluso de aquellas que finalizaron correctamente), eliminando todo rastro de la transaccin y devolviendo la base de datos a un estado consistente como lo estaba antes de empezar a procesar la transaccin. Si todas las operaciones de la transaccin finalizaron correctamente, la transaccin realizacommita los cambios realizados en la base de datos. Una vez se ha hecho commit, los datos de esa transaccin queda consolidados y la transaccin no puede hacer rollback de los cambios.Todas las transacciones se procesan en orden cronolgico. Si la transaccinn+1modifica la misma rea que la transaccinn, la transaccinn+1no puede empezar hasta que la transaccinnhaya realizado commit de sus cambios. Ninguna transaccin puede realizar commit de sus modificaciones hasta que todas las transacciones anteriores que modifiquen la misma rea hayan realizado commit (o rollback) de sus cambios. No puede haber saltos de secuencia en las transacciones anteriores.Adems, se debe tener claro estos conceptos: RollbackLos gestores transaccionales aseguran la integridad de las bases de datos registrando todos los estados intermedios de una base de datos mientras se modifica. En caso de que la transaccin falle, se usan esos registros para devolver la base de datos a un estado consistente. Por ejemplo, se copia informacin de la base de datosantesde que sea modificada por una transaccin, de tal manera que si parte de la transaccin acaba incorrectamente, se usan esas copias (llamadasbefore image) para restablecer la integridad de los datos (rollback).

RollforwardTambin es posible mantener un copia (llamadaafter image) de todas aquellas modificaciones realizadas sobre una base de datos. No es necesario para hacer rollback de las transacciones que finalizaron incorrectamente, pero s es til para actualizar la base de datos en un escenario de una recuperacin.Si la base de datos falla estrepitosamente, la restauracin se debe iniciar desde lacopia de seguridadms reciente, aunque no reflejar aquellos cambios posteriores a la copia. Sin embargo, una vez se ha restablecido la copia de seguridad se aplica la copiaafter imageque contendr todas las modificaciones entre la copia de seguridad y el fallo de la base de datos. Desgraciadamente, esta copia tambin contiene todas aquellas modificaciones que estabanen vueloen el momento del fallo. Por ello, es necesario aplicar la copiabefore imageque har rollbackde las transacciones con un estado intermedio, devolviendo la base de datos a un estado seguro y consistente.

Bloqueos mutuosEn algunos casos, dos transacciones pueden en el transcurso de su ejecucin, competir por dos recursos al mismo tiempo de tal manera que impide seguir con su ejecucin. Unbloqueo mutuo(o interbloqueo,deadlockeningls) ocurre, por ejemplo, cuando la transaccinAintenta acceder al reaXde la base de datos mientras la transaccinBintenta acceder al reaYde la base de datos. Si, en algn punto intermedio, la transaccinAintenta acceder al reaYmientras al mismo tiempo la transaccinBintenta acceder al reaXse genera un bloqueo mutuo que impide a ambas transacciones progresar. Los sistemas transacciones estn diseados para detectar este tipo de bloqueos cuando ocurren y actuar en concordancia. O bien ambas transacciones son canceladas y el sistema hace rollback de todos los cambios para luego volver a ejecutarlas automticamente en diferente orden de tal forma que no se vuelva a formar otro bloqueo mutuo, o bien cancelar y hacer rollback de una de ellas y volverla a lanzar despus de una pequea espera.Apartndonos un poco de la terminologa y ciertos campos tericos y referenciales al tema, podemos especificar un gestor de base de datos y mencionar lo siguiente; A por atmico:El principio de atomicidad dice que para que una transaccin sea completa, se deben completar todas las partes de la transaccin o ninguna de ella. Por ejemplo, si transfieren fondos de una cuenta bancaria a otra, la transaccin puede fallar por mltiples motivos, pero no deben restarse los fondos de una cuenta si no se ha sumado a la otra y al revs. La base de datos debe garantizar ambos procesos o ninguno de ellos. Si alguno de los procesos va mal por cualquier motivo la base de datos debe garantizar que lo que haya podido hacer se puede dar marcha atrs. A pesar de que el concepto atmico suena a algo pequeo (como tomo) puede ser muy implicar mltiples sentencias DML.El rollback puede ser manual o automtico y sin posibilidad de pararlo en caso de error. Oracle garantiza el principio de atomicidad a travs del uso de segmentos de undo.C por consistencia.El principio de consistencia dice que el resultado de un query debe ser consistente con el estado de la base de datos en el momento que el query comenz. Si se lanza una query sobre un tabla y antes de est termine se actualizan registros en esta tabla, qu valores debe incluir la query los antiguos o los nuevos?. El principio de consistencia dice que la query no debe incluir los valores que fueron insertados o borrados o modificados despus que la query iniciara. Oracle utiliza los segmentos de Undo para permitir cumplir este principio. Sin embargo, si los segmentos de undo no estn correctamente configurados, el query puede fallar con el error ORA-1555 snapshot too old.I por Aislamiento (Isolation)El principio de aislamiento dice que una transaccin incompleta (que no ha se ha hecho commit) debe ser invisible para el resto del mundo. Mientras la transaccin est en curso, solamente la sesin que est ejecutando la transaccin tiene permiso de ver los cambios. Esto se debe a que primero tiene que tener lugar toda la transaccin y hasta que esto no se produzca los dems usuarios no deben ver los cambios. Los dems usuarios deben ver versiones anteriores de los datos hasta que la transaccin se haya completado. Oracle garantiza el aislamiento de las transacciones a travs de los segmentos de undo.D por DurabilidadEl principio de durabilidad implica que una vez que se ha realizado un commit la transaccin no se debe perder. Hasta que se haga commit nadie puede ver la transaccin, pero una vez hecho commit todo el mundo debe poder verla y la base de datos debe garantizar que el dato no se pierda. Oracle garantiza este principio con los dos tipos de logfile, online y archive. Hay que tener en cuenta que si la base de datos no est en modo archivado este principio puede no cumpliese.

4. DESARROLLO

La base de datos transaccionales es un sistema de informacin diseado para recolectar, almacenar, modificar y recuperar todo tipo de informacin que es generada por las transacciones en una organizacin.Una transaccin es un evento o proceso que genera o modifica la informacin que se encuentra eventualmente almacenado en un sistema de informacin.Este debe controlar, cada uno de los procesos que intervengan en mantener la seguridad y consistencia de los datos involucrados, por ejemplo un cliente transfiere dinero de una cuenta a otra dentro de un mismo banco la cantidad emisora deber ser igual a la se encuentra en la cuenta receptora, de no ser asi la accin transaccin o se realiza.

Este sistema de base de datos debe ser capaz de enmendar y solucionar cualquier error ocurrido durante una transaccin, permitiendo deshacer las operaciones realizadas, manteniendo la originalidad de los datos antes y despus de un error ocurrido.Por otro lado tambin debemos tomar en cuenta que para establecer este tipo de sistema de base de datos, se debe cumplir con una especie de protocolos o reglas fundamentales para una implementacin empresarial u organizacional; es decir, dado o descripto anteriormente, este debe cumplir el test ACID, y el cual establece parmetros como: rapidez, es decir en donde el tiempo de cada uno de los procesos no sea mayor al tiempo estimado esperado por el beneficiario final; fiabilidad, en donde se refiere especficamente a un respaldo dentro de una organizacin tanto para la empresa, la reputacin de la misma y el respaldo de los clientes en cuanto a sus datos.Adems, que estos sistemas contienen caractersticas de automatizacin en las tareas operativas, y en 90% se suelen dirigir o estn direccionadas nica y exclusivamente a reas como ventas, finanzas, administracin, y control de personal.Por otro lado se lo considera uno de los pilares fundamentales en la constitucin de una organizacin empresarial, ya que los beneficios obtenidos de estos suelen ser siempre visibles y de un resultado casi inmediato ya que si el sistema cumple a cabalidad sus funciones la empresa u organizacin establecer mejoras en su funcionabilidad es decir; si un sistema se lo crea para la automatizacin de ventas de algn tipo de productos, si resulta, la empresa estar con topes de venta excelentes y si no pues se buscar alternativas, ya sea para mejorarlo, modificarlo o completamente reemplazarlo. Veamos algo simple:Que pasara si el caso que nos solicite la empresa es la actualizacin de los cdigos de cada uno de los productos que en su total sean unos 5000?Pues sera muy fcil, se realizara el cambio producto por producto, hasta ah sin ningn inconveniente solucionamos el problema de la empresa.Ahora bien si al actualizarlos nos da un error gravsimo en el penltimo producto a modificar?Tendramos el mayor problema que seria que todo el proceso nos causara un error fatal en la actualizacin de cada uno de los procesos realizados anteriormente siendo asi que los productos anteriores al que nos produjo el error entraran en un proceso de bloqueo.Al utilizar transacciones, eso ya no suceder debido a que si algo falla, la base de datos no modificara nada, ni aplicara cambios, y mantendr los datos intactos. Como se observa, trabajar de forma transaccional te asegura la integridad de los datos y si algo sale mal, el server no aplica ningn cambio.

5. CONCLUSIONES

Teniendo en cuenta cada uno de los temas consultados y la relacin que existe con una base de datos normal; se puede determinar que al establecer base de datos con sistemas transaccionales se est garantizando adems de la integridad de los datos, la funcionabilidad de una base de datos que solucionar los errores causados, y que de no usarse este tipo de sistemas estaramos perdiendo por completo, los datos ya sea de clientes o para fin que se use dicha base de datos, causando graves daos a la empresa que le sea de utilidad.

Asi mismos podemos determinar que para una futura aplicacin de una base de datos, sera muy importante establecer de manera directa una aplicacin donde intervenga un sistema de base de datos transaccional.

6. BIBLIOGRAFIA6.1. DIGITALa) http://books.google.com.ec/books?id=7ORUWItwcNEC&pg=PA17&dq=base+de+datos+historia&hl=es&sa=X&ei=cKmFUcqmHpPo8wSt1IHQDQ&ved=0CDAQ6AEwAA#v=onepage&q&f=falseb) http://mundobyte.wordpress.com/tag/base-de-datos-transaccionales/c) http://es.wikipedia.org/wiki/Gestor_transaccionald) http://www.monografias.com/trabajos5/basede/basede.shtmle) http://www.lawebdelprogramador.com/foros/Bases_de_Datos/33138-Que_es_una_B.D._Transaccional_.htmlf) http://www.forosdelweb.com/f21/base-datos-transaccional-235216/g) http://books.google.com.ec/books?id=8Yvg8u2pD94C&pg=PA144&dq=Principio+Generales+de+las+bases+de+datos+transaccionales&hl=es&sa=X&ei=8LCFUb_AMpG-9gT_7oDQAg&ved=0CE4Q6AEwBQ#v=onepage&q=Principio%20Generales%20de%20las%20bases%20de%20datos%20transaccionales&f=falseh) http://cajondesastreoracle.wordpress.com/2010/07/05/test-acid-en-oracle/