4 Projeto de Banco de Dados Carlos Alberto Heuser
Abordagem ER Capítulo 2 ©Carlos A. Heuser
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 3
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 objeto) Técnicas de modelagem orientada a objeto (UML) baseiam-se nos conceitos da abordagem ER ©Carlos A. Heuser 4
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
Conceitos centrais da abordagem ER Entidade Relacionamento Atributo Generalização/especialização Entidade associativa ©Carlos A. Heuser 6
Entidade Entidade Conjunto de objetos da realidade modelada sobre os quais deseja-se manter informações no banco de dados ©Carlos A. Heuser 7
Entidade – exemplos Sistema de informações industrial: produtos tipos de produtos vendas compras Sistema de contas correntes: clientes contas correntes cheques agências ©Carlos A. Heuser 8
Entidade representa Uma entidade pode representar: objetos concretos da realidade (uma pessoa, um automóvel) objetos abstratos (um departamento, um endereço) ©Carlos A. Heuser 9
Entidade – representação diagramática Representada através de um retângulo. PESSOA ©Carlos A. Heuser 10
Entidade – representação diagramática Representada através de um retângulo. PESSOA Nome da entidade ©Carlos A. Heuser 11
Entidade e instância Para referir um objeto particular fala-se em: instância ou ocorrência de entidade. ©Carlos A. Heuser 12
Entidade e instância - terminologias Há terminologias conflitantes na literatura conjunto elemento do conjunto entidade instância conjunto de entidades classe ©Carlos A. Heuser 13
Entidade e instância - terminologias Há terminologias conflitantes na literatura conjunto elemento do conjunto entidade instância conjunto de entidades classe terminologia adotada no livro ©Carlos A. Heuser 14
Entidade e instância - terminologias Há terminologias conflitantes na literatura conjunto elemento do conjunto entidade instância conjunto de entidades classe terminologia adotada em textos acadêmicos em Inglês ©Carlos A. Heuser 15
Entidade e instância - terminologias Há terminologias conflitantes na literatura conjunto elemento do conjunto entidade instância conjunto de entidades classe terminologia de orientação a objetos ©Carlos A. Heuser 16
Propriedades de entidades Entidade isoladamente pouco informa. É necessário atribuir propriedades às entidades Em um modelo ER, propriedades são especificadas através de: Relacionamentos Atributos Generalizações/especializações ©Carlos A. Heuser 17
Relacionamento - conceito Relacionamento Conjunto de associações entre entidades sobre as quais deseja-se manter informações na base de dados ©Carlos A. Heuser 18
Relacionamento – representação gráfica LOTAÇÃO DEPARTAMENTO EMPREGADO ©Carlos A. Heuser 19
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): instância de LOTAÇÃO = par específico formado por uma ocorrência de PESSOA e uma ocorrência de DEPARTAMENTO ©Carlos A. Heuser 20
Diagrama de ocorrências p3 p7 p1 entidade p8 p4 p6 p5 EMPREGADO p2 relacionamento p1,d1 p2,d1 p4,d2 p5,d3 LOTAÇÃO entidade d1 d2 d3 DEPARTAMENTO ©Carlos A. Heuser 21
Auto-relacionamento PESSOA CASAMENTO ©Carlos A. Heuser 22
Papel no relacionamento Função que uma ocorrência de uma entidade cumpre em uma ocorrência de um relacionamento. PESSOA marido esposa CASAMENTO papel no relacionamento ©Carlos A. Heuser 23
Papel no relacionamento Relacionamentos entre entidades diferentes: não é usual indicar os papéis das entidades LOTAÇÃO DEPARTAMENTO PESSOA ©Carlos A. Heuser 24
Auto-relacionamento diagrama de ocorrências p3 p7 p1 PESSOA p8 p6 p2 p4 p5 marido marido marido CASAMENTO esposa esposa esposa p1,p3 p6,p8 ©Carlos A. Heuser 25
Cardinalidade de relacionamentos Propriedade importante de um relacionamento: Número de ocorrências de uma entidade que podem estar associadas a uma determinada ocorrência de entidade através do relacionamento Chamada de cardinalidade de uma entidade em um relacionamento. Há duas cardinalidades: máxima mínima ©Carlos A. Heuser 26
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 não limitado (“muitos”), referida pela letra n ©Carlos A. Heuser 27
Cardinalidade máxima no DER LOTAÇÃO DEPARTAMENTO EMPREGADO n 1 ©Carlos A. Heuser 28
Cardinalidade máxima - DER LOTAÇÃO DEPARTAMENTO EMPREGADO n 1 expressa que a uma ocorrência de EMPREGADO (entidade do lado oposto da anotação) pode estar associada no máximo uma (“1”) ocorrência de DEPARTAMENTO ©Carlos A. Heuser 29
Cardinalidade máxima - DER LOTAÇÃO DEPARTAMENTO EMPREGADO n 1 expressa que não há um limite superior para o número de ocorrências de EMPREGADO associadas a uma ocorrência de DEPARTAMENTO ©Carlos A. Heuser 30
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) ©Carlos A. Heuser 31
Relacionamentos 1:1 PESSOA 1 1 marido esposa CASAMENTO ©Carlos A. Heuser 32
Relacionamentos 1:1 EMPREGADO 1 ALOCAÇÃO 1 MESA ©Carlos A. Heuser 33
Relacionamentos 1:n INSCRIÇÃO ALUNO n 1 CURSO ©Carlos A. Heuser 34
Relacionamentos 1:n EMPREGADO 1 n DEPENDENTE ©Carlos A. Heuser 35
Relacionamentos 1:n n EMPREGADO 1 DEPENDENTE Nomenclatura: uso de verbos entidades dão o nome ©Carlos A. Heuser 36
Relacionamentos 1:n EMPREGADO supervisor supervisionado 1 n SUPERVISÃO ©Carlos A. Heuser 37
Relacionamentos n:n n ALOCAÇÃO n ENGENHEIRO PROJETO ©Carlos A. Heuser 38
Relacionamentos n:n CONSULTA n MÉDICO n PACIENTE ©Carlos A. Heuser 39
Relacionamentos n:n n n CAPACIDADE PEÇA FORNECEDOR ©Carlos A. Heuser 40
Relacionamentos n:n PRODUTO composto componente n n COMPOSIÇÃO ©Carlos A. Heuser 41
Relacionamento ternário CIDADE DISTRIBUIDOR DISTRIBUIÇÃO PRODUTO ©Carlos A. Heuser 42
Cardinalidade de relacionamento ternário CIDADE DISTRIBUIDOR n 1 DISTRIBUIÇÃO n PRODUTO ©Carlos A. Heuser 43
Cardinalidade de relacionamento ternário CIDADE DISTRIBUIDOR n 1 a cardinalidade “1” refere-se a um par (cidade, fornecedor) DISTRIBUIÇÃO n PRODUTO ©Carlos A. Heuser 44
Cardinalidade mínima 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. ©Carlos A. Heuser 45
Cardinalidade mínima Para fins de projeto de BD relacional, são consideradas apenas duas cardinalidades mínimas: cardinalidade mínima 0 cardinalidade mínima 1 Denominação alternativa: cardinalidade mínima 0 = “associação opcional” cardinalidade mínima 1 = “associação obrigatória” ©Carlos A. Heuser 46
Cardinalidade mínima - DER EMPREGADO (0,1) ALOCAÇÃO e1,m1 e3,m6 e4,m4 e2,m2 (1,1) MESA m1 m6 m4 m3 m2 m5 ©Carlos A. Heuser 47
Cardinalidade mínima - DER EMPREGADO (0,1) ALOCAÇÃO cardinalidade mínima e1,m1 e3,m6 e4,m4 e2,m2 (1,1) MESA m1 m6 m4 m3 m2 m5 ©Carlos A. Heuser 48
Exemplo - entidades e relacionamentos PRÉ-REQUIS liberada liberadora (0,n) (0,n) RESPONSÁVEL DEPARTAMENTO DISCIPLINA (0,n) (1,1) (0,n) DISC-CURSO (0,n) INSCRIÇÃO (0,n) ALUNO (1,1) CURSO ©Carlos A. Heuser 49
Atributo Atributo Dado ou informação que é associado a cada ocorrência de uma entidade ou de um relacionamento ©Carlos A. Heuser 50
Atributo 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 51
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 52
Atributo com cardinalidade CLIENTE telefone (0,n) código nome atributo obrigatório e monovalorado - (1,1) é o default ©Carlos A. Heuser 53
Atributo com cardinalidade CLIENTE telefone (0,n) código atributo opcional e multivalorado nome ©Carlos A. Heuser 54
Atributo em relacionamento ATUAÇÃO (1,n) (0,n) ENGENHEIRO PROJETO Código Nome Função Código Título ©Carlos A. Heuser 55
Atributo em relacionamento 1:n nº de parcelas (0,1) FINANCIAMENTO (0,n) FINANCEIRA VENDA taxa de juros ©Carlos A. Heuser 56
Identificador de entidade Cada entidade deve possuir um identificador Identificador de entidade = conjunto propriedades (atributos, relacionamentos) de uma entidade cujos valores servem para distinguir uma ocorrência da entidade das demais ocorrências da mesma entidade ©Carlos A. Heuser 57
Atributo identificador código PESSOA nome endereço capacidade PRATELEIRA número do corredor número da prateleira ©Carlos A. Heuser 58
Relacionamento identificador número de sequência código nome nome (1,1) (0,n) EMPREGADO DEPENDENTE entidade fraca ©Carlos A. Heuser 59
Relacionamento identificador número de sequência código nome nome (1,1) (0,n) EMPREGADO DEPENDENTE Observar a linha mais densa ©Carlos A. Heuser 60
Relacionamento identificador (recursão) GRUPO código (1,1) (0,n) EMPRESA número da empresa (1,1) (0,n) FILIAL número da filial ©Carlos A. Heuser 61
Identificador de relacionamento Uma ocorrência de relacionamento diferencia-se das demais do mesmo relacionamento pelas ocorrências de entidades que dela participam. ALOCAÇÃO n ENGENHEIRO n PROJETO ©Carlos A. Heuser 62
Relacionamento com atributo identificador CONSULTA (1,n) MÉDICO (0,n) PACIENTE data/hora ©Carlos A. Heuser 63
Generalização/especialização Conceito permite: atribuir propriedades particulares a um subconjunto das ocorrências (especializadas) de uma entidade genérica. ©Carlos A. Heuser 64
Generalização/especialização (1,1) (0,n) FILIAL CLIENTE nome código PESSOA FÍSICA PESSOA JURÍDICA CIC sexo CGC tipo de organização ©Carlos A. Heuser 65
Generalização/especialização (1,1) (0,n) CLIENTE nome FILIAL código Símbolo da generalização-especialização PESSOA FÍSICA PESSOA JURÍDICA CIC sexo CGC tipo de organização ©Carlos A. Heuser 66
Generalização/especialização Entidade genérica (1,1) (0,n) CLIENTE nome FILIAL código PESSOA FÍSICA PESSOA JURÍDICA CIC sexo CGC tipo de organização ©Carlos A. Heuser 67
Generalização/especialização (1,1) (0,n) CLIENTE nome FILIAL código Entidade especializada PESSOA FÍSICA PESSOA JURÍDICA CIC sexo CGC tipo de organização ©Carlos A. Heuser 68
Generalização/especialização (1,1) (0,n) CLIENTE nome FILIAL código Herda as propriedades da entidade genérica PESSOA FÍSICA PESSOA JURÍDICA CIC sexo CGC tipo de organização ©Carlos A. Heuser 69
Generalização/especialização (1,1) (0,n) CLIENTE nome FILIAL código Identificador somente na entidade genérica PESSOA FÍSICA PESSOA JURÍDICA CIC sexo CGC tipo de organização ©Carlos A. Heuser 70
Generalização/especialização (recursão) VEÍCULO VEÍCULO TERRESTRE VEÍCULO AQUÁTICO AUTOMÓVEL VEÍCULO ANFÍBIO BARCO ©Carlos A. Heuser 71
Generalização/especialização (recursão) VEÍCULO VEÍCULO TERRESTRE VEÍCULO AQUÁTICO Herança múltipla AUTOMÓVEL VEÍCULO ANFÍBIO BARCO ©Carlos A. Heuser 72
Generalização/especialização (recursão) A árvore de herança deve ter uma única entidade raiz, que define o identificador. VEÍCULO VEÍCULO TERRESTRE VEÍCULO AQUÁTICO AUTOMÓVEL VEÍCULO ANFÍBIO BARCO ©Carlos A. Heuser 73
Generalização/especialização (recursão) A árvore de herança deve ter uma única entidade, que define o identificador. Identificador de veículo definido aqui VEÍCULO VEÍCULO TERRESTRE VEÍCULO AQUÁTICO AUTOMÓVEL VEÍCULO ANFÍBIO BARCO ©Carlos A. Heuser 74
Generalização/especialização (recursão) Caso proibido: Herança de múltiplos identificadores. VEÍCULO TERRESTRE VEÍCULO AQUÁTICO AUTOMÓVEL VEÍCULO ANFÍBIO BARCO ©Carlos A. Heuser 75
Generalização/especialização (recursão) Caso proibido: Herança de múltiplos identificadores. VEÍCULO TERRESTRE VEÍCULO AQUÁTICO Qual seria o identificador desta entidade? AUTOMÓVEL VEÍCULO ANFÍBIO BARCO ©Carlos A. Heuser 76
Especialização total CLIENTE nome código indica que todo CLIENTE é ou PESSOA FÍSICA ou PESSOA JURíDICA t PESSOA FÍSICA PESSOA JURÍDICA CIC sexo CGC tipo de organização ©Carlos A. Heuser 77
Especialização parcial FUNCIONÁRIO indica que nem todo FUNCIONÁRIO é MOTORISTA ou SECRETÁRIA tipo de funcionário p MOTORISTA SECRETÁRIA ©Carlos A. Heuser 78
Especialização parcial necessário em especialização parcial FUNCIONÁRIO tipo de funcionário p MOTORISTA SECRETÁRIA ©Carlos A. Heuser 79
Especialização não exclusiva (compartilhada) Uma instância de PESSOA pode aparecer em mais de uma de suas especializações PESSOA c PROFESSOR FUNCIONÁRIO ALUNO ©Carlos A. Heuser 80
Tipos de generalizações/especializações Total (t) Parcial (p) Exclusiva (x) xt xp Compartilhada (c) ct cp 81
Entidade associativa Modificar modelo: Adicionar a informação de que medicamentos foram prescritos em uma consulta. CONSULTA n MÉDICO n PACIENTE ©Carlos A. Heuser 82
Incluindo o relacionamento de PRESCRIÇÃO CONSULTA n n MÉDICO PACIENTE PRESCRIÇÃO liga com? n PRESCRIÇÃO n MEDICAMENTO ©Carlos A. Heuser 83
Substituindo relacionamento por entidade MÉDICO PACIENTE (1,1) (1,1) n n CONSULTA n PRESCRIÇÃO n MEDICAMENTO ©Carlos A. Heuser 84
Entidade associativa CONSULTA n n MÉDICO PACIENTE entidade associativa PRESCRIÇÃO n MEDICAMENTO ©Carlos A. Heuser 85