Вы находитесь на странице: 1из 37

Sistemas de Gestión de Bases de Datos (SGBD)

Instituto Profesional La Araucana

SISTEMAS DE GESTIÓN DE
BASES DE DATOS
“MySQL”
Carrera:
“Ingeniería en Informática”

Profesor:
Octavio Campos

Fecha:
27 de abril de 2011.

Integrantes:
Luis Medina
Cristian Vargas
John Vaccarella
Jenzon Beteta

1. INTRODUCCIÓN

MySQL: un SGBD de código abierto 1


Sistemas de Gestión de Bases de Datos (SGBD)
Las bases de datos tienen sus orígenes, gracias a la necesidad de las grandes
empresas de almacenar ingentes cantidades de información de una forma rápida,
sencilla y fiable, y que a su vez pudieran acceder a ella en cualquier momento sin
necesidad de desplazarse a salas dedicadas a archivar documentación, como hasta hace
poco se venía haciendo.

Cuando comenzó el despegue de los programas informáticos se empezaron a


almacenar datos en los archivos de los programas, lo cual era más cómodo pero aun así
tenían grandes dificultades a la hora de querer modificar registros, estructuras o
simplemente buscar información.

A finales de los años sesenta nacen las bases de datos. En estas bases de datos se
guardan los datos utilizados por los usuarios, empresas, etc. Y los programas que los
utilizan no se tienen que preocupar de su mantenimiento ni almacenaje por lo que un
cambio en la base de datos no tiene porque afectar en principio a los programas que la
utilizan.

Como definición de base de datos entendemos que se trata de un conjunto de datos


interrelacionados y almacenados sin redundancias innecesarias, los cuales sirven a las
aplicaciones sin estar relacionados de una manera directa entre ellos.

Una base de datos puede ser utilizada por varias aplicaciones y usuarios. Toda base
de datos debe permitir insertar, modificar y borrar datos almacenados en ella.

A lo largo de este Informe, vamos a describir una de las bases de datos más
famosas de estos últimos tiempos como es MySQL, sus principales plataformas de
trabajo, características y funcionalidades.

2.- ¿QUE ES UNA BASE DE DATOS?

MySQL: un SGBD de código abierto 2


Sistemas de Gestión de Bases de Datos (SGBD)
Una base de datos es un “almacén” que nos permite guardar grandes cantidades
de información de forma organizada para que luego podamos encontrar y utilizar
fácilmente. A continuación te presentamos una guía que te explicará el concepto y
características de las bases de datos.

El término de bases de datos fue escuchado por primera vez en 1963, en un


simposio celebrado en California, USA. Una base de datos se puede definir como un
conjunto de información relacionada que se encuentra agrupada ó estructurada.

Desde el punto de vista informático, la base de datos es un sistema formado por


un conjunto de datos almacenados en discos que permiten el acceso directo a ellos y un
conjunto de programas que manipulen ese conjunto de datos.

Cada base de datos se compone de una o más tablas que guarda un conjunto de
datos. Cada tabla tiene una o más columnas y filas. Las columnas guardan una parte de
la información sobre cada elemento que queramos guardar en la tabla, cada fila de la
tabla conforma un registro.

2.1.-Definición De Base De Datos

Se define una base de datos como una serie de datos organizados y relacionados
entre sí, los cuales son recolectados y explotados por los sistemas de información de una
empresa o negocio en particular.

2.2.- Modelo Entidad-Relación

Los diagramas o modelos entidad-relación (denominado por su siglas, ERD


“Diagram Entity relationship”) son una herramienta para el modelado de datos de un
sistema de información. Estos modelos expresan entidades relevantes para un sistema
de información, sus inter-relaciones y propiedades.

2.2.1.-Cardinalidad de las Relaciones

El diseño de relaciones entre las tablas de una base de datos puede ser la siguiente:
• Relaciones de uno a uno: una instancia de la entidad A se relaciona con una y
solamente una de la entidad B.

• Relaciones de uno a muchos: cada instancia de la entidad A se relaciona con varias


instancias de la entidad B.

• Relaciones de muchos a muchos: cualquier instancia de la entidad A se relaciona


con cualquier instancia de la entidad B.

2.3.- Estructura de una Base de Datos

Una base de datos, a fin de ordenar la información de manera lógica, posee un


orden que debe ser cumplido para acceder a la información de manera coherente. Cada
base de datos contiene una o más tablas, que cumplen la función de contener los
campos.

MySQL: un SGBD de código abierto 3


Sistemas de Gestión de Bases de Datos (SGBD)
Por consiguiente una base de datos posee el siguiente orden jerárquico:
• Tablas

• Campos

• Registros

• Lenguaje SQL

El lenguaje SQL es el más universal en los sistemas de base de datos. Ahora bien, el
modelo de lenguaje SQL propone dos instancias de desarrollo de su entorno llamadas:

• DDL (Data Definition Language)

• DML (Data Manipulation Language)

2.3.1.- DDL (Data Definition Language) – Lenguaje de Definición de Datos

La definición de datos hace referencia a un modelo de escenario donde se


formalizan tablas o consultas. Permiten la creación, eliminación o modificación de tablas
en la base de datos. Este modelo DDL define las estructuras de las tablas en las bases de
datos. Se puede utilizar comandos tales como ALTER, CREATE, DROP y TRUNCATE entre
otros para operar estos procesos de definiciones de datos.

2.3.2.- DML (Data Manipulation Languaje) – Lenguaje de Manipulación de Datos

La manipulación de datos hace referencia a los procesos útiles que pueden ser
aplicados a las tablas para realizar diversas tareas tales como el ingreso de datos,
eliminación o modificación de los mismos. Este modelo propone comandos operativos
tales como:

• Mostrar: para mostrar los registros se utiliza la instrucción Select.


• Insertar: los registros pueden ser introducidos a partir de sentencias que emplean
la instrucción Insert.

• Borrar: Para borrar un registro se utiliza la instrucción Delete. En este caso


debemos especificar cuál o cuáles son los registros que queremos borrar. Es por
ello necesario establecer una selección que se llevara a cabo mediante la cláusula
Where.

• Actualizar: para actualizar los registros se utiliza la instrucción Update. Como para
el caso de Delete, necesitamos especificar por medio de Where cuáles son los
registros en los que queremos hacer efectivas nuestras modificaciones. Además,
tendremos que especificar cuáles son los nuevos valores de los campos que
deseamos actualizar.

2.2.-Características De Una Base De Datos

Entre las principales características de los sistemas de base de datos podemos


mencionar:
• Independencia lógica y física de los datos.

MySQL: un SGBD de código abierto 4


Sistemas de Gestión de Bases de Datos (SGBD)
• Redundancia mínima.

• Acceso concurrente por parte de múltiples usuarios.

• Integridad de los datos.

• Consultas complejas optimizadas.

• Seguridad de acceso y auditoría.

• Respaldo y recuperación.

• Acceso a través de lenguajes de programación estándar.

2.3.- ¿Qué Es Un Sistema De Gestión De Base De Datos (SGBD)?

Los Sistemas de Gestión de Base de Datos (en inglés DataBase Management


System, DBMS) son un tipo de software muy específico, dedicado a servir de interfaz
entre la base de datos, el usuario y las aplicaciones que la utilizan. Se compone de un
lenguaje de definición de datos, de un lenguaje de manipulación de datos y de
un lenguaje de consulta.

2.4.-Ventajas Generales De Las Bases De Datos

2.4.1.-Control sobre la redundancia1 de datos:

Los sistemas de ficheros almacenan varias copias de los mismos datos en ficheros
distintos. Esto hace que se desperdicie espacio de almacenamiento, además de provocar
la falta de consistencia de datos.
En los sistemas de bases de datos todos estos ficheros están integrados, por lo que
no se almacenan varias copias de los mismos datos. Sin embargo, en una base de datos
no se puede eliminar la redundancia completamente, ya que en ocasiones es necesaria
para modelar las relaciones entre los datos.

