--s3 Planeamento e acompanhamento das aulas

CREATE TABLE FichasDisciplina
(
	codigo			INTEGER CONSTRAINT fichasDisciplina_pk PRIMARY KEY,
	ocorrencia		INTEGER CONSTRAINT fichasDisciplina_ocorrencia_fk REFERENCES Ocorrencias(codigo),
	objectivo		VARCHAR2(2000),
	programa		VARCHAR2(2000),
	bibliografia		VARCHAR2(2000),
	recursos		VARCHAR2(2000),
	metodologia		VARCHAR2(2000),
	avaliacao		VARCHAR2(2000),
	preRequisitos		VARCHAR2(2000),
	introdutor		VARCHAR(8) CONSTRAINT fichasDisciplina_introdutor_fk REFERENCES Docentes(codigo),
	data			DATE CONSTRAINT fichasDisciplina_data_nn NOT NULL,
	activo			CHAR(1) CONSTRAINT fichasDisciplina_activo_ck CHECK(activo IN ('S','N'))
);

--exame, continua, relatorio, trabalho
CREATE TABLE TiposItensAvaliacao
(
	sigla			VARCHAR(8) CONSTRAINT tiposItensAvaliacao_pk PRIMARY KEY,
	nome			VARCHAR(80) CONSTRAINT tiposItensAvaliacao_nome_nn NOT NULL
);

CREATE TABLE ItensAvaliacao
(
	codigo			INTEGER CONSTRAINT itensAvaliacao_pk PRIMARY KEY,
	nome			VARCHAR(80),
	ocorrencia		INTEGER CONSTRAINT itensAvaliacao_ocorrencia_fk REFERENCES Ocorrencias(codigo),
   	peso			NUMBER(4,1) CONSTRAINT itensAvaliacao_peso_nn NOT NULL,
	data			DATE CONSTRAINT itensAvaliacao_data_nn NOT NULL,
	tipoItem		VARCHAR(8) CONSTRAINT itensAvaliacao_tipoItem_fk REFERENCES TiposItensAvaliacao(sigla)
);

CREATE TABLE Aulas
(
	codigo			INTEGER CONSTRAINT aulas_pk PRIMARY KEY,
	turma			INTEGER CONSTRAINT aulas_turma_fk REFERENCES Turmas(codigo),
	data			DATE CONSTRAINT aulas_data_nn NOT NULL,
	conteudo		VARCHAR2(2000),
	notas			VARCHAR2(2000),
	sumario			CHAR(1) CHECK(sumario IN ('S','N')),
	tipoAula		VARCHAR(8) CONSTRAINT aulas_tipoAula_fk REFERENCES TiposAulas(sigla)
);

COMMIT;
