Você está na página 1de 52

Banco de Dados

Modelos Conceituais de Dados

Profa. Flávia Cristina Bernardini

* Slides Baseados no material elaborado pelos professores Eduardo R. Hruschka,


Cristina D. A. Ciferri e Elaine Parros Machado
Modelagem
 Fase de estudo (entendimento) de um
assunto (negócio) para posterior
projeto/implementação
 Fase crucial para o ciclo de vida do processo
de desenvolvimento de software
 Neste fase serão identificadas entidades
(conjunto de indivíduos com características
similares) do negócio e suas relações
(interações entre estes indivíduos)
Motivação
 Objetivo da abordagem de BD:
◦ oferecer abstração dos dados
◦ separar aplicações dos usuários dos detalhes de
hardware
◦ ferramenta utilizada: modelo de dados
 Modelo de dados:
◦ conjunto de ferramentas conceituais para a descrição:
 dos dados
 dos relacionamentos existentes entre os dados
 da semântica e das restrições que atuam sobre os dados /
relacionamentos
Categorias de Modelos de Dados
 Divisão baseada nos tipos de conceitos
oferecidos para descrever a estrutura do BD
 Modelo de dados conceitual
◦ modelo de alto nível
◦ oferece conceitos próximos aos conhecidos pelos
usuários
◦ exemplo: Modelo Entidade-Relacionamento
(MER)
Categorias de Modelos de Dados
 Modelo de dados de implementação:
◦ oferece conceitos que podem ser facilmente
utilizados por usuários finais
◦ tais conceitos não estão distantes da maneira na qual
os dados estão organizados dentro do computador
◦ é implementado de maneira direta
◦ exemplo: modelo relacional
 Modelo de dados físico:
◦ modelo de baixo nível
◦ descreve como os dados estão armazenados
fisicamente no computador
Modelo de Dados e o Projeto de BD
Projeto de BD
 Análise de requisitos:
◦ entrevistas a usuários de BD
◦ documentação do sistema
 Projeto conceitual:
◦ utiliza modelo de dados de alto nível
◦ descreve de maneira concisa as necessidades dos
usuários
◦ inclui descrições detalhadas dos tipos de dados,
relacionamentos e restrições
◦ é fácil de ser entendido
Projeto de BD ...
 Mapeamento para modelo:
◦ tradução do esquema conceitual em uma
linguagem de alto nível para uma linguagem de
implementação
 Projeto físico:
◦ especificação de estruturas internas de
armazenamento
◦ especificação das formas de organização de
arquivos para o BD
Modelo Entidade-
Entidade-Relacionamento
(MER)
 Características
◦ desenvolvido para facilitar o projeto lógico do BD
◦ permite a representação da estrutura lógica global
do BD
◦ é um dos modelos de dados com maior
capacidade semântica
◦ representa um problema como um conjunto de
entidades e relacionamentos entre entidades

Diagrama de Entidades-Relacionamentos (DER)


Entidade
 Qualquer “coisa” do mundo real envolvida no
problema
 Possui existência independente
 Pode ser um objeto com:
◦ existência física: uma pessoa, um carro
◦ existência conceitual: uma companhia, um
emprego, um curso, etc.
 Descrita por propriedades particulares:
atributos
Atributo
 Caracterizam uma entidade ou um
relacionamento
◦ Exemplo: tipo_entidade cliente
atributos: nome_cliente
endereço_cliente
data_nascimento
 Domínio de um Atributo:
◦ Conjunto de valores possíveis para o atributo
◦ Pode assumir o valor nulo (i.e., null)
◦ Exemplos: nome_cliente: varchar(50)
data_nascimento: date
Exemplos
 Tipo-entidade cliente atributos:
nome_cliente, endereço_cliente, data_nascimento

 entidade e1:
◦ nome_cliente: Márcia
◦ endereço_cliente: Rua X, 1
◦ data_nascimento: 12/03/1970

 entidade e2:
◦ nome_cliente: Romualdo
◦ endereço_cliente: Rua Floriano Peixoto, 10
◦ data_nascimento: 10/10/1982
Classificação dos Atributos
 Simples versus Compostos
◦ atributo simples ou atômico:
 não pode ser decomposto (dividido) em atributos mais
básicos
 exemplo: sexo ∈ {M, F}
◦ atributo composto:
 pode ser decomposto (dividido) em atributos mais
básicos
 possui como valor a concatenação dos valores dos
