Buscar

02a-+Modelo+ER

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 45 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 45 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 45 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

francisco.massetto@ufabc.edu.br
UFABC –UAB TSI –
TECNOLOGIA EM SISTEMAS DE
INFORMAÇÃO
AULA 2A: APROXIMANDO O
NEGÓCIO DA COMPUTAÇÃO
O MODELO ENTIDADE-
RELACIONAMENTO
AGENDA
 Modelo Entidade Relacionamento
 Técnicas de Modelagem
 Identificação de entidades, atributos
 Tipos de atributos
 Relacionamentos (formalmente e intuitivamente)
 Generalização, especialização
 Papéis (roles) em um relacionamento
 Entidades associativas
 Notações gráficas
APROXIMANDO O NEGÓCIO
DA COMPUTAÇÃO
 Técnicas para modelar regras de negócio em elementos a 
serem armazenados
 Definição dos participantes de um domínio de aplicação e 
suas características, restrições e relações
 Necessidade de poder de abstração de quem interpreta o 
problema para criar um modelo correto e coerente
MODELO ENTIDADE-
RELACIONAMENTO
 Modelo bastante intuitivo, que descreve elementos que 
participam do domínio da aplicação e como estes 
elementos se relacionam
 Descreve objetos (entidades) do domínio da aplicação e 
suas características (atributos)
 Descreve a interação entre esses elementos (relações)
 Uso facilitado se o conceito de relação matemática for 
aplicado
 Pense em conjuntos: Quais relações dois conjuntos de dados 
devem ter?
 Quais vínculos pode haver entre os objetos modelados?
 Como eu faço, para, a partir de um objeto, recuperar 
informações que estejam vinculadas a outro?
ENTIDADES E ATRIBUTOS
 Representa objetos do domínio da aplicação sobre os quais deseja-se 
manter informações armazenadas
 “coisas” com características
 Como identificar as entidades?
 A partir de uma descrição, identificar os “participantes”, os elementos 
descritíveis
 O que é possível identificar nessa descrição do sistema?
 Nem sempre as entidades são identificadas na 1ª vez em que se lê a descrição 
do sistema
 Muitas vezes a descrição deve ser revisitada para um melhor entendimento do 
próprio problema a ser modelado
 E os atributos?
 Características que descrevem esses objetos
 Não confundir atributos com outras entidades. Os atributos sempre 
DESCREVEM uma entidade. 
 Itens que podem ser atômicos ou compostos
TIPOS DE ATRIBUTOS
 Simples (atômico)
 Única informação para descrever o atributo
 Ex: número do RG (somente número), número do CPF, código de cadastro, 
preço
 Composto
 O atributo é caracterizado pela composição de vários outros atributos
 Exemplo: Endereço é caracterizado por: Rua, Número, Complemento, CEP, 
Cidade e Estado
 Ou o documento de Registro é caracterizado pelo número do RG, órgão de 
expedição e data de expedição (pensando em melhorar o exemplo do 
item anterior)
 Derivado
 Atributo é obtido através de um atributo já existente
 Exemplo: idade – obtido através da data de nascimento
 Exemplo: valor liquido – obtido através do valor bruto e desconto
TIPOS DE ATRIBUTOS
 Univalorado
 Único valor para o atributo
 Exemplo: número de registro em um cadastro de funcionários
 Multivalorado
 O atributo pode conter uma lista de valores (vazia ou não)
 Exemplo: telefones de contato em um cadastro de pessoas
EM LINHAS GERAIS
 Atributos Compostos e multivalorados podem confundir a 
cabeça do desenvolvedor da aplicação, induzindo-o a 
imaginar uma outra entidade (atributo composto) ou um 
vínculo entre entidades (atributo multivalorado)
 A má notícia é que não existe fórmula mágica: muito 
depende da experiência do desenvolvedor
 Entretanto, algumas boas dicas podem ser úteis nessa 
etapa
 Pense em descrição do objeto. Esse atributo composto ou 
multivalorado ter vínculos com outros objetos (entidades)?
 Se sim, o atributo multivalorado ou composto pode tornar-se 
