Está en la página 1de 2

CREATE TABLE productor (

id_productor SERIAL PRIMARY KEY,


nombre VARCHAR(255) NOT NULL,
categoria VARCHAR(255) NOT NULL,
produccion_media DOUBLE PRECISION NOT NULL,
produccion_maxima DOUBLE PRECISION NOT NULL,
fecha_entrada_funcionamiento DATE NOT NULL
);

CREATE TABLE central_hidroelectrica (


id_productor INTEGER REFERENCES productor (id_productor) NOT NULL,
ocupacion VARCHAR(255) NOT NULL,
capacidad_maxima DOUBLE PRECISION NOT NULL,
numero_turbinas INTEGER NOT NULL
);

CREATE TABLE central_solar (


id_productor INTEGER REFERENCES productor (id_productor) NOT NULL,
superficie_total_paneles_solares DOUBLE PRECISION NOT NULL,
horas_sol_anual DOUBLE PRECISION NOT NULL,
tipo VARCHAR(255) NOT NULL
);

CREATE TABLE central_nuclear (


id_productor INTEGER REFERENCES productor (id_productor) NOT NULL,
numero_reactores INTEGER NOT NULL,
volumen_plutonio_consumido DOUBLE PRECISION NOT NULL,
volumen_residuos_nucleares_producidos DOUBLE PRECISION NOT NULL
);

CREATE TABLE central_termica (


id_productor INTEGER REFERENCES productor (id_productor) NOT NULL,
numero_hornos INTEGER NOT NULL,
volumen_carbon_consumido DOUBLE PRECISION NOT NULL,
volumen_emision_gases DOUBLE PRECISION NOT NULL
);

CREATE TABLE suministrador (


id_suministrador SERIAL PRIMARY KEY,
id_central_nuclear INTEGER REFERENCES central_nuclear (id_productor) NOT NULL,
nombre_suministrador VARCHAR(255) NOT NULL,
pais_suministrador VARCHAR(255) NOT NULL,
nombre_transportista VARCHAR(255) NOT NULL,
matricula_transportista VARCHAR(255) NOT NULL,
cantidad DOUBLE PRECISION NOT NULL
);

CREATE TABLE estacion_primaria (


id_estacion_primaria SERIAL PRIMARY KEY,
nombre VARCHAR(255) NOT NULL,
numero_transformadores_baja_alta_tension INTEGER NOT NULL
);

CREATE TABLE red_distribucion (


id_red_distribucion SERIAL PRIMARY KEY,
id_estacion_primaria INTEGER REFERENCES estacion_primaria (id_estacion_primaria)
NOT NULL,
numero_red INTEGER NOT NULL,
nombre_compania_electrica VARCHAR(255) NOT NULL
);

CREATE TABLE intercambio_energia (


id_intercambio_energia SERIAL PRIMARY KEY,
id_red_origen INTEGER REFERENCES red_distribucion (id_red_distribucion) NOT NULL,
id_red_destino INTEGER REFERENCES red_distribucion (id_red_distribucion) NOT
NULL,
volumen_energia DOUBLE PRECISION NOT NULL
);

CREATE TABLE linea (


id_linea SERIAL PRIMARY KEY,
id_red INTEGER REFERENCES red_distribucion (id_red) NOT NULL,
numero_linea INTEGER NOT NULL,
longitud DOUBLE PRECISION NOT NULL
);

CREATE TABLE subestacion (


id_subestacion SERIAL PRIMARY KEY,
id_linea INTEGER REFERENCES linea (id_linea) NOT NULL,
provincia VARCHAR(255) NOT NULL,
nombre VARCHAR(255) NOT NULL
);

CREATE TABLE zona_servicio (


id_zona_servicio SERIAL PRIMARY KEY,
id_subestacion INTEGER REFERENCES subestacion (id_subestacion) NOT NULL,
consumo_medio DOUBLE PRECISION NOT NULL,
particulares INTEGER NOT NULL,
empresas INTEGER NOT NULL,
instituciones INTEGER NOT NULL
);

CREATE TABLE provincia (


id_provincia SERIAL PRIMARY KEY,
codigo VARCHAR(255) NOT NULL,
nombre VARCHAR(255) NOT NULL
);

CREATE TABLE consumidor_final (


id_consumidor_final SERIAL PRIMARY KEY,
id_zona_servicio INTEGER REFERENCES zona_servicio (id_zona_servicio) NOT NULL,
categoria VARCHAR(255) NOT NULL,
consumo_anual DOUBLE PRECISION NOT NULL
);

CREATE TABLE transportista (


id_transportista SERIAL PRIMARY KEY,
nombre VARCHAR(255) NOT NULL,
matricula VARCHAR(255) NOT NULL
);

También podría gustarte