From Grupo05 Ahand
[edit] Modelo Físico Relacional
CREATE TABLE REL-CONTRATO-IMOVEL (
idCONTRATOS INTEGER NOT NULL AUTO_INCREMENT,
idIMOVEIS INTEGER NOT NULL,
PRIMARY KEY(idCONTRATOS, idIMOVEIS)
);
CREATE TABLE REL-AVALIZA (
idCONTRATOS INTEGER NOT NULL AUTO_INCREMENT,
idPESSOA INTEGER NOT NULL,
PRIMARY KEY(idCONTRATOS, idPESSOA)
);
CREATE TABLE REL-PAGTO-CONTRATO (
idCONTRATOS INTEGER NOT NULL AUTO_INCREMENT,
idPAGAMENTOS INTEGER NOT NULL,
PRIMARY KEY(idCONTRATOS, idPAGAMENTOS)
);
CREATE TABLE REL-RESERVA (
idPESSOAS INTEGER NOT NULL AUTO_INCREMENT,
idIMOVEIS INTEGER NOT NULL,
data_inicio DATE NULL,
data_termino DATE NULL,
PRIMARY KEY(idPESSOAS, idIMOVEIS)
);
CREATE TABLE REL-PROPRIEDADE (
idLOCADORES INTEGER NOT NULL AUTO_INCREMENT,
idIMOVEIS INTEGER NOT NULL,
dia_repasse DATE NULL,
PRIMARY KEY(idLOCADORES, idIMOVEIS)
);
CREATE TABLE PAGAMENTOS (
idPAGAMENTOS INTEGER NOT NULL AUTO_INCREMENT,
titulo CHAR NOT NULL,
REL-PAGTO-CONTRATO_idPAGAMENTOS INTEGER NOT NULL,
REL-PAGTO-CONTRATO_idCONTRATOS INTEGER NOT NULL,
data_vencimento DATE NULL,
data_pagamento DATE NULL,
valor_original DECIMAL NULL,
valor_pago DECIMAL NULL,
pago BIT NULL,
PRIMARY KEY(idPAGAMENTOS),
INDEX PAGAMENTOS_FKIndex1(REL-PAGTO-CONTRATO_idCONTRATOS, REL-PAGTO-CONTRATO_idPAGAMENTOS),
UNIQUE INDEX PAGAMENTOS_titulo(titulo),
FOREIGN KEY(REL-PAGTO-CONTRATO_idCONTRATOS, REL-PAGTO-CONTRATO_idPAGAMENTOS)
REFERENCES REL-PAGTO-CONTRATO(idCONTRATOS, idPAGAMENTOS)
ON DELETE NO ACTION
ON UPDATE NO ACTION
);
CREATE TABLE PESSOAS (
idPESSOAS INTEGER NOT NULL AUTO_INCREMENT,
REL-AVALIZA_idPESSOA INTEGER NOT NULL,
REL-AVALIZA_idCONTRATOS INTEGER NOT NULL,
REL-RESERVA_idIMOVEIS INTEGER NOT NULL,
REL-RESERVA_idPESSOAS INTEGER NOT NULL,
nome CHAR NULL,
nacionalidade CHAR NULL,
estado_civil CHAR NULL,
profissao CHAR NULL,
rg CHAR NULL,
cpf CHAR NULL,
email CHAR NULL,
situacao INT NULL,
tipo INTEGER NULL,
PRIMARY KEY(idPESSOAS),
INDEX PESSOAS_FKIndex1(REL-RESERVA_idPESSOAS, REL-RESERVA_idIMOVEIS),
INDEX PESSOAS_FKIndex2(REL-AVALIZA_idCONTRATOS, REL-AVALIZA_idPESSOA),
INDEX PESSOAS_cpf(cpf),
FOREIGN KEY(REL-RESERVA_idPESSOAS, REL-RESERVA_idIMOVEIS)
REFERENCES REL-RESERVA(idPESSOAS, idIMOVEIS)
ON DELETE NO ACTION
ON UPDATE NO ACTION,
FOREIGN KEY(REL-AVALIZA_idCONTRATOS, REL-AVALIZA_idPESSOA)
REFERENCES REL-AVALIZA(idCONTRATOS, idPESSOA)
ON DELETE NO ACTION
ON UPDATE NO ACTION
);
CREATE TABLE TELEFONES (
PESSOAS_idPESSOAS INTEGER NOT NULL,
telefone1 INTEGER NOT NULL AUTO_INCREMENT,
telefone2 INTEGER NULL,
telefone3 INTEGER NULL,
INDEX TELEFONES_FKIndex1(PESSOAS_idPESSOAS),
FOREIGN KEY(PESSOAS_idPESSOAS)
REFERENCES PESSOAS(idPESSOAS)
ON DELETE NO ACTION
ON UPDATE NO ACTION
);
CREATE TABLE LOCADORES (
idLOCADORES INTEGER NOT NULL AUTO_INCREMENT,
PESSOAS_idPESSOAS INTEGER NOT NULL,
REL-PROPRIEDADE_idIMOVEIS INTEGER NOT NULL,
REL-PROPRIEDADE_idLOCADORES INTEGER NOT NULL,
cod_banco INTEGER NULL,
nom_agencia CHAR NULL,
conta_corrente CHAR NULL,
PRIMARY KEY(idLOCADORES, PESSOAS_idPESSOAS),
INDEX LOCADORES_FKIndex1(REL-PROPRIEDADE_idLOCADORES, REL-PROPRIEDADE_idIMOVEIS),
INDEX LOCADORES_FKIndex2(PESSOAS_idPESSOAS),
FOREIGN KEY(REL-PROPRIEDADE_idLOCADORES, REL-PROPRIEDADE_idIMOVEIS)
REFERENCES REL-PROPRIEDADE(idLOCADORES, idIMOVEIS)
ON DELETE NO ACTION
ON UPDATE NO ACTION,
FOREIGN KEY(PESSOAS_idPESSOAS)
REFERENCES PESSOAS(idPESSOAS)
ON DELETE NO ACTION
ON UPDATE NO ACTION
);
CREATE TABLE CONTRATOS (
idCONTRATOS INTEGER NOT NULL,
LOCADORES_PESSOAS_idPESSOAS INTEGER NOT NULL,
REL-CONTRATO-IMOVEL_idIMOVEIS INTEGER NOT NULL,
REL-CONTRATO-IMOVEL_idCONTRATOS INTEGER NOT NULL,
REL-AVALIZA_idPESSOA INTEGER NOT NULL,
REL-AVALIZA_idCONTRATOS INTEGER NOT NULL,
REL-PAGTO-CONTRATO_idPAGAMENTOS INTEGER NOT NULL,
REL-PAGTO-CONTRATO_idCONTRATOS INTEGER NOT NULL,
LOCADORES_idLOCADORES INTEGER NOT NULL,
idLOCADORES INTEGER NOT NULL,
idPESSOAS_LOCATARIO INTEGER NOT NULL,
data_inicio DATE NULL,
data_termino DATE NULL,
dia_vencimento INTEGER NULL,
multa_atraso DECIMAL NULL,
multa_rescisao DECIMAL NULL,
idIMOVEIS INTEGER NULL,
PRIMARY KEY(idCONTRATOS),
INDEX CONTRATOS_FKIndex1(LOCADORES_idLOCADORES, LOCADORES_PESSOAS_idPESSOAS),
INDEX CONTRATOS_FKIndex2(REL-PAGTO-CONTRATO_idCONTRATOS, REL-PAGTO-CONTRATO_idPAGAMENTOS),
INDEX CONTRATOS_FKIndex3(REL-AVALIZA_idCONTRATOS, REL-AVALIZA_idPESSOA),
INDEX CONTRATOS_FKIndex4(REL-CONTRATO-IMOVEL_idCONTRATOS, REL-CONTRATO-IMOVEL_idIMOVEIS),
INDEX CONTRATOS_unique1(idLOCADORES, idPESSOAS_LOCATARIO, data_inicio, idIMOVEIS),
FOREIGN KEY(LOCADORES_idLOCADORES, LOCADORES_PESSOAS_idPESSOAS)
REFERENCES LOCADORES(idLOCADORES, PESSOAS_idPESSOAS)
ON DELETE NO ACTION
ON UPDATE NO ACTION,
FOREIGN KEY(REL-PAGTO-CONTRATO_idCONTRATOS, REL-PAGTO-CONTRATO_idPAGAMENTOS)
REFERENCES REL-PAGTO-CONTRATO(idCONTRATOS, idPAGAMENTOS)
ON DELETE NO ACTION
ON UPDATE NO ACTION,
FOREIGN KEY(REL-AVALIZA_idCONTRATOS, REL-AVALIZA_idPESSOA)
REFERENCES REL-AVALIZA(idCONTRATOS, idPESSOA)
ON DELETE NO ACTION
ON UPDATE NO ACTION,
FOREIGN KEY(REL-CONTRATO-IMOVEL_idCONTRATOS, REL-CONTRATO-IMOVEL_idIMOVEIS)
REFERENCES REL-CONTRATO-IMOVEL(idCONTRATOS, idIMOVEIS)
ON DELETE NO ACTION
ON UPDATE NO ACTION
);
CREATE TABLE IMOVEIS (
idIMOVEIS INTEGER NOT NULL AUTO_INCREMENT,
REL-PROPRIEDADE_idIMOVEIS INTEGER NOT NULL,
REL-PROPRIEDADE_idLOCADORES INTEGER NOT NULL,
REL-CONTRATO-IMOVEL_idIMOVEIS INTEGER NOT NULL,
REL-CONTRATO-IMOVEL_idCONTRATOS INTEGER NOT NULL,
REL-RESERVA_idIMOVEIS INTEGER NOT NULL,
REL-RESERVA_idPESSOAS INTEGER NOT NULL,
LOCADORES_idLOCADORES INTEGER NOT NULL,
endereco CHAR NULL,
numero INTEGER NULL,
complemento CHAR NULL,
bairro CHAR NULL,
cidade CHAR NULL,
estado CHAR NULL,
cep CHAR NULL,
situacao INTEGER NULL,
num_suites INTEGER NULL,
num_dormitorios INTEGER NULL,
num_piscinas INTEGER NULL,
num_churrasqueiras INTEGER NULL,
area_total DECIMAL NULL,
area_construida DECIMAL NULL,
descricao_geral CHAR NULL,
vagas_garagem INTEGER NULL,
tipo INTEGER NULL,
valor_aluguel INTEGER NULL,
valot_condominio DECIMAL NULL,
valor_iptu DECIMAL NULL,
PRIMARY KEY(idIMOVEIS),
INDEX IMOVEIS_FKIndex1(LOCADORES_idLOCADORES),
INDEX IMOVEIS_FKIndex2(REL-RESERVA_idPESSOAS, REL-RESERVA_idIMOVEIS),
INDEX IMOVEIS_FKIndex3(REL-CONTRATO-IMOVEL_idCONTRATOS, REL-CONTRATO-IMOVEL_idIMOVEIS),
INDEX IMOVEIS_FKIndex4(REL-PROPRIEDADE_idLOCADORES, REL-PROPRIEDADE_idIMOVEIS),
FOREIGN KEY(LOCADORES_idLOCADORES, LOCADORES_PESSOAS_idPESSOAS)
REFERENCES LOCADORES(idLOCADORES, PESSOAS_idPESSOAS)
ON DELETE NO ACTION
ON UPDATE NO ACTION,
FOREIGN KEY(REL-RESERVA_idPESSOAS, REL-RESERVA_idIMOVEIS)
REFERENCES REL-RESERVA(idPESSOAS, idIMOVEIS)
ON DELETE NO ACTION
ON UPDATE NO ACTION,
FOREIGN KEY(REL-CONTRATO-IMOVEL_idCONTRATOS, REL-CONTRATO-IMOVEL_idIMOVEIS)
REFERENCES REL-CONTRATO-IMOVEL(idCONTRATOS, idIMOVEIS)
ON DELETE NO ACTION
ON UPDATE NO ACTION,
FOREIGN KEY(REL-PROPRIEDADE_idLOCADORES, REL-PROPRIEDADE_idIMOVEIS)
REFERENCES REL-PROPRIEDADE(idLOCADORES, idIMOVEIS)
ON DELETE NO ACTION
ON UPDATE NO ACTION
);