Fragmentación en MySQLpractica2

download Fragmentación en MySQLpractica2

of 4

Transcript of Fragmentación en MySQLpractica2

  • 7/25/2019 Fragmentacin en MySQLpractica2

    1/4

    PRACTICA NO 2 Fragmentacin en MySQL BASE DE DATOS DISTRIBUIDAS

    Al utilizar comandos de fragmentado a nivel de tablas, mysql utiliza una clave de

    particin y un algoritmo de particionado para determinar la divisin de los datosentre los fragmentos. Los algoritmos de fragmentacin que tenemos son:

    RANG: !i la clave de fragmentacin est" dentro de un rango de valores.L#!$: l fragmento es seleccionado de acuerdo a una lista de valores enteros.%A!%: l fragmento se elige de acuerdo a una funcin de &as&.'(: )n algoritmo interno es utilizado por mysql para elegir como ser"ndistribuidos los datos entre los fragmentos.

    *+articionado compuesto: Las particiones de RANG y L#!$ pueden sersubfragmentadas usando el fragmentado %A!%, y '(.

    Fragmentado RANGE(Por rango de valores)

    Suponiendo que tenemos la siguiente tabla definida:

    CREATE TABLE empleados (Id_empleado INT NOT NULL,nombre VARCHAR(30) NOT NULL,apelldos VARCHAR(30) NOT NULL,!e"#a_n"o $ATE NOT NULL $E%AULT &'0*0*0&,

    !e"#a_+ermno $ATE $E%AULT NULL,salaro $ECIAL (-,') NOT NULL,"od.o_de_+raba/o INT NOT NULL,d_alma"enamen+o INT NOT NULL)

    !e necesitan almacenar los datos de -- empleados en tres tablas de a -- cadauna, procedemos con la siguiente instruccin:

    ALTER TABLE empleados1ARTITION B2 RANE (d_alma"enamen+o) (

    1ARTITION p0 VALUE4 LE44 THAN (0),1ARTITION p VALUE4 LE44 THAN ('0),1ARTITION p' VALUE4 LE44 THAN (30),1ARTITION p!nal VALUE4 LE44 THAN A5VALUE)

    sta instruccin utiliza el atributo id/almacenamiento como clave de fragmentado0partition 1ey2, y las particiones son p-, p, p3, y pfinal, en este caso las tresparticiones corresponden a los registros en el rango desde - &asta --, pero la

  • 7/25/2019 Fragmentacin en MySQLpractica2

    2/4

    particin final es en el caso de que quisi4ramos insertar un registro con un valormayor a --, lo cual nos generar5a un error como el siguiente:

    ERROR '6 (H2000)7 Table #as no par++on !or 8al9e 30:

    !i desde la definicin de la tabla queremos especificar un esquema defragmentado, usar5amos la siguiente instruccin:

    CREATE TABLE empleados (Id_empleado INT NOT NULL,nombre VARCHAR(30) NOT NULL,apelldos VARCHAR(30) NOT NULL,!e"#a_n"o $ATE NOT NULL $E%AULT &'0*0*0&,!e"#a_+ermno $ATE $E%AULT NULL,salaro $ECIAL (-,') NOT NULL,"od.o_de_+raba/o INT NOT NULL,

    d_alma"enamen+o INT NOT NULL)1ARTITION B2 RANE (d_alma"enamen+o) (1ARTITION p0 VALUE4 LE44 THAN (0),1ARTITION p VALUE4 LE44 THAN ('0),1ARTITION p' VALUE4 LE44 THAN (30),1ARTITION p!nal VALUE4 LE44 THAN A5VALUE)

    Fragmentado LIST (Por lista definida)

    !uponiendo que a&ora tenemos la misma tabla, pero lo que queremos es distribuira los empleados de acuerdo a una lista de valores definida, los valores sedistribuiran de acuerdo a los valores definidos en cada lista de cada particin.

    CREATE TABLE empleados (Id_empleado INT NOT NULL,nombre VARCHAR(30) NOT NULL,apelldos VARCHAR(30) NOT NULL,!e"#a_n"o $ATE NOT NULL $E%AULT &'000*0*0&,!e"#a_+ermno $ATE $E%AULT NULL,salaro $ECIAL (-,') NOT NULL,"od.o_de_+raba/o INT NOT NULL,

    d_alma"enamen+o INT NOT NULL)1ARTITION B2 LI4T (d_alma"enamen+o) (1ARTITION 49res+e VALUE4 IN(,',3,;,,6,

  • 7/25/2019 Fragmentacin en MySQLpractica2

    3/4

    ('=,30,33,3-,;0,;,0,6,6;,6,

  • 7/25/2019 Fragmentacin en MySQLpractica2

    4/4

    A&ora la fragmentacin vertical o tambi4n conocida como ivisin de ;ilas 0 ro! propiamente sino por el administrador o programador.

    La implementacin de este tipo de fragmentacin es guardando el mismo

    identificador del registro en las dos tablas y los atributos en su tablacorrespondiente, o partiendo de un con?unto de datos est"ticos, donde una tablaya definida y con sus registros se divide mediante alg@n procedimientoalmacenados.