
--USE MASTER
--GO
--ALTER DATABASE Gestao_ATL SET SINGLE_USER WITH ROLLBACK IMMEDIATE
--DROP DATABASE Gestao_ATL
--GO
CREATE DATABASE Gestao_ATL
GO
USE Gestao_ATL

CREATE TABLE PROFESSOR (
email			VARCHAR(30)			NOT NULL,
nome			VARCHAR(30)			NOT NULL,
morada			VARCHAR(20)			NOT NULL,
CC				VARCHAR(20)			NOT NULL	UNIQUE,
telefone		CHAR(9)				NOT NULL,
data_nascimento date				NOT NULL,
num_funcionario INT					NOT NULL	PRIMARY KEY
);


CREATE TABLE TURMA (
identificador	INT				NOT NULL	PRIMARY KEY,
designacao		VARCHAR(15)		NOT NULL,
ano_letivo		CHAR(2)			NOT NULL,
max_alunos		SMALLINT		NOT NULL,
Pcc				VARCHAR(20)		NOT NULL	UNIQUE		FOREIGN KEY REFERENCES PROFESSOR(CC),
);


CREATE TABLE ATIVIDADES (
identificador	INT					NOT NULL	PRIMARY KEY,
custo			INT					NOT NULL
);


CREATE TABLE  PARTICIPACAO_ATIVIDADES (
id				int		NOT NULL	IDENTITY(1,1)	PRIMARY KEY,
Tidentificador	INT		NOT NULL	UNIQUE			FOREIGN KEY REFERENCES TURMA(identificador),
Aidentificador	INT		NOT NULL	UNIQUE			FOREIGN KEY REFERENCES ATIVIDADES(identificador),
);


CREATE TABLE ALUNO (
nome			VARCHAR(30)			NOT NULL,
morada			VARCHAR(20)			NOT NULL,
CC				VARCHAR(20)			NOT NULL	PRIMARY KEY,
data_nascimento date				NOT NULL,
Tidentificador	INT					NOT NULL	FOREIGN KEY REFERENCES TURMA(identificador),
Aidentificador	INT					FOREIGN KEY REFERENCES ATIVIDADES(identificador),

);

CREATE TABLE ENCARREGADO_EDUCACAO (
email			VARCHAR(30)			NOT NULL	UNIQUE,
nome			VARCHAR(30)			NOT NULL,
morada			VARCHAR(20)			NOT NULL,
CC				VARCHAR(20)			NOT NULL	UNIQUE,
telefone		CHAR(9)				NOT NULL,
data_nascimento date				NOT NULL,
Acc				VARCHAR(20)			NOT NULL	FOREIGN KEY REFERENCES ALUNO(CC),
Acc_EDcc		VARCHAR(40)			NOT NULL	PRIMARY KEY
);

CREATE TABLE PESSOAS_COM_AUTORIZACAO (
email			VARCHAR(30)			NOT NULL	UNIQUE,
nome			VARCHAR(30)			NOT NULL,
morada			VARCHAR(20)			NOT NULL,
CC				VARCHAR(20)			NOT NULL	UNIQUE,
telefone		CHAR(9)				NOT NULL,
data_nascimento date				NOT NULL,
Acc				VARCHAR(20)			NOT NULL	FOREIGN KEY REFERENCES ALUNO(CC),
Acc_PAcc		VARCHAR(40)			NOT NULL	PRIMARY KEY
);



