create table Alunos (
num_aluno int auto_increment not null,
nome_aluno varchar(40) not null,
data_nascimento date not null,
sexo char,
morada_aluno varchar(15),
primary key (num_aluno));

create table Cursos(
num_curso int auto_increment not null,
nome_curso varchar(12) not null,
primary key (num_curso));

create table Disciplinas (
num_disciplina int auto_increment not null,
nome_disciplina varchar(12) not null,
ano_curricular integer,
num_horas integer,
primary key (num_disciplina));

create table Professores (
num_professor int auto_increment not null,
nome_professor varchar(40) not null,
data_nascimento date not null,
sexo char,
primary key (num_professor));

create table Professores_Disciplinas (
num_professor integer references Professores(num_professor),
num_disciplina integer references Disciplinas(num_disciplina),
ano_lectivo integer,
primary key(num_professor,num_disciplina));

create table Cursos_Disciplinas (
num_curso integer references Cursos(num_curso),
num_disciplina integer references Disciplinas(num_disciplina),
primary key (num_curso,num_disciplina));

create table Matriculas(
num_aluno integer references Alunos(num_aluno),
num_disciplina integer references Disciplinas(num_disciplina),
ano_lectivo integer,
nota integer,
primary key (num_aluno,num_disciplina,ano_lectivo));

