Prévia do material em texto
1 ©Carlos A. Heuser - Transparências para uso com o livro Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 1999 1 Projeto de Banco de Dados Transparências selecionadas Autor: Prof Carlos Heuser (UFRGS) Livro: Projeto de Banco de Dados ©Carlos A. Heuser - Transparências para uso com o livro Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 1999 2 Modelo de Dados - níveis de abstração ab stração modelo conceitual modelo lógico modelo físico 2 ©Carlos A. Heuser - Transparências para uso com o livro Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 1999 3 Modelo 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 ©Carlos A. Heuser - Transparências para uso com o livro Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 1999 4 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) 3 ©Carlos A. Heuser - Transparências para uso com o livro Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 1999 5 Diagrama entidade-relacionamento Produt o código descrição Tipo de produt o código descrição preço n 1 ©Carlos A. Heuser - Transparências para uso com o livro Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 1999 6 Modelo lógico • Nível de abstração visto pelo usuário do SGBD • Dependente do tipo particular de SGBD que está sendo usado 4 ©Carlos A. Heuser - Transparências para uso com o livro Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 1999 7 Modelo lógico • SGBD relacional para o exemplo Produto CodProd DescrProd PrecoProd CodTipoProd 1 PC desktop modelo X 2.500 1 2 PC notebook ABC 3.500 1 3 Impressora jato de tinta 600 2 4 Impressora laser 800 2 TipoDeProduto CodTipoProd DescrTipoProd 1 Computador 2 Impressora ©Carlos A. Heuser - Transparências para uso com o livro Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 1999 8 Modelo lógico para o exemplo TipoDeProduto(CodTipoProd,DescrTipoProd) Produto(CodProd,DescrProd,PrecoProd,CodTipoProd) CodTipoProd referencia TipoDeProduto 5 ©Carlos A. Heuser - Transparências para uso com o livro Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 1999 9 Modelo Físico • Contém detalhes de armazenamento interno de informações • Detalhes que – não têm influencia sobre a programação de aplicações no SGBD – influenciam a performance da aplicações • Usados por profissionais que fazem sintonia 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 10 Idéia fundamental do projeto de banco de dados Através da identificação das entidades que terão informações representadas no banco de dados, é possível identificar os arquivos que comporão o banco de dados 6 ©Carlos A. Heuser - Transparências para uso com o livro Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 1999 11 Modelo conceitual tem dupla interpretação • modelo da organização – Define as entidades da organização que tem informações armazenadas no banco de dados • modelo do banco de dados – Define que arquivos (tabelas) farão parte do banco de dados. ©Carlos A. Heuser - Transparências para uso com o livro Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 1999 12 Projeto de BD • 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 7 ©Carlos A. Heuser - Transparências para uso com o livro Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 1999 13 Abordagem Entidade-Relacionamento • Técnica para construir modelos conceituais de bases de dados • Técnica de modelagem de dados mais difundida e utilizada • Criada em 1976 por Peter Chen ©Carlos A. Heuser - Transparências para uso com o livro Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 1999 14 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 8 ©Carlos A. Heuser - Transparências para uso com o livro Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 1999 15 Abordagem Entidade-Relacionamento • Modelo de dados é representado através de um – modelo entidade-relacionamento (modelo ER) • Modelo ER é representado graficamente – 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 16 Conceitos centrais da abordagem ER • Entidade • Relacionamento • Atributo • Generalização/especialização • Entidade associativa 9 ©Carlos A. Heuser - Transparências para uso com o livro Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 1999 17 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 18 Entidade – exemplos • Sistema de informações industrial – produtos – tipos de produtos – vendas – compras 10 ©Carlos A. Heuser - Transparências para uso com o livro Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 1999 19 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 20 PESSOA DEPARTAMENTO Entidade no DER • Representada através de um retângulo • Retângulo contém o nome da entidade. 11 ©Carlos A. Heuser - Transparências para uso com o livro Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 1999 21 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 22 Entidade e instância - terminologia conjunto elemento do conjunto entidade instância classe instância conjunto de entidades entidade 12 ©Carlos A. Heuser - Transparências para uso com o livro Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 1999 23 Propriedades de entidades • Entidade isoladamente não informa nada • É necessário atribuir propriedades às entidades • Propriedades 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 24 Relacionamento - conceito Conjunto de associações entre entidades sobre as quais deseja-se manter informações na base de dados 13 ©Carlos A. Heuser - Transparências para uso com o livro Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 1999 25 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 26 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 14 ©Carlos A. Heuser- Transparências para uso com o livro Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 1999 27 Diagrama de ocorrências p1 p8 p7 p5p6p4 p3 p2 p1,,d1 p2,d1 p4,d2 p5,d3 d1 d3d2 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 28 Auto-relacionamento PESSOA CASAMENTO marido esposa 15 ©Carlos A. Heuser - Transparências para uso com o livro Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 1999 29 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 30 Auto-relacionamento diagrama de ocorrências p1 p8 p7 p5 p6 p4 p3 p2 p1,p3 p6,p8 marido esposa marido esposa 16 ©Carlos A. Heuser - Transparências para uso com o livro Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 1999 31 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 32 Cardinalidade máxima no DER LOTAÇÃODEPARTAMENT O EMPREGADO n1 17 ©Carlos A. Heuser - Transparências para uso com o livro Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 1999 33 Cardinalidade máxima - DER LOTAÇÃODEPARTAMENT O EMPREGAD On1 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 34 Cardinalidade máxima no DER expressa que a uma ocorrência de DEPARTAMENTO (entidade ao lado oposto da anotação) podem estar associadas muitas (“n”) ocorrências de EMPREGADO LOTAÇÃ O DEPARTAMENT O EMPREGAD On1 18 ©Carlos A. Heuser - Transparências para uso com o livro Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 1999 35 Cardinalidade máxima - valores • Para projeto de BD relacional – não é necessário distinguir entre diferentes cardinalidades máximas > 1 • Dois valores de cardinalidades máximas são usados – 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 36 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:n (muitos-para-muitos) – 1:n (um-para-muitos) – 1:1 (um-para-um) 19 ©Carlos A. Heuser - Transparências para uso com o livro Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 1999 37 Relacionamentos 1:1 PESSOA CASAMENTO marido 1 1 EMPREGADO ALOCAÇÃO 1 1 MESA esposa ©Carlos A. Heuser - Transparências para uso com o livro Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 1999 38 Relacionamentos 1:n ALUNO INSCRIÇÃO CURSO 1n EMPREGADO DEPENDENTE 1 n EMPREGADO SUPERVISÃO 1 n supervisor supervisionado 20 ©Carlos A. Heuser - Transparências para uso com o livro Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 1999 39 Relacionamentos n:n ENGENHEIRO ALOCAÇÃO PROJETO n n MÉDICO CONSULTA PACIENTE n n PEÇA CAPACIDADE FORNECEDOR n n PRODUTO COMPOSIÇÃO n n composto componente ©Carlos A. Heuser - Transparências para uso com o livro Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 1999 40 Relacionamento ternário DISTRIBUIDORCIDADE PRODUTO DISTRIBUIÇÃO 21 ©Carlos A. Heuser - Transparências para uso com o livro Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 1999 41 Cardinalidade em relacionamento ternário DISTRIBUIDORCIDADE PRODUTO DISTRIBUIÇÃO 1 n n a cardinalidade “1” refere-se a um par cidade e produto ©Carlos A. Heuser - Transparências para uso com o livro Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 1999 42 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” 22 ©Carlos A. Heuser - Transparências para uso com o livro Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 1999 43 Cardinalidade mínima - DER EMPREGADO ALOCAÇÃO e1 e4 e3 e2 e1,m 1 e2,m 2 (0,1) (1,1) MESA e4,m4 m1 m6m4 m3 m2 m5 e3,m6 ©Carlos A. Heuser - Transparências para uso com o livro Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 1999 44 Exemplo - entidades e relacionamentos DEPARTAMENTO RESPONSÁVEL DISCIPLINA (1,1) (0,n) ALUNO INSCRIÇÃO CURSO (1,1)(0,n) (0,n) (0,n) DISC-CURSO PRÉ-REQUIS (0,n) (0,n) liberador a liberada 23 ©Carlos A. Heuser - Transparências para uso com o livro Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 1999 45 PROJETO tipo código nome Atributo Dado ou informação que é associado a cada ocorrência de uma entidade ou de um relacionamento ©Carlos A. Heuser - Transparências para uso com o livro Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 1999 46 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) 24 ©Carlos A. Heuser - Transparências para uso com o livro Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 1999 47 Atributo com cardinalidade CLIENTE telefone (0,n) código nome Atributo opcional e multi-valorado ©Carlos A. Heuser - Transparências para uso com o livro Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 1999 48 Atributo em relacionamento ENGENHEIRO ATUAÇÃO PROJETO (0,n) (0,n) Código Nome TítuloFunção Código 25 ©Carlos A. Heuser - Transparências para uso com o livro Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 1999 49 Atributo em relacionamento 1:n FINANCEIRA FINANCIAMENT O VENDA (0,1) taxa de juros (0,n) nº de parcelas ©Carlos A. Heuser - Transparências para uso com o livro Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 1999 50 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 26 ©Carlos A. Heuser - Transparências para uso com o livro Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 1999 51 Atributo identificador PESSOA endereço código nome PRATELEIRA número da prateleira capacidade número do corredor ©Carlos A. Heuser - Transparências para uso com o livro Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 1999 52 Relacionamento identificador • Entidade fraca EMPREGADO DEPENDENTE(1,1) (0,n) nomeseqüênciacódigo número nome 27 ©Carlos A. Heuser - Transparências para uso com o livro Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 1999 53 Relacionamento identificador (recursão) (1,1) (0,n) GRUPO código número da empresa FILIAL (1,1) (0,n) número da filial EMPRESA ©Carlos A. Heuser - Transparências para uso com o livro Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 1999 54 Identificador de relacionamento • Uma ocorrência de relacionamento diferencia-se das demais do mesmo relacionamento pelas ocorrências de entidades que dela participam. ENGENHEIRO ALOCAÇÃO PROJETO n n 28 ©Carlos A. Heuser - Transparências para uso com o livro Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 1999 55 Relacionamento com atributo identificador MÉDICO CONSULTA PACIENTE n n data/hora ©Carlos A. Heuser - Transparências para uso com o livro Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 1999 56 Generalização/especialização • Conceito permite – atribuir propriedades particulares a um subconjunto das ocorrências (especializadas) de uma entidade genérica 29 ©Carlos A. Heuser - Transparências para uso com o livro Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 1999 57 Generalização/especialização CLIENTE PESSOA FÍSICA PESSOA JURÍDICA nome código CIC CGC FILIAL (1,1) (0,n) sexo tipo de organização ©Carlos A. Heuser - Transparências para uso com o livro Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 1999 58 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 30 ©Carlos A. Heuser - Transparências para uso com o livro Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 1999 59 Entidade associativa (BD1: agregado) • Modificar modelo: • Adicionar medicamentos prescritos em uma consulta MÉDICO CONSULTA PACIENTE n n ©Carlos A. Heuser - Transparências para uso com o livro Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 1999 60 Substituindo relacionamento por entidade MÉDICO PACIENT E MEDICAMENT O PRESCRIÇÃ O (1,1) n n (1,1) n n CONSULT A 31 ©Carlos A. Heuser - Transparências para uso com o livro Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 1999 61 Entidade associativa MÉDICO CONSULTA PACIENTE n n PRESCRIÇÃ O MEDICAMENT O n n ©Carlos A. Heuser - Transparências para uso com o livro Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 1999 62 Símbolos DER Conceito Símbolo Entidade Relacionamento Atributo Atributo identificador Relacionamento identificador Generalização/ especialização Entidade associativa (1,1) 32 ©Carlos A. Heuser - Transparências para uso com o livro Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 1999 63 DER de uma farmácia PRODUTO FABRICANTE LOTE FORNECEDOR MEDICAMENTO PERFUMARIA VENDA RECEITA MÉDICA (1,n)(0,n) (1,1) (0,n) (1,n)(0,n) (1,1) (0,n) (0,n) (0,n)(0,n)(0,1) (0,n) (1,n) ©Carlos A. Heuser - Transparências para uso com o livro Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 1999 64 DER recursos humanos EMPREGADO DEPARTAMENTO GERENTE SECRETÁRIA ENGENHEIRO PROCESSADOR DE TEXTOS PROJETO DOMÍNIO PARTICIPAÇÃO LOTAÇÃO tipo de empregado nome CREA CIC (1,1)(0,n) (1,n) (0,n) (0,n) (0,n) GERÊNCIA (1,n) (0,1) p