Está en la página 1de 14

ALUMNO : RONALD FABRICIO CENTENO CÁRDENAS

CURSO : BASE DE DATOS I


DOCENTE : LEYDI MANRIQUE
_____________________________________________________________________________

1. Modelar en MER y codificar en SQL el siguiente Modelo conceptual

Vehiculo: (id_vehiculo, desc_vehiculo)


Personal: (id_personal, tipo, id_parque_nat) Alojamiento: (id_aloja, id, parque_nat)
Gestor: (id_gestor, id_entrada) Excursion: (id_excur, id_aloja)
Investigador: (id_investigador, id_proyecto) Visitante: (id_visit)
Convervador: (id_conservador, id_area) Excursion_Visitante: (id_excur, id_visit)
Vigilante: (id_vigilante, id_vehiculo, id_area) Alojamiento_Visitante: (id_aloja, id_visit,
Comunidad_Autonoma: (id_comu) fecha_inicio, fecha_fin)
Parque_Natural: (id_parque_nat) Entrada: (id_entrada, id_parque_nat)
Parque_Comunidad: (id_parque_nat, id_comu, Proyecto: (id_proyecto, des_proy, id_especie)
superficie)

Especie: (id_especie, tipo)


Animal: (id_animal, desc_animal)
Depredador: (id_depred, id_presa) Area: (id_area, id_parque_nat)
Vegetal: (id_vegetal, des_vegetal) Area_Especie: (id_area, id_especie, cant_indiv)
Animal_Vegetal: (id_animal, id_vegetal)
Mineral: (id_ mineral, desc_mineral)

1
CODIFICACIÓN EN TABLAS SQL
create table Vehiculo( create table visitante(
id_vehiculo int not null, id_visit int not null,
desc_vehiculo varchar (200), constraint ok_visit primary key(id_visit)
constraint pk_id_vehiculo primary key (id_vehiculo) );
);
create table excursion_visitante(
create table comunidad_autonoma( id_excur int,
id_comu int not null, id_visit int,
constraint pk_id_comu primary key (id_comu) constraint pk_excur_visit primary key(id_excur,
); id_visit),
constraint fk_excur foreign key (id_excur)
create table parque_natural( references excursion (id_excur),
id_parque_nat int not null, constraint fk_visit foreign key (id_visit)
constraint pk_id_parque_nat primary key references visitante(id_visit)
(id_parque_nat) );
);
create table alojamiento_visitante (
create table parque_comunidad( id_aloja int,
id_parque_nat int, id_visit int,
id_comu int, id_excur int,
superficie float, fecha_inicio date,
constraint pk_par_com primary key fecha_fin date,
(id_parque_nat,id_comu), constraint pk_aloja_visit primary key(id_excur,
constraint fk_par foreign key (id_parque_nat) id_visit),
references parque_natural(id_parque_nat), constraint fk_aloja foreign key (id_aloja)
constraint fk_com foreign key (id_comu) references alojamiento (id_aloja),
references comunidad_autonoma(id_comu) constraint fk_visit foreign key (id_visit)
); references visitante(id_visit)
create table alojamiento( );
id_aloja int not null,
id_parque_nat int, create table entrada(
constraint pk_aloja primary key (id_aloja), id_entrada int not null,
constraint fk_id_parque_nat foreign key id_parque_nat int,
(id_parque_nat) constraint pk_id_entrada primary key (id_entrada),
references parque_natural(id_parque_nat) constraint pk_parque foreign key (id_parque_nat)
); references parque_natural(id_parque_nat)
);
create table excursion(
id_excur int not null, create table area(
id_aloja int, id_area int not null,
constraint pk_ex primary key (id_excur), id_parque_nat int,
constraint fk_ex_aloj foreign key (id_aloja) constraint pk_id_area primary key(id_area),
references alojamiento(id_aloja) constraint fk_par_nat foreign key (id_parque_nat)
); references parque_natural(id_parque_nat)
);

2
CODIFICACIÓN EN TABLAS SQL
create table especie( create table mineral(
id_especie int not null, id_mineral int not null,
tipo varchar(30), desc_mineral varchar(200),
constraint pk_id_especie primary key(id_especie) constraint pk_id_mineral primary key (id_mineral),
); constraint fk_id_mineral foreign key (id_mineral)
references especie(id_especie)
create table animal( );
id_animal int not null,
desc_animal varchar(20), create table proyecto(
constraint pk_id_animal primary key(id_animal), od_proyecto int not null,
constraint fk_id_animal foreign key (id_animal) desc_proy varchar(200),
references especie(id_especie) id_especie int,
); id_proyecto int,
constraint pk_id_proyecto primary key (id_proyecto),
create table depredador( constraint fk_id_especie foreign key(id_especie)
id_depredador int, references especie(id_especie)
id_presa int, );
constraint nombre_depredador primary key
(id_depredador, id_presa), create table area_especie(
constraint fk_depred foreign key(id_presa) id_area int,
references animal(id_animal) id_especie int,
); cant_indiv int,
constraint pk_area_especie primary
create table vegetal( key(id_area,id_especie),
id_vegetal int not null, constraint fk_area foreign key (id_area)
desc_vegetal varchar (200), references area(id_area),
constraint pk_id_vegetal primary key(id_vegetal), constraint fk_especie foreign key (id_especie)
constraint fk_id_vegetal foreign key(id_vegetal) references especie(id_especie)
references especie(id_especie) );
);

