Vous êtes sur la page 1sur 22

INSTITUTO TECNOLOGICO DE MILPA ALTA

Investigacin de las
unidades V y VI
Investigacin de taller de base de datos

Kira
23/04/2014


Equipo de taller de investigacin
Huerta Castro Samuel Antonio
Lpez Lpez Eliezer
Perea Reynoso Alma Beatriz
Vera Garcia Hugo Cesar



Profesora
Mara Teresa de Len Jurez
Este documento fue creado para saber el tema de las unidades 5 y 6 del taller de
base de dato y como poder tener una seguridad mediante transacciones y de
manejo en msql mediante procedimientos procedurales.


2
ndice
Introduccin ...................................................................................................................................... 4
Unidad V Transacciones .................................................................................................................... 5
5.1 Concepto Bsicos ...................................................................................................................... 5
5.2 Propiedades de las Transacciones ............................................................................................. 6
5.3 Grados de Consistencias ........................................................................................................... 7
5.4 Niveles de Aislamiento .............................................................................................................. 9
5.5 Commit y Rollback ................................................................................................................... 11
Unidad VI MSQL Procedura.. 12
6.1 Procedimiento Almacenado .................................................................................................... 12
6.2 Disparadores ........................................................................................................................... 14
Bibliografa ...................................................................................................................................... 18
Bibliografa WEB .............................................................................................................................. 19
Conclusiones ................................................................................................................................... 19















3
Contenido
Introduccin ........................................................................................................................................ 4
Unidad V Transacciones .................................................................................................................. 5
5.1 Conceptos Bsicos: .................................................................................................................... 5
5.1.1 DEFINICIN DE TRANSACCIONES EN SQL........................................................................... 5
5.2 Propiedades de las Transacciones:............................................................................................ 6
5.3 Grados de Consistencias: .......................................................................................................... 7
5.3.1 Consistencia de grado dos .................................................................................................. 7
5.3.2 Estabilidad del cursor ......................................................................................................... 8
5.3.3 Niveles dbiles de consistencia en SQL .............................................................................. 8
5.4 Niveles de Aislamiento: ............................................................................................................. 9
5.5 Commit y Rollback: .................................................................................................................. 11
5.5.1 Ventajas de las sentencias COMMIT y ROLLBACK ............................................................ 12
Unidad VI MSQL Procedural .............................................................................................................. 12
6.1 Procedimiento Almacenado .................................................................................................... 12
6.1.1 Tipos de Procedimientos almacenados ............................................................................ 13
6.1.2 Ventajas de usar SP .......................................................................................................... 14
6.2 Disparadores ........................................................................................................................... 14
6.2.1 Cundo no deben usarse los disparadores ...................................................................... 17
Bibliografa ........................................................................................................................................ 18
Bibliografa WEB ................................................................................................................................ 19
Conclusiones ..................................................................................................................................... 19





4
Introduccin

En este documento trataremos como se puede asegurar una base de datos
mediante transacciones y daremos una breve explicacin de que es una
transaccin, sus propiedades, sus grados, sus niveles y especial por qu sirve el
commit y el rollback.
Y tambin como se usa el procedimiento de almacenado en msql procedural y
para qu sirven los disparadores en msql que son componentes principales para
tener una seguridad en el aguardado de informacin.



5
Unidad V Transacciones

5.1 Conceptos Bsicos:
Se llama transaccin a una coleccin de operaciones que forman una nica
unidad lgica de trabajo.
Un sistema de base de datos debe asegurar que la ejecucin de las transacciones
se realice adecuadamente a pesar de la existencia de fallos: o se ejecuta la
transaccin completa o no se ejecuta en absoluto. Adems debe gestionar la
ejecucin concurrente de las transacciones evitando introducir inconsistencias.
Una transaccin es una unidad de la ejecucin de un programa que accede y
posiblemente actualiza varios elementos de datos. Una transaccin se inicia por la
ejecucin de un programa de usuario escrito en un lenguaje de manipulacin de
datos de alto nivel o en un lenguaje de programacin (por ejemplo SQL, COBOL,
C, C++ o Java), y est delimitado por instrucciones (o llamadas a funcin) de la
forma inicio transaccin y n transaccin.
Una Transaccin est delimitada por instrucciones de begin transaction (inicio
transaccin) y end transaction (fin transaccin) (la transaccin consiste en todas
las operaciones que se ejecutan entre inicio transaccin y fin transaccin).
Una transaccin incluye uno o ms operaciones de acceso a la base de datos.
Las operaciones con bases de datos que forman una transaccin pueden estar
incrustadas dentro de una aplicacin o puede especificarse interactivamente
mediante un lenguaje de consulta de alto nivel como SQL.

