Beruflich Dokumente
Kultur Dokumente
17 de novembro de 11
Belm-PA
Este trabalho tem como objetivo a implantao do modelo entidaderelacionamento de uma populao, e a realizao da consulta Qual o endereo dos netos
de pessoas com mais de 50 anos cujo cnjuge tenham pais que moram em Belm?. Foi
criado o modelo entidade-relacionamento e inseridos alguns dados para teste.
1. Modelo Entidade-Relacionamento
2. Script do Modelo
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';
CREATE SCHEMA IF NOT EXISTS `Trab_BD2` DEFAULT CHARACTER SET
latin1 COLLATE latin1_swedish_ci ;
USE `Trab_BD2` ;
-- ------------------------------------------------------ Table `Trab_BD2`.`Cidade`
-- ----------------------------------------------------CREATE TABLE IF NOT EXISTS `Trab_BD2`.`Cidade` (
`CEP` INT NOT NULL ,
`nome` VARCHAR(45) NULL ,
PRIMARY KEY (`CEP`) )
ENGINE = InnoDB;
USE `Trab_BD2`;
INSERT INTO `Trab_BD2`.`Pessoa` (`idPessoa`, `nome`, `nascimento`, `numero`, `rua`,
`Cidade`) VALUES (1, 'IRAQUITAN', '1989-06-13', 123, 'RUA ILHA DO ACAI', 1);
INSERT INTO `Trab_BD2`.`Pessoa` (`idPessoa`, `nome`, `nascimento`, `numero`, `rua`,
`Cidade`) VALUES (2, 'DJENIFER', '1988-11-16', 123, 'RUA ILHA DO ACAI', 1);
INSERT INTO `Trab_BD2`.`Pessoa` (`idPessoa`, `nome`, `nascimento`, `numero`, `rua`,
`Cidade`) VALUES (3, 'ADRIELE', '2009-12-03', 123, 'RUA ILHA DO ACAI', 1);
INSERT INTO `Trab_BD2`.`Pessoa` (`idPessoa`, `nome`, `nascimento`, `numero`, `rua`,
`Cidade`) VALUES (4, 'ALINE', '2008-07-16', 123, 'RUA ILHA DO ACAI', 1);
INSERT INTO `Trab_BD2`.`Pessoa` (`idPessoa`, `nome`, `nascimento`, `numero`, `rua`,
`Cidade`) VALUES (5, 'IRAQUITAN PAI', '1960-07-22', 358, 'RUA ACEZIO
GUEDES', 2);
INSERT INTO `Trab_BD2`.`Pessoa` (`idPessoa`, `nome`, `nascimento`, `numero`, `rua`,
`Cidade`) VALUES (6, 'MARYUZA', '1966-05-17', 358, 'RUA ACEZIO GUEDES', 2);
INSERT INTO `Trab_BD2`.`Pessoa` (`idPessoa`, `nome`, `nascimento`, `numero`, `rua`,
`Cidade`) VALUES (7, 'PAULO', '1964-11-15', 867, 'ESTRELA DE DAVI', 2);
INSERT INTO `Trab_BD2`.`Pessoa` (`idPessoa`, `nome`, `nascimento`, `numero`, `rua`,
`Cidade`) VALUES (8, 'SORAIA', '1968-04-05', 867, 'ESTRELA DE DAVI', 2);
INSERT INTO `Trab_BD2`.`Pessoa` (`idPessoa`, `nome`, `nascimento`, `numero`, `rua`,
`Cidade`) VALUES (9, 'KEVIN', '1996-04-26', 358, 'RUA ACEZIO GUEDES', 1);
INSERT INTO `Trab_BD2`.`Pessoa` (`idPessoa`, `nome`, `nascimento`, `numero`, `rua`,
`Cidade`) VALUES (10, 'NAIR', '1923-10-22', 735, 'ANTONIO SIQUEIRA', 2);
INSERT INTO `Trab_BD2`.`Pessoa` (`idPessoa`, `nome`, `nascimento`, `numero`, `rua`,
`Cidade`) VALUES (11, 'ROSA', '1930-08-14', 345, 'SANTA CLARA', 2);
INSERT INTO `Trab_BD2`.`Pessoa` (`idPessoa`, `nome`, `nascimento`, `numero`, `rua`,
`Cidade`) VALUES (12, 'ANTONIO', '1925-02-01', 345, 'SANTA CLARA', 2);
INSERT INTO `Trab_BD2`.`Pessoa` (`idPessoa`, `nome`, `nascimento`, `numero`, `rua`,
`Cidade`) VALUES (13, 'VOVO', '1920-09-11', 735, 'ANTONIO SIQUEIRA', 2);
INSERT INTO `Trab_BD2`.`Pessoa` (`idPessoa`, `nome`, `nascimento`, `numero`, `rua`,
`Cidade`) VALUES (14, 'MARCOS', '1988-11-14', 890, 'RUA 1', 4);
INSERT INTO `Trab_BD2`.`Pessoa` (`idPessoa`, `nome`, `nascimento`, `numero`, `rua`,
`Cidade`) VALUES (15, 'PEDRO', '2008-03-17', 890, 'RUA 1', 4);
INSERT INTO `Trab_BD2`.`Pessoa` (`idPessoa`, `nome`, `nascimento`, `numero`, `rua`,
`Cidade`) VALUES (16, 'MAYARA', '1987-10-25', 890, 'RUA 1', 4);
INSERT INTO `Trab_BD2`.`Pessoa` (`idPessoa`, `nome`, `nascimento`, `numero`, `rua`,
`Cidade`) VALUES (17, 'THIAGO', '2007-08-22', 890, 'RUA 1', 4);
INSERT INTO `Trab_BD2`.`Pessoa` (`idPessoa`, `nome`, `nascimento`, `numero`, `rua`,
`Cidade`) VALUES (18, 'VINICIUS', '1958-06-12', 678, 'RUA 2', 6);
INSERT INTO `Trab_BD2`.`Pessoa` (`idPessoa`, `nome`, `nascimento`, `numero`, `rua`,
`Cidade`) VALUES (19, 'JULIANNE', '1960-07-23', 678, 'RUA 2', 6);
INSERT INTO `Trab_BD2`.`Pessoa` (`idPessoa`, `nome`, `nascimento`, `numero`, `rua`,
`Cidade`) VALUES (20, 'ANDRE', '1955-08-22', 567, 'RUA 3', 7);
INSERT INTO `Trab_BD2`.`Pessoa` (`idPessoa`, `nome`, `nascimento`, `numero`, `rua`,
`Cidade`) VALUES (21, 'VANESSA', '1959-07-18', 567, 'RUA 3', 7);
INSERT INTO `Trab_BD2`.`Pessoa` (`idPessoa`, `nome`, `nascimento`, `numero`, `rua`,
`Cidade`) VALUES (22, 'ANDERSON', '1935-12-25', 578, 'RUA 4', 3);
UPDATE `Trab_BD2`.`Pessoa` SET `conjuge`=7, `pai`=32, `mae`=33 WHERE
idPessoa=8;
UPDATE `Trab_BD2`.`Pessoa` SET `conjuge`=NULL, `pai`=5, `mae`=6 WHERE
idPessoa=9;
UPDATE `Trab_BD2`.`Pessoa` SET `conjuge`=13, `pai`=NULL, `mae`=NULL WHERE
idPessoa=10;
UPDATE `Trab_BD2`.`Pessoa` SET `conjuge`=12, `pai`=NULL, `mae`=NULL WHERE
idPessoa=11;
UPDATE `Trab_BD2`.`Pessoa` SET `conjuge`=11, `pai`=NULL, `mae`=NULL WHERE
idPessoa=12;
UPDATE `Trab_BD2`.`Pessoa` SET `conjuge`=10, `pai`=NULL, `mae`=NULL WHERE
idPessoa=13;
UPDATE `Trab_BD2`.`Pessoa` SET `conjuge`=16, `pai`=NULL, `mae`=NULL WHERE
idPessoa=14;
UPDATE `Trab_BD2`.`Pessoa` SET `conjuge`=NULL, `pai`=14, `mae`=16 WHERE
idPessoa=15;
UPDATE `Trab_BD2`.`Pessoa` SET `conjuge`=14, `pai`=NULL, `mae`=NULL WHERE
idPessoa=16;
UPDATE `Trab_BD2`.`Pessoa` SET `conjuge`=NULL, `pai`=14, `mae`=16 WHERE
idPessoa=17;
UPDATE `Trab_BD2`.`Pessoa` SET `conjuge`=19, `pai`=22, `mae`=23 WHERE
idPessoa=18;
UPDATE `Trab_BD2`.`Pessoa` SET `conjuge`=18, `pai`=25, `mae`=24 WHERE
idPessoa=19;
UPDATE `Trab_BD2`.`Pessoa` SET `conjuge`=21, `pai`=27, `mae`=26 WHERE
idPessoa=20;
UPDATE `Trab_BD2`.`Pessoa` SET `conjuge`=20, `pai`=28, `mae`=29 WHERE
idPessoa=21;
UPDATE `Trab_BD2`.`Pessoa` SET `conjuge`=23, `pai`=NULL, `mae`=NULL WHERE
idPessoa=22;
UPDATE `Trab_BD2`.`Pessoa` SET `conjuge`=22, `pai`=NULL, `mae`=NULL WHERE
idPessoa=23;
UPDATE `Trab_BD2`.`Pessoa` SET `conjuge`=25, `pai`=NULL, `mae`=NULL WHERE
idPessoa=24;
UPDATE `Trab_BD2`.`Pessoa` SET `conjuge`=24, `pai`=NULL, `mae`=NULL WHERE
idPessoa=25;
UPDATE `Trab_BD2`.`Pessoa` SET `conjuge`=27, `pai`=NULL, `mae`=NULL WHERE
idPessoa=26;
UPDATE `Trab_BD2`.`Pessoa` SET `conjuge`=26, `pai`=NULL, `mae`=NULL WHERE
idPessoa=27;
UPDATE `Trab_BD2`.`Pessoa` SET `conjuge`=29, `pai`=NULL, `mae`=NULL WHERE
idPessoa=28;
UPDATE `Trab_BD2`.`Pessoa` SET `conjuge`=28, `pai`=NULL, `mae`=NULL WHERE
idPessoa=29;
UPDATE `Trab_BD2`.`Pessoa` SET `conjuge`=31, `pai`=NULL, `mae`=NULL WHERE
idPessoa=30;
4. Consulta
SELECT neto.nome, neto.numero, neto.rua, cidadeneto.nome Cidade FROM Pessoa neto,
Pessoa pai, Pessoa mae, Pessoa avo1, Pessoa avo2, pessoa avo3, pessoa avo4, pessoa
conjuge, pessoa paic, pessoa maec, Cidade cidade, Cidade cidadeneto WHERE
neto.pai=pai.idPessoa AND neto.mae=mae.idPessoa AND pai.pai=avo1.idPessoa AND
pai.mae=avo2.idPessoa AND mae.pai=avo3.idPessoa AND mae.mae=avo4.idPessoa
AND (YEAR(CURDATE())-YEAR(avo1.nascimento))(RIGHT(CURDATE(),5)<RIGHT(avo1.nascimento,5))>50 AND (YEAR(CURDATE())YEAR(avo2.nascimento))-(RIGHT(CURDATE(),5)<RIGHT(avo2.nascimento,5))>50
AND (YEAR(CURDATE())-YEAR(avo3.nascimento))(RIGHT(CURDATE(),5)<RIGHT(avo3.nascimento,5))>50 AND (YEAR(CURDATE())YEAR(avo4.nascimento))-(RIGHT(CURDATE(),5)<RIGHT(avo4.nascimento,5))>50
AND neto.conjuge=conjuge.idPessoa AND conjuge.pai=paic.idPessoa AND
conjuge.mae=maec.idPessoa AND paic.cidade=cidade.CEP AND
maec.cidade=cidade.CEP AND cidade.CEP=2 AND neto.cidade=cidadeneto.CEP;
5. Concluso
possvel realizar essa consulta com o banco de dados apresentado, porm no uma
consulta trivial, uma consulta que envolve muitas operaes de lgebra relacional.
Portanto observou-se que uma aplicao complexa, apesar de no apresentar muitas
tabelas, mas sim muitos auto-relacionamentos.