Você está na página 1de 60

Modelagem e Projeto

de Banco de Dados

Professor Manfrine
Santos

Agradecimentos a professora
MSc. Áurea Melo
OBJETIVOS:
 Modelagem de dados de sistemas típicos através do Modelo
Entidade Relacionamento.

 Conceitos e projeto lógico do Modelo Relacional

 Práticas de Modelagem e Projeto


BIBLIOGRAFIA
 Fundamentals of Database Systems
Elmasri, R; Navathe, S
Benjamin Cummings, 1994

 Sistemas de banco de Dados


Korth, H. F.; Silberschatz, A; Sudarshan, S
Makkron Books, 1999

 Introdução a Sistemas de Bancos de Dados


Date, C. J. , Editora Campus, 2000
BANCO DE DADOS
 “É uma coleção de dados inter-relacionados, representando
informações sobre um domínio específico (conceito geral)
 Representa aspectos do mundo real. Mudanças no mundo real
são refletidas no BD
 É uma coleção lógica e coerente de dados com relacionamentos
intrínsecos;
 É projetado, construído, e mantido para uma proposta
específica. É direcionado a um grupo de usuários/aplicação
 Pode ter qualquer tamanho/complexidade
MODELOS DE DADOS

Processo de Solução
Mundo Real Solução
Modelo

Modelo é a representação abstrata e simplificada de uma


determinada realidade. É um conjunto de conceitos para descrever
os dados, de restrições e relacionamento entre esses dados.
MODELOS DE DADOS

Modelo de Entidade
do Modelo do cliente

Modelo do
sistema na
mente do
cliente
Representação
Tabular do modelo Server
de entidade

Tabelas no disco
Níveis de Abstração de BD

Mundo Real

Modelo Entidade Relacionamento

Nível Conceitual

Modelo Relacional-Objeto Relacional

nível lógico

nível físico
Modelo de Dados XPTO
 Conceito  Notação  Conceito  Notação
 Homem  Nuvem

 Casa
 Sol

 Peixe
 Rio
 Pássaro

 Homem deitado
Modelo de Dados XPTO
 Regras de Integridade
 Em dias de sol o homem sempre fica em casa e no
céu há sempre pássaros

 Não existe rio sem peixe

 Sempre que está em casa o homem está em deitado


Modelo de Dados XPTO
 Mundo Real
 Estava um dia ensolarado e o rio estava calmo e
o homem resolveu ficar em casa.

 Apesar de ser um dia nublado, o homem foi


tomar banho no rio.
Modelo Entidade Relacionamento - MER

 Proporciona uma visão lógica de alto nível dos dados

 É uma descrição abstrata de uma porção do mundo real

 Todos os dados são visualizados como fatos específicos sobre


entidades, relacionamentos e atributos
 Através do MER, podemos ter uma fotografia do sistema

 As entidades, relacionamentos e atributos descrevem as regras de


negócio da empresa
Modelo Entidade Relacionamento - MER

 Modelo Entidade-Relacionamento (MER)


Original:
 – Fases do Projeto de Bases de Dados
 – Definição e Objetivo do Modelo ER
 – Entidades e Conjuntos-Entidade
 – Atributos e Domínio de um Atributo
 – Relacionamentos e Conjuntos-Relacionamento
 – Projeto de Chaves
 – Grau de um Relacionamento
 – Restrições de Cardinalidade e Integridade
Referencial
Modelo Entidade Relacionamento - MER

 Extensões e Variações do MER :


 – Agregação
 – Generalização/Especialização
 – Notação, Variações e Exemplos
 – Dicas para Elaboração de Modelos E-R
Modelo Entidade Relacionamento - MER

 Definição: modelo baseado na percepção do


mundo real que consiste em um conjunto de
objetos básicos, chamados entidades, e nos
relacionamentos entre esses objetos.

 Objetivo: facilitar o projeto de banco de dados,


possibilitando especificar a estrutura lógica
geral.
Modelo Entidade Relacionamento - MER

