INSTITUTO TECNOLOGICO SUPERIOR DE MISANTLA
BASE DE DATOS DISTRIBUODAS
PRESENTA
BELLO PALOMINO DORIBEL CENSO MORALES ELIZABETH DORANTES CASTELLANOS ANAYELI
DOCENTE
LIC. ARNULFO GAMALIEL HERNANDEZ
MISANTLA, VERACRUZ
SEPTIEMBRE 2012.
PROBLEMA 1: BDD SOCIEDADES MÉDICAS Enunciado Una de las sociedades medicas 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 pueda darse en un centro o varios y todos 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 a siguiente.
Figura: Esquema relacional correspondiente a una BD centralizada Sociedades Medicas
Realice el diseño de los esquemas de fragmentación y asignación de base de Datos Distribuida para conseguir la mayor autonomía local, tanto en los centros médicos como en la central, sabiendo que las operaciones realizadas en cada uno de ellos son:
En la sede central (Cod_Centro = 01) se elaboran la nominas del personal contratados por la Sociedad Medica y de aquí se envían a los Centros para que sean repartidas a los trabajadores. Cada Centro medico (Cod_Centro = {02,03.04}) 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.
Discusión del enunciado Esquema de fragmentación “ En la sede central (Cod_Centro=01) se elaboran las nominas del personal por la Sociedad Medica y de aquí se envían a los centros para que sean repartidas a los trabajadores”. CENTRO
Cod_Centro O1 O2 O3 O4
Nom_Centro Centro El Valle Alemán Misantla
Dirección Xalapa Martínez Misantla Misantla
Teléfono
Figura: Tabla de la relación CENTRO
Cod_Empleado Nombre CE1 Tomasa Tuna CE2 Ana Alto CE3 Pedro Peña CE4 Bruno Brisa CE5 Caty Cortez CE6 Damián Díaz CE7 Elsa Elvira CE8 Marcos Mina CE9 Yair Yunes CE10 Sonia Salas CE11 José Juan CE12 Fito Fosa CE13 Olga Olmo CE14 Herí Humo CE15 Víctor Vidal CE16 Gina Gómez
PERSONAL Dirección Salario Xalapa 7500 Martínez 5000 Misantla 4900 Santa Rita 5000 Tenochtitlán 6000 Guerrero 6500 Misantla 6900 Vega 4900 Pozón 5500 Los Ídolos 5900 Misantla 7000 El Porvenir 1500 Xalapa 4550 Xalapa 7500 Xalapa 4000 Atzalan 6000
IRPF 10.1% 10.1% 10.1% 10.1% 10.1% 10.1% 10.1% 10.1% 10.1% 10.1% 10.1% 10.1% 10.1% 10.1% 10.1% 10.1%
Fecha_Contrato Cod_centro 12/04/2000 O1 01/01/2011 O1 15/08/2011 O1 30/12/2010 O1 14/05/2009 O2 20/11/2009 O2 26/09/2000 O2 26/09/2000 O2 10/10/2010 O3 15/07/2012 O3 01/01/2012 O3 30/10/2001 O3 30-02-2012 O4 31/08/2005 O4 09/09/2007 O4 29/11/2008 O4
Figura 1: Tabla de la relación PERSONAL
Suponiendo que la información necesaria para realizar las nominas son los atributos “Salario”, “IRPF” y “Fecha_Contrato” se realiza una fragmentación vertical de la relación
PERSONAL. Para separar esta información y posteriormente poder asignar a la sede central. Las relaciones resultantes contendrán en cualquier caso la clave primaria de la relación de la que proceden. Relacionar las formulas para los fragmentos con los siguientes nombres:
NIMINA_PERSONAL INF_PERSONAL
Formula: Ri =
Li (R)
i_PERSONAL=
Li (PERSONAL)
Donde: i = {NOMINA, INF} Li = {“ Cod_Empleado, salario, IRPF, Fecha_contrato ”, “Cod_Empleado, Nombre, Dirección, Cod_centro” }
NOMINA_PERSONAL = Cod_Empleado, salario, IRPF, Fecha_contrato (PERSONAL) INF_PERSONAL = Cod_Empleado, Nombre, Dirección, Cod_centro (PERSONAL)
Fragmentos de la tabla PERSONA NOMINA_PERSONAL = Cod_Empleado, salario, IRPF, Fecha_contrato (PERSONAL) Nomina_Personal Cod_Empleado salario IRPF Fecha_contrato CE1 7500 10.1% 12/04/2000 CE2 5000 10.1% 01/01/2011 CE3 4900 10.1% 15/08/2011 CE4 5000 10.1% 30/12/2010 CE5 6000 10.1% 14/05/2009 CE6 6500 10.1% 20/11/2009 CE7 6900 10.1% 26/09/2000 CE8 4900 10.1% 26/09/2000 CE9 5500 10.1% 10/10/2010 CE10 5900 10.1% 15/07/2012 CE11 7000 10.1% 01/01/2012 CE12 1500 10.1% 30/10/2001 CE13 4550 10.1% 30-02-2012 CE14 7500 10.1% 31/08/2005 CE15 4000 10.1% 09/09/2007 CE16 6000 10.1% 29/11/2008 Figura 2: Tabla Nomina_Personal de la fragmentación de la relación PERSONAL
INF_PERSONAL = Cod_Empleado, Nombre, Dirección, Cod_centro (PERSONAL) Cod_Empleado CE1 CE2 CE3 CE4 CE5 CE6 CE7 CE8 CE9 CE10 CE11 CE12 CE13 CE14 CE15 CE16
Inf_Personal Nombre Dirección Tomasa Tuna Xalapa Ana Alto Martínez Pedro Peña Misantla Bruno Brisa Santa Rita Caty Cortez Tenochtitlán Damián Díaz Guerrero Elsa Elvira Misantla Marcos Mina Vega Yair Yunes Pozón Sonia Salas Los Ídolos José Juan Misantla Fito Fosa El Porvenir Olga Olmo Xalapa Herí Humo Xalapa Víctor Vidal Xalapa Gina Gómez Atzalan
Cod_Centro O1 O1 O1 O1 O2 O2 O2 O2 O3 O3 O3 O3 O4 O4 O4 O4
Figura 3: Tabla Inf_Personal de la fragmentación de la relación PERSONAL
El fragmento INF_PERSONAL nos interesara que se fragmente de nuevo para tener en cada centro la información del personal que esta a su cargo. Para ello tendremos que aplicar una fragmentación horizontal: Realizar las formulas para obtener los fragmentos (fragmentación horizontal) correspondiente a cada centro con los siguientes nombres:
Personal01 Personal02 Personal03 Personal04
Formula: Ri = pi (R)
PERSONALi= Cod_Centro = i (INF_PERSONAL)
Donde: i = {01, 02, 03, 04} Personal01 = Cod_Centro = 01 (INF_PERSONAL) Personal02 = Cod_Centro = 02 (INF_PERSONAL) Personal03 = Cod_Centro = 03 (INF_PERSONAL) Personal04 = Cod_Centro = 04 (INF_PERSONAL)
Personal01 = Cod_Centro =01 (INF_PERSONAL) Cod_Empleado CE1 CE2 CE3 CE4
Personal01 Nombre Dirección Cod_centro Tomasa Tuna Xalapa O1 Ana Alto Martínez O1 Pedro Peña Misantla O1 Bruno Brisa Santa Rita O1
Figura 4: Tabla Personal01 de la fragmentación de INF_PERSONAL
Personal02 = Cod_Centro = 02 (INF_PERSONAL)
Cod_Empleado CE5 CE6 CE7 CE8
Personal02 Nombre Dirección Cod_centro Caty Cortez Tenochtitlan O2 Damián Díaz Guerrero O2 Elsa Elvira Misantla O2 Marcos Mina Vega O2
Figura 5: Tabla Personal02 de la fragmentación de INF_PERSONAL
Personal03 = Cod_Centro = 03 (INF_PERSONAL) Cod_Empleado CE9 CE10 CE11 CE12
Personal03 Nombre Dirección Cod_centro Yair Yunes Pozón O3 Sonia Salas Los Ídolos O3 José Juan Misantla O3 Fito Fosa El Porvenir O3
Figura 6: Tabla Personal03 de la fragmentación de INF_PERSONAL
Personal04 = Cod_Centro = 04 (INF_PERSONAL) Cod_Empleado CE13 CE14 CE15 CE16
Personal04 Nombre Dirección Olga Olmo Xalapa Herí Humo Xalapa Víctor Vidal Xalapa Gina Gómez Atzalan
Cod_centro O4 O4 O4 O4
Figura 7: Tabla Personal04 de la fragmentación de INF_PERSONAL
“cada Centro mé dico (Cod_Centro = (02, 03, 04)) 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 ”
Personal_Sanitario Cod_Empleado Función Años_Experiencia CE1 Enfermera 12 CE2 Recepcionista 5 CE3 Enfermero Auxiliar 4 CE4 Medico Especialista 12 CE5 Medico Especialista 3 CE6 Técnico Administrativo 15 CE7 Director general 14 CE8 Auxiliar Administrativo 9 CE9 Medico Especialista 4 CE10 Enfermero Auxiliar 1 CE11 Farmacéutico 8 CE12 Doctor 11 CE13 Enfermero 5 CE14 Medico Especialista 7 CE15 Enfermero Auxiliar 3 CE16 Medico Especialista 8 Figura 8: Tabla PERSONAL_SANITARIO
Para tener la relación del personal sanitario en cada sede debemos partir de la tabla PERSONAL_SANITARIO y mediante los fragmentos personal_i (donde i = {01, 02, 03, 04}) realizar la fragmentación horizontal derivada, con los nombres de los fragmentos siguientes:
Personal_sanitario01 Personal_sanitario02 Personal_sanitario03 Personal_sanitario04
Formula: Ri ⋉ Qi Personal_sanitarioi = PERSONAL_SANITARIO Donde: i = {01, 02, 03, 04}
⋉
Cod_Empleado Personal_i
Personal_sanitario01 = PERSONAL_SANITARIO Personal01
⋉
Cod_Empleado = Cod_Empleado
Personal_sanitario02 = PERSONAL_SANITARIO Personal02
⋉
Cod_Empleado = Cod_Empleado
Personal_sanitario03 = PERSONAL_SANITARIO Personal03
⋉
Cod_Empleado = Cod_Empleado
Personal_sanitario04 = PERSONAL_SANITARIO Personal04
⋉
Cod_Empleado = Cod_Empleado
⋉
Cod_Empleado = Cod_Empleado
Fragmentos de la tabla PERSONAL_SANITARIO Personal_sanitario01 = PERSONAL_SANITARIO Personal01 Cod_empleado CE1 CE2 CE3 CE4
Función Enfermero Recepcionista Enfermero Auxiliar Medico Especialista
PersonalSanitario_01 Años de Experiencia Nombre Direccion 12 Tomasa Tuna Xalapa 5 Ana Alto Martinez 4 Pedro Peña Misantla 12 Bruno Brisa Santa Rita
Cod_Centro O1 O1 O1 O1
Figura 9: Tabla PersonalSanitario_01 de la fragmentación de PERSONAL_SANITARIO
Personal_sanitario02 = PERSONAL_SANITARIO Personal02 Cod_empleado CE5 CE6 CE7 CE8
⋉
Cod_Empleado = Cod_Empleado
PersonalSanitario_02 Función Años de Experiencia Nombre Dirección Cod_Centro Medico Especialista 3 Caty Cortez Tenochtitlan O2 Técnico Administrativo 15 Damián Díaz Guerrero O2 Director general 14 Elsa Elvira Misantla O2 Auxiliar Administrativo 9 Marcos Mina Vega O2
Figura 10: Tabla PersonalSanitario_02 de la fragmentación de PERSONAL_SANITARIO
Personal_sanitario03 = PERSONAL_SANITARIO Personal03 Cod_empleado CE9
Función Medico Especialista
⋉
Cod_Empleado = Cod_Empleado
PersonalSanitario_03 Años de Experiencia Nombre 4 Yair Yunes
Dirección Pozón
Cod_Centro O3
CE10 CE11
Enfermero Auxiliar Farmacéutico
1 8
Sonia Salas José Juan
Los Ídolos Misantla
O3 O3
CE12
Doctor
11
Fito Fosa
El Porvenir
O3
Figura 11: Tabla PersonalSanitario_03 de la fragmentación de PERSONAL_SANITARIO
Personal_sanitario04 = PERSONAL_SANITARIO Personal04 Cod_empleado CE12 CE13 CE14 CE15 CE12
Función Enfermero Medico Especialista Enfermero Auxiliar Medico Especialista Doctor
⋉
Cod_Empleado = Cod_Empleado
PersonalSanitario_04 Años de Experiencia 5 7 3 8 11
Nombre Dirección Cod_Centro Olga Olmo Xalapa O4 Herí Humo Xalapa O4 Víctor Vidal Xalapa O4 Gina Gómez Atzalan O4 Fito Fosa El Porvenir O3
Figura 12: Tabla PersonalSanitario_04 de la fragmentación de PERSONAL_SANITARIO
Hay que destacar que aunque en la sede central no hay personal sanitario, se ha considerado que para mayor completitud en la fragmentación mantendremos este fragmento vacío.
Cod_Centro O1 O1 O1 O1 O2 O2 O2 O2 O3 O3 O3 O3 O4 O4 O4 O4
Cod_Empleado CE1 CE2 CE3 CE4 CE5 CE6 CE7 CE8 CE9 CE10 CE11 CE12 CE13 CE14 CE15 CE16
Figura 13: Tabla CONSULTAS
CONSULTAS Cod_especialidad Traumatología Traumatología Traumatología Traumatología Traumatología Pediatría Pediatría Pediatría Pediatría Pediatría Ginecología Ginecología Ginecología Ginecología Ginecología Neurología
Dia_Semana lunes martes miércoles jueves viernes lunes martes miércoles jueves viernes lunes martes miércoles jueves viernes lunes
Hr 9:00 10:00 11:00 12:00 13:00 09:00 10:00 11:00 12:00 13:00 09:00 10:00 11:00 12:00 13:00 09:00
Como además se quiere la información de las consultas de cada centro, cual es su horario y que especialidad se trata, se tendrá que fragmentar la relación CONSULTAS verticalmente, con los siguientes nombres.
Consultas01 Consultas02 Consultas03 Consultas04
Fórmula general de la fragmentación horizontal primaria: Ri=σPi(R )
Sentencias del algebra relacional: Cosultasi= σcod_centro=i (CONSULTA) Donde: i= {01, 02, 03, 04}
i = {01, 02,03, 04} Primer fragmento Consultas01= σcod_centro=01 (CONSULTA)
Tabla del primer fragmento: CONSULTAS
Cod_Centro
Cod_Empleado
Cod_especialidad
Dia_Semana
Hr
O1
CE1
traumatologia
lunes
9:00
O1
CE2
traumatologia
martes
10:00
O1
CE3
traumatologia
miércoles
11:00
O1
CE4
traumatologia
jueves
12:00
Segundo fragmento: Consultas02= σcod_centro=02 (CONSULTA)
Tabla del segundo fragmento: CONSULTAS
Cod_Centro
Cod_Empleado
Cod_especialidad
Dia_Semana
Hr
O2
CE5
traumatologia
viernes
13:00
O2
CE6
Pediatria
lunes
09:00
O2
CE7
Pediatria
martes
10:00
O2
CE8
Pediatria
miercoles
11:00
Tercer fragmento: Consultas03= σcod_centro=03 (CONSULTA)
Tabla del tercer fragmento: CONSULTAS
Cod_Centro
Cod_Empleado
Cod_especialidad
Dia_Semana
Hr
O3
CE9
Pediatria
jueves
12:00
O3
CE10
Pediatria
viernes
13:00
O3
CE11
Ginecologia
lunes
09:00
O3
CE12
Ginecologia
martes
10:00
Cuarto fragmento: Consultas04= σcod_centro=04 (CONSULTA)
Tabla del cuarto fragmento: CONSULTAS
Cod_Centro
Cod_Empleado
Cod_especialidad
Dia_Semana
Hr
O4
CE13
Ginecologia
miercoles
11:00
O4
CE14
Ginecologia
jueves
12:00
O4
CE15
Ginecologia
viernes
13:00
O4
CE16
Neurologia
lunes
09:00
Una vez aplicada esta fragmentación solo nos falta obtener las especialidades desarrolladas en cada una de las sedes de las sociedades medicas, para ello fragmentaremos la tabla ESPECIALIDADES mediante una fragmentación Horizontal derivada con los siguientes nombres:
Especialidad01 Especialidad02 Especialidad03 Especialidad04
Nota: Debemos aclarar que como la relación CENTRO es poco dinámica, es decir, no sufre apenas actualizaciones, se duplicara por todos los centros.
ESPECIALIDAD Cod_Especialidad Nombre _Especialidad CO1 Traumatología CO2 Pediatría CO3 Ginecología CO4 Neurología
Descripción
Figura 18: Tabla ESPECIALIDADES
Formula: Ri ⋉ Qi Especialidadi = ESPECIALIDAD
⋉
Cod_Especialidad Consultasi
Donde: i = {01, 02, 03,04} Cod_Especialidad01 = ESPECIALIDAD Consultas01
⋉
Cod_Especialidad = Cod_Especialidad
Cod_Especialidad02 = ESPECIALIDAD Consultas02
⋉
Cod_Especialidad = Cod_Especialidad
Cod_Especialidad03 = ESPECIALIDAD Consultas03
⋉
Cod_Especialidad = Cod_Especialidad
Cod_Especialidad04 = ESPECIALIDAD Consultas04
Cod_Especialidad_01 = ESPECIALIDAD
⋉
⋉
Cod_Especialidad
= Cod_Especialidad
Cod_Especialidad Consultas_01
ESPECIALIDAD
Cod_Especialidad
Nombre _Especialidad
CO1
traumatologia
Cod_Especialidad_02 = ESPECIALIDAD
⋉
Descripcion
Cod_Especialidad Consultas_02
ESPECIALIDAD
Cod_Especialidad
Nombre _Especialidad
CO2
Pediatria
Cod_Especialidad_03 = ESPECIALIDAD
⋉
Descripcion
Cod_Especialidad Consultas_03
ESPECIALIDAD
Cod_Especialidad
Nombre _Especialidad
CO3
Ginecologia
Descripcion
Cod_Especialidad_04 = ESPECIALIDAD
⋉
Cod_Especialidad Consultas_04
ESPECIALIDAD
Cod_Especialidad
Nombre _Especialidad
CO4
Neurologia
Descripcion
Realizar lo que a continuación se pide: 1. Las fragmentaciones verticales, horizontales primarias y horizontales derivadas que se le pidió en el enunciado. 2. Llenar las tablas con los datos ficticios para representar los resultados de las fragmentaciones.