Está en la página 1de 6

Joaquín Marín García

EJERCICIO 1:

CREATE TABLE Alumnos (


Matricula NUMBER (1) PRIMARY KEY ,
Nombre VARCHAR2 (15) ,
);

CREATE TABLE Asignaturas (


Codigo VARCHAR2 (2) PRIMARY KEY ,
Titulo VARCHAR2(30) ,
);

CREATE TABLE Matriculan (


MatAlumno NUMBER (1) NOT NULL,
CodAsignatura VARCHAR2 (2) NOT NULL ,
PRIMARY KEY (MatAlumno, CodAsignatura) ,
REFERENCES MatAlumno FROM Alumnos ,
REFERENCES CodAsignatura FROM Asignaturas ,
);

INSERT INTO Alumnos


(Matricula, Nombre)
VALUES
(1, “Miguel”);

INSERT INTO Alumnos


(Matricula, Nombre)
VALUES
(2, “Pedro”);

INSERT INTO Alumnos


(Matricula, Nombre)
VALUES
(3, “María”);

INSERT INTO Alumnos


(Matricula, Nombre)
VALUES
(4, “Elena”);

INSERT INTO Alumnos


(Matricula, Nombre)
VALUES
(5, “Eva”);

INSERT INTO Asignaturas


(Codigo, Titulo)
VALUES
(“A1”, “BBDD”);
INSERT INTO Asignaturas
(Codigo, Titulo)
VALUES
(“A2”, “SSOO”);

INSERT INTO Asignaturas


(Codigo, Titulo)
VALUES
(“A3”, “Probabilidad”);

INSERT INTO Asignaturas


(Codigo, Titulo)
VALUES
(“A4”, “Inteligencia Artificial”);

INSERT INTO Matriculan


(MatAlumno, CodAsignatura)
VALUES
(1, “A1”);

INSERT INTO Matriculan


(MatAlumno, CodAsignatura)
VALUES
(2, “A1”);

INSERT INTO Matriculan


(MatAlumno, CodAsignatura)
VALUES
(5, “A1”);

INSERT INTO Matriculan


(MatAlumno, CodAsignatura)
VALUES
(1, “A2”);

INSERT INTO Matriculan


(MatAlumno, CodAsignatura)
VALUES
(1, “A3”);

1.2.
No seria necesario ninguna sentencia ya que Eva ya se encuentra matriculada en BBDD.

1.3.
UPDATE Asignaturas
SET Titulo = “BBDD”
WHERE
Codigo = “A1” ;

1.4.
DELETE FROM Asignaturas
WHERE codigo = “A4” ;

EJERCICIO 2:

2.1:

CREATE TABLE MEDICO (


cod_medico VARCHAR2 (15) PRIMARY KEY ,
nombre VARCHAR2 (15) ,
especialidad VARCHAR2 (30) DEFAULT “FAM” ,
cod_director VARCHAR (15) FOREIGN KEY ,
REFERENCES cod_director FROM Medico ON DELETE CASCADE ,
);

CREATE TABLE ENFERMO (


cod_inscripcion VARCHAR2 (15) PRIMARY KEY ,
nss VARCHAR2 (10) ,
nombre VARCHAR2 (15) ,
sexo VARCHAR(1) ,
);

CREATE TABLE HABITACION (


num_hab NUMBER (3) NO NULL CHECK (num_hab BETWEEN 100 AND 399) ,
numero_camas NUMBER (1) CHECK (numero_camas < 3) ,
PRIMARY KEY (num_hab) ,
);

CREATE TABLE INGRESO (


cod_ingreso VARCHAR2 (15) PRIMARY KEY ,
fecha_ingreso DATE default SYSDATE ,
fecha_alta DATE CHECK (fecha_alta IS NOT NULL = fecha_alta > fecha_ingreso) ,
cod_inscripcion VARCHAR2 (15) NOT NULL ,
num_hab NUMBER(3) NOT NULL ,
REFENRECES cod_inscripcion FROM Enfermo ON DELETE CASCADE,
REFERENCES num_hab FROM HABITACION , #Esto seria para evitar que se borren las
habitaciones en las que hay ingresos
);

