Sie sind auf Seite 1von 13

Tecnolgico de Estudios Superiores del Oriente del Estado de Mxico

BASES DE DATOS DISTRIBUIDAS

PROYECTO FRAGMENTACIN DE DATOS

PROFESOR: CORTES VERGARA LEONARDO.

ALUMNO: ESPARZA LOPEZ EDUARDO

GRUPO: 7S11 TURNO: MATUTINO

Fecha: 8 de Octubre de 2013

Contenido
PROYECTO ......................................................................................................................................2 Gestin de hospitales. ....................................................................................................................3 Diagrama Entidad-Relacion ............................................................................................................3 Diagrama Relacional .......................................................................................................................4 Codigo de la B.D. ............................................................................................................................5 Creacin de la B.D. .........................................................................................................................7 Consultas ........................................................................................................................................8 Conclusiones ................................................................................................................................12

PROYECTO
Fragmentacion de datos.
2

Gestin de hospitales.
Una compaa aseguradora de tipo sanitario desea disear una BD para informatizar parte de su gestin hospitalaria. En una primera fase slo quiere contemplar los siguientes supuestos semnticos. Los hospitales de su red pueden ser propios o concertados; adems de unos datos comunes a todos ellos como son el cdigo de hospital (Cod_H), su nombre (N_H), nmero de camas (Num_C), etc., cuando el hospital es propio se tienen otros especficos como el presupuesto (P), tipo de servicio (TS), etc. Una pliza, que se identifica por el nmero de pliza (Cod_P), tiene varios atributos que, en principio, no interesa especificar y que se agrupan bajo el nombre de datos de pliza (Datos_P). Una pliza cubre a varios asegurados, los cuales se identifican por el nmero correlativo (Num), aadido al cdigo de la pliza, y tienen un nombre (NA), fecha de nacimiento (FN), etc. Los asegurados cubiertos por una misma pliza pueden ser de distintas categoras. Mientras los asegurados de primera categora (A1C) pueden ser hospitalizados en cualquier hospital, los de segunda categora (A2C) solo pueden ser hospitalizados en hospitales propios. Aunque las otras categora solo tienen derecho a hospitalizacin, en la BD se guardan todos los asegurados sea cual sea su categora. Interesa saber en qu hospitales han estado (o estn) hospitalizados los asegurados, el mdico que prescribi la hospitalizacin, as como las fechas de inicio (FI) y de fin (FF) de la misma. Existen reas, identificadas por un cdigo (Cod_A) y con datos sobre su superficie (S), nmero de habitantes (NUM_H), etc. Los hospitales concertados tienen que estar asignados a una nica rea, que no pueden cambiar, mientras que los propios no estn asignados a reas. Los mdicos, que se identifican por un cdigo (Cod_M), tienen un nombre (N_M), telfonos de contacto, etc. Interesa conocer las reas a las que est adscrito un mdico. Existe una dependencia jerrquica entre mdicos de forma que un mdico tiene un nico jefe.

Diagrama Entidad-Relacion
El diagrama fue realizado con ayuda del software diaw.exe 0.97.2

Diagrama Relacional
Los campos subrayados indican las llaves primarias de cada tabla, y los colores indican a donde se estn heredando --------------------------------------------------------------------------------------------------------------------------------Hospital (Cod_Hospital ,Nombre, Num_Camas)

H-Concertados (Cod_Area, Cod_Hospital)

H_Propios (Cod_Hospital, presp, T_S)

Asegurados (Num, Cod_Poliza, Nombre_Ase, F_Nac)

A2C (Num)

A1C (Num)

Poliza (Cod_Poliza, Datos_Pol)

Medico (Cod_Medico, Nom_Med, Tel, Jefe)

Area (Cod_Area, Superficie, Num_Ha)

Area Medico (Cod_Area, Cod_Medico)

Hospitalizacion 1 (Cod_Hosp, Num, Cod_Med, F_I, F_F)

