Anda di halaman 1dari 21

1

INSTITUTO TECNOLGICO SUPERIOR DE VALLADOLID


Organismo Pblico Descentralizado del Gobierno del Estado.

ALUMNOS:
Matricula: 10070053: RILKE ALEXIS MENA AGUILAR.
Matricula: 10070017: FABIAN DZUL MOO
Matricula: 100700: WILBERT DE JESUS MAY TUZ
Matricula: 10070011: AARON IDAHIR CAUICH SANTOS.


Carrera:
ING. EN SISTEMAS COMPUTACIONALES.

Materia:
ADMINISTRACION DE BASE DE DATOS.

Grado y Grupo:
6 A

Docente:
LIC. PECH MAY JOS LEONEL


Asunto:

TRABAJO EN EQUIPO.
PROYECTO FINAL DE LA UNIDAD 4 APLICACIN DE
CONSULTAS EN LAS BASES DE DATOS.

Fecha: 09/05/2013.





2

OBJETIVO:
Adquirir las habilidades y conocimientos de MySQL necesarios para utilizar,
administrar y realizar consultas con las diversas herramientas de consultas para
poder observar el tiempo de consulta que realiza el gestor de base de datos con
diversas caractersticas aplicadas.


INTRODUCCIN:
Las consultas en MySQL son de mucha importancia ya que forman parte de
una herramienta que tiene como funcionamiento conocer, analizar, y visualizar cada
uno de los datos de las tablas que se tienen en una base de datos en la cual podemos
manipular, de acuerdo a nuestras necesidades que se nos requiere.
En este ocasin fuimos manipulando la base de datos sakila de la cual
realizamos una serie de actividades que mas adelante vamos a estar comentando
con el fin de poner en practica cada uno de nuestros conocimientos sobre las
consultas que se pueden realizar y sobre todo conocer y aplicar la optimizacion de las
bases de datos que tan rapidos pueden ser los porcesos que se realizan en ella con
diferentes tipos de sentencias y aplicadas de diversas formas al igual de conocer el
funcionamiento de cada uno de los motores de las tablas que se pueden acoplar en
ella.
En el siguinete trabajo vamos a ver ejemplos de indices que como sabemos
los indices son los que es un grupo de datos que MySQL asocia con una o varias
columnas de la tabla. Veremos como se cambia los motores y como funcionan, al
igual vamos a practicar sobre los procedimientos almacenados en la cual nos dice
que son un conjunto de comandos SQL que pueden almacenarse en el servidor. Y que
se pueden utilizar de nuevo sin volver a crearlos, adems de esto vamos a poner en
practica el funcionamiento de los famosos join que como sabemos son los que se
trata de un producto cartesiano restringido, las tuplas que se emparejan deben
cumplir una determinada condicin.
Y como parte final de este proyecto se concluye con la aplicacin de la
optimizacin y rendimiento de las consultas para que pueda funcionar
correctamente y de una forma rpida las bases de datos que estemos utilizando
esprerando que esta in formacin y ejemplos sea de su agrado y que les pueda servir
para poder visualizar la aplicacin de las sentencias.




3
DESARROLLO DE PROYECTO:
1. DEMOSTRAR A TRAVS DE UN EJEMPLO EL BENEFICIO QUE OFRECE
EL USO DE LOS NDICES.

Base de datos sakila, en esta primera demostracin, se implement la tabla
actor, con su correspondiente clon, en este caso la tabla actor_clon.


Asignando los ndices de los campos



















4







Una vez que se realiz esta accin ahora toca el turno de realizar las consultas y
verificar los tiempos y toca el turno de la primera consulta con sus respectivos
tiempos y es importante mencionar que en los tiempos es un promedio de 5
aplicaciones de la misma consulta.
PRIMERA CONSULTA:














CLON DE LA TABLA ACTOR, CON SUS RESPECTIVOS
NDICES
TABLA ACTOR, SIN NINGN
NDICE




5
Primera prueba realizada en la tabla actor con la consulta: select * from actor
where last_name='DAVIS';
RESULTADOS
0,001
0,001
0
0,001
0
promedio: 0,0006

A continuacin se presentara la consulta anterior pero aplicada en la tabla donde
se aplicaron los ndices.















Primera prueba realizada en la tabla




6
actor_clon, con la consulta select * from actor_clon where last_name='DAVIS';
RESULTADOS





Aqu podemos apreciar que en la segunda tabla aplicando los ndices los tiempos
de ejecucin fueron ms rpidos que en la primera tabla esto nos dice que es ms
eficiente la aplicacin de dichas sentencias con las propiedades de los ndices.
















