Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Casos PDF
Casos PDF
1.1. 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.
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, O4}) 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.
BR:MC BC:MC
BC:MC
CONSULTA ( Cód-Centro , Cod-Emp , Cod-Esp , Dia-semana , Hora )
Figura 24. Esquema relacional correspondiente a una BD centralizada de Sociedades Médicas
Esquema de fragmentación
"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".
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.
El fragmento INF_PERSONAL nos interesará que se fragmente de nuevo para tener en cada centro la
información del personal que está a su cargo. Para ello tendremos que aplicar una fragmentación horizontal:
Para tener la relación del personal sanitario en cada sede debemos partir de la tabla
PERSONAL_SANITARIO y mediante los fragmentos PERSONAL_i realizar la fragmentación horizontal
derivada.
PERSONAL_SANITARIO_i:
Hay que destacar que aunque en la sede central no haya personal sanitario, se ha considerado que para
mayor completitud en la fragmentación mantendremos este fragmento vacío.
Como además se quiere la información acerca de las consultas de cada centro, cuál es su horario y qué
especialidad se trata se tendrá que fragmentar la relación CONSULTAS verticalmente.
Una vez aplicada esta fragmentación sólo nos falta obtener las especialidades desarrolladas en cada una
de las sedes de la sociedad médicas para ello fragmentaremos la tabla ESPECIALIDADES mediante un
fragmentación horizontal derivada.
Esquema de asignación:
La asignación 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 relación CENTRO es poco dinámica, es decir, no
sufre apenas actualizaciones, se duplicará por todas los centros.
2.1. Enunciado
La empresa de servicios informáticos INFOSYSTEM está ubicada en cuatro edificios cuyos códigos de
identificación 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 código es '00' se halla la unidad de
Recursos Humanos.
Los empleados de la empresa y los proyectos que se realizan en ésta, están 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
teléfono para que dicha información este disponible en cada uno de los edificios donde se desarrollan
proyectos para estas empresas, y los demás 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 información de ellos. Estos proyectos tienen como código de empresa cliente el
'00000'.
BC:MC
REALIZA_PROYECTO ( Cod-Empleado , Cod-Proyecto , Horas_Computadas )
BC:MC BR:MC
PROYECTO ( Cod-Proyecto , Nombre,Presupuesto,Cod-Empresa,Jefe-Proyecto,Cod-Unidad )
BR:MC BR:MC
Figura 25. Esquema relacional correspondiente a una BD centralizada para la gestión de una empresa de
Servicios lnformáticos.
1) Diseñar los esquemas de fragmentación y asignación de la Base de Datos Distribuida. Tener en cuenta
que cada unidad de desarrollo gestiona las nóminas de sus empleados y necesita la información 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 diseño realizado en el apartado anterior, modificar si se cree necesario los esquemas de
fragmentación y de asignación para conseguir que la siguiente consulta se realice de manera local:
"código de los proyectos que desarrollan las unidades de un determinado edificio":
APARTADO 1
Esquema de fragmentación:
“La empresa de servicios informáticos INFOSYSTEM está ubicada en cuatro edificios cuyos códigos
de identificación 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 código es '00' se halla
la unidad de Recursos Humanos.”
“Los empleados de la empresa y los proyectos que se realizan en ésta, están 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 sólo se encuentra en un edificio en concreto. Por tanto, nos
interesaría tener en cada uno de los edificios tanto el personal como los proyectos que se llevan a cabo en
él.
La relación UNIDAD la fragmentamos horizontalmente para saber las unidades asignadas a cada edificio.
De igual forma. obtenemos los fragmentos con los proyectos que se desarrollan en cada unidad.
“Los proyectos se realizan para una determinada empresa de la cual nos interesa saber el nombre y
el teléfono para que dicha información este disponible en cada uno de los edificios donde se
desarrollan proyectos para estas empresas. y los demás datos se los quedará Recursos Humanos
para tramitar las facturas correspondientes.”
Para que Recursos Humanos tenga la información necesaria de la empresa cliente fragmentamos
verticalmente la tabla EMPRESA_CLIENTE.
La información de las empresas que participan en proyectos asociados a cada una de las unidades se
obtiene:
INF_EMPRESA_i: INF_EMPRESA
cod-Empresa PROYECTO_i donde i = {00, 01, 02, 03}
“Tener en cuenta que cada unidad de desarrollo gestiona las nominas de sus empleados y necesita la
información 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 código de los proyectos en los que trabaja el personal de las distintas
unidades asignadas a éste realizamos la siguiente fragmentación horizontal derivada.
REALIZA_PROYECTO_i: REALIZA_PROYECTO
cod-Proyecto PROYECTO_i donde i = {00, 01, 02, 03}
Esquema de asignación:
A continuación presentamos una tabla con la asignación de cada uno de los fragmentos obtenidos en el
apartado anterior. La relación EDIFICIO, que aparece en el esquema relacional, es una relación que
suponemos estática, es decir, en ella no se van a realizar operaciones de actualización solo de consulta, por
lo que decidimos duplicarla en cada uno de las sedes.
EMPRESA_
FACT_EMPRESA
CLIENTE
APARTADO 2
Esquema de fragmentación:
Para poder mantener el esquema de fragmentación anterior y además poder dar la información referente al
código de los empleados que trabajan en los proyectos desarrollados por las unidades asignadas a los
distintos edificios, realizaremos la siguiente fragmentación horizontal derivada.
EMP_i : REALIZA_PROYECTO_i
cod-Emp EMPLEADO_j donde i, j = {00, 01, 02, 03 }
Por ejemplo, la información que contiene el fragmento EMP_00_01 sería los empleados asignados al
edificio 01 que participan en los proyectos llevados a cabo por las unidades asociadas al edificio 00.
Esquema de asignación:
La tabla descriptora de la asignación de los fragmentos contendrá los nuevos fragmentos hallados en el
esquema de fragmentación anterior y que se asignarán de la forma siguiente:
En el EDIFICIO K: EMP_K_J donde j, K = {00, 01, 02, 03} que serán los empleados de todos los edificios
que trabajan en proyectos del edificio K. Y además, EMP_i_K donde i = {00, 01, 02, 03} - {K} y K = {00, 01,
02, 03} que serán los empleados del edificio K que trabajan en proyectos de otros edificios. En este caso el
índice i no recorre todos los números de edificio para no repetir el fragmento EMP_K_K.
EMPRESA_
FACT_EMPRESA
CLIENTE
EMP_00_00
REALIZA_ EMP_00_01
EMP_00_01 EMP_00_02 EMP_00_03
PROYECTO_00 EMP_00_02
EMP_00_03
EMP_01_00
REALIZA_ EMP_01_01
EMP_01_00 EMP_01_02 EMP_01_03
PROYECTO_01 EMP_01_02
EMP_01_03
EMP_02_00
REALIZA_ EMP_02_01
EMP_02_00 EMP_02_01 EMP_02_03
PROYECTO_02 EMP_02_02
EMP_02_03
EMP_03_00
REALIZA_ EMP_03_01
EMP_03_00 EMP_03_01 EMP_03_02
PROYECTO_03 EMP_03_02
EMP_03_03
EDIFICIO EDIFICIO EDIFICIO EDIFICIO EDIFICIO
Tendríamos duplicación en algunos de los fragmentos pero conseguiríamos que la consulta se realizara de
manera local.