Hospitalizacion 2 (Cod_Hosp, Num, Cod_Med, F_I, F_F)

Codigo de la B.D.
Para la realizacin del cdigo utilize el software DB Designer 4.0.5.6 Beta

De esta manera fue como quedo el diseo

Una vez realizado el diagrama este programa tiene la ventaja de brindarnos el cdigo fuente de las tablas para la B.D.
CREATE TABLE Hospital ( Cod_Hospital VARCHAR(20) NOT NULL, Nom_Hosp VARCHAR (20) NOT NULL, Num_Camas NUMERIC NOT NULL, PRIMARY KEY(Cod_Hospital) ); CREATE TABLE Medico ( Cod_Medico NUMERIC NOT NULL, Nom_Med VARCHAR (20) NOT NULL, Tel NUMERIC NOT NULL, Cod_Jefe VARCHAR(20) NULL, PRIMARY KEY(Cod_Medico)

); CREATE TABLE Poliza ( Cod_Poliza NUMERIC NOT NULL, Datos_Pol VARCHAR (20) NOT NULL, PRIMARY KEY(Cod_Poliza) ); CREATE TABLE Area ( Cod_Area NUMERIC NOT NULL, Sup NUMERIC NOT NULL, Num_Ha NUMERIC NOT NULL, PRIMARY KEY(Cod_Area) ); CREATE TABLE H_Propios ( Hospital_Cod_Hospital VARCHAR(20) NOT NULL, Presp NUMERIC NOT NULL, T_S VARCHAR(20) NOT NULL, FOREIGN KEY(Hospital_Cod_Hospital) REFERENCES Hospital(Cod_Hospital) ON DELETE NO ACTION ON UPDATE NO ACTION ); CREATE TABLE Asegurados ( Num NUMERIC NOT NULL, Poliza_Cod_Poliza NUMERIC NOT NULL, Nom_A VARCHAR (20) NOT NULL, F_Naci DATE NOT NULL, PRIMARY KEY(Num), FOREIGN KEY(Poliza_Cod_Poliza) REFERENCES Poliza(Cod_Poliza) ON DELETE NO ACTION ON UPDATE NO ACTION ); CREATE TABLE Area_Medico ( Area_Cod_Area NUMERIC NOT NULL, Medico_Cod_Medico NUMERIC NOT NULL, FOREIGN KEY(Medico_Cod_Medico) REFERENCES Medico(Cod_Medico) ON DELETE NO ACTION ON UPDATE NO ACTION, FOREIGN KEY(Area_Cod_Area) REFERENCES Area(Cod_Area) ON DELETE NO ACTION ON UPDATE NO ACTION ); CREATE TABLE H_Concertados ( Area_Cod_Area NUMERIC NOT NULL, Hospital_Cod_Hospital VARCHAR(20) NOT NULL, FOREIGN KEY(Hospital_Cod_Hospital) REFERENCES Hospital(Cod_Hospital) ON DELETE NO ACTION ON UPDATE NO ACTION, FOREIGN KEY(Area_Cod_Area) REFERENCES Area(Cod_Area) );

ON DELETE NO ACTION ON UPDATE NO ACTION