uma nova entidade
 Se não, é apenas um atributo que descreve um objeto
REPRESENTAÇÃO GRÁFICA
O atributo 1 está 
marcado diferente por 
ser um atributo chave 
(vamos discutir isso 
adiante)
O atributo 4 é um atributo 
multivalorado . A notação 
(0,n) indica que a entidade 
pode ter 0 ou várias 
ocorrências deste atributo
RELACIONAMENTOS
 Associações / relações entre as entidades envolvidas
 Matematicamente é um relação R sobre 2 conjuntos A e B
 Pense sempre em teoria dos conjuntos – costuma facilitar 
demais a interpretação
 Estabelece vínculos entre duas entidades
 A própria descrição do sistema pode induzir a estas 
relações
EXEMPLOS DE
RELACIONAMENTOS
Notação de conjuntos da relação que descreve quais 
funcionários trabalham em quais departamentos
NOTAÇÃO GRÁFICA
PAPÉIS (ROLES) EM UM
RELACIONAMENTO
 Para melhorar a legibilidade de um modelo, pode-se 
utilizar a notação de definir os papéis que cada entidade 
assume no relacionamento
 Em geral, isso é utilizado quando usa-se o auto-
relacionamento
 A entidade relaciona-se com ela mesma
 Como assim?
 Um elemento do conjunto pode possuir uma relação com 
outro elemento do conjunto (inclusive ele mesmo)
 Entretanto o auto-relacionamento não restringe certas 
situações (como o exemplo a seguir)
AUTO-RELACIONAMENTO COM
PAPÉIS
AUTO-RELACIONAMENTO COM
PAPÉIS
 Problema maior é a limitação descritiva do auto-relacionamento
 No caso do exemplo anterior (pessoa casa-se com pessoa), nada indica 
que uma pessoa possa não deva casar-se com ela mesma
 Algumas restrições não são tangíveis no modelo de armazenamento
 Devem ser responsabilidade da aplicação
CARDINALIDADE DOS
RELACIONAMENTOS
 Cardinalidade indica a quantidade de ocorrências de uma 
entidade associada a outra
 Muda totalmente a interpretação do problema
 Agora temos restrições de quantidades e isso impacta no 
projeto de todo o sistema
 Algumas regras devem ser obedecidas
 A cardinalidade deve refletir todo o ciclo de vida do sistema
 O sistema deve sempre ser modelado levando-se em 
consideração a execução permanente do sistema
 Cardinalidade não trata de uma situação específica, mas de todas 
as prováveis ocorrências das entidades na relação
 Em muitos casos, por não haver restrições de tempo, atributos 
indicando o momento ou instante em que a ocorrência se deu 
podem facilitar a interpretação da relação
CARDINALIDADES (1:1)
1
1 marido casa-se com 1 esposa
1 esposa casa-se com 1 marido
1
CARDINALIDADE 1:1
 Este exemplo reflete uma aplicação para um cenário 
monogâmico ocidental tradicional (rs)
 Restringe um elemento desta entidade (conjunto) a ter um 
vínculo com apenas 1 único elemento da mesma entidade.
 Pensando em relações, isso significa que nunca existirão 2 
ou mais pares ordenados onde o 1º ou o 2º elementos 
repitam
 Abstraindo o modelo, pense no significado levando em 
conta a aplicação e faça a pergunta: uma pessoa pode 
casar-se com mais de uma pessoa?
 Se a resposta for SIM, dependendo do tempo, então um 
atributo indicando data de início e data de término devem 
ser considerados na relação (e não nas entidades)
CARDINALIDADES (1:N)
1N
1 Funcionário trabalha em 1 Departamento
Em 1 Departamento trabalham N Nuncionários
CARDINALIDADES 1:N
 Algumas considerações
 Alguns projetistas de sistemas podem ser induzidos a erros 
conceituais quando se pensa em cardinalidade 1:N, 
principalmente quando são confundidos com atributos 
multivalorados
 No final das contas, na implementação, os resultados 
