TEMA 9. OPTIMIZACIÓN DEL RENDIMIENTO DE UNA BBDD

Tamaño: px
Comenzar la demostración a partir de la página:

Download "TEMA 9. OPTIMIZACIÓN DEL RENDIMIENTO DE UNA BBDD"

Transcripción

1 1 TEMA 9. OPTIMIZACIÓN DEL RENDIMIENTO DE UNA BBDD 1. Introducción 2. Mejorar el modelo de datos y la estructura de las tablas 3. Mejorar las consultas 3.1. La caché de consultas 3.2. Análisis 3.3. Planificación 3.4. Ejecución 4. Mejorar la configuración del servidor MySQL 1. Introducción Tanto el número de usuarios simultáneos como la cantidad de información a gestionar tienen un impacto importante en el rendimiento del servidor de base de datos. Por este motivo no es raro que, con el uso, el rendimiento de una aplicación decaiga. El problema no es que MySQL no pueda gestionar eficazmente un gran número de usuarios concurrentes ni grandes bases de datos. El problema está en que las aplicaciones no fueron inicialmente diseñadas para la carga que han de soportar tras varios años de funcionamiento y, sólo entonces, aparecen los problemas de un diseño inicial poco ambicioso o poco previsor. Una de las tareas principales del Administrador de la BBDD, una vez finalizadas las tareas de implantación del SGBD y una vez que éste se encuentra en fase de explotación, es realizar el seguimiento del servidor y del SGBD, para comprobar su correcto funcionamiento. MySQL puede gestionar, de forma eficaz, un gran número de usuarios concurrentes y grandes bases de datos. Pero es necesario conocer las características que influyen en el rendimiento de nuestro servidor. Aunque no es posible ni recomendable

2 2 monitorizar la BD constantemente, es preciso hacerlo regularmente y de la forma más automatizada posible. Los SGBD cuentan con herramientas que ayudan en la tarea de monitorizar el sistema. La herramienta más conveniente será la menos intrusiva, es decir, la que menos interfiera en el sistema y nos pueda proporcionar la medida más fiable del objeto de nuestra observación. Conviene recordar que todas las herramientas que sean de tipo gráfico consumirán más recursos del sistema y de la base de datos. No debemos olvidar que observar conlleva un consumo de recursos, luego si pretendemos controlar el rendimiento no es lógico hacerlo en un momento en el que la BD está realizando consultas pesadas. Podemos mejorar el rendimiento del sistema mediante los siguientes métodos: Mejorar el modelo de datos y la estructura de las tablas. Mejorar las consultas. Mejorar la configuración del servidor MySQL 2. Mejorar el modelo de datos y la estructura de las tablas Las características, número y relaciones de las tablas de nuestra base de datos influyen sustancialmente en el rendimiento de esta. El modelo de datos es además difícilmente modificable una vez desarrollada la aplicación y puesta en producción. No podremos entonces realizar cambios de importancia en el diseño de nuestras tablas porque esto nos obligaría no solo a complejos procesos de migración de datos, sino también a modificar el código de nuestra aplicación. Incluso es posible que sobre el mismo modelo de datos hayamos desarrollado nuevas aplicaciones que también deberían ser cambiadas. Por lo tanto, debemos diseñar cuidadosamente el modelo de datos, teniendo en cuenta que los errores que cometamos nos acompañarnos en el futuro y limitarán el rendimiento de nuestra aplicación. Para optimizar el modelo de datos debemos trabajar sobre dos aspectos: la elección de los motores de almacenamiento y la normalización. Debemos tener en cuenta que MySQL permite el uso de varios motores de almacenamiento en una misma base de datos. Incluso es posible combinar motores de almacenamiento distintos en una misma transacción SQL y en una misma consulta. Así que no tenemos que restringirnos al uso de uno sólo de ellos en nuestro modelo de datos. Debemos elegir la combinación más adecuada eligiendo un motor de almacenamiento para cada una de las tablas de nuestro modelo. Para elegir el motor de almacenamiento más adecuado debemos tener en cuenta las consultas que ejecutaremos sobre él.

3 3 El motor MyISAM es el más adecuado cuando la velocidad de respuesta es el factor crítico. Así mismo, serán la mejor opción cuando tengamos que realizar búsquedas textuales o consultas que deban conocer rápidamente el número total de registros de la tabla. Sin embargo, el motor InnoDB será la elección correcta cuando requiramos soporte para transacciones o integridad referencial. El resto de motores se utilizan en circunstancias especiales. Pero es preciso conocerlos ya que pueden mejorar notablemente el rendimiento de nuestra base de datos. El segundo factor de optimización del modelo de datos es la normalización. La normalización es una técnica de diseño de modelos de datos relacionales que estructura paso a paso las tablas para reducir el riesgo de inconsistencias. Existe la creencia de que un modelo de datos es mejor cuanto mayor sea su nivel de normalización. Así, un modelo en tercera forma normal (3FN) sería mejor que otro en segunda forma normal (2FN). Nada más lejos de la realidad. La calidad de un modelo de datos no depende exclusivamente de su forma normal, sino de su capacidad para responder a las consultas que tendremos que realizar sobre él. El proceso de normalización del modelo de datos elimina las dependencias funcionales entre atributos. Pero, al mismo tiempo, complica el diseño de las consultas y pierde rendimiento. Pongamos un ejemplo. Supongamos un modelo de datos que recoge información de proyectos y jefes de proyecto asignados a los mismos en la siguiente tabla: Proyecto nombre varchar (100) jefe_proyecto varchar (100) telefono varchar (15) Como puede verse, existe un atributo secundario (teléfono) que no depende de la clave (nombre) sino de otro atributo secundario (jefe_proyecto). El modelo de datos está por lo tanto, en segunda forma normal. Si lo pasáramos a tercera forma normal, tendríamos que crear dos tablas, una que recogiera los nombres y los jefes de proyecto y otra que recogiera los jefes de proyecto con su teléfono. Dependiendo de las consultas que se vayan a ejecutar en la base de datos, esta decisión tendría un alto coste en relación al rendimiento de la base de datos. Así, si se realizan con frecuencia consultas en las que aparezcan estos tres campos (nombre, jefe_proyecto y teléfono) es mucho más óptimo diseñar el modelo de datos en 2FN que en 3FN.

4 4 Obviamente esto también depende del volumen de datos de la BBDD. No es lo mismo ejecutar esta consulta en una BBDD recién creada, en la que aún no existen muchos datos, que realizarla cuando la BBDD lleva largo tiempo en explotación y, por tanto, tendrá muchos datos. Respecto a la estructura de las tablas, es necesario tener en cuenta lo siguiente: Las tablas desordenadas provocan una búsqueda secuencial lenta. No obstante, una tabla ordenada tiene los siguientes inconvenientes: - Ordenar una tabla desordenada es costoso. - El constante acceso de escritura desordena de nuevo los registros de la tabla. - La inserción y eliminación ordenada de registros es costosa en términos de rendimiento. - Cuando ordenamos por una columna desordenamos el resto de columnas. El rendimiento mejora si los registros de la tabla tienen longitud fija (sin campos de tipo VARCHAR, TEXT o BLOB). Si cada campo (columna) tiene una longitud fija entonces cada registro (línea) también tendrá una longitud fija y obtenemos las siguientes ventajas: - Disminuye la fragmentación: los registros borrados son substituidos por registros de la misma longitud. - Aumenta la velocidad: los registros son accedidos por "número de registro" en lugar de "desplazamiento dentro del fichero". - Disminuye el consumo de memoria: el índice es más pequeño. Podemos desfragmentar tablas para ganar espacio y velocidad con el siguiente comando: OPTIMIZE TABLE tabla. Las consultas por columnas que pueden contener valores NULL son más lentas. 3. Mejorar las consultas Las consultas a la base de datos son el típico punto de degradación de una aplicación tras varios meses o años de funcionamiento. Salvo que nuestra aplicación realice operaciones masivas de inserción de registros, debemos preocuparnos sólo de las operaciones de SELECT. Es en este tipo de operaciones donde notaremos como, poco a poco, se va degradando nuestra aplicación. La degradación de una consulta que, inicialmente funcionaba bien, se produce por dos motivos. En primer lugar, porque crece el número de registros de nuestra base de datos. Lo habitual es que, al poner la aplicación en marcha tengamos pocos registros (clientes, pedidos, expedientes...) y que, según transcurre el tiempo, las tablas tengan cada vez más registros. El segundo motivo de degradación es el incremento del número de usuarios, la concurrencia. Al desarrollar la aplicación posiblemente las consultas se probaron con un único usuario. Incluso tras la puesta en marcha suele haber un periodo de aceptación en