Atributo
supervisor DataIni Relacionamento

gerenciar

1 N 1 1
número
N 1 número
endereço FUNCIONÁRIO trabalhar DEPARTAMENTO
nome
nome N
1 1
salário localização

participar controlar
possuir
horas

N
número
N N PROJETO nome
nome
DataNiver DEPENDENTE
parentesco
Entidade
Modelo Entidade Relacionamento - Convenções

Entidade

Entidade Fraca

Relacionamento

Relacionamento Identificador

Atributo

Atributo Identificador

z Atributo Multivalorado
Modelo Entidade Relacionamento - Convenções

...
Atributo Composto

Atributo Derivado

Participação total de E2 em R
E1 R E2
Ex: Agência e Conta Corrente

E1 1 R N E2 Cardinalidade 1:N para E1:E2 em R

E1 R (min,max) E2 Constraint (min,max) de E em R


código descrição

GENERO
nome
código endereço
1,1
salário

4,N FUNCIONARIO 1,N


classifica

1,1
código nome código
principal
nome
0,N
supervisor
2,N 1,N
ATOR possui FILME qtde fitas

1,1
código descrição preço

1,1
STATUS possui
CLIENTE
dt prev ret valor pago
dt aluguel * multa
1,N condição
possui 1,N
aluguel FITA
código

dt retorno
1,N valor
0,N previsto
CLIENTE

código nome endereço


COMPONENTES DO MER
 ENTIDADE
 Qualquer coisa para a qual desejamos guardar informação
 Conjunto de objetos individuais chamados instâncias
 Uma instância deve ter uma identidade distinta de todas as
outras
TIPOS DE ENTIDADES
 INDEPENDENTES (FORTES)
 entidade que existe por si só
 NOTAÇÃO : retângulo
 RESTRIÇÕES
 Não pode existir duas entidades no mesmo model
 DICA:
 Geralmente tem mais de um atributo
 O nome = substantivo
TIPOS DE ENTIDADES
DEPENDENTES(FRACAS)
 Entidades que dependem de outras para sua existência
(dependência por existência)
 Entidades que dependem de outras para sua
identificação (dependência por identificação)
 NOTAÇÃO: Retângulo duplo

 RESTRIÇÕES
 Só existe enquanto a entidade forte existir
Entidades Fortes e Fracas

Entidade
Dependente

Nome
IdFunc Endereço
Nome
Salário

1 N
Funcionário
Tem Dependente

IdDepto Nome
P-20

1
Trabalho Departamento

Entidade
Independente
MER - Atributos
 Atributo- serve para qualificar a entidade

 Simples
 Multivalorado
 Determinante ou Identificador
 Composto
 Derivado ou Calculado
MER - Atributos
 Simples
 só pode assumir um único valor elementar
 Exemplo: Nome, Idade, Data de Nascimento

 Notação

Rua
Nome Idade
Num

Fone CEP

PESSOAS Endereço
MER - Atributos
 REGRAS
 Começar o nome do atributo com uma inicial maiúscula e estar
no singular
 Distinção entre conjunto de entidades e atributo.
 Exemplo: AUTOR para livro de uma biblioteca
 AUTOR para uma editora
 Se um conjunto de entidades tem um único atributo,
provavelmente aquele conjunto é atributo de um outro conjunto
de entidades.
 Cada atributo deve ocorrer uma única vez em apenas um
conjunto de entidades.
 Desconfiar da modelagem de um conjunto de entidades que
tem um só atributo. Provavelmente, ele é um atributo de outro
conjunto.
MER - Atributos
 Multivalorado
 só pode assumir mais de uma valor
 Exemplo: Fones

 Notação
Rua
Nome Num
Idade

Fones CEP

PESSOAS Endereço
MER - Atributos
 Determinante
 Identifica unicamente uma entidade da outra
 Lembra o conceito de Chave

 Notação
Rua Num
Nome Idade
Fones
CEP

