Fragmentación en MySQLpractica2
-
Upload
pluisandre706 -
Category
Documents
-
view
233 -
download
0
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.