5 5 el que los usuarios van incorporándose poco a poco a la aplicación, usándola cada día un poco más. Esta combinación de mayor cantidad de datos y mayor concurrencia puede poner en evidencia un diseño poco profesional de las consultas. Naturalmente nuestras consultas estarán embebidas en una aplicación, no es habitual que los usuarios lancen consultas SQL directamente a la base de datos. Así que los primeros síntomas de que algo empieza a fallar serán esporádicos. Al principio sólo observaremos que algunas búsquedas van más lentas y fácilmente podremos achacarlo a otras causas. Pero la degradación de las consultas, aunque lenta, es progresiva. Por ello es conveniente, ante la primera sospecha, tratar de poner solución. Lo primero es detectar el problema, saber qué está pasando ya que puede que en un principio nada nos haga sospechar de la base de datos. Iniciaremos nuestra operación de búsqueda descartando factores... la red, el servidor web, el sistema operativo... hasta llegar a la base de datos. Cómo medida rápida, podemos utilizar el comando SHOW PROCESSLIST que nos permite visualizar a tiempo real las consultas SQL que se están ejecutando en el servidor. Este comando nos muestra el estado de la consulta, la base de datos, el comando que está ejecutando, el usuario, el host y el tiempo de ejecución, siendo este último de los puntos más importantes para el fin que nos ocupa. Tener en cuenta que para ver el contenido completo de la consulta SQL que se está ejecutando necesitaremos utilizar SHOW FULL PROCESSLIST en lugar del comando anterior. Para diseñar una estrategia de optimización más elaborada necesitamos utilizar otras herramientas. Una medida quizás un poco agresiva y que no debería ser ejecutada en servidores de producción es activar el log general (General Query Log) que registrará todas las consultas SQL que se ejecuten en el servidor. Para activarlo debemos especificar la ruta del log mediante la variable global general_log_file, tal y cómo vimos en temas anteriores. Para activarlo utilizaremos la variable general_log que tendrá el valor ON para activado y OFF en caso que queramos desactivarlo. Una estrategia más eficiente para determinar si la base de datos es el cuello de botella es el log específico de consultas lentas (Slow Query Log). Nos bastará con activar este log durante unos días y analizarlo. Para ello, tendremos que modificar el fichero de configuración my.conf, de MySQL de la siguiente manera: log_slow_queries = /var/log/mysql/mysql-slow.log long_query_time = 2 log-queries-not-using-indexes Con la primera directiva estamos indicando en qué fichero se guardará el log. Con la segunda directiva establecemos el tiempo (en segundos). En este caso, cualquier

6 6 consulta que tarde más de 2 segundos en ejecutarse se considerará lenta y será registrada en el log. Y la tercera directiva hará que también se registren en el log las consultas que no utilicen ningún índice para su resolución. Revisando este log, tras varias horas o días de recogida de información, podremos identificar las consultas lentas de nuestra aplicación. Hay que tener en cuenta que el hecho de que una consulta esté registrada una vez en el log sólo significa que esa vez se ejecutó lentamente. Puede ser que en esa ocasión ocurriera algo en el servidor (un proceso de copia de seguridad, un cliente lento...). Debemos concentrarnos en las consultas que más se repitan y peores tiempos tengan. Podemos comprobar qué consultas coinciden con los procesos que los usuarios consideran lentos y, ahora sí, centrarnos en mejorarlas... de una en una. Para poder mejorar el rendimiento de una consulta debemos conocer antes cómo las resuelve MySQL. Es lo que se conoce como proceso de consulta. Cuando MySQL recibe una consulta, procede de la siguiente forma: En primer lugar, busca la consulta en la caché. Si hay suerte, ya tendrá los resultados guardados de una consulta anterior y no tendrá que resolverla. En segundo lugar, si no ha podido utilizar la caché, analiza la consulta, comprueba su sintaxis e identifica su tipo; es la fase de parseo. Con la información obtenida del análisis, llega al siguiente paso, la planificación. Este es el punto crítico y del que dependerá el tiempo de resolución. El planificador de MySQL decide cual será el proceso para resolver la consulta, qué parte se resolverá primero, qué índices se utilizarán y cómo se obtendrán los datos. Por último, en la fase de ejecución solo resta ejecutar el plan trazado y entregar los resultados al cliente. Veamos este proceso paso a paso. 3.1 La caché de consultas MySQL registra las consultas de tipo SELECT y su resultado. Como lo normal es que se acceda a la base de datos a través de una aplicación, las consultas repetidas son muy frecuentes (listas de poblaciones, de códigos, de nombres...). Si MySQL recibe una consulta que tiene en la caché, simplemente entrega al cliente el mismo conjunto de resultados que produjo en su ejecución anterior. Naturalmente, las consultas de modificación de datos (INSERT, DELETE, UPDATE...)

7 7 invalidan las consultas afectadas de la caché y provocan la eliminación de estas de la caché. Podemos utilizar la caché para mejorar el rendimiento de nuestra base de datos. La variable mysql_cache_type (en my.cnf) establece el tipo de caché que utilizará MySQL. Un valor a 1 hará que todas las consultas de tipo SELECT sean cacheadas, salvo que expresamente indiquen lo contrario mediante el modificador SQL_NO_CACHE en la sentencia SELECT. Un valor de query_cache_type igual a 2 hará lo contrario. Las consultas no serán cacheadas salvo que expresamente lo soliciten con SQL_CACHE. De esta forma podremos controlar y mejorar la calidad de la caché, haciendo que las consultas repetidas sean cacheadas y evitando que las consultas que no se repiten (buscadores, datos de un cliente...) consuman espacio de almacenamiento. El tamaño de la cache se establece en la variable query_cache_size. Y el límite de almacenamiento por consulta en la variable query_cache_limit. La estrategia concreta de uso de estas variables dependerá de las características del servidor y de la aplicación. 3.2 Análisis En el proceso de análisis ( parseo ), MySQL determina el tipo de consulta, las tablas relacionadas, las características de la cláusula WHERE... pero todo esto apenas tiene incidencia en el rendimiento. Lo único que puedes tener en cuenta es, que cuanto más largas sean las consultas, más tiempo de análisis necesitarán. 3.3 Planificación El planificador es el punto crítico en la resolución de una consulta. Del plan de ejecución que elabore dependerá que la consulta tarde unas pocas décimas de segundo o varios minutos. Pero el trabajo del Planificador no es fácil, para entenderlo debemos tener en cuenta dos factores: El planificador trabaja para cualquier consulta. No es viable programar un planificador específico para nuestra aplicación, así que nos tenemos que conformar con el planificador de MySQL. Este está optimizado para cualquier aplicación. Y, aunque acumula los años de experiencia de los programadores de MySQL y utiliza estadísticas de ejecución para decidir cuál será el mejor plan, no siempre acertará. En segundo lugar, el planificador no tiene tiempo de encontrar la solución óptima. Sería absurdo que utilizara tres segundos en planificar una consulta que, en el peor de los casos, sólo requerirá dos segundos para resolverse. El planificador debe encontrar el mejor plan posible, en el menor tiempo posible.

8 8 Por eso necesitamos conocer cómo trabaja, qué decisiones toma y, sobre todo, como influir en sus decisiones cuando nos convenga. Centrándonos en lo importante, el planificador debe decidir dos aspectos principales en el plan de ejecución: qué índice se va a utilizar para resolver la consulta y en qué orden se realizarán los joins de las tablas. Para elegir el índice que se utilizará en la consulta, el Planificador de MySQL busca los índices aplicables, consulta sus estadísticas y elige el índice que, en su opinión, implique consultar un menor número de registros. Resulta evidente la importancia que adquieren las estadísticas de los índices que almacena MySQL. Si no están actualizadas, el planificador puede elegir utilizar un índice que, según sus estadísticas, devolverá 10 resultados y encontrarse con que realmente devuelve Para evitar la degradación de rendimiento resulta vital analizar y optimizar las tablas periódicamente, sobre todo si el número de registros varía frecuentemente. Para ello debemos utilizar los comandos ANALYZE TABLE y OPTIMIZE TABLE. Esto hará que el Planificador tenga estadísticas actualizadas al elegir el índice. También es necesario tener cuidado con los procedimientos almacenados. Existe la creencia de que los procedimientos almacenados son más rápidos porque su plan de ejecución ya está compilado... Pero probablemente este plan se compiló durante el desarrollo de la aplicación, con tablas pobladas con escasos datos de pruebas e incluso sin alguno de los índices que pudieron crearse posteriormente. Es decir, si no tenemos cuidado, los procedimientos almacenados se estarán ejecutando con planes anticuados. Y entonces pueden llegar a ser mucho más lentos que una consulta cuyo plan de ejecución se compile con información actualizada. Joins. El otro punto crítico del Planificador es decidir el orden en que se harán los Aquí influye algo más que la actualización de los índices. Si imaginamos una consulta con 7 tablas y un índice por tabla (algo no muy infrecuente), vemos que MySQL tiene que analizar más de combinaciones posibles para el orden en el que efectuará los joins (exactamente 7! = 5040). De hecho, puede tardar varios segundos en encontrar un plan de ejecución para una consulta que se ejecutará en décimas de segundo. En estas situaciones, lo mejor es utilizar STRAIGHT JOIN para indicarle a MySQL el orden en el que queremos que haga el Join de las tablas y ahorrándole así el trabajo. Para conocer la forma en la que MySQL ejecutará una sentencia determinada tenemos la sentencia EXPLAIN que nos mostrará el plan de ejecución que MySQL ha