0,001
0,001
0,001
0,001
0,001
promedio: 0,001




7

2. IMPLEMENTAR UNA MISMA TABLA CON 2 MOTORES DE BASES DE
DATOS DIFERENTES Y DEMOSTRAR CUL DE ELLOS TIENE UN
MEJOR RENDIMIENTO.

En primera instancia se seleccion una tabla film que cuenta con el motor de
tabla denominado InnoDB como se muestra a continuacin.


Una vez que escogemos la tabla, procedemos a crear una segunda tabla pero
ahora cambiando el motor de arranque que en este caso vamos a una con motor de
MyIsam que llevara el nombre de film_copy como se muestra a continuacin el
procedimiento.
Encima de la tabla original film se le da un clic derecho y se selecciona crate
new y despus se selecciona table copy.









Al hacer esta opcin nos sale un cuadro como el siguiente donde vamos a des
seleccionar la opcin de las Foreign keys, para que se pueda crear la nueva tabla.





8










Una vez realizado el procedimiento se crea y despus grficamente se cambia
el motor de la copia que realizamos de la tabla y despus como se muestra a
continuacin veremos el cdigo de la tabla donde le cambiamos el motor para que
ya estemos listos para realizar las consultas con ambas y checar los tiempos.

Aqu se muestra la primera tabla que se modific con el motor MyISAM














9
Y aqu veremos la tabla original que tiene el motor InnoDB.








A continuacin mostraremos la primera consulta utilizando el motor InnoDB y
seguidamente con MyISAM para ver los tiempos.
La primera consulta fue esta con el motor que maneja InnoDB;



Y los tiempos fueron:




Para sacar el tiempo en ejecucin vamos a sumar todos los tiempo y lo vamos a promediar

Que en total con este motor nos est dando un tiempo en promedio de:
0.0094 segundos para que se pueda realizar esta consulta.





10
A continuacin se mostrara la misma consulta pero ahora se utilizara el motor
MyISAM, la consulta es la siguiente:


Y los tiempos son los siguientes con la utilizacin del segundo motor:






Y los tiempos en promedios son es: 0.003 segundos que se puede hacer esta
consulta con el motor MyISAM donde nos podemos dar cuenta que es ms rpido
que el InnoDB.

Ahora realizando una nueva consulta los resultados son los siguientes:

En el primer motor la primera consulta es:


Y los tiempos son los siguientes:









11
Y el tiempo en promedio de esta consulta fue de: 0.0062 segundos de
ejecucin.
Y ahora con el siguiente motor la consulta es:


Y los tiempos son los siguientes:





Donde nos podemos dar cuenta que esta accin lo est realizando sper
rapidsimo que en todas las ejecuciones lo realizo en un tiempo de 0.000 en las 5
ejecuciones que realizamos.














12
3. REALIZAR UNA COMPARATIVA ENTRE UNA CONSULTA
EMPLEANDO UN PROCEDIMIENTO ALMACENADO Y LA MISMA
CONSULTA SIN EMPLEAR PROCEDIMIENTOS ALMACENADOS. DE
ACUERDO A LAS PRUEBAS REALIZADAS EMITIR UNA CONCLUSIN
Y DETERMINAR CUL TIENE EL MEJOR RENDIMIENTO.

CONSULTA CON PROCEDIMIENTO ALMACENADO






En esta pantalla se muestra como se crea un procedimiento con Heidi SQL; Se
le pone por nombre Consulta1.






En el procedimiento se hace una consulta utilizando la tabla film y film_id de
la base de datos sakila.






13
CALL CONSULTA1;
















/* 0 rows affected, 5,462 rows found. Duration for 1 query: 0.000 sec. (+ 0.063
sec. network) */

/* 0 rows affected, 5,462 rows found. Duration for 1 query: 0.000 sec. (+ 0.125
sec. network) */

/* 0 rows affected, 5,462 rows found. Duration for 1 query: 0.000 sec. (+ 0.124
sec. network) */

Se llama al procedimiento y genera los resultados en 0.104 segundos en
promedio (porque se ejecut tres veces el mismo procedimiento y se realiz un
promedio de los tiempos).
CONSULTA SIN PROCEDIMIENTO ALMACENADO

SELECT * FROM film INNER JOIN film_actor
ON (film.film_id = film_actor.film_id);





















14



/* 0 rows affected, 5,462 rows found. Duration for 1 query: 0.000 sec. (+ 0.125
sec. network) */

