Está en la página 1de 61

Tipos Arquitectura de los

Sistemas de Base de Datos


Generalidades
 En los sistemas paralelos los procesadores se hallan estrechamente
acoplados y constituyen un único sistemas de base de datos.

 Los sistemas distribuidos de base de datos consisten en sitios


débilmente acoplados que no comparten ningún componente físico.
Base de Datos Homogéneas y
Heterogéneas
Generalidades
 Bases de datos homogéneas
 Todos los sitios tienen idéntico software de gestores de base de datos.
• Son conscientes de la existencia de los demás sitios y acuerdan cooperar en
el procesamiento de las solicitudes de los usuarios.

 Bases de datos distribuidas heterogéneas


 Sitios diferentes puede que utilicen esquemas diferentes y diferente
software de gestión de sistemas de bases de datos.
• Puede que unos sitios no sean conscientes de la existencia de los demás y
puede que solo proporcionen facilidades limitadas para la cooperación en el
procesamiento de las transacciones.
Almacenamiento Distribuido de Datos
 Considere una relación r que hay que almacenar en la base de
datos. Hay dos enfoques de almacenamiento:
 Replica.
• El sistema conserva replicas (copias) idénticas de la relación y guarda cada
replica en un sitio diferente.
− La alternativa a las replicas es almacenar solo una copia de la relación r.
 Fragmentación.
• El sistema divide la relación en varios fragmentos y guarda cada fragmento
en una sitio diferente.
Replicas de Datos
 Si la relación r se replica, se guarda una copia de dicha
relación en dos o más sitios.
 En el caso más extremo se tiene una réplica completa en la que se
guarda una copia en cada sitio del sistema.
• Disponibilidad.
− Si alguno de los sitios que contiene la relación r falla, la relación puede hallarse
en otro sitio distinto.
• Paralelismo incrementado.
− En caso de que la mayoría de los accesos a la relación r sólo resulten en la
lectura de la relación, varios sitios pueden procesar en paralelo las lecturas que
impliquen a r.
• Sobrecarga incrementada durante la actualización.
− El sistema debe asegurar que todas las réplicas de la relación r sean
consistentes; en caso contrario pueden producirse cómputos erróneos.
Replicas de Datos
 La réplica mejora el rendimiento de las operaciones leer y aumenta la
disponibilidad de lo datos para las transacciones sólo de lectura.

 Las transacciones de actualización suponen una mayor sobrecarga.


• El control de las actualizaciones de actualización realizadas por varias
transacciones en los datos replicados resulta más complicado que en
sistemas centralizados
Fragmentación de datos
 Si la relación r se fragmenta, r se divide en varios fragmentos
r1, r2, … rn. Estos fragmentos contienen suficiente información
como para permitir la reconstrucción de la relación original r.
Fragmentación de datos
 Hay dos esquemas diferentes de fragmentación de las
relaciones:
 Fragmentación Horizontal
• La fragmentación Horizontal divide la relación asignando cada tupla de r en
uno mas fragmentos.

 Fragmentación Vertical.
• La fragmentación vertical divide la relación descomponiendo el esquema R
de la relación.

 Esquema-cuenta = (numero-cuenta, nombre-sucursal, saldo)


Fragmentación Horizontal
 En la fragmentación horizontal la relación r se divide en varios
subconjuntos r1, r2, … rn.
 Cada tupla de relación r debe pertenecer como mínimo a uno de los
fragmentos, de modo que se pueda reconstruir la relación original, si
fuera necesario.

 cuenta1 = 𝜎nombre-sucursal=«Guadarrama» (cuenta)


 cuenta2 = 𝜎nombre-sucursal=«Cerdedilla» (cuenta)
Fragmentación Horizontal
 La fragmentación horizontal suele utilizarse para conservar las
tuplas en los sitios en que más se utilizan, para minimizar la
transferencia de datos.
 En general, los fragmentos horizontales pueden definirse como una
selección de la relacion global r.
• Se utiliza un predicado Pi para construir fragmentos ri
 ri = σPi(r)
 Se reconstruye la relacion r tomando la union de todos los fragmentos

 r = r1 ∪ r2 ∪ … ∪ rn