9 9 compilado para una consulta. EXPLAIN es extremadamente útil para conocer la configuración de índices en las tablas, los índices que podrían ser configurados para mejorar su rendimiento, el número de filas que se revisan, el tipo de query, etc. Dependiendo de la complejidad de la consulta necesitaremos tiempo y paciencia para interpretar el plan de ejecución de MySQL y decidir si es el más adecuado. Mediante EXPLAIN podremos detectar planes de ejecución poco eficientes que hagan lentas nuestras consultas. Para influir en el plan de ejecución tenemos varias acciones posibles: Crear índices: La primera opción para mejorar el rendimiento de una consulta es la creación de índices. Siempre podemos evitar que MySQL tenga que escanear toda una tabla comparando el valor de una columna si definimos el índice adecuado sobre ella. Pero cuidado porque la creación de índices también tiene inconvenientes. Los índices penalizan las consultas de inserción y modificación. En muchas aplicaciones esto no será un problema, y será rentable crear índices que mejoren las consultas de SELECT a costa de ralentizar los INSERT y UPDATE. Pero en algunas aplicaciones con entradas masivas y simultáneas de datos, esto puede ser un problema. Usar Correctamente los Índices: En ocasiones, puede que el índice adecuado ya exista, pero que MySQL decida no utilizarlo. Ya hemos dicho que el planificador no es perfecto, no tiene tiempo de serlo si quiere resolver la consulta en un tiempo prudente. Así que, en ocasiones, veremos que el plan de ejecución no utiliza el índice adecuado. Podemos proponer a MySQL una lista de índices a considerar, descartando otros, con el modificador USE INDEX. También podemos obligarle a utilizar un índice concreto con FORCE INDEX, e incluso podemos indicarle que ignore una lista de índices con IGNORE INDEX. Pero normalmente los problemas con los índices no son achacables al planificador: o bien no se han actualizado las estadísticas o bien no se utilizan correctamente los índices. Ya hemos insistido en la importancia de actualizar las estadísticas con ANALIZE TABLE y OPTIMIZE TABLE. 3.4 Ejecución Durante la ejecución MySQL ejecuta el plan trazado, por lo que apenas tiene relevancia en el rendimiento de la consulta, salvo que la consulta esté devolviendo grandes conjuntos de resultados. Al resolver una consulta, MySQL bloqueará la tabla contra escrituras para garantizar la integridad de los datos. Esto puede ser un problema si el resultado es grande y el cliente es lento en procesarlo (conexión lenta, máquina de pequeña capacidad...). En estos casos la tabla quedará bloqueada impidiendo el acceso de escritura a otros usuarios. Podemos solucionarlo indicando a MySQL que almacene el resultado en una tabla temporal utilizando SQL_BUFFER_RESULT y liberar así la tabla. Además, si ya sabemos que el resultado de una consulta va a ser grande, podemos

10 10 avisar al planificador con la opción SQL_BIG_RESULT. De esta forma, podrá tomar decisiones más agresivas y buscar un plan de ejecución mejor. A modo de conclusión, si como vimos en el apartado anterior, el diseño del modelo de datos es crítico para el rendimiento futuro de nuestra aplicación, la optimización de consultas es la técnica que necesitamos dominar para optimizar el rendimiento actual. Cuando el rendimiento de nuestra aplicación se degrada, y detectamos que se debe a la lentitud de algunas consultas, no será fácil optimizar el modelo de datos, pero sí podremos optimizar las consultas. Si la consulta está bien diseñada, las estadísticas están actualizadas y se utilizan los índices correctos; apenas habrá nada que hacer. Las mejoras serán de un 10-30%. Pero si alguna de estas cosas falla, podremos mejorar el rendimiento radicalmente. La diferencia entre una consulta que debe escanear registros y luego ordenarlos frente a la misma consulta debidamente optimizada para evitar el escaneo y obtener directamente la ordenación del índice utilizado puede de ser de hasta tres órdenes de magnitud o incluso superior. Y eso, en una aplicación lenta, traza la diferencia entre la desesperación de los usuarios y su satisfacción. Además de las opciones anteriores, existen diferentes herramientas de software cómo MySQL Query Analyzer o MySQLTUNER que monitorizan las consultas SQL del servidor y detectan el origen de los problemas. No obstante, con lo visto hasta ahora y unos conocimientos adecuados de administración de base de datos puede ser suficiente para solucionar cualquier problema que se presente. 4. Mejorar la configuración del servidor MySQL Son muchas las estrategias que podemos seguir para optimizar el rendimiento en el servidor. La documentación oficial de MySQL recomienda algunas cómo la utilización de un SO Solaris o Linux con kernel mayor o igual al 2.4 para aprovechar al máximo las múltiples CPU del servidor o deshabilitar la partición de swap si se dispone de suficiente RAM. También podemos mejorar la entrada/salida del disco utilizando un disco dedicado para almacenar las bases de datos de MySQL e incluso distribuir los datos en diferentes discos con el fin de mejorar las búsquedas. Otra mejora para la entrada/salida es almacenar los logs en un disco diferente del que se utiliza para los datos. Además, existen varias variables en MySQL que nos permiten optimizar su rendimiento: key_buffer_size: tamaño del buffer usado para los bloques de índices.

11 11 table_open_cache: número máximo de tablas abiertas para todos los threads. Dependerá del valor dado a max_connections. max_connections: define el número de conexiones a MySQL simultáneas. Por defecto 151 (150 más la consola local). Si se alcanza este límite aparecerá el error de "Unable to connect to database: Too many connections" y claramente será necesario aumentar éste valor. wait_timeout: define el número de segundos de timeout para una conexión no interactiva. De esta forma, se evitará tener procesos en estado "sleep" en mysql que no se cierren y que por tanto pongan en peligro el valor "max_connections" tmp_table_size / max_heap_table_size: MySQL usará el menor valor de entre "tmp_table_size" y "max_heap_table_size" para determinar el límite que puede ocupar una tabla temporal en memoria. Si una tabla temporal en memoria excede este límite, MySQL cogerá la tabla y la meterá en disco como una tabla MyISAM. Otra posibilidad muy interesante de cara a mejorar el rendimiento de nuestro SGBD es la de montar un entorno en el que se tienen varios servidores, cada uno con una réplica de las bases de datos. De esta manera, el servidor con el rol de máster es el único que permite lecturas y escrituras, mientras que el resto de servidores, con el rol de slaves, únicamente permiten lecturas, y se encargan de actualizar sus datos con las modificaciones que reciben del master. Está claro que este tipo de entornos mejora el rendimiento de cualquier aplicación, al repartir la carga de trabajo de la base de datos entre varios servidores. Además, se puede usar un balanceador de carga para los slaves, de manera que podamos incluir más slaves según lo necesitemos. EJERCICIOS 1. Explica los factores que inciden en el rendimiento del servidor tras varios años de funcionamiento. 2. Es capaz MySQL de gestionar grandes bases de datos con una alta concurrencia? 3. Cuál es la herramienta más conveniente para monitorizar el sistema? 4. Son convenientes las herramientas gráficas de monitorización? 5. Cuáles son los 3 métodos que nos ayudan a mejorar el rendimiento del sistema? 6. Es posible modificar el modelo de datos una vez puesto el sistema en producción? 7. Sobre qué dos aspectos podemos trabajar para optimizar el modelo de datos? 8. En qué casos es conveniente utilizar el motor de datos MyISAM? 9. En qué casos es conveniente utilizar el motor de datos InnoDB? 10. En qué casos se utilizan otros motores de datos? 11. Hablando en términos de rendimiento es un modelo de datos mejor cuándo está normalizado? Ilústralo con un ejemplo. 12. Es mejor ordenar una tabla de cara a mejorar el rendimiento en una BD? 13. Es mejor utilizar tipos de variables fijas o dinámicas de cara a mejorar el rendimiento de una BD? Explica por qué.