/* 0 rows affected, 5,462 rows found. Duration for 1 query: 0.000 sec. (+ 0.140
sec. network) */

/* 0 rows affected, 5,462 rows found. Duration for 1 query: 0.000 sec. (+ 0.141
sec. network) */

Se realiza la misma consulta solo que ahora sin procedimiento almacenado y
el tiempo promedio en responder son 0.135 segundos.
Como conclusin se puede decir lo siguiente: La consulta con procedimiento
almacenado fue de 0.104 segundos y la misma consulta sin el procedimiento fue de
0.135; entonces se puede observar que la consulta con el procedimiento almacenado
es ms ptima en cuanto al tiempo de respuesta, marcando una diferencia de 0.031
segundos.
















15
4. REALIZAR UNA CONSULTA COMPLEJA EMPLEANDO JOIN Y OTRA
CONSULTA COMPLEJA EQUIVALENTE SIN EMPLEAR JOIN QUE
GENERE LOS MISMOS RESULTADOS Y DETERMINAR EL MEJOR
RENDIMIENTO.

SELECT * FROM film INNER JOIN film_actor
ON (film.film_id = film_actor.film_id);












/* 0 rows affected, 5,462 rows found. Duration for 1 query: 0.000 sec. (+ 0.047
sec. network) */


/* 0 rows affected, 5,462 rows found. Duration for 1 query: 0.015 sec. (+ 0.032
sec. network) */

Se realiz una consulta con JOIN dentro de las tablas film y film_id de la base
de datos sakila y se pudo notar que el tiempo utilizado para la consulta fue de un
promedio de 0.015 segundos.






16
CONSULTA SIMILAR SIN UTILIZAR EL JOIN


























SELECT title, description, release_year FROM film, film_actor where
film.film_id = film_actor.film_id;


/* 0 rows affected, 5,462 rows found. Duration for 1 query: 0.016 sec. (+ 0.031
sec. network) */


/* 0 rows affected, 5,462 rows found. Duration for 1 query: 0.000 sec. (+ 0.047
sec. network) */

Se realiz una consulta sin el uso de JOIN utilizando las tablas film y film_id
de la base de datos sakila y se pudo notar que el tiempo utilizado para la consulta
fue de unos 0.016 segundos.
Comparando las dos consultas se puede observar que la consulta utilizando el
JOIN es ms rpida que la consulta sin uso del JOIN, ya que la primera utiliz 0.015
segundos y el segundo 0.016 segundos de tiempo de consulta.






17
5. EJEMPLIFICA 2 FORMAS ADICIONALES PARA MEJORAR EL
RENDIMIENTO EN UNA BASE DE DATOS O LA OPTIMIZACIN DE
CONSULTAS.

PRIMER EJEMPLO DE LA OPTIMIZACIN DE LAS CONSULTAS.













MEJORAR LAS CONSULTAS A LA BASE DE DATOS
Tenga siempre presente las consultas tipo que se van a realizar sobre su base
de datos, durante el proceso de diseo. Eso le permitir optimizar al mximo su
estructura para obtener los mejores resultados. Cuando se realiza una consulta
SELECT, hay que evitar en lo posible el uso del comodn *, e indicar slo los campos
imprescindibles que se necesitan. Eso reducir el tamao de la consulta.





18

EVITA SELECT *
Cuanta ms informacin se lee de las tablas, ms lenta se ejecutar la peticin
SQL. Aumenta el tiempo que toma para las operaciones en disco. Adems cuando el
servidor de bases de datos est separado del servidor web, tendrs mayores retrasos
de red debido a que la informacin tiene que ser transferida entre ambos servidores.
Es un buen hbito especificar siempre las columnas que necesitas cuando ests
haciendo un SELECT.

SEGUNDO EJEMPLO DE LA OPTIMIZACIN DE LAS CONSULTAS.
Insertar filas mltiples:
Es recomendable ejecutar un insert multiple a varios inserts distintos. La sintaxis es:
INSERT INTO table (col1, col2) VALUES ('value1', 1), ('value2', 2), ('value3', 3).

















