Está en la página 1de 3

Reto 1: Base de Datos.

Nicolás Jiménez de la Torre


1.- Realizar el diagrama entidad-relación.

2.- Generar los comandos DDL de creación de las tablas.

CREATE TABLE Paciente (


id INTEGER,
codigo_paciente INTEGER,
nombre TEXT,
apellidos TEXT,
direccion TEXT,
poblacion TEXT,
provincia TEXT,
codigo_postal TEXT,
telefono TEXT,
fecha_nacimiento DATE,
PRIMARY KEY ('id' AUTOINCREMENT)
);
CREATE TABLE Medico (
id INTEGER,
codigo_medico INTEGER,
nombre TEXT,
apellidos TEXT,
telefono TEXT,
especialidad TEXT,
PRIMARY KEY ('id' AUTOINCREMENT)
);
CREATE TABLE Ingreso (
id INTEGER,
codigo_ingreso INTEGER,
num_habitacion INTEGER,
num_cama INTEGER,
fecha_ingreso DATE,
codigo_paciente INTEGER,
codigo_medico INTEGER,
PRIMARY KEY ('id' AUTOINCREMENT)
);
3.- Generar las siguientes vistas:
a) Vista que muestre la información de los pacientes junto con el nombre completo del médico
que los atiende.

b) Vista que muestra la cantidad de ingresos realizados por cada paciente.

c) Vista que muestre la lista de médicos junto con la cantidad de pacientes que han atendido.
4.- Mostrar los comandos para consultar las vistas.
CREATE VIEW PacienteMedico AS
SELECT P.id AS idpac,P.apellidos,P.nombre, P.codigo_paciente,P.codigo_postal,
P.provincia,P.poblacion,P.direccion,P.fecha_nacimiento,P.telefono,M.nombre AS
nombre_medico,M.apellidos AS apellidos_medico
FROM Paciente P INNER JOIN Medico M ON P.id=M.id

CREATE VIEW PacienteIngresos AS


SELECT I.Id, P.nombre, COUNT(*)AS cantidad_ingresos
FROM Ingreso I INNER JOIN Paciente P
ON I.id=P.id

CREATE VIEW CantidadPacientesAtendidos AS


SELECT M.codigo_medico,M.nombre,M.apellidos, M.telefono, M.especialidad,M.id,P.id,
COUNT(P.id) AS cantidad_de_pacientes_atendidos
from Medico M INNER JOIN Paciente P
on M.id=P.id
GROUP BY M.codigo_medico, M.nombre, M.apellidos

También podría gustarte