From 8db4d98fec6c9db6e4469e400dfc9e572eaca20d Mon Sep 17 00:00:00 2001 From: Chris Cromer Date: Wed, 3 Jun 2020 18:17:40 -0400 Subject: [PATCH] agregar schema de base de datos --- schema.sql | 140 +++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 140 insertions(+) create mode 100644 schema.sql diff --git a/schema.sql b/schema.sql new file mode 100644 index 0000000..3026675 --- /dev/null +++ b/schema.sql @@ -0,0 +1,140 @@ +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 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 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_ciudad) +); + +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 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 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 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 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 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 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_pk PRIMARY KEY (id_hotel, id_delegacion), + 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, id_medalla), + 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), + 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), + 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) +);