atributos simples que o formam
 exemplo: atributo endereço:
 nome_rua, nro_casa, complemento, nome_bairro, ...
Classificação dos Atributos
 Monovalorados versus Multivalorados:
◦ atributo monovalorado:
 possui um único valor para cada entidade
 exemplo: idade
◦ atributo multivalorado:
 possui múltiplos valores para cada entidade
 exemplo: atributo telefone (222-0000, 222-0001, ...)
 pode possuir limites inferior/superior com relação à
multiplicidade dos valores assumidos
 exemplo: nro_min = 0, nro_max = 3
Classificação dos Atributos
 Armazenado versus Derivado
◦ atributo armazenado:
 está realmente armazenado no BD
◦ atributo derivado:
 pode ser determinado através de outros atributos ou
através de entidades relacionadas
 exemplos: idade = data_atual - data_nascimento
nro_empregados = “soma de entidades”
 pode ou não ser armazenado no BD
Tipo--Entidade
Tipo
 Conjunto de entidades do mesmo tipo
 Descrito por um nome e uma lista de atributos
 entidades de um tipo-entidade (conjunto de
entidades):
◦ compartilham os mesmos atributos
◦ possuem seus próprios valores para cada atributo
◦ Exemplo: os empregados de uma empresa são as
entidades de um tipo-entidade denominado
Empregado
 É usual se referir ao conjunto de todas as
entidades pelo mesmo nome do tipo-entidade, e.g.
Empregado
Representação
Representa ção
Restrição de Chave
 Chave primária:
◦ Conjunto mínimo de atributos que identificam de
maneira única uma determinada entidade
◦ Escolhida pelo projetista do BD como o principal
meio de identificação de um tipo-entidade
◦ Principal meio de acesso a uma entidade.
 Exemplo:
Relacionamento e Tipo-
Tipo-relacionamento
 Quando um atributo de uma entidade x refere-se a
um atributo da entidade y há um relacionamento
 Relacionamento:
◦ associação entre entidades
 Tipo-relacionamento:
◦ conjunto de relacionamentos do mesmo tipo
 Exemplo: Empregado trabalha para Departamento
Exemplo de relacionamento
 Empregado: nome, CPF, sexo, endereço, data de
nascimento, nome do departamento.
 Departamento: nome, número, gerente.
 Relacionamentos: r1={e1,d2}; r2={e2,d3}; r3={e3,d2};
 r4={e4,d1}; etc.
 Empregados e1 e e3 trabalham no mesmo
departamento (d2).
 Tipo-Relacionamento é o conjunto de associações
(relacionamentos) individuais entre entidades
particulares.
 Cada instância de relacionamento ri inclui exatamente
uma entidade de cada Tipo-entidade.
Restrições nos Tipos-
Tipos-Relacionamento
 Limitam as combinações possíveis de entidades
que podem participar dos tipos-relacionamento
 Derivadas do mini-mundo sendo analisado
 Exemplos:
◦ Um empregado deve necessariamente trabalhar para
algum departamento;
◦ Um empregado não precisa ser, necessariamente, um
gerente
 Restrições estruturais:
◦ Cardinalidade
◦ Participação
Restrição de Cardinalidade
 Determina o número máximo de instâncias de
relacionamento em que uma entidade pode participar
 Cardinalidades:
◦ um-para-um ( 1 : 1 )
 1 empregado gerencia no máximo 1 departamento;
 1 departamento é gerenciado por no máximo 1 empregado.
◦ um-para-muitos ( 1 : N ) - ou alternativamente (N : 1)
 1 departamento emprega N (N ∈ {0,1,...}) funcionários;
 1 funcionário trabalha para (no máximo) 1 departamento.
◦ muitos-para-muitos ( M : N )
 1 departamento emprega N funcionários (N ∈ {0,1,...})
 1 funcionário trabalha em M departamentos (M ∈ {0,1,...}).
Representação da Restrição de
Cardinalidade
1 1
EMPREGADO gerencia DEPARTAMENTO

N 1
EMPREGADO trabalha DEPARTAMENTO

M N
EMPREGADO desenvolve DEPARTAMENTO
Restrição de Participação
 Determina se a existência de uma entidade depende ou não
do fato dela participar de um relacionamento
 Tipos de participação
◦ Total:

N 1
EMPREGADO trabalha DEPARTAMENTO

◦ Parcial:

1 1
EMPREGADO gerencia DEPARTAMENTO
Exercício
 Diferencie semanticamente as duas
