Artefato 11 - Modelo Fisico - Modelo Relacional

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
 );
Personal tools