ESCUELA POLITÉCNICA NACIONAL
FACULTAD DE INGENIERÍA DE SISTEMAS
INGENIERÍA EN SOFTWARE
Nombre: Angel Pastaz
Laboratorio de: Base de Datos Distribuidas
Práctica No.: 8
Tema: Fragmentación vertical
Objetivos:
• Realizar fragmentación vertical
Marco teórico:
La fragmentación vertical es una técnica utilizada en bases de datos distribuidas para mejorar el
rendimiento y la eficiencia del acceso a los datos. Consiste en dividir una tabla relacional en
subconjuntos de columnas (atributos), de modo que cada fragmento contenga únicamente las
columnas más frecuentemente utilizadas juntas por ciertas aplicaciones o sitios. Para preservar
la integridad de los datos, normalmente cada fragmento incluye también la clave primaria de la
tabla original.
Esta técnica es especialmente útil en sistemas distribuidos, donde diferentes sitios acceden a
diferentes partes de la base de datos. La fragmentación vertical permite que los sitios almacenen
solo los datos que realmente necesitan, reduciendo el volumen de transferencia de datos y el
tiempo de respuesta.
Para garantizar que no se pierda información, los fragmentos verticales deben cumplir con las
siguientes propiedades:
• Reconstructibilidad: Los fragmentos pueden unirse (normalmente con una operación de
JOIN sobre la clave primaria) para reconstruir la tabla original.
• Completa descomposición: Todos los atributos originales deben estar representados en
al menos un fragmento.
• No redundancia: Los atributos no clave deben aparecer en un solo fragmento.
Desarrollo de la práctica:
1. Ingresar al sqlplus con usuario local.
2. Realizar la fragmentación vertical del ejercicio propuesto.
3. Insertar información en la tablas fragmentadas.
4. Ingresar a la herramienta Sql Developer
4.1. Crear conexión con usuario local
4.2. Consultar la información de las tablas fragmentadas, y los constraints creados.
EJERCICIO PROPUESTO:
ESCUELA POLITÉCNICA NACIONAL
FACULTAD DE INGENIERÍA DE SISTEMAS
INGENIERÍA EN SOFTWARE
En la primera imagen se observa que primero ingresamos que ingresamos con nuestro
usuario y creamos la tabla notas.
Imagen 1
//nodo uno
Create table notas
(jno varchar2(2),
nota number(2));
Alter table notas add constraint notas_pk
primary key(jno);
//nodo dos
Create table escuelas
(jno varchar2(2),
nombre varchar2(30),
escuela varchar2(10));
Alter table escuelas add constraint escuelas_pk
Primary key(jno);
ESCUELA POLITÉCNICA NACIONAL
FACULTAD DE INGENIERÍA DE SISTEMAS
INGENIERÍA EN SOFTWARE
Insert into escuelas values ('J1','LUIS YANEZ','CIME');
Insert into escuelas values ('J2','ERIKA QUIROZ','CIME');
Insert into escuelas values ('J3','DANIEL MORILLO','EISIC');
Insert into escuelas values ('J4','MARI JOSE MENDEZ','EISIC');
Insert into escuelas values ('J5','ANONIS PABON','EISIC');
Como se observa en la imagen 2 ingresamos los datos a la tabla notas.
Imagen 2
Como se observa en la imagen 3 nos conectamos con Netmanager.
Imagen 3
ESCUELA POLITÉCNICA NACIONAL
FACULTAD DE INGENIERÍA DE SISTEMAS
INGENIERÍA EN SOFTWARE
Como se observa en la imagen 4 se estableció la conexión de manera correcta con apastaz.
Imagen 4
Create table J as
Select [Link],[Link],[Link],[Link]
From notas a,escuelas@angelbd b
Where [Link]=[Link];
Ahora me conecto con el database link que cree para angelbd como se observa en la
imagen 5.
Imagen 5
Alter table j add constraint j_pk
Primary key(jno);
select * from notas;
select * from escuelas;
para consultar constraints
select * from user_constraints;
ESCUELA POLITÉCNICA NACIONAL
FACULTAD DE INGENIERÍA DE SISTEMAS
INGENIERÍA EN SOFTWARE
Como se observa en la imagen 6 hacemos una selección desde la tabla de notas.
Imagen 6
Imagen 7
Imagen 8
Y para hacer una consulta en la tabla creada desde la computadora de Angel hacemos una
consulta select from escuelas@angelbd a través del data baselink.
ESCUELA POLITÉCNICA NACIONAL
FACULTAD DE INGENIERÍA DE SISTEMAS
INGENIERÍA EN SOFTWARE
Análisis de resultados:
Durante la ejecución de la práctica se logró realizar correctamente la conexión a SQL*Plus con
un usuario local, permitiendo interactuar directamente con la base de datos. La fragmentación
vertical del ejercicio propuesto se ejecutó exitosamente, dividiendo las columnas de una tabla
original en dos o más tablas relacionadas por una clave primaria común. Posteriormente, se
insertaron datos en las tablas fragmentadas respetando las restricciones de integridad y
manteniendo la coherencia de los datos entre los fragmentos. Al ingresar a la herramienta SQL
Developer y establecer la conexión con el mismo usuario local, se pudo verificar visualmente la
estructura de las tablas fragmentadas, incluyendo los constraints (como claves primarias y
foráneas) definidos durante la fragmentación. Las consultas realizadas mostraron que los datos
se distribuyeron adecuadamente en las nuevas estructuras, y que las relaciones entre las tablas
fragmentadas se mantienen gracias a los constraints implementados. Esto evidencia que la
fragmentación vertical fue aplicada correctamente, facilitando una mejor organización de los
datos y potencialmente mejorando el rendimiento de ciertas consultas al reducir la cantidad de
columnas involucradas.
Conclusiones
• La fragmentación vertical mejora el rendimiento en sistemas distribuidos al minimizar
el tráfico de datos innecesarios entre sitios.
• Facilita la localización de datos y permite una mayor independencia en el
procesamiento de transacciones distribuidas.
• Puede introducir complejidad adicional en el mantenimiento de la base de datos y la
ejecución de consultas que requieran unir múltiples fragmentos.
Recomendaciones
• Aplicar análisis de acceso a los datos antes de diseñar la fragmentación vertical para
asegurar que los fragmentos reflejen los patrones de uso reales.
• Mantener siempre las claves primarias en cada fragmento para asegurar la
reconstrucción de la tabla original.
• Usar herramientas de monitoreo para evaluar continuamente el rendimiento y hacer
ajustes si cambian los patrones de uso.
• Combinarlas con otras técnicas (como fragmentación horizontal o replicación) para
optimizar aún más el rendimiento y la disponibilidad.
Bibliografía:
1. M. T. Özsu and P. Valduriez, Principles of Distributed Database Systems, 4th ed.
Cham, Switzerland: Springer, 2020.
2. A. Silberschatz, H. F. Korth, and S. Sudarshan, Database System Concepts, 7th ed. New
York, NY, USA: McGraw-Hill, 2019.
3. S. Ceri and G. Pelagatti, Distributed Databases: Principles and Systems, New York,
NY, USA: McGraw-Hill, 1984.
4. A. A. Helal, A. Heddaya, and B. Bhargava, "Replication techniques in distributed
systems," Computer, vol. 25, no. 12, pp. 45–54, Dec. 1992, doi: 10.1109/2.179909.
5. D. Barbara and H. Garcia-Molina, "The management of replicated data," ACM
Computing Surveys, vol. 22, no. 4, pp. 515–555, Dec. 1990, doi: 10.1145/98163.98167.