create table personal(


create table animal_vegetal( id_personal int not null,
id_animal int, tipo varchar(20),
id_vegetal int, id_parque_nat int,
constraint pk_animal_vegetal primary key(id_animal, constraint pk_id_per primary key (id_personal),
id_vegetal), constraint fk_id_parque_nat foreign key
constraint fk_animal foreign key (id_animal) (id_parque_nat)
references animal(id_animal), references parque_natural (id_parque_nat)
constraint fk_Vegetal foreign key (id_vegetal) );
references vegetal(id_vegetal)
);

3
CODIFICACIÓN EN TABLAS SQL
create table gestor ( create table vigilante(
id_gestor int not null, id_entrada int, id_vigilante int not null,
constraint pk_id_gestor primary key (id_gestor), id_vehiculo int,
constraint fk_id_entrada foreign key (id_entrada) id_area int,
references entrada (id_entrada), constraint pk_id_vigilante primary key (id_vigilante),
constraint fk_id_gestor foreign key (id_gestor) constraint fk_id_vehiculo foreign key (id_vehiculo)
references personal(id_personal) references vehiculo(id_vehiculo),
); constraint fk_id_area foreign key (id_area)
references area (id_area)
create table investigador( );
id_investigador int not null,
id_proyecto int, create table investigador_proyecto(
constraint pk_id_investigador primary key id_investigador int,
(id_investigador), id_proyecto int,
constraint fk_id_proyecto foreign key (id_proyecto) constraint pk_id_inv_proy primary key
references proyecto(id_proyecto), (id_investigador,id_proyecto),
constraint fk_id_investigador foreign key constraint fk_investigador foreign key
(id_investigador) (id_investigador)
references personal(id_personal) references investigador (id_investigador),
); constraint fk_id_proyecto foreign key(id_proyecto)
references proyecto (id_proyecto)
create table conservador( );
id_conservador int not null,
id_area int,
constraint pk_id_conservador primary key
(id_conservador),
constraint fk_id_area foreign key (id_area)
references area(id_area),
constraint fk_id_conservador foreign key
(id_conservador)
references personal(id_personal)
);

4
SQL

5
1. Crear, Insertar y Consultar

Queremos un sistema de gestión de datos de un hospital. En él queremos guardar la


información para cada uno de los ingresos hospitalarios indicando el paciente objeto del
ingreso y el médico que autoriza el mismo. A continuación, mostramos el modelo E/R que
resulta del análisis de datos

Las tablas que resultan para dicho BD tendrán los campos que se muestran a continuación:

a. Crea el modelo Relacional a partir del cual se habrán deducido dichas tablas.

6
b. Crea la BD en Postgress teniendo en cuenta la información adicional que se muestra
en las tablas anteriores.

7
c. Introduce los datos siguientes en la BD.

PACIENTES

MÉDICOS

8
INGRESOS

d. Realiza las siguientes consultas:

1. Nombre y fecha de toma de posesión de los médicos


pediatras del hospital.

9
2. Nombre de los pacientes residentes en Madrid capital.

3. Nombre de los médicos que autorizaron ingresos entre enero y


febrero de 2010.

10
4. Nombre y número de la Seguridad social de todos los pacientes.

5. Pacientes cuyo ingreso haya sido autorizado por el doctor Antonio


Jaén Hernández.

11
6. Nombre y Teléfono de los pacientes que ingresaron en 2010.

7. Nombre de los pacientes ingresados que sufren epilepsia.

12
8. Nombre y fecha de ingreso de aquellos pacientes que hayan sido
atendidos por un psiquiatra.

CREACIÓN DE LAS TABLAS SQL DATOS INGRESADOS A LA BD