2.4.2.-Consistencia de datos:

Eliminando o controlando las redundancias de datos se reduce en gran medida el


riesgo de que haya inconsistencias. Si un dato está almacenado una sola vez, cualquier
actualización se debe realizar sólo una vez, y está disponible para todos los usuarios
inmediatamente. Si un dato está duplicado y el sistema conoce esta redundancia, el
propio sistema puede encargarse de garantizar que todas las copias se mantienen
consistentes.

2.4.3.-Compartición de datos:

En los sistemas de ficheros, los ficheros pertenecen a las personas o a los


departamentos que los utilizan. Pero en los sistemas de bases de datos, la base de datos
pertenece a la empresa y puede ser compartida por todos los usuarios que estén
autorizados.

MySQL: un SGBD de código abierto 5


Sistemas de Gestión de Bases de Datos (SGBD)
2.4.4.-Mantenimiento de estándares:

Gracias a la integración es más fácil respetar los estándares necesarios, tanto los
establecidos a nivel de la empresa como los nacionales e internacionales. Estos
estándares pueden establecerse sobre el formato de los datos para facilitar su
intercambio, pueden ser estándares de documentación, procedimientos de actualización
y también reglas de acceso.

2.4.5.-Mejora en la integridad de datos:

La integridad de la base de datos se refiere a la validez y la consistencia de los


datos almacenados. Normalmente, la integridad se expresa mediante restricciones o
reglas que no se pueden violar. Estas restricciones se pueden aplicar tanto a los datos,
como a sus relaciones, y es el SGBD quien se debe encargar de mantenerlas.

1. Redundancia: Cierta repetición de la información contenida en un mensaje, que permite, a pesar de la pérdida de una
parte de este, reconstruir su contenido.

2.4.6.-Mejora en la seguridad:

La seguridad de la base de datos es la protección de la base de datos frente a


usuarios no autorizados. Sin unas buenas medidas de seguridad, la integración de datos
en los sistemas de bases de datos hace que éstos sean más vulnerables que en los
sistemas de ficheros.

2.4.7.-Mejora en la accesibilidad a los datos:

Muchos SGBD proporcionan lenguajes de consultas o generadores de informes que


permiten al usuario hacer cualquier tipo de consulta sobre los datos, sin que sea
necesario que un programador escriba una aplicación que realice tal tarea.

2.4.8.-Mejora en la productividad:

El SGBD proporciona muchas de las funciones estándar que el programador


necesita escribir en un sistema de ficheros. A nivel básico, el SGBD proporciona todas las
rutinas de manejo de ficheros típicas de los programas de aplicación. El hecho de
disponer de estas funciones permite al programador centrarse mejor en la función
específica requerida por los usuarios, sin tener que preocuparse de los detalles de
implementación de bajo nivel.

2.4.9.-Mejora en el mantenimiento:

En los sistemas de ficheros, las descripciones de los datos se encuentran inmersas


en los programas de aplicación que los manejan. Esto hace que los programas sean
dependientes de los datos, de modo que un cambio en su estructura, o un cambio en el
modo en que se almacena en disco, requiere cambios importantes en los programas
cuyos datos se ven afectados.

MySQL: un SGBD de código abierto 6


Sistemas de Gestión de Bases de Datos (SGBD)
Sin embargo, los SGBD separan las descripciones de los datos de las aplicaciones.
Esto es lo que se conoce como independencia de datos, gracias a la cual se simplifica el
mantenimiento de las aplicaciones que acceden a la base de datos.

2.4.10.-Aumento de la concurrencia:

En algunos sistemas de ficheros, si hay varios usuarios que pueden acceder


simultáneamente a un mismo fichero, es posible que el acceso interfiera entre ellos de
modo que se pierda información o se pierda la integridad. La mayoría de los SGBD
gestionan el acceso concurrente a la base de datos y garantizan que no ocurran
problemas de este tipo.

2.4.11.-Mejora en los servicios de copias de seguridad:

Muchos sistemas de ficheros dejan que sea el usuario quien proporcione las
medidas necesarias para proteger los datos ante fallos en el sistema o en las
aplicaciones. Los usuarios tienen que hacer copias de seguridad cada día, y si se produce
algún fallo, utilizar estas copias para restaurarlos. En este caso, todo el trabajo realizado
sobre los datos desde que se hizo la última copia de seguridad se pierde y se tiene que
volver a realizar. Sin embargo, los SGBD actuales funcionan de modo que se minimiza la
cantidad de trabajo perdido cuando se produce un fallo.

2.5.-Desventajas De Las Bases De Datos

2.5.1.-Complejidad:
Los SGBD son conjuntos de programas que pueden llegar a ser complejos con una
gran funcionalidad. Es preciso comprender muy bien esta funcionalidad para poder
realizar un buen uso de ellos.

2.5.2.-Coste del equipamiento adicional:


Tanto el SGBD, como la propia base de datos, pueden hacer que sea necesario
adquirir más espacio de almacenamiento. Además, para alcanzar las prestaciones
deseadas, es posible que sea necesario adquirir una máquina más grande o una máquina
que se dedique solamente al SGBD. Todo esto hará que la implantación de un sistema de
bases de datos sea más cara.

2.5.3.-Vulnerable a los fallos:


El hecho de que todo esté centralizado en el SGBD hace que el sistema sea más
vulnerable ante los fallos que puedan producirse. Es por ello que deben tenerse copias de
seguridad (Backup).

2.6.-Tipos De Campos De Una Base De Datos

Como sabemos una base de datos está compuesta de tablas donde almacenamos
registros catalogados en función de distintos campos (características).

Un aspecto previo a considerar es la naturaleza de los valores que introducimos en esos


campos. Dado que una base de datos trabaja con todo tipo de informaciones, es
importante especificarle qué tipo de valor le estamos introduciendo de manera a, por un
lado, facilitar la búsqueda posteriormente y por otro, optimizar los recursos de memoria.

MySQL: un SGBD de código abierto 7


Sistemas de Gestión de Bases de Datos (SGBD)
Cada base de datos introduce tipos de valores de campo que no necesariamente están
presentes en otras. Sin embargo, existe un conjunto de tipos que están representados en
la totalidad de estas bases. Estos tipos comunes son los siguientes:

• Numérico: entre los diferentes tipos de campos numéricos podemos encontrar


enteros “sin decimales” y reales “decimales”.

• Booleanos: poseen dos estados: Verdadero “Si” y Falso “No”.

• Texto: son campos alfanuméricos de longitud ilimitada. Presentan el


inconveniente de no poder ser indexados.

• Fechas: almacenan fechas facilitando posteriormente su explotación. Almacenar


fechas de esta forma posibilita ordenar los registros por fechas o calcular los días
entre una fecha y otra.

• Alfanuméricos: contienen cifras y letras. Presentan una longitud limitada (255


caracteres).

• Autoincrementables: son campos numéricos enteros que incrementan en una


unidad su valor para cada registro incorporado. Su utilidad resulta: Servir de
identificador ya que resultan exclusivos de un registro.

Una vez que hemos comprendido los conceptos básicos que forman parte de una
base de datos, vamos a proceder a describir uno de los más importantes Sistemas de
Gestión De Base de Datos (SGBD), con una fuerte orientación a Internet de estos
tiempos, como es MySQL.

3.- ¿QUÉ ES MySQL?

MySQL es un sistema de administración de bases de datos relacional (RDBMS) más


populares, con la característica Open Source 2, que se desarrolla y distribuye con el apoyo
de Oracle Corporation, desde febrero de 2008. 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 RDBMS 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. Permite desarrollar 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: un SGBD de código abierto 8