12 Qué comando podemos utilizar para desfragmentar tablas? 15. Es conveniente forzar a las columnas de una tabla a que no contengan valores NULL de cara a mejorar el rendimiento de la BD? 16. En qué tipo de operaciones se va degradando poco a poco la aplicación? 17. Cómo se empiezan a manifestar los fallos en el rendimiento de una BD? Es repentino? 18. Para qué utilizamos el comando SHOW PROCESSLIST? 19. Podemos activar el Log General para detectar problemas de rendimiento en una BD? 20. Cómo se activaría el Log General de errores? 21. Podemos activar el Slow Query Log para analizar el rendimiento de la BD? Cómo lo activaríamos? 22. Si una consulta está registrada una sola vez en el Slow Query Log significa eso que es la responsable de la ralentización del sistema? 23. Indica resumidamente cómo es el proceso de consulta en MySQL 24. Qué proceso conocemos con el nombre de parseo? 25. Cómo procede MySQL al recibir una consulta que tiene en su caché? 26. Cómo afectan las consultas de modificación de datos a la caché de MySQL? 27. Indica las variables que conozcas que modifiquen aspectos de la caché de MySQL. Explica cada una de ellas. 28. Son convenientes las consultas largas de cara a mejorar el rendimiento de la BD? 29. Existe un planificador para cada aplicación? 30. Tarda mucho tiempo el planificador en encontrar la solución más óptima? 31. Sobre qué dos aspectos principales tiene que decidir el planificador? 32. Son importantes las estadísticas de los índices que almacena MySQL? 33. Para qué utilizamos los comandos ANALYZE TABLE y OPTIMIZE TABLE? 34. Son más rápidos los procedimientos almacenados? 35. Para qué utilizamos el comando EXPLAIN? 36. De qué manera podemos influir en el plan de ejecución de una consulta? 37. La fase de ejecución de una consulta tiene relevancia en el rendimiento de la BD? En qué casos? 38. Nombra algunas herramientas de software que permiten optimizar las consultas en MysQL. 39. Qué estrategias recomienda la documentación oficial de MySQL para mejorar el rendimiento del servidor? 40. Cómo podemos mejorar la entrada/salida del disco en el servidor? 41. Qué variables MySQL permiten mejorar el rendimiento del servidor? Explica cada una de ellas. 42. Es conveniente montar un entorno con varios servidores de cara a mejorar el rendimiento de la BD? Por qué? Qué permitiría el servidor con rol de máster y los servidores con roles de slaves?

Entendiendo y Optimizando MySQL

Entendiendo y Optimizando MySQL Grupo de Usuarios de Linux Universidad Carlos III de Madrid. 10 de Noviembre de 2010 Indice Arquitectura 1 Arquitectura 2 3 4 5 Arquitectura Sistema de Gestión de Bases de Datos. GPL. Escrito en C y C++.

Más detalles

Un comité de la organización ANSI (American National Standards Institute) aborda la problemática del almacenamiento de datos para su procesamiento en

Un comité de la organización ANSI (American National Standards Institute) aborda la problemática del almacenamiento de datos para su procesamiento en 15/05/2012 1 Un comité de la organización ANSI (American National Standards Institute) aborda la problemática del almacenamiento de datos para su procesamiento en aplicaciones informáticas en 1975. 2 Como

Más detalles

Bases de datos: Sistemas de bases de datos:

Bases de datos: Sistemas de bases de datos: Bases de datos: Sistemas de bases de datos: Un sistema de bases de datos es básicamente un sistema para archivar en computador, es decir, es un sistema computarizado cuyo propósito general es mantener

Más detalles

Buenas Prácticas en Bases de Datos. María del Pilar Angeles. Posgrado de la Facultad de Ingeniería, UNAM. mpilar_angeles@exalumno.unam.

Buenas Prácticas en Bases de Datos. María del Pilar Angeles. Posgrado de la Facultad de Ingeniería, UNAM. mpilar_angeles@exalumno.unam. Buenas Prácticas en Bases de Datos María del Pilar Angeles. Posgrado de la Facultad de Ingeniería, UNAM. mpilar_angeles@exalumno.unam.mx Algunos Tópicos de Base de Datos Modelado y Diseño Programación

Más detalles

1.264 Tema 8. SQL (cont.) ODBC

1.264 Tema 8. SQL (cont.) ODBC 1.264 Tema 8 SQL (cont.) ODBC Subconsultas Las subconsultas de SQL nos permiten utilizar los resultados de una consulta como parte de otra. Subconsultas: A menudo, constituyen un modo natural de escribir

Más detalles

Tema 32. Adm. de BBDD: motores, gestión del espacio, seguridad, rendimiento, servicios de red, backup.

Tema 32. Adm. de BBDD: motores, gestión del espacio, seguridad, rendimiento, servicios de red, backup. Tema 32. Adm. de BBDD: motores, gestión del espacio, seguridad, rendimiento, servicios de red, backup. Introducción... 1 Los motores de Bases de Datos... 2 Gestión del almacenamiento... 3 Gestión del espacio

Más detalles

Unidad IV: Operación y mantenibilidad 4.1 Bitácoras de trabajo del DBMS

Unidad IV: Operación y mantenibilidad 4.1 Bitácoras de trabajo del DBMS Unidad IV: Operación y mantenibilidad 4.1 Bitácoras de trabajo del DBMS En caso de que sea multiusuario existen muchas ventajas adicionales, donde la BD es con toda probabilidad mucho más grande y compleja.

Más detalles

Diseño y Admón. de Bases de Datos. Ingeniería Informática curso 2010/11

Diseño y Admón. de Bases de Datos. Ingeniería Informática curso 2010/11 Laboratorio 06. Objetivos: Representación interna de un BD. Tablas, índices e índices full-text. Sesiones: 1 (24 de noviembre de 2010) Ejercicio: 1. Representación interna: 1.1. Copiar al repositorio de

Más detalles

INTRODUCCION A LOS SGBD

INTRODUCCION A LOS SGBD Parte Primera: INTRODUCCION A LOS SGBD Sistemas de Gestión de Bases de Datos Tabla Tabla Type Fila Tabla Type Fila Tabla text Fila Type Fila Fila text Type Fila Tabla Tabla Fila text Fila text Fila Fila

Más detalles

DataBase Administration

DataBase Administration DataBase Administration 1. FUNCIONES DE UN DBA (Data Base Administrator) El rol de DBA involucra las siguientes tareas: Creación de Bases y Tablas Base de Datos Verificar el lugar de creación, en los espacios

Más detalles

Planos de ejecución en Velneo V7

Planos de ejecución en Velneo V7 Planos de ejecución en Velneo V7 Por Jesús Arboleya Introducción 3 Arquitectura Cliente/Servidor 4 1. Objetos que siempre se ejecutan en el servidor 5 2. Objetos que siempre se ejecutan en el cliente 6

Más detalles

Tema 2. Organizaciones de ficheros y estructuras de acceso

Tema 2. Organizaciones de ficheros y estructuras de acceso Tema 2. Organizaciones de ficheros y estructuras de acceso Ficheros y Bases de Datos 10 de junio de 2002 1. Introducción Este documento contiene preguntas del tema 2 recogidas por estudiantes de la asignatura

Más detalles

Conoce los problemas más comunes que afectan el desempeño de RDBMS y como MySQL los resuelve

Conoce los problemas más comunes que afectan el desempeño de RDBMS y como MySQL los resuelve 1 Sesión 3: Conoce los problemas más comunes que afectan el desempeño de RDBMS y como MySQL los resuelve Manuel Contreras manuel.contreras@sun.com manuel.contreras@oracle.com Blog: mysql-espanol.org Twitter:

Más detalles

Sistemas de Datos. Rendimiento de la Base de datos. Procesamiento de consultas y administración del rendimiento

Sistemas de Datos. Rendimiento de la Base de datos. Procesamiento de consultas y administración del rendimiento Rendimiento de la Base de datos. Procesamiento de consultas y administración del rendimiento Esquema de la clase 1. Procesamiento de consultas 2. El optimizador del DBMS 3. Los Ajustes del Rendimiento

Más detalles

Principios de diseño de bases de datos. Introducción

Principios de diseño de bases de datos. Introducción Principios de diseño de bases de datos Introducción Uno de los pasos cruciales en la construcción de una aplicación que maneje una base de datos, es sin duda, el diseño de la base de datos. Si las tablas

Más detalles

Motores de almacenamiento en MySQL 5.0 por Mario López y Juan A. Sánchez

Motores de almacenamiento en MySQL 5.0 por Mario López y Juan A. Sánchez Motores de almacenamiento en MySQL 5.0 por Mario López y Juan A. Sánchez 15 de enero de 2008 Qué es un motor de almacenamiento en un sistema gestor de bases de datos? Un motor de almacenamiento es una

Más detalles

SQL básico. SQL básico http://idesweb.es/ 1. Contenido

SQL básico. SQL básico http://idesweb.es/ 1. Contenido SQL básico http://idesweb.es/ 1 SQL básico El presente documento no tiene más aspiraciones que servir de recordatorio mínimo para las órdenes más básicas y en su mínima expresión. No es un manual de SQL