Fragmentación Vertical
 La fragmentación vertical de r(R) implica la definición de varios
subconjuntos de atributos R1, R2, … Rn del esquema R de
modo que
 R = R1 ∪ R2 ∪ ... ∪ Rn

 Cada fragmento ri de r se define mediante


 ri = ∏Ri (r)

 La fragmentación debe hacerse de modo que se pueda reconstruir la


relación r a partir de los fragmentos tomando la reunión natural
 r = r1 ⋉ r2 ⋉ … ⋉ rn
Fragmentación Vertical
 Una manera de asegurar que la relación r pueda reconstruirse
es incluir los atributos de la clave principal de R en cada uno de
los fragmentos Ri.
 De manera mas general, se puede utilizar cualquier superclave.
 Suele resultar conveniente añadir un atributo especial denominado id-
tupla, al esquema R.
• El valor id-tupla de una tupia es un valor único que distingue cada tupla de
todas las demás. El atributo id-tupla, por tanto, sirve como clave candidata
para el esquema aumentado y se incluye en cada uno de los fragmentos Ri
Principios Fundamentales de una
Base de Datos Distribuidas
Generalidades
 Los usuarios de un sistema distribuido deberán comportarse
exactamente como si el sistema no estuviera distribuido.
Principio Fundamental de una BDD
 Autonomía local.
 Significa que todas las operaciones en un sitio dado se controlan en ese
sitio.
• Ningún sitio X deberá depender de algún otro sitio Y para su buen
funcionamiento (pues de otra manera el sitio X podría ser incapaz de
trabajar, aunque no tenga en sí problema alguno, sí cae el sitio Y, situación a
todas luces indeseable).
Principio Fundamental de una BDD
 No Dependencia de un Sitio Central.
 La autonomía local implica que todos los sitios deben tratarse igual; no
debe haber dependencia de un sitio central "maestro" para obtener un
servicio central.
• La dependencia de un sitio central sería indeseable al menos por las
siguientes razones:
− El sitio central podría ser un cuello de botella;
− El sistema sería vulnerable; si el sitio central sufriera un desperfecto, todo el
sistema dejaría de funcionar.
Principio Fundamental de una BDD
 Operación Continua
 El sistema nunca debería necesitar apagarse para que se pueda realizar
alguna función, como añadirse un nuevo sitio o instalar una versión
mejorada del DBMS en un sitio ya existente.
Principio Fundamental de una BDD
 Independencia con Respecto a la Localización.
 La idea básica de la independencia con respecto a la localización
(también conocida como transparencia de localización) es simple:
• No debe ser necesario que los usuarios sepan dónde están almacenados
físicamente los datos, sino que más bien deben poder comportarse - al
menos desde un punto de vista lógico - como si todos los datos estuvieran
almacenados en su propio sitio local.
Principio Fundamental de una BDD
 Independencia con Respecto a la Fragmentación
 Un sistema maneja fragmentación de los datos si es posible dividir una
relación en partes o "fragmentos" para propósitos de almacenamiento
físico.
• La fragmentación es deseable por razones de desempeño: los datos pueden
almacenarse en la localidad donde se utilizan con mayor frecuencia, de
manera que la mayor parte de las operaciones sean sólo locales y se
reduzca al tráfico en la red.
Principio Fundamental de una BDD
 Independencia con Respecto a la Fragmentación
 Existen en esencia dos clases de fragmentación: horizontal y vertical,
correspondientes a las operaciones relacionales de restricción y
proyección; respectivamente.
Num Emp Num Dpto Salario
E1 DX 45
E2 DY 40
E3 DZ 50
E4 DY 63
E5 DZ 40

FRAGMENTOS DE SAN FRANCISCO FRAGMENTOS DE LONDRES


Num Emp Num Dpto Salario Num Emp Num Dpto Salario
E1 DX 45 E2 DY 40
E3 DZ 40 E4 DY 63
E5 DZ 40
Principio Fundamental de una BDD
 Independencia de Réplica
 Un sistema maneja réplica de datos si una relación dada (un fragmento
dado en una relación) se puede representar en el nivel físico mediante
varias copias almacenadas o réplicas, en muchos sitios distintos.
Principio Fundamental de una BDD
 Independencia de Réplica
 La réplica es deseable al menos por dos razones:
• Puede producir un mejor desempeño (aplicaciones operan sobre copias
locales en vez de tener que comunicarse con sitios remotos)
• Puede significar una mejor disponibilidad (un objeto estará disponible para su
procesamiento en tanto esté disponible por lo menos una copia, al menos
para propósitos de recuperación).
Principio Fundamental de una BDD
 Independencia de Réplica
 La desventaja principal de las réplicas es desde luego que cuando se
pone al día un cierto objeto copiado, deben ponerse al día todas las
réplicas de ese objeto:
• El problema de la propagación de actualizaciones.
Principio Fundamental de una BDD
 Procesamiento Distribuido de Consultas
 La Consulta. Si sistema es relacional, consulta implicará en esencia dos
mensajes: uno transmitir la solicitud a Origen a Destino, y otro para
devolver el conjunto resultante de n registros de Destino a Origen.
• Si el sistema no es relacional, sino de un registro a la vez, la consulta
implicará en esencia 2n mensajes: n de Origen a Destino solicitando el
siguiente registro, y n de Destino a Origen para devolver ese siguiente
registro.
Principio Fundamental de una BDD
 Procesamiento Distribuido de Consultas
 La optimización. En una consulta como la anterior, donde están
implicados varios sitios, habrá muchas maneras de trasladar los datos
en al red para satisfacer la solicitud, y es crucial encontrar una estrategia
suficiente.
• Por ejemplo, una solicitud de unión de una relación Rx almacenada en el sitio
X y una relación Ry almacenada en el sitio Y podría llevarse a cabo
trasladando Rx a Y o trasladando Ry a X, o trasladando las dos a un tercer
sitio Z.
Principio Fundamental de una BDD
 Manejo Distribuido de Transacciones
 El manejo de transacciones tiene dos aspectos principales, el control de
recuperación y el control de concurrencia. Para explicar ese tratamiento
más amplio es preciso introducir primero un término nuevo, "agente“.
• Cada transacción está compuesta de varios agentes, donde un agente es el
proceso ejecutado en nombre de una transacción dada en determinado sitio.
Principio Fundamental de una BDD
 Independencia con Respecto al Equipo.
 Las instalaciones de cómputo en el mundo real por lo regular incluyen
varias máquinas diferentes máquinas IBM, DEC, HP, UNISYS, PC etc. y
existe una verdadera necesidad de poder integrar los datos en todos
esos sistemas y presentar al usuario "una sola imagen del sistema".
Principio Fundamental de una BDD
 Independencia con Respecto al Sistema Operativo
 Es obvia la conveniencia no sólo de poder ejecutar el mismo DBMS en
diferentes equipos, sino también poder ejecutarlo en diferentes sistemas
operativos y lograr que una versión MVS y una UNIX y una PC/DOS
participen todas en el mismo sistema distribuido.
Principio Fundamental de una BDD
 Independencia con Respecto a la Red
 Si el sistema ha de poder manejar múltiples sitios diferentes, con equipo
distinto y diferentes sistemas operativos, resulta obvia la conveniencia
de poder manejar también varias redes de comunicación distintas.
Principio Fundamental de una BDD
 Independencia con Respecto al DBMS
 No se requiere sino que los DBMS en los diferentes sitios manejen todos
la misma interfaz; no necesitan ser por fuerza copias del mismo sistema.
Ejemplo 01
Fragmentación Vertical
 Divide la relación R en conjuntos de columnas, así cada
fragmento mantiene ciertos atributos de la relación original.
 La fragmentación vertical se realiza mediante el operador algebraico de
proyección y su notación es la siguiente:

 Ri = ∏ Li (R) donde i = 1..n


 Ri es el conjunto de fragmentos en que se divide la relación original R

• Li es la condición por la que fragmentamos, en este caso al ser una


proyección se trata de un subconjunto de atributos de R.
Fragmentación Vertical
 Para que se cumplan las condiciones anteriormente descritas
sobre una correcta fragmentación los subconjuntos de atributos
L, han de cumplir:
 La unión de todos los Li nos da todos los atributos de R.
 La intersección de todos los Li nos da la clave primaria de la relación R.