Sistemas de Gestión de Bases de Datos (SGBD)
MySQL utiliza el lenguaje de consulta estructurado (SQL). SQL es el lenguaje
estándar utilizado por todas las bases de relacionales, es decir almacena datos en tablas
separadas en lugar de poner todos los datos en un gran almacén. Esto añade velocidad y
flexibilidad. Este lenguaje permite crear bases de datos, así como agregar, manipular y
recuperar datos en función de criterios específicos.
MySQL es software de código abierto (Open Source) Cualquiera puede descargar el
software MySQL desde Internet y usarlo sin pagar nada. El software MySQL usa la licencia
GPL (GNU General Public License)3, para definir lo que pueden y no pueden hacer con el
software en diferentes situaciones. Además se puede adquirir una licencia comercial
estándar de MySQL AB, con sede en Suecia.

3.1.-Historia

El origen de MySQL se remonta a la década de los ochenta. Michael


Widenius, también conocido como Monty, 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.
Años después, en 1995, y en colaboración con David Axmark,
Widenius 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.
Fig.1. Michael
Widenius
La procedencia del nombre de MySQL no es clara. Desde hace más de 10 años, las
herramientas han mantenido el prefijo My. También, se cree que tiene relación con el
nombre de la hija del cofundador Monty Widenius quien se llama My. La parte SQL de
"MySQL" significa "Lenguaje de consulta estructurado."

Por otro lado, el nombre del delfín de MySQL es Sakila y


fue seleccionado por los fundadores de MySQL AB en el
concurso “Name the Dolphin”. Este nombre fue enviado por
Ambrose Twebaze, un desarrollador de software de código
abierto africano, derivado del idioma SiSwate, el idioma local
de Swazilandia y corresponde al nombre de una ciudad en
Arusha, Tanzania, cerca de Uganda, la ciudad origen de
Ambrose.
Fig.2. Logo Característico de
MySQL

2. Open Source: significa que es posible para cualquiera usar y modificar el software.
3. ver el apartado 3.3, para detalles de la licencia. (GPL).

3.2.-Evolución

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. Sin embargo, también como
es habitual, hay que distinguir entre versiones de prueba o beta y versiones estables o
de producción.

MySQL: un SGBD de código abierto 9


Sistemas de Gestión de Bases de Datos (SGBD)
Las versiones de prueba o beta están a disposición de los usuarios para ser
testadas en busca de posibles mejoras. Por su parte, las versiones estables o de
producción son las que ya están preparadas para ser utilizadas a pleno rendimiento.

3.3.- Tipos de Licencias de MySQL.

MySQL posee dos tipos de licencia: una de software libre y otra comercial. La
Licencia Pública General de GNU (GNU GPL, por sus siglas en inglés) es una licencia libre
y gratuita con derecho de copia para software y otros tipos de obras.

Las licencias para la mayoría del software y otras obras de índole práctica están
diseñadas para privarle de la libertad para distribuir y modificar las obras. Por el
contrario, la Licencia Pública General de GNU garantiza la libre distribución y modificación
de todas las versiones de un programa, a fin de asegurarle dicha libertad a todos los
usuarios. En la Fundación para el Software Libre utilizamos la Licencia Pública General de
GNU para la mayoría de nuestro software; también se aplica a cualquier otra obra
publicada de esta manera por sus autores. Usted también puede aplicarla a sus
programas.

El uso que usted le pueda dar va netamente ligado a toda la gran creatividad que
tenga para utilizarla, su mayor característica, es que no tiene límites de creación, otra
característica que si usted encuentra un código libre puede simplemente bajarlo y
realizar todos los cambios que sean necesarios o bien adaptarlos a sus necesidades.

Para proteger sus derechos, necesitamos evitar que otros le nieguen estos
derechos o le pidan que renuncie a los mismos. Por lo tanto, en el caso de que usted
distribuya o modifique este software, tendrá ciertas responsabilidades a fin de garantizar
la libertad de los demás.

Por ejemplo, si usted distribuye copias de un programa de esta naturaleza, ya sea


en forma gratuita o a cambio de dinero, debe extender a los destinatarios del software
las mismas libertades que le fueron otorgadas a usted. Debe asegurarse de que ellos
también reciban o tengan la posibilidad de obtener el código fuente. Y debe mostrarles
los presentes términos a fin de que conozcan sus derechos.

Los desarrolladores que utilizan la GNU GPL siguen dos pasos para proteger los
derechos que usted recibe: (1) declarar los derechos de autor del software, y (2) ofrecerle
esta Licencia para que usted pueda copiar, distribuir y/o modificar el software
legalmente.

3.4.-Características De MySQL

Aparte de las características que definen MySQL como programa open-source, ya


mencionada, existen aspectos que lo diferencian de otros productos como, por citar uno
conocido, Access. Los atributos, de forma muy general a los que hacemos referencia son:

MySQL: un SGBD de código abierto 10


Sistemas de Gestión de Bases de Datos (SGBD)
• Posibilidad de crear y configurar usuarios, asignando a cada uno de ellos permisos
diferentes.
• Facilidad de exportación e importación de datos, incluso de la base de datos
completa.
• Posibilidad de ejecutar conjuntos de instrucciones guardadas en ficheros externos
a la base de datos.

Otras características más especificas de MySQL, podemos agruparlas de la siguiente


forma:

3.4.1-Interioridades y portabilidad
• Escrito en C y en C++
• Probado con un amplio rango de compiladores diferentes
• Funciona en diferentes plataformas. (Consulte Sección 5.2, “Plataformas que
MySQL soporta”).
• Usa GNU Automake, Autoconf, y Libtool para portabilidad.
• APIs4 disponibles para C, C++, Eiffel, Java, Perl, PHP, Python, Ruby, y Tcl.
• Uso completo de multi-threaded mediante threads5 del kernel. Pueden usarse
fácilmente múltiple CPUs si están disponibles.
• Proporciona sistemas de almacenamiento transaccional y no transaccional.
• Usa tablas en disco B-tree (MyISAM) muy rápidas con compresión de índice.
• Relativamente sencillo de añadir otro sistema de almacenamiento. Esto es útil si
desea añadir una interfaz SQL para una base de datos propia.
• Un sistema de reserva de memoria muy rápido basado en threads5.
• Joins muy rápidos usando un multi-join de un paso optimizado.
• Tablas hash en memoria, que son usadas como tablas temporales.
• Las funciones SQL están implementadas usando una librería altamente optimizada
y deben ser tan rápidas como sea posible. Normalmente no hay reserva de
memoria tras toda la inicialización para consultas.
• El código MySQL se prueba con Purify, así como con Valgrind6.
• El servidor está disponible como un programa separado para usar en un entorno
de red cliente/servidor. También está disponible como biblioteca y puede ser
incrustado (linkado) en aplicaciones autónomas. Dichas aplicaciones pueden
usarse por sí mismas o en entornos donde no hay red disponible.

3.4.2-Tipos de columnas
• Diversos tipos de columnas: enteros con/sin signo de 1, 2, 3, 4, y 8 bytes de
longitud, FLOAT, DOUBLE, CHAR, VARCHAR, TEXT, BLOB, DATE, TIME, DATETIME,
TIMESTAMP, YEAR, SET, ENUM, entre otros.
• Registros de longitud fija y longitud variable.

4. API: es la abreviatura de Aplication Programming Interface, y no es más que una serie de servicios o funciones que
ofrece una aplicación.
5. thread: (hilo) se puede considerar como la agrupación de un trozo de programa junto con el conjunto de registros del
procesador que utiliza y una pila de máquina.
6. Purify y Valgrind: Programas de depuración de memoria utilizados por los desarrolladores de software para detectar
errores de memoria de acceso en los programas, especialmente los escritos en C o C + +. El Primero es Pagado, mientras
que el segundo es open source.