práticos da cardinalidade 1:N e de atributos multivalorados 
podem resultar na mesma coisa
 Depois veremos ressalvas a respeito desses questionamentos
 Vale a recomendação vista anteriormente 
CARDINALIDADES (M:N)
N
1 Médico consulta N Pacientes
M
1 Paciente é consultado por M Médicos
CARDINALIDADES M:N
 Novamente segue a dica
 A cardinalidade deverefletir todo o ciclo de vida da 
aplicação
 No caso do exemplo anterior, durante todo o ciclo de vida 
de uma clínica (ou hospital), imagine que um paciente só 
possa ser atendido por um único médico
 Estranho né?
 Ou pior... Um médico só pode atender um único paciente!
 Absurdo!
 A cardinalidade M:N é justamente para modelar esses 
casos
ENTIDADES FRACAS
 Entidades que não fazem sentido existir se não houver 
outra entidade para as representar
 Existe uma dependência entre as entidades envolvidas
 Entidade fraca não existe sem a entidade principal
 Alguns autores não fazem menção a este tipo de entidade 
por considerarem restritos ao modelo
 A questão maior é: para que se possa identificar uma 
entidade fraca, o atributo-chave da entidade principal 
deve ser considerado (veremos isso adiante)
 Novamente: entidades fracas não são atributos compostos 
ou multivalorados
 Depende da interpretação do problema? SIM
REPRESENTAÇÃO GRÁFICA
Nota: o traço mais “gordinho” indica a existência da 
entidade fraca
ESPECIALIZAÇÕES E
GENERALIZAÇÕES
 Muito usado para descrever de forma genérica entidades 
que tenham características comuns
 Preserva a identidade individual de cada entidade
 Oferece mecanismos de maior abstração para o projeto do 
banco de Dados
 Facilita a leitura, inclusive
ESPECIALIZAÇÕES E
GENERALIZAÇÕES
O “t” indica uma especialização total, isto é, 
o cliente é necessariamente pessoa física 
‘ou jurídica
O “p” indica uma especialização parcial, 
isto é, o funcionário pode ser um 
professor, um assessor ou simplesmente 
um funcionário (genérico)
RELACIONAMENTOS
TERNÁRIOS
 Quando existe a necessidade de representar a relação 
entre mais de duas entidades 
 O produto cartesiano agora, é composto de uma trinca 
composta pelos elementos dos três conjuntos
 Situação
 Como modelar uma situação onde um Distribuidor de 
produtos é exclusivo para uma cidade?
RELACIONAMENTOS
TERNÁRIOS - VISÃO 1
M
N 1
Nesta primeira 
visão 
modelamos que 
um produto 
pode ser 
fornecido para 
várias cidades e 
uma cidade 
pode receber 
vários produtos 
(sem contar 
quem é o 
distribuidor)
RELACIONAMENTOS
TERNÁRIOS – VISÃO 2
M
N 1
Já nesta 2ª 
visão vemos que 
um distribuidor 
pode distribuir 
vários produtos, 
porém um 
produto é 
distribuído por 
apenas 1 
distribuidor 
(caracterizando 
uma 
exclusividade 
de produto).
RELACIONAMENTOS
TERNÁRIOS - VISÃO 3
M
N 1
Finalmente 
nesta 3ª, vemos 
que uma cidade 
possui um único 
distribuidor de 
produtos e que 
um distribuidor 
pode distribuir 
para mais de 
uma cidade, 
caracterizando 
a exclusividade 
de distribuição 
de produtos por 
um distribuidor 
em uma 
determinada 
cidade.
ENTIDADES ASSOCIATIVAS
 Possibilidade de representar um relacionamento na forma 
de uma entidade.
 Em quais situações?
 Na verdade o fato de existir um relacionamento entre duas 
