Anda di halaman 1dari 9

U IVERSIDAD DEL ZULIA LICE CIATURA E COMPUTACI CTEDRA TPICOS AVA ZADOS DE BASES DE DATOS PRCTICA SOBRE GESTI

DE CO SULTAS

TABLA DE CONTENIDO
TABLA DE CONTENIDO _________________________________________________ INTRODUCCIN ________________________________________________________ PREPARACIN DEL AMBIENTE DE TRABAJO______________________________ GENERALIDADES_______________________________________________________ CONSULTAS A SER UTILIZADAS EN ALGUNAS PRCTICAS ________________ PRCTICA 1. NDICE DE SELECTIVIDAD __________________________________ PRCTICA 2. COMPARACIN ENTRE IN OR UNION UNION ALL_________ PRCTICA 3. CONSULTAS PARTICULARES. _______________________________ PRCTICA 4. CLCULO EMPRICO DEL UMBRAL __________________________ 1 2 2 3 5 6 7 8 9

INTRODUCCIN
Se presenta un modelo de bases de datos de una tienda de venta de productos. Seguidamente se muestra las generalidades de dicha base de datos.
Objeto Categora Cliente Factura Inventario Parte Rengln Sucursal Vendedor Cantidad de registros 34 4.267 115.328 3 x 35.186 = 105.558 35.186 236.780 3 56

PREPARACIN DEL AMBIENTE DE TRABAJO


a. Corra el pgAdmin III b. Cree una base de datos llama topicos. c. Una vez creada la base de datos haga clic con el botn derecho del ratn en el cono de la misma. d. Seleccione la opcin Restore. e. Introduzca la ubicacin del archivo y el archivo entregado por el profesor. f. Presione el botn de aceptar. g. Espere a que el proceso finalice. h. Para ejecutar consultas en dicha base de datos presione el botn SQL. i. Una vez introducida la consulta, presione F5. j. Para visualizar el tipo de acceso de la consulta, presione MAYS + F7.

GENERALIDADES
Por defecto, PSQL no indexa aquellos campos que son claves forneas. Esto implica que cualquier consulta que involucre un campo forneo se realizar de forma secuencial. Por este motivo se debe explcitamente los ndices que involucran claves forneas. Para ver los ndices que existen el la base de datos utilcese el siguiente comando: SELECT tablename, indexname, indexdef FROM pg_indexes WHERE tablename NOT LIKE 'pg%' ORDER by 1,2
Tabla categoria cliente factura factura factura factura inventario inventario inventario parte parte renglon renglon renglon sucursal vendedor ndice CREATE UNIQUE INDEX categoria_pkey ON categoria USI G btree (categoria_id) CREATE UNIQUE INDEX cliente_pkey ON cliente (cliente_id) CREATE UNIQUE INDEX factura_pkey ON factura (factura_id) CREATE INDEX idx_factura_by_cliente_id ON factura (cliente_id) CREATE INDEX idx_factura_by_sucursal_id ON factura (sucursal_id) CREATE INDEX idx_factura_by_vendedor_id ON factura (vendedor_id) CREATE INDEX idx_inventario_by_parte_id ON inventario (parte_id) CREATE INDEX idx_inventario_by_sucursal_id ON inventario (sucursal_id) CREATE UNIQUE INDEX inventario_pkey ON inventario (sucursal_id, parte_id) CREATE INDEX idx_parte_by_categoria_id ON parte (categoria_id) CREATE UNIQUE INDEX parte_pkey ON parte (parte_id) CREATE INDEX idx_renglon_by_factura_id ON renglon (factura_id) CREATE INDEX idx_renglon_by_parte_id ON renglon (parte_id) CREATE UNIQUE INDEX renglon_pkey ON renglon (renglon_id) CREATE UNIQUE INDEX sucursal_pkey ON sucursal (sucursal_id) CREATE UNIQUE INDEX vendedor_pkey ON vendedor (vendedor_id)

Elementos a considerar: Las claves primarias son definidas por medio de la clusula CREATE UNIQUE INDEX. Los ndices secundarios (en este caso los pertenecientes a claves forneas) son construidos por medio de la clusula CREATE INDEX. Por defecto PSQL utiliza la clusula USING BTREE para la creacin de los ndices cuando esta clusula no se utiliza explcitamente. 3

Los ndices secundarios (slo para efectos de esta prctica) tienen el formato idx_TTTTT_by_CCCCC. En este caso TTTTT y CCCCC indican respectivamente la tabla que se est indexando y el campo por medio del cual sta se indexa.

CONSULTAS A SER UTILIZADAS EN ALGUNAS PRCTICAS


# 1 Consulta select parte_id, count (*) ,100.0*count (*)/236780.0 from renglon group by parte_id order by 2 desc Indica la cantidad de partes que hay en los renglones y su porcentaje con respecto al total. Se muestra ordenado en orden decreciente segn la cantidad de repeticiones. update renglon set parte_id = 1699 where factura_id <= XXXXX and parte_id <> 1699 Se utilizar para actualizar algunos renglones y determinar empricamente el porcentaje mximo de datos que el gestor realiza una bsqueda indexada antes de realizar una bsqueda secuencial. O UTILICE ESTA CO SULTA HASTA QUE LE SEA I DICADO

PRCTICA 1. NDICE DE SELECTIVIDAD


1. Calcule el ndice de selectividad general para la tabla factura por medio de los campos a) mero de factura b) Cdigo de cliente c) Vendedor 2. Calcule el ndice de selectividad particular para la tabla rengln para los campos a) mero de parte b) mero de factura 3. Analice cada ndice de selectividad segn la teora vista en clases.

PRCTICA 2. COMPARACIN ENTRE IN OR UNION UNION ALL


De la tabla de renglones, extraer aquellos registros cuya factura sea igual a 90004, 100106 70513 o que su nmero de rengln sea igual a 1777 9999. Realizar las consultas con IN, OR, UNION, UNION ALL Compare los tiempos de cada consulta y constate o refute lo indicado por la teora.

PRCTICA 3. CONSULTAS PARTICULARES.


a. Utilice la consulta #1 anote el ndice de selectividad de la pieza 1699 en la tabla rengln. b. Extraiga de la tabla rengln la cantidad de veces que se repite la pieza 1699. c. Consulte el tiempo de consulta y el tipo de acceso de la misma. (A) d. Modifique la consulta para que el filtro sea de la forma: Nmero de parte +1 = 1700. e. Consulte el tiempo de consulta y el tipo de acceso de la misma. (B) f. Compare (A) y (B) y constate si la teora es cierta.

PRCTICA 4. CLCULO EMPRICO DEL UMBRAL


a. Ubique la consulta #2 y asigne a la variable XXXXX el valor definido por el profesor. b. Ejecute la consulta #2 con la variable XXXXX actualizada. c. Ejecute la consulta #1 y anote el ndice de selectividad de la pieza 1699. Tambin anote el tiempo de ejecucin, el tipo de acceso que realiz la consulta y el valor de la variable XXXXX d. Si el tipo de consulta es indexada, sume 2.000 a la variable XXXXX y vaya al paso b) e. Analice los datos de la tabla realizada y explique el significado de la misma.

Valor 41.000 43.000 45.000 47.000 49.000 51.000 53.000 55.000 57.000

ndice selectividad

Tiempo

Tipo acceso

Si se equivoca o no anota un paso intermedio, puede recomenzar ejecutando las siguientes consultas.

truncate table renglon; insert into renglon select * from a_renglon

Anda mungkin juga menyukai