5.1.1 DEFINICIN DE TRANSACCIONES EN SQL
El componente del sistema que proporciona esta atomicidad, o semblanza de
atomicidad, es conocido como administrador de transacciones (tambin como
monitor de procesamiento de transacciones o monitor PT) y las operaciones
COMMIT y ROLLBACK son la clave de cmo funciona.
Un lenguaje de manipulacin de datos debe incluir una constructora para
especificar el conjunto de acciones que constituyen una transaccin.
En la norma SQL se especifica el comienzo de una transaccin explcitamente.
Las transacciones se terminan con una de las instrucciones SQL siguientes:


6
Commit work compromete la transaccin actual y comienza una nueva.
Rollback work provoca que la transaccin actual aborte.
La palabra clave work es opcional en ambas instrucciones. Si el programa termina
sin ninguna de estas rdenes, los cambios o bien se comprometen o bien se
retroceden; en la norma no se especifica cul de las dos acciones tiene lugar, y
depende de la implementacin.
5.2 Propiedades de las Transacciones:
Propiedades de las transacciones que debe mantener el sistema de base de datos
para garantizar la integridad de los datos:
Atomicidad: O se realizan adecuadamente, en la base de datos, todas las
operaciones de la transaccin o no se realiza ninguna de ellas. Se
requiere que todas las operaciones de una transaccin sean entregadas
(commited) a la base de datos. En caso de que una de ellas no sea
entregada por cualquier razn, ninguna debe hacerse. Las transacciones
son atmicas (todo o nada).

Consistencia: La ejecucin aislada de la transaccin (es decir, sin otra
transaccin que se ejecute concurrentemente) conserva la consistencia de
la base de datos. Se requiere que si antes de ejecutar una transaccin,
la BD es consistente, permanezca igualmente consistente una vez
terminada la transaccin.
El requisito de consistencia es que la suma de A y B no se vea alterada al
ejecutar la transaccin Si una base de datos es consistente antes de
ejecutar una transaccin, tiene que seguir sindolo despus de ejecutar
dicha transaccin.
Las transacciones conservan la consistencia de la base de datos. Es decir,
una transaccin transforma un estado consistente de la base de datos en
otro igual, sin necesidad de conservar la consistencia en todos los puntos
intermedios.
Aislamiento: Aunque se ejecuten varias transacciones concurrentemente,
el sistema garantiza cada transaccin ignora al resto de transacciones (para
cada T i el resto de T j no ha comenzado o ya ha acabado). Si se
presenta la ejecucin concurrente de transacciones, cada una de ellas
debe tener la impresin de que las dems no existen, como si se ejecutaran
en serie (una despus de la otra).


7
Las transacciones estn aisladas entre s. Es decir, aunque en general hay
muchas transacciones ejecutndose en forma concurrente, las
actualizaciones de una transaccin dada estn ocultas ante las dems,
hasta que esa transaccin sea confirmada. Otra forma de decir lo mismo es
que para dos transacciones distintas, como 77 y 72, 77 podr ver las
actualizaciones de 72 (despus de que 72 haya sido confirmada) o 72
podr ver las de 77 (despus de que TI haya sido confirmada), pero no
podrn suceder ambas cosas.

Durabilidad: Tras la finalizacin con xito de una transaccin, los cambios
realizados en la base de datos permanecen, incluso si hay fallos en el
sistema. Es indispensable que una vez finalizada la transaccin y los datos
entregados a la BD, estos no se pierdan incluso aunque se produzca
una falla.

Una vez que una transaccin es confirmada, sus actualizaciones
sobreviven en la base de datos aun cuando haya una cada posterior del
sistema.
5.3 Grados de Consistencias:
Si todas las transacciones tienen la propiedad de mantener la consistencia de la
base de datos si se ejecutan por separado, la secuencialidad asegura que las
ejecuciones concurrentes mantienen la consistencia. Sin embargo, puede que los
protocolos necesarios para asegurar la secuencialidad permitan muy poca
concurrencia para algunas aplicaciones. En estos casos se utilizan los niveles ms
dbiles de consistencia. El uso de niveles ms dbiles de consistencia aade una
nueva carga a los programadores para asegurar la correccin de las bases de
datos.
5.3.1 Consistencia de grado dos
El objetivo de la consistencia de grado dos es evitar abortar en cascada sin
asegurar necesariamente la secuencialidad. El protocolo de bloqueo para la
consistencia de grado dos utiliza los mismos dos modos de bloqueo que se utilizan
para el protocolo de bloqueo de dos fases: compartido (C) y exclusivo (X). Las
transacciones deben mantener el modo de bloqueo adecuado cuando tengan
acceso a un elemento de datos.
A diferencia de la situacin en los bloqueos de dos fases, los bloqueos-C pueden
liberarse en cualquier momento y tambin se pueden establecer bloqueos en
cualquier momento.