Más detalles

M. C. Gustavo Alfonso Gutiérrez Carreón

M. C. Gustavo Alfonso Gutiérrez Carreón 1. Seguridad de bases de datos 2. Optimización de las variables M. C. Gustavo Alfonso Gutiérrez Carreón Funcionamiento: 1. Los clientes se conectan a servidor. 2. Los clientes inician autentificación,

Más detalles

Redes de área local: Aplicaciones y servicios WINDOWS

Redes de área local: Aplicaciones y servicios WINDOWS Redes de área local: Aplicaciones y servicios WINDOWS 17. Copias de Seguridad 1 Índice Definición de Copias de Seguridad... 3 Copia de Seguridad Total... 4 Copia de Seguridad Automática... 16 Restauración

Más detalles

MySQL 5 (versiones 5.1 a 5.6) Guía de referencia del desarrollador

MySQL 5 (versiones 5.1 a 5.6) Guía de referencia del desarrollador Prefacio 1. Objetivos de este libro 13 2. Principales temas tratados en este libro 13 3. A quién va dirigido este libro? 14 4. Requisitos 14 Introducción a MySQL 1. Introducción a las bases de datos relacionales

Más detalles

LABORATORIO 3. CONFIGURACIÓN DE SISTEMAS MANEJADORES DE BASE DE DATOS - POSTGRE SQL

LABORATORIO 3. CONFIGURACIÓN DE SISTEMAS MANEJADORES DE BASE DE DATOS - POSTGRE SQL LABORATORIO 3. CONFIGURACIÓN DE SISTEMAS MANEJADORES DE BASE DE DATOS - POSTGRE SQL GUÍA DE LABORATORIO Nº 3 Actividad de Proyecto No. 2: CONFIGURAR SISTEMAS MANEJADORES DE BASE DE DATOS. CONFIGURACIÓN

Más detalles

PROYECTO ADMINISTRACIÓN ORACLE ENTERPRISE MANAGER

PROYECTO ADMINISTRACIÓN ORACLE ENTERPRISE MANAGER PROYECTO ADMINISTRACIÓN ORACLE ENTERPRISE MANAGER Proyecto de administración avanzada Alejandro Romero Abadía 1 Este proyecto consiste en una explicación de las funciones que ofrece la consola web de administración

Más detalles

ELEMENTO I INTRODUCCION A LOS SISTEMAS DE BASES DE DATOS

ELEMENTO I INTRODUCCION A LOS SISTEMAS DE BASES DE DATOS Base de Datos ELEMENTO I INTRODUCCION A LOS SISTEMAS DE BASES DE DATOS Una base de datos es un conjunto de elementos de datos que se describe a sí mismo, con relaciones entre esos elementos, que presenta

Más detalles

Unidad 2: Gestión de Memoria

Unidad 2: Gestión de Memoria Unidad 2: Gestión de Memoria Tema 3, Gestión de Memoria: 3.1 Definiciones y técnicas básicas. 3.2 Gestión de memoria contigua: Partición, fragmentación, algoritmos de ubicación... 3.3 Paginación: Estructura

Más detalles

Trabajos de Ampliación. Bases de datos NoSQL.

Trabajos de Ampliación. Bases de datos NoSQL. BASES DE DATOS NoSql Son bases de datos pensadas para aplicaciones que hagan un uso intensivo de la misma. Estas bases de datos permiten una mayor flexibilidad y facilidad a la hora de introducir los datos

Más detalles

Oracle Database 10g: Taller de Administración I 1-2

Oracle Database 10g: Taller de Administración I 1-2 Oracle Database 10g: Taller de Administración I 1-2 Estructuras lógicas y físicas de la BD Bloque dedatosoracle:eselnivellógico másfinodegranularidad,dondesealmacenanlosdatosdelabd. Un bloquededatosse

Más detalles

Este es un ejemplo muy sencillo, un esquema de empleados que trabajan en proyectos, en una relación muchos a muchos.

Este es un ejemplo muy sencillo, un esquema de empleados que trabajan en proyectos, en una relación muchos a muchos. 28/04/2012 La teoría de la normalización va perdiendo peso con el paso de los años como herramienta de diseño de bases de datos relacionales en favor de modelos de datos más ricos en su representación,

Más detalles

LOOKWISE ENTERPRISE MANAGER NOVEDADES RELEASE 5.1

LOOKWISE ENTERPRISE MANAGER NOVEDADES RELEASE 5.1 LOOKWISE ENTERPRISE MANAGER NOVEDADES RELEASE 5.1 LOOKWISE ENTERPRISE MANAGER NOVEDADES RELEASE 5.1 página 2 de 17 S21sec - Pamplona, 2015 La información facilitada en este documento es propiedad de S21sec,

Más detalles

SISTEMAS DE GESTIÓN DE BASE DE DATOS SGBD / DBMS

SISTEMAS DE GESTIÓN DE BASE DE DATOS SGBD / DBMS Universidad de Carabobo Facultad Experimental de Ciencias y Tecnología Departamento de Computación Unidad Académica Base de Datos SISTEMAS DE GESTIÓN DE BASE DE DATOS SGBD / DBMS Integrantes: Fidel Gil

Más detalles

ADMINISTRACIÓN DE BASES DE DATOS

ADMINISTRACIÓN DE BASES DE DATOS ADMINISTRACIÓN DE BASES DE DATOS Descripción del curso: Con la nueva legislación, para desarrollar la actividad profesional de ADMINISTRACIÓN DE BASES DE DATOS, ya sea en entidades públicas o privadas,

Más detalles

si por el contrario, queremos compilarlo, tendremos que realizar los siguientes pasos: cd netinvent./configure make make install

si por el contrario, queremos compilarlo, tendremos que realizar los siguientes pasos: cd netinvent./configure make make install Manual de usuario NetInvent (servidor) Netinvent se proporciona en una paquete comprimido en formato netinvent.tar.gz. Este formato es uno de los comúnmente utilizados para distribuir los programas bajos

Más detalles

Motores MySQL. José Manuel Gómez. jmgomez@ua.es. Departamento de Lenguajes y Sistemas Informáticos

Motores MySQL. José Manuel Gómez. jmgomez@ua.es. Departamento de Lenguajes y Sistemas Informáticos Motores MySQL José Manuel Gómez Departamento de Lenguajes y Sistemas Informáticos jmgomez@ua.es Motores MySQL INTRODUCCIÓN 2 INTRODUCCIÓN MySQL soporta distintos motores de tabla Cada tipo de motor tiene

Más detalles

Unidad III: Lenguaje de manipulación de datos (DML) 3.1 Inserción, eliminación y modificación de registros

Unidad III: Lenguaje de manipulación de datos (DML) 3.1 Inserción, eliminación y modificación de registros Unidad III: Lenguaje de manipulación de datos (DML) 3.1 Inserción, eliminación y modificación de registros La sentencia INSERT permite agregar nuevas filas de datos a las tablas existentes. Está sentencia

Más detalles

Optimizar base de datos WordPress

Optimizar base de datos WordPress Optimizar base de datos WordPress Cardenal Gardoki, 1 48008 BILBAO (Vizcaya) Teléfono: 902 012 199 www.hostalia.com WordPress se ha convertido en uno de los CMS más utilizados en todo el mundo. Su robustez,

Más detalles

ADMINISTRACIÓN DE BASES DE DATOS PREGUNTAS TEST SON SOLUCIÓN

ADMINISTRACIÓN DE BASES DE DATOS PREGUNTAS TEST SON SOLUCIÓN ADMINISTRACIÓN DE BASES DE DATOS PREGUNTAS TEST SON SOLUCIÓN 1. En el SGBD Oracle. Cuál de las siguientes afirmaciones es correcta? a) Los usuarios con el rol de administrador de la base de datos son SYS,

Más detalles

Motores de Búsqueda Web Tarea Tema 2

Motores de Búsqueda Web Tarea Tema 2 Motores de Búsqueda Web Tarea Tema 2 71454586A Motores de Búsqueda Web Máster en Lenguajes y Sistemas Informáticos - Tecnologías del Lenguaje en la Web UNED 30/01/2011 Tarea Tema 2 Enunciado del ejercicio

Más detalles

Acceso a bases de datos MySQL con PHP

Acceso a bases de datos MySQL con PHP GESTIÓN Y ADMINISTRACIÓN WEB Acceso a bases de datos MySQL con PHP Ing. CIP Fabián Silva Alvarado fsilvasys@hotmail.com DEFINICIÓN DE BASE DE DATOS Base de Datos es un conjunto de datos relacionados entre

Más detalles

Tema 33. El lenguaje SQL