MySQL: un SGBD de código abierto 11


Sistemas de Gestión de Bases de Datos (SGBD)
3.4.3-Sentencias y funciones
• Soporte completo para operadores y funciones en las cláusulas de consultas
SELECT y WHERE.

• Soporte completo para las cláusulas SQL GROUP BY y ORDER BY. Soporte de
funciones de agrupación (COUNT(), COUNT(DISTINCT ...), AVG(), STD(), SUM(),
MAX(), MIN(), y GROUP_CONCAT()).
• Soporte para LEFT OUTER JOIN y RIGHT OUTER JOIN cumpliendo estándares de
sintaxis SQL y ODBC.
• Soporte para alias en tablas y columnas como lo requiere el estándar SQL.
• DELETE, INSERT, REPLACE, y UPDATE devuelven el número de filas que han
cambiado (han sido afectadas). Es posible devolver el número de filas que serían
afectadas usando un flag al conectar con el servidor.
• El comando específico de MySQL SHOW puede usarse para obtener información
acerca de la base de datos, el motor de base de datos, tablas e índices. El
comando EXPLAIN puede usarse para determinar cómo el optimizador resuelve
una consulta.
• Puede mezclar tablas de distintas bases de datos en la misma consulta (como en
MySQL 3.22).

3.4.4-Seguridad
• Un sistema de privilegios y contraseñas que es muy flexible y seguro, y que
permite verificación basada en el host. Las contraseñas son seguras porque todo el
tráfico de contraseñas está cifrado cuando se conecta con un servidor.

3.4.5-Escalabilidad y límites
• Soporte a grandes bases de datos. Se usa MySQL con bases de datos que
contienen 50 millones de registros. También se ha sabido de usuarios que usan
MySQL con 60.000 tablas y cerca de 5.000.000.000.000 de registros.
• Se permiten hasta 64 índices por tabla (32 antes de MySQL 4.1.2). Cada índice
puede consistir desde 1 hasta 16 columnas o partes de columnas. El máximo
ancho de límite son 1000 bytes (500 antes de MySQL 4.1.2).Un índice puede usar
prefijos de una columna para los tipos de columna CHAR, VARCHAR, BLOB, o TEXT.

3.4.6-Conectividad
• Los clientes pueden conectar con el servidor MySQL usando sockets TCP/IP en
cualquier plataforma. En sistemas Windows de la familia NT (NT,2000,XP, o 2003),
los clientes pueden usar named pipes7 para la conexión. En sistemas Unix, los
clientes pueden conectar usando ficheros socket Unix.
• En MySQL 5.0, los servidores Windows soportan conexiones con memoria
compartida si se inicializan con la opción --shared-memory. Los clientes pueden
conectar a través de memoria compartida usando la opción --protocol=memory.
• La interfaz para el conector ODBC (MyODBC) proporciona a MySQL soporte para
programas clientes que usen conexiones ODBC (Open Database Connectivity). Por
ejemplo, puede usar MS Access para conectar al servidor MySQL. Los clientes
pueden ejecutarse en Windows o Unix. El código fuente de MyODBC está
disponible. Todas las funciones para ODBC 2.5 están soportadas, así como muchas
otras.
• La interfaz para el conector J MySQL proporciona soporte para clientes Java que
usen conexiones JDBC. Estos clientes pueden ejecutarse en Windows o Unix. El
código fuente para el conector J está disponible.

MySQL: un SGBD de código abierto 12


Sistemas de Gestión de Bases de Datos (SGBD)

7.named pipes: es uno de los métodos de Comunicación entre procesos (IPC)

3.4.7-Localización
• El servidor puede proporcionar mensajes de error a los clientes en muchos
idiomas.
• Soporte completo para distintos conjuntos de caracteres, incluyendo latin1 (ISO-
8859-1), german, big5, ujis, y más. Por ejemplo, los caracteres escandinavos 'â', 'ä'
y 'ö' están permitidos en nombres de tablas y columnas. El soporte para Unicode
está disponible.
• Todos los datos se guardan en el conjunto de caracteres elegido. Todas las
comparaciones para columnas normales de cadenas de caracteres son case-
insensitive.
• La ordenación se realiza acorde al conjunto de caracteres elegido (usando colación
Sueca por defecto). Es posible cambiarla cuando arranca el servidor MySQL. Para
ver un ejemplo de ordenación muy avanzada, consulte el código Checo de
ordenación. MySQL Server soporta diferentes conjuntos de caracteres que deben
ser especificados en tiempo de compilación y de ejecución.

3.4.8-Clientes y herramientas
• MySQL posee soporte para comandos SQL para chequear, optimizar, y reparar
tablas. Estos comandos están disponibles a través de la línea de comandos y el
cliente mysqlcheck. MySQL también incluye myisamchk, una utilidad de línea de
comandos muy rápida para efectuar estas operaciones en tablas MyISAM.
• Todos los programas MySQL pueden invocarse con las opciones --help o -? para
obtener asistencia en línea.

4.-PRODUCTOS MySQL

Cuando empezamos el proyecto en que nos adentramos, la primera impresión fue


introducirnos a las paginas, creíamos encontrar solo un producto llamado MySQL y
seguido de un botón bajar pero todo en ingles, nos llamo la atención que no fue así, sino
que más que un botón para bajar un único productos nos encontramos con la sorpresa
de que había una sección completa a que se refería a los diferentes productos que ofrece
ORACLE para su proyecto MySQL. (Véase Fig. 3)

Fig.3:Pagina/Bajar

MySQL: un SGBD de código abierto 13


Sistemas de Gestión de Bases de Datos (SGBD)

Fig.4: Primeras
Palabras

Con la frase “MySQL es la base de datos open source más popular del mundo”
(Véase fig.4) Nos hace referencia a lo que nos enfrentaremos al momento de decidirnos
por una base de datos que tiene mucha presencia en el ámbito web.

Fig.5: Bases Gratis

MySQL: un SGBD de código abierto 14


Sistemas de Gestión de Bases de Datos (SGBD)
Cuando nos adentramos en el tema de las bases de datos, alguna vez escuchamos
a un profesor decir: “esta base de datos es Gratis!!” Por eso la usaremos, pero la verdad
no es gratis... sino una de sus distribuciones es completamente gratis como lo es MySQL
Comunity Edition (Véase Fig.5).

Esta distribución, que no presenta ningún problema para descargarse de la página nos
ofrece:

InnoDB: Es una tecnología de almacenamiento de datos de código abierto, la cual


soporta transacciones de tipo ACID.

ACID: Es el acrónimo de Atomicity, Consistance, Isolation, Durability. Este nos indica que
una transacción, para que sea propiamente tal debe cumplir las siguientes
características:

• Atomicidad: Se realiza o no la operación.


• Consistencia: Se ejecutan aquellas operaciones que si se pueden y dentro de las
reglas.
• Aislamiento: Propiedad de que una operación no afecte a otra.
• Durabilidad: Propiedad que asegura que si se realiza una operación esta
permanecerá aunque falle el sistema.

MyISAM: Tecnología de almacenamiento anterior a InnoDB, y junto a otros conceptos


adicionales que arman un estándar funcional de la base de datos.

4.1.-Productos Comerciales de MySQL.

Esta versión está


orientada a las empresas que
eligen a MySQL para sus
proyectos. En esta distribución
se entrega la base de datos
propiamente tal y extensiones
como el respaldo (Backup),
Monitoreo de la base de datos
(Enterprise Monitor), interface
grafica para comunicarse a la
base de datos.

MySQL: un SGBD de código abierto 15


Sistemas de Gestión de Bases de Datos (SGBD)
Esta distribución tiene la particularidad de que usa una tecnología muy reciente
sobre los CLUSTER que maneja la tecnología NDB es un motor de almacenamiento en
memoria, que está dividida en varios servidores.