8
Los bloqueos exclusivos no se pueden liberar hasta que la transaccin se
comprometa o se aborte. La secuencialidad no queda asegurada por este
protocolo. En realidad, una transaccin puede leer dos veces el mismo elemento
de datos y obtener resultados diferentes. En la Figura 1, T 3 lee el valor de Q
antes y despus de que T4 escriba su valor.
La posibilidad de que se produzca inconsistencia con la consistencia de grado dos
hace que este enfoque no sea conveniente para muchas aplicaciones.
5.3.2 Estabilidad del cursor
La estabilidad del cursor es una forma de consistencia de grado dos diseada
para programas escritos en lenguajes de propsito general, los cuales iteran sobre
las tuplas de una relacin utilizando cursores. En vez de bloquear toda la relacin,
la estabilidad del cursor asegura que:
La tupla que est procesando la iteracin est bloqueada en modo
compartido.
Todas las tuplas modificados estn bloqueadas en modo exclusivo hasta
que se comprometa la transaccin.
5.3.3 Niveles dbiles de consistencia en SQL
La norma SQL tambin permite que una transaccin especifique si puede ser
ejecutada de tal forma que se convierta en no secuenciales con respecto a otras
transacciones. Por ejemplo, una transaccin puede operar en el nivel sin
compromiso de lectura, lo que permite que la transaccin lea registros incluso si
stos no se han comprometido. SQL proporciona tales caractersticas para
transacciones largas cuyos resultados no necesitan ser precisos. Por ejemplo, una
informacin aproximada suele ser suciente para las estadsticas utilizadas en la
optimizacin de consultas. Si estas transacciones se ejecutaran en modo
secuencial, podran interferir con otras transacciones, provocando que la ejecucin
de las otras se retrasaran.
Los niveles de consistencia especificados por SQL-92 son los siguientes:
Secuenciable es el predeterminado.

Lectura repetible slo permite leer registros comprometidos, y adems
requiere que, entre dos lecturas de un registro realizadas por una
transaccin, no se permita que ninguna otra transaccin actualice el
registro. Sin embargo, la transaccin puede no ser secuenciable con
respecto a otras transacciones. Por ejemplo, cuando est buscando
registros que satisfagan algunas condiciones, una transaccin podra


9
encontrar algunos de los registros que ha insertado una transaccin
comprometida, pero podra no encontrar otros.

Compromiso de lectura slo permite leer registros comprometidos, pero ni
siquiera requiere lecturas repetibles. Por ejemplo, entre dos lecturas de un
registro realizadas por una transaccin, los registros deben ser actualizados
por otras transacciones comprometidas. Esto es bsicamente lo mismo que
la consistencia de grado dos; la mayora de los sistemas que soportan este
nivel de consistencia debera implementar en realidad estabilidad del
cursor, que es un caso especial de consistencia de grado dos.

Sin compromiso de lectura permite incluso leer registros no
comprometidos. ste es el nivel de consistencia ms bajo que permite SQL-
92.




5.4 Niveles de Aislamiento:
Utilizamos el trmino nivel de aislamiento para referirnos a lo que podra ser
descrito vagamente como el grado de interferencia que una transaccin dada es
capaz de tolerar por parte de las transacciones concurrentes.
Podemos definir al menos, cinco niveles de aislamiento, pero la referencia y el
SQL estndar definen solamente cuatro, mientras que el DB2 slo soporta dos
actualmente. En trminos generales, entre mayor sea el nivel de aislamiento,
menor ser la interferencia (y menor la concurrencia); y entre ms bajo sea el nivel
de aislamiento, mayor ser la interferencia (y mayor la concurrencia).
FIGURA 1: Planicacin no secuenciable con consistencia de
grado dos.