Esto supone que todos los Li tienen en común la clave primaria para de
esta forma poder reconstruir a partir de los fragmentos, Ri, la relación
inicial, R, mediante la operación de combinación.
Escenario
 Supongamos que tenemos una base de datos centralizada de
unos grandes almacenes y que una de sus relaciones es:

 EMPLEADOS: (apellidos, nombre, dirección, teléfono, función,


localización, extensión)

 Se quieren distribuir los datos de EMPLEADOS teniendo en cuenta que
se tienen dos sedes o nodos enlazados por una red de área local y que
en el NODO1 se encuentra el departamento de contabilidad y desde
aquí se manejan los datos personales del empleado (nombre, apellidos,
dirección, teléfono y función) mientras que en el NODO2 se encuentra
centralita y en este nodo se consultan los datos correspondientes a la
localización del empleado (localización y extensión).
Esquema de Fragmentación
 Se fragmentara verticalmente la tabla EMPLEADOS creando
dos nuevas relaciones:
 EMPLEADO_CONT = ∏ apellidos, nombre, dirección, teléfono, función (EMPLEADOS)
 EMPLEADO_CENT = ∏ apellidos, nombre, localización, extensión (EMPLEADOS)

 La combinación de ambas relaciones proporcionará la relación


original:
 EMPLEADOS = EMPL_CONTA * apellidos, nombre EMPLEADO_CENT
Fragmentación horizontal
 Divide una relación en subconjuntos de tuplas, cada uno de
ellos con un significado lógico.
 Fragmentación horizontal primaria
• Se define como una selección de la relación R y su notación es la siguiente:
Ri = Pi(R) donde Pi es un predicado sobre uno o más atributos de R y es la
condición empleada para seleccionar el contenido de los fragmentos.
 Fragmentación horizontal derivada
• Se realiza en función de predicados definidos sobre atributos de otras
relaciones o fragmentos; esto se debe a que la relación R a fragmentar.
depende de la relación Q, sobre cuyos atributos está definido el predicado de
la fragmentación..

 Ri = R ⋉ Qi donde Qi corresponde al conjunto de fragmentos en los que


se ha divido la relación Q. La semi combinación se realiza por el atributo
o atributos que relacionan estas dos tablas.
Fragmentación horizontal
 Para que la fragmentación sea correcta se tiene que cumplir
que la unión de todos los Ri sea la relación R y que su
intersección sea vacía.
 Cada producto, comercializado por los grandes almacenes, se encuentra
en un almacén.
• No hay productos que se encuentren en más de un almacén.
− Se sabe que los almacenes están divididos en áreas (norte, sur, este y oeste) y
que además de los nodos de centralita y contabilidad hay otros cuatro nodos
más. cada uno de ellos se encuentra en una de estas áreas, y en cada una de
estas sedes sólo se maneja la información referente a los productos almacenados
en dichas áreas.
Fragmentación horizontal
 Además de la tabla EMPLEADO se tiene:
PRODUCTOS (cód-pród , nombre, descripción, almacén)

ALMACÉN (cód-almacén, dirección, teléfono, área)

 En cada almacén se requiere información de los productos almacenados


en el área en que se encuentra, podemos realizar una fragmentación
para repartir la información que se encuentra en la relación
PRODUCTOS. Para ello haremos una fragmentación horizontal primaria
en la relación ALMACÉN:

 ALMACÉN i =  área=i (ALMACÉN) donde i = {n,s,e,o}


− Cada uno de estos fragmentos contiene información de los almacenes ubicados
en cada una de las áreas.
Fragmentación horizontal
 Dado que en cada almacén sólo se requiere información de los
productos almacenados en el área en que se encuentra, se puede
realizar una fragmentación para repartir la información que se encuentra
en la relación PRODUCTOS.
• Para ello haremos una fragmentación horizontal primaria en la relación
ALMACÉN:

 ALMi =  area=i (ALMACÉN) donde i = {n,s,e,o}


− Cada uno de estos fragmentos contiene información de los almacenes ubicados
en cada una de las áreas.

 Si se realiza una fragmentación horizontal derivada en la relación


