Exposicion Mysql

download Exposicion Mysql

If you can't read please download the document

Transcript of Exposicion Mysql

  • 1. 24-10-2007 Interplanet MySQL 5.x Hugo Alfonso Palma Garca

2.

  • Temario
  • Panormica del sistema de gestin de base de datos MySQL
  • Las principales caractersticas de MySQL
  • Qu hay de nuevo en MySQL 5.0x
    • Tipo de dato BIT
    • Tipo de dato VARCHAR
    • INFORMATIONS_SCHEME
    • El gestor de instancias
    • Matemticas de precisin
    • Cursores
    • Procedimientos almacenados y funciones
    • Disparadores
    • Vistas
  • MySQL 5.x

3. Panormica del sistema de gestin de base de datos MySQL

  • MySQL,es el sistema de gestin de bases de datos SQL Open Source ms popular, lo desarrolla,distribuye y soporta MySQL AB.
  • MySQL es un sistema de gestin de bases de datos relacionales.
  • MySQL usa SQL estndar, llmese estndar al ms actual que es el 2003.
  • El servidor de base de datos MySQL es muy rpido, fiable y fcil de usar.

4. Panormica del sistema de gestin de base de datos MySQL

  • MySQL Server se desarroll originalmente para tratar grandes bases de datos mucho ms rpido 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").

5.

  • Interioridades y portabilidad
    • Escrito en C y en C++. Probado con un amplio rango decompiladores 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 delkernel.
    • Proporciona sistemas de almacenamiento transaccionales y no transaccionales.

Las principales caractersticas de MySQL 6.

    • Usa tablas en disco B-tree ( MyISAM ) muy rpidas concompresin de ndice.
    • Relativamente sencillo de aadir otro sistema de almacenamiento.
    • Un sistema de reserva de memoria muy rpido basado en threads.
    • Joins muy rpidos usando un multi-join de un pasooptimizado.
    • Tablas hash en memoria, que son usadas como tablastemporales.

Las principales caractersticas de MySQL 7.

    • Las funciones SQL estn implementadas usando una librera altamente optimizada.
    • Se prueba que el cdigo MySQL no ocasione prdida de memoria con software comercial.
    • El servidor est disponible como un programa separadopara usar en un entorno de red cliente/servidor o biencomo biblioteca y puede ser incrustado en aplicacionesautnomas.

Las principales caractersticas de MySQL 8.

  • Tipos de columnas
    • Diversos tipos de columnas.
    • Registros de longitud fija y longitud variable.
  • Seguridad
    • Un sistema de privilegios y contraseas que es muyflexible y seguro, y que permite verificacin basada en elhost.
    • Todo intercambio de informacin esta cifrada.

Las principales caractersticas de MySQL 9.

  • Escalabilidad y lmites
    • Soporte a grandes bases de datos.
    • Se permiten hasta 64 ndices por tabla y 32 antes deMySQL 4.1.2.
    • Un ndice puede usar prefijos de una columna para lostipos de columnaCHAR ,VARCHAR ,BLOB , oTEXT .

Las principales caractersticas de MySQL 10.

  • 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 caractersticas de MySQL 11.

  • Localizacin
    • El servidor puede proporcionar mensajes de error enmuchos 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 decadenas de carcteres son case-insensitive.

Las principales caractersticas de MySQL 12.

  • 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--helpo-?para obtener asistencia en lnea.

Las principales caractersticas de MySQL 13. Nuevas bondades deMySQL 5.0x 14. Que hay de nuevo en MySQL 5.0x

  • Tipo de dato Bit

Tipo Bytes Valor Mnimo Valor Mximo BIT 1 1 64 15. Que hay de nuevo en MySQL 5.0x

  • Tipo de datosVARCHAR
    • Soporte nativoVARCHAR .
    • La longitud mxima deVARCHARes 65,532 bytes.
    • No se cortan espacios en blanco consecutivos
    • Almacena los valores usando slo los carcteresnecesarios, ms un byte adicional para la longitud (dosbytes para columnas que se declaran con una longitudsuperior a 255).

