-- Creación de Tablas con sus claves primarias CREATE TABLE carreras( id_carrera int NOT NULL, nombre_carrera varchar(50) NOT NULL, titulo varchar(50) , CONSTRAINT PK_carreras PRIMARY KEY (id_carrera) ); CREATE TABLE sexos( id_sexo integer NOT NULL, n_sexo varchar(20) NOT NULL, CONSTRAINT PK_sexos PRIMARY KEY (id_sexo) ); CREATE TABLE estados_cursados( id_estado integer NOT NULL, n_estado varchar(30) NOT NULL, CONSTRAINT PK_estados_cur PRIMARY KEY (id_estado) ); CREATE TABLE barrios( id_barrio integer NOT NULL, n_barrio varchar(50) NOT NULL, CONSTRAINT PK_barrios PRIMARY KEY (id_barrio) ); CREATE TABLE tipo_notas( id_tipo_nota integer NOT NULL, n_tipo_nota varchar(20) NOT NULL, CONSTRAINT PK_tipo_notas PRIMARY KEY (id_tipo_nota) ); CREATE TABLE tipo_documentos( id_tipo_documento integer NOT NULL, n_tipo_documento varchar(20) NOT NULL, CONSTRAINT PK_tipo_documentos PRIMARY KEY (id_tipo_documento) ); CREATE TABLE materias( id_materia integer NOT NULL, nombre VARCHAR(50) NOT NULL, CONSTRAINT PK_materias PRIMARY KEY (id_materia) ); CREATE TABLE alumnos_cursando_materias( id_materia integer NOT NULL, id_carrera integer NOT NULL, id_estudiante integer NOT NULL, fecha_inscripcion date NOT NULL, id_estado integer NOT NULL, fecha_estado date NOT NULL, CONSTRAINT PK_al_curs_mat PRIMARY KEY (id_materia, id_carrera, id_estudiante, fecha_inscripcion) ); CREATE TABLE alumnos_examenes( id_materia integer NOT NULL, id_carrera integer NOT NULL, id_estudiante integer NOT NULL, fecha_del_examen date NOT NULL, fecha_inscripcion_a_exament date NOT NULL, nota integer, CONSTRAINT PK_alu_exam PRIMARY KEY (id_materia, id_carrera, id_estudiante, fecha_del_examen) ); CREATE TABLE alumnos_cursando_notas( id_materia integer NOT NULL, id_carrera integer NOT NULL, id_estudiante integer NOT NULL, fecha_inscripcion date NOT NULL, fecha_nota date NOT NULL, id_tipo_nota integer NOT NULL, nota integer, CONSTRAINT PK_alu_curs_not PRIMARY KEY (id_materia, id_carrera, id_estudiante, fecha_inscripcion, fecha_nota) ); CREATE TABLE inscripciones_a_carreras( id_estudiante integer NOT NULL, id_carrera integer NOT NULL, fecha date NOT NULL, CONSTRAINT PK_inscr_a_carr PRIMARY KEY (id_estudiante,id_carrera) ); CREATE TABLE plan_de_carrera( id_materia integer NOT NULL, id_carrera integer NOT NULL, anio_cursado integer, cuatrimestre_anio integer, CONSTRAINT PK_plan_de_carrera PRIMARY KEY (id_materia,id_carrera)); CREATE TABLE estudiantes( id_estudiante int NOT NULL, apellido varchar(30) NOT NULL, nombres varchar(100) NOT NULL, id_tipo_documento int NOT NULL, documento bigint NOT NULL, id_sexo int, calle varchar(60) NOT NULL, calle_numero varchar(30) NOT NULL, id_barrio int, CONSTRAINT PK_estudiantes PRIMARY KEY (id_estudiante) ); CREATE TABLE materias_x_turnos_examenes( id_turno integer NOT NULL, id_materia integer NOT NULL, id_carrera integer NOT NULL, fecha_del_examen date NOT NULL, CONSTRAINT PK_matxturexam PRIMARY KEY (id_materia, id_carrera, fecha_del_examen) ); ALTER TABLE alumnos_cursando_materias ADD CONSTRAINT FK_alucurma_esta FOREIGN KEY(id_estado) REFERENCES estados_cursados (id_estado); ALTER TABLE alumnos_cursando_materias ADD CONSTRAINT FK_alucurma_est FOREIGN KEY(id_estudiante) REFERENCES estudiantes (id_estudiante); ALTER TABLE alumnos_cursando_materias ADD CONSTRAINT FK_alcurma_plan FOREIGN KEY(id_materia, id_carrera) REFERENCES plan_de_carrera (id_materia, id_carrera); ALTER TABLE alumnos_examenes ADD CONSTRAINT FK_alu_exam_est FOREIGN KEY(id_estudiante) REFERENCES estudiantes (id_estudiante); ALTER TABLE alumnos_examenes ADD CONSTRAINT FK_alexamatxturexa FOREIGN KEY(id_materia, id_carrera, fecha_del_examen) REFERENCES materias_x_turnos_examenes (id_materia, id_carrera, fecha_del_examen); ALTER TABLE alumnos_cursando_notas ADD CONSTRAINT FK_alcurnotnotas FOREIGN KEY(id_tipo_nota) REFERENCES tipo_notas (id_tipo_nota); ALTER TABLE alumnos_cursando_notas ADD CONSTRAINT FK_alcunoAlucurmat FOREIGN KEY(id_materia, id_carrera, id_estudiante,fecha_inscripcion) REFERENCES alumnos_cursando_materias (id_materia, id_carrera, id_estudiante, fecha_inscripcion); ALTER TABLE inscripciones_a_carreras ADD CONSTRAINT FK_insccarrcarr FOREIGN KEY(id_carrera) REFERENCES carreras(id_carrera); ALTER TABLE inscripciones_a_carreras ADD CONSTRAINT FK_insccarrest FOREIGN KEY(id_estudiante) REFERENCES estudiantes (id_estudiante); ALTER TABLE plan_de_carrera ADD CONSTRAINT FK_pcarreracarr FOREIGN KEY(id_carrera) REFERENCES carreras (id_carrera); ALTER TABLE plan_de_carrera ADD CONSTRAINT FK_pcarremate FOREIGN KEY(id_materia) REFERENCES materias (id_materia); ALTER TABLE estudiantes ADD CONSTRAINT FK_estbarrios FOREIGN KEY(id_barrio) REFERENCES barrios (id_barrio); ALTER TABLE estudiantes ADD CONSTRAINT FK_estudsexos FOREIGN KEY(id_sexo) REFERENCES sexos (id_sexo); ALTER TABLE estudiantes ADD CONSTRAINT FK_esttipodoc FOREIGN KEY(id_tipo_documento) REFERENCES tipo_documentos (id_tipo_documento);