92
1.
1.1.
Enunciado
Una de las sociedades mdicas ms importantes del pas, con oficina central en Madrid, dispone de tres
grandes centros mdicos en esta misma ciudad. En cada uno de ellos se atienden determinadas
especialidades mdicas 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 pgina siguiente.
Realice el diseo de los esquemas de fragmentacin y asignacin de una Base de Datos Distribuida para
conseguir la mayor autonoma local, tanto en los centros mdicos como en la sede central, sabiendo que las
operaciones realizadas en cada uno de ellos son:
En la sede central (Cd-Centro = 01) se elaboran las nminas del personal contratado por la Sociedad
Mdica y de aqu se envan a los Centros para que sean repartidas a los trabajadores.
Cada Centro mdico (Cd-Centro = {02, 03, O4}) debe tener la relacin de personal sanitario que trabaja en
el mismo, as como el horario de la consulta y la especialidad que desarrolla.
BC:MC
BR:MC
BC:MC
Esquema de fragmentacin
"En la sede central (Cd-Centro = 01) se elaboran las nminas del personal contratado por la Sociedad
Mdica y de aqu se envan a los Centros para que sean repartidas a los trabajadores".
Suponiendo que la informacin necesaria para realizar las nminas son los atributos "Salario", "IRPF" y
"Fecha-Contrato" se realizar una fragmentacin vertical de la relacin PERSONAL para separar esta
informacin y posteriormente poder asignada a la sede central. Las relaciones resultantes contendrn en
cualquier caso la clave primaria de la relacin de la que proceden.
INF-PERSONAL:
PERSONAL_i:
93
Cada Centro mdico (Cod-Centro = {02, 03, 04} ) debe tener la relacin de personal sanitario que trabaja
en el mismo, as como el horario de la consulta y la especialidad que desarrolla...
Para tener la relacin del personal sanitario en cada sede debemos partir de la tabla
PERSONAL_SANITARIO y mediante los fragmentos PERSONAL_i realizar la fragmentacin horizontal
derivada.
PERSONAL_SANITARIO_i:
PERSONAL_SANITARIO cod-Empleado PERSONAL_i donde i = {01, 02, 03, 04}
Hay que destacar que aunque en la sede central no haya personal sanitario, se ha considerado que para
mayor completitud en la fragmentacin mantendremos este fragmento vaco.
Como adems se quiere la informacin acerca de las consultas de cada centro, cul es su horario y qu
especialidad se trata se tendr que fragmentar la relacin CONSULTAS verticalmente.
CONSULTAS_i: Cod_centros = i (CONSULTAS) donde i = {01, 02, 03, 04}
Una vez aplicada esta fragmentacin slo nos falta obtener las especialidades desarrolladas en cada una
de las sedes de la sociedad mdicas para ello fragmentaremos la tabla ESPECIALIDADES mediante un
fragmentacin horizontal derivada.
ESPECIALIDAD_i: ESPECIALIDADES Cod_Esp=Cod_Especialidad CONSULTAS_i Donde i = {01, 02, 03, 04}
Esquema de asignacin:
La asignacin se especificar en una tabla indicando en la primera fila las sedes o nadas de la red que
forma 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 relacin CENTRO es poco dinmica, es decir, no
sufre apenas actualizaciones, se duplicar por todas los centros.
Centro 01
Centro 02
Centro 03
Centro 04
CENTROS
CENTROS
CENTROS
CENTROS
CENTROS
PERSONAL
NMINA
PERSONAL
INF_PERSONAL
PERSONAL_01
PERSONAL_02
PERSONAL_03
PERSONAL_04
PERSONAL_
SANITARIO
PERSONAL_
SANITARIO_01
PERSONAL_
SANITARIO_02
PERSONAL_
SANITARIO_03
PERSONAL_
SANITARIO_04
CONSULTAS
CONSULTAS_01
CONSULTAS_02
CONSULTAS_03
CONSULTAS_04
2.1.
Enunciado
La empresa de servicios informticos INFOSYSTEM est ubicada en cuatro edificios cuyos cdigos de
identificacin son '00', '01', '02' y '03', conectados entre s por una red. En cada uno de ellos se encuentra
Henry George Maquera Quispe
94
una o varias unidades de desarrollo, por ejemplo, en el edificio cuyo cdigo es '00' se halla la unidad de
Recursos Humanos.
Los empleados de la empresa y los proyectos que se realizan en sta, estn asignados a una sola unidad
de desarrollo, aunque un empleado puede trabajar en un proyecto que no pertenezca a su unidad.
Los proyectos se realizan para una determinada empresa de la cual nos interesa saber el nombre y el
telfono para que dicha informacin este disponible en cada uno de los edificios donde se desarrollan
proyectos para estas empresas, y los dems datos se los quedar Recursos Humanos para tramitar las
facturas correspondientes.
Pueden existir proyectos internos de los cuales no se tramita factura. por lo que no es necesario que
Recursos Humanos posea informacin de ellos. Estos proyectos tienen como cdigo de empresa cliente el
'00000'.
Suponiendo que el esquema de la base de datos relacional es el de la figura 25:
BR:MC
BR:MC
Figura 25. Esquema relacional correspondiente a una BD centralizada para la gestin de una empresa de
Servicios lnformticos.
1) Disear los esquemas de fragmentacin y asignacin de la Base de Datos Distribuida. Tener en cuenta
que cada unidad de desarrollo gestiona las nminas de sus empleados y necesita la informacin de los
proyectos en los que trabaja para poder pagarles conforme a las horas que han computado en cada uno
de ellos.
2) Conforme al diseo realizado en el apartado anterior, modificar si se cree necesario los esquemas de
fragmentacin y de asignacin para conseguir que la siguiente consulta se realice de manera local:
"cdigo de los proyectos que desarrollan las unidades de un determinado edificio":
2.2.
APARTADO 1
Esquema de fragmentacin:
La empresa de servicios informticos INFOSYSTEM est ubicada en cuatro edificios cuyos cdigos
de identificacin son '00', '01', '02' y '03', conectados entre s por una red. En cada uno de ellos se
encuentra una o varias unidades de desarrollo, por ejemplo, en el edificio cuyo cdigo es '00' se halla
la unidad de Recursos Humanos.
95
Los empleados de la empresa y los proyectos que se realizan en sta, estn asignados a una sola
unidad de desarrollo, aunque un empleado puede trabajar en un proyecto que no pertenezca a su
unidad.
Como se puede observar en el esquema relaciona}, en un edificio existe una o varias unidades de
desarrollo, pero una determinada unidad slo se encuentra en un edificio en concreto. Por tanto, nos
interesara tener en cada uno de los edificios tanto el personal como los proyectos que se llevan a cabo en
l.
La relacin UNIDAD la fragmentamos horizontalmente para saber las unidades asignadas a cada edificio.
UNIDAD_i:
Para saber los empleados designados a las distintas unidades realizamos una fragmentacin horizontal
derivada.
EMPLEADO_i: EMPLEADO cod-Unidad UNIDAD_i
De igual forma. obtenemos los fragmentos con los proyectos que se desarrollan en cada unidad.
PROYECTO_i: PROYECTO cod-Unidad UNIDAD_i
Los proyectos se realizan para una determinada empresa de la cual nos interesa saber el nombre y
el telfono para que dicha informacin este disponible en cada uno de los edificios donde se
desarrollan proyectos para estas empresas. y los dems datos se los quedar Recursos Humanos
para tramitar las facturas correspondientes.
Para que Recursos Humanos tenga la informacin necesaria de la empresa cliente fragmentamos
verticalmente la tabla EMPRESA_CLIENTE.
INF_EMPRESA:
FACT_EMPRESA:
cod-Empresa PROYECTO_i
Tener en cuenta que cada unidad de desarrollo gestiona las nominas de sus empleados y necesita la
informacin de los proyectos en los que trabaja para poder pagarles conforme a las horas que han
computado en cada uno de ellos.
Para que cada edificio tenga el cdigo de los proyectos en los que trabaja el personal de las distintas
unidades asignadas a ste realizamos la siguiente fragmentacin horizontal derivada.
REALIZA_PROYECTO_i: REALIZA_PROYECTO
Esquema de asignacin:
96
A continuacin presentamos una tabla con la asignacin de cada uno de los fragmentos obtenidos en el
apartado anterior. La relacin EDIFICIO, que aparece en el esquema relacional, es una relacin que
suponemos esttica, es decir, en ella no se van a realizar operaciones de actualizacin solo de consulta, por
lo que decidimos duplicarla en cada uno de las sedes.
Edf.00
UNIDAD
UNIDAD_00
Edf.01
UNIDAD_01
Edf.02
UNIDAD_02
Edf.03
UNIDAD_03
EMPLEADO
EMPLEADO_00
EMPLEADO_01
EMPLEADO_02
EMPLEADO_03
PROYECTO
PROYECTO_00
PROYECTO_01
PROYECTO_02
PROYECTO_03
EMPRESA_
CLIENTE
FACT_EMPRESA
INF_EMPRESA
REALIZA_
PROYECTO
REALIZA_
PROYECTO_00
REALIZA_
PROYECTO_01
REALIZA_
PROYECTO_02
REALIZA_
PROYECTO_03
EDIFICIO
EDIFICIO
EDIFICIO
EDIFICIO
EDIFICIO
APARTADO 2
Esquema de fragmentacin:
Para poder mantener el esquema de fragmentacin anterior y adems poder dar la informacin referente al
cdigo de los empleados que trabajan en los proyectos desarrollados por las unidades asignadas a los
distintos edificios, realizaremos la siguiente fragmentacin horizontal derivada.
EMP_i : REALIZA_PROYECTO_i
cod-Emp EMPLEADO_j
Por ejemplo, la informacin que contiene el fragmento EMP_00_01 sera los empleados asignados al
edificio 01 que participan en los proyectos llevados a cabo por las unidades asociadas al edificio 00.
Esquema de asignacin:
La tabla descriptora de la asignacin de los fragmentos contendr los nuevos fragmentos hallados en el
esquema de fragmentacin anterior y que se asignarn de la forma siguiente:
En el EDIFICIO K: EMP_K_J donde j, K = {00, 01, 02, 03} que sern los empleados de todos los edificios
que trabajan en proyectos del edificio K. Y adems, EMP_i_K donde i = {00, 01, 02, 03} - {K} y K = {00, 01,
02, 03} que sern los empleados del edificio K que trabajan en proyectos de otros edificios. En este caso el
ndice i no recorre todos los nmeros de edificio para no repetir el fragmento EMP_K_K.
Edf.00
Edf.01
Edf.02
Edf.03
UNIDAD
UNIDAD_00
UNIDAD_01
UNIDAD_02
UNIDAD_03
EMPLEADO
EMPLEADO_00
EMPLEADO_01
EMPLEADO_02
EMPLEADO_03
PROYECTO
PROYECTO_00
PROYECTO_01
PROYECTO_02
PROYECTO_03
EMPRESA_
CLIENTE
FACT_EMPRESA
97
INF_EMPRESA
REALIZA_
PROYECTO_00
EMP_00_00
EMP_00_01
EMP_00_02
EMP_00_03
EMP_00_01
EMP_00_02
EMP_00_03
EMP_01_00
EMP_01_00
EMP_01_01
EMP_01_02
EMP_01_03
EMP_01_02
EMP_01_03
EMP_02_01
EMP_02_00
EMP_02_01
EMP_02_02
EMP_02_03
EMP_02_03
REALIZA_
PROYECTO_01
REALIZA_
PROYECTO_02
EMP_02_00
REALIZA_
PROYECTO_03
EMP_03_00
EMP_03_01
EMP_03_02
EMP_03_00
EMP_03_01
EMP_03_02
EMP_03_03
EDIFICIO
EDIFICIO
EDIFICIO
EDIFICIO
EDIFICIO
Tendramos duplicacin en algunos de los fragmentos pero conseguiramos que la consulta se realizara de
manera local.