ESTRATEGIAS DE

FRAGMENTACION
CARLOS HUILA-FRANCY MUELAS

ESTRATEGIAS DE FRAGMENTACION

CARLOS OVEIMAR HUILA CAMPO
FRANCY IDALY MUELAS MUELAS

TRABAJO PRESENTADO EN EL AREA DE
LABORATORIO DE BASES DE DATOS II
AL ING.WILSON ORTEGA

UNIVERSIDAD DEL CAUCA
FACULTAD DE INGENIERIA ELECTRONICA Y TELECOMUNICACIONES
PROGRAMA INGENIERIA DE SISTEMAS
BASES DE DATOS II
POPAYAN

.  Creación de tabla persona_f utilizando estrategia de fragmentación (partición por columnas) para mejorar tiempos de ejecución. DROP TABLE IF EXISTS persona. CREATE TABLE persona ( id_persona INT(12) AUTO_INCREMENT NOT NULL. PROCESO SEGUIDO:  Creación de la base de datos fragmentación en MySql. USE BD4.  Creación de un procedimiento que llene las tablas aleatoriamente con 2000000 registros. ESTRATEGIAS DE FRAGMENTACION CARLOS HUILA-FRANCY MUELAS 2017 ESTRATEGIAS DE FRAGMENTACION Hipótesis: La implementación de una Base de Datos Distribuidas mejora el rendimiento y la accesibilidad de los datos. El idciudad es un entero entre 1 y 4.  Creación de tabla persona. idciudad). debido a una disminución de tráfico de la red y a un trabajo colaborativo de varios fragmentos como si fuera un solo.  Creacion de consultas y medicion de tiempos de respuesta. SCRIP: CREATE DATABASE BD4. edad INT(10) NOT NULL. edad. # 1 Cree una tabla llamada persona (id.  Comparacion de tiempos y conclusiones.

inserte en la tabla al menos 2000000 registros. # 2 Mediante un procedimiento almacenado. #3 Ejecute las siguientes consultas sobre la tabla tomando los tiempos de respuesta para cada una a) Consultar todas las personas SELECT * FROM persona. START TRANSACTION. # b) Consultar todas las personas de la ciudad 1 SELECT * FROM persona WHERE id_ciudad=1. id_ciudad) values (CEIL(RAND()*100). END WHILE. SET inicio = 1. # Invocación al procedimiento CALL INSERTAR_PERSONA(2000000). #c) Consultar todas las personas de las ciudades 2 o 4 SELECT * FROM persona . COMMIT. SET inicio = inicio + 1.CEIL(RAND()*4)). CONSTRAINT pk_persona PRIMARY KEY (id_persona) ). END $$ DELIMITER . WHILE inicio <= fin DO INSERT INTO persona (edad. DELIMITER $$ DROP PROCEDURE IF EXISTS INSERTAR_PERSONA $$ CREATE PROCEDURE INSERTAR_PERSONA (IN fin INT) BEGIN DECLARE inicio INT . ESTRATEGIAS DE FRAGMENTACION CARLOS HUILA-FRANCY MUELAS id_ciudad INT (2) NOT NULL.

. ESTRATEGIAS DE FRAGMENTACION CARLOS HUILA-FRANCY MUELAS WHERE id_ciudad=2 OR id_ciudad=4. PARTITION id_ciudad4 VALUES IN(4) ). # d) Consultar el promedio de edades de todas las personas SELECT (SUM(edad))/500000 as PROMEDIO_EDADES FROM PERSONA. edad INT NULL. copie los datos de la tabla persona en la tabla persona_f DELIMITER $$ DROP PROCEDURE IF EXISTS copia_tbl_persona$$ CREATE PROCEDURE copia_tbl_persona () BEGIN START TRANSACTION. CREATE TABLE persona_f ( id_persona INT NOT NULL. #4 Cree una nueva tabla llamada persona_f con las mismas columnas de la tabla persona DROP TABLE IF EXISTS persona_f. PARTITION id_ciudad2 VALUES IN(2). PARTITION id_ciudad3 VALUES IN(3). #e) Consultar el promedio de edades de todas las personas de la ciudad 2 SELECT (SUM(edad))/COUNT(id_ciudad) as PROMEDIO_EDADES FROM PERSONA WHERE ID_CIUDAD=2. id_ciudad INT NULL ) PARTITION BY LIST COLUMNS(id_ciudad) ( PARTITION id_ciudad1 VALUES IN(1). #5 Mediante un procedimiento almacenado.