Código PESSOAS Endereço


MER - Atributos
 Determinante
 Identifica unicamente uma entidade da outra
 Lembra o conceito de Chave

 Notação

Fones Rua Num


Nome Idade
CEP
CPF
PESSOAS Endereço
IdPessoa
MER - Atributos
 Composto
 Pode ser dividido em sub atributos
 Exemplo: Endereço

 Notação
Nome Idade
Rua Num
Fones
CEP
Código
PESSOAS
Endereço
MER - Atributos
 Derivado ou Calculado
 Seu valor é gerado a partir do valor de outro
atributo
 Exemplo: Data de Nascimento e Idade

 Notação
DataNasc Nome
Idade Sexo

*
PACIENTES
COMPONENTES DO MER
 RELACIONAMENTO
 É uma ligação entre duas ou mais entidades
 É representado por um losango xx

 RESTRIÇÕES
 Não se pode repetir nomes de relacionamentos
 O relacionamento deve ligar, no mínimo, duas
entidades

Pós-Graduação em Projeto e Administração de Banco de Dados-2006


TIPOS DE RELACIONAMENTOS
 DEPENDENTES (FORTES)
 o conceito de entidade dependente e independente é reforçado
pelo tipo de relacionamento
 quando se quer que uma entidade se torne dependente, cria-se
um relacionamento identificador

 INDEPENDENTES (FRACOS)
 Conecta entidades fortes e fracas

Pós-Graduação em Projeto e Administração de Banco de Dados-2006


Relacionamento Fraco e Forte
Entidade Entidade
Independente Dependente
Nome Identificador
Código Endereço
Nome
Salário Código

1 N
1 Funcionário É de possui
Tem Dependente

N N
ÉC
om
po
s to

Supervisor
de

Código Nome

Trabalha no 1
Trabalho Departamento

Não Identificador
Papel do
Relacionamento
Pós-Graduação em Projeto e Administração de Banco de Dados-2006
CARDINALIDADE DO RELACIONAMENTO

• É a propriedade do relacionamento que define exatamente com


quantas instâncias uma entidade de um conjunto pode se
relacionar com outras entidades de outro conjunto;
• PODE SER:
• um para um
• um para muitos; e
• muitos para muitos
CARDINALIDADE 1:1
Médicos Especialidades
1:1

M1 E1

M2 E2

M3 E3
. .
. .
. .
Mn En

1 1
MÉDICOS possuem ESPECIALIDADES

Pós-Graduação em Projeto e Administração de Banco de Dados-2006


CARDINALIDADE 1:N

Médicos Especialidades
1:N
E1
M1
E2
M2

M3 E3
.
.
E4
.
.
Mn
.
.
En

N 1
MÉDICOS possuem ESPECIALIDADES

Pós-Graduação em Projeto e Administração de Banco de Dados-2006


CARDINALIDADE N:N
Médicos Pacientes
N:N
P1
M1

P2
M2

P3
M3

P4
M4 .
. .
. .
. Pn
Mn

N N
MÉDICOS consultas PACIENTES

(0,1) (1,N)
MÉDICOS possuem ESPECIALIDADES

Pós-Graduação em Projeto e Administração de Banco de Dados-2006


PARTICIPAÇÃO DO RELACIONAMENTO

• É a propriedade do relacionamento que define a obrigatoriedade


ou não de uma entidade participar (se relacionar) de um
relacionamento.
•Pode ser:
• total (obrigatória) ou
• parcial (opcional)

Pós-Graduação em Projeto e Administração de Banco de Dados-2006


PARTICIPAÇÃO DO RELACIONAMENTO:
TOTAL e PARCIAL

N N
MÉDICOS consultas PACIENTES

Pós-Graduação em Projeto e Administração de Banco de Dados-2006


AUTO RELACIONAMENTO
 Situação em que uma entidade se relaciona com outra do mesmo conjunto

Nome
Código Endereço
Salário