Tema 33. El lenguaje SQL Tema 33. El lenguaje SQL Introducción... 1 Modos de uso... 2 Ejecución de las sentencias SQL... 2 Instrucciones DDL Data Definition Language-... 3 Instrucciones DML Data Manipulation Language-... 4 Instrucciones

Más detalles

UNIDAD DIDACTICA 8 UTILIDADES DE ADMINISTRACIÓN EN REDES WINDOWS CON ACTIVE DIRECTORY

UNIDAD DIDACTICA 8 UTILIDADES DE ADMINISTRACIÓN EN REDES WINDOWS CON ACTIVE DIRECTORY UNIDAD DIDACTICA 8 UTILIDADES DE ADMINISTRACIÓN EN REDES WINDOWS CON ACTIVE DIRECTORY Eduard Lara 1 1. OPTIMIZACIÓN DE LA MEMORIA DEL S. O. EN RED Windows Server utiliza la técnica de paginación y segmentación

Más detalles

Si queremos modificar la contraseña de sys, una vez que accedamos al sistema como sys, escribiremos la sentencia:

Si queremos modificar la contraseña de sys, una vez que accedamos al sistema como sys, escribiremos la sentencia: TRABAJANDO CON SQL*PLUS El objetivo de este tema es simplemente, hacer una revisión de los conceptos avanzados de SQL, para ello, empezaremos por ver como se accede a SQL*PLUS y como crear usuarios, para

Más detalles

CURSOS Y DESCRIPCIÓN 16-0071 / 29-0942 ADMINISTRACIÓN DE BASE DE DATOS

CURSOS Y DESCRIPCIÓN 16-0071 / 29-0942 ADMINISTRACIÓN DE BASE DE DATOS 16-0071 / 29-0942 ADMINISTRACIÓN DE BASE DE DATOS Descripción General: El participante podrá conocer el modelaje conceptual de los datos: con respecto a la definición del modelo, clasificación de los modelos

Más detalles

COMANDOS DE SQL, OPERADORES, CLAUSULAS Y CONSULTAS SIMPLES DE SELECCIÓN

COMANDOS DE SQL, OPERADORES, CLAUSULAS Y CONSULTAS SIMPLES DE SELECCIÓN COMANDOS DE SQL, OPERADORES, CLAUSULAS Y CONSULTAS SIMPLES DE SELECCIÓN Tipos de datos SQL admite una variada gama de tipos de datos para el tratamiento de la información contenida en las tablas, los tipos

Más detalles

Módulo 7. Administración de MySQL

Módulo 7. Administración de MySQL Módulo 7. Administración de MySQL Guía de Prácticas y Laboratorios Día 2 Francisco Medina López Septiembre 2009 Práctica 1. Administrando los privilegios de Usuarios Duración: 10 min. Objetivo: El participante

Más detalles

ORACLE TUNING PACK 11G

ORACLE TUNING PACK 11G ORACLE TUNING PACK 11G CARACTERÍSTICAS CLAVE: Asesor de Ajuste SQL Asesor de Ajuste Automático SQL Perfiles SQL Asesor de Acceso SQL Grupos de Ajuste SQL Wizard de reorganización de Objetos BENEFICIOS

Más detalles

Enlaces relacionados: http://otn.oracle.com/tech/pl_sql/index.html

Enlaces relacionados: http://otn.oracle.com/tech/pl_sql/index.html 1.INTRODUCCION PL/SQL (Procedural Language ó Programming Language, según distintas fuentes, aunque la oficial es la primera) es el lenguaje utilizado por Oracle como extensión al SQL, y que nos va a permitir

Más detalles

Identificación rápida de cuellos de botella: Una mejor manera de realizar pruebas de carga. Documento técnico de Oracle Junio de 2009

Identificación rápida de cuellos de botella: Una mejor manera de realizar pruebas de carga. Documento técnico de Oracle Junio de 2009 Identificación rápida de cuellos de botella: Una mejor manera de realizar pruebas de carga Documento técnico de Oracle Junio de 2009 Identificación rápida de cuellos de botella: Una mejor manera de realizar

Más detalles

Ic-Prog PARA PROGRAMAR MICROCONTROLADORES PIC 16F84 y 16F876.

Ic-Prog PARA PROGRAMAR MICROCONTROLADORES PIC 16F84 y 16F876. Ic-Prog PARA PROGRAMAR MICROCONTROLADORES PIC 16F84 y 16F876. Prof: Bolaños D. En unión del hardware adecuado, el software IC-PROG permite programar gran cantidad de dispositivos electrónicos. Esta guía

Más detalles

Formato para prácticas de laboratorio

Formato para prácticas de laboratorio Formato para prácticas de laboratorio CARRERA PLAN DE ESTUDIO CLAVE ASIGNATURA NOMBRE DE LA ASIGNATURA LSC 2009-2 12001 Administración de Bases de Datos PRÁCTICA No. 6 LABORATORIO DE NOMBRE DE LA PRÁCTICA

Más detalles

Backup & Recovery Oracle 9i. Las copias físicas offline, conocidas como Backups en frío, se realizan cuando la Base de Datos está parada.

Backup & Recovery Oracle 9i. Las copias físicas offline, conocidas como Backups en frío, se realizan cuando la Base de Datos está parada. Copias de Seguridad Físicas OFFLINE Las copias físicas offline, conocidas como Backups en frío, se realizan cuando la Base de Datos está parada. Como ya se ha comentado anteriormente, una copia en frío

Más detalles

PRÁCTICA DE ADMINISTRACIÓN DE BASES DE DATOS

PRÁCTICA DE ADMINISTRACIÓN DE BASES DE DATOS PRÁCTICA DE ADMINISTRACIÓN DE BASES DE DATOS Modulo 1.- CONFIDENCIALIDAD DE LOS DATOS El objetivo de esta parte de la práctica es comprender los distintos mecanismos que se pueden utilizar en ORACLE 10g

Más detalles

Contenido Manejo de Concurren en Mysql... 2 Modos de bloqueo InnoDB... 2 InnoDB y AUTOCOMMIT... 3

Contenido Manejo de Concurren en Mysql... 2 Modos de bloqueo InnoDB... 2 InnoDB y AUTOCOMMIT... 3 Manejo de Concurrencia en Mysql Contenido Manejo de Concurren en Mysql... 2 Modos de bloqueo InnoDB... 2 InnoDB y AUTOCOMMIT... 3 InnoDB y TRANSACTION ISOLATION LEVEL... 3 Lecturas consistentes que no

Más detalles

Estructura de una BD Oracle. datafiles redo log controlfiles tablespace objetos Estructura lógica. Tablespaces tablespace SYSTEM

Estructura de una BD Oracle. datafiles redo log controlfiles tablespace objetos Estructura lógica. Tablespaces tablespace SYSTEM Estructura de una BD Oracle. Una BD Oracle tiene una estructura física y una estructura lógica que se mantienen separadamente. La estructura física se corresponde a los ficheros del sistema operativo:

Más detalles

Aviso Legal El presente libro electrónico se distribuye bajo Attribution-NonCommercial- NoDerivs 3.0 Unported

Aviso Legal El presente libro electrónico se distribuye bajo Attribution-NonCommercial- NoDerivs 3.0 Unported PROGRAMACIÓN ORIENTADA A OBJETOS APLICADA A BASES DE DATOS Por LAURA NOUSSAN LETTRY BrowserSQL MySQL Workbench en Linux (Abril 2015, Mendoza) Aviso Legal El presente libro electrónico se distribuye bajo

Más detalles

Unidad didáctica 2: Metodologías de desarrollo de Bases de Datos. Unidad didáctica 1: Fase de análisis de requisitos Modelo E/R

Unidad didáctica 2: Metodologías de desarrollo de Bases de Datos. Unidad didáctica 1: Fase de análisis de requisitos Modelo E/R índice Módulo A Unidad didáctica 1: Introducción a las Bases de Datos Unidad didáctica 2: Metodologías de desarrollo de Bases de Datos 3 19 Módulo B Unidad didáctica 1: Fase de análisis de requisitos Modelo

Más detalles

proceso que consiste en aplicar una serie de reglas a las relaciones obtenidas tras el paso del modelo entidad-relación al modelo relacional.

proceso que consiste en aplicar una serie de reglas a las relaciones obtenidas tras el paso del modelo entidad-relación al modelo relacional. Que es una normalización de una base de datos proceso que consiste en aplicar una serie de reglas a las relaciones obtenidas tras el paso del modelo entidad-relación al modelo relacional. Para que sirve

Más detalles

CURSO DE SQL SERVER 2005

CURSO DE SQL SERVER 2005 CURSO DE SQL SERVER 2005 Una vez finalizado el curso, el alumno estará preparado para: Instalar y configurar SQL Server 2005. Comprender los conceptos más importantes del diseño de bases de datos. Crear

Más detalles