modelagens representadas a seguir:
a)
cód_funcionário

FUNCIONÁRIO nome_funcionário

nro_telefone

b)
M N
FUNCIONÁRIO utiliza TELEFONE

cód_funcionário nro_telefone

nome_funcionário
Grau de Tipo-
Tipo-Relacionamento
 Grau de um tipo-relacionamento:
◦ número de tipos-entidade participantes
 Unário (ou recursivo):
◦ relaciona um tipo-entidade com ela mesma;
◦ indicado utilizar nome de papel (ajuda a explicar o
significado do relacionamento):
N subordinado
EMPREGADO

1
supervisiona
supervisor
Um pouco mais sobre os papéis...
 Cada conjunto de entidades que participa de
um conjunto de relacionamentos tem um
PAPEL neste
 Indicação opcional, mas que pode facilitar
entendimento da modelagem:

Matrícula
PESSOA Matricula DISCIPLINA
Matriculada em
Um pouco mais sobre os papéis...
 Indicação de papéis deve ser feita sempre que
houver ambigüidade na interpretação do
conjunto de relacionamentos

Contratado
Contrata
por
EMPRESA Contrata CURSO
Contratada Contrata
por

? ?
Um pouco mais sobre os papéis...
 Auto-Relacionamento: um mesmo conjunto
de entidades desempenha mais de um papel
num mesmo conjunto de relacionamentos.

Tem pré-requisito
EMPRESA Contrata

É pré-requisito
Grau de Tipo-
Tipo-Relacionamento
 Binário:
◦ relaciona um tipo-entidade a outro tipo-entidade
◦ grau de relacionamento mais utilizado
◦ Exemplo:

M N
EMPREGADO desenvolve PROJETO
Grau de Tipo-
Tipo-Relacionamento
 Ternário:
◦ relaciona três tipos-entidade.
 Exemplo:

M N
CLIENTE CCA CONTA

AGÊNCIA
Relacionamentos Ternários
 Regra para a determinação das
multiplicidades:
◦ fixa-se dois elementos (dois tipos-entidade);
◦ verifica-se quantos elementos do outro tipo-
entidade podem surgir com relação a um
elemento de cada tipo-entidade fixada;
◦ se a quantidade for indeterminada ou variável:
 então considera-se N;
 senão considera-se 1.
Relacionamentos Ternários...
 Dado um professor e uma disciplina, pode
existir uma quantidade variável (0,1,...,N) de
alunos monitores para esta.

N
ALUNO Monitora DISCIPLINA

PROFESSOR
Relacionamentos Ternários...
 Dado um professor e um aluno monitor,
existe no máximo uma disciplina que esse
aluno monitora.

N 1
ALUNO Monitora DISCIPLINA

PROFESSOR
Relacionamentos Ternários...
 Dado um professor e um aluno monitor,
existe no máximo uma disciplina que esse
aluno monitora.

N 1
ALUNO Monitora DISCIPLINA

PROFESSOR
Relacionamentos Ternários...
 Um relacionamento ternário em geral
representa informações diferentes das dos
três tipos-relacionamento binários:

1 N
DEPARTAMENTO DEP EMPREGADO

1
DEP
PROJETO
001 JOSÉ P03
Relacionamentos Ternários...
1 N
DEPARTAMENTO emprega EMPREGADO

1 N

1 1
desenvolve PROJETO trabalha

emprega trabalha desenvolve

001 JOSÉ JOSÉ P03 P03 004

Departamentos
Diferentes!
Decisão: depende da semântica do problema!
Atributo de Tipo-
Tipo-Relacionamento
 Motivação:

PESSOA Matricula DISCIPLINA

Nome Sigla
Matrícula UFF Nome
N. Créditos

 Onde inserir atributo nota? Nota


Atributo de Tipo-
Tipo-Relacionamento
 Motivação:

PESSOA Matricula DISCIPLINA

Nome Sigla
Matrícula UFF Nota Nome
N. Créditos

Se fosse um atributo de Pessoa, cada pessoa


teria uma nota única para qualquer disciplina.
Atributo de Tipo-
Tipo-Relacionamento
 Motivação:

PESSOA Matricula DISCIPLINA

Nome Sigla
Matrícula UFF Nome

Nota N. Créditos

Se fosse um atributo de Disciplina, todas as


pessoas matriculadas numa disciplina teriam a
mesma nota.
Atributo de Tipo-
Tipo-Relacionamento
 Motivação:

PESSOA Matricula DISCIPLINA