create table Pacientes( insert into Pacientes values('08/7234823', 'José


nro_seg_soc varchar(15), Eduardo',
nombre varchar(15), 'Romerales Pinto', 'C/ Azorín, 34 3o', 'Móstoles',
apellidos varchar(30), 'Madrid',
domicilio varchar(30), '28935', '91-345-87-45', '10203-F', 'M');
poblacion varchar(25), insert into Pacientes values('08/7888888', 'Ángel',
provincia varchar(15), 'Ruíz Picasso', 'C/ Salmerón, 212', 'Madrid', 'Madrid',
cod_pos varchar(5), '28028', '91-565-34-33', '11454-L', 'M');
telefono varchar(12), insert into Pacientes values('08/7333333', 'Mercedes',
nro_historial varchar(9), 'Romero Carvajal', 'C/ Málaga, 13', 'Móstoles',
sexo char(1), 'Madrid',
constraint pk_id_pac primary key(nro_historial), '28935', '91-455-67-45', '14546-E', 'M');
constraint chk_sexo CHECK (sexo>='M' or sexo='F') insert into Pacientes values('08/7555555', 'Martín',
); 'Fernández López', 'C/ Sastres, 21', 'Madrid', 'Madrid',
'28028', '91-333-33-33', '15413-S', 'M');
select * from Pacientes;

create table Medicos( insert into Medicos values('AJH', 'Antonio', 'Jaén


id_medico varchar(4) not null, Hernández'
nombre_medico varchar(15), , 'Pediatría', '12-08-82', 'Adjunto', 2113, 'Está próxima
apellidos_medico varchar(30), su retirada');
especialidad varchar(25), insert into Medicos values('CEM', 'Carmen', 'Esterill
fecha_ingreso date, Manrique'
cargo varchar(25), , 'Psiquiatría', '13-02-92', 'Jefe de sección', 1231);
numero_colegiado int, insert into Medicos values('RLQ', 'Rocío', 'López
observaciones varchar(200), Quijada'
constraint pk_id_med primary key(id_medico) , 'Médico de familia', '23-09-94', 'Titular', 1331);
); select * from Medicos;

13
create table Ingresos(
nro_ing serial, insert into Ingresos values(default, '10203-F',
nro_hist varchar(9), '23/01/2009', 'AJH'
fecha_ing date, , 5, 121, 'No', 'Epiléptico');
id_medico varchar(4), insert into Ingresos values(default, '15413-S',
nro_planta int, '13/03/2009', 'RLQ'
nro_cama int, , 2, 5, 'Si', 'Alérgico a la penicilina');
alergico char(2), insert into Ingresos values(default, '11454-L',
observaciones varchar(200), '25/05/2009', 'RLQ'
coste_trat money, , 3, 31, 'No');
diagnostico varchar(40), insert into Ingresos values(default, '15413-S',
constraint pk_nro_ing primary key(nro_ing), '29/01/2010', 'CEM'
constraint fk_ing_pac foreign key (nro_hist) , 2, 13, 'No');
references Pacientes(nro_historial), insert into Ingresos values(default, '14546-E',
constraint fk_ing_med foreign key (id_medico) '24/02/2010', 'AJH'
references Medicos(id_medico), , 1, 5, 'Si', 'Alérgico al Paidoterín');
constraint chk_alerg CHECK (alergico>='Si' or select * from Ingresos;
alergico='No')
);

CONSULTAS REALIZADAS
--CONSULTA NR 1
select nombre_medico, apellidos_medico, fecha_ingreso from Medicos where especialidad='Pediatría';
--CONSULTA NR 2
select nombre, apellidos from Pacientes where poblacion='Madrid';
--CONSULTA NR 3
select * from Ingresos where (fecha_ing >= '01/01/2010' and fecha_ing < '01/03/2010');
select nombre_medico, apellidos_medico from Medicos where id_medico in (select id_medico from Ingresos
where (fecha_ing >= '01/01/2010' and fecha_ing < '01/03/2010'));
--CONSULTA NR 4
select nombre, apellidos, nro_seg_soc from Pacientes;
--CONSULTA NR 5
select nro_hist from Ingresos where id_medico ='AJH';
select * from Pacientes where nro_historial in (select nro_hist from Ingresos where id_medico ='AJH');
--CONSULTA NR 6
select nro_hist from Ingresos where fecha_ing >= '01/01/2010' and fecha_ing <= '31/12/2010';
select nombre, apellidos, telefono from Pacientes where nro_historial in (select nro_hist from Ingresos where
fecha_ing >= '01/01/2010' and fecha_ing <= '31/12/2010');
--CONSULTA NR 7
select nro_hist from Ingresos where observaciones like 'Epiléptico';
select nombre, apellidos from Pacientes where nro_historial in (select nro_hist from Ingresos where
observaciones like 'Epiléptico');
--CONSULTA NR 8
select id_medico, nombre_medico, apellidos_medico from Medicos where especialidad like 'Psiquiatría';
select nombre, apellidos fecha_ing from Pacientes, Ingresos where nro_historial in (select nro_hist from Ingresos
where id_medico in (select id_medico from Medicos where especialidad like 'Psiquiatría')) and
fecha_ing in (select fecha_ing from Ingresos where fecha_ing in (select fecha_ing from Ingresos where
id_medico in (select id_medico from Medicos where especialidad like 'Psiquiatría')));

14

También podría gustarte