5.- REQUISITOS DE HARDWARE Y SOFTWARE PARA INSTALAR MySQL

5.1.- Requisitos mínimos de Hardware de MySQL.

Los requisitos mínimos de Hardware de MySQL dependen de la carga que vaya a


soportar la base de datos. En principio, para un uso normal, se recomienda como mínimo
un procesador AMD con una velocidad de 400 MHz, y suficiente memoria RAM, por
ejemplo 512 Mb para empezar. Respecto al disco duro, con un IDE rápido (7.500 rpm y 2
Mb de caché) sería suficiente.

5.2.- Plataformas:

MySQL se ejecuta en más de 20 plataformas, incluyendo: Linux, Windows, Mac OS,


Solaris, HP-UX, IBM AIX, ofreciéndole el grado de flexibilidad que le permite controlar. Si
usted es nuevo en la tecnología de base de datos, programador experimentado o DBA,
MySQL ofrece una amplia gama de herramientas de base de datos, soporte, capacitación
y servicios de consultoría para llevarle al éxito.

Además, MySQL funciona sobre múltiples plataformas, incluyendo:

• QNX
• SGI IRIX
• SunOS
• SCO OpenServer
• SCO UnixWare
• Tru64
• eBD
• NetBSD
• Novell Netware
• OpenBSD
• OS/2 Warp
• FreeBSD

Ahora, procederemos a destacar las plataformas más usadas:

5.2.1.- WINDOWS:

Es el primer sistema operativo de Microsoft orientado al consumidor (desde


Windows 95, hasta la actualidad) que se construye con un núcleo y arquitectura de

MySQL: un SGBD de código abierto 16


Sistemas de Gestión de Bases de Datos (SGBD)
Windows, dispone de versiones para varios entornos informáticos, incluyendo PCs
domésticos o de negocios, además de equipos portátiles, disponible en versiones para
plataformas de 32 y 64 bits. Presenta mejoras en la estabilidad y el rendimiento .Un
sistema operativo de Windows permite ejecutar el servidor MySQL como un servicio.

5.2.2.- AIX:

Advanced Interactive eXecutive es un sistema operativo UNIX System V corre en


los servidores IBM eServers pSeries, utilizando procesadores de la familia IBM POWER de
32 y 64 bits.

5.2.3.- BSD :

Berkeley Software Distribution también ha hecho grandes contribuciones en el campo


de los sistemas operativos en general, como por ejemplo:

• El manejo de memoria virtual paginado por demanda

• El control de trabajos

• El fast filesystem

• El protocolo TCP/IP

5.2.4.- HP-UX:

Es la versión de Unix desarrollada y mantenida por Hewlett-Packard desde 1983,


ejecutable típicamente sobre procesadores HP PA RISC y en sus últimas versiones sobre
Intel Itanium (arquitectura Intel de 64 bits); a pesar de estar basada ampliamente en
System V incorpora importantes características BSD. HP-UX es, como la mayor parte
de Unix comerciales, un entorno de trabajo flexible, potente y estable, que soporta un
abanico de aplicaciones que van desde simples editores de texto a complicados
programas de diseño gráfico o cálculo científico.

5.2.5.- MacOS X :

Es la décima versión del sistema operativo de Apple para computadores Macintosh.


Estas herramientas incluyen un servidor de correo, un servidor Samba, un Servidor LDAP
y un servidor de dominio entre otros.

5.2.6.- SOLARIS:

Solaris es en sí software propietario y ahora la parte principal del sistema


operativo se ha liberado como un proyecto de software libre denominado OpenSolaris.
Sun Solaris se ejecuta sobre la arquitectura SPARC en 32 y 64 bits (más conocida como
Ultra Sparc) o sobre procesadores x86 (incluidos Intel y AMD). MySQL en Solaris y
OpenSolaris está disponible en varios formatos diferentes. Para obtener una distribución
binaria de MySQL para Solaris en tarball o formato PKG. Los procesos nativos de Sun
solamente funcionan en Solaris 2.5 y posteriores. Para la versión 2.4 y anteriores,
MySQL utilizará MIT- pthreads automáticamente.

MySQL: un SGBD de código abierto 17


Sistemas de Gestión de Bases de Datos (SGBD)
5.2.7.- LINUX:

Este software es desarrollado para uso general en una variedad de aplicaciones de


administración de información, la manera de instalar MySQL en Linux es utilizando
paquetes RPM.

5.2.8.- RPM:

Acrónimo de Red Hat Package Manager, es un potente programa en modo línea de


comandos que nos permite instalar, desinstalar, verificar, preguntar y actualizar
paquetes de software para Red Hat y distribuciones que usen esta clase de instaladores.

MySQL: un SGBD de código abierto 18


Sistemas de Gestión de Bases de Datos (SGBD)

6.- INSTALACION DE MySQL

Ahora en este capítulo veremos cómo se realiza la instalación de la base de datos


MySQL. Para este ejemplo de instalación usaremos el sistema operativo WINDOWS.
Dentro de la página de MySQL, existe un instalador automático, el cual con algunos clicks
instala de forma automática todos los archivos necesarios para que el entorno del
sistema reconozca y permita el correcto funcionamiento la base de datos.

6.1.- Instalación en Microsoft Windows

Primer paso: ¿Dónde consigo los archivos?

De la página de MySQL:

Aquí nos muestra que tipo de distribución o producto de MySQL queremos


descargar, también debemos seleccionar el tipo de sistema operativo con que contamos,
y el tipo de arquitectura que tenemos, también salen las versiones disponibles para
descargar (véase Fig.7).

Fig.7: Momento de descarga de MySQL.

Nótese que es un instalador (MSI), estos programas hacen facilitan el proceso de


instalación, porque ellos reconocen la ruta y transfieren los archivos necesarios. Lo que
en otros tiempos no era posible.

Después de tener todo parametrizado, comenzamos con la descarga y nos


muestra que la pagina de MySQL mantiene una política de identificación, por lo que se
requiere un usuario y pass (véase Fig.8)

MySQL: un SGBD de código abierto 19


Sistemas de Gestión de Bases de Datos (SGBD)

Fig.8: Formulario de ingreso

El formulario requiere algunos datos, tales como nombre, correo electrónico, entre
otras cosas. Es muy fácil de completar, y nos da la opción de tener contacto con las
nuevas versiones y/o noticias de MySQL.

MySQL: un SGBD de código abierto 20


Sistemas de Gestión de Bases de Datos (SGBD)
El paso siguiente es solo elegir el espejo de donde descargaremos el archivo. El
sistema nos muestra de donde podemos descargar, en diferentes países y que tipo de
transferencias (FTP y http).

MySQL: un SGBD de código abierto 21


Sistemas de Gestión de Bases de Datos (SGBD)

En unos minutos tendremos nuestro archivo con extensión *.MSI.

MySQL: un SGBD de código abierto 22


Sistemas de Gestión de Bases de Datos (SGBD)

Segundo paso: ¿Como instalar el archivo .MSI?

Fig.9: Ventanas de Instalación de MySQL, en Windows.

En la figura no se muestra ninguna dificultad ya que solo se va avanzando con los


botones siguientes [next] y pidiendo el usuario y pass para la base de datos.

El paso más complicado es darle nombre al servidor, que es el nombre del PC


propiamente tal, el usuario de la base de datos, esto es porque tiene que tenerlo en
cuenta para posteriormente hacer la comunicación con dicha base de datos.

Tercer paso: ¿Como saber si quedo bien instalada la base de datos?

A modo de recomendación lo principal es volver a los orígenes, remontarse a lo antiguo,


es decir a CMD en DOS y la Consola de comandos en Linux.

MySQL: un SGBD de código abierto 23


Sistemas de Gestión de Bases de Datos (SGBD)
Ya tenemos el promt de MySQL correctamente.

