24-10-2007 Interplanet MySQL 5.x Hugo Alfonso Palma García
Temario
Panorámica del sistema de gestión de base de datos MySQL
Las principales características de MySQL
Qué hay de nuevo en MySQL 5.0x
Tipo de dato BIT
Tipo de dato VARCHAR
INFORMATIONS_SCHEME
El gestor de instancias
Matemáticas de precisión
Cursores
Procedimientos almacenados y funciones
Disparadores
Vistas
MySQL 5.x
Panorámica del sistema de gestión de base de datos MySQL
MySQL, es el sistema de gestión de bases de datos SQL Open Source más popular, lo desarrolla, distribuye y soporta MySQL AB.
MySQL es un sistema de gestión de bases de datos relacionales.
MySQL usa “SQL estándar”, llámese estándar al más actual que es el 2003.
El servidor de base de datos MySQL es muy rápido, fiable y fácil de usar.
Panorámica del sistema de gestión de base de datos MySQL
MySQL Server se desarrolló originalmente para tratar grandes bases de datos mucho más rápido que soluciones existentes.
MySQL Server trabaja en entornos cliente/servidor o incrustados.
Una gran cantidad de software de contribuciones está disponible para MySQL.
La forma oficial de pronunciar "MySQL" es "My Ess Quiu Ell" (no "my sicuel").
Interioridades y portabilidad
Escrito en C y en C++. Probado con un amplio rango de compiladores diferentes
Funciona en diferentes plataformas.
Usa GNU Automake, Autoconf, y Libtool para portabilidad.
APIs disponibles para C, C++, Eiffel, Java, Perl, PHP, Python, Ruby, y Tcl.
Uso completo de multi-threaded mediante threads del kernel.
Proporciona sistemas de almacenamiento transaccionales y no transaccionales.
Las principales características de MySQL
Usa tablas en disco B-tree ( MyISAM ) muy rápidas con compresión de índice.
Relativamente sencillo de añadir otro sistema de almacenamiento.
Un sistema de reserva de memoria muy rápido basado en threads.
Joins muy rápidos usando un multi-join de un paso optimizado.
Tablas hash en memoria, que son usadas como tablas temporales.
Las principales características de MySQL
Las funciones SQL están implementadas usando una librería altamente optimizada.
Se prueba que el código MySQL no ocasione pérdida de memoria con software comercial.
El servidor está disponible como un programa separado para usar en un entorno de red cliente/servidor o bien como biblioteca y puede ser incrustado en aplicaciones autónomas.
Las principales características de MySQL
Tipos de columnas
Diversos tipos de columnas.
Registros de longitud fija y longitud variable.
Seguridad
Un sistema de privilegios y contraseñas que es muy flexible y seguro, y que permite verificación basada en el host.
Todo intercambio de información esta cifrada.
Las principales características de MySQL
Escalabilidad y límites
Soporte a grandes bases de datos.
Se permiten hasta 64 índices por tabla y 32 antes de MySQL 4.1.2.
Un índice puede usar prefijos de una columna para los tipos de columna CHAR , VARCHAR , BLOB , o TEXT .
Las principales características de MySQL
Conectividad
Los clientes pueden conectar con el servidor MySQL usando sockets TCP/IP en cualquier plataforma.
La interfaz para el conector ODBC (MyODBC).
La interfaz para el conector J MySQL.
Las principales características de MySQL
Localización
El servidor puede proporcionar mensajes de error en muchos idiomas.
Soporte completo para distintos conjuntos de caracteres.
Todos los datos se guardan en el conjunto de caracteres elegido.
Todas las comparaciones para columnas normales de cadenas de carácteres son case-insensitive.
Las principales características de MySQL
Clientes y herramientas
MySQL server tiene soporte para comandos SQL para chequear, optimizar, y reparar tablas.
Todos los programas MySQL pueden invocarse con las opciones --help o -? para obtener asistencia en línea.
Las principales características de MySQL
Nuevas bondades de MySQL 5.0x
Que hay de nuevo en MySQL 5.0x
Tipo de dato Bit
Tipo Bytes Valor Mínimo Valor Máximo BIT 1 1 64
Que hay de nuevo en MySQL 5.0x
Tipo de datos VARCHAR
Soporte nativo VARCHAR .
La longitud máxima de VARCHAR es 65,532 bytes.
No se cortan espacios en blanco consecutivos
Almacena los valores usando sólo los carácteres necesarios, más un byte adicional para la longitud (dos bytes para columnas que se declaran con una longitud superior a 255).
Que hay de nuevo en MySQL 5.0x
INFORMATIONS_SCHEME
El soporte para INFORMATION_SCHEMA está disponible en MySQL 5.0.2 y posterior.
Proporciona acceso a los metadatos de la base de datos.
Ventajas de SELECT contra el show.
El comando SELECT ... FROM INFORMATION_SCHEMA es una forma más consistente de proporcionar acceso a la información proporcionada por los comandos SHOW.
Cumple las reglas de Codd.
Que hay de nuevo en MySQL 5.0x
Nadie necesita aprender una nueva sintaxis. Conocen cómo funciona SELECT, pero si aprender los nombres de los objetos.
El implementador no tiene que preocuparse de palabras clave.
Hay millones de variaciones de la salida, en lugar de sólo una. Esto proporciona flexibilidad a las aplicaciones con requerimientos cambiantes acerca de los metadatos que necesitan.
La migración es más fácil ya que todos los otros DBMS funcionan así.
Que hay de nuevo en MySQL 5.0x
El gestor de instancias de MySQL.
Este es el demonio que corre en el puerto TCP/IP.
Está disponible para sistemas operativos basados en Unix.
MySQL (IM) se incluye en las distribuciones de MySQL desde la versión 5.0.3.
Que hay de nuevo en MySQL 5.0x
Creación de cuentas de usuario
El IM almacena su información de usuario en un fichero de contraseñas. La localización por defecto para el fichero de contraseñas es /etc/mysqlmanager.passwd
Las entradas para las contraseñas se parecen a las siguiente:
petr:*35110DC9B4D8140F5DE667E28C72DD2597B5C848
Para generar una entrada así debe invocarse IM con la opción –passwd y rediccionar la salida al archivo de las contraseñas.
mysql> CREATE FUNCTION hello (s CHAR(20)) RETURNS CHAR(50)
-> RETURN CONCAT('Hello, ',s,'!');
-> //
mysql> delimiter ;
Que hay de nuevo en MySQL 5.0x
Ejecución:
mysql> SELECT hello('world');
+------------------+
| hello('world') |
+------------------+
| Hello, world! |
+------------------+
Que hay de nuevo en MySQL 5.0x
ALTER PROCEDURE y ALTER FUNCTION
Este comando cambia las características de un procedimiento o función almacenada.
DROP PROCEDURE y DROP FUNCTION
Este comando borrar un procedimiento o función almacenado.
Que hay de nuevo en MySQL 5.0x
SHOW CREATE PROCEDURE y SHOW CREATE FUNCTION
Retorna la cadena exacta que puede usarse para recrear la rutina nombrada.
SHOW PROCEDURE STATUS y SHOW FUNCTION STATUS
Retorna características de rutinas, como el nombre de la base de datos, nombre, tipo, creador y fechas de creación y modificación.
También puede obtener información de rutinas almacenadas de la tabla ROUTINES en INFORMATION_SCHEMA .
Que hay de nuevo en MySQL 5.0x
Disparadores (triggers)
A partir de MySQL 5.0.2 se incorporó el soporte básico para disparadores (triggers).
Un disparador es un objeto con nombre dentro de una base de datos el cual se asocia con una tabla y se activa cuando ocurre en ésta un evento en particular.
Que hay de nuevo en MySQL 5.0x
momento_disp es el momento en que el disparador entra en acción. Puede ser BEFORE (antes) o AFTER (despues).
evento_disp indica la clase de sentencia que activa al disparador. Puede ser INSERT , UPDATE , o DELETE . Por ejemplo, un disparador BEFORE para sentencias INSERT podría utilizarse para validar los valores a insertar.
Que hay de nuevo en MySQL 5.0x
No puede haber dos disparadores en una misma tabla que correspondan al mismo momento y evento.
sentencia_disp es la sentencia que se ejecuta cuando se activa el disparador. Si se desean ejecutar múltiples sentencias, deben colocarse entre BEGIN ... END , el constructor de sentencias compuestas.
Antes de MySQL 5.0.10, los disparadores no podían contener referencias directas a tablas por su nombre. A partir de MySQL 5.0.10, se pueden escribir disparadores como el llamado testref , que se muestra en el siguiente ejemplo:
Que hay de nuevo en MySQL 5.0x
DELIMITER |
CREATE TRIGGER testref BEFORE INSERT ON test1
FOR EACH ROW BEGIN
INSERT INTO test2 SET a2 = NEW.a1;
DELETE FROM test3 WHERE a3 = NEW.a1;
UPDATE test4 SET b4 = b4 + 1 WHERE a4 = NEW.a1;
END
|
DELIMITER ;
Que hay de nuevo en MySQL 5.0x
Las columnas de la tabla asociada con el disparador pueden referenciarse empleando los alias OLD y NEW .
Actualmente, los disparadores no son activados por acciones llevadas a cabo en cascada por las restricciones de claves extranjeras
Que hay de nuevo en MySQL 5.0x
DROP TRIGGER
Elimina un disparador.
FOR EACH ROW
Define lo que se ejecutará cada vez que el disparador se active, lo cual ocurre una vez por cada fila afectada por la sentencia activadora.
OLD y NEW
El disparador no puede referirse a tablas directamente por su nombre, incluyendo la misma tabla a la que está asociado. Sin embargo, se pueden emplear las palabras clave OLD y NEW .
Que hay de nuevo en MySQL 5.0x
El disparador no puede invocar procedimientos almacenados utilizando la sentencia CALL .
El disparador no puede utilizar sentencias que inicien o finalicen una transacción.
En un disparador para INSERT , solamente puede utilizarse NEW. nom_col.
Que hay de nuevo en MySQL 5.0x
En un disparador para DELETE sólo puede emplearse OLD. nom_col .
En un disparador para UPDATE se puede emplear OLD. nom_col y NEW. nom_col para referirse a las columnas del registro luego de actualizarlo.
Una columna precedida por OLD es de sólo lectura.
Que hay de nuevo en MySQL 5.0x
Una columna precedida por NEW puede ser referenciada si se tiene el privilegio SELECT sobre ella. En un disparador BEFORE , también es posible cambiar su valor con SET NEW. nombre_col = valor si se tiene el privilegio de UPDATE sobre ella.
En un disparador BEFORE , el valor de NEW para una columna AUTO_INCREMENT es 0.
Que hay de nuevo en MySQL 5.0x
Si falla es un disparador BEFORE , no se ejecuta la operación en el correspondiente registro.
Un disparador AFTER se ejecuta solamente si el disparador BEFORE (de existir) y la operación se ejecutaron exitosamente.
Un error durante la ejecución de un disparador BEFORE o AFTER deriva en la falla de toda la sentencia que provocó la invocación del disparador.
Que hay de nuevo en MySQL 5.0x
En tablas transaccionales, la falla de un disparador (y por lo tanto de toda la sentencia) debería causar la cancelación (rollback) de todos los cambios realizados por esa sentencia
Que hay de nuevo en MySQL 5.0x
Vistas (Views)
Las vistas (incluyendo vistas actualizables) fueron introducidas en la versión 5.0 del servidor de base de datos MySQL
Las vistas son útiles para permitir acceder a los usuarios a un conjunto de relaciones (tablas) como si fueran una sola, y limitar su acceso a las mismas.
Que hay de nuevo en MySQL 5.0x
CREATE VIEW
Esta sentencia crea una vista nueva o reemplaza una existente si se incluye la cláusula OR REPLACE.
Ejemplo
CREATE VIEW v1 AS SELECT * FROM t1 WHERE a < 2 WITH CHECK OPTION;
CREATE VIEW v1 AS SELECT * FROM t1 WHERE a < 2 -> WITH CHECK OPTION;
Que hay de nuevo en MySQL 5.0x
La definición de una vista está sujeta a las siguientes limitaciones:
La sentencia SELECT no puede contener una subconsulta en su cláusula FROM .
La sentencia SELECT no puede hacer referencia a variables del sistema o del usuario.
La sentencia SELECT no puede hacer referencia a parámetros de sentencia preparados.
Dentro de una rutina almacenada, la definición no puede hacer referencia a parámetros de la rutina o a variables locales.
Cualquier tabla o vista referenciada por la definición debe existir.
Que hay de nuevo en MySQL 5.0x
Algunas vistas son actualizables.
La opcion WITH CHECK OPTION puede utilizarse en una vista actualizable para evitar inserciones o actualizaciones excepto en los registros en que la cláusula WHERE de la sentencia_select se evalúe como true.
En la cláusula WITH CHECK OPTION de una vista actualizable, las palabras reservadas LOCAL y CASCADED determinan el alcance de la verificación
Que hay de nuevo en MySQL 5.0x
ALTER VIEW
Esta sentencia modifica la definición de una vista existente
0 comments
Post a comment