Nome Sigla
Nota
Matrícula UFF Nome
N. Créditos

Solução: inserir nota em Matricula!


Atributo de Tipo-
Tipo-Relacionamento ...
 Valor determinado pela combinação das
entidades participantes em uma instância do
relacionamento
 Outro exemplo: horas_trabalhadas

M N
EMPREGADO desenvolve PROJETO

nome _empregado nro_projeto


CPF_empregado nome_projeto
Exercício
 Dados os tipos-entidade curso e disciplina:
◦ atributos de curso: código_curso, nome_curso;
◦ atributos de disciplina: código_disciplina,
nome_disciplina, carga_horária.
 Faça duas diferentes modelagens, de acordo
com as especificações a seguir:
◦ uma disciplina é obrigatória ou optativa,
independentemente do curso (modelagem 1);
◦ uma disciplina pode ser obrigatória para um curso
e optativa para outro curso (modelagem 2).
Tipo--Entidade Fraca
Tipo
 Entidades de um tipo-entidade fraca:
◦ não podem ser distinguíveis porque a combinação
dos valores de seus atributos pode ser idêntica
◦ são identificadas através da relação que possuem
com entidades pertencentes a tipos-entidade
forte (identificador, proprietário, pai, dominante)
 Representa dependência de existência:
◦ um tipo-entidade fraca (filho, subordinado)
sempre tem uma restrição de participação total
com respeito ao relacionamento identificador
Dependência de Existência
 Se uma entidade x depende da existência de
uma entidade y, então:
◦ x : entidade subordinada;
◦ y : entidade dominante.
 Se y for removida então x também deve ser
removida
 Exemplos:
◦ empregado e dependente
◦ conta e transações
Tipo--Entidade Fraca
Tipo
 Entidade forte:
◦ tem chave primária.
 Entidade fraca:
◦ possui somente uma chave parcial;
 Chave primária de uma entidade fraca
chave primária da entidade forte correspondente
+
chave parcial da entidade fraca
Representação
1 N
EMPREGADO possui DEPENDENTE

nome _empregado nome_dependente


CPF_empregado sexo_dependente

 Chave primária de EMPREGADO: CPF_empregado


 Chave primária de DEPENDENTE: CPF_empregado +
nome_dependente
 Entidade fraca (subordinada): DEPENDENTE
 Entidade forte (dominante): EMPREGADO
Resumo da Notação
Tipo entidade forte Atributo multi-valorado

Tipo entidade fraca


Atributo composto

...
Tipo relacionamento

Identificador de Atributo composto


relacionamento

Atributo Participação total


E1 R E2
de E2 em R

1 N
Atributo chave E1 R E2 Cardinalidade 1:N
Exemplo:
Projeto Lógico de BD
 Identificar tipos-entidade e atributos:
◦ tipos-entidade possuem informações descritivas
◦ atributos devem ser relacionados às entidades que eles
descrevem
 Identificar chaves primárias
 Identificar tipos-relacionamento e seus atributos:
◦ determinar o grau dos tipos-relacionamento
◦ identificar as restrições que se aplicam sobre cada
tiporelacionamento:
 Cardinalidade
 Participação
 Identificar tipo-entidade forte e tipo-entidade fraca
Exercícios
 Projetar um DER para um BD que mantém
controle dos times e jogos de um
campeonato. Assumir que:
a) não necessariamente todos os jogadores de um
time participam de todos os jogos;
b) se deseja controlar quais jogadores participaram
de quais jogos;
c) se deseja armazenar os resultados dos jogos.
Exercícios ...
 Projetar um BD para uma instituição financeira (I) cujas
características são:
a) I é organizada em agências. Cada agência está localizada numa cidade e
tem um nome. Seus ativos são monitorados por I.
b) Clientes são identificados por um número. I armazena para cada
cliente: nome, rua, cidade. Clientes podem ter contas e fazer
empréstimos. Um cliente pode ter um gerente pessoal.
c) Para cada funcionário de I são armazenados: número, nome, telefone,
dependentes, número de seu gerente, data de admissão.
d) Cada cliente de I pode possuir mais de uma conta, e cada conta pode
possuir mais de um cliente. Cada conta recebe um número. I mantém
controle sobre o saldo de cada conta e sobre a data de seu último
acesso.
e) Cada empréstimo tem um número e se origina numa agência,
podendo ser mantido por mais de um cliente. I controla os
pagamentos efetuados para cada empréstimo.