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


CREATE TABLE  CLIENTE (
nome			VARCHAR(15)			NOT NULL,
endereco		VARCHAR(20)			NOT NULL,
num_carta		VARCHAR(11)			NOT NULL		UNIQUE,
NIF				CHAR(9)				NOT NULL	PRIMARY KEY,
);

CREATE TABLE BALCAO (
nome			VARCHAR(15)			NOT NULL,
numero			INT					NOT NULL		PRIMARY KEY,
endereco		VARCHAR(20)			NOT NULL
);


CREATE TABLE TIPO_VEICULO (
designacao		VARCHAR(20)			NOT NULL,
arcondicionado	VARCHAR(3),
codigo			VARCHAR(10)			NOT NULL		PRIMARY KEY
);

CREATE TABLE SIMILARIDADE (
TPcodigo		VARCHAR(10)			NOT NULL    FOREIGN KEY REFERENCES TIPO_VEICULO(codigo)	PRIMARY KEY
);

CREATE TABLE LIGEIRO (
TPcodigo		VARCHAR(10)			NOT NULL    FOREIGN KEY REFERENCES TIPO_VEICULO(codigo)	PRIMARY KEY,
numlugares		SMALLINT			NOT NULL,
portas			SMALLINT,
combustivel		VARCHAR(15)			NOT NULL,
);

CREATE TABLE PESADO (
TPcodigo		VARCHAR(10)			NOT NULL    FOREIGN KEY REFERENCES TIPO_VEICULO(codigo)	PRIMARY KEY,
peso			SMALLINT,
passageiros		SMALLINT			NOT NULL,
);

CREATE TABLE VEICULO (
matricula		VARCHAR(6)			NOT NULL		PRIMARY KEY,
ano				SMALLINT			NOT NULL,
marca			VARCHAR(20)			NOT NULL,
TPcodigo		VARCHAR(10)			NOT NULL    FOREIGN KEY REFERENCES TIPO_VEICULO(codigo)
);

CREATE TABLE ALUGUER (
numero			INT					NOT NULL		PRIMARY KEY,
duracao			SMALLINT			NOT NULL,
data_aluguer	DATE				NOT NULL,
CNIF			CHAR(9)				NOT NULL    FOREIGN KEY REFERENCES CLIENTE(NIF),
Bnumero			INT					NOT NULL    FOREIGN KEY REFERENCES BALCAO(numero),
Vmatricula		VARCHAR(6)			NOT NULL    FOREIGN KEY REFERENCES VEICULO(matricula),
);

