BD1 Sérgio Lifschitz INF1383 -Bancos de Dados Prof. Sérgio Lifschitz DI PUC-Rio Eng. Computação, Sistemas de Informação e Ciência da Computação PROJETO DE BANCOS DE DADOS MODELAGEM CONCEITUAL: ABORDAGEM ENTIDADES E RELACIONAMENTOS Slides baseados ou modificados dos originais de ©Carlos A. Heuser - Transparências para uso com o livro Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 1999 1 Projeto de Bancos de Dados - níveis de abstração modelo conceitual abstração modelo lógico modelo físico ©Carlos A. Heuser - Transparências para uso com o livro Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 1999 2 1 BD1 Sérgio Lifschitz Modelagem conceitual • Independente de tipo de SGBD • Registra – Estrutura dos dados podem aparecer no banco de dados • Não registra – Como estes dados estão armazenados a nível de SGBD – Como os dados são manuseados ©Carlos A. Heuser - Transparências para uso com o livro Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 1999 3 Modelo conceitual - diagrama ER • Técnica mais difundida de modelagem conceitual – Abordagem entidade-relacionamento (ER) • Modelo conceitual é representado através de diagrama entidade-relacionamento (DER) ©Carlos A. Heuser - Transparências para uso com o livro Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 1999 4 2 BD1 Sérgio Lifschitz Diagrama entidade-relacionamento preço Produt o n 1 Tipo de produt o descrição descrição código código ©Carlos A. Heuser - Transparências para uso com o livro Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 1999 5 Modelagem lógica • Nível de abstração implementação mais próximo de • Especifica estrutura dos dados e também forma de manuseio dos dados Definição de modelo de dados • Há vários modelos conhecidos: relacional, orientado a objetos, semi-estruturado, etc. • Modelo relacional: estrutura os dados em relações (tabelas) e usa algebra ou SQL para vê-los ©Carlos A. Heuser - Transparências para uso com o livro Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 1999 6 3 BD1 Sérgio Lifschitz Modelagem lógica - Relacional • Esquema relacional para o exemplo TipoDeProduto CodTipoProd DescrTipoProd 1 Computador 2 Impressora Produto CodProd 1 2 3 4 DescrProd PC desktop modelo X PC notebook ABC Impressora jato de tinta Impressora laser PrecoProd 2.500 3.500 600 800 CodTipoProd 1 1 2 2 ©Carlos A. Heuser - Transparências para uso com o livro Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 1999 7 Esquema lógico para o exemplo Modelo lógico escolhido: RELACIONAL TipoDeProduto(CodTipoProd,DescrTipoProd) Produto(CodProd,DescrProd,PrecoProd,CodTipoProd) CodTipoProd referencia TipoDeProduto Chaves primárias sublinhadas ©Carlos A. Heuser - Transparências para uso com o livro Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 1999 8 4 BD1 Sérgio Lifschitz Modelagem Física • Contém detalhes de armazenamento interno • Dependentes do SGBD particular escolhido – Sintaxe LMD/LDD e objetos do banco de dados • Detalhes que – não têm influencia sobre a programação de aplicações no SGBD – influenciam no desempenho das aplicações • Usados por profissionais que fazem sintonia fina (tuning) de performance em banco de dados ©Carlos A. Heuser - Transparências para uso com o livro Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 1999 9 Projeto de BD • Tipicamente em duas fases: 1 Modelagem conceitual 2 Projeto lógico • Adequado para a construção de um novo banco de dados • Caso já exista um banco de dados ou um conjunto de arquivos convencionais, usar reengenharia • Terceira fase (modelagem física) completa o ciclo ©Carlos A. Heuser - Transparências para uso com o livro Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 1999 10 5 BD1 Sérgio Lifschitz Modelagem Conceitual de Dados: Abordagem Entidade-Relacionamento • Técnica para construir modelos conceituais de bases de dados – Também usada para análise de sistemas em geral • Técnica de modelagem conceitual de dados mais difundida e utilizada • Publicada em 1976 por Peter Chen e com várias extensões propostas desde então • Não é um modelo de dados lógico pois especifica somente a estrutura, não há manuseio de dados! ©Carlos A. Heuser - Transparências para uso com o livro Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 1999 11 Abordagem Entidade-Relacionamento • Padrão de fato para modelagem conceitual • Não é única: – NIAM/ORM (técnica européia da década de 70) – UML (Técnica para modelos Orientados a Objetos) • Técnicas de modelagem orientada a objetos (UML) baseiam-se nos conceitos da abordagem ER – UML é linguagem com objetivos que vão além da modelagem conceitual! ©Carlos A. Heuser - Transparências para uso com o livro Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 1999 12 6 BD1 Sérgio Lifschitz Abordagem Entidade-Relacionamento • Modelo conceitual de dados é representado através de um – modelo entidade-relacionamento (MER) • MER é representado graficamente por um – diagrama entidade-relacionamento (DER) ©Carlos A. Heuser - Transparências para uso com o livro Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 1999 13 Conceitos centrais da abordagem ER • Entidade • Relacionamento • Atributo • Generalização/especialização • Entidade associativa ©Carlos A. Heuser - Transparências para uso com o livro Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 1999 14 7 BD1 Sérgio Lifschitz Entidade Conjunto de objetos da realidade modelada sobre os quais deseja-se manter informações no banco de dados ©Carlos A. Heuser - Transparências para uso com o livro Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 1999 15 Entidade – exemplos • Sistema de contas correntes – – – – clientes contas correntes cheques agências • Entidade pode representar – objetos concretos da realidade (uma pessoa, um automóvel) – objetos abstratos (um departamento, um endereço) ©Carlos A. Heuser - Transparências para uso com o livro Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 1999 16 8 BD1 Sérgio Lifschitz Entidade no DER • Representada através de um retângulo • Retângulo contém o nome da entidade. PESSOA DEPARTAMENTO ©Carlos A. Heuser - Transparências para uso com o livro Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 1999 17 Entidade e instância • Para referir um objeto particular fala-se em instância ou ocorrência de entidade ©Carlos A. Heuser - Transparências para uso com o livro Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 1999 18 9 BD1 Sérgio Lifschitz Propriedades de entidades • Entidade isoladamente não informa nada • É necessário atribuir propriedades às entidades: basicamente seus atributos! • Propriedades básicas especificadas na forma de – Relacionamentos – Atributos – Generalizações/especializações ©Carlos A. Heuser - Transparências para uso com o livro Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 1999 19 Relacionamento - conceito Conjunto de associações entre entidades sobre as quais deseja-se manter informações na base de dados ©Carlos A. Heuser - Transparências para uso com o livro Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 1999 20 10 BD1 Sérgio Lifschitz Relacionamento no DER DEPARTAMENTO LOTAÇÃO PESSOA ©Carlos A. Heuser - Transparências para uso com o livro Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 1999 21 Relacionamento e instância • Relacionamento é um conjunto de associações entre instâncias de entidades • Uma instância (ocorrência) é uma associação específica entre determinadas instâncias de entidade • Exemplo (relacionamento LOTAÇÃO) – ocorrência = par específico formado por uma ocorrência de PESSOA e uma ocorrência de DEPARTAMENTO ©Carlos A. Heuser - Transparências para uso com o livro Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 1999 22 11 BD1 Sérgio Lifschitz Diagrama de ocorrências p3 p7 p1 p8 p4 p6 p2 p1,,d1 d1 p2,d1 p5 p4,d2 p5,d3 d2 d3 entidade EMPREGADO relacionamento LOTAÇÃO entidade DEPARTAMENTO ©Carlos A. Heuser - Transparências para uso com o livro Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 1999 23 Auto-relacionamento PESSOA esposa marido CASAMENTO ©Carlos A. Heuser - Transparências para uso com o livro Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 1999 24 12 BD1 Sérgio Lifschitz Papel de relacionamento • Função que uma ocorrência de uma entidade cumpre em uma ocorrência de um relacionamento • Relacionamento de casamento – Uma ocorrência de pessoa exerce o papel de marido – Uma ocorrência de pessoa exerce o papel de esposa • Relacionamentos entre entidades diferentes: – não é necessário indicar os papéis das entidades ©Carlos A. Heuser - Transparências para uso com o livro Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 1999 25 Auto-relacionamento: diagrama de ocorrências p3 p7 p1 p8 p6 p2 p4 p5 marido marido esposa esposa p1,p3 p6,p8 ©Carlos A. Heuser - Transparências para uso com o livro Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 1999 26 13 BD1 Sérgio Lifschitz Cardinalidade de relacionamentos • Propriedade importante de um relacionamento – Quantas ocorrências de uma entidade podem estar associadas a uma determinada ocorrência de entidade através do relacionamento • Chamada de cardinalidade de uma entidade em um relacionamento • duas cardinalidades – máxima – mínima ©Carlos A. Heuser - Transparências para uso com o livro Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 1999 27 Cardinalidade máxima no DER DEPARTAMENTO EMPREGADO LOTAÇÃO 1 ©Carlos A. Heuser - Transparências para uso com o livro Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 1999 n 28 14 BD1 Sérgio Lifschitz Cardinalidade máxima - DER DEPARTAMENTO LOTAÇÃO EMPREGADO n 1 expressa que a uma ocorrência de EMPREGADO (entidade do lado oposto da anotação) pode estar associada ao máximo uma (“1”) ocorrência de DEPARTAMENTO ©Carlos A. Heuser - Transparências para uso com o livro Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 1999 29 Cardinalidade máxima no DER DEPARTAMENTO LOTAÇÃO 1 EMPREGADO n expressa que a uma ocorrência de DEPARTAMENTO (entidade ao lado oposto da anotação) podem estar associadas muitas (“n”) ocorrências de EMPREGADO ©Carlos A. Heuser - Transparências para uso com o livro Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 1999 30 15 BD1 Sérgio Lifschitz Cardinalidade máxima - valores • Para projeto de BD relacional – não é necessário, porém por vez recomendável, distinguir entre diferentes cardinalidades máximas > 1 • Dois valores de cardinalidades – cardinalidade máxima 1 – cardinalidade máxima “muitos”, referida pela letra n ©Carlos A. Heuser - Transparências para uso com o livro Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 1999 31 Classificação de relacionamentos • Cardinalidade máxima pode ser usada para classificar relacionamentos binários • Relacionamento binário – é aquele cujas instâncias envolvem duas instâncias de entidades • Relacionamentos binários – n:m (muitos-para-muitos – n e m valores quaisquer) – 1:n (um-para-muitos) – 1:1 (um-para-um) ©Carlos A. Heuser - Transparências para uso com o livro Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 1999 32 16 BD1 Sérgio Lifschitz Relacionamentos 1:1 PESSOA EMPREGADO 1 1 esposa marido 1 ALOCAÇÃO CASAMENTO 1 MESA ©Carlos A. Heuser - Transparências para uso com o livro Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 1999 33 Relacionamentos 1:n n ALUNO EMPREGADO 1 INSCRIÇÃO 1 n CURSO DEPENDENTE EMPREGADO supervisionado supervisor 1 n SUPERVISÃO ©Carlos A. Heuser - Transparências para uso com o livro Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 1999 34 17 BD1 Sérgio Lifschitz Relacionamentos n:n ENGENHEIRO n n ALOCAÇÃO n MÉDICO PROJETO n CONSULTA n PACIENTE n PEÇA CAPACIDADE FORNECEDOR PRODUTO componente composto n n COMPOSIÇÃO ©Carlos A. Heuser - Transparências para uso com o livro Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 1999 35 Relacionamento ternário CIDADE DISTRIBUIDOR DISTRIBUIÇÃO PRODUTO ©Carlos A. Heuser - Transparências para uso com o livro Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 1999 36 18 BD1 Sérgio Lifschitz Cardinalidade ternário em relacionamento CIDADE DISTRIBUIDOR n 1 DISTRIBUIÇÃO a cardinalidade “1” refere-se a um par cidade e produto n PRODUTO ©Carlos A. Heuser - Transparências para uso com o livro Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 1999 37 Cardinalidade mínima • Número mínimo de ocorrências de entidade que são associadas a uma ocorrência de uma entidade através de um relacionamento • Para fins de projeto de BD, consideram-se apenas duas cardinalidades mínimas – cardinalidade mínima 0 – cardinalidade mínima 1 • Denominação alternativa: – cardinalidade mínima 1 = “associação obrigatória” – cardinalidade mínima 0 = “associação opcional” ©Carlos A. Heuser - Transparências para uso com o livro Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 1999 38 19 BD1 Sérgio Lifschitz Cardinalidade mínima - DER e1 EMPREGADO e3 e4 e2 (0,1) e3,m6 e1,m1 ALOCAÇÃO e4,m4 e2,m2 (1,1) m4 m1 MESA m2 m3 m6 m5 ©Carlos A. Heuser - Transparências para uso com o livro Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 1999 39 Atributo Dado ou informação que é associado a cada ocorrência de uma entidade ou de um relacionamento PROJETO tipo código nome ©Carlos A. Heuser - Transparências para uso com o livro Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 1999 40 20 BD1 Sérgio Lifschitz Atributos com cardinalidade • Cardinalidade mínima – atributo obrigatório (cardinalidade mínima “1”) • cada entidade possui no mínimo um valor associado) – atributo opcional (cardinalidade mínima “0”) • Cardinalidade máxima – atributo monovalorado (cardinalidade máxima “1”) • cada entidade possui no máximo um valor associado) – atributo multivalorado (cardinalidade máxima “n) ©Carlos A. Heuser - Transparências para uso com o livro Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 1999 41 Atributo com cardinalidade CLIENTE telefone (0,n) código nome ©Carlos A. Heuser - Transparências para uso com o livro Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 1999 Atributo opcional e multi-valorado 42 21 BD1 Sérgio Lifschitz Atributo em relacionamento (0,n) ENGENHEIRO Código (0,n) ATUAÇÃO Nome Função PROJETO Código Título ©Carlos A. Heuser - Transparências para uso com o livro Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 1999 43 Atributo em relacionamento 1:n nº de parcelas (0,1) FINANCEIRA (0,n) FINANCIAMENTO VENDA taxa de juros ©Carlos A. Heuser - Transparências para uso com o livro Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 1999 44 22 BD1 Sérgio Lifschitz Identificador de entidade • Cada entidade deve possuir um identificador • identificador = conjunto propriedades de uma entidade (atributos e relacionamentos) cujos valores servem para distinguir uma ocorrência da entidade das demais ocorrências da mesma entidade ©Carlos A. Heuser - Transparências para uso com o livro Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 1999 45 Atributo identificador código PESSOA nome endereço capacidade PRATELEIRA número do corredor número da prateleira ©Carlos A. Heuser - Transparências para uso com o livro Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 1999 46 23 BD1 Sérgio Lifschitz Relacionamento identificador • Entidade fraca código número seqüência nome (1,1) (0,n) EMPREGADO nome DEPENDENTE ©Carlos A. Heuser - Transparências para uso com o livro Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 1999 47 Relacionamento com atributo identificador m MÉDICO n CONSULTA PACIENTE data/hora ©Carlos A. Heuser - Transparências para uso com o livro Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 1999 48 24 BD1 Sérgio Lifschitz Generalização/especialização • Conceito permite – atribuir propriedades particulares a um subconjunto das ocorrências (especializadas) de uma entidade genérica ©Carlos A. Heuser - Transparências para uso com o livro Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 1999 49 Generalização/especialização (1,1) (0,n) nome CLIENTE FILIAL código PESSOA FÍSICA CIC sexo ©Carlos A. Heuser - Transparências para uso com o livro Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 1999 PESSOA JURÍDICA CGC tipo de organização 50 25 BD1 Sérgio Lifschitz Generalização/especialização • Herança de propriedades • Herdar propriedades significa – cada ocorrência da entidade especializada possui • além de suas próprias propriedades) • também as propriedades da ocorrência da entidade genérica correspondente ©Carlos A. Heuser - Transparências para uso com o livro Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 1999 51 Especialização total CLIENTE indica que todo CLIENTE é ou t PESSOA FÍSICA ou PESSOA JURíDICA PESSOA FÍSICA PESSOA JURÍDICA ©Carlos A. Heuser - Transparências para uso com o livro Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 1999 52 26 BD1 Sérgio Lifschitz Especialização parcial FUNCIONÁRIO tipo de funcionário p MOTORISTA indica que nem todo FUNCIONÁRIO é MOTORISTA ou SECRETÁRIA SECRETÁRIA ©Carlos A. Heuser - Transparências para uso com o livro Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 1999 53 Generalização/especialização (recursão) VEÍCULO VEÍCULO AQUÁTICO VEÍCULO TERRESTRE AUTOMÓVEL VEÍCULO ANFÍBIO ©Carlos A. Heuser - Transparências para uso com o livro Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 1999 BARCO 54 27 BD1 Sérgio Lifschitz Especialização não é exclusiva especialização não exclusiva PESSOA PROFESSOR ALUNO FUNCIONÁRIO ©Carlos A. Heuser - Transparências para uso com o livro Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 1999 55 Entidade associativa • Modificar modelo: • Adicionar medicamentos prescritos em uma consulta n MÉDICO CONSULTA ©Carlos A. Heuser - Transparências para uso com o livro Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 1999 n PACIENTE 56 28 BD1 Sérgio Lifschitz Substituindo relacionamento por entidade MÉDICO PACIENTE (1,1) (1,1) n n CONSULTA n PRESCRIÇÃO n MEDICAMENTO ©Carlos A. Heuser - Transparências para uso com o livro Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 1999 57 Entidade associativa n n MÉDICO CONSULTA PACIENTE n PRESCRIÇÃO n MEDICAMENTO ©Carlos A. Heuser - Transparências para uso com o livro Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 1999 58 29 BD1 Sérgio Lifschitz Conceito Símbolo Entidade Símbolos DER Relacionamento Atributo Atributo identificador Relacionamento identificador (1,1) Generalização/ especialização Entidade associativa ©Carlos A. Heuser - Transparências para uso com o livro Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 1999 59 Explo: DER recursos humanos tipo de empregado nome CIC (1,1) (0,n) EMPREGADO LOTAÇÃO DEPARTAMENTO (1,n) p GERÊNCIA (0,1) GERENTE CREA SECRETÁRIA (1,n) DOMÍNIO (0,n) PROCESSADOR DE TEXTOS ©Carlos A. Heuser - Transparências para uso com o livro Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 1999 ENGENHEIRO (0,n) PARTICIPAÇÃO (0,n) PROJETO 60 30