19
RESULTADOS:
Despus de la aplicacin de cada una de las sentencias en la base de datos
sakila podemos mencionar que cada una de las actividades se llevaron
correctamente es decir en primer lugar se investig en pginas oficiales de MySQL de
acuerdo a cada punto que corresponde se analiz de una manera consistente, para
despus llevarlo a la practica en la base de datos, ya que si no investigamos no es
posible tener xito en la aplicacin.
Como podemos mencionar en el primer ejemplo que corresponda a los
ndices pudimos observar que se llev acabo la eleccin de una tabla de la cual se
verifico si contena ndices y si tena se eliminaba en la copia para hacer una consulta
sin ndices y otra con ndices con el afn de verificar los tiempos y as poder analizar
los tiempo y en realidad darnos cuenta que al utilizar los ndices las consultas son
ms rpidas ya que como vimos se realiz en un tiempo de 0.0001, cuando en
realidad sin ndices lo hizo en 0.0006 esto quiere decir que es recomendable el uso
de los dichos.
En cuanto a los motores sabemos que en MySQL se manejan diversos motores
como MyISAM, InnoDB, MEMORY (HEAP), BDB (BerkeleyDB), en la cual en este
ejercicio aplicamos las dos primeras lo que fue es que se encontr una tabla
denominada film que contena el motor InnoDB lo que se realizo es que se cambi de
manera grfica con el ayudante grafico Heidi y se pas a MyISAM para hacer las
pruebas necesarias, y como sabemos se realiz las pruebas y nos dimos cuenta que el
motor MyISAM es ms rpido que la InnoDB ya que la MyISAM cada tabla se
almacena en disco en tres ficheros lo que hace que las consultas sean ms rpidas.
En cuanto al tercer ejercicio se logr con xito ya que se aplic lo que son
procedimientos almacenados ya que como sabemos estos son como apartados que
los administradores crean para hacer ms agiles las cosas y se quedan guardados
para prximas consultas y si nosotros queremos hacer de nuevo esa misma consulta
en diferente referencia solo se le llama desde la lnea que se est creando y se pone
en funcionamiento, ya que agiliza el tiempo en que se realizan las consultas.




20
En la parte de los JOIN como sabemos es de mucha ayuda ya que como nos
menciona las pginas visitadas estos son procesos en donde se utiliza para
relacionar varias tablas, y realiza las consultas de una manera rpida ya que si se
cuenta con varias tablas al hacer esto los datos repetidos se omiten y as facilitan la
bsqueda de los resultados en la aplicacin en la base de datos sakila esta sentencia
se llev acabo primero con una instruccin normal y que dio un tiempo de 0.016
segundo y cuando se aplic la sentencia JOIN se obtuvo en un tiempo de 0.015 pero
cabe resaltar que esto depende de las maquinas que estemos utilizando y las
caractersticas que tienen.
En el ltimo ejercicio se trat aspectos de optimizacin y el reforzamiento de
cada una de las tcnicas que utilizamos para optimizar los recursos con los que
cuenta el funcionamiento y sobre todo el tiempo de reaccin de cada una de las
sentencias ya que como sabemos los usuario finales son personas que en ocasiones
son impacientes y que no les gusta esperar tanto tiempo para ver su resultado es por
eso que se aplican estas tcnicas para el mejoramiento.
Es importante mencionar que la investigacin sobre estos temas es de mucha
importancia ya que nos ayuda a ser unas personas ms investigadoras para poder
resolver nuestros problemas que se nos presente en la vida real, pero es importante
seleccionar la informacin que se obtiene por que como sabemos siempre existe una
basura y sobre todo lo ms importante sobre estos temas es la practica ya que si no
practicamos no podemos aprender a aplicar los conceptos que leemos.








21
CONCLUSIN:
En conclusin podemos mencionar que esta prctica fue de mucha ayuda a
nosotros ya que aplicamos los conocimientos adquiridos en la materia anterior a
taller y fundamentos de base de datos para sacar con xito cada una de las
actividades pero sin olvidar que la investigacin tambin juega un papel muy
importante en la actualidad ya que si no investigamos y no leemos nada saldr por si
sola.
En realidad se cumplieron los objetivos encomendados ya que en las
diferentes actividades se presentaron problemas pero fuimos capaces como equipo
de trabajo resolverlos para presentar un buen trabajo final que corresponde a la
ltima activada de la unidad en donde se concentran los aprendizajes adquiridas en
las horas de clases.
Y no debemos perder de vista que este tipo de actividades son las que nos
ayudan da a da a resolver cada una de nuestras dudas que tengamos ya que si no lo
encontramos en los libros siempre existirn personas especializadas que nos guan
en el aprendizaje de dichos contenidos que son los que van a regirnos en una vida
futura laboral, ya que en el mundo empresarial es donde se aplican a diario y es
importante que estemos sumamente capacitados para poder resolver cada uno de
esos problemas de manera eficiente y eficaz ya que eso habla de nuestra imagen
como profesionista y de haya se visualiza el desempeo y las actitudes que tenemos
como persona.

Anda mungkin juga menyukai