A- MODELAGEM DE BANCO DE DADOS
Por: Pedro Correa • 15/10/2015 • Projeto de pesquisa • 1.767 Palavras (8 Páginas) • 294 Visualizações
Modelagem de Banco de Dados
1. INTRODUÇÃO
A proposta deste documento é detalhar a modelagem de Banco de Dados de um Sistema Gerenciador de Seguros.
Essencialmente, um Contrato de Seguro de Bens é um conjunto de bens do cliente e os seguros selecionados pelo cliente dentre os possíveis para esses bens. Um sinistro incide sobre um desses seguros contratados. Por exemplo, um cliente pode solicitar um seguro de incêndio em seu veículo e um de incêndio e outro de queda de aeronaves em sua casa. Terá assim solicitado três seguros, que constarão em um Contrato de Seguros de Bens. Cada um desses contratos possui um conjunto de beneficiários relacionados e um conjunto de parcelas de pagamento.
Já o Contrato de Seguros Vida é um conjunto de Seguros Vida selecionados por uma Pessoa Física. Por exemplo, o cliente pode solicitar três Seguros Vida (Indenização Especial por Acidente, Invalidez Permanente Total e Parcial por Acidente, Invalidez Funcional Permanente Total por Doença). Esses três seguros constarão em um Contrato de Seguros Vida, que beneficiará um conjunto de Pessoas Físicas caso um sinistro ocorra em um dos seguros contratados.
5. SCRIPT DE CRIAÇÃO DO BANCO DE DADOS
SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0;
SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0;
SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='TRADITIONAL,ALLOW_INVALID_DATES';
-- -----------------------------------------------------
-- Schema sisseguro
-- -----------------------------------------------------
CREATE SCHEMA IF NOT EXISTS `sisseguro` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci ;
-- -----------------------------------------------------
-- Schema new_schema1
-- -----------------------------------------------------
USE `sisseguro` ;
-- -----------------------------------------------------
-- Table `sisseguro`.`Pessoa`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `sisseguro`.`Pessoa` (
`idPessoa` INT NOT NULL,
`Tipo` INT NOT NULL,
PRIMARY KEY (`idPessoa`))
ENGINE = InnoDB;
-- -----------------------------------------------------
-- Table `sisseguro`.`PessoaFísica`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `sisseguro`.`PessoaFísica` (
`idPessoa` INT NOT NULL,
`Nome` VARCHAR(45) NOT NULL,
`Sobrenome` VARCHAR(45) NOT NULL,
`DataNascimento` DATETIME NOT NULL,
`idSexo` INT NOT NULL,
`CPF` CHAR(11) NOT NULL,
`NúmeroDocIdentidade` VARCHAR(45) NOT NULL,
PRIMARY KEY (`idPessoa`),
CONSTRAINT `fkPessoa_54u1`
FOREIGN KEY (`idPessoa`)
REFERENCES `sisseguro`.`Pessoa` (`idPessoa`)
ON DELETE NO ACTION
ON UPDATE NO ACTION)
ENGINE = InnoDB;
-- -----------------------------------------------------
-- Table `sisseguro`.`PessoaJurídica`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `sisseguro`.`PessoaJurídica` (
`idPessoa` INT NOT NULL,
`DataAbertura` DATETIME NOT NULL,
`NomeEmpresa` VARCHAR(45) NOT NULL,
`NomeFantasia` VARCHAR(45) NOT NULL,
`idNaturezaJurídica` INT NOT NULL,
`idSituaçãoCadastral` INT NOT NULL,
`CNPJ` CHAR(14) NOT NULL,
PRIMARY KEY (`idPessoa`),
CONSTRAINT `fkPessoa_q4r3`
FOREIGN KEY (`idPessoa`)
REFERENCES `sisseguro`.`Pessoa` (`idPessoa`)
ON DELETE NO ACTION
ON UPDATE NO ACTION)
ENGINE = InnoDB;
-- -----------------------------------------------------
-- Table `sisseguro`.`ContratoBens`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `sisseguro`.`ContratoBens` (
`idContratoBens` INT NOT NULL,
`idPessoa` INT NOT NULL,
`DataContratação` DATETIME NOT NULL,
`DataValidade` DATETIME NOT NULL,
PRIMARY KEY (`idContratoBens`),
INDEX `fkPessoa_idx` (`idPessoa` ASC),
CONSTRAINT `fkPessoa_0wvb`
FOREIGN KEY (`idPessoa`)
REFERENCES `sisseguro`.`Pessoa` (`idPessoa`)
ON DELETE NO ACTION
ON UPDATE NO ACTION)
ENGINE = InnoDB;
-- -----------------------------------------------------
--
...