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, 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_DELEGACION NUMBER, PRECIO_ATLETA NUMBER, CONSTRAINT HOSPEDAR_PK PRIMARY KEY (ID_HOTEL, ID_DELEGACION, FECHA_INICIO), 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_PK PRIMARY KEY (ID_ATLETA, ID_COMPETENCIA, FECHA), 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_PK PRIMARY KEY (ID_COMPETENCIA, ID_ATLETA, FECHA), 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_PK PRIMARY KEY (ID_PRECOMPETENCIA, ID_ATLETA, FECHA), 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) ); CREATE TABLE PERTENECER( ID_DELEGACION NUMBER, ID_PAIS NUMBER, CONSTRAINT PERTENECER_PK PRIMARY KEY (ID_DELEGACION, ID_PAIS), CONSTRAINT PERTENECER_DELEGACION_FK FOREIGN KEY (ID_DELEGACION) REFERENCES DELEGACION(ID_DELEGACION), CONSTRAINT PERTENECER_PAIS_FK FOREIGN KEY (ID_PAIS) REFERENCES PAIS(ID_PAIS) ); CREATE TABLE COMPETER_POR( ID_ATLETA NUMBER, ID_DELEGACION NUMBER, CONSTRAINT COMPETER_POR_PK PRIMARY KEY (ID_ATLETA, ID_DELEGACION), CONSTRAINT COMPETER_POR_ATLETA_FK FOREIGN KEY (ID_ATLETA) REFERENCES ATLETA(ID_ATLETA), CONSTRAINT COMPETER_POR_DELEGACION_FK FOREIGN KEY (ID_DELEGACION) REFERENCES DELEGACION(ID_DELEGACION) );