1 N
Funcionário

Supervisionado Supervisor

Supervisão

Pós-Graduação em Projeto e Administração de Banco de Dados-2006


Grau do Relacionamento
É dado pelo total de entidades envolvidas no relacionamento
• Binário, ternário, etc.

N N
MÉDICOS consultas PACIENTES

N N
VENDEDORES vendas PRODUTOS

CLIENTES

Pós-Graduação em Projeto e Administração de Banco de Dados-2006


RELACIONAMENTO n-ÁRIOS
• É definido pela regra de negócio
N N
VENDEDORES vendas PRODUTOS

N N

N N
vendem CLIENTES compram

N N
VENDEDORES vendas PRODUTOS

CLIENTES

Pós-Graduação em Projeto e Administração de Banco de Dados-2006


AGREGAÇÃO

N N
MÉDICOS consultas PACIENTES

• Supondo que um médico faz consultas a pacientes.

Pós-Graduação em Projeto e Administração de Banco de Dados-2006


AGREGAÇÃO

N N
MÉDICOS consultas PACIENTES

N N

N N
solicita EXAMES faz

• Supondo também que nessas consultas o médico pode


fazer solicitações de exames.
• Vários binários = inconsistência

Pós-Graduação em Projeto e Administração de Banco de Dados-2006


AGREGAÇÃO

N N
MÉDICOS consultas PACIENTES

EXAMES

• O ternário obriga que em toda consulta o médico


solicite um exame.

Pós-Graduação em Projeto e Administração de Banco de Dados-2006


AGREGAÇÃO

N N
MÉDICOS consultas PACIENTES

solicita

EXAMES

• O MER não permite relacionamento entre relacionamento

Pós-Graduação em Projeto e Administração de Banco de Dados-2006


AGREGAÇÃO

• O melhor modo para representar a situação anterior é usando


a agregação.
• Na agregação não existe obrigatoriedade na entrevista para
encaminhar um candidato a um cargo

Pós-Graduação em Projeto e Administração de Banco de Dados-2006


AGREGAÇÃO

• A agregação é a abstração que transforma um relacionamento


em uma entidade;
• Evita inconsistências
• Só pode ser em relacionamentos de cardinalidade N:N
• Não possui atributos

Pós-Graduação em Projeto e Administração de Banco de Dados-2006


AGREGAÇÃO

N N
MÉDICOS consultas PACIENTES

N N
solicitações MÉDICOS consultas PACIENTES

EXAMES solicitações

EXAMES

Pós-Graduação em Projeto e Administração de Banco de Dados-2006


A Clínica Salva Vidas, atua na área de saúde disponibilizando à sua clientela serviços médicos de
consultas e realização de exames.
Para melhor atender seus clientes, a clínica deseja informatizar seus serviços de forma
a gerar controle sobre os agendamentos e realização de consultas, solicitação e realização de
exames. Para isso, é necessário cadastrar os dados sobre os pacientes, exames, médicos,
especialidades dos médicos e funcionários, entre outros.
Sobre os médicos é necessário que o sistema armazene o CRM, nome, endereço, fones
(residencial e celular) e as especialidades em que atua (oftalmologista, ortopedista, etc). Cada
especialidade também pode ter mais de um médico atuando.
Sobre os pacientes deve-se armazenar o nome, endereço, fones (residencial, celular e
contato). Para se consultar o paciente pode agendar a data e hora da consulta e o nome do
médico. Durante uma consulta o médico captura e repassa ao sistema os sintomas do paciente e o
diagnóstico e ao final desta, ele pode fazer a solicitação de um exame, para que o paciente faça. É
necessário que o sistema mantenha o controle sobre qual médico solicitou e qual realizou o
exame (já que o médico que realiza não é o mesmo que solicita). Além disso, o paciente pode
fazer o exame em outras clínicas. Nesses casos, para a clínica não interessa em qual clínica foi
feito o exame, bastando apenas a informação se foi feito ou não na mesma. Sobre a realização do
exame deve-se guardar a data da realização e o resultado. Um outro ponto importante, é que o
paciente pode ter uma consulta de retorno e tal fato também deve ser controlado pelo sistema.
Com base nas informações descritas faça a modelagem de dados para o sistema. Se
necessário complemente ou incremente a descrição.