10
Un Nivel de Aislamiento describe el grado en el cual los datos que estn
siendo manipulados por una sesin son visibles para otras:
Serializable (En serie).
Repeatable Read (Lectura Repetible)
Read Committed (Leer Entregados).
Read Uncommitted (Leer No Entregados).
Cada Nivel de Aislamiento tiene un comportamiento distinto con respecto a
los dems, pero en algunos de los aspectos bsicos, es muy similar a los
dems.
El nivel predeterminado es SERIALIZABLE, ya que si se especifica alguno de los
otros tres, la implementacin tiene la libertad de asignar algn nivel superior (en
donde "superior" est definido en trminos del ordenamiento SERIALIZABLE >
REPEATABLE READ > READ COMMITTED > READ UNCOMMITTED).
Si todas las transacciones son ejecutadas al nivel de aislamiento SERIALIZABLE
(el predeterminado) queda garantizado que la ejecucin intercalada de cualquier
conjunto de transacciones concurrentes es seriable. Sin embargo, si alguna
transaccin se ejecuta a un nivel de aislamiento menor, la seriabilidad podra ser
violada de varias formas diferentes. El estndar define tres formas especficas en
las que se puede violar la seriabilidad: lectura sucia, lectura no repetible y
fantasmas:
Lectura sucia: Supongamos que la transaccin TI realiza una actualizacin
sobre alguna fila, luego la transaccin T2 recupera esa fila y la transaccin
TI termina con una instruccin deshacer. Entonces, la transaccin T2 ha
visto una fila que ya no existe, y que en cierto sentido nunca existi (debido
a que la transaccin TI efectivamente nunca fue ejecutada).

Lectura no repetible: Supongamos que la transaccin TI recupera una fila,
luego la transaccin T2 actualiza esa fila y despus la transaccin TI
recupera nuevamente la "misma" fila. La transaccin TI ha recuperado la
"misma" fila dos veces, pero ve dos valores diferentes en ella.

Fantasmas: Supongamos que la transaccin TI recupera el conjunto de
todas las filas que satisfacen alguna condicin (por ejemplo, todas las filas
de proveedores que satisfacen la condicin de que la ciudad es Pars).
Supongamos que la transaccin 72 inserta entonces una nueva fila que
satisface la misma condicin. Si la transaccin TI repite ahora su peticin
de recuperacin, ver una fila que antes no exista, un "fantasma".


11

Nota: SERIALIZABLE no resulta una buena palabra
reservada en este caso, ya que se supone que los
planes son los seriables y no las transacciones. Un
mejor trmino podra ser simplemente TWO PHASE,
que significa que la transaccin obedecer (o ser
obligada a obedecer) el protocolo de bloqueo de dos
fases.
Los diferentes niveles de aislamiento estn definidos en trminos de las
violaciones de la seriabilidad que permiten. Estn resumidos en la figura 2 ("S"
significa que puede ocurrir la violacin indicada, y "No" que no puede ocurrir).



5.5 Commit y Rollback:
COMMIT o ROLLBACK
COMMIT (terminacin normal)
Una instruccin COMMIT garantiza que todas las modificaciones de la
transaccin se convierten en una parte permanente de la base de
datos.
Una instruccin COMMIT tambin libera recursos utilizados por la
transaccin, por ejemplo bloqueos.
ROLLBACK (terminacin anormal)
Si se produce un error en una transaccin, o bien si el usuario
decide cancelar la transaccin, una instruccin ROLLBACK deshace la
transaccin. Una instruccin ROLLBACK deshace todas las
modificaciones realizadas en la transaccin devolviendo los datos al
estado en el que se encontraban al iniciar la transaccin. Una
Figura 2: Niveles de aislamiento de SQL.


12
instruccin ROLLBACK tambin libera algunos recursos retenidos por la
transaccin.
5.5.1 Ventajas de las sentencias COMMIT y ROLLBACK
Asegurar la consistencia de datos
Ver previamente los cambios de los datos antes de hacerlos
permanentes
Agrupar operaciones lgicamente relacionadas

Unidad VI MSQL Procedural
6.1 Procedimiento Almacenado
Un procedimiento almacenado es una coleccin con nombre de instrucciones de
Transact-SQL que se almacena en el servidor. Los procedimientos almacenados
son un mtodo para encapsular tareas repetitivas. Admiten variables declaradas
por el usuario, ejecucin condicional y otras caractersticas de programacin muy
eficaces.
Un procedimiento almacenado (store procedure) no es ms que una secuencia
ordenada de instrucciones T-SQL, que pueden recibir y proporcionar parmetros
provistos por el usuario y se pueden guardar en el servidor con un nombre, para
posteriormente se invocados y ejecutados.


