miércoles, 14 de noviembre de 2012


¿Cuándo  debemos usar cursores?

Los cursores se utilizan para manejar las sentencias SELECT. Un cursor esta formado por un conjunto de registros devueltos por una instrucción SQL del tipo SELECT. Desde un punto de visto interno a la base de datos, los cursores son segmentos de memoria utilizados para realizar operaciones con los registros devueltos tras ejecutar una sentencia SELECT.

Reciben el nombre de cursores implícitos, cuando la sentencia SELECT regresa solo un registro. Para procesar instrucciones SELECT que devuelvan más de una fila, son necesarios cursores explicítos combinados con un estructura de bloque.

Un cursor admite el uso de parámetros. Los parámetros deben declararse junto con el cursor.


¿Como crear y  llamar un proceso en mysql?


Un disparador (o trigger) es un tipo especial de procedimiento almacenado asociado a una tabla que se ejecuta al realizar una operación “básica” (INSERT, un DELETE o un UPDATE) sobre ésta. La operación básica que despierta al trigger es conocida como sentencia disparadora.

La ejecución del disparador puede ser antes (before) o después (after) de llevar a cabo la sentencia disparadora. Es posible especificar condiciones adicionales para la ejecución del disparador (restrictores).

Dado que una sentencia disparadora puede afectar una o más filas de una tabla, es necesario especificar si se quiere que el disparador se ejecute para cada una de las filas afectadas o para el bloque en general.

Para diseñar un disparador hay que cumplir dos requisitos:

  • Especificar las condiciones en las que se va a ejecutar el disparador. Esto se descompone en un evento que causa la comprobación del disparador y una condición que se debe cumplir para ejecutar el disparador.
  • Especificar las acciones que se van a realizar cuando se ejecute el disparador.


Los triggers constituyen una potente herramienta para mantener la integridad de la base de datos, ya que pueden llevar a cabo cualquier acción que sea necesaria para el mantenimiento de dicha integridad.


Los triggers pueden llamar a otros procedimientos y disparar otros triggers, pero no admiten parámetros y no pueden ser invocados desde otros procedimientos.

Los disparadores sea activan al crearlos.

¿Como crear Una funcion en mysql?


Hay dos formas de añadir nuevas funciones a MySQL:

  • Puede añadir funciones con la interfaz de funciones definidas de usuario (UDF) (N.del T. Acrónimo para User Defined Functions). Las funciones definidas por el usuario se ocmpilan como ficheros objeto y se añaden y borran del servidor dinámicamente usando los comandos CREATE FUNCTION y DROP FUNCTION . Consulte Sección 27.2.2, “Sintaxis de CREATE FUNCTION/DROP FUNCTIOn.
  • Puede añadir funciones como funciones nativas MySQL. Se compilan en el servidor mysqld y están disponibles permanentemente.

Cada método tiene ventajas y desventajas:

  • Si escribe funciones definidas por el usuario, debe instalar ficheros objeto además del servidor mismo. Si compilar su función en el servidor, no necesita hacerlo.
  • Puede añadir UDFs a distribuciones binarias MySQL . Las funciones nativas requieren modificar una distribución fuente.
  • Si actualiza su distribución MySQL , puede continuar usando las UDFs previamente instaladas, a no ser que actualice a una versión en la que la interfaz UDF cambie. (Un cambio incompatible ocurrió en MySQL 4.1.1 para funciones agregadas. Una función llamada xxx_clear() debe definirse en lugar de xxx_reset().) Para funciones nativas, debe repetir sus modificaciones cada vez que actualice.

 

 

martes, 6 de noviembre de 2012

Creacion de los usuarios












ver la tabla de usuarios












Privilegios












Conectar un usuario












revocando privilegios

lunes, 5 de noviembre de 2012

1.¿Qué es una transacción?

