View
27
Download
1
Embed Size (px)
DESCRIPTION
mysql
Citation preview
UNIVERSIDAD NACIONAL DE INGENIERÍAFacultad de Ingeniería Industrial y de Sistemas
Integrantes:- Huamaní Merino, Omar 20091118 D- HuisaVilela, Oskar 20091073 K- Navarro Ccala, Nestor 20040074 J
Prof.: Ing. Manuel Velarde CarpioCiclo: 2013-I
46
UNIVERSIDAD NACIONAL DE INGENIERÍA
CONTENIDO
INTRODUCCIÓN
I. OBJETIVOS
II. MARCO TEÓRICO
II.1. BASE DE DATOS
II.2. SISTEMA DE GESTIÓN DE BASE DE DATOS
II.3. ADMINISTRACIÓN DE BASE DE DATOS
II.4. BASE DE DATOS RELACIONAL
III. MySQL
III.1. DEFINICIÓN
III.2. HISTORIA
III.3. CONEXIÓN A UNA BASE DE DATOS
III.4. CARACTERÍSTICAS TÉCNICAS
III.4.1. CARACTERÍSTICAS DEL SERVIDOR MySQL
III.4.2. TAMAÑO MÁXIMO DE UNA BASE DE DATOS
III.4.2. LIMITACIONES
III.5. ADMINISTRACIÓN
III.5.1. INSTALACIÓN
III.5.2. USUARIOS Y PRIVILEGIOS
III.5.3. COPIAS DE SEGURIDAD
III.5.4. ANÁLISIS Y OPTIMIZACIÓN
III.5.5. REPLICACIÓN
III.6. CLIENTES GRÁFICOS
III.6.1.Mysqlcc
III.6.2.Mysql-query-browser
III.6.3.Mysql-administrator
III.7. PRODUCTOS OFRECIDOS
III.8. SERVICIOS OFRECIDOS
III.9. CLIENTES
III.10. RAZONES Y VENTAJAS DE USO
III.11. IMPLEMENTACIONES EXITOSAS EN EMPRESAS
III.11.1. Big Fish Games
III.11.2. Extenda
IV. APLICACIÓN USANDO MySQL
V. CONCLUSIONES
BIBLIOGRAFÍA
MySQL
46
UNIVERSIDAD NACIONAL DE INGENIERÍA
INTRODUCCION
Las organizaciones han ido evolucionando a una velocidad menor que la
tecnología, hemos pasado por distintos cismas que han ido cambiando el
paradigma en estas, si antes solo se producía con el afán de obtener mayores
ingresos sin preocuparse de la información existente en todo el proceso de
negocio, actualmente es necesario la gestión de los datos existentes para lograr
identificar los puntos fuertes y débiles dentro de la organización para de esa
forma ir corrigiendo errores existentes.
Un Sistema de Gestión de Bases de Datos (SGBD) permite el
almacenamiento, modificación y extracción de la información en una base de
datos, además de proporcionar herramientas para añadir, borrar modificar y
analizar los datos. Los usuarios pueden acceder a la información usando
herramientas específicas de interrogación y de generación de informes, o bien
mediante aplicaciones al efecto.
MySQL es un sistema gestor de bases de datos (DBMS por sus siglas en
inglés) muy conocido y ampliamente usado por su simplicidad y notable
rendimiento. Es una opción atractiva tanto para aplicaciones comerciales, como
de entretenimiento precisamente por su facilidad de uso y tiempo reducido de
puesta en marcha. Esto y su libre distribución en Internet bajo licencia GPL le
otorgan como beneficios adicionales contar con un alto grado de estabilidad y
un rápido desarrollo.
MySQL
46
UNIVERSIDAD NACIONAL DE INGENIERÍA
I. OBJETIVOS
Analizar el funcionamiento de MySQL y los beneficios que traería su
implementación en una organización.
Presentar casos de aplicación de MySQL en la gestión de
organizaciones.
Identificar las características básicas de MySQL.
Realizar una aplicación pequeña utilizando MySQL y base de datos
relacional.
MySQL
46
UNIVERSIDAD NACIONAL DE INGENIERÍA
II. MARCO TEÓRICO
II.1. Base de Datos
Las aplicaciones informáticas de los años
sesenta acostumbraban a darse totalmente por
lotes (batch1) y estaban pensadas para una tarea
muy específica relacionada con muy pocas
entidades tipo.
Cada aplicación utilizaba ficheros de movimientos para actualizar y/o para
consultar uno o dos ficheros maestros o, excepcionalmente, más de dos.
Cada programa trataba como máximo un fichero maestro, que solía estar
sobre cinta magnética y, en consecuencia, se trabajaba con acceso secuencial.
Cada vez que se le quería añadir una aplicación que requería el uso de algunos
de los datos que ya existían y de otros nuevos, se diseñaba un fichero nuevo
con todos los datos necesarios para evitar que los programas tuviesen que leer
muchos ficheros.
A medida que se fueron introduciendo las líneas de comunicación, los
terminales y los discos, se fueron escribiendo programas que permitían a varios
usuarios consultar los mismos ficheros de forma simultánea. Más adelante fue
surgiendo la necesidad de hacer las actualizaciones también on-line.
A medida que se integraban las aplicaciones, se tuvieron que
interrelacionar sus ficheros y fue necesario eliminar la redundancia. El nuevo
conjunto de ficheros se debía diseñar de modo que estuviesen
interrelacionados; al mismo tiempo, las informaciones redundantes que
figuraban en los ficheros de más de una de las aplicaciones, debían estar ahora
en un solo lugar.
MySQL
46
UNIVERSIDAD NACIONAL DE INGENIERÍA
1 Batch: lote de datos almacenados.
Estos conjuntos de ficheros interrelacionados, con estructuras complejas y
compartidos por varios procesos de forma simultánea (unos on-line y otros por
lotes), recibieron al principio el nombre de Data Banks1, y después, a inicios de
los años setenta, el Bases de Datos.
En otras palabras, una base de datos es un conjunto estructurado de
datos que representa entidades y sus interrelaciones. La representación será
única e integrada, a pesar de que debe permitir utilizaciones varias y
simultáneas.
Diagrama 1. Representación gráfica de una base de datos relacional
MySQL
46
UNIVERSIDAD NACIONAL DE INGENIERÍA
1Data Banks: Banco de Datos
II.2. Sistemas de Gestión de Base de Datos (SGBD)
Un Sistema de Gestión de Bases de Datos (SGBD) consiste en una
colección de datos interrelacionados y un conjunto de programas para acceder
a los mismos. Vale decir, un conjunto de programas que gestionan la Base de
Datos. Está compuesto por:
DDL (Data Definition Language): Lenguaje de Definición de Datos.
DML (Data Manipulation Language): Lenguaje de Manipulación de
Datos.
SQL: Lenguaje de Consulta
Para entender mejor qué son los SGBD, haremos un repaso de su
evolución desde los años sesenta hasta nuestros días.
Los primeros SGBD, en los años sesenta todavía no se les denominaba
así, estaban orientados a facilitar la utilización de grandes conjuntos de datos
en los que las interrelaciones eran complejas.
El arquetipo de aplicación era el Billof materials1o Parts explosion2, típica
en las industrias del automóvil, en la construcción de naves espaciales y en
campos similares. Estos sistemas trabajaban exclusivamente por lotes (batch).
La aparición de los SGBD relacionales supone un avance importante para
facilitar la programación de aplicaciones con BD y para conseguir que los
programas sean independientes de los aspectos físicos de la BD. La
estandarización, en el año 1986, del lenguaje SQL produjo una auténtica
explosión de los SGBD relacionales.
MySQL
46
UNIVERSIDAD NACIONAL DE INGENIERÍA
1 Bill of materials: Lista de Materiales2Parts explosión: Explosión de partes o piezas
La necesidad de tener una visión global de la empresa y de interrelacionar
diferentes aplicaciones que utilizan BD diferentes, junto con la facilidad que dan
las redes para la intercomunicación entre ordenadores, ha conducido a los
SGBD actuales, que permiten que un programa pueda trabajar con diferentes
BD como si se tratase de una sola. Es lo que se conoce como base de datos
distribuida.
Los tipos de datos que se pueden definir en los SGBD relacionales de los
años ochenta y noventa son muy limitados. La incorporación de tecnologías
multimedia, imagen y sonido, en los Sistemas de Información (SI) hace
necesario que los SGBD relacionales acepten atributos de estos tipos.
Esto nos lleva a la orientación a objetos (OO). El éxito de la OO al final de
los años ochenta, en el desarrollo de software básico, en las aplicaciones de
ingeniería industrial y en la construcción de interfaces gráficas con los usuarios,
ha hecho que durante la década de los noventa se extendiese en prácticamente
todos los campos de la informática.
La rápida adopción de la web a los SI hace que los SGBD incorporen
recursos para ser servidores de páginas web, como por ejemplo la inclusión de
SQL en guiones HTML, SQL incorporado en Java, etc.
Se puede observar que en el mundo de la web son habituales los datos
multimedia y la OO. Por lo tanto, se trata de mantener una gran BD con
información proveniente de toda clase de aplicaciones de la empresa (e,
incluso, de fuera). Los datos de este gran almacén, el Data Warehouse1, se
obtienen por una replicación más o menos elaborada de las que hay en las BD
que se utilizan en el trabajo cotidiano de la empresa.
MySQL
46
UNIVERSIDAD NACIONAL DE INGENIERÍA
1 Data Warehouse: Almacén de Datos
Estos almacenes de datos se utilizan exclusivamente para hacer
consultas, de forma especial para que lleven a cabo estudios* los analistas
financieros, los analistas de mercado, etc.
Actualmente, los SGBD se adaptan a este tipo de aplicación, incorporando, por
ejemplo, herramientas como las siguientes:
La creación y el mantenimiento de réplicas, con una cierta
elaboración delos datos.
La consolidación de datos de orígenes diferentes.
La creación de estructuras físicas que soporten eficientemente el
análisis multidimensional.
Los SGBD que actualmente están en el mercado pretenden satisfacer un
conjunto de objetivos directamente deducibles de lo que hemos explicado hasta
ahora. A continuación los mencionaremos, pero sin entrar en detalles.
Consultas no predefinidas y complejas
Flexibilidad e independencia
Problemas de la redundancia
Integridad de los datos
Concurrencia de usuarios
Seguridad
Servir eficientemente los Data Warehouse.
Adaptarse al desarrollo orientado a objetos
Incorporar el tiempo como un elemento de caracterización de la
información
Adaptarse al mundo del Internet
MySQL
46
UNIVERSIDAD NACIONAL DE INGENIERÍA
II.3. Administración de Base de Datos
Hay un tipo de usuario especial: el que realiza tareas de administración y
control de la BD. Una empresa o institución que tenga SI construidos en torno a
BD necesita que alguien lleve a cabo una serie de funciones centralizadas de
gestión y administración, para asegurar que la explotación de la BD es la
correcta. Este conjunto de funciones se conoce con el nombre de
administración de BD (ABD), y los usuarios que hacen este tipo especial de
trabajo se denominan administradores de BD.
Los administradores de BD son los responsables del correcto
funcionamiento de la BD y velan para que siempre se mantenga útil. Intervienen
en situaciones problemáticas o de emergencia, pero su responsabilidad
fundamental es velar para que no se produzcan incidentes.
Se enlista una lista de tareas típicas de la Administración de Base de
Datos:
Mantenimiento, administración y control de los esquemas
Asegurar la máxima disponibilidad de los datos
Resolución de emergencias
Vigilancia de la integridad y de la calidad de los datos
Diseño físico, estrategia de caminos de acceso y restructuraciones
Control del rendimiento y decisiones relativas a las modificaciones
en los esquemas y/o parámetros del SGBD y del SO, para mejorarlo
Normativa y asesoramiento a los programadores y a los usuarios
finales sobre la utilización de la BD
MySQL
46
UNIVERSIDAD NACIONAL DE INGENIERÍA
Control y administración de la seguridad: autorizaciones,
restricciones, etc.
II.4. BASE DE DATOS RELACIONAL
Edgar Frank Codd a finales definió las bases del modelo relacional a
finales de los 60. Trabajaba para IBM empresa que tardó un poco en
implementar sus bases. Pocos años después el modelo se empezó a
implementar cada vez más, hasta ser el modelo de bases de datos más
popular. En las bases de Codd se definían los objetivos de este modelo:
Independencia física. La forma de almacenar los datos, no debe
influir en su manipulación lógica.
Independencia lógica. Las aplicaciones que utilizan la base de
datos no deben ser modificadas por que se modifiquen elementos
de la base de datos.
Flexibilidad. La base de datos ofrece fácilmente distintas vistas en
función de los usuarios y aplicaciones.
Uniformidad. Las estructuras lógicas siempre tienen una única
forma conceptual (las tablas).
Sencillez.
II.4.1 TABLAS
Las bases de datos relacionales se basan en el uso de tablas
(también se las llama relaciones). Las tablas se representan
gráficamente como una estructura rectangular formada por filas y
columnas. Cada columna almacena información sobre una propiedad
MySQL
46
UNIVERSIDAD NACIONAL DE INGENIERÍA
determinada de la tabla (se le llama también atributo), nombre, DNI,
apellidos, edad, etc.
Cada fila posee una ocurrencia o ejemplar de la instancia o relación
representada por la tabla (a las filas se las llama también tuplas).
II.4.2 TERMINOLOGÍA RELACIONAL
Tupla. Cada fila de la tabla (cada ejemplar que la tabla representa)
Atributo. Cada columna de la tabla
Grado. Número de atributos de la tabla
Cardinalidad. Número de tuplas de una tabla
Dominio. Conjunto válido de valores representables por un
atributo.
II.4.3 CLAVES
Clave candidata: Conjunto de atributos de una tabla que
identifican unívocamente cada tupla de la tabla.
Clave primaria: Clave candidata que se escoge como identificador
de las tuplas.
Clave alternativa: Cualquier clave candidata que no sea primaria
Clave externa o secundaria: Atributo de una tabla relacionado con
una clave de otra tabla.
Figura 4.1 Representación de una tabla en el modelo relacional
MySQL
46
UNIVERSIDAD NACIONAL DE INGENIERÍA
III. MySQL
III.1. DEFINICIÓN
MySQL es un sistema de gestión de bases de datos (SGBD), de datos
relacionales. Se trata de un programa capaz de almacenar una enorme
cantidad de datos de gran variedad y de distribuirlos para cubrir las
necesidades de cualquier tipo de organización, desde pequeños
establecimientos comerciales a grandes empresas y organismos
administrativos. MySQL compite con sistemas SGBD propietarios conocidos,
como Oracle, SQL Server y DB2.
MySQL incluye todos los elementos necesarios para instalar el programa,
preparar diferentes niveles de acceso de usuario, administrar el sistema y
proteger y hacer volcados de datos. Puede desarrollar sus propias aplicaciones
de base de datos en la mayor parte de los lenguajes de programación utilizados
en la actualidad y ejecutarlos en casi todos los sistemas operativos. MySQL
utiliza el lenguaje de consulta estructurado (SQL). Se trata del lenguaje
utilizado por todas las bases de relacionales. Este lenguaje permite crear bases
de datos, así como agregar, manipular y recuperar datos en función de criterios
específicos.
III.2. HISTORIA
MySQL surgió alrededor de la década del 90, Michael Windenis, un joven
programador que realizaba complejas aplicaciones en lenguaje BASIC, al no
encontrar un sistema de almacenamiento de archivos que le resultara
satisfactorio, pensó en construir el suyo propio. En 1995, y en colaboración con
MySQL
46
UNIVERSIDAD NACIONAL DE INGENIERÍA
otros colegas desarrolló un producto que básicamente era el resultado de sus
investigaciones, más dos aportaciones nuevas: el uso del lenguaje SQL y la
accesibilidad a través de Internet. Así nació MySQL y también la empresa
MySQL AB.
Windenis comenzó a usar MySQL para conectar tablas usando sus
propias rutinas de bajo nivel (ISAM1). Tras unas primeras pruebas, llegó a la
conclusión de que MySQL no era lo bastante flexible ni rápido para lo que
necesitaba, por lo que tuvo que desarrollar nuevas funciones. Esto resulto en
una interfaz SQL a su base de datos, totalmente compatible a MySQL.
Michael "Monty" Widenius.
Nació el 3 de marzo de 1962 en Helsinki, Finlandia.
(Fuente: EFE)
MySQL fue desarrollado originalmente en el sistema operativo Solaris. El
origen del nombre MySQL no se sabe con certeza de donde proviene, por un
lado se dice que en sus librerías han llevado el prefijo “my” durante los diez
últimos años, por otra parte, la hija de uno de los desarrolladores se llama My.
Así que no está claramente definido cuál de estas dos causas han dado lugar al
nombre de este conocido gestor de bases de datos.
MySQL
46
UNIVERSIDAD NACIONAL DE INGENIERÍA
1 IndexedSequential Access Method (Método de Acceso Secuencial Indexado), se trata de un método para almacenar
información a la que se pueda acceder rápidamente.
La evolución de MySQL se produce con las sugerencias de los usuarios,
canalizadas por la empresa MySQL AB, que contrata a programadores de todo
el mundo para que, a través de Internet, vayan ampliando y mejorando el
producto. Las versiones, como es costumbre en este tipo de software libre, se
van colgando en Internet para que los usuarios puedan disponer de ellas.
En octubre de 2005, Oracle Corporation adquirió Innobase OY, la
compañía finlandesa que desarrolló el motor de almacenamiento InnoDB1 que
permite a MySQL proporcionar funcionalidades como transacciones y claves
foráneas. Un comunicado de prensa de Oracle que se publicó después de la
adquisición mencionaron que los contratos que hacen que el software de la
empresa a disposición de MySQL AB de su renovación (y presumiblemente
renegociación) en algún momento en 2006. Durante la Conferencia de Usuarios
de MySQL en abril de 2006, MySQL emitió un comunicado de prensa que
confirmó que MySQL e Innobase OY acordaron una extensión de varios años
de su acuerdo de licencia.
El símbolo de los delfines en el logo MySQL se le dio el nombre Swati en
octubre de 2002 después de un concurso de nombres.
MySQL
46
UNIVERSIDAD NACIONAL DE INGENIERÍA
1InnoDB es un mecanismo de almacenamiento de datos de código que ofrece una fiabilidad y
consistencia muy superior a MyISAM, la anterior tecnología de tablas de MySQL
III.3. CONEXIÓN A UNA BASE DE DATOS
El equipo en el que se ejecuta MySQL y que almacena los datos se
denomina servidor MySQL. Para establecer una conexión a este servidor,
dispone de varias opciones de instalación.
En primer lugar, puede instalar el cliente y el servidor MySQL en su equipo de
escritorio, como ilustra la figura A.
En segundo lugar, puede instalar el cliente MySQL en su equipo de
sobremesa y el servidor MySQL en otro equipo al que se establecerá la
conexión, como se ilustra en la figura B.
Por último, el equipo de sobremesa puede ser cualquier ordenador que
se conecte a otro equipo con un cliente MySQL instalado, que se conectará al
servidor MySQL, situado en el mismo equipo o en otro, como muestra la figura
C.
MySQL
46
UNIVERSIDAD NACIONAL DE INGENIERÍA
Figura A. Equipo en donde está instalado el cliente y el servidor MySQL
Figura B. Nuestro equipo ya tiene instalado el cliente MySQL. Que se
conectará con otra máquina con MySQL que será denominada Servidor MySQL
Figura C. En este caso, nuestra terminal puede ser cualquier quipo capaz de
conectarse a otro, ya que ni siquiera lleva instalado el cliente MySQL
III.4. CARACTERÍSTICAS TÉCNICAS
III.4.1. CARACTERÍSTICAS DEL SERVIDOR MYSQL
Está escrito en C/C++ y probado con numerosos compiladores.
Funciona en muchos sistemas operativos
Soporta muchas API1 como C, C++,PHP, Python, Java,etc.
MySQL
46
UNIVERSIDAD NACIONAL DE INGENIERÍA
Dispone de un driver ODBC (Open DataBase Connectivity) para
Windows lo que le aporta compatibilidad con la mayoría de lenguajes
disponibles en este sistema operativo.
Dispone de un driver ADO2 vía ILEDB en Windows para un mejor
rendimiento que ODBC.
Es totalmente multithread, lo que aumenta enormemente el
rendimiento del servidor. MySQL está previsto para funcionar en
entornos multiprocesador.
1API (Application Programming Interface) es el conjunto de funciones y procedimientos que ofrece
cierta biblioteca para ser utilizado por otro software como una capa de abstracción.2 ADO ActiveX Data Objects)es uno de los mecanismos que usan los programas de
computadoras para comunicarse con las bases de datos.
Dispone de un sistema de administración de la memoria
extremadamente potente. La cantidad de memoria tienen una
incidencia directa sobre el rendimiento de MySQL. Si un servidor
presenta fallos de rendimiento, suele bastar con añadir memoria
RAM para mejorar sensiblemente su rendimiento.
Se puede interrogar con el lenguaje SQL, lo que garantiza una
mejor compatibilidad con otros SGBD. Todos los scripts SQL escritos
para otro SGBD que respeten el SQL estándar pueden utilizarse con
MySQL.
El código MySQL está totalmente comprobado con Purify, una
herramienta comercial, que permite verificar las pérdidas de
memoria.
Soporta muchos tipos de columnas de tipos numéricos, fecha y
hora, cadena de texto. MySQL soporta también columnas de gran
tamaño como las columnas de tipos texto y binario.
MySQL
46
UNIVERSIDAD NACIONAL DE INGENIERÍA
Dispone de un sistema potente de administración de usuarios y
sus privilegios.
Es capaz de administrar bases de datos de gran tamaño. Ciertas
empresas lo utilizan actualmente con bases de datos de unas 60 000
tablas y alrededor de 5 000 000 000 de registros.
Una tabla puede contener hasta 32 índices y cada índice puede
estar constituido por un máximo de 16 columnas.
Es posible instalar varias instancias de servidor MySQL. Cada
instancia es completamente independiente y gestiona sus propias
bases de datos.
III.4.2. TAMAÑO MÁXIMO DE UNA BASE DE DATOS
Una base de datos MySQL está constituida por un directorio y archivos. El
nombre del directorio es el nombre de la base de datos MySQL. El directorio
contiene archivos correspondientes a las diferentes tablas de la base de datos.
Una tabla se compone de varios archivos, uno con los datos, otro con la
estructura, otro con los índices, etc.
MySQL limita el tamaño de una tabla a más de 8 millones de Terabytes
(263 exactamente) desde la versión 3.23. Anteriormente, el tamaño máximo de
una tabla era de 4 GB. Debido a que el sistema se compone de directorios y
archivos, el sistema operativo puede imponer sus propios límites que pueden
ser inferiores a los de MySQL.
III.4.3. LIMITACIONES
MySQL
46
UNIVERSIDAD NACIONAL DE INGENIERÍA
Al comprender sus principios de diseño, se puede explicar mejor las
razones de algunas de sus carencias. Por ejemplo, el soporte de transacciones
o la integridad referencial (la gestión de claves foráneas) en MySQL está
condicionado a un esquema de almacenamiento de tabla concreto, de forma
que si el usuario no va a usar transacciones, puede usar el esquema de
almacenamiento “tradicional” y obtendrá mayor rendimiento, mientras que si su
aplicación requiere transacciones, deberá usar el esquema que lo permite sin
ninguna otra restricción o implicación.
Otras limitaciones son las siguientes:
• Las versiones anteriores a la 5.0 no soportan procedimientos
almacenados.
• Las versiones anteriores a la 5.0 no incluyen disparadores ni
vistas.
• No incluye características de objetos.
III.5. ADMINISTRACIÓN DE MYSQL
Las tareas administrativas como la instalación, gestión de usuarios, copias
de seguridad, restauraciones, entre otras, son tareas ineludibles en cualquier
organización. Las políticas, los recursos y preferencias de los administradores
generan una gran variedad de estilos y mecanismos para llevar a cabo estas
tareas, por lo que no es posible hablar de métodos completamente
estandarizados en estas áreas.
III.5.1. INSTALACIÓN DE MYSQL
La instalación de MySQL no representa mayores problemas, ya que
muchas distribuciones incluyen paquetes con los que realizar la instalación y
configuración básica. Sin embargo, aquí veremos la instalación de MySQL
MySQL
46
UNIVERSIDAD NACIONAL DE INGENIERÍA
utilizando el código fuente que se puede obtener en www.mysql.com. Cabe
destacar que el uso de una versión de MySQL compilada tiene la ventaja de
que, probablemente se adaptará mucho mejor al entorno del servidor donde se
ejecutará, proporcionando así un mejor rendimiento. Por el contrario, implicará
más trabajo en caso de que surjan errores en la versión y tengamos que
actualizarla.
III.5.2. USUARIOS Y PRIVILEGIOS
El acceso al servidor MySQL está controlado por usuarios y privilegios.
Los usuarios del servidor MySQL no tienen ninguna correspondencia con los
usuarios del sistema operativo. Aunque en la práctica es común que algún
administrador de MySQL asigne los mismos nombres que los usuarios tienen
en el sistema, son mecanismos totalmente independientes y suele ser
aconsejable en general.
El usuario administrador del sistema MySQL se llama root. Igual que el
supe usuario de los sistemas tipo UNIX.
III.5.3. COPIAS DE SEGURIDAD EN MySQL
Ningún sistema es perfecto ni está a salvo de errores humanos, cortes en
el suministro de la corriente eléctrica, desperfectos en el hardware o errores de
software; así que una labor más que recomendable del administrador del
servidor de bases de datos es realizar copias de seguridad y diseñar un plan de
contingencia. Se deben hacer ensayos del plan para asegurar su buen
funcionamiento y, si se descubren anomalías, realizar los ajustes necesarios.
No existe una receta universal que nos indique cómo llevar nuestras
copias de seguridad de datos. Cada administrador debe diseñar el de su
MySQL
46
UNIVERSIDAD NACIONAL DE INGENIERÍA
sistema de acuerdo a sus necesidades, recursos, riesgos y el valor de la
información.
MySQL ofrece varias alternativas de copia de seguridad de la información.
La primera que podemos mencionar consiste simplemente en copiar los
archivos de datos. Efectivamente, es una opción válida y sencilla.
En primera instancia son necesarios dos requisitos para llevarla a cabo:
• Conocer la ubicación y estructura del directorio de datos.
• Parar el servicio MySQL mientras se realiza la copia.
III.5.4. ANÁLISIS Y OPTIMIZACIÓN
El diseño de MySQL le permite funcionar con un rendimiento notable, sin
embargo, se pueden cometer fácilmente errores que disminuyan la capacidad
de respuesta del servidor. También se pueden realizar algunos ajustes a la
configuración de MySQL que incrementan su rendimiento.
III.5.5. REPLICACIÓN
La replicación es la copia sincronizada entre dos servidores de bases de
datos de forma que cualquiera de los dos puede entregar los mismos resultados
a sus clientes.
MySQL incluye la posibilidad de replicación con las siguientes
características:
• Funciona con el esquema maestro-esclavo: existe un servidor
maestro que lleva el control central y uno o varios servidores
esclavos que se mantienen sincronizados con el servidor maestro.
• La réplica se realiza mediante un registro de los cambios realizados
en la base de datos: no se realizan las copias de las bases de datos
para mantenerlas sincronizadas, en su lugar se informa de las
MySQL
46
UNIVERSIDAD NACIONAL DE INGENIERÍA
operaciones realizadas en el servidor maestro (insert, delete,
update...) para que las realicen a su vez los servidores esclavos.
• No es posible realizar cambios en los servidores esclavos, son
exclusivamente para consultas.
Este sencillo esquema permite la creación de réplicas sin mayores
complicaciones obteniendo los siguientes beneficios:
• Se distribuye la carga de trabajo.
• El sistema es redundante, por lo que en caso de desastre hay
menos probabilidades de perder los datos.
• Es posible realizar los respaldos de un esclavo sin interrumpir el
trabajo del servidor maestro.
III.6. CLIENTES GRÁFICOS
Existen múltiples clientes de entorno gráfico que permiten la interacción
con un servidor MySQL. Analizaremos brevemente los que distribuye la
empresa MySQL AB (mysqlcc, mysql-query-browser y mysql-administrator) y
que se pueden descargar del sitio oficial www.mysql.com.
III.6.1. Mysqlcc
Al ejecutarse por primera vez abrirá el diálogo que permite realizar el
registro de un nuevo servidor MySQL:
MySQL
46
UNIVERSIDAD NACIONAL DE INGENIERÍA
En la ventana principal se pueden apreciar los servidores registrados, que
en este caso es solamente uno.
Con el botón derecho del ratón sobre “Conexión de Demostración”, se
puede activar la conexión. Después de eso, mysqlcc muestra las propiedades
de los elementos de la base de datos.
MySQL
46
UNIVERSIDAD NACIONAL DE INGENIERÍA
Ahora ya estamos en disposición de realizar consultas SQL con Ctrl-Q (o
haciendo click sobre el icono 'SQL'). Se abrirá una nueva ventana en la que
podremos escribir la consulta que, una vez escrita, se ejecutará al teclea Ctrl-E.
Los resultados se mostrarán en forma de tabla como en la captura de pantalla
anterior. mysqlcc ofrece múltiples opciones para realizar inserciones,
eliminaciones ,configurar teclas de acceso rápido y una serie de características
de uso muy intuitivo. También ofrece prestaciones para exportar el resultado de
una consulta a un fichero de texto.
MySQL
46
UNIVERSIDAD NACIONAL DE INGENIERÍA
III.6.2. Mysql-query-browser
Tanto mysql-query-browser como mysql-administrator comparten la
información relativa a las conexiones almacenadas. La pantalla inicial nos
permitirá seleccionar una existente o configurar una nueva:
El aspecto de este programa es mejor que el de mysqlcc y ofrece
prestaciones de ayuda en las generaciones de consultas, favoritas, marcadoras,
accesos rápidos a EXPLAIN, etc.
MySQL
46
UNIVERSIDAD NACIONAL DE INGENIERÍA
III.6.3. Mysql-administrator
Esta novedosa herramienta es extremadamente potente y completa en
cuanto a tareas de administración se refiere.
Encender y parar el SGBD.
Gestionar el fichero de configuración /etc/my.cnf de forma gráfica.
Gestionar usuarios y privilegios.
Monitorizar el uso del gestor que se está haciendo del mismo, el
número de conexiones, consultas simultáneas y todo tipo de
información estadística.
Consultar los ficheros de registro (log) del servidor.
Gestionar copias de seguridad.
Gestionar la replicación de bases de datos.
Crear y borrar bases de datos (SCHEMA).
III.7. PRODUCTOS OFRECIDOS
MySQL
46
UNIVERSIDAD NACIONAL DE INGENIERÍA
MySQL es la base de datos de código abierto más popular del mundo. Si
se tiene un crecimiento rápido donde involucre la web, tecnología ISV o una
gran empresa, MySQL puede ayudar de manera rentable a ofrecer un alto
rendimiento, aplicaciones de bases de datos escalables.
MySQL Community Edition es la versión de descarga gratuita de la base
de datos de código abierto más popular del mundo.
Los clientes comerciales tienen la flexibilidad de elegir entre múltiples
ediciones para cumplir con los requerimientos del negocio y técnicas
específicas:
MySQL Standard Edition
MySQL Enterprise Edition
MySQL Cluster Carrier Grade edición
MySQL
46
UNIVERSIDAD NACIONAL DE INGENIERÍA
MySQL
46
UNIVERSIDAD NACIONAL DE INGENIERÍA
III.8. SERVICIOS OFRECIDOS
MySQL Training
Oracle ofrece un conjunto completo de cursos de formación de MySQL
que le dan una ventaja competitiva en la construcción de soluciones de bases
de datos de clase mundial.
Certificación MySQL
El Programa de Certificación de MySQL es un programa de certificación
de alta calidad que ofrece a los desarrolladores y administradores de bases con
las credenciales para demostrar que cuentan con los conocimientos,
experiencia y habilidades para utilizar y administrar MySQL Server.
MySQL Consulting
Oracle ofrece una gama completa de servicios de consultoría de MySQL.
Ya sea que usted está comenzando un nuevo proyecto, que necesita para
optimizar una aplicación MySQL existente, o la migración de una base de datos
propiedad de MySQL, tenemos una solución asequible para usted.
Soporte MySQL
Oracle ofrece una gama completa de opciones de soporte MySQL para
sus necesidades específicas. Soporte Técnico MySQL está diseñado para
ahorrar tiempo y para asegurarse de que lograr los más altos niveles de
rendimiento, fiabilidad y tiempo de actividad.
MySQL
46
UNIVERSIDAD NACIONAL DE INGENIERÍA
III.9. CLIENTES
Instituciones del rublo de educación
American Education Corporation
Argonne National Laboratory
AUF
Backstage Library Works
CAEIT
Canadian Centre for Child Protection
CASPUR
CERN
College of William & Mary
Coursera
Digital Bridge
eduphoria!
eSchool Solutions
Footnote
FranceExamen
Industrias en el rublo de Hardware
Apple Inc.
Arris Group
Cisco Systems
Cray
Dell
Eastman Kodak
Hitachi Data Systems
Intel
LGC Wireless (ADC)
MySQL
46
UNIVERSIDAD NACIONAL DE INGENIERÍA
Motorola
Navteq
NEC Unified Solutions
NetIQ
Empresas del rublo de juegos web
Big Fish Games
Habbo Hotel
Heatwave Interactive
IGN Entertainment (GameSpy.com)
Neopets
Ongame (PokerRoom.com)
Playful Play, El Chavo on Facebook
Empresas del rublo del comercio virtual
Amazon
Charlwood eMarketing
CitySearch
Deal Group Media
ebay
Gorilla Nation Media
PayPal
Pixartprinting
Powell's books
TargetSpot
WebTrends
Yahoo!
Empresas del rublo de redes sociales
MySQL
46
UNIVERSIDAD NACIONAL DE INGENIERÍA
Answers.com
Baidu.com
be2
Blog-City
Brightlemon
Cocolog
deviantART
Diaspora
Digg
Eventfinder
Feedburner
Feedster
Flickr
Flixster
Fotolog
Free411.com (Jingle Networks)
Freshmeat.net
Qype
Qzone
Skyblog (Skyrock Network)
Wikipedia
Wordpress
YouSendIt.com
YouTube
III.10. RAZONES Y VENTAJAS DE USO
Razón 1. Es probada o utilizada por muchas empresas
MySQL
46
UNIVERSIDAD NACIONAL DE INGENIERÍA
MySQL es la base de datos de código abierto más popular del mundo en
el mundo con más de 15millones de instalaciones estimados, y decenas de
miles de nuevas descargas cada día. Se trata del tercer SGBD más utilizado en
el mundo, detrás de Oracle y Microsoft SQL Server.
Razón 2. MySQL está en su mejor situación comercial
Oracle es la compañía más grande de base de datos en el mundo.
Oracle a partir de sus recursos y conocimientos de base de datos para "hacer
un mejor MySQL" Esto es claramente evidente en la cantidad, el alcance y la
calidad de las entregas de MySQL se ha entregado, que no tienen precedentes
en la historia de MySQL. Estas versiones se basan en las fortalezas
tradicionales de MySQL en el rendimiento, la escalabilidad, la facilidad de uso,
fiabilidad y disponibilidad.
Razón 3. Velocidad
MySQL
46
UNIVERSIDAD NACIONAL DE INGENIERÍA
MySQL es muyajustable. El sitio web de MySQL mantienedatos sobre
cómo es la velocidad en las pilas de MySQL en contra de varios otros productos
de base de datos
Razón 4. Costo
MySQL es gratis. Pero si tú deseas adquirir una licencia de este programa, el
costo es aproximadamente de $200 por año, este precio no está nada mal para
un sistema de gestión de base de datos que puede competir contra otros de
mayor costo.
Razón 5. Simplicidad
MySQL
46
UNIVERSIDAD NACIONAL DE INGENIERÍA
MySQL es para los que saben lo que están haciendo, pueden programar
sus propias funciones avanzadas, tales como procedimientos almacenados o
subconsultas. MySQL es en su esencia una pequeña base de datos rápido, y
mantener de esta manera significa que algunas características de uso intensivo
de recursos se mantienen fuera por diseño
Razón6. Portabilidad
Si MySQL no ha sido aplicado para tu plataforma de trabajo, es muy
probable que lo será pronto, y si no, usted mismo puede aplicarlo a su
plataforma. Porque se puede compilar el código fuente, se puede compilarlo
para ejecutarse en cualquier máquina que utilice. MySQL ya trabaja en todos
los principales PLATAFORMAS: MS Windows, Linux, Sun, etc.
Razón 7. Protección de los datos y Seguridad
MySQL
46
UNIVERSIDAD NACIONAL DE INGENIERÍA
Los datos generados por la aplicación pueden ser uno de los activos más
valiosos de sus clientes. La protección de sus datos es aún más crítica, porque
el no hacerlo puede llevar aseveras sanciones según lo prescrito por el
creciente número de leyes y normas (tales como HIPAA, Sarbanes-Oxley, y la
Norma de Seguridad de Datos PCI) de seguridad y privacidad. MySQL ofrece
garantías para asegurarla pérdida de datos, ya sea por un error del sistema o
por actos maliciosos, y para mantener el cumplimiento legal y las normas. Ellos
incluyen:
Apoyo Transaccional: El motor de almacenamiento transaccional InnoDB
garantiza la integridad de los datos y proporciona transacciones ACID
compatibles, control de divisas MVCCo multi-versión, claves foráneas y
mucho más. InnoDB es ahora el motor por defecto para las versiones de
bases de datosMySQL5.5y superiores.
BackupOnline: Esta fue una de las características más solicitadas para
MySQL por ISVs y OEMs. MySQL Enterprise Backus realiza en línea o
"on-line", sin bloqueo copias de seguridad de bases de datos MySQL, la
restauración de manera segura los datos de una copia de seguridad
completa. MySQL Enterprise Backup también es compatible con Recovery
Point-in-Time (PITR) para restaurar todos los datos a un punto específico
en el tiempo. Usted tiene la opción de realizar copias de seguridad
MySQL
46
UNIVERSIDAD NACIONAL DE INGENIERÍA
completa, incremental o parcial. MySQL Enterprise Backup también puede
crear copias de seguridad comprimidas, lo que reduce el tamaño general
de seguridad de 70% a más del 90%, lo que reduce el almacenamiento y
otros costos.
Autenticación externa: MySQL Enterprise Security proporciona listo para
usar módulos de autenticación externos que se integran fácilmente con
otras infraestructuras de seguridad, como LDAP y Windows. Usuarios de
MySQL pueden autenticarse usando Pluggable Authentication Modules
("PAM") o servicios nativos del sistema operativo Windows. Además de la
autenticación de usuario, MySQL ofrece numerosas funciones de cifrado
que cifra los datos en el disco para proteger contra el robo de datos
malicioso o el acceso no autorizado.
Auditoría: Auditoría MySQL Enterprise es una herramienta fácil de usar,
solución de auditoría basada en políticas que ayuda a las organizaciones
a implementar controles de seguridad más fuertes y satisfacer el
cumplimiento normativo para producir una pista de auditoría de la
información, el seguimiento que hace lo que parte de los datos.
III.11. IMPLEMENTACIONES EXITOSAS EN EMPRESAS
III.11.1. Big Fish Games
MySQL
46
UNIVERSIDAD NACIONAL DE INGENIERÍA
Big Fish seleccionó MySQL Clúster
El mayor productor del mundo en juegos casuales ha seleccionado
MySQL Clúster para potenciar su plataforma en tiempo real. Donde la
velocidad, baja latencia lee, escalado en línea y la simplicidad operativa
entregada por MySQL Clúster permite a Big Fish aumentar la participación del
cliente y realizar marketing dirigido, proporcionando una experiencia más
personalizada a sus usuarios.
Requisitos del Proyecto
El Servicio de Gestión de Marketing (SGM) está diseñado para brindar
publicidad en tiempo real para los clientes de Big Fish en tiempo real. El equipo
del proyecto estableció un conjunto de requisitos de éxito para la base de datos
que potencia el motor de recomendaciones:
Alta velocidad en ingesta de datos: tenían que ser extraído todos los
días del sistema a la base de datos de las publicidades, con la capacidad
de escalarla frecuencia y el volumen de las cargas de datos en el futuro.
Cada usuario puede clasificar en varias segmentaciones de mercado, y
estas segmentaciones también pueden cambiar de día a día.
Acceso de baja latencia: tenía un contenido personalizado que se
presta a cada vista de página, sin afectarlos tiempos de respuesta de los
usuarios;
Escalabilidad On-Line: Con los volúmenes de datos y la velocidad cada
vez mayor, junto con el deseo de utilizar MMS en nuevos servicios en el
futuro, es fundamental quela base de datos podría escalar rápidamente
para satisfacer las nuevas demandase impredecible. Al mismo tiempo, la
ampliación de base de datos tenía que ser una operación on-line, lo que
garantiza la disponibilidad continua de la plataforma a los jugadores;
MySQL
46
UNIVERSIDAD NACIONAL DE INGENIERÍA
99.999% Disponibilidad: El servicio tuvo que ser confiable y de alta
disponibilidad como tiempo de inactividad podría afectar
significativamente la experiencia del usuario.
Implementación del Proyecto
Como se ilustra en la siguiente figura:
Los datos de usuario se replica en las bases de datos MySQL que
impulsan el escaparate de los juegos a la plataforma de BI Big Fish; Los
datos de usuario se analizan y segmentada dentro de la plataforma de
BI;
Las recomendaciones se cargan como registros de usuarios en MySQL
Cluster utilizando el No SQLCluster_J (Java) de la API;
La API de SQL en los servidores MySQL se ofrece contenido
personalizado a los jugadores en tiempo real, sirviendo inicialmente más
de 15 millones de sesiones al día.
III.11.2. Extenda
MySQL
46
UNIVERSIDAD NACIONAL DE INGENIERÍA
La empresa EXTENDA reduce sus costos de productos e
incrementa la satisfacción de sus consumidores
Extenda es el proveedor líder en el mercado de los países nórdicos "de
soluciones minoristas. Se inició en la década de 1980 y con sede en Suecia, las
soluciones de Extenda se utilizan
actualmente en más de 7.000
tiendas y 30.000 puntos de venta
(POS) en más de 27 países. Los clientes de Extenda se encuentran
principalmente en la moda, tienda de comestibles y mercados minoristas de
especialidad, e incluyen muchos minoristas grandes multinacionales como ICA
(comestibles), Apoteket (Farmacia), KappAhl (Moda) y Estadio (Deportes).
Extenda se dedica a proporcionar puntos de venta sumamente flexible,
Oficina Central, Selfscan y soluciones de autoservicio que permiten a los
minoristas para responder de forma rápida y sencilla, incluso a sutiles cambios
en la demanda y la oferta. Sus soluciones son únicas en su capacidad de apoyo
a los precios altamente compleja, promoción y ofertas de fidelidad al tiempo que
continúa fácil de usar y muy fiable. Las soluciones se pueden utilizar en todos
los países y en una amplia gama de bienes y servicios de alimentos y bebidas,
a la moda, e incluso los servicios de pasaporte. De hecho, Extenda garantiza
que sus productos estándar cumplirán con las leyes y regulaciones locales toda
la comarca y se integran con sus impresoras fiscales y EFT (transferencia
electrónica de fondos) terminales. Utilizando las soluciones de Extenda, los
minoristas obtienen la agilidad para implementar sus iniciativas de negocios y
expandir sus operaciones sin sobrecargar sus recursos de TI.
Selección de MySQL
MySQL
46
UNIVERSIDAD NACIONAL DE INGENIERÍA
El equipo de producto de Extenda utiliza un proceso muy exhaustivo en la
selección de base de datos integrada de sus productos. Con la agilidad del
cliente como su objetivo principal, los siguientes requisitos eran de primordial
importancia:
Facilidad de instalación y configuración
El soporte multi-plataforma
Ocupa poco espacio
Apoyo MVCC
En línea, copias de seguridad "en caliente".
Los minoristas son a la vez muy conscientes de los costos y la aversión al
riesgo, lo que los hace abiertos a la utilización de tecnologías de código abierto.
Esto, además de los requisitos técnicos mencionados anteriormente, dio lugar a
la siguiente lista de candidatos:
MySQL
PostgreSQL
HSQL
IBM Informix
En base a los resultados de su evaluación y su experiencia previa de
apoyo del uso de sus clientes de MySQL, el equipo de evaluación estaba
seguro de que MySQL mejor pudo satisfacer sus necesidades comerciales y
técnicas.
Las ventajas de usar MySQL
MySQL ha sido capaz de cumplir con todos los requisitos de Extenda, y ha
entregado los siguientes beneficios adicionales:
Redujo los costos del producto: A pesar de que Extenda antes pagaba
directamente de licencias de bases de datos y soporte, utilizando MySQL
MySQL
46
UNIVERSIDAD NACIONAL DE INGENIERÍA
ha reducido sus costes totales de productos de base de datos mediante la
reducción de su integración, control de calidad, y los costos de atención al
cliente.
Facilidad de Desarrollo e Integración: Utilización de las API de MySQL,
el equipo de producto era capaz de automatizar la administración de
MySQL, copia de seguridad y restaurar por completo a través de su
aplicación. Como resultado, los clientes de Extenda tienen tareas de base
de datos a cero y la carga de atención al cliente de Extenda se ha
reducido en gran medida. Además, la popularidad de MySQL, activa de la
comunidad, y la riqueza de recursos en línea acortan considerablemente
la curva de aprendizaje del equipo de producto y el tiempo de desarrollo
de MySQL.
Performance: MySQL ha cumplido y superado todas las demandas de
rendimiento de Extenda. Menos de un segundo la respuesta de MySQL
permite Extenda Retail Selfscan para mostrar los datos en pantalla de
forma instantánea.
Clientes Satisfechos: Los clientes de Extenda han sido muy satisfechos
con MySQL: se incluye con las soluciones de Extenda, funciona nada más
sacarlo de la caja y con el tiempo sin ningún tipo de administración o
mantenimiento, e incluye soporte de Oracle para la paz de la mente. Por
otra parte, ofrece todas las capacidades que se requieren a un costo
menor.
IV. APLICACIÓN USANDO MySQL
Código utilizado
//Creando las tablas
create table FACULTAD(Cod_Fac integer not null,
MySQL
46
UNIVERSIDAD NACIONAL DE INGENIERÍA
Nombre_Fac varchar(50) not null);
create table ESPECIALIDAD(Cod_Esp integer not null,Cod_Fac integer not null,Nombre_Esp varchar(50) not null);
//Insertando los datos
insert into FACULTAD(Cod_Fac,Nombre_Fac)values(100,'FIIS')
insert into FACULTAD(Cod_Fac,Nombre_Fac)values(200,'FAUA')
insert into ESPECIALIDAD(COD_Esp,Cod_Fac,Nombre_Esp)values(100,100,'I1')
insert into ESPECIALIDAD(COD_Esp,Cod_Fac,Nombre_Esp)values(200,100,'I2')
insert into ESPECIALIDAD(COD_Esp,Cod_Fac,Nombre_Esp)values(300,100,'I3')
insert into ESPECIALIDAD(COD_Esp,Cod_Fac,Nombre_Esp)values(400,200,'A1')
insert into ESPECIALIDAD(COD_Esp,Cod_Fac,Nombre_Esp)values(500,200,'U1')
insert into ESPECIALIDAD(COD_Esp,Cod_Fac,Nombre_Esp)values
MySQL
46
UNIVERSIDAD NACIONAL DE INGENIERÍA
(600,200,'D1')
insert into ESPECIALIDAD(COD_Esp,Cod_Fac,Nombre_Esp)values(100,100,'I1')
//Mostrando las tablas
select * from FACULTAD
select * form ESPECIALIDAD
Creando la base de datos
Visualizando los datos que tiene la tabla facultad
MySQL
46
UNIVERSIDAD NACIONAL DE INGENIERÍA
Visualizando los datos que tiene la tabla especialidad
MySQL
46
UNIVERSIDAD NACIONAL DE INGENIERÍA
V. CONCLUSIONES
Los sistemas de gestión de base de datos son una pieza
fundamental en la gestión de la información en las
organizaciones
MySQL es el DBMS libre más usado en la actualidad debido a
que los realizadores están constantemente en contacto con los
usuarios para identificar errores y realizar posibles mejoras al
sistema.
La adquisición de MySQL por parte de Oracle, trajo múltiples
beneficios de marketing, sin embargo, Oracle no adquirió parte
del equipo que creó inicialmente el sistema, por lo que un
nuevo DBMS creado por ellos (MariaDB) es un competidor
potencial.
MySQL cuenta con una cartera de clientes tan amplia como el
mercado al que pertenecen, esto facilita la identificación de
limitaciones del sistema dependiendo de la industria a la que
pertenezcan.
MySQL
46
UNIVERSIDAD NACIONAL DE INGENIERÍA
BIBLIOGRAFÍA
Oracle Corpotation (2012) Top 10 Reasons to Use MySQL as an
Embedded Database
Stucky, M. (2001) MySQL Building User Interfaces
Gilfillan, I. (2003) MySQL, La Biblia
DuBois, P. (2003) MySQL Cookbook
Thibaud, C.(2006) MySQL 5.
Postgrado de la Universidad Autónoma del Estado de México. (2005)
MySQL
Oracle Corpotation (2012) Top 10 Reasons to Choose MySQL For Online
Retail
Wikipedia, The Free Encyclopedia(Última actualización: Mayo,2013)
MySQL. URL:http://en.wikipedia.org/wiki/MySQL
MySQL,The world's most popular open source database. MySQL
URL: http://www.mysql.com/
MySQL