Está en la página 1de 58

MySQL

ANDRES FELIPE LONDOO O. CRISTIAN ANDREY OVIEDO P.

INTRODUCCION
Es un sistema de gestin de bases de datos relacional, fue creada por la empresa sueca MySQL AB, la cual tiene el copyright del cdigo fuente del servidor SQL, as como tambin de la marca.

MySQL es un software de cdigo abierto, licenciado bajo la GPL de la GNU, aunque MySQL AB distribuye una versin comercial, en lo nico que se diferencian, es en el soporte tcnico que se ofrece, y la posibilidad de integrar este gestor en un software propietario, ya que de otra manera, se vulnerara la licencia GPL. El lenguaje de programacin que utiliza MySQL es Structured Query Language (SQL) que fue desarrollado por IBM en 1981.

OBJETIVO GENERAL
Conocer e identificar las caractersticas principales del motor de la base de datos MySQL

Objetivos especficos
Conocer la historia y el mejoramiento que ha tenido el motor. Conocer las principales sintaxis utilizadas por el motor. Diferenciar las ventajas competitivas con respecto a los dems motores.

HISTORIA DEL PROYECTO


SQL fue comercializado por primera vez en 1981 por IBM. Primeras versiones: SQL:92, SQL:99, SQL:2003. no eran flexibles, ni rpidos. El prefijo My apareci aproximadamente hace 10 aos. Sakila. MySQL es una marca registrada de MySQL AB.

CARACTERSTICAS
Inicialmente, MySQL careca de algunos elementos esenciales en las bases de datos relacionales, tales como integridad referencial y transacciones. Las principales caractersticas son: El principal objetivo de MySQL es velocidad y robustez. Soporta gran cantidad de tipos de datos para las columnas. Gran portabilidad entre sistemas, puede trabajar en distintas plataformas y sistemas operativos.

Cada base de datos cuenta con 3 archivos: Uno de estructura, uno de datos y uno de ndice y soporta hasta 32 ndices por tabla. Aprovecha la potencia de sistemas multiproceso, gracias a su implementacin multihilo. Flexible sistema de contraseas (password) y gestin de usuarios, con un muy buen nivel de seguridad en los datos. El servidor soporta mensajes de error en distintas lenguas

VENTAJAS
Velocidad al realizar las operaciones. Bajo costo en requerimientos para la elaboracin de bases de datos. Facilidad de configuracin e instalacin. Soporta gran variedad de Sistemas Operativos Baja probabilidad de corromper datos, incluso si los errores no se producen en el propio gestor, sino en el sistema en el que est. Conectividad y seguridad

DESVENTAJAS
Un gran porcentaje de las utilidades de MySQL no estn documentadas. No es intuitivo, como otros programas (ACCESS).

FUNCIONES BSICAS

TIPOS DE DATOS ACEPTADOS POR EL MOTOR


Grupo Tipo de dato Intervalo Almacenamiento

bigint

De -263 (-9.223.372.036.854.775.808) a 263 - 1 (9.223.372.036.854.775.807)

8 bytes

int

De -231 (-2.147.483.648) a 231 - 1 (2.147.483.647)

4 bytes

Numricos exactos smallint

De -215 (-32.768) a 215 - 1 (32.767)

2 bytes

tinyint

De 0 a 255

1 byte

bit

Tipo de datos entero que puede aceptar los valores 1, 0 NULL

2 bytes

Grupo

Tipo de dato

Intervalo

Almacenamiento

decimal, numeric, decimal (p, s) Numricos exactos

p (precisin): el nmero total mximo de dgitos decimales que se puede almacenar, tanto a la izquierda como a la derecha del separador decimal. La precisin debe ser un valor comprendido entre 1 y la precisin mxima de 38. La precisin predeterminada es 18. Precisin 1 - 9: 5 s (escala): el nmero mximo de dgitos decimales bytes que se puede almacenar a la derecha del separador decimal. La escala debe ser un valor comprendido entre 0 y p. Slo es posible especificar la escala si se ha especificado la precisin. La escala predeterminada es 0. Con precisin mxima 1038 +1 y 1038 - 1

money