16. 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 deSELECT contra el show.
      • El comando SELECT ... FROM INFORMATION_SCHEMA es una forma ms consistente de proporcionar acceso a la informacinproporcionada por los comandos SHOW.
      • Cumple las reglas de Codd.

17. Que hay de nuevo en MySQL 5.0x

      • Nadie necesita aprender una nueva sintaxis. Conocen cmofunciona 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 slo una.Esto proporciona flexibilidad a las aplicaciones conrequerimientos cambiantes acerca de los metadatos quenecesitan.
      • La migracin es ms fcil ya que todos los otros DBMS funcionan as.

18. 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 enUnix.
    • MySQL (IM) se incluye en las distribuciones de MySQLdesde la versin 5.0.3.

19. Que hay de nuevo en MySQL 5.0x

  • Creacin de cuentas de usuario
    • El IM almacena su informacin de usuario en un ficherode contraseas. La localizacin por defecto para el fichero de contraseas es /etc/mysqlmanager.passwd
    • Las entradas para las contraseas se parecen a lassiguiente:
    • petr:*35110DC9B4D8140F5DE667E28C72DD2597B5C848
    • Para generar una entrada as debe invocarse IM con laopcin passwd y rediccionar la salida al archivo de lascontraseas.

20. Que hay de nuevo en MySQL 5.0x

  • Ejemplo de registro de usuario.
    • ./mysqlmanager --passwd >> /etc/mysqlmanager.passwd
    • Creating record for new user.
    • Enter user name: mike
    • Enter password:
    • Re-type password:
    • La siguiente lnea se aade a /etc/mysqlmanager.passwd:
    • mike:*00A51F3F48415C7D4E8908980D443C29C69B60C9
    • Si no hay entradas en el fichero /etc/mysqlmanager.passw
    • no puede conectarse al IM.

21. Que hay de nuevo en MySQL 5.0x

  • Matemticas de precisin
    • La matemtica de precisin se basa en dos cambios deimplementacin:
      • La introduccin de nuevos modos SQL en MySQL 5.0.2 quecontrolan lo estricto que es el servidor para aceptar o rechazardatos invlidos.
      • La introduccin en MySQL 5.0.3 de una biblioteca para aritmtica de punto fijo.

22. Que hay de nuevo en MySQL 5.0x

    • Estos cambios tienen varias implicaciones para operaciones numricas:
      • Clculos ms precisos.
      • Para nmeros exactos, los clculos no introducen error en coma flotante.
      • Comportamiento bien definido para el redondeo.
      • Independencia de plataforma mejorada.
      • Control sobre tratamiento de datos invlidos.
      • Desbordamiento y divisin por cero pueden detectarse y tratarse como errores.
      • Un resultado importante de estos cambios es que MySQL proporciona un mejor cumplimiento del estndar SQL.

23. Que hay de nuevo en MySQL 5.0x

  • Cambios en el tipo de datos DECIMAL
    • Formato de almacenamiento
    • Las extensiones MySQL no estndar al rango superior de columnasDECIMAL
    • El rango de valores para los argumentos de DECIMAL ha cambiado.
    • La extensin no estndard MySQL del rango superior decolumnasDECIMALno se soporta.
    • Los carcteres precedentes ' + ' y ' 0 ' no se almacenan.

24. Que hay de nuevo en MySQL 5.0x

  • Cursores
    • Se soportan cursores simples dentro de procedimientos y funciones almacenadas.
    • Sirven para almacenar valores retornados por unSELECT en procedimientos almacenados.

25. Que hay de nuevo en MySQL 5.0x

  • Ejemplo de cursor
  • CREATE PROCEDURE curdemo()
  • BEGIN
  • DECLARE done INT DEFAULT 0;
  • DECLARE a CHAR(16);
  • DECLARE b,c INT;
  • DECLARE cur1 CURSOR FOR SELECT id,data FROM test.t1;
  • DECLARE cur2 CURSOR FOR SELECT i FROM test.t2;
  • DECLARE CONTINUE HANDLER FOR SQLSTATE '02000' SET done = 1;
  • OPEN cur1;
  • OPEN cur2;
  • REPEAT
  • FETCH cur1 INTO a, b;
  • FETCH cur2 INTO c;
  • IF NOT done THEN
  • IF b < c THEN
  • INSERT INTO test.t3 VALUES (a,b);
  • ELSE
  • INSERT INTO test.t3 VALUES (a,c);
  • END IF;
  • END IF;
  • UNTIL done END REPEAT;
  • CLOSE cur1;
  • CLOSE cur2;
  • END