6.1.- Instalación en Linux

Fig.10: Pasos Para Instalar MySQL en Linux.

Después de descargar, hay que descomprimir los archivos de la forma que se hace
en Linux. Instalar en esta plataforma es mucho más fácil que en WINDOWS.

MySQL: un SGBD de código abierto 24


Sistemas de Gestión de Bases de Datos (SGBD)

7.- MANEJAR MySQL MEDIANTE CONSOLA


Algo que nos ha llamado mucha la atención, es como acceder a la base de datos.
Claro uno se imagina la base de datos como un computador, y dentro de él los datos tan
valiosos para la empresa, pero… ¿cómo nos conectamos a esa base de datos y poder así
interactuar con ella? Hace tiempo veíamos las pantallas con letras verdes de los bancos
y como salían las lluvias de datos y pensábamos: ¿Cómo la persona que manejaba esa
máquina podía entender todo lo que veía? Ahora, en la forma más básica MySQL hace
casi lo mismo, una alternativa a la interacción es por la pantalla negra que conocemos de
DOS llamada mas técnicamente CMD que ha permanecido hasta estos tiempos en las
diferentes distribuciones, en Linux aun permanece como forma principal de trabajo.

En este capítulo describiremos la forma de acceder a la base de datos mediante


consola como se dice más técnicamente.

Primer paso donde se encuentra el archivo que levanta la instancia, es decir, en


donde se encuentra el archivo *.exe que mediante el path permite levantar CMD cargado
con el programa de MySQL.

En Windows, la ruta de encuentra dentro de la carpeta MySQL, por defecto


dentro del apartado c:\Archivos De Programa.

fig.11: Esquema de acceso a la ruta: MySQL\Bin\mysql.exe

Haciendo doble click en el programa se levantará CMD ya Cargado con la instancia de


MySQL.

MySQL: un SGBD de código abierto 25


Sistemas de Gestión de Bases de Datos (SGBD)
Como nota: también puede llamarse invocando el comando “MySQL” en la consola, el
resto lo hace el PATH

En el ejemplo, es llamada la instancia de MySQL directo de la consola, con el


parámetro –u [Usa otra base de datos, la desmonta si había una anterior] después de
este parámetro viene el usuario, después, viene –p [Imprime el comando que se debe
ejecutar]. Posteriormente nos pide el pass que está relacionado con el usuario, que en
este caso es “root”.

Fig.12: Lista de comandos de MySQL

Si el procedimiento es correcto, mostrara las siguientes líneas en donde da la


bienvenida a MySQL, el numero de conexión (identificatorio), la versión del servidor y el
“tip” de cómo acceder a la ayuda, además, como limpiar pantalla.

Fig.13: Bienvenida de MySQL

Ya teniendo esto ejecutándose, estamos en condiciones de comenzar a interactuar


con la base de datos.

MySQL: un SGBD de código abierto 26


Sistemas de Gestión de Bases de Datos (SGBD)

7.1.- Interactuando con la base de datos

Fig.14: Bases de datos almacenadas en MySQL

Del Prompt, llamamos al comando “show” que significa mostrar y “database” que
es la base de datos. Todo esto hace que muestre las bases de datos que se encuentren
en MySQL.

Para acceder a una tabla dentro de la base de datos se usa el comando “USE”, que
en ambiente Linux seria como montar y posteriormente el nombre de la tabla que
queremos acceder, en este caso “clases”.

El sistema entrega como confirmación del proceso que se ejecuto de forma


correcta el mensaje “Database changed”, la base de datos ha cambiado.

Para revisar la estructura de la tabla se usa el comando “describe” y el nombre de


la tabla que en este caso es “cliente”, diagrama la tabla en pantalla.

MySQL: un SGBD de código abierto 27


Sistemas de Gestión de Bases de Datos (SGBD)

Ahora un ejemplo de lenguaje de SQL en MySQL, desde consola después del prompt se
introduce cualquier código SQL terminando la sentencia con “;”.

8.- SEGURIDAD EN MySQL


Antes de comenzar hablar de la seguridad en MySQL, debemos tener presente que
todo sistema puede ser vulnerable a cualquier ataque de parte de usuarios maliciosos, lo
importante es tener bien claro ¿El Qué voy a proteger? y el ¿Para Qué Protegerlo? Es
bueno considerar estas preguntas a la hora de invertir en seguridad, como también
considerar la necesidad de proteger la maquina y lo más importante, la integridad de los
datos.

MySQL cuenta con muchas herramientas que nos servirán a la hora de respaldar la
información de nuestra Base de datos.

8.1.-El Comando mysqldump

Este comando permite hacer la copia de seguridad de una o múltiples bases de


datos. Además permite que estas copias de seguridad se puedan restaurar en distintos
tipos de gestores de bases de datos, sin la necesidad de que se trate de un gestor de
MySQL. Esto lo consigue creando unos ficheros, que contienen todas las sentencias SQL
necesarias para poder restaurar la tabla, que incluyen desde la sentencia de creación de
la tabla, hasta una sentencia insert por cada uno de los registros que forman parte de la
misma.

El comando dispone de una amplia variedad de opciones que nos permitirá realizar
la copia de la forma más conveniente para el propósito de la misma.

Para poder restaurar la copia de seguridad, bastará con ejecutar todas las
sentencias SQL que se encuentran dentro del fichero, bien desde la línea de comandos de
MySQL, o desde la pantalla de creación de sentencias SQL de cualquier entorno gráfico
como puede ser el MySQL Control Center.

Las limitaciones de la restauración dependerán de las opciones que se han


especificado a la hora de hacer la copia de seguridad, por ejemplo, si se incluye la opción

MySQL: un SGBD de código abierto 28


Sistemas de Gestión de Bases de Datos (SGBD)
--add-drop-table al hacer la copia de seguridad, se podrán restauran tablas que existen
actualmente en el servidor (borrándolas primero). Por lo que es necesario estudiar
primero los procedimientos que se utilizarán tanto en la copia como en la restauración,
para que todo salga de forma correcto.

A continuación mostraremos la forma que tiene MySQL por medio del comando
mysqldump para respaldar una base de datos:

bin> mysqldump [opciones] nombre_base_datos

Usando el comando mysqldump para respaldar varias tablas de una base de datos:

bin> mysqldump [opciones] nombre_base_datos tabla1 tabla2. . . tablaN

Usando mysqldump para respaldar varias bases de datos:

bin> mysqldump [opciones] --databases [opciones] nombre_bd1 nombre_bd2...

Usando mysqldump para respaldar todas las bases de datos:

bin> mysqldump [opciones] --all-databases [opciones]

Las opciones pueden ser vistas ejecutando el siguiente comando:

bin> mysqldump --help

Ejemplos

Respaldar ambos, la estructura y los datos encontrados dentro de la base de datos


widgets8 puede ser realizado como sigue:

bin> mysqldump -u root -p --opt widgets

Alternativamente, quizás se requiera respaldar únicamente los datos, esto es


logrado al incluir la opción –no-create-info, lo que significa que no se creen los datos
relativos a la creación de las tablas.

bin>mysqldump -u root -p --no-create-info widgets

Otra variación es respaldar únicamente la estructura de las tablas, esto es logrado


al incluir la opción –no-data, que significa la no creación de los datos de las tablas.

bin>mysqldump -u root -p --no-data widgets

Si se está planeando usar mysqldump con el fin de respaldar datos para que
puedan ser movidos a otro servidor MySQL, es recomendado que se use la opción “–opt”.
Esto nos dará un respaldo optimizado de los datos que tendrá como resultado un tiempo
más rápido de lectura cuando se quieran cargar los datos en otro servidor MySQL.

MySQL: un SGBD de código abierto 29