Tipos de datos que representan valores monetarios o de moneda: de -922.337.203.685,4775808 a 922.337.203.685,4775807 De - 214,7483648 a 214,7483647

8 bytes

smallmoney

4 bytes

Grupo

Tipo de dato

Intervalo De - 1,79E+308 a -2,23E-308, 0 y de 2,23E-308 a 1,79E+308 De - 3,40E + 38 a -1,18E - 38, 0 y de 1,18E - 38 a 3,40E + 38 Del 1 de enero de 1753 hasta el 31 de diciembre de 9999 Del 1 de enero de 1900 hasta el 6 de junio de 2079 Caracteres no Unicode de longitud fija, con una longitud de n bytes. n debe ser un valor entre 1 y 8.000

Almacenamiento Depende del valor de n 4 Bytes

Numricos aproximados

float

real datetime Fecha y hora smalldatetime

char (n)

n bytes

Cadenas de caracteres

varchar (n)

Caracteres no Unicode de longitud variable. n indica que el n bytes (aprox.) tamao de almacenamiento mximo es de 231 - 1 bytes

text

En desuso, sustituido por varchar. Datos no Unicode de longitud variable con una longitud mx. bytes (aprox.) mxima de 231 - 1 (2.147.483.647) caracteres

Grupo

Tipo de dato nchar (n)

Intervalo Datos de carcter Unicode de longitud fija, con n caracteres. n debe estar comprendido entre 1 y 4.000

Almacenamiento

2 * n bytes

Cadenas de nvarchar Datos de carcter Unicode de longitud variable. n indica que el caracteres (n) tamao mximo de almacenamiento es 231 - 1 bytes nico de

2 * n bytes + 2 bytes

ntext (n)

En desuso, sustituido por nvarchar. Datos Unicode de longitud variable con una longitud mxima de 230 - 1 (1.073.741.823) caracteres Datos binarios de longitud fija con una longitud de n bytes, donde n es un valor que oscila entre 1 y 8.000

2 * n bytes

binary (n)

n bytes

Cadenas binarias

varbinary Datos binarios de longitud variable. n indica que el tamao de (n) almacenamiento mximo es de 231 - 1 bytes En desuso, sustituido por varbinary. Datos binarios de longitud variable desde 0 hasta 231 - 1 (2.147.483.647) bytes

n bytes

image

Grupo

Tipo de dato

Intervalo

Almacenamiento

cursor

Tipo de datos para las variables o para los parmetros de resultado de los procedimientos almacenados que contiene una referencia a un cursor. Las variables creadas con el tipo de datos cursor aceptan NULL

Otros tipos de datos Tipo de datos que expone nmeros binarios nicos generados automticamente en una base de datos. timestamp El tipo de datos timestamp es simplemente un nmero que se incrementa y no conserva una fecha o una hora

8 bytes

Grupo

Tipo de dato

Intervalo

Almacenamiento

sql_variant

Tipo de datos que almacena valores de varios tipos de datos aceptados en SQL Server, excepto text, ntext, image, timestamp y sql_variant

uniqueidentifier

Es un GUID (Globally Unique Identifier, Identificador nico Global)

16 bytes

Otros tipos de datos


table

Es un tipo de datos especial que se puede utilizar para almacenar un conjunto de resultados para su procesamiento posterior. table se utiliza principalmente para el almacenamiento temporal de un conjunto de filas devuelto como el conjunto de resultados de una funcin con valores de tabla

xml

Almacena datos de XML. Puede almacenar instancias de xml en una columna o una variable de tipo xml

AUTENTICACIONES
Las cuentas de usuario de MySQL se listan en la tabla user de la base de datos MySQL . Cada cuenta MySQL tiene una contrasea. MySQL usa contraseas en dos fases de la comunicacin cliente/servidor: Cuando un cliente trata de conectar al servidor, hay un paso inicial de autenticacin.

Una vez que el cliente conecta, puede cambiar o inicializar los hashes de las contraseas para las cuentas listadas en la tabla user. Puede hacerlo mediante la funcin PASSWORD(), o mediante los comandos GRANT o SET PASSWORD. El servidor usa los valores hash durante la autenticacin cuando un cliente trata de conectar por primera vez.

ADMINISTRACIN DEL MOTOR