id_ciudad FROM persona. COMMIT. # b) Consultar todas las personas de la ciudad 1 SELECT * FROM persona_f WHERE id_ciudad=1.id_ciudad) SELECT id_persona. #c) Consultar todas las personas de las ciudades 2 o 4 SELECT * FROM persona_f WHERE id_ciudad=2 OR id_ciudad=4. # d) Consultar el promedio de edades de todas las personas SELECT (SUM(edad))/500000 as PROMEDIO_EDADES FROM PERSONA_F. #6 Ejecute las mismas consultas del punto 3 en la tabla persona_f. END$$ DELIMITER . ESTRATEGIAS DE FRAGMENTACION CARLOS HUILA-FRANCY MUELAS INSERT INTO persona_f(id_persona.edad. CALL copia_tbl_persona().edad. . #e) Consultar el promedio de edades de todas las personas de la ciudad 2 SELECT (SUM(edad))/COUNT(id_ciudad) as PROMEDIO_EDADES FROM PERSONA_F WHERE ID_CIUDAD=2. # a) Consultar todas las personas SELECT * FROM persona_f.

016 0. ESTRATEGIAS DE FRAGMENTACION CARLOS HUILA-FRANCY MUELAS TIEMPOS DE EJECUCION: CONSULTA 1: Consultar todas las personas.000 0.031 0.016 Promedio: 0.438 0. TIEMPOS DE RESPUESTA EN SEC Consulta Tabla Persona Consulta Tabla Persona_f 0.047 2.110 0.094 0.015 0.062 0.750 0.016 0.092 0.015 0.031 0.016 0.016 0.703 0. TIEMPOS DE RESPUESTA EN SEC Consulta Tabla Persona Consulta Tabla Persona_f 2.0622 Promedio:0.015 0.078 2.063 0.016 .093 Promedio: 3237 Promedio:0.094 4.000 0.016 0.016 0.038 4.07 CONSULTA 2: Consultar todas las personas de la ciudad 1.297 0.000 0. TIEMPOS DE RESPUESTA EN SEC Consulta Tabla Persona Consulta Tabla Persona_f 0.0158 CONSULTA 3: Consultar todas las personas de las ciudades 2 o 4.

TIEMPOS DE RESPUESTA EN SEC Consulta Tabla Persona Consulta Tabla Persona_f 5. con el fin de que un usuario de .962 VERIFICACIÓN: Por el estudio realizado durante la elaboración de este trabajo de Bases de Datos Distribuidas podemos decir que la hipótesis ha sido comprobada.985 6.516 Promedio: 5.018 CONSULTA 4: Consultar el promedio de edades de todas las personas.954 16. ESTRATEGIAS DE FRAGMENTACION CARLOS HUILA-FRANCY MUELAS Promedio: 0.000 2. ya que se construyó una base de datos con dos tablas una de ellas con estrategias de fragmentación (persona_f) y la otra no (persona). TIEMPOS DE RESPUESTA EN SEC Consulta Tabla Persona Consulta Tabla Persona_f 11.453 5.518 CONSULTA 5: Consultar el promedio de edades de todas las personas de la ciudad 2.728 Promedio:6.297 2.562 5.818 2.984 19.373 Promedio:2.625 5.437 5.034 Promedio:0.859 Promedio: 16.438 6.000 2.875 18.703 6.766 7.140 16.750 2.750 6.

ESTRATEGIAS DE FRAGMENTACION CARLOS HUILA-FRANCY MUELAS cualquier sitio pueda obtener acceso a los datos por medio de consultas en el menor tiempo posible.  El tiempo de ejecución de una consulta realizada por primera vez es superior a las siguientes cuatro veces que se ejecuta la misma instrucción. debido a que desde la segunda vez que se ejecuta la consulta esta queda almacenada en la memoria cache. se puede observar que un tiempo de ejecución en la tabla normal es menor en comparación a la tabla fragmentada. CONCLUSION  Al culminar este trabajo.  A medida que se fue avanzando el desarrollo del trabajo se puede dar una visión global de las características que conlleva el diseño de una base de datos distribuida al comparar el tiempo de respuesta en las consultas hechas en la tabla persona y la tabla persona_f se evidencio un menor tiempo de ejecución en la tabla que se implementó con estrategia de fragmentación. La fragmentación fue viable debido a que los datos fueron almacenados en fragmentos y su consulta se realizó en el menor tiempo posible en comparación a la tabla normal. lo que hace que el tiempo de respuesta sea menor a la inicial.  El particionamiento es transparente para la base de datos ya que se puede implementar fácilmente.  En la consulta 3: Consultar todas las personas de las ciudades 2 o 4. pudimos constatar que. tal como si todos los datos estuvieran almacenados en el sitio propio del usuario. debido a que la tabla fragmentada tiene que recorrer dos de sus particiones para . de tal manera que la mayor parte de las operaciones son locales lo cual redujo el tráfico en la red. debido a que no requieren cambios que alteren las tablas. la implementación de bases de datos distribuidas resulta importante ya que se puede distribuir y replicar en diferentes fragmentos la información.

ESTRATEGIAS DE FRAGMENTACION CARLOS HUILA-FRANCY MUELAS generar los datos de la consulta. . mientras que en la tabla normal solo se recorre una tabla.