- Bases de Datos - - Diseño Físico - Luis D. García

- Bases de Datos - - Diseño Físico - Luis D. García - Diseño Físico - Luis D. García Abril de 2006 Introducción El diseño de una base de datos está compuesto por tres etapas, el Diseño Conceptual, en el cual se descubren la semántica de los datos, definiendo

Más detalles

TEMA 37: Arquitecturas Cliente / Servidor. Tipos de cliente. Tipos de Servidor. Clasificación del software.

TEMA 37: Arquitecturas Cliente / Servidor. Tipos de cliente. Tipos de Servidor. Clasificación del software. . TEMA 37: Arquitecturas Cliente / Servidor. Tipos de cliente. Tipos de Servidor. Clasificación del software. Índice 1 INTRODUCCIÓN 2 2 CARACTERÍSTICAS 2 2.1 Características del cliente...2 2.2 Características

Más detalles

RAID. Los detalles de las características segunda y tercera, cambian según los distintos niveles RAID. RAID 0 no soporta la tercera característica.

RAID. Los detalles de las características segunda y tercera, cambian según los distintos niveles RAID. RAID 0 no soporta la tercera característica. RAID Como se dijo anteriormente, el ritmo de mejora de prestaciones en memoria secundaria ha sido considerablemente menor que en procesadores y en memoria principal. Esta desigualdad ha hecho, quizás,

Más detalles

Selección de los puntos de montaje