Es una unidad de la ejecución de un programa que lee y escribe datos a y desde la Base de Datos. Puede consistir en varias operaciones de acceso a la base de datos. 
Una Transacción está delimitada por instrucciones de inicio transacción y fin transacción (la transacción consiste en todas las operaciones que se ejecutan entre inicio transacción y fin transacción).
Es un conjunto de órdenes que se ejecutan formando una unidad de trabajo, es decir, en forma indivisible o atómica.

2.¿Qué significa ACID? y defina cada una de las palabras que forman las siglas

En concreto ACID es un acrónimo de Atomicity, Consistency, Isolation and Durability: Atomicidad, Consistencia, Aislamiento y Durabilidad en español. Son características necesarias para que una serie de instrucciones puedan ser consideradas como una transaccion. Así pues, si un sgbd es ACID compliant quiere decir que el mismo cuenta con las funcionalidades necesarias para que sus transacciones tengan las características ACID. 

  • Atomicidad: es la propiedad que asegura que la operación se ha realizado o no, y por lo tanto ante un fallo del sistema no puede quedar a medias.
  • Consistencia: Integridad. Es la propiedad que asegura que sólo se empieza aquello que se puede acabar. Por lo tanto se ejecutan aquellas operaciones que no van a romper las reglas y directrices de integridad de la base de datos. La propiedad de consistencia sostiene que cualquier transacción llevará a la base de datos desde un estado válido a otro también válido.
  • Aislamiento: es la propiedad que asegura que una operación no puede afectar a otras. Esto asegura que la realización de dos transacciones sobre la misma información sean independientes y no generen ningún tipo de error.
  • Durabilidad: es la propiedad que asegura que una vez realizada la operación, ésta persistirá y no se podrá deshacer aunque falle el sistema.
3.¿Para que nos sirve el Rollback?

nos sirve para volver al inicio a un procedimiento si este falla por medio de una sentencia simple en SQL. Por ejemplo tengamos la siguiente sentencia:

UPDATE Productos SET Precio=20 WHERE Nombre =’Cereales’ (esta es una sentencia simple o autocommit "que significa autocompletada" o sentencia directa ).

Un rollback es una operación que devuelve a la base de datos a algún estado previo. Los Rollbacks son importantes para la integridad de la base de datos, a causa de que significan que la base de datos puede ser restaurada a una copia limpia incluso después de que se han realizado operaciones erróneas.
Siempre cuando ejecutemos o depuramos cualquier SQL estos siempre se guardan en un fichero de Log y despues se hacen las modificacion en la DB, en este punto sirve la utilidad de ROLLBACK TRAN que nos ayuda a volver a reinicar el procedidmiento a su estado actual sin modificar los datos y perder la informacion de la sentencia si esta falla al momento de ejecutarse; mas que todo estas sentecias se utilizan en la creacion de procedimientos almacenados y no directamente en una consulta simple de vista en SQL ya que forma parte de las funciones TRANSACT SQL.   


4.Defina Integridad de datos 

Se refiere a la corrección y completitud de los datos en una base de datos. Cuando los contenidos se modifican con sentencias INSERT, DELETE o UPDATE, la integridad de los datos almacenados puede perderse de muchas maneras diferentes. Pueden añadirse datos no válidos a la base de datos, tales como un pedido que especifica un producto no existente.