PRODUCTOS:
 PRODi = PRODUCTOS 𝑎𝑙𝑚𝑎𝑐𝑒𝑛 = 𝑐𝑜𝑑

− 𝑎𝑙𝑚𝑎𝑐𝑒𝑛
ALMi
− Conseguiremos la información de los productos almacenados en cada área.
Esquema de Asignación y Replicación
 Consiste en la realización de la correspondencia entre los
fragmentos y los nodos que constituyen la red de
comunicaciones de la BDD.
 Mínimo coste
• Minimiza el coste de almacenamiento de cada fragmento en el nodo
correspondiente, el coste de modificar un fragmento que está replicado en
distintos nodos y el coste de la transferencia de datos por la red.
 Rendimiento
• Minimiza los tiempos de respuesta y maximiza la capacidad de
procesamiento del sistema en cada nodo.

 Aunque existen algoritmos para realizar la asignación teniendo en


cuenta estos parámetros, resultan complejos y no proporcionan la
solución óptima sino simplemente una solución.
Esquema de Asignación y Replicación
Caso 01
Enunciado
 Una de las sociedades médicas más importantes del país, con
oficina central en Madrid, dispone de tres grandes centros
médicos en esta misma ciudad.
 En cada uno de ellos se atienden determinadas especialidades médicas
por el personal contratado por dicha sociedad, de manera que una
especialidad puede darse en un centro o en varios y todos los centros
tienen al menos una especialidad.

 En la actualidad tienen una base de datos relacional centralizada, a la


cual acceden todos los centros, con el esquema de la página siguiente.
Relaciones
CENTRO ( Cód-Centro , Nombre-Centro , Dirección , Teléfono )
BR:MC

PERSONAL ( Cód-Empleado , Nombre,Dirección,Salario,IRPF,Fecha-Contrato,Cod-Centro )


BC:MC

PERSONAL-SANITARIO ( Cod-Empleado , Funcion , Años-Experiencia)

ESPECIALIDAD ( Cód-Especialidad , Nombre-Especialidad , Descripción )

BR:MC BC:MC
BC:MC
CONSULTA ( Cód-Centro , Cod-Emp , Cod-Esp , Dia-semana , Hora )
Enunciado
 Realice el diseño de los esquemas de fragmentación y asignación de
una Base de Datos Distribuida para conseguir la mayor autonomía local,
tanto en los centros médicos como en la sede central, sabiendo que las
operaciones realizadas en cada uno de ellos son:

• En la sede central (Cód-Centro = 01) se elaboran las nóminas del personal


contratado por la Sociedad Médica y de aquí se envían a los Centros para
que sean repartidas a los trabajadores.

• Cada Centro médico (Cód-Centro = {02, 03}) debe tener la relación de


personal sanitario que trabaja en el mismo, así como el horario de la consulta
y la especialidad que desarrolla.
Idea de Base de Datos
 Suponga que la BD tiene las siguientes tuplas:
CENTROS

Cod_centro Nombre_centro Direccion Telefono


01 Centro salud de Madrid central Madrid 11111111
02 Centro salud de Leganes Leganes 2222222
03 Centro salud de Getafe Getafe 333333

PERSONALES
Cod_empleado Nombre Direccion Salario IRPF Fecha_contrato Cod_centro

EM01 Jose Carlos Madrid 1800 12% 04/05/1991 01

EM02 Maria Isabel Madrid 1300 12% 12/07/1999 01

EM03 Ramon Madrid 1500 12% 01/09/1993 02

EM04 Raul Madrid 1180 12% 09/11/2004 03

EM05 Joaquin Madrid 1900 12% 07/07/1990 02


Idea de Base de Datos
 Suponga que la BD tiene las siguientes tuplas:
PERSONALES_SANITARIOS

Cod_empleado Función Años_exp

EM01 Medico 26
EM02 Medico 18
EM03 Medico 24
EM04 Medico 10
EM05 Medico 20

ESPECIALIDADES

Cod_especialidad Nombre_especialidad Descripcion

ESP040 Cardiologia ………………..


