CREATE TABLE medalla( id_medalla NUMBER GENERATED ALWAYS as IDENTITY(START with 1 INCREMENT by 1), descripcion VARCHAR2(50), CONSTRAINT medalla_pk PRIMARY KEY (id_medalla) ); CREATE TABLE categoria( id_categoria NUMBER GENERATED ALWAYS as IDENTITY(START with 1 INCREMENT by 1), descripcion VARCHAR(50), CONSTRAINT categoria_pk PRIMARY KEY (id_categoria) ); CREATE TABLE atleta ( id_atleta NUMBER GENERATED ALWAYS as IDENTITY(START with 1 INCREMENT by 1), nombre VARCHAR2(50), apellido VARCHAR2(50), fecha_nacimiento DATE, nacionalidad VARCHAR2(50), CONSTRAINT atleta_pk PRIMARY KEY (id_atleta) ); CREATE TABLE pais( id_pais NUMBER GENERATED ALWAYS as IDENTITY(START with 1 INCREMENT by 1), nombre VARCHAR(50), CONSTRAINT pais_pk PRIMARY KEY (id_pais) ); CREATE TABLE tipos_deportes( id_tipo NUMBER GENERATED ALWAYS as IDENTITY(START with 1 INCREMENT by 1), descripcion VARCHAR(50), CONSTRAINT tipo_pk PRIMARY KEY (id_tipo) ); CREATE TABLE ciudad( id_ciudad NUMBER GENERATED ALWAYS as IDENTITY(START with 1 INCREMENT by 1), nombre VARCHAR(50), pais NUMBER, CONSTRAINT ciudad_pk PRIMARY KEY (id_ciudad), CONSTRAINT ciudad_pais_fk FOREIGN KEY (pais) REFERENCES pais(id_pais) ); CREATE TABLE lugar ( id_lugar NUMBER GENERATED ALWAYS as IDENTITY(START with 1 INCREMENT by 1), nombre VARCHAR2(50), capacidad NUMBER, ciudad NUMBER, CONSTRAINT lugar_pk PRIMARY KEY (id_lugar), CONSTRAINT lugar_ciudad_fk FOREIGN KEY (ciudad) REFERENCES ciudad(id_ciudad) ); CREATE TABLE hotel( id_hotel NUMBER GENERATED ALWAYS as IDENTITY(START with 1 INCREMENT by 1), nombre VARCHAR2(50), ciudad NUMBER, CONSTRAINT hotel_pk PRIMARY KEY (id_hotel), CONSTRAINT hotel_ciudad_fk FOREIGN KEY (ciudad) REFERENCES ciudad(id_ciudad) ); CREATE TABLE capital( id_pais NUMBER, id_ciudad NUMBER, CONSTRAINT capital_pk PRIMARY KEY (id_pais, id_ciudad), CONSTRAINT capital_pais_fk FOREIGN KEY (id_pais) REFERENCES pais(id_pais), CONSTRAINT capital_ciudad_fk FOREIGN KEY (id_ciudad) REFERENCES ciudad(id_ciudad) ); CREATE TABLE delegacion( id_delegacion NUMBER GENERATED ALWAYS as IDENTITY(START with 1 INCREMENT by 1), nombre VARCHAR2(50), cantidad_atletas NUMBER, pais NUMBER, atleta NUMBER, CONSTRAINT delegacion_pk PRIMARY KEY (id_delegacion), CONSTRAINT delegacion_pais_fk FOREIGN KEY (pais) REFERENCES pais(id_pais), CONSTRAINT delegacion_atleta_fk FOREIGN KEY (atleta) REFERENCES atleta(id_atleta) ); CREATE TABLE competencia( id_competencia NUMBER GENERATED ALWAYS as IDENTITY(START with 1 INCREMENT by 1), nombre VARCHAR2(50), categoria NUMBER, tipo NUMBER, lugar NUMBER, CONSTRAINT competencia_pk PRIMARY KEY (id_competencia), CONSTRAINT competencia_categoria_fk FOREIGN KEY (categoria) REFERENCES categoria(id_categoria), CONSTRAINT competencia_tipo_fk FOREIGN KEY (tipo) REFERENCES tipos_deportes(id_tipo), CONSTRAINT competencia_lugar_fk FOREIGN KEY (lugar) REFERENCES lugar(id_lugar) ); CREATE TABLE precompetencia( id_precompetencia NUMBER GENERATED ALWAYS as IDENTITY(START with 1 INCREMENT by 1), fecha DATE, competencia NUMBER, lugar NUMBER, CONSTRAINT precompetencia_pk PRIMARY KEY (id_precompetencia), CONSTRAINT precompetencia_competencia_fk FOREIGN KEY (competencia) REFERENCES competencia(id_competencia), CONSTRAINT precompetencia_lugar_fk FOREIGN KEY (lugar) REFERENCES lugar(id_lugar) ); CREATE TABLE hospedar( id_hotel NUMBER, id_delegacion NUMBER, fecha_inicio DATE, fecha_fin DATE, precio NUMBER, CONSTRAINT hospedar_hotel_fk FOREIGN KEY (id_hotel) REFERENCES hotel(id_hotel), CONSTRAINT hospedar_delegacion_fk FOREIGN KEY (id_delegacion) REFERENCES delegacion(id_delegacion) ); CREATE TABLE ganar( id_atleta NUMBER, id_competencia NUMBER, id_medalla NUMBER, fecha DATE, puntaje NUMBER, CONSTRAINT ganar_atleta_fk FOREIGN KEY (id_atleta) REFERENCES atleta(id_atleta), CONSTRAINT ganar_competencia_fk FOREIGN KEY (id_competencia) REFERENCES competencia(id_competencia), CONSTRAINT ganar_medalla_fk FOREIGN KEY (id_medalla) REFERENCES medalla(id_medalla) ); CREATE TABLE participar_competencia( id_competencia NUMBER, id_atleta NUMBER, fecha DATE, CONSTRAINT participar_competencia_competencia_fk FOREIGN KEY (id_competencia) REFERENCES competencia(id_competencia), CONSTRAINT participar_competencia_atleta_fk FOREIGN KEY (id_atleta) REFERENCES atleta(id_atleta) ); CREATE TABLE participar_precompetencia( id_precompetencia NUMBER, id_atleta NUMBER, puntaje NUMBER, fecha DATE, CONSTRAINT participar_precompetencia_precompetencia_fk FOREIGN KEY (id_precompetencia) REFERENCES precompetencia(id_precompetencia), CONSTRAINT participar_precompetencia_atleta_fk FOREIGN KEY (id_atleta) REFERENCES atleta(id_atleta) );