Selección de los puntos de montaje PARTICIONES PARA LINUX Selección de los puntos de montaje Tanto para aquellos que vayan a instalar ahora, como para quienes quieran cambiar el tamaño de una partición o formatear este apunte (resumen de

Más detalles

No se requiere que los discos sean del mismo tamaño ya que el objetivo es solamente adjuntar discos.

No se requiere que los discos sean del mismo tamaño ya que el objetivo es solamente adjuntar discos. RAIDS MODO LINEAL Es un tipo de raid que muestra lógicamente un disco pero se compone de 2 o más discos. Solamente llena el disco 0 y cuando este está lleno sigue con el disco 1 y así sucesivamente. Este

Más detalles

Formas de llevar a cabo un backup de una base de datos MySQL

Formas de llevar a cabo un backup de una base de datos MySQL Formas de llevar a cabo un backup de una base de datos MySQL Calle San Rafael, 14 28108 Alcobendas (Madrid) 902 90 10 20 www..com Introducción Muchas aplicaciones web hacen uso de bases de datos donde

Más detalles

LABORATORIO 3. CONFIGURACIÓN DE SISTEMAS MANEJADORES DE BASE DE DATOS - POSTGRE SQL

LABORATORIO 3. CONFIGURACIÓN DE SISTEMAS MANEJADORES DE BASE DE DATOS - POSTGRE SQL LABORATORIO 3. CONFIGURACIÓN DE SISTEMAS MANEJADORES DE BASE DE DATOS - POSTGRE SQL GUÍA DE LABORATORIO Nº 3 Actividad de Proyecto No. 2: CONFIGURAR SISTEMAS MANEJADORES DE BASE DE DATOS. CONFIGURACIÓN

Más detalles

Memoria Virtual. Figura 1: Memoria Virtual

Memoria Virtual. Figura 1: Memoria Virtual 1 Memoria Virtual. Qué podemos hacer si un programa es demasiado grande para caber en la memoria disponible? Una posibilidad es usar superposiciones (overlays), como en MS-DOS: dividimos el programa en

Más detalles

Oracle 12c Administración

Oracle 12c Administración Introducción 1. Objetivos del libro 19 2. Presentación de Oracle Database 12c 20 2.1 Introducción 20 2.2 Principales novedades de la versión 12 22 3. Convenciones de escritura 24 Las bases de la arquitectura

Más detalles

DICCIONARIO DE DATOS

DICCIONARIO DE DATOS DICCIONARIO DE DATOS Diccionario de datos El diccionario de datos es la fuente de información centralizada de todo el sistema SAP, allí se encuentra (y almacena) todos los datos que se procesan en el sistema;

Más detalles

Manual de usuario para la parametrización de la integración Openbravo-Sugar

Manual de usuario para la parametrización de la integración Openbravo-Sugar Manual de usuario para la parametrización de la integración Openbravo-Sugar Fichero: Manual usuario - Integración Openbravo- Sugar - Spanish Versión: 1.0 Sevilla, 3 de febrero de 2010 Histórico de cambios

Más detalles

APOYO PARA LA TOMA DE DECISIONES

APOYO PARA LA TOMA DE DECISIONES APOYO PARA LA TOMA DE DECISIONES Cátedra: Gestión de Datos Profesor: Santiago Pérez Año: 2006 Bibliografía: Introducción a las Bases de Datos. DATE - 1 - 1. INTRODUCCION APOYO PARA LA TOMA DE DECISIONES

Más detalles

Una base de datos es una colección de información ordenada e interrelacionada que es de importancia para una empresa.

Una base de datos es una colección de información ordenada e interrelacionada que es de importancia para una empresa. BASES DE DATOS Una base de datos es una colección de información ordenada e interrelacionada que es de importancia para una empresa. La creación de una base de datos debe ser realizada cuidadosamente procurando

Más detalles

PROGRAMA FORMATIVO. Administración de Bases de Datos Oracle

PROGRAMA FORMATIVO. Administración de Bases de Datos Oracle PROGRAMA FORMATIVO Administración de Bases de Datos Oracle MÓDULOS FORMATIVOS Módulo nº 1 ORACLE DATABASE: TALLER DE ADMINISTRACIÓN Al finalizar este módulo los alumnos podrán instalar, configurar, controlar,

Más detalles

Administración de Sistemas Gestores de Bases de Datos

Administración de Sistemas Gestores de Bases de Datos Administración de Sistemas Gestores de Bases de Datos UD 2: Auditorías en el SGBD Oracle Félix Reyes Fernández Índice Conceptos Tipos de auditorías Registros de auditorías Vistas de auditorías Gestión

Más detalles

Como manejador de base de datos elegimos utilizar Absolute Database, que es un

Como manejador de base de datos elegimos utilizar Absolute Database, que es un APÉNDICE E Manejador de base de datos ABSOLUTE DATABASE Como manejador de base de datos elegimos utilizar Absolute Database, que es un componente de Delphi para manejar base de datos, muy poderoso y fácil

Más detalles

Administración de redes IP. Localización y manejo de problemas

Administración de redes IP. Localización y manejo de problemas Administración de redes IP. Localización y manejo de problemas Tabla de Contenidos 6. Administración de redes IP. Localización y manejo de problemas...2 6.1 consideraciones previas y recomendaciones...

Más detalles

PRÁCTICA 12. Niveles RAID. 12.1. Meta. 12.2. Objetivos. 12.3. Desarrollo

PRÁCTICA 12. Niveles RAID. 12.1. Meta. 12.2. Objetivos. 12.3. Desarrollo PRÁCTICA 12 Niveles RAID 12.1. Meta Que el alumno comprenda la importancia que tiene la implementación de los niveles RAID en un SMBD así como todos los beneficios que aporta esto. 12.2. Objetivos Al finalizar

Más detalles

Dependiendo de las tareas, podemos clasificar las sentencias SQL en dos tipos:

Dependiendo de las tareas, podemos clasificar las sentencias SQL en dos tipos: CONTENIDO. 1. INTRODUCCIÓN 2. TIPOS DE SENTENCIAS SQL 3. TIPOS DE DATOS 4. SQL PLUS 5. CONSULTAS DE DATOS 6. RESTRICCIÓN Y CLASIFICACIÓN DE LOS DATOS 7. FUNCIONES A NIVEL DE FILA 8. VISUALIZACIÓN DE DATOS

Más detalles

BASES DE DATOS. 1.1 Funciones de un DBMS

BASES DE DATOS. 1.1 Funciones de un DBMS BASES DE DATOS Un DBMS, son programas denominados Sistemas Gestores de Base de Datos, abreviado SGBD, en inglés Data Base Management System (DBMS) que permiten almacenar y posteriormente acceder a los

Más detalles

TEMA 1.- Conceptos Generales y Entorno de Trabajo Objetivo

TEMA 1.- Conceptos Generales y Entorno de Trabajo Objetivo CURSO DE PHP El objetivo final que persigue este curso es dotar al alumno de los conocimientos necesarios para elaborar páginas web de carácter dinámico, utilizando, para ello, el lenguaje de programación

Más detalles

Documento en blanco, el cual permite al seleccionarlo y pulsando el botón

Documento en blanco, el cual permite al seleccionarlo y pulsando el botón Acceder a un nuevo documento Manejo de documentos y de archivos Cuando se inicia Word, aparecerá en pantalla un documento nuevo (en blanco) que por defecto se llama Documento1. Para crear un documento

Más detalles

Ministerio de Educación. Base de datos en la Enseñanza. Open Office. Módulo 3: Controles de formulario

Ministerio de Educación. Base de datos en la Enseñanza. Open Office. Módulo 3: Controles de formulario Ministerio de Educación Base de datos en la Enseñanza. Open Office Módulo 3: Controles de formulario Instituto de Tecnologías Educativas 2011 Controles de formulario El control más habitual de un formulario

Más detalles

Ventajas, Características y Aplicaciones de los SGBD Distribuidos.

Ventajas, Características y Aplicaciones de los SGBD Distribuidos. Ventajas, Características y Aplicaciones de los SGBD Distribuidos. Definición Un SBD Distribuido se compone de un conjunto de sitios, conectados entre sí mediante algún tipo de red de comunicaciones, en

Más detalles

Backup y Restore en mysql

Backup y Restore en mysql Universidad de San Carlos de Guatemala Facultad de Ingeniería Escuela de Ciencias y Sistemas Sistemas de Bases de datos 2 Backup y Restore en mysql G 1 0 20090816 Introducción Las operaciones de backup

Más detalles

INTRODUCCION A LAS BASES DE DATOS ESPACIALES

INTRODUCCION A LAS BASES DE DATOS ESPACIALES INTRODUCCION A LAS BASES DE DATOS ESPACIALES Índice Introducción Qué es un SIG? Arquitectura de un SIG La información n en un SIG Uso y aplicación n de los SIG Bases de datos Introducción Antecedentes:

Más detalles

Sybase IQ Servidor analítico con arquitectura basada en columnas

Sybase IQ Servidor analítico con arquitectura basada en columnas Sybase IQ Servidor analítico con arquitectura basada en columnas www.sybase.es Sybase IQ Descripción Tener acceso a toda la información de que dispone su organización, con el fin de analizarla no es hoy

Más detalles

TABLAS DINÁMICAS EXCEL 2007. Manual de Referencia para usuarios. Salomón Ccance CCANCE WEBSITE

TABLAS DINÁMICAS EXCEL 2007. Manual de Referencia para usuarios. Salomón Ccance CCANCE WEBSITE TABLAS DINÁMICAS EXCEL 2007 Manual de Referencia para usuarios Salomón Ccance CCANCE WEBSITE TABLAS DINÁMICAS Una tabla dinámica consiste en el resumen de un conjunto de datos, atendiendo a varios criterios

Más detalles

Capítulo 12: Indexación y asociación

Capítulo 12: Indexación y asociación Capítulo 12: Indexación y asociación Conceptos básicos Índices ordenados Archivos de índice de árbol B+ Archivos de índice de árbol B Asociación estática Asociación dinámica Comparación entre indexación

Más detalles

Mantenimiento del espacio web

Mantenimiento del espacio web Mantenimiento del espacio web 11 Actualizaciones de Joomla! La actualización a las nuevas versiones de Joomla! es siempre necesaria si queremos que nuestro espacio web no tenga vulnerabilidades peligrosas,

Más detalles

Manual De Instalación MySQl 5.1 MANUAL DE INSTALACIÓN Y CONFIGURACIÓN DE MYSQL 5.1.40

Manual De Instalación MySQl 5.1 MANUAL DE INSTALACIÓN Y CONFIGURACIÓN DE MYSQL 5.1.40 MANUAL DE INSTALACIÓN Y CONFIGURACIÓN DE MYSQL 5.1.40 Página 1 de 15 1.- Ejecutamos el fichero mysql-essential-5.1.40-win32. Espera unos minutos mientras se cargan los archivos necesarios para la instalación

Más detalles

BROWSERSQL VERSIÓN 3.1 TUTORIAL

BROWSERSQL VERSIÓN 3.1 TUTORIAL TUTORIAL LAURA NOUSSAN LETTRY (MENDOZA, ARGENTINA 2011) ÍNDICE CONTENIDOS PÁGINA Introducción 2 Características Funcionales 2 Área de Conexión 3 Área de Ejecución de Sentencias 4 En qué se basa su funcionamiento

Más detalles

Estructuras de Almacenamiento RAID RAID. Nivel FísicoF. Índice. Requisitos Almacenamiento. Nivel Lógico Modelo Entidad-Relación y Modelo Relacional

Estructuras de Almacenamiento RAID RAID. Nivel FísicoF. Índice. Requisitos Almacenamiento. Nivel Lógico Modelo Entidad-Relación y Modelo Relacional Estructuras de Almacenamiento Nivel FísicoF Nivel Lógico Modelo Entidad-Relación y Modelo Relacional El nivel en el que se deben mover los usuario es el nivel lógico El objetivo de un sistema de bases

Más detalles

Supervisión del rendimiento de SQL Server

Supervisión del rendimiento de SQL Server Supervisión del rendimiento de SQL Server Contenido Introducción 1 Por qué supervisar SQL Server 2 Supervisión y optimización del rendimiento 3 Herramientas para supervisar SQL Server 14 Tareas habituales

Más detalles

2.4. BASES DE DATOS SQLITE

2.4. BASES DE DATOS SQLITE 2.4. BASES DE DATOS SQLITE SQLite es un potente motor de base de datos, creado en el año 2000 por el Dr. Richard Hipp. Podríamos decir, que se trata del motor más usado en el mundo, ya que se encuentra

Más detalles

Objetos de la Base de Datos

Objetos de la Base de Datos Objetos de la Base de Datos Todos los datos de una base de datos de Microsoft SQL Server 2005/8 están contenidos en objetos llamados tablas. Cada tabla representa algún tipo de objeto con significado para

Más detalles

PON A PUNTO TU DISCO DURO

PON A PUNTO TU DISCO DURO PON A PUNTO TU DISCO DURO El disco duro es quizás la parte más importante de un ordenador, ya que permite guardar información y ejecutar el sistema operativo. Sin él, el usuario no podría hacer nada con

Más detalles

PRÁCTICA B2. Definición y modificación de datos en SQL

PRÁCTICA B2. Definición y modificación de datos en SQL 3º Ingeniero Técnico en Informática de Sistemas Facultad de Informática Asignatura: Fundamentos de Bases de Datos Curso: 2007/08 PRÁCTICA B2. Definición y modificación de datos en SQL Objetivos Construir

Más detalles

Petabytes de información: Repensando el modelamiento de base de datos. Ernesto Quiñones Azcárate ernestoq@apesol.org Presidencia Apesol 2006 2008

Petabytes de información: Repensando el modelamiento de base de datos. Ernesto Quiñones Azcárate ernestoq@apesol.org Presidencia Apesol 2006 2008 Petabytes de información: Repensando el modelamiento de base de datos Ernesto Quiñones Azcárate ernestoq@apesol.org Presidencia Apesol 2006 2008 Modelos de bases de datos para todos los gustos (según la

Más detalles

Curso de MySQL y Java

Curso de MySQL y Java Curso de MySQL y Java Introducción: instalación, arranque y primeros pasos 1. Material En este curso vamos a trabajar con el servidor mysql versión 4.0.18. También utilizaremos una herramienta llamada

Más detalles

Metodología de Ingeniería del Software para el desarrollo y mantenimiento de sistemas de información del Gobierno de Extremadura

Metodología de Ingeniería del Software para el desarrollo y mantenimiento de sistemas de información del Gobierno de Extremadura Metodología de Ingeniería del Software para el desarrollo y mantenimiento de sistemas de información del Gobierno de Extremadura Página 1 de 23 Índice del Documento 1.- Introducción... Página 4 2.- Propuesta

Más detalles

Optimización de un servidor de mapas en Internet

Optimización de un servidor de mapas en Internet Optimización de un servidor de mapas en Internet Alejandro Guinea de Salas 1, Sergio Jorrín Abellán 1 1 Geograma SL Castillo Lantaron, 8 Vitoria-Gasteiz Tel: 902 99 55 84,Fax: +34945230340, geograma@geograma.com

Más detalles

PARÁMETROS DE CONFIGURACIÓN DE SISTEMAS MANEJADORES DE BASE DE DATOS

PARÁMETROS DE CONFIGURACIÓN DE SISTEMAS MANEJADORES DE BASE DE DATOS PARÁMETROS DE CONFIGURACIÓN DE SISTEMAS MANEJADORES DE BASE DE DATOS Introducción 3 GESTIÓN DE MEMORIA 3 Memoria Dinámica 4 Memoria predefinida 5 Áreas especiales de memoria 5 GESTIÓN DE ALMACENAMIENTO

Más detalles

Curso Experto Programador PHP

Curso Experto Programador PHP Total 160 horas Curso Experto Programador PHP Modalidad: presencial, 100% práctico. Descuento al realizar el curso completo. Financiación: pago por cuotas. Bonificable. Bolsa de trabajo. 1. Descripción

Más detalles