CREATE TABLE Hospitalizacion_1 ( Hospital_Cod_Hospital VARCHAR(20) NOT NULL, Asegurados_Num NUMERIC NOT NULL, Medico_Cod_Medico NUMERIC NOT NULL, F_Inicio DATE NOT NULL, F_Final DATE NULL, FOREIGN KEY(Medico_Cod_Medico) REFERENCES Medico(Cod_Medico) ON DELETE NO ACTION ON UPDATE NO ACTION, FOREIGN KEY(Asegurados_Num) REFERENCES Asegurados(Num) ON DELETE NO ACTION ON UPDATE NO ACTION, FOREIGN KEY(Hospital_Cod_Hospital) REFERENCES Hospital(Cod_Hospital) ON DELETE NO ACTION ON UPDATE NO ACTION ); CREATE TABLE Hospitalizacion_2 ( Hospital_Cod_Hospital VARCHAR(20) NOT NULL, Asegurados_Num NUMERIC NOT NULL, Medico_Cod_Medico NUMERIC NOT NULL, F_Inicio DATE NOT NULL, F_Final DATE NOT NULL, FOREIGN KEY(Medico_Cod_Medico) REFERENCES Medico(Cod_Medico) ON DELETE NO ACTION ON UPDATE NO ACTION, FOREIGN KEY(Asegurados_Num) REFERENCES Asegurados(Num) ON DELETE NO ACTION ON UPDATE NO ACTION, FOREIGN KEY(Hospital_Cod_Hospital) REFERENCES Hospital(Cod_Hospital) ON DELETE NO ACTION ON UPDATE NO ACTION ); CREATE TABLE A2C ( Asegurados_Num NUMERIC NOT NULL, FOREIGN KEY(Asegurados_Num) REFERENCES Asegurados(Num) ON DELETE NO ACTION ON UPDATE NO ACTION ); CREATE TABLE A1C ( Asegurados_Num NUMERIC NOT NULL, FOREIGN KEY(Asegurados_Num) REFERENCES Asegurados(Num) ON DELETE NO ACTION ON UPDATE NO ACTION );

Creacin de la B.D.
A continuacin se mostrara con una captura de pantalla que ya hemos creado nuestra B.D. con sus respectivas tablas.

Consultas
1------------Listar las reas que existen Select Cod_Area from Area;

2-----------Listar los hospitales Select Nom_Hosp From Hospital;

3-----------------------Listar los mdicos Select Nom_Med From Medico;

4--------------------------Listar las plizas Select Cod_Poliza,Datos_Pol From Poliza;

5----------------------Listar Asegurados Select Nom_A From Asegurados;

6-----------------------Listar asegurados adscritos por pliza SELECT a.Num, a.Nom_A, p.Cod_Poliza FROM asegurados a, poliza p WHERE a.Poliza_Cod_Poliza = p.Cod_Poliza;

7------------------------Listar por medico las reas a las que ha estado adscrito SELECT m.Nom_Med,a.Area_Cod_Area

10

FROM medico m,area_medico a WHERE m.Cod_Medico = a.Medico_Cod_Medico GROUP BY m.Nom_Med;

8-----------------------Listar los hospitales concertados por medico SELECT m.Cod_Medico, m.Nom_Med,h.Nom_Hosp AS Hosp_Concertados FROM hospital.medico m,hospital.area_medico a,hospital.h_concertados hc,hospital.hospital h WHERE m.Cod_Medico=a.Medico_Cod_Medico AND a.Area_Cod_Area= hc.Area_Cod_Area AND h.Cod_Hospital= hc.Hospital_Cod_Hospital;

9--------------------------Listar asegurados hospitalizados en hospitales de primer categora SELECT a.Asegurados_Num,asg.Nom_A

11

FROM hospital.asegurados asg,hospital.a1c a WHERE asg.Num= a.Asegurados_Num GROUP BY a.Asegurados_Num;

10-------------------------Listar asegurados hospitalizados en hospitales de segunda categora

SELECT a.Asegurados_Num,asg.Nom_A FROM hospital.asegurados asg,hospital.a2c a WHERE asg.Num= a.Asegurados_Num GROUP BY a.Asegurados_Num;

Conclusiones

12

Me tomo mas tiempo del que esperaba terminar el proyecto. Nunca haba usado MySql pero es muy interesante trabajar con el. Lo mas tardado fue realizar el modelo relacional ya que tuve un par de errores que despus me causaron problemas con mis tablas. El desarrollo de las consultas tambin fue un poco mas tardado de lo que yo esperaba debido a un par de errores en los datos incertados por que el insertar datos no es difcil aunque si un poco tedioso ya que deben de coincidir.

13

Das könnte Ihnen auch gefallen