Pós-Graduação em Projeto e Administração de Banco de Dados-2006


HERANÇA: GENERALIZAÇÃO E ESPECIALIZAÇÃO

• É a forma de agrupar um conjunto de entidades que compartilham


características comuns.
IdTitulação Descrição
IdPessoa Nome Endereço

TITULAÇÕES
PESSOAS

CPF CGC

DtaNasc NomeFantasia

PESSOAS PESSOAS
FÍSICAS JURÍDICAS
ESPECIALISTA MESTRE

Pós-Graduação em Projeto e Administração de Banco de Dados-2006


HERANÇA: GENERALIZAÇÃO E ESPECIALIZAÇÃO

• É a forma de agrupar um conjunto de entidades que compartilham


características comuns.
IdTitulação Descrição
IdPessoa Nome Diagnóstico

PESSOAS TITULAÇÕES

CPF CGC

DtaNasc NomeFantasia

PESSOAS PESSOAS
FÍSICAS JURÍDICAS
ESPECIALISTA MESTRE

Pós-Graduação em Projeto e Administração de Banco de Dados-2006


HERANÇA: GENERALIZAÇÃO E ESPECIALIZAÇÃO

• É a forma de agrupar um conjunto de entidades que compartilham


características comuns. Restrições:
d: mutuamente exclusivo - quando uma instância da entidade generalização
só pode estar em uma entidade de especialização
o: sobrepostos - quando uma instância da entidade generalização pode estar
em duas ou mais entidade de especialização
total: cada entidade da generalização deve pertencer a pelo menos uma
entidade de especialização
parcial: cada entidade da generalização pode ou não pertencer a uma
entidade de especialização

Pós-Graduação em Projeto e Administração de Banco de Dados-2006


HERANÇA: GENERALIZAÇÃO E ESPECIALIZAÇÃO

Nome
Código Endereço
Sexo
Tipo

Funcionário

Total

Terceiro
Consultor
Generalização
Horas Tx hora Salário
Especialização

Pós-Graduação em Projeto e Administração de Banco de Dados-2006


HERANÇA: GENERALIZAÇÃO E ESPECIALIZAÇÃO

Nome
Código Endereço
Sexo
Tipo

Funcionário

Parcial

Terceiro
Consultor
Generalização
Horas Tx hora Salário
Especialização

Pós-Graduação em Projeto e Administração de Banco de Dados-2006


HERANÇA: GENERALIZAÇÃO E ESPECIALIZAÇÃO

nome
código endereço

tipo
sexo
FUNCIONARIO
mostra a direção do
relacionamento
superclasse/subclasse

generalização

CONSULTOR

especialização
horas tx hora

Pós-Graduação em Projeto e Administração de Banco de Dados-2006


METODOLOGIA PARA PROJETO DE BANCO DE DADOS

• Requerimentos e análise
• Projeto conceitual do banco de dados
• Escolha de um SGBD
• Mapeamento do modelo de dados
• Projeto físico do banco de dados
• Implementação e configuração do banco de dados

Pós-Graduação em Projeto e Administração de Banco de Dados-2006