26. Que hay de nuevo en MySQL 5.0x

  • Procedimientos almacenados y funciones
    • Un procedimiento almacenado es un conjunto decomandos SQL que pueden almacenarse en el servidor.
      • Situaciones en las que los procedimientos almacenados puedenser muy tiles:
        • Cuando mltiples aplicaciones cliente se escriben en distintos lenguajes o funcionan en distintas plataformas.
        • Cuando la seguridad es muy importante.
        • Pueden mejorar el rendimiento.
        • MySQL sigue la sintaxis SQL:2003 para procedimientosalmacenados, que tambin usa IBM DB2.
        • La implementacin en MySQL an est en progreso.

27. Que hay de nuevo en MySQL 5.0x

  • Ejemplo de procedimiento
    • mysql> delimiter //
    • mysql> CREATE PROCEDURE simpleproc (OUT param1INT)
    • -> BEGIN
    • ->SELECT COUNT(*) INTO param1 FROM t;
    • -> END
    • -> //
    • mysql> delimiter ;

28. Que hay de nuevo en MySQL 5.0x

    • Ejecucin:
    • mysql> CALL simpleproc(@a);
    • mysql> SELECT @a;
    • | @a|
    • +------+
    • | 3|
    • +------+

29. Que hay de nuevo en MySQL 5.0x

  • Ejemplo de funcin:
    • mysql> delimiter //
    • mysql> CREATE FUNCTION hello (s CHAR(20)) RETURNS CHAR(50)
    • -> RETURN CONCAT('Hello, ',s,'!');
    • -> //
    • mysql> delimiter ;

30. Que hay de nuevo en MySQL 5.0x

  • Ejecucin:
    • mysql> SELECT hello('world');
    • +------------------+
    • | hello('world') |
    • +------------------+
    • | Hello, world!|
    • +------------------+

31. Que hay de nuevo en MySQL 5.0x

  • ALTER PROCEDURE y ALTER FUNCTION
    • Este comando cambia las caractersticas de unprocedimiento o funcin almacenada.
  • DROP PROCEDURE y DROP FUNCTION
    • Este comando borrar un procedimiento o funcinalmacenado.

32. 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 caractersticas de rutinas, como el nombre de la base de datos, nombre, tipo, creador y fechas de creacin y modificacin.
    • Tambin puede obtener informacin de rutinas almacenadas de la tablaROUTINESenINFORMATION_SCHEMA .

33. Que hay de nuevo en MySQL 5.0x

  • Disparadores(triggers)
    • A partir de MySQL 5.0.2 se incorpor el soporte bsicopara disparadores (triggers).
    • Un disparador es un objeto con nombre dentro de unabase de datos el cual se asocia con una tabla y se activa cuando ocurre en sta un evento en particular.

34. Que hay de nuevo en MySQL 5.0x

    • momento_dispes el momento en que el disparador entra en accin. Puede serBEFORE(antes) oAFTER(despues).
    • evento_dispindica la clase de sentencia que activa al disparador. Puede serINSERT ,UPDATE , oDELETE . Por ejemplo, un disparadorBEFOREpara sentenciasINSERTpodra utilizarse para validar los valores a insertar.

35. Que hay de nuevo en MySQL 5.0x

    • No puede haber dos disparadores en una misma tablaque correspondan al mismo momento y evento.
    • sentencia_dispes la sentencia que se ejecuta cuando se activa el disparador. Si se desean ejecutar mltiplessentencias, deben colocarse entreBEGIN ... END , elconstructor de sentencias compuestas.
    • Antes de MySQL 5.0.10, los disparadores no podancontener referencias directas a tablas por su nombre. Apartir de MySQL 5.0.10, se pueden escribir disparadorescomo el llamadotestref , que se muestra en el siguienteejemplo:

36. 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 ;

37. Que hay de nuevo en MySQL 5.0x

    • Las columnas de la tabla asociada con el disparadorpueden referenciarse empleando los aliasOLDyNEW .
    • Actualmente, los disparadores no son activados poracciones llevadas a cabo en cascada por las restricciones de claves extranjeras

38. 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.
  • OLDyNEW
    • El disparador no puede referirse a tablas directamente por su nombre, incluyendo la misma tabla a la que estasociado. Sin embargo, se pueden emplear las palabrasclaveOLDyNEW .

39. Que hay de nuevo en MySQL 5.0x

  • El disparador no puede invocar procedimientosalmacenados utilizando la sentenciaCALL .
  • El disparador no puede utilizar sentencias queinicien o finalicen una transaccin.
  • En un disparador paraINSERT , solamente puedeutilizarseNEW. nom_col.

40. Que hay de nuevo en MySQL 5.0x

  • En un disparador paraDELETEslo puedeemplearseOLD. nom_col .
  • En un disparador paraUPDATEse puede emplearOLD. nom_col yNEW. nom_colpara referirse a lascolumnas del registro luego de actualizarlo.
  • Una columna precedida porOLDes de slo lectura.

41. Que hay de nuevo en MySQL 5.0x

  • Una columna precedida porNEWpuede serreferenciada si se tiene el privilegioSELECTsobre ella. En un disparadorBEFORE , tambin es posible cambiar su valor conSET NEW. nombre_col=valorsi se tiene el privilegio deUPDATEsobre ella.
  • En un disparadorBEFORE , el valor deNEWparauna columnaAUTO_INCREMENTes 0.

42. Que hay de nuevo en MySQL 5.0x

  • Si falla es un disparadorBEFORE , no se ejecuta la operacin en el correspondiente registro.
  • Un disparadorAFTERse ejecuta solamente si el disparadorBEFORE(de existir) y la operacin seejecutaron exitosamente.
  • Un error durante la ejecucin de un disparadorBEFOREoAFTERderiva en la falla de toda lasentencia que provoc la invocacin del disparador.

43. Que hay de nuevo en MySQL 5.0x

  • En tablas transaccionales, la falla de un disparador(y por lo tanto de toda la sentencia) debera causarla cancelacin (rollback) de todos los cambiosrealizados por esa sentencia

44. Que hay de nuevo en MySQL 5.0x

  • Vistas (Views)
    • Las vistas (incluyendo vistas actualizables) fueron introducidas en la versin 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.

45. Que hay de nuevo en MySQL 5.0x

    • CREATE VIEW
      • Esta sentencia crea una vista nueva o reemplaza una existente si se incluye la clusulaOR 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; 46. Que hay de nuevo en MySQL 5.0x

      • La definicin de una vista est sujeta a las siguientes limitaciones:
        • La sentenciaSELECTno puede contener una subconsulta en su clusulaFROM .
        • La sentenciaSELECTno puede hacer referencia a variables del sistema o del usuario.
        • La sentenciaSELECTno puede hacer referencia a parmetros de sentencia preparados.
        • Dentro de una rutina almacenada, la definicin no puede hacer referencia a parmetros de la rutina o a variables locales.
        • Cualquier tabla o vista referenciada por la definicin debe existir.

47. Que hay de nuevo en MySQL 5.0x

    • Algunas vistas son actualizables.
      • La opcionWITH CHECK OPTIONpuede utilizarse en una vista actualizable para evitar inserciones o actualizaciones excepto en los registros en que la clusulaWHEREde lasentencia_selectse evale como true.
      • En la clusulaWITH CHECK OPTIONde una vista actualizable, las palabras reservadasLOCALyCASCADEDdeterminan el alcance de la verificacin

48. Que hay de nuevo en MySQL 5.0x

    • ALTER VIEW
      • Esta sentencia modifica la definicin de una vista existente
      • Esta sentencia se introdujo en MySQL 5.0.1.
    • DROP VIEW
      • Elimina una o ms vistas de la base de datos.

49. Que hay de nuevo en MySQL 5.0x

  • FIN