Pueden modificarse datos existentes tomando un valor incorrecto, como por ejemplo si se reasigna un vendedor a una oficina no existente. Los cambios en la base de datos pueden perderse debido a un error del sistema o a un fallo en el suministro de energía. Los cambios pueden ser aplicados parcialmente, como por ejemplo si se añade un pedido de un producto sin ajustar la cantidad disponible para vender.

  • Activa. El estado inicial , la transacción permanece en este estado durante su ejecución.
  • Parcialmente comprometida. Después de ejecutarse  la ultima instrucción.
  • Fallida. Tras descubrir que no puede continuar la ejecución normal.
  • Abortada. Después de haber retrocedido la transacción y restablecido la base de datos a su estado anterior al comienzo de la transacción.
  • Comprometida.  Tras completarse con  éxito.
  • Lectura sucia. Las sentencias SELECT son ejecutadas sin realizar bloqueos, pero podría usarse una versión anterior de un registro. Por lo tanto, las lecturas no son consistentes al usar este nivel de aislamiento.
  • Lectura norepetible. Una transacción vuelve a leer datos que previamente había leído y encuentra que han sido modificados o eliminados por una transacción cursada.
  • Lectura fantasma. Una transacción vuelve a ejecutar una consulta, devolviendo un conjuto de registros que satisfacen una condición de búsqueda y encuentra que otros registro que satisfacen la condición han sido insertadas por otra transacción cursada.



    5.Defina concurrencia
      
     se refiere al hecho de que los DBMS(SISTEMAS DE ADMINISTRACION DE BD) permiten que muchas transacciones puedan accesar a una misma base de datos a la vez. 

Defina Grado de consistencia
Podría definirse como la coherencia entre todos los datos de la base de datos. Cuando se pierde la integridad también se pierde la consistencia. Pero la consistencia también puede perderse por razones de funcionamiento.
El control de transacciones concurrentes en una base de datos brinda un eficiente desempeño del Sistema de Base de datos, ya que permite controlar la ejecución de transacciones que operan en paralelo, accesando a información compartida y, por lo tanto, interfiriendo potencialmente unas con otras.
Mencione aspectos relacionados al procesamiento de transacciones
Los siguientes son los aspectos más importantes relacionados con el procesamiento de transacciones:
  *    Algoritmos de control de concurrencia
Deben sincronizar la ejecución de transacciones concurrentes bajo el criterio de correctitud. La consistencia entre transacciones se garantiza mediante el aislamiento de las mismas.
*     Protocolos de control de replicas
 Se refiere a como garantizar la consistencia mutua de datos replicados. El procesamiento de transacciones básicamente  consiste en una serie de modificaciones (transacciones) a un determinado recurso del sistema (por ejemplo una base de datos) y en donde se define un punto de inicio y un punto de terminación que define un bloque entre el conjunto de operaciones que son realizadas.
*     Modelo de estructura de transacciones
 Es importante considerar si las transacciones son planas o anidadas.
*     Consistencia de la base de datos interna 
Los algoritmos de control de datos tienen que satisfacer las restricciones de integridad cuando una transacción pretende hacer un compromiso.
*     Protocolos de confiabilidad
En transacciones distribuidas es necesario introducir medios de comunicación entre los diferentes nodos de una red para garantizar la atomicidad de las transacciones.
 
Defina los estados de una transacción:
  • Activa (Active): estado inicial, la transaccion permanece en este estado durante su ejecucion.
  • Parcialmente comprometida (Uncommited): despues de ejecutarse la ultima instruccion.
  • Fallida (Failed): tras descubrir que no puede continuar la ejecucion normal
  • Abortada (Rolled Back): despues de haber retrocedido la transaccion y restablecido la base de datos a su estado anterior al comienzo de la transaccion.
  • Comprometida (Commited): tras completarse con exito

 El estándar ANSI/ISO SQL define cuatro niveles de aislamiento transaccional en función de tres eventos que son permitidos o no dependiendo del nivel de aislamiento. Estos eventos son:

Lectura fantasma. Una transacción vuelve a ejecutar una consulta, devolviendo un conjuto de registros que satisfacen una condición de búsqueda y encuentra que otros registro que satisfacen la condición han sido insertadas por otra transacción cursada.

Lectura sucia. Las sentencias SELECT son ejecutadas sin realizar bloqueos, pero podría usarse una versión anterior de un registro. Por lo tanto, las lecturas no son consistentes al usar este nivel de aislamiento.

 Lectura no repetible. Una transacción vuelve a leer datos que previamente había leído y encuentra que han sido modificados o eliminados por una transacción cursada.
   
 y con estos obtenemos los niveles de aislamiento.