Exercícios
Uma empresa de TV à cabo necessita informatizar alguns dos seus serviços
de forma a atender as seguintes necessidades: O sistema deverá controlar
o cadastro dos clientes, pacotes (família, adulto, infantil, cinema, etc), da
programação (filmes, horários, etc) e do pagamento de mensalidades.
Cada pacote possui um preço e o cliente pode escolher uma combinação
dos mesmos, podendo mais tarde adicionar mais pacotes se assim o
desejar. O valor de sua mensalidade corresponde ao valor total dos
pacotes e seu vencimento será todos os meses no dia em que comprou o
primeiro pacote. O cliente poderá também escolher a quantidade de tv's
para instalação do cabo, e a cada 2 tv's ele paga um adicional em sua
mensalidade.
Cada pacote possui um conjunto de canais exclusivos. Um canal é
identificado por um número e seu nome (33- HBO2, por exemplo). A
programação é composta de todos os filmes que serão exibidos, além de
seus horários e datas de exibição. Vale ressaltar que, um filme pode ser
exibido em mais de um horário e em várias datas diferentes.

Pós-Graduação em Projeto e Administração de Banco de Dados-2006


Exercícios
Uma empresa de TV à cabo necessita informatizar alguns dos seus serviços
de forma a atender as seguintes necessidades: O sistema deverá controlar
o cadastro dos clientes, pacotes (família, adulto, infantil, cinema, etc), da
programação (filmes, horários, etc) e do pagamento de mensalidades.
Cada pacote possui um preço e o cliente pode escolher uma combinação
dos mesmos, podendo mais tarde adicionar mais pacotes se assim o
desejar. O valor de sua mensalidade corresponde ao valor total dos
pacotes e seu vencimento será todos os meses no dia em que comprou o
primeiro pacote. O cliente poderá também escolher a quantidade de tv's
para instalação do cabo, e a cada 2 tv's ele paga um adicional em sua
mensalidade.
Cada pacote possui um conjunto de canais exclusivos. Um canal é
identificado por um número e seu nome (33- HBO2, por exemplo). A
programação é composta de todos os filmes que serão exibidos, além de
seus horários e datas de exibição. Vale ressaltar que, um filme pode ser
exibido em mais de um horário e em várias datas diferentes.

Pós-Graduação em Projeto e Administração de Banco de Dados-2006


Exercícios
Uma loja de CDs deseja informatizar suas transações de venda e de aluguel de títulos, mantendo cadastros atualizados de
clientes, balconistas, títulos, dos distribuidores que os fornecem e dos gêneros musicais em que estes se classificam.
Entre o cliente e o balconista, as vendas e locações de títulos de CD devem ser armazenadas na base de dados juntamente
com a data em que houve a transação (data de venda e data de locação, respectivamente). Somente para a locação, o
sistema deverá também armazenar a data prevista para a devolução do titulo alugado (data de devolução). É de interesse
da loja, saber, através das informações armazenadas na base de dados, que balconista vendeu ou alugou determinado
titulo para qual cliente.
Eventualmente, um cliente também pode solicitar a encomenda de um CD que não esteja disponível na loja.
As encomendas feitas desta forma são pedidas diretamente para o balconista, mas para a loja somente é
interessante saber qual cliente encomendou determinado titulo e em que data (data da encomenda). Note
que um cliente pode encomendar vários títulos e um título pode ser encomendado por vários clientes.
Normalmente, o processo de encomenda é seguido por uma transação de venda (mas nunca de locação),
caso o(s) pedido(s) do cliente seja(m) atendido(s).
Cada título de CD é classificado somente num gênero musical (pelo menos, aquele gênero que predomina)
dentre os vários que a base de dados mantêm como disponíveis na loja. Além disso, cada título de CD é
fornecido por apenas uma dentre as várias distribuidoras com a qual a loja obedece a contratos de revenda.
Para cada distribuidora é imprescindível, além de outras informações, o nome do vendedor intermediário e
dos telefones para contato.
Um título pode estar disponível somente para venda ou somente para locação. E não se esqueça que, somente
quando da disponibilidade de um CD ser para venda, o seu preço unitário, a quantidade de unidades
vendidas no ato da transação e a sua quantidade, remanescente no estoque, são informações
importantíssimas, além do que, no caso de um título disponível exclusivamente para locação, a sua venda
não é permitida e vice-versa.

Pós-Graduação em Projeto e Administração de Banco de Dados-2006

Você também pode gostar