Академический Документы
Профессиональный Документы
Культура Документы
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
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.
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.
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.
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.
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.
• 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:
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:
• 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.
• Respaldo y recuperación.
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:
2.4.3.-Compartición de datos:
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.
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:
2.4.8.-Mejora en la productividad:
2.4.9.-Mejora en el mantenimiento:
2.4.10.-Aumento de la concurrencia:
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.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.
Como sabemos una base de datos está compuesta de tablas donde almacenamos
registros catalogados en función de distintos campos (características).
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.
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.
3.1.-Historia
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
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.
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
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.
• 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.
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
Fig.3:Pagina/Bajar
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.
Esta distribución, que no presenta ningún problema para descargarse de la página nos
ofrece:
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:
5.2.- Plataformas:
• QNX
• SGI IRIX
• SunOS
• SCO OpenServer
• SCO UnixWare
• Tru64
• eBD
• NetBSD
• Novell Netware
• OpenBSD
• OS/2 Warp
• FreeBSD
5.2.1.- WINDOWS:
5.2.2.- AIX:
5.2.3.- BSD :
• El control de trabajos
• El fast filesystem
• El protocolo TCP/IP
5.2.4.- HP-UX:
5.2.5.- MacOS X :
5.2.6.- SOLARIS:
5.2.8.- RPM:
De la página de MySQL:
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.
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.
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”.
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 “;”.
MySQL cuenta con muchas herramientas que nos servirán a la hora de respaldar la
información de nuestra Base de datos.
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.
A continuación mostraremos la forma que tiene MySQL por medio del comando
mysqldump para respaldar una base de datos:
Usando el comando mysqldump para respaldar varias tablas de una base de datos:
Ejemplos
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.
Visto de una forma más sencilla, como ejemplos tenemos los siguientes:
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.
Una vez ejecutado este comando nos pedirá la password del usuario y se creará el
archivo de backup en el directorio.
<?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
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.
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:
9.1.-Ventajas De La Utilización
• Velocidad al realizar las operaciones, lo que le hace uno de los gestores con mejor
rendimiento.
9.3.- Desventajas
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).
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.
Comparativa de
Licenciamiento:
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:
• 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.
• 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.
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.
− Apuntes de Clases.