13
6.1.1 Tipos de Procedimientos almacenados
SQL Server admite cinco tipos de procedimientos almacenados:
Procedimientos almacenados del sistema (sp_): Almacenados en la
base de datos master e identificados mediante el prefijo sp_, los
procedimientos almacenados del sistema proporcionan un mtodo efectivo
de recuperar informacin de las tablas del sistema. Permiten a los
administradores del sistema realizar tareas de administracin de la base de
datos que actualizan las tablas del sistema aunque stos no tengan
permiso para actualizar las tablas subyacentes directamente. Los
procedimientos almacenados del sistema se pueden ejecutar en cualquier
base de datos.
Procedimientos almacenados locales: Los procedimientos almacenados
locales se crean en las bases de datos de los usuarios individuales.
Procedimientos almacenados temporales: Los procedimientos
almacenados temporales pueden ser locales, con nombres que comienzan
por un signo de almohadilla (#), o globales, con nombres que comienzan
por un signo de almohadilla doble (##). Los procedimientos almacenados
temporales locales estn disponibles en la sesin de un nico usuario,
mientras que los procedimientos almacenados temporales globales estn
disponibles para las sesiones de todos los usuarios.
Procedimientos almacenados remotos: Los procedimientos
almacenados remotos son una caracterstica anterior de SQL Server. Las
consultas distribuidas admiten ahora esta funcionalidad.

Procedimientos almacenados extendidos (xp_): Los procedimientos
almacenados extendidos se implementan como bibliotecas de vnculos
dinmicos (DLL, Dynamic-Link Libraries) que se ejecutan fuera del entorno
de SQL Server. Normalmente, se identifican mediante el prefijo xp_. Se
ejecutan de forma similar a los procedimientos almacenados.
Los procedimientos almacenados en SQL Server son similares a los
procedimientos de otros lenguajes de programacin ya que pueden:
Contener instrucciones que realizan operaciones en la base de datos;
incluso tienen la capacidad de llamar a otros procedimientos almacenados.
Aceptar parmetros de entrada.


14
Devolver un valor de estado a un procedimiento almacenado o a un proceso
por lotes que realiza la llamada para indicar que se ha ejecutado correctamente
o que se ha producido algn error, y la razn del mismo.
Devolver varios valores al procedimiento almacenado o al proceso por lotes
que realiza la llamada en forma de parmetros de salida.
6.1.2 Ventajas de usar SP

Compilacin: La primera vez que se invoca un SP, el motor lo compila y a partir
de ah, se sigue usando la versin compilada del mismo, hasta que se modifique o
se reinicie el servicio de SQL. Esto significa que se tendr un mejor rendimiento
que las consultas directas que usan cadenas con las instrucciones T-SQL, que se
compilan cada vez que se invocan.

Automatizacin: si tenemos un conjunto de instrucciones T-SQL, las cuales
queremos ejecutar de manera ordenada, un SP es la mejor manera de hacerlo.

Administracin: cuando realizamos aplicaciones con un gran nmero de lneas
de cdigo, y queremos hacer cambios, solo implica modificar un SP y no toda la
aplicacin, lo que significa solo cambiamos los SP en el servidor y no tenemos que
actualizar la aplicacin en todos los equipos cliente.

Seguridad: una parte importante es que a los usuarios de nuestra aplicacin, solo
les proporcionamos los permisos para ejecutar los procedimientos almacenados y
no el acceso a todos los objetos de la base. Es decir, si en nuestra aplicacin
encuentran una vulnerabilidad como SLQ Inyeccin no se podr explotar
ejecutando SQL directamente.

Programabilidad: Los SP admiten el uso de variables y estructuras de control
como IF, Bucles, Case, etc. adems del manejo de transaccin y permite
controlar excepciones. Y cuando trabajamos con SP CLR podemos hacer uso de
cualquier lenguaje .NET como lo son C# y VB.NET.

Trafico de Red: Pueden reducir el trfico de la red, debido a que se trabaja sobre
el motor (en el servidor), y si una operacin incluye hacer un trabajo de lectura
primero y en base a eso realizar algunas operaciones, esos datos que se obtienen
no viajan por la red.



6.2 Disparadores
Los sistemas de bases de datos SQL usan ampliamente los disparadores, aunque
antes de SQL: 1999 no fueron parte de la norma. Por desgracia, cada sistema de


15
bases de datos implement su propia sintaxis para los disparadores, conduciendo
a incompatibilidades.
En la Figura 3 se describe la sintaxis SQL: 1999 para los disparadores (que es
similar a la sintaxis de los sistemas de bases de datos DB2 de IBM y de Oracle).



Esta denticin de disparador especica que el disparador se inicia despus (after)
de cualquier actualizacin de la relacin cuenta. Una instruccin de actualizacin
SQL podra actualizar mltiples tuplas de la relacin, y la clusula for each row en
el cdigo del disparador se iterara explcitamente por cada fila actualizada. La
clusula referencing new row as crea una variable nfila (denominada variable de
transicin) que almacena el valor de una fila actualizada despus de la
actualizacin.
La instruccin when especifica una condicin, en este caso nla.saldo < 0. El
sistema ejecuta el resto del cuerpo del disparador slo para las tuplas que
satisfacen la condicin. La clusula begin atomic end sirve para encuadrar
varias instrucciones SQL en una nica instruccin compuesta. Las dos
instrucciones insert en la estructura begin end realizan las tareas especcas
para la creacin de nuevas tuplas en las relaciones prestatario y prstamo para
representar el nuevo prstamo. La instruccin update sirve para establecer en 0 el
saldo de la cuenta.
El evento del disparador puede tener varias formas:
FIGURA 3. Ejemplo de la sintaxis de SQL: 1999 para los disparadores.


16
El evento del disparador puede ser insert o delete en lugar de update. Por
ejemplo, la accin sobre el borrado (delete) de una cuenta podra
comprobar si los tenedores de la cuenta tienen otras cuentas y, si no las
tienen, borrarlas de la relacin impositor.

Para las actualizaciones el disparador puede especicar columnas cuya
actualizacin cause la ejecucin del disparador. Por ejemplo, si la primera
lnea del disparador de descubiertos se reemplazase por



Entonces el disparador se ejecutara slo cuando se actualizase saldo; las
actualizaciones del resto de atributos no causaran su ejecucin.

La clusula referencing old row as se puede usar para crear una variable
que almacene el valor anterior de una fila actualizada o borrada. La
clusula referencing new row as se puede usar con las inserciones adems
de las actualizaciones.

Los disparadores se pueden activar antes (before) del evento
(insert/delete/update) en lugar de despus (after) del evento.

Estos disparadores pueden servir como restricciones extras que pueden
evitar actualizaciones no vlidas. Por ejemplo, si no se desea permitir
descubiertos, se puede crear un disparador before que retroceda la
transaccin si el nuevo saldo es negativo.
Como otro ejemplo, supngase que el valor del campo de nmero telefnico
de una tupla insertada est vaco, que indica la ausencia de un nmero de
telfono. Se puede definir un disparador que reemplace el valor por el valor
null. Se puede usar la instruccin set para realizar estas modificaciones.



17
En lugar de realizar una accin por cada fila afectada, se puede realizar una
accin nica para la instruccin SQL completa que caus la insercin,
borrado o actualizacin. Para hacerlo se usa la clusula for each statement
en lugar de for each row. Las clusulas referencing old table as o
referencing new table as se pueden usar entonces para hacer referencia a
tablas temporales (denominadas tablas de transicin) conteniendo todas las
filas afectadas. Las tablas de transicin no se pueden usar con los
disparadores before, pero s con los after, independientemente de si son
disparadores de instrucciones (statement) o de las (row).

Una instruccin SQL nica se puede usar entonces para realizar varias
acciones en trminos de las tablas de transicin.
6.2.1 Cundo no deben usarse los disparadores
Hay muchos buenos usos de los disparadores, pero algunos usos se manejan
mejor con otras tcnicas. Por ejemplo, anteriormente, los diseadores de sistemas
usaban los disparadores para realizar resmenes de datos. Por ejemplo, usaban
disparadores bajo la insercin, borrado o actualizacin de una relacin empleado
que contiene los atributos sueldo y dept para mantener el sueldo total de cada
departamento. Sin embargo, muchos sistemas de bases de datos actuales
soportan las vistas materializadas., que proporcionan una forma mucho ms
sencilla de mantener los datos de resumen. Los diseadores tambin usaban
ampliamente los disparadores para las rplicas de las bases de datos; usaban
disparadores bajo la insercin, borrado o actualizacin de las relaciones para
registrar los cambios en relaciones cambio o delta.
Un proceso separado copiaba los cambios a la rplica (copia) de la base de datos,
y el sistema ejecutaba los cambios sobre la rplica. Sin embargo, los sistemas de
bases de datos modernos proporcionan caractersticas incorporadas para la
rplica de bases de datos, haciendo innecesarios a los disparadores para la
rplica en la mayora de los casos. De hecho, muchas aplicaciones de
disparadores, incluyendo el ejemplo de descubiertos, se pueden sustituir por las
caractersticas de encapsulacin introducidas en SQL: 1999.
La encapsulacin se puede usar para asegurar que las actualizaciones del
atributo saldo de cuenta se hagan slo mediante un procedimiento especial. Este
procedimiento comprobara un saldo negativo y realizara las acciones de
disparador de descubiertos. Las encapsulaciones pueden reemplazar el
disparador de nuevos pedidos de forma similar.
Los disparadores se deberan escribir con sumo cuidado, dado que un error de un
disparador detectado en tiempo de ejecucin causa el fallo de la instruccin de


18
insercin, borrado o actualizacin que inici el disparador. En el peor de los casos
esto podra dar lugar a una cadena infinita de disparos. Por ejemplo, supngase
que un disparador de insercin sobre una relacin realice otra (nueva) insercin
sobre la misma relacin.
La accin de insercin dispara otra accin de insercin, y as hasta el infinito.
Generalmente, los sistemas de bases de datos limitan la longitud de las cadenas
de disparadores, y consideran que las cadenas mayores son errneas.
Los disparadores (desencadenadores en terminologa de Microsoft) se denominan
a veces reglas o reglas activas, pero no se deben confundir con las reglas
Datalog, que son realmente definiciones de vistas.
La palabra clave new utilizada delante de T.saldo indica que debe utilizarse el
valor de T.saldo posterior a la actualizacin; si se omite, se utilizar el valor previo
a la actualizacin.

Bibliografa
FUNDAMENTOS DE BASES DE DATOS Cuarta edicin Abraham
Silberschatz.

FUNDAMENTOS DE BASES DE DATOS Quinta edicin Ramez Elmasri.

Introduccin a los SISTEMAS DE BASES DE DATOS SPTIMA EDICIN
C. J. Date.

Transacciones.pdf

ApuntesU4_TallerBD.pdf

Transacciones de Base de Datos.pdf

TRANSACCIONES EN SQL 2008.pdf

Implementacin de Procedimientos Almacenado.pdf



19
Bibliografa WEB
http://mspnor.wordpress.com/2008/10/31/sqlprocedimientos-almacenados-paso-a-paso/

Conclusiones

Tener en cuenta todos los complementos y herramientas tiles de un gestor
de base de datos para mejorar el acceso a la informacin que se almacena
en ella, ayuda a crear bases de datos ms funcionales y sobre todo que
sean lo ms sencillo posible de utilizar por cualquier persona.

No hay que olvidar que al fin y al cabo el usuario final de la aplicacin no
sern los desarrolladores, si no, personas que en la mayora de los casos
solo saben dar clic a botones en una ventana o ingresar valores desde un
formulario, para trabajar con una base de datos, sin que les interese en lo
ms mnimo como es que esos valores se guardan o cual es el proceso que
se sigue para mostrar una consulta.

Todo lo anterior tiene mucha relacin con los temas que se presentaron en
este documento, pues son algunas de las herramientas que los creadores
de la base de datos para facilitarle la vida a los usuarios finales y solo
tengan que dar clics para tener acceso a la informacin que tienen
almacenado, para actualizar o bien para ingresar nuevos valores.

Tanto los procedimientos almacenados, que como se ha visto son acciones
que se crean y se guardan para cumplir cierta funcin, como los
disparadores de base de datos, forman parte del trabajo ms complejo de
los desarrolladores de las bases de datos, pero que tienen una de las
finalidades con mayor importancia, facilitar el proceso de manipulacin de
los datos para el usuario. Taller de Base de Datos










20
En las transacciones de la base de datos, tpicamente se usa transacciones
para tener accesos a datos locales, remotos y modificar la base de datos
global en tiempo real.
En esta investigacin se hace una transaccin que es o era complicada de
hacer ya que se realizaba por medio de manual es decir haciendo las
transferencias de forma real de una cuenta a otra. Y tambin en esta
unidad el SQL nos ofrece la forma de realizar transferencias como va
electrnica o virtual en dichas operaciones son fciles y confiables siempre
y cuando se cumpla con las propiedades acid y se manejan los comandos
Rollback y Commit adecuadamente

Tener en cuenta todos los complementos y herramientas tiles de un gestor
de base de datos para mejorar a la informacin que se almacenan en ella,
ayuda a crear la base de datos ms funcionales y sobre todo que sean lo
ms sencillo posible de utilizar por cualquier persona. No hay que olvidar
que al fin y al cabo el usuario final de la aplicacin no sern los
desarrolladores, si no, personas en la mayora de los casos solo saben dar
clic a botones en una ventana o ingresar valores desde un formulario para
trabajar con una base de datos sin que les interesen lo ms mnimo como
es que los valores se aguardan o cual es el proceso que se sigue para
mostrar la consulta.

Todo anterior tiene mucha relacin con los temas anteriores, pues son
algunas de las herramientas que los creadores de la base de datos para
facilitarle la vida a los usuarios finales y solos tengan que dar clics para
tener acceso a la informacin que tiene almacenado, para actualizar o bien
para ingresar nuevos valores.

Tantos procedimientos los procedimientos almacenados, que como se ha
visto son acciones que se crean y se guardan para cumplir cierta funcin,
como los disparadores de base de datos, forma parte de trabajo ms
complejos de los desarrolladores de las base de datos, pero que tienen una
de las finalidades con mayor importancia, facilitar el proceso de
manipulacin de los datos para el usuario

Una transaccin tiene principio y final y solo se puede tener dos estados
si se realiz o no se ha completo la transaccin.

En una unidad lgica de trabajo debe tener 4 propiedades atomicidad,
coherencia, aislamiento y durabilidad.



21
Rollback: este mtodo regresa al estado anterior al BD al no realizarse las
operaciones.

Coherencia : que no tenga cambios hasta que se termine la transaccin
tiene que tener una integridad referencial como los comandos check, triggers,
primary key y foreing key.
.
Una transaccin solo revela sus resultados asta el final de la misma y la
durabilidad no permite que se pierda informacin de las operaciones ya
confirmadas como hechas transicin de estados durante la ejecucin de una
transaccin

Activa:
inicio de transaccin
leer y escribir
fin de transaccin

o parcialmente confirmada:
o confirmacin o aborto
o deshacer o rehacer

Confirmada:

Terminada o fallida

Commit: finaliza la transaccin y confirma la transaccin
Rollback: finaliza la transaccin actual y deshace los cambios realizados
Commit Comment : srve para comentar una transaccin
SavePoint : sirve para crear un punto de restauracin

Niveles de aislamiento: controla la realizacin de bloqueos lectura sucia : son
ejecutadas sin consistencia lectura no repetible : lee los datos previamente y
encuentra los modificados o eliminados lectura fantasma : cuando una
transaccin lee una transaccin y cumple las condiciones hechas por otras
transacciones


Reciben el nombre de cursores implcitos, cuando la sentencia SELECT regresa
solo un registro. Para procesar instrucciones SELECT que devuelvan ms de una
fila, son necesarios cursores explictos combinados con un estructura de bloque.

Un cursor admite el uso de parmetros. Los parmetros deben declararse junto con
el cursor.






22
Cursores implcitos

Un disparador (o trigger) es un tipo especial de procedimiento almacenado asociado
a una tabla que se ejecuta al realizar una operacin bsica (INSERT, un DELETE
o un UPDATE) sobre sta. La operacin bsica que despierta al trigger es conocida
como sentencia disparadora.

La ejecucin del disparador puede ser antes (before) o despus (after) de llevar a
cabo la sentencia disparadora. Es posible especificar condiciones adicionales para la
ejecucin del disparador (restrictores).

Un procedimiento es un subprograma que ejecuta una accin especfica y que no
devuelve ningn valor. Un procedimiento tiene un nombre, un conjunto de
parmetros (opcional) y un bloque de cdigo.

El procedimiento posee instrucciones para atrapar, capturar y gestionar esta
excepcin "ORA-01403: no data found" que sucedira si los nombres de la materia o
del alumno no se encontraran en las tablas correspondientes.

Tambin es posible usar cursores dentro de un procedimiento almacenado. Observe
el siguiente ejemplo que a diferencia de los ejercicios anteriores no genera error si la
consulta no regresa registros. Si usamos %ROWCOUNT es posible conocer cuntos
registros regresa la consulta.

En estas unidades aprendimos que las bases de datos tienen ciertas
caractersticas y estructuras que ayudan a que las transacciones sean mas
seguras en el caso de alguna falla externa e interna, teniendo en cuenta que
solo las transacciones ya terminadas o que se verifican su final de
transacciones queden realizadas.

Y se vio varias formas de recuperacin pueden ser parciales y totales. O
recuperables a cierto punto.

Vous aimerez peut-être aussi