ESP050 Cirugia General ………………..
ESP060 Oftalmologia ………………..
ESP070 Pediagria ………………..
ESP080 Urologia ………………..
Idea de Base de Datos
 Suponga que la BD tiene las siguientes tuplas:
CONSULTAS

Cod_centro Cod_emp Cod_esp Dia_semana hora

01 EM01 ESP040 Lunes 15.00


01 EM02 ESP050 Miercoles 17.00
02 EM03 ESP060 Lunes 15.00
03 EM04 ESP070 Lunes 15.00
02 EM05 ESP080 Lunes 15.00
01 EM03 ESP060 Martes 16.00
02 EM04 ESP070 Martes 16.00
03 EM05 ESP080 Miercoles 17.00
Discusión del enunciado
 Identificación de los sitios de distribución (centros) y sus
respectivos roles.

 Centro Central: Con los ROLES: Nominas y Servicio Sanitario


(cod_centro=1)

 Otros Centros: con el ROL: Servicio Sanitario (cod_centro =02, 03),


independencia local de cada centro con respecto a sus datos locales.
Esquema de Fragmentación
 Suponiendo que la información necesaria para realizar las nóminas son
los atributos "Salario", "IRPF" y "Fecha-Contrato" se realizará una
fragmentación vertical de la relación PERSONAL para separar esta
información y posteriormente poder asignada a la sede central. Las
relaciones resultantes contendrán en cualquier caso la clave primaria de
la relación de la que proceden.

 Algebra Relacional
NOMINAS_PERSONALES: π Cod_empleado, salario, IRPF, fecha_contrato (PERSONALES)

 SQL
SELECT cod_empleado, salario, IRPF, fecha_contrato
Esquema de Fragmentación
 La fragmentación vertical NOMINAS_PERSONALES significa
que los siguientes datos se deben almacenar en la sede central
01. NOMINAS_PERSONALES

Cod_empleado Salario IRPF Fecha contrado

EM01 1800 12% 04/05/1991

EM02 1300 12% 12/07/1999

EM03 1500 12% 01/09/1993

EM04 1180 12% 09/11/2004

EM05 1900 12% 07/07/1990

 Además, interesa que se fragmente de nuevo la relación PERSONALES


para tener en cada centro la información del personal
INF_PERSONALES que están a su cargo. Para ellos tenemos que
aplicar una fragmentación horizontal PERSONAL_i
Esquema de Fragmentación
 INF-PERSONALES:  Cod_Empleado, Nombre, Dirección, Cod_Centro (PERSONALES)

 PERSONALES_i:  Cod_Centros=”i” (lNF_PERSONALES) donde i = {01,02,03}

 SELECT cod_empleado, nombre, direccion, cod_centro


 FROM PERSONALES WHERE cod_centro=i
Esquema de Fragmentación
 La Fragmentación horizontal PERSONALES_i nos indica que los siguientes datos se
deben almacenar en sus correspondientes sedes.

PERSONALES_01
Cod_empleado Nombre Direccion Cod_centro

EM01 Jose Carlos Madrid 01

EM02 Maria Isabel Madrid 01

PERSONALES_02
Cod_empleado Nombre Direccion Cod_centro

EM03 Ramon Madrid 02

EM05 Joaquin Madrid 02

PERSONALES_03
Cod_empleado Nombre Direccion Cod_centro

EM04 Raul Madrid 03


Esquema de Fragmentación
 Para tener la relacion del personal en cada centro debemos
partir de la tabla INF_SANITARIO y mediante los fragmentos
PERSONALES_i realizar la fragmentación horizontal derivada.
 INF-SANITARIO:  Cod_Empleado, Funcion, años_exp (PERSONALES_SANITARIOS)

 PERSONALES_SANITARIOS_i:

 INF_SANITARIO cod-Empleado PERSONAL_i donde i = { 01,02,03}

 SELECT cod_empleado, funcion, años_exp


 FROM PERSONALES_SANITARIOS WHERE cod_empleado IN
 (SELECT cod_empleado FROM PERSONALES WHERE cod_centro=i)
Esquema de Fragmentación
 La fragmentación horizontal derivada PERSONALES_SANITARIOS nos