Sintaxis de CREATE USER Sintaxis de DROP USER Sintaxis de GRANT y REVOKE Los comandos GRANT y REVOKE permiten a los administradores de sistemas crear cuentas de usuario MySQL y darles permisos y quitarlos de las cuentas. Sintaxis de RENAME USER Sintaxis de SET PASSWORD

Sintaxis de CACHE INDEX El comando CACHE INDEX asigna ndices de tabla a una cach de clave especfica. Sintaxis de FLUSH Debe usar el comando FLUSH si quiere limpiar algunas de las cachs internas que usa MySQL . Para ejecutar FLUSH, debe tener el permiso RELOAD . Sintaxis de RESET El comando RESET se usa para limpiar el estado de varias operaciones de servidor.

Sintaxis de KILL En MySQL 5.0.0, KILL permite los modificadores opcionales CONNECTION o QUERY: KILL CONNECTION es lo mismo que KILL sin modificadores: termina la conexin asociada con el thread_id dado. KILL QUERY termina el comando que la conexin est ejecutando actualmente, pero deja a la conexin intacta.

GESTIN DE USUARIOS
Una cuenta MySQL se define en trminos de un nombre de usuario y el equipo o equipos desde los que el usuario puede conectar al servidor. La cuenta tambin tiene una contrasea. Los nombres de usuario, tal como los usa MySQL para autentificacin, no tienen nada que ver con los nombres de usuario (nombres de logueo) tal y como los usa Windows o Unix.

La base de datos no es segura, a no ser que todas las cuentas MySQL tengan contrasea. Cualquiera que especifique un nombre de usuario para una cuenta que no tenga contrasea puede conectar al servidor.

Nombre de usuarios en MySQL pueden tener como mximo 16 caracteres de longitud. Este lmite est hard-codeado en los servidores y clientes MySQL, y tratar de evitarlo mediante la modificacin de las tablas en la base de datos mysql no funciona.

Aadir Nuevas Cuentas De Usuario


Puede crear cuentas MySQL de dos formas: Usando comandos GRANT: Es el mtodo mas preferido, ya que son ms concisos y menos propenso a errores; est disponible desde MySQL 3.22.11. Manipulando las tablas de permisos MySQL directamente.

Eliminar Usuario
El comando DROP USER borra una o ms cuentas MySQL . Para usarlo, debe tener el permiso global CREATE USER o el permiso DELETE para la base de datos mysql .

Limitar Recursos De Cuentas


Una forma de limitar los recursos de los servidores MySQL es asignar a la variable de sistema max_user_connections un valor distinto de cero. Este mtodo es estrictamente global. Adems, limita slo el nmero de conexiones simultneas hechas usando una sola cuenta, y no lo que un cliente puede hacer una vez conectado.

En MySQL 5.0, puede limitar los siguientes recursos de servidor para cuentas individuales: El nmero de consultas que una cuenta puede realizar por hora El nmero de actualizaciones que una cuenta puede hacer por hora El nmero de veces que una cuenta puede conectar con el servidor por hora Desde MySQL 5.0.3, es posible limitar el nmero de conexiones simultneas al servidor por cuenta.

Asignar Contraseas A Cuentas


Se pueden asignar contraseas desde la lnea de comandos usando el comando mysqladmin: Shell> mysqladmin -u nombres_usuario -h equipo password "nuevacontr Otra forma de asignar una contrasea en una cuenta es con el comando SET PASSWORD :

mysql> SET PASSWORD PASSWORD('biscuit');

FOR

'jeffrey'@'%'

Guardar Una Contrasea De Forma Segura


MySQL encripta contraseas usando su propio algoritmo. La encriptacin de contrasea es la misma que la implementada en la funcin PASSWORD() . Desde la versin 4.1, MySQL usa un mtodo ms fuerte de autenticacin que tiene una mejor proteccin de contrasea durante el proceso de conexin que en versiones anteriores.

EXPLORADOR DE OBJETOS
TABLA CREATE TABLE crea una tabla con el nombre dado. Se debe poseer el privilegio CREATE para la tabla.
CREATE [TEMPORARY] TABLE [IF NOT EXISTS] tbl_name [(definicin_create,...)] [opciones_tabla] [sentencia_select]