entidades pode fazer com que a interpretação do problema 
crie uma entidade própria, fruto deste relacionamento
ENTIDADES ASSOCIATIVAS
Neste caso, 
podemos 
modelar o 
relacionamento 
“consulta” 
como uma nova 
entidade 
(resultante da 
associação 
entre médico e 
paciente). 
Pensando em 
implementação, 
o resultado é o 
mesmo, porém 
a leitura do 
modelo torna-se 
mais intuitiva
CONSIDERAÇÕES SOBRE O
MODELO ER
 O modelo ER é um modelo Formal
 Mesmo conceitual e em alto nível, ele é um modelo que 
segue regras bem definidas de construção
 Ausência de ambiguidades 
 Diversos leitores sempre terão o mesmo entendimento do 
modelo
 Para se poder extrair corretamente dados de uma base é 
imprescindível a compreensão do modelo de dados 
 Para manipular um modelo ER, deve-se antes compreender 
as notações, regras e leitura dos diagramas ER
CONSIDERAÇÕES SOBRE O
MODELO ER
 Abordagem ER tem poder de expressão limitado
 Nem sempre é possível restringir todas as situações do 
domínio da aplicação
 Exemplo do relacionamento “Casa-se com”
 Quem garante que não estamos representando um marido 
casado com mais de uma esposa?
 Ou ainda, uma pessoa casada com ela mesma?
CONSIDERAÇÕES SOBRE O
MODELO ER
 Diferentes modelos podem ser equivalentes
 Dois modelos são ditos equivalentes quando ambos geram o 
mesmo esquema de Banco de Dados
 Em termos lógicos, modelos conceituais são convertidos para o 
mesmo conjunto de tabelas
 Podem ser usadas diferentes formas de representar a mesma coisa
 Quando um atributo pode ser multivalorado ou tornar-se uma 
entidade com relacionamento?
 O relacionamento “Consulta” entre as entidades “Paciente” e 
“Médico” foi modelado como uma entidade associativa no M-ER.
 Em ambos os casos, “Consulta” será mapeada para uma tabela no 
modelo Relacional
 Respostas para estas perguntas são difíceis de se formalizar e 
dependem muito da “expertise” do desenvolvedor
ALGUNS CRITÉRIOS A
DISCUTIR
 Atributo x Entidade
 Se o atributo em questão estiver vinculado a outras entidades, ideal é que seja modelado como 
entidade
 Para evitar erros ou variações de digitação na inclusão de registros
 Atributo x Generalização/Especialização (como diferenciar uma entidade genérica de uma 
especializada)
 Pergunta básica: a entidade especializada possui atributos específicos?
 Se a resposta for afirmativa, o ideal é criar uma entidade para representar
 Senão provavelmente a alternativa é criar um novo atributo
 Atributos Opcionais e Atributos Multivalorados
 Em geral essa situação ocorre com situações de generalização/especialização
 Deve-se verificar a integridade das combinações dos atributos
 Exemplo: Empregado, Engenheiro, Motorista, Médico (um empregado pode ser Engenheiro e 
Motorista ao mesmo tempo? Seu modelo deve prever esse tipo de inconsistência)
VERIFICAÇÃO DO MODELO
 Erros Sintáticos x Erros Semânticos
 Uma coisa é não entender as notações, outra é criar modelos que não condizem com 
a descrição do sistema
 Completude do modelo
 O modelo atende todas as especificações consegue “enxergar” todas as entidades 
envolvidas na descrição?
 Alguma coisa não foi considerada?
 Modelo deve refletir aspectos temporais
 Atributos que são alterados com o tempo
 Salário-base do funcionário (armazena-se somente o atual ou cria-se um histórico de 
aumentos?)
 Definição das grades de disciplinas em um curso (quando o curso muda de grade, uma 
mesma disciplina pode ter seu conteúdo alterado?)
 Ideal criar um relacionamento para manter o histórico
VERIFICAÇÃO DO MODELO
 Modelo deve ser livre de redundâncias
 Atributos redundantes
 Salário líquido pode ser perfeitamente obtido ao invés de ser 
modelado como um atributo
 Relacionamentos Redundantes
 Um professor ministra uma disciplina.
 Uma disciplina tem vários estudantes
 Um relacionamento vinculando professor e estudantes é 
