Beruflich Dokumente
Kultur Dokumente
Datos Relacionales
Resumen
En este artculo se muestra mediante un anlisis emprico la relacin entre los ndices
aplicados sobre tablas de bases de datos relacionales y su efecto en el tiempo de ejecucin de
las Consultas. Para dicho fin primero se generaron tablas con datos aleatorios, luego se
efectuaron consultas sobre las tablas tomando el tiempo del reloj de la computadora antes de
iniciar cada consulta y al finalizar, esto para diferentes tamaos de datos y para distintos
ndices (Btree, Hash). Finalmente se calcula la diferencia entre los tiempos de inicio y
tiempos de fin para cada tamao de datos. Los resultados muestran que la utilizacin de
ndices es determinante en la reduccin del tiempo de ejecucin de la consulta. Tambin en
base a los experimentos de empleo de los ndices Hash y BTree, se observa que los tiempos
de las operaciones disminuyen al usar ndices Hash ligeramente mas que con el ndice Btree.
1. Introduccin.
Pg. 1
nmero-cuenta saldo
04-201-417453 3500
04-201-417454 100
04-201-418468 7300
Figura 1. La relacin Cuenta.
Fuente: Elaboracin propia.
1
Software libre (en ingls free software) es la denominacin del software que respeta la libertad de
todos los usuarios que adquirieron el producto y, por tanto, una vez obtenido el mismo, puede ser
usado, copiado, estudiado, modificado, y redistribuido libremente de varias formas. Segn su principal
impulsora, la organizacin Free Software Foundation, el software libre se refiere a la seguridad de los
usuarios para ejecutar, copiar, distribuir y estudiar el software, e incluso modificarlo y distribuirlo
modificado.
Pg. 2
relacional que permiten efectuar consultas con el fin de recuperar, de forma sencilla,
informacin de bases de datos, as como hacer cambios en ellas. Por ejemplo si se
requiere requiere efectuar la consulta en el cual se muestra los nmero-cuenta cuyo
saldo son mayores o iguales a 1000, se escribe lo siguiente:
SELECT nmero-cuenta, saldo
FROM Cuenta
WHERE saldo >= 1000
Fuente: Elaboracin propia.
El resultado de dicha consulta esta conformado por las tuplas (filas) que
satisfacen la condicin de la consulta, es decir, las cuentas con saldo mayor o igual a
100:
04-201-417453 3500
04-201-418468 8300
Fuente: Elaboracin propia.
Debido a que las consultas (sobre base de datos) pueden involucrar mucho
tiempo es que se requiere mtodos de acceso rpido, para ello se utilizan estructuras
de datos y algoritmos para mejorar el acceso a dichos datos. Los ndices, se usan
para reducir el tiempo de recuperacin de registros de datos en respuestas a ciertas
condiciones de bsqueda (por ejemplo en la ltima consulta en SQL si hay gran
cantidad de clientes). La estructura de ndices normalmente proporcionan caminos de
acceso secundario, el cual genera caminos alternativos para acceder a los registros
sin que afecte la posicin fsica de los registros en el fichero. Permite un acceso
eficiente a los registros basndose en campos de indexacin que se utilizan para
construir el ndice.
2. Resultados y discusin.
Pg. 4
Figura 1. Interfaz del programa de generacin de datos.
Los archivos binarios contienen informacin aleatoria para ser importados a la base
de datos.
Pg. 5
Figura 2. Reporte de generacin de datos.
Inserciones.
Para medir los tiempos se utilizo la medida mas exacta (que los segudos) los
ticks que dispone las libreras del gcc Linux (repitiendo segn el enunciado del
problema 20 veces cada consulta).
Consulta.
A igual que las inserciones se calculan los tiempos al inicio y al final de cada
consulta, estas se registran y se elaboran los respectivos cuadros comparativos y sus
grficos relacionados.
Pg. 6
RESULTADOS.
Pg. 8
Figura 8. Costo de consulta con ndice Btree.
Pg. 9
Figura 10. Costo de consulta principal con ndice Btree.
En la figura 10. Se observa que el costo de consultas de registros en una tabla con
ndice Btree, incrementa segn el tamao de datos, es decir, conforme al nmero de
registros de la tabla.
Pg. 10
Figura 12. Costo de consulta principal con ndices.
4. Conclusiones.
Pg. 11
Con registros en cantidades pequeas el costo de insercin es
aproximadamente igual con ndice o sin ndice.
A medida que se incrementa el nmero de registros el costo de la insercin en
tablas con ndice es mas significativo.
Explicacin: El costo de insercin sin ndice solo implica la adicin del
elemento en la tabla, en cambio si se tiene un ndice adems de actualizar la
tabla, tambin se debe actualizar el ndice, que puede tener costo mayor,
segn el tipo de ndice. Por ejemplo las actualizaciones en un rbol B pueden
requerir el movimiento de varios nodos del mismo.
Al comparar los costos de consulta considerando las muestras se puede
concluir que la utilizacin de ndices es determinante en la reduccin del
tiempo de ejecucin de la consulta.
Explicacin: Esto se explica el objetivo de los ndices, que se han creado para
permitir un acceso mas rpido en grandes cantidades de datos, segn el tipo de ndice
el nmero de lecturas es menor a que si no tuviera ndices.
Se seleccion la consulta mas significativa y que tenan mayor costo de
consulta con ndice, con la finalidad de obtener mayores medidas..
Comparando los resultados obtenidos de los experimentos utilizando ndices
Hash y BTree, se observa que los tiempos de las operaciones disminuyen al
usar ndices Hash mas que con Btree.
En todos los resultados obtenidos, el costo de insertar o consultar en
relaciones con ndice o sin ndice, con poca cantidad de registros (500 y
1000) es similar en ambos mtodos, no obstante a mayor cantidad de
registros, el uso de ndices produce una mejora en el costo promedio de las
operaciones.
BIBLIOGRAFA.
Aho, Alfred V.; Hopcroft, John E.; Ullman, Jeffrey D. The Design and Analysis of
Computer Algorithms. Addison - Wesley, 1974.
Atzeni Paolo, Ceri Stefano, Paraboschi Stefano y Torlone Riccardo. (1999). Database
Systems concepts, languages & architectures. McGraw-Hill Publishing Company.
Pg. 12
Knuth, Donald Ervin. The Art of Computer Programing. Vol. 2. Seminumerical
Algorithms Segunda Edicin. Addison Wesley Publishing Company 1973.
Knuth, Donald Ervin. (1973). The Art of Computer Programing. Vol. 3. Sorting
and Searching. Segunda Edicin. Addison Wesley Publishing Company.
Naugler, David (May 2007). C# 2.0 for C++ and Java programmer: conference
workshop. Journal of Computing Sciences in Colleges 22 (5). "Although C# has been
strongly influenced by Java it has also been strongly influenced by C++ and is best
viewed as a descendant of both C++ and Java."
Schildt, Herbert (1 August 1998). C++ The Complete Reference (Third ed.).
Osborne McGraw-Hill.
Pg. 13