MER
Projetar tabelas a partir da
simples observação da realidade nem sempre é fácil, pode não ser o modo mais eficiente de
projetar.
Os modelos semânticos dos dados
surgiram para agregar sentido à descrição de um banco de
dados.
O modelo de
Entidades-Relacionamentos é um modelo de dados que se propôs a
englobar algumas propostas de modelagem anteriores (relacional e
rede ) e dar uma visão mais abstrata e de mais alto nível a um
ambiente de BD.
O modelo de Entidades e
Relacionamentos
- Regras
- predicados,
asserções ou verdades estabelecidas sobre
- entidades
- relacionamentos
- atributos
- que complementam a
semântica dos modelos de dados.
- São entendidas como
sentenças expressas em linguagem natural que
descrevem requisitos de negócios dos usuários
- Classificação
- Regras de Entidades
- Regras de
Relacionamentos
- Regras de Atributos
Regras de Entidades:
Definem seu comportamento em
relação a:
- unicidade de chaves
primárias
- chave deve
identificar univocamente uma tupla
- chave não pode ser nula
- chave não pode
conter atributos nulos parciais ou totais
- processamento
- quais eventos e como
os processos de negócios acessam, modificam,
excluem e incluem as tuplas
- Estado
- define os estados
possíveis assumidos pela entidade, aumentando o
entendimento sobre a dinâmica de seu mecanismo
- Transição de estado
- define as causas que
motivam mudanças de estado
- ordem de compra:
pendente->encerrada
Regras de Relacionamento
- Regras de relacionamentos ou integridade
referencial
- definem o
comportamento das entidades com relação as
operações de inclusão, delecão e
modificação
Regras de Atributos
- Regras de atributos
- os atributos serão
definidos baseados em algumas premissas
fundamentais:
- o significado
do atributo deverá ser claramente
definido, inserido em um dicionário de
dados e indexado por palavras-chave que
melhor retratem a semântica de seu
conteúdo
Deverão ser definidos como
pertencentes a uma ou mais entidades de dados, dependendo de sua
função (identificação, relacionamento ou qualificação)
Deverão ser definidos dentro do
conceito de domínio, onde deverão ser explicitados o seu
formato, regras de derivação, lei de formação, valores
iniciais , etc
Relacionamentos
- possuem riqueza semântica
muito grande
- permitem
representação das regras do negócio do
usuário
- ex: um
funcionário obrigatóriamente pertence a
um departamento
- são caminhos de acesso
existentes entre entidades
- nome de um relacionamento
- verbo gravado no
interior do losango
Como descobrir se um atributo
é de relacionamento ou de entidade
- Relacionamentos N:N
- fixa-se uma das
entidades (Material) ex: prego 12x12, e variam-se
os fornecedores desse material;
- evidentemente o
atributo pode mudar.Ex: fornec A e fornec B podem
fornecer este material
- Se o atributo muda ao
alterar-se o elemento da outra entidade, ele não
é atributo da primeira entidade
- Repetir o teste para
Fornecedor: a empresa X fabrica prego 12x12 mas,
revende fio elétrico 6mm
- como o atributo
variou para a mesma entidade, ele não é
atributo de fornecedor também.
Relacionamentos: atributos
- Como descobrir se um
atributo é de relacionamento ou de entidade
- outro teste mais simples
(não tão seguro)
- observar a maneira
com que o atributo é referido
- No exemplo:
- "o
preço que um fornecedor cobra por um
material" e não "o preço de
um material" nem "o preço de
um fornecedor"
o fato do atributo ser descrito
com frases que englobam os dois conjuntos de entidades mostra que
o atributo é do relacionamento
- Relacionamentos 1:N
- é mais problemático
porque um atributo de relacionamento pode ser
movido para o conjunto de entidades do lado N.
Modelo E-R: chave primária
- Atenção
- uma chave
primária nunca deve ser alterada!
os atributos que formam a Chave
Primária devem ser escolhidos entre aqueles que sem
qualquer margem de dúvida não sofrerão
alteração durante o ciclo de vida do sistema
Modelo E-R: chave primária de
entidades fracas
- em certos casos as
ocorrências de entidades não podem ser
inequivocamente identificadas por valores de seus
próprios atributos
- então utilizamos RELACIONAMENTOS
para identificá-las
- possui atributos que
não são dela e sim da entidade da qual ela é
dependente
Modelo E-R: chave primária de
relacionamentos
- um relacionamento precisa ter
uma forma de individualizar suas ocorrências
- como o relacionamento é
dependente das entidades por ele associadas
- sua chave primária
é a união das chaves primárias de todas as
entidades associadas
- MAS, em muitos casos
este conjunto de atributos não individualizam a
ocorrência do relacionamento
- exemplo:
- o programa P1 é
executado 2 vezes no Step 1;
- neste caso, tem-se 2
ocorrências de relacionamentos cuja chave
primária é:
-
- Solução . . .
- relacionamentos são
considerados como objetos fracos
- é possível a
especificação de Chaves Primárias para
relacionamentos da seguinte forma:
Modelo E-R: chave secundária
Chave Secundária
- atributo que propicia uma
forma especial de acesso às entidades e relacionamentos
- sempre permite a ocorrência
de duplicidade
- normalmente suprem a
necessidade de acesso a uma ordenação das ocorrências
da entidade, necessárias a algum procedimento
- ex:
nomes,codificações fonéticas
- é possível especificar
CS p/relacionamentos
Modelo E-R: cardinalidade
- indica a quantidade de
ocorrências de entidade de uma mesma espécie que
participa do relacionamento
- pergunta: havendo 1
F,qual o máximo de ocorrências de D que
podem relacionar-se c/F
- pergunta: havendo 1
D,qual o máximo de ocorrências de F que
podem relacionar-se c/D
Modelo E-R: generalização
Abstração na qual um conjunto
de entidades semelhantes, possivelemente com alguns atributos
comuns e outros diferentes são vistos como uma única entidade
genérica
- Generalização com
relacionamento implicito R
Relacionamentos deste tipo ocorrem
entre entidades com atributos globais e entidades especializadas
a partir destas , com atributos específicos
Exercício:
- Sistema de um clube de
livro
- uma pessoa
inscreve-se como sócio
- um sócio encomenda
livros
- clube faz pedido de
livros a fornecedor
- fornecedor entrega
livros pedidos
- fornecedor de livros
envia catálogo de livros disponíveis
- clube envia fatura ao
sócio
- sócio envia
pagamento em resposta a fatura
Exercício:
- Sistema de projetos
- um funcionário tem
vários documentos
- um funcionário
participa de vários projetos
- um projeto pode ter
várias fases
- cada fase é
identificada por uma data de início e uma data
de fim
- cada fase é
gerenciada por um único funcionário. Para
desempenhar tal função, o funcionário deverá
ter curso superior
- cada funcionário
poderá ter vários cursos, identificados por um
código e uma data de realização
- os cursos poderão
ter pré-requisitos
Exercício:
- Sistema de consultório
dentário
- Cliente deseja
elaborar orçamento
- Cliente inicia
tratamento orçado
- Cliente cancela
tratamento orçado
- Cliente desmarca
consulta
- Cliente remaneja
consulta
- Cliente termina
tratamento
- Cliente paga
prestação de tratamento
- Dentista faz
requisição de material odontológico
- Dentista recebe
material odontológico encomendado
- Dentista emite
pagamento de material comprado
Exercício:
- Sistema de controle de
produtos e equipamentos de informática
Considere como equipamento
qualquer hardware e software existentes na sua instalação,
localizado em algum departamento da empresa;
- os equipamentos possuem
contrato de manutenção com seus fornecedores e estão
associados a um ítem de contrato
- é importante acessar os
equipamentos por palavras-chave a fim de identificá-los
facilmente (tipo de produto, marca, nome, etc)
Exercício:
- Sistema de controle de
campeonato de futebol
- Campeonato transcorre
em turno e returno
- time campeão é o
que fizer o maior número de pontos
- juizes e bandeirinhas
são avaliados a cada jogo com relação ao
desempenho
- informações gerais
(público, renda,...) são gerenciadas para
melhorias nos campeonatos seguintes.
Exercício:
- indique os relacionamentos
para as seguintes regras:
- um cliente pode
obviamente comprar vários produtos, pode receber
descontos que são variáveis em cada compra;
- esses descontos
necessitam ser autorizados por vendedores
- obs: caso
necessário, enriqueça o modelo e disponha as
entidades e relacionamentos
Modelo E-R: generalização
características
- representa quantos níveis de
especialização são necessários ou desejados
- representa de forma
inteligível a natureza das generalizações
permite representar a
intersecção de entidades que são especializações de uma
mesma entidade genérica, mostrando específicamente quais as
entidaddes especialistas não interseccionam, quais as que podem
e, quais as obrigatóriamente interseccionam
- Exemplo
- um funcionário pode
ser estagiário e eng
- um funcionário não
pode ser motorista e secretária
- toda
secretária,motorista e engenheiro é
necessáriamente Estagiário ou Efetivo,
- mas, não
necessariamente um efetivo ou estagiário é
secretária,engenheiro ou motorista
Transformação de
generalização p/forma tabular
- há 2 métodos
-
- criar uma tabela para
a entidade de mais alto nível
para cada entidade de baixo nível
criar uma tabela que inclui uma coluna para cada um dos atributos
desta entidade + uma coluna para chave primária da entidade
superior
- conta: num-conta,saldo
- aplic: num-conta,taxa de
juros
- saque:num-conta,saldo devedor
Transformação de
generalização p/forma tabular
não criar uma tabela p/entidade
de mais alto nível, criar uma tabela que inclui uma coluna
p/cada um dos atributos daquela entidade mais uma coluna p/cada
atributo da entidade de nível superior
- aplic:
num-conta,saldo,taxa-juros
- cheque:num-conta,saldo,saldo-devedor
Modelo E-R: Agregação
- uma limitação do modelo é
que relacionamentos devem ocorrer entre entidades
- às vezes torna-se
necessário construir um relacionamento envolvendo algum
relacionamento na associação
- daí o conceito de agregação
- é uma
abstração através da qual
relacionamentos são tratados como
entidades de alto nível
- exemplo:
Modelo E-R: Agregação
o relacionamento USA inclui uma
coluna para cada chave primária das entidades envolvidas além
de colunas para os atributos do relacionamento USA
- exemplo:
- empregado: id-emp,
nome
- projeto: num-proj
- work:
id-work,num-proj,data
- equip: id-equip
- USA:
id-equip,id-emp,num-proj + atributos deste
relacionamento
Representação tabular
- entidades fortes
- cria-se uma tablea E
com uma coluna para cada atributo identificado
- entidades fracas
- Seja
A(a1,a2,a3,...ar) uma entidade fraca
- Seja B(b1,b2,b3,...br)
a entidade forte da qual A é dependente
- cria-se uma
tabela A identificada + uma coluna
p/chave primária de B
- A=(a1,a2,..ar)
U (b1,b2)
- relacionamentos
cria-se uma tabela R com 1 coluna
para cada atributo do relacionamento + 1 coluna p/chave primária
de cada uma das relações envolvidas
modelo E-R: diagrama de
estrutura de dados
- relacionamentos 1:1
- nem sempre exigem um
depósitode dados na sua implementação
um alguns casos um relacionamento
pode ser absorvido por uma das entidades participantes,
incluindo-se em cada ocorrência desta entidade um apontador para
a outra entidade
quando o relacionamento for
implementado como um registro de um arquivo, conterá tantas
referências quantas forem as ocorrências de entidades
participantes, mais eventuais atributos próprios do
relacionamento
modelo E-R: diagrama de
estrutura de dados
- regras práticas
- auto-relacionamentos
- sempre geram
arquivos
- contém
chaves externas que apontam
p/ocorrências da entidade e,
eventualmente, atributos do próprio
relacionamento.
modelo E-R: diagrama de
estrutura de dados
- regras práticas
- relacionamentos 1:1
ou 1:n
- são
absorvidos pela entidade cuja ocorrência
deve participar sempre de 1 e só 1
ocorrência do relacionamento
- eventuais
atributos do relacionamento são também
absorvidos pela entidade
modelo E-R: diagrama de
estrutura de dados
- regras práticas
- relacionamentos de
grau maior que 2
- sempre
originam depósito de dados
- não há como
entidades participantes absorver o
relacionamento
- então, um
registro de relacionamento deve ser
criado, recebendo os ponteiros de todas
as entidades envolvidas