DROP TABLE Barcos; DROP TABLE Especies; DROP TABLE Lotes; CREATE TABLE Barcos( matricula CHAR(7) PRIMARY KEY, nombre VARCHAR(20), clase VARCHAR(20), capacidad NUMBER(8,2), nacionalidad VARCHAR(20) ); CREATE TABLE Lotes( codigo INT PRIMARY KEY, matricula CHAR(7), /* references Barcos(matricula) */ num_kg NUMBER(8,2) CHECK(num_kg > 0), precio_kg_salida NUMBER(8,2) CHECK(precio_kg_salida > 0), precio_kg_vendido NUMBER(8,2) CHECK(precio_kg_vendido > 0), fecha_venta DATE NOT NULL, cod_especie INT /* references Especies(codigo) */ ); CREATE TABLE Especies( codigo INT PRIMARY KEY, nombre VARCHAR(20), tipo VARCHAR(20), cupo_barco NUMBER(8,2), caladero_ppal INT /* references Caladeros(codigo) */ ); CREATE TABLE Caladeros( codigo INT PRIMARY KEY, nombre VARCHAR(20) CHECK(nombre = UPPER(nombre)), ubicacion VARCHAR(20) CHECK(ubicacion = UPPER(ubicacion)), especie_ppal INT /* references Especies(codigo) */ ); CREATE TABLE Fechas_Capturas( cod_especie INT, /* references Especies(codigo) */ cod_caladero INT, /* references Caladeros(codigo) */ fecha_inicio DATE, fecha_fin DATE, PRIMARY KEY(cod_especie, cod_caladero) ); ALTER TABLE Lotes ADD CONSTRAINT FK_Lotes_matricula FOREIGN KEY (matricula) REFERENCES Barcos(matricula) ON DELETE CASCADE; ALTER TABLE Lotes ADD CONSTRAINT FK_Lotes_cod_especie FOREIGN KEY (cod_especie) REFERENCES Especies(codigo) ON DELETE CASCADE; ALTER TABLE Especies ADD CONSTRAINT FK_Especies_caladero_ppal FOREIGN KEY (caladero_ppal) REFERENCES Caladeros(codigo) ON DELETE RESTRICT; ALTER TABLE Caladeros ADD CONSTRAINT FK_Caladeros_especie_ppal FOREIGN KEY (especie_ppal) REFERENCES Especies(codigo) ON DELETE SET NULL; ALTER TABLE Fechas_Capturas ADD CONSTRAINT FK_Fechas_Capturas_cod_especie FOREIGN KEY (cod_especie) REFERENCES Especies(codigo); ALTER TABLE Fechas_Capturas ADD CONSTRAINT FK_Fechas_Capturas_cod_caladero FOREIGN KEY (cod_caladero) REFERENCES Caladeros(codigo); ALTER TABLE Barcos ADD CHECK(REGEXP_LIKE(matricula, '[A-Z]{2}-[0-9]{4}')); ALTER TABLE Lotes ADD CHECK(precio_kg_vendido > precio_kg_salida); ALTER TABLE Fechas_Capturas ADD CHECK(fecha_inicio BETWEEN '02-02-2022' AND '28-03-2022');