ALTER TABLE permite modificar la estructura de una tabla existente. Por ejemplo, se pueden aadir o eliminar columnas, crear y destruir ndices, cambiar el tipo de una columna existente o renombrar columnas o la propia tabla. Tambin es posible modificar el comentario y el tipo de la tabla.
ALTER [IGNORE] TABLE tbl_name alter_specification [, alter_specification ...]

ANALYZE TABLE Analiza y almacena la distribucin de claves de una tabla. Durante el anlisis, la tabla se bloquea para lectura. Funciona con tablas MyISAM y BDB.
ANALYZE [LOCAL | tbl_name[,tbl_name...] NO_WRITE_TO_BINLOG] TABLE

BACKUP TABLE copia al directorio de copia de seguridad el nmero mnimo de ficheros de tablas necesarios para restaurar la tabla, despus de escribir cualquier cambio al disco.
BACKUP TABLE tbl_name '/path/to/backup/directory' [, tbl_name] ... TO

DELETE elimina columnas desde "table_name" que satisfagan la condicin dada por la "where_definition", y devuelve el nmero de registros borrados.
DELETE [LOW_PRIORITY] [QUICK] [IGNORE] FROM table_name[.*] [, table_name[.*] ...] USING table-references [WHERE where_definition]

DROP DATABASE elimina todas las tablas de la base de datos y borra la base de datos.
DROP {DATABASE | SCHEMA} [IF EXISTS] db_name

UPDATE actualiza columnas de filas existentes de una tabla con nuevos valores.
UPDATE [LOW_PRIORITY] [IGNORE] tbl_name [, tbl_name ...] SET col_name1=expr1 [, col_name2=expr2 ...] [WHERE where_definition]

VISTAS (VIEWS)
Las vistas (incluyendo vistas actualizables) fueron introducidas en la versin 5.0 del servidor de base de datos MySQL Creacin o modificacin de vistas con CREATE VIEW o ALTER VIEW Eliminacin de vistas con DROP VIEW Obtencin de informacin de definicin de una vista (metadatos) con SHOW CREATE VIEW

OTRAS SENTENCIAS
Para los comandos GRANT y REVOKE , priv_type pueden especificarse como cualquiera de los siguientes:

SQL CONSULTAS
En las consultas se pueden hacer con filtros usando Where:
Select * from clientes Where poblacion Like Madrid.

Se pueden ordenar los resultados con Order:


Select * from clientes clientes Where poblacion Like Madrid Order By nombre.

Tambin se puede descendente con Desc:

clasificar

en

orden

Select * from clientes Order By pedidos Desc.

Se pueden hacer selecciones sin coincidencia usando Distinct:


Select Distinct poblacion From clientes Order By poblacion.

Calcular la suma de los valores comprendidos y almacenar el valor en un campo virtual:


Select Sum(total) As suma_pedidos From pedidos.

Con la clausula Count podemos realizar un conteo de la cantidad de datos incluidos en un rango de la tabla:
Select id_client, Count(*) as numero_pedidos From pedidos Group By id_cliente.

LICENCIAMIENTO
El software MySQL tiene una doble licencia. Los usuarios pueden elegir entre usar el software MySQL como un producto Open Source bajo los trminos de la licencia GNU General Public License o pueden adquirir una licencia comercial estndar de MySQL AB.

COSTOS
Mientras InterBase y SQL Server tienen una licencia propietaria y con un costo por el uso del software, MySQL y Firebird cuentan con licencias de uso libre. El doble licenciamiento de MySQL, y la licencia IPL (tipo MPL) bajo la cual se libera Firebird. MySQL garantiza una licencia libre solamente si la aplicacin que la usa es liberada bajo la licencia GPL.
Si quiero crear un software propietario, usando una base de datos libre, no podr utilizar MySQL de manera libre, sino pagando una licencia cuyo costo anual inicia en los 595 US dlares por servidor.

INSTALAR MYSQL
1. Debe determinarse si la plataforma donde se desea hacer la instalacin est soportada. Ntese que no todos los sistemas soportados son igualmente adecuados para ejecutar MySQL. En algunas plataformas el funcionamiento ser mucho ms robusto y eficiente que en otras.

2. Debe elegirse la distribucin que se instalar. Hay varias versiones de MySQL disponibles, y la mayora lo estn en varios formatos de distribucin. Se puede elegir entre distribuciones pre armadas que contienen programas binarios (pre compilados) o bien cdigo fuente. En caso de duda, debe elegirse una distribucin binaria. Tambin se provee acceso pblico al cdigo fuente para quienes deseen ver los desarrollos ms recientes y colaborar en el testeo de cdigo nuevo.

3. Descargar la distribucin que se desea instalar. 4. Instalar la distribucin. 5. Realizar cualquier ajuste que sea necesario con posterioridad a la instalacin. 6. Si se desea ejecutar los scripts para medir el rendimiento de MySQL, debe estar disponible el soporte de Perl para MySQL.

COMPARACIONES
Caracterstica MySQL 4.1 SQL Server 2000 Notas SQL VER apoyo OPINIONES SQL permiten a los administradores de bases de datos abstractos diseos fuera de los desarrolladores.

Triggers Disparadores

Provoca la falta de desarrolladores de MySQL hace agregar lgica a su extremo delantero y el nivel medio, cuando la lgica debera ir en la base de datos.

Procedimientos almacenados Funciones definidas por el usuario

Los procedimientos almacenados son los mecanismos de abstraccin y la seguridad Funciones definidas por el usuario (UDF) permiten la encapsulacin de cdigo complejo en simples interfaces exigible.

Caracterstica

MySQL 4.1

SQL Server 2000

Notas

Apoyo CURSOR

La falta de apoyo en MySQL CURSOR aumenta el trfico de la red y reduce el tiempo de respuesta de aplicaciones. MySQL soporta utilizando una expresin regular como una clusula de filtro en una consulta. XML es un formato basado en estndares para los datos. MySQL no tiene soporte nativo para XML. MySQL no soporta COMPLETA INSCRIBETE

SQL SELECCIONE

Soporte XML COMPLETA INSCRIBETE

Integridad referencial

MySQL 4.0 soporta integridad referencial (RI), siempre y cuando el tipo de tabla InnoDB es elegido.

Soporta transacciones

La instalacin por defecto de MySQL no soporta transacciones. Transaccin requiere el apoyo de InnoDB.

COMPARACIN CON POSTGRESQL


Las caractersticas positivas con respecto a MySQL son: Posee una gran escalabilidad. Es capaz de ajustarse al nmero de CPUs y a la cantidad de memoria que posee el sistema de forma ptima, hacindole capaz de soportar una mayor cantidad de peticiones simultneas de manera correcta.

Implementa el uso de sub-consultas y transacciones, haciendo su funcionamiento mucho ms eficaz, y ofreciendo soluciones en campos en las que MySQL no podra.
Tiene la capacidad de comprobar la integridad referencial, as como tambin la de almacenar procedimientos en la propia base de datos, equiparndolo con los gestores de bases de datos de alto nivel, como puede ser Oracle.

Por contra, los mayores inconvenientes que se pueden encontrar a este gestor son: Consume gran cantidad de recursos. Tiene un lmite de 8K por fila, aunque se puede aumentar a 32K, con una disminucin considerable del rendimiento. Es de 2 a 3 veces ms lento que MySQL.

COMPARACIN CON ORACLE


Atomicidad: es posible construir bloques de sentencias que se ejecutan todo o nada Si y solo si, si usas tablas InnoDB (lo cual hara a MySQL lento) MySQL solo cumple esto si usa InnoDB.

Consistencia: dentro de una transaccin se hace todo o nada, es decir no queda en estado intermedio una transaccin. MySQL no deshace instrucciones DDL as que si dentro de la transaccin creas, alteras o borras una tabla no se deshar.

Aislamiento: bsicamente que lo se haces dentro de una transaccin es invisible a los dems usuarios antes de terminar la transaccin; con tablas MyIsam eso no va a pasar. MySQL solo cumple con esta condicin si usa InnoDB.

Durabilidad: garantiza que el servidor de datos guarda las actualizaciones pendientes de forma tal que pueda recuperarse de una terminacin brusca tal como desenchufar la mquina.

GRACIAS

También podría gustarte