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.

  

martes, 25 de septiembre de 2012

logo y lema del equipo


base de datos en acces y mysql




Alter y Drop

DROP



Sirve para ayudarnos a que, después de haber creado una tabla y/o una base de datos la eliminemos.

Esto se usa con una sintaxis sencilla.


drop database nombre;

donde:

drop=comando.

database=elemento, base de datos o tabla, etc.

nombre= el nombre del elemento

Todo esto seguido de un ";" punto y coma.


Un ejemplo viene a continuación.





ALTER



Sirve para ayudarnos en la modificación de una base de datos o tabla, entre otras ya existentes. La forma de uso es la siguiente:
ALTER table ocupacion RENAME pasatiempos;
donde:
ALTER=comando.
table=elemento, base de datos o tabla, etc.
ocupacion= el nombre del elemento.
RENEAME=comando dentro de la alteración/modificación que se le hará al elemento.
pasateimpos=
el nuevo nombre que se le dará al elemento.
Todo esto seguido de un ";" punto y coma.
Aquí tenemos un ejemplo del comando:

martes, 4 de septiembre de 2012

Motor de Base de Datos:

El Motor de base de datos es el servicio principal para almacenar, procesar y proteger los datos. El Motor de base de datos proporciona acceso controlado y procesamiento de transacciones rápido para cumplir con los requisitos de las aplicaciones consumidoras de datos más exigentes de su empresa.

MyISAM:
Es la tecnología de almacenamiento de datos usada por defecto por el sistema administrador de bases de datos relacionalesMySQL. Este tipo de tablas están basadas en el formato ISAM pero con nuevas extensiones.

INNODB:
Es una tecnología de almacenamiento de datos de código abierto para la base de datos MySQL, incluido como formato de tabla estándar en todas las distribuciones de MySQL AB a partir de las versiones 4.0. Su característica principal es que soportatransacciones de tipo ACID y bloqueo de registros e integridad referencial. InnoDB ofrece una fiabilidad y consistencia muy superior aMyISAM, la anterior tecnología de tablas de MySQL, si bien el mejor rendimiento de uno u otro formato dependerá de la aplicación específica.

Transacciones tipo ACID:

En bases de datos se denomina ACID a un conjunto de características necesarias para que una serie de instrucciones puedan ser consideradas como una transacción. Así pues, si un sistema de gestión de bases de datos es ACID compliant quiere decir que el mismo cuenta con las funcionalidades necesarias para que sus transacciones tengan las características ACID. En concreto ACID es un acrónimo de Atomicity, Consistency, Isolation and Durability: Atomicidad, Consistencia, Aislamiento y Durabilidad en español.
  • 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.
Cumpliendo estos 4 requisitos un sistema gestor de bases de datos puede ser considerado ACID Compliant.

Diferencia entre MyLsam y INNODB:
este procedimiento de volver a crear las tablas las
facilitan herramientas que te recomiendo, como lo es phpmyadmin, las cual te
permite respaldar la BD completa ya sea con tablas innodb o Myisam de una
que hay que bloquearla para tener uso exclusivo mientras se respalda. Hay
manera segura ya que la base de datos puede estar en uso lo que significa otra diferencia muy importante y es que con las tablas Innodb se pude
integridad referencial de otra manera hay que hacer más esfuerzo en program
tener integridad en los datos, esto es proporcionado sólo por la integridad referencial que puedes hacer con las tablas InnoDB. Para asegurar la ación, otro aspecto importante son las transacciones que se hacen con tablas InnoDB en donde; si no se llega a completar una transacción, ya sea porque el sistema quedo colgado por x razón, con las
tablas InnoDB las tablas vuelven a su estado original, o sea no se afecta ninguna tabla mientras no se complete la transacción. Esto cuando por ejm se quiere meter dinero en una cuenta procedente de otra cuenta. Se tienen que llegar a hacer los cambios, deposito y retiro, en ambas cuenta para conservar los valores reales en ambas tablas. De todas formas hay ventajas en tener tablas InnoDB a costa de recursos, pero este costo vale la pena en mi opinión por las características que te ofrece el tener este tipo de tabla.




Como habilitar MyIsame innoBD en MySql:

En MySQL 5.0, el motor de almacenamiento InnoDB está habilitado por defecto. Si no se desean emplear tablas InnoDB, puede agregarse la opción skip-innodb al fichero de opciones de MySQL. Dos recursos basados en disco muy importantes que gestiona el motor de almacenamiento InnoDB son sus ficheros de datos de espacios de tablas y sus ficheros de registro (log). Si no se especifican opciones de configuración para InnoDB, MySQL 5.0 crea en el directorio de datos de MySQL un fichero de datos de 10MB (autoextensible) llamado ibdata1 y dos ficheros de registro (log) de 5MB llamados ib_logfile0 y ib_logfile1.



miércoles, 29 de agosto de 2012

lunes, 27 de agosto de 2012

Lenguaje de definicion de datos


Data Definition Language, DDL por sus siglas 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 definición de las estructuras que almacenarán los datos así como de los procedimientos o funciones que permitan consultarlos.

Para que se utiliza

Un Data Definition Language o Lenguaje de descripción de datos ( DDL ) es un lenguaje de programación para definir estructuras de datos . El DDL término fue introducido por primera vez en relación con el Codasyl modelo de base de datos, donde el esquema de la base de datos ha sido escrito en un lenguaje de descripción de datos que describen los registros, los campos, y conjuntos que conforman el usuario modelo de datos . Más tarde fue usado para referirse a un subconjunto de sql, pero ahora se utiliza en un sentido genérico para referirse a cualquier lenguaje formal para describir datos o estructuras de información, como los esquemas xml.


Ejemplo

agregar/quitar campos a una tabla, modificar el tipo de un campo, agregar/quitar índices a una tabla, modificar un trigger, etc.
Ejemplo (agregar columna a una tabla)

ALTER TABLE 'NOMBRE_TABLA' ADD NUEVO_CAMPO INT UNSIGNED;
DROP
Este comando elimina un objeto de la base de datos. Puede ser una tabla, vista, índice, trigger, función, procedimiento o cualquier otro objeto que el motor de la base de datos soporte. Se puede combinar con la sentencia alter.

Ejemplo

 DROP TABLE 'NOMBRE_TABLA';
TRUNCATE
Este comando trunca todo el contenido de una tabla. La ventaja sobre el comando drop, es que si se quiere borrar todo el contenido de la tabla, es mucho más rápido, especialmente si la tabla es muy grande. La desventaja es que truncate sólo sirve cuando se quiere eliminar absolutamente todos los registros, ya que no se permite la cláusula where. Si bien, en un principio, esta sentencia parecería ser DML (Lenguaje de Manipulación de Datos), es en realidad una DDL, ya que internamente, el comando truncate borra la tabla y la vuelve a crear y no ejecuta ninguna transacción.

Ejemplo

 TRUNCATE TABLE 'NOMBRE_TABLA';

martes, 21 de agosto de 2012

Que es Mysql?
es un sistema de gestión de bases de datos relacional, multihilo y multiusuario lenguaje de consulta estructurado, considerado como un estándar para las bases de datos relacionales.
El objetivo que persigue esta empresa consiste en que MySQL cumpla el estándar SQL, pero sin sacrificar velocidad, fiabilidad o usabilidad.

Donde obtener el software?
http://dev.mysql.com/doc/refman/5.0/es/installing.html
es la pagina oficial

Cuales son los requerimientos?
Debe determinarse si la plataforma donde se desea hacer la instalación está soportada
Debe elegirse la distribución que se instalará
Descargar la distribución que se desea instalar.
Instalar la distribución
Realizar cualquier ajuste que sea necesario con posterioridad a la instalación.

Como instalar Mysql?
Antes de instalar MySQL, se debería hacer lo siguiente:
  1. Determinarse si la plataforma donde se desea hacer la instalación está soportada.
  2. Elegirse la distribución que se instalará.
  3. Descargar la distribución que se desea instalar y verificar su integridad.
Dentro de su directorio de instalación, la conformación de una instalación de código fuente difiere de una binaria en los siguientes aspectos:
  • El servidor mysqld se instala en el directorio libexec en lugar de en el directorio bin.
  • El directorio para los datos es var en lugar de data.
  • mysql_install_db se instala en el directorio bin en lugar de scripts.
  • Los directorios de ficheros de inclusión y bibliotecas son include/mysql y lib/mysql en lugar de include y lib.
Se puede crear una instalación binaria propia a partir de una distribución de código fuente compilada si se ejecuta el script scripts/make_binary_distribution desde el directorio principal de la distribución de código fuente.