Sistemas de Gestión de Bases de Datos (SGBD)
Mientras mysqldump proporciona un método conveniente para respaldar datos,
hay un segundo método, el cuales más rápido, y más eficiente. Esto se describe en la
siguiente sección.

Visto de una forma más sencilla, como ejemplos tenemos los siguientes:

Para copiar estructura y datos:

c:\mysql\bin>mysqldump -u root -p –opt nombreDeMiDBOrigenaRespaldar >


nombreRespaldo.sql

Para copiar solo datos:

c:\mysql\bin>mysqldump -u root -p –no-create-info nombreDeMiDBOrigenaRespaldar >


nombreRespaldo.sql

Para copiar solo estructura:

c:\mysql\bin>mysqldump -u root -p –no-data nombreDeMiDBOrigenaRespaldar >


nombre_respaldo.sql

Y para recuperar una copia de seguridad:

C:\mysql\bin>mysql -u root -p contraseña dbDondeSeVaArespaldar <


respaldoACargar.sql

8. widgets: En programación, un widget es un componente con el cual un usuario interactúa en una interfaz gráfica. Son
ejemplos de widget las ventanas, cajas de texto, checkboxs, listbox, entre otros.

8.2.- Hacer un respaldo (Backup) para Linux

Si estamos en un servidor Linux podemos ejecutar el siguiente código en la línea


de comandos para realizar un backup.

1.mysqldump --opt -u nombredeusuario -p basededatos tabla1 > archivodebackup

• nombredeusuario: es el nombre del usuario que tiene permisos para acceder a la


base de datos.
• basededatos: el nombre de la base de datos de la que queremos realizar el
backup.
• tabla1: es un parámetro opcional necesario si queremos realizar el backup de sólo
una tabla de la base de datos. Podemos escribir más tablas separadas por espacios
en blanco. No es necesario especificar ninguna tabla si queremos hacer un
respaldo de toda la base de datos.
• archivodebackup: es el nombre del archivo que contendrá el backup de la base de
datos (la estructura de las tablas y los datos).

Una vez ejecutado este comando nos pedirá la password del usuario y se creará el
archivo de backup en el directorio.

8.2.1.- Backup con AutoMySQLBackup

MySQL: un SGBD de código abierto 30


Sistemas de Gestión de Bases de Datos (SGBD)
AutoMySQLBackup tiene la particularidad de realizar resguardos de seguridad en
forma diaria, semanal y mensual gracias a la herramienta mysqldump, además puede
almacenar solo un archivo de copia o varios archivos separados para cada base de datos
que pueden ser comprimidos (con gzip y bzip2).

La instalación es muy simple, simplemente con el script que mostraremos a


continuación y al cambiar algunos parámetros dependiendo de su configuración en
MySQL como por ejemplo, el usuario y la contraseña, la ubicación de las copias de
seguridad, etc.

Estas son las variables que se configuran por lo general:

1. # Username to access the MySQL server e.g. dbuser


2. USERNAME=dbuser
3. # Username to access the MySQL server e.g. password
4. PASSWORD=password
5. # Host name (or IP address) of MySQL server e.g localhost
6. DBHOST=localhost
7. # List of DBNAMES for Daily/Weekly Backup e.g. "DB1 DB2 DB3"
8. DBNAMES="all"
9. # Backup directory location e.g /backups
10.BACKUPDIR="/var/backups/mysql"
11.# Mail setup
12.MAILCONTENT="quiet"

Además tenemos la particularidad de integrarlo junto a las tareas programadas y


aprovechar los tiempos ociosos del servidor para realizar estas copias de seguridad

8.3.- Utilizar PHP Para Respaldar Una Base De Datos MySQL

Ejecuta un Query de respaldo de base de datos a partir de un archivo PHP. A continuación


hay un ejemplo:

<?php
include ‘config.php’;
include ‘opendb.php’;
$tableName = ‘mypet’;
$backupFile = ‘backup/mypet.sql’;
$query = “SELECT * INTO OUTFILE ‘$backupFile’ FROM $tableName”;
$result = mysql_query($query);
include ‘closedb.php’;
?>

Para recuperar el respaldo sólo necesitas correr un LOAD DATA INFILE, de la siguiente
manera:

<?php

MySQL: un SGBD de código abierto 31


Sistemas de Gestión de Bases de Datos (SGBD)
include ‘config.php’;
include ‘opendb.php’;
$tableName = ‘mypet’;
$backupFile = ‘mypet.sql’;
$query = “LOAD DATA INFILE ‘backupFile’ INTO TABLE $tableName”;
$result = mysql_query($query);
include ‘closedb.php’;
?>

8.4.- Backup Automático De Archivos De Servidor Web A Un Servidor FTP

Esta es una simple solución para hacer un respaldo, para aquellas personas que
poseen su propio servidor web y servidor MySQL en un VPS o servidor dedicado. La
ventaja principal de utilizar el respaldo FTP o NAS es la protección de pérdida de datos.
Primero se necesitará respaldar cada base de datos con el comando mysqldump.
Automatizar tareas de respaldo. Configurar un cron job y generar un script de respaldo
FTP.

$ mysqldump -u root -h localhost -pmypassword faqs | gzip -9 > faqs-db.sql.gz

LOAD DATA INFILE: El comando LOAD DATA INFILE lee registros desde un fichero de texto
a una tabla a muy alta velocidad. El nombre de fichero debe darse como una cadena
literal.

9.-VENTAJAS DE MySQL
Dentro de las ventajas de MySQL, Podemos Mencionar las Siguientes:

• Globalización de la información: Permite a los diferentes usuarios considerar la


información como un recurso corporativo que carece de dueños específicos.
• Eliminación de información redundante: Información Duplicada que puede
generar inconsistencias en la base de datos, por lo que nos permite contar con la
información que realmente necesitamos y así contar con mayor espacio de los
datos.
• Permite compartir información: Varios sistemas o usuarios pueden utilizar una
misma entidad.

MySQL: un SGBD de código abierto 32


Sistemas de Gestión de Bases de Datos (SGBD)
• Permite mantener la integridad en la información: Solo se almacena la
información correcta por lo que nos permite tener una mayor consistencia de los
datos a la hora de utilización de los mismos.
• Independencia de datos y tratamiento: La independencia de datos nos implica
una separación entre programas y datos; es decir, se pueden hacer cambios a la
información que contiene o tener acceso a la base de datos de diferente manera,
sin hacer cambios en las aplicaciones o en los programas. Lo que implica menor
costo de mantenimiento.
• Restricciones de seguridad: Cabe señal que MySQL tiene una forma de
mantener la seguridad, dándole ciertas restricciones a los usuarios. Como también
los sistema de Backup respaldos que se pueden hacer con el comando
mysqldump.

9.1.-Ventajas De La Utilización

• Sintaxis flexible: Los rutinas almacenadas pueden escribirse utilizando


extensiones de la sintaxis de SQL, tales como, construcciones de control de flujo,
que facilitan realizar lógicas complejas.
• Capacidad de manejo de errores: Se pueden crear manejadores de error para
ser utilizados cuando se produzca una condición determinada. De esta forma
puede evitarse la finalización de la rutina ante un error.
• Compilación Estándar: Se atienen a la sintaxis estándar, por lo que son
trasladables a otras bases de datos que sigan los estándares.
• Encapsulación y empaquetado de código: Permite tener el código almacenado
y ser utilizado desde múltiples aplicaciones.
• Menos “Re-invención de la rueda”: Actúan como una biblioteca de soluciones
para resolver problemas, facilitan el compartir del conocimiento y la experiencia.
Un programador SQL que tiene habilidades, puede resolver un problema de gran
índole con un SP y este puede ser reutilizado por otro.
• Fácil de Mantener: Una rutina es más fácil de mantener que una copia embebida
en cada aplicación.
• Reducción del requerimiento de Ancho de Banda: Imagine múltiples
operaciones realizadas por un cliente sin la utilización de un SP. Cada sentencia y
su resultado viaja a través de la red, incluso aquellos que calculan un resultado
intermedio. Si en cambio esta operación se realiza con SP, las sentencias y
resultados intermedios se procesan completamente del lado del servidor.
• Mejor seguridad: Una rutina puede ser escrita para acceder a información
sensible. Esta se puede configurar para que el que la invoca o ejecuta, no vea
información que no debe. Un SP puede ser utilizado para modificar tablas en modo
seguro sin darle al usuario acceso a la tabla.