desnecessário, uma vez que essa informação pode ser obtida 
indiretamente
 Recupera-se qual a disciplina lecionada pelo professor e, em 
seguida a lista de estudantes
VERIFICAÇÃO DO MODELO
 Entidades isoladas
 São aquelas que não possuem relacionamento com 
nenhuma outra entidade do modelo
 Alguns casos
 Entidade EMPRESA em um sistema de folha de pagamentos 
de 1 única empresa
 Entidades que representam parâmetros para o sistema
 De qualquer forma, qualquer entidade isolada deve ser 
analisada com cuidado para não gerar erros semânticos
ESTRATÉGIAS PARA
MODELAGEM
 “Comece a construir uma casa pela planta e não pelo 
telhado”
 Invista maior partedo seu tempo entendendo o problema e 
modelando seus sistema antes de escrever uma linha 
sequer de código
 Construir um sistema é uma atividade incremental
 Não se obtém em um único passo
 Refinamentos e revisões constantes fazem-se necessárias
 Novas restrições, itens não observados e diferenças de 
interpretação podem forçar alterações no modelo
 Idéia básica: conhecer ao máximo sobre o sistema a partir 
da fonte de informação disponível
ESTRATÉGIA 1: DESCRIÇÕES
DE DADOS
 Coletar documentos que possam descrever as informações 
que se deseja armazenar no Banco de Dados
 Nota fiscal, exemplo de pedido, fichas de cadastro
 Dificuldade em extrair informações deste documentos por 
também não conhecer a fundo o processo onde se encaixa 
o domínio da aplicação
 Necessidade de mais ferramentas e maior interação entre 
desenvolvedor e demandante (cliente ou usuário)
 Entrevistas, questionários, acompanhamento do dia-a-dia
 Apesar de parecer algo muito discutido, ainda temos 
muitos problemas de adequação de sistemas ao processo 
da empresa
 O sistema que tem que refletir a empresa e não a empresa 
mudar por causa do sistema
ESTRATÉGIA 2: CONHECIMENTO DOS
ENVOLVIDOS
 Idéia básica é começar a visualizar o sistema como 
uma caixa preta e, gradativamente, detalhar
 Abstracão
 Visão menos detalhada do problema, em um nível mais alto
 Refinamentos
 A partir de um modelo prévio, começa-se a inserir mais 
detalhes e identificar mais elementos (outros 
relacionamentos, atributos, identificadores, cardinalidades)
 Estratégia TOP-DOWN
 Estratégia INSIDE-OUT
TOP-DOWN
 Modelagem Superficial
 Identificação das entidades
 Identificação dos relacionamentos/hierarquias
 Identificação das cardinalidade máximas
 Determinação dos atributos e dos identificadores
 Verificação temporal do Banco de Dados
 Modelagem detalhada
 Domínio dos atributos (tipos dos atributos: numéricos, caracteres, enumerativos)
 Cardinalidades mínimas e máximas, opcionais
 Definem-se mais restrições e integridades que não são representadas pelo Diagrama ER
 Validação do Modelo
 Procura por construções redundantes
 Validação com o usuário (necessita conhecimento e leitura do diagrama)
INSIDE-OUT
 Foco nos conceitos centrais do problema
 Aqueles considerados “principais”
 Relacionamentos imprescindíveis
 A partir daí começam a ser detalhados os conceitos 
periféricos
 Especializações, relacionamentos de entidades 
especializadas
 Muito próximo ao TopDown
 Maior interação e repetições dos 3 primeiros passos da 
modelagem superficial são necessários
ENFIM
 Ideal é fazer uso das diversas técnicas e do máximo de interação 
possível com os interessados (usuários, clientes) do sistema
 Boa capacidade de comunicação e absorção de informações
 Clareza nas definições, para evitar ambigüidades 
 O modelo não é único nem existe “verdade absoluta”
 Olhe, analise, faça a modelagem, olhe novamente, refaça se for o 
caso
 Mas o principal: PENSE UM PASSO A FRENTE.
 Pense naquilo que você quer recuperar e como essa recuperação 
de informação dar-se-á

Outros materiais