CREATE TABLE VISITA (


cod_medico VARCHAR2 (15) NOT NULL ,
cod_inscripcion VARCHAR2 (15) NOT NULL ,
fecha VARCHAR (15) ,
diagnostico VARCHAR2 (30) ,
PRIMARY KEY (cod_medico, cod_inscripcion) ,
REFERENCES cod_medico FROM MEDICO ON DELETE CASCADE ,
REFERENCES cod_inscripcion FROM ENFERMO ON DELETE CASCADE ,
);
2.2:

i) ALTER TABLE ENFERMO ADD CONSTRAINT sexo_UQ


CHECK (sexo IN (“H, “M”)) ,
);

j)

k) ALTER TABLE MEDICO ADD CONSTRAINT especialidad_UQ


CHECK (especialidad = UPPER(especialidad) and especialidad = 3
);

l) INSERT INTO MEDICO


(cod_medico , nombre, especialidad , cod_director )
VALUES
(“1”, “Julian”, “PCR”, “6”)
);

INSERT INTO ENFERMO


(cod_inscripcion, nss, nombre, sexo)
VALUES
(“1”, “4512358910”, “Jesus”, “H” )
);

INSERT INTO ENFERMO


(cod_inscripcion, nss, nombre, sexo)
VALUES
(“2”, “4512345910”, “Javi”, “H” )
);

m)

n) INSERT INTO VISITA


(cod_medico, cod_inscripcion, fecha, diagnostico)
VALUES
(“1”, “1”, “2020-12-28”)
);

o) ALTER TABLE VISITA ADD fecha_proxima_visita DATE ;

p) UPDATE FROM ENFERMO


SET nombre = “PEPE PEREZ”, sexo = “H”
WHERE
cod_inscripcion = “1”
);

q) DELETE FROM ENFERMO


WHERE cod_inscricion = “1”
);
r) DELETE FROM

3. EJERCICIO 3:

CREATE TABLE Pais (


nombre text PRIMARY KEY ,
);

CREATE TABLE Tipo (


tipo text NOT NULL PRIMARY KEY ,
);

CREATE TABLE Organizacion (


nombre text NOT NULL PRIMARY KEY ,
);

CREATE TABLE Agrupa ( #Relacion ternaria


nombre_pais text NOT NULL ,
tipo text NOT NULL ,
nombre_organizacion text NOT NULL ,
PRIMARY KEY (nombre_pais, tipo, nombre_organizacion) ,
REFERENCES nombre_pais FROM Pais (nombre) ,
REFERENCES tipo FROM Tipo ,
REFERENCES nombre_organizacion FROM Organizacion (nombre) ,
);

CREATE TABLE Organizacion_avala (


nombre text NOT NULL PRIMARY KEY ,
nombre_c text NOT NULL
REFERENCES nombre_c FROM Organizacion ,
);

CREATE TABLE LOCALIDAD (


codigo text NOT NULL PRIMARY KEY ,
nombre text ,
);

CREATE TABLE Pais_Accidente (


nombre_pais text NOT NULL ,
codigo number NOT NULL,
nombre text,
primary key (nombre_pais, codigo),
REFERENCES nombre_pais FROM Pais (nombre) ,
);

CREATE TABLE Accidente_Lago (


nombre_pais text NOT NULL ,
codigo_accidente text NOT NULL ,
codigo_lago text NOT NULL ,
volumen text,
PRIMARY KEY (nombre_pais, código_accidente, código_lago) ,
);

CREATE TABLE Accidente_Montaña (


nombre_pais text NOT NULL ,
codigo_accidente text NOT NULL ,
codigo_montaña text NOT NULL ,
altura_max text,
PRIMARY KEY (nombre_pais, código_accidente, código_montaña) ,
REFERENCES nombre_pais FROM Pais(nombre)
REFERENCES codigo_accidente FROM Pais_accidente (codigo) ,
);

CREATE TABLE Accidente_Rio (


nombre_pais text NOT NULL ,
codigo_accidente text NOT NULL ,
codigo_rio text NOT NULL ,
PRIMARY KEY (nombre_pais, código_accidente, código_rio) ,
REFERENCES nombre_pais FROM Pais ,
REFERENCES codigo_accidente FROM Pais_Accidente (codigo) ,
);

CREATE TABLE Localidad_RIO (


codigo_localidad text NOT NULL ,
codigo_rio text NOT NULL ,
km text ,
PRIMARY KEY (codigo_localidad, codigo_rio)
REFERENCES codigo_localidad FROM Localidad (codigo) ,
REFERENCES codigo_rio FROM Rio (codigo) ,
);

También podría gustarte