9.2.- Otras Ventajas

• Velocidad al realizar las operaciones, lo que le hace uno de los gestores con mejor
rendimiento.

MySQL: un SGBD de código abierto 33


Sistemas de Gestión de Bases de Datos (SGBD)
• Bajo costo en requerimientos para la elaboración de bases de datos, ya que debido
a su bajo consumo puede ser ejecutado en una máquina con escasos recursos sin
ningún problema.
• Facilidad de configuración e instalación.
• 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.

9.3.- Desventajas

• No es intuitivo, como otros programas (ACCESS).


• A comparación con SQL server, MySQL no tiene un panel de control gráfico y
detallado.
• No permite el modo de autentificación local (seguridad integrada de Windows),
sólo el modo estándar.
• No sincroniza los datos con otras bases de datos réplicas.
• Lento con grandes bases de datos.
• No tiene tantas capacidades como otros gestores profesionales.
• Dificultad de manejo.
• No es intuitivo como otros programas.
• Un gran porcentaje de utilidades de MySQL no están documentadas.

9.4.- Diferencias de MySQL, frente a otros SGBD.

9.4.1.- MYSQL vs ORACLE

Se generaron procedimientos almacenados para cada motor de base de datos, el


mismo que genera en forma secuencial, el número de registros requeridos, para tomar
los tiempos de respuesta. En el caso de Oracle, como maneja el tipo de dato TimeStamp
con soporte para milisegundos, se creó un campo fecha con tipo de dato Timestamp10, en
el caso de MySQL se utilizó el command line Client. que con cada ejecución indica el
tiempo que se demoró.
Según los resultados obtenidos en las pruebas, MySQL es muchísimo más rápido
que Oracle cuando se utiliza el tipo de almacenamiento MyIsam, el cual, no maneja
transacciones ni integridad referencial.

Oracle maneja PL/SQL que es un lenguaje de programación propio de


Oracle, la base de datos incluye un compilador Java y JVM con la ingeniería de la base de
datos. Esto permite a los desarrolladores escribir procedimientos almacenados, triggers y
funciones en el estándar de programación Java incluido en lenguaje Pl/SQL. Los
desarrolladores compilan los programas Java directamente en la base de datos o leer una
clase java utilizando la utilidad de Oracle llamada LoadJava. MySQL no permite
almacenar o ejecutar programas java en la base de datos.

Al realizar las mismas pruebas con el tipo de almacenamiento Innodb (este tipo de
almacenamiento maneja transaccciones), el tiempo de respuesta decayó en un 50% con
respecto a Myisam. Con respecto a Oracle, sigue siendo más rápido (4 veces más rápido).

MySQL: un SGBD de código abierto 34


Sistemas de Gestión de Bases de Datos (SGBD)
10. timestamp: secuencia de caracteres, que denotan la hora y fecha (o alguna de ellas) en la cual ocurrió determinado
evento.

Innodb es el tipo de almacenamiento que maneja transaccionalidad e integridad


referencial, es por esto que al comparar Myisam con Innodb, esta última es más lenta.
Si nos ponemos a analizar el porqué existe tanta diferencia entre Oracle y MySQL,
esto se debe a que Oracle realiza muchos más controles.

Nuevas y novedosas características como Flashback Query, FlashBack Table, Flash


Back etc…lo que hacen es guardar en la misma base de datos una tabla histórica con la
información de inserción, actualización o borrado que el usuario realizó sobre una
determinada tabla, esta operación es costosa en tiempos de respuesta ya que por cada
cambio en la tabla actualiza 2 veces, una en la tabla padre y otra en la tabla histórica.

Si comparamos las herramientas de administración que posee Oracle frente a las


de MySQL, nos damos cuenta que a MySQL le falta mucho por recorrer aún, pero con el
transcurso del tiempo las distancias se van acortando.

El tiempo de presencia en el mercado de cada una de las bases de datos es un


factor determinante en su desarrollo y características de madurez, más de 10 años de
ORACLE frente a 5 de MySQL hacen que existan diferencia sin embargo el avance de
MySQL es notorio y robusto.

Según las pruebas realizadas, el motor de base de datos MySQL es mucho más
rápido que Oracle en el procesamiento de transacciones, esta es otra característica
válida que en ambientes críticos de producción, toma gran importancia el tiempo de
respuesta de la base de datos en lo que satisfacción del cliente se refiere y en ambientes
grandes de información como datawarehouse9 para la toma de decisiones.

La base de datos Oracle es una herramienta muy confiable y segura, tiene


opciones de auditoría, backup y aplicaciones para la toma de decisiones que la
diferencian de sus competidores libres y propietarios. En ocasiones es mejor sacrificar los
recursos (memoria, disco) para obtener a cambio integridad en los datos.

Comparativa de
Licenciamiento:

MySQL: un SGBD de código abierto 35


Sistemas de Gestión de Bases de Datos (SGBD)

9. Datawareouse: Es una colección de datos, un “almacén” que varía en el tiempo y que ayuda a la toma de decisiones.

10.-CONCLUSIONES:

• El comercio electrónico ofrece opciones de automatización en todos los negocios


de las empresas, los documentos digitales son el futuro, al ser este servicio tan
imprescindible, se hace necesario analizar las posibilidades existentes en el
mercado de bases de datos y las características que una base de datos libre puede
solventar frente a las bases de datos comerciales.

• La inversión en una base de datos de código abierto es una alternativa válida que
gerentes y desarrolladores deberían considerar el momento de escoger una
solución informática.

• Las bases de datos de código abierto están ganando terreno en el mercado


rápidamente, esto ha preocupado mucho a las firmas propietarias de software
como Oracle a tal punto que esta empresa ya lanzó su versión libre de la base de
datos, además Oracle compró recientemente la empresa Innodb que es la empresa
que maneja la ingeniería de almacenamiento de MySQL, esto indica que las
empresas saben que MySQL es un buen competidor.

• Según las pruebas realizadas, el motor de base de datos MySQL es mucho más
rápido que Oracle en el procesamiento de transacciones.

• La base de datos Oracle es una herramienta muy confiable y segura.

• El problema del open source ha sido siempre la falta de soporte técnico


garantizado al cual acudir si los manuales y ayuda en línea no son suficientes, Hoy
en día, existen empresas como MySQL Ab que se ha preocupado por este
problema y tiene varios servicios de soporte especializado. De hecho, esta es la
fuente de sus ingresos, con el producto libre, lo que vende es la solución de
problemas.

MySQL: un SGBD de código abierto 36


Sistemas de Gestión de Bases de Datos (SGBD)

11.-BIBLIOGRAFÍA:

− http://www.desarrolloweb.com/articulos/introduccion-base-datos.html

− http://dev.mysql.com/

− http://dev.mysql.com/downloads/mysql/5.5.html

− http://www.microsofttranslator.com/Default.aspx?ref=IE8Activity

− http://rpm.softonic.com/linux

− http://dev.mysql.com/doc/refman/5.0/es/mysqld-max.html.

− La Biblia de MySQL, Ediciones Anaya, 2008.

− Manuales Descargados de Internet.

− Apuntes de Clases.

MySQL: un SGBD de código abierto 37

Вам также может понравиться