indica que los siguientes datos se deben almacenar en sus
correspondientes sedes.
PERSONALES_SANITARIOS

Cod_empleado Función Años_exp

EM01 Medico 26
EM02 Medico 18

PERSONALES_SANITARIOS

Cod_empleado Función Años_exp

EM03 Medico 24
EM05 Medico 20

PERSONALES_SANITARIOS_03

Cod_empleado Función Años_exp

EM04 Medico 10
Esquema de Fragmentación
 Como ademas se quiere la informacion acerca de las consultas de cada
centro, cual es su horario y que especialidad se trata se tendra que
fragmentar la relacion consultas horizontalmente.

INF-CONSULTAS:  Cod_Centro, cod_Emp, cod_esp, dia, semana, hora (CONSULTAS)

CONSULTAS_i:  Cod_centros = “i” (INF_CONSULTAS) donde i = {01,02,03}

SELECT cod_centro, cod_emp, cod_esp, dia, semana, hora


FROM CONSULTAS WHERE cod_centro=i
Esquema de Fragmentación
 La fragmentación vertical CONSULTAS_i nos indica que los siguientes datos
se deben almacenar en sus correspondientes sedes.
CONSULTAS

Cod_centro Cod_emp Cod_esp Dia_semana hora

01 EM01 ESP040 Lunes 15.00


01 EM02 ESP050 Miércoles 17.00
01 EM03 ESP060 Martes 16.00

CONSULTAS

Cod_centro Cod_emp Cod_esp Dia_semana hora

02 EM03 ESP060 Lunes 15.00


02 EM05 ESP080 Lunes 15.00
02 EM04 ESP070 Martes 16.00

CONSULTAS

Cod_centro Cod_emp Cod_esp Dia_semana hora

03 EM04 ESP070 Lunes 15.00


03 EM05 ESP080 Miércoles 17.00
Esquema de Fragmentación
 Una vez aplicada esta fragmentación solo nos falta obtener las
especialidades desarrolladas en cada una de las sedes de la sociedad
medica; para ello fragmentaremos la tabla especialidades mediante una
fragmentación horizontal derivada.

INF-ESPECIALIDADES:  Cod_especialidad, Nombre_especialidad, Descripcion (ESPECIALIDADES)

ESPECIALIDADES_i: INF-ESPECIALIDADES (CONSULTAS_i)


donde i = {01,02,03,04}

SELECT cod_especialidad, nombre_especialidad, descripcion


FROM ESPECIALIDADES WHERE cod_especialidad IN
(SELECT cod_esp FROM CONSULTAS WHERE cod_centro=i)
Esquema de Fragmentación
ESPECIALIDADES

Cod_especialidad Nombre_especialidad Descripcion

ESP040 Cardiologia ………………..


ESP050 Cirugia General ………………..

ESPECIALIDADES

Cod_especialidad Nombre_especialidad Descripcion

ESP060 Oftalmologia ………………..


ESP070 Pediagria ………………..
ESP080 Urologia ………………..

ESPECIALIDADES

Cod_especialidad Nombre_especialidad Descripcion

ESP070 Pediagria ………………..


ESP080 Urologia ………………..
Esquema de Fragmentación
 La asignación se especificara en una tabla indicando en la primera fila las
sedes o nodos de la red que forman parte del sistema distribuido, y en la
primera columna la tabla base de la que se ha obtenido un determinado
fragmento.
 Debemos aclarar que como la relación CENTRO es poco dinámica, es decir, no sufre
apenas actualizaciones, se duplicara por todos los centros.

CENTRO 01 CENTRO 02 CENTRO 03

CENTROS CENTROS CENTROS CENTROS

NÓMINA
PERSONALES
PERSONALES

INF_PERSONALES PERSONALES_01 PERSONALES_02 PERSONALES_03

PERSONALES_ PERSONALES_ PERSONALES_ PERSONALES_


SANITARIOS SANITARIOS_01 SANITARIOS_02 SANITARIOS_03

CONSULTAS CONSULTAS_01 CONSULTAS_02 CONSULTAS_03

ESPECIALIDADES ESPECIALIDAD_01 ESPECIALIDAD_02 ESPECIALIDAD_03

También podría gustarte