SISTEMA DE RESERVA ACADÊMICA
Por: eduardamaia17 • 27/1/2018 • 1.220 Palavras (5 Páginas) • 362 Visualizações
...
matricula INTEGER NOT NULL,
nome VARCHAR(90) NOT NULL,
email VARCHAR(100) NOT NULL,
telefone CHAR (11) NOT NULL,
data_admissao DATE NOT NULL,
CONSTRAINT PK_PROFESSOR
PRIMARY KEY ( matricula )
);
--CURSO
CREATE TABLE CURSO (
codigo VARCHAR (10) NOT NULL,
nome VARCHAR(60) NOT NULL,
qtd_semestre INTEGER NOT NULL,
CONSTRAINT PK_CURSO
PRIMARY KEY (codigo)
);
--DISCIPLINA
CREATE TABLE DISCIPLINA (
codigo VARCHAR (10) NOT NULL,
codigo_curso VARCHAR (10) NOT NULL,
nome VARCHAR(70) NOT NULL,
qtd_carga_horaria NUMERIC (10,2) NOT NULL,
unique (codigo),
CONSTRAINT PK_DISCIPLINA
PRIMARY KEY (codigo),
CONSTRAINT PK_DISCIPLINA_CODIGO_CURSO
FOREIGN KEY (codigo_curso) REFERENCES CURSO
);
--TURMA
CREATE TABLE TURMA (
id SERIAL NOT NULL,
codigo VARCHAR(10) NOT NULL,
-- id_horario INTEGER NOT NULL,
codigo_disciplina VARCHAR(10) NOT NULL,
matricula_professor INTEGER NOT NULL,
qtd_vaga NUMERIC(10,2) NOT NULL,
-- id_ano_semestre INTEGER NOT NULL,
CONSTRAINT PK_TURMA
PRIMARY KEY ( id ),
CONSTRAINT FK_TURMA_DISCIPLINA
FOREIGN KEY ( codigo_disciplina ) REFERENCES DISCIPLINA (codigo),
CONSTRAINT FK_TURMA_PROFESSOR
FOREIGN KEY ( matricula_professor) REFERENCES PROFESSOR (matricula )
);
-- ALUNO
CREATE TABLE ALUNO (
matricula SERIAL NOT NULL,
nome VARCHAR(90) NOT NULL,
email VARCHAR(100) NOT NULL,
telefone CHAR (11) NOT NULL,
CONSTRAINT PK_ALUNO
PRIMARY KEY ( matricula )
);
--TURMA_ALUNO
CREATE TABLE TURMA_ALUNO (
id SERIAL NOT NULL,
id_turma INTEGER NOT NULL,
matricula_aluno INTEGER NOT NULL,
CONSTRAINT PK_TURMA_ALUNO
PRIMARY KEY (id),
CONSTRAINT FK_TURMA_ALUNO_TURMA
FOREIGN KEY ( id_turma) REFERENCES TURMA,
CONSTRAINT FK_TURMA_ALUNO_ALUNO
FOREIGN KEY (matricula_aluno) REFERENCES ALUNO
);
-- HORÁRIO
CREATE TABLE HORARIO(
id SERIAL NOT NULL,
horario_inicio TIME NOT NULL,
horario_fim TIME NOT NULL,
CONSTRAINT PK_HORARIO
PRIMARY KEY (id)
);
-- TURMA ANO_SEMESTRE
CREATE TABLE TURMA_ANO_SEMESTRE (
id SERIAL NOT NULL,
id_turma INTEGER NOT NULL,
id_ano_semestre INTEGER NOT NULL,
dia_semana CHAR(1) NOT NULL,
CONSTRAINT PK_TURMA_ANO_SEMESTRE
PRIMARY KEY (id)
);
ALTER TABLE TURMA_ANO_SEMESTRE ADD CHECK (dia_semana IN ( ’1’, ’2’, ’3’, ’4’, ’5’, ’6’, ’7’));
-- 1 --> Domingo 2 --> Segunda 3 --> Terça 4 --> Quarta 5 --> Quinta 6 --> Sexta 7 --> Sábado
ALTER TABLE TURMA_ANO_SEMESTRE
ADD CONSTRAINT FK_TURMA_ANO_SEMESTRE_TURMA
FOREIGN KEY ( id_turma) REFERENCES TURMA ;
ALTER TABLE TURMA_ANO_SEMESTRE
ADD CONSTRAINT FK_TURMA_ANO_SEMESTRE_ANO_SEMESTRE
FOREIGN KEY ( id_ano_semestre) REFERENCES ANO_SEMESTRE;
--TURMA_HORARIO
CREATE TABLE TURMA_HORARIO (
id_turma INTEGER NOT NULL,
id_horario INTEGER NOT NULL,
CONSTRAINT PK_TURMA_HORARIO
PRIMARY KEY (id_turma, id_horario));
ALTER TABLE TURMA_HORARIO
ADD CONSTRAINT FK_TURMA_HORARIO_ID_TURMA
...