Buscar

COMPILADO Modelagem de Dados COMPLETO AULAS RESUMOS REVISAO PROVAS AV1 AV2 AV3 SaibaMais EXTRAS Graduacao Dados Software Programacao Gestao Tecnologia da Informacao

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 1079 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 1079 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 1079 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

MODELAGEM DE DADOS
PROF. RAFAEL DIAS RIBEIRO, M.Sc.
@ribeirord
MODELAGEM DE DADOS
Aula 1
Prof. Rafael Dias Ribeiro. M.Sc.
@ribeirord
Objetivos:
• Apresenta a diferença entre dado e informação e a
importância destes dados no ambiente dos sistemas de
informação.
• Conceitua Banco de Dados, Sistema Gerenciador de Bancos
de Dados e Sistemas de Bancos de Dados
• Analisa as diferenças entre Sistemas de Bancos de Dados e
Sistemas baseados em Arquivos
• Apresenta a história e a evolução dos bancos de dados
• Apresenta os usuários de um ambiente de banco de dados
Dados e Informações
“Dados são uma descrição elementar de coisas, eventos, 
atividades ou transações que são registradas, classificadas e 
armazenadas, mas não são organizadas para carregar 
qualquer significado específico.”
Fonte:Turban, Efrain. Administração da Tecnologia da Informação: Teoria e Prática / Efraim 
Turban, R. Kelly Rainer, Richard E. Potter; tradução Daniel Vieira. Rio de Janeiro:Elsevier,2005. 
6ºreimpressão.
Um dado é um símbolo, apresentado de forma primária, que
pode ser de diversas formas como, por exemplo:
• Palavras
• Nomes
• Números
• Horas
• Fotos
• Figuras
• Sons, e outros.
Dados e Informações
Quando os dados (fatos) estão organizados, arranjados e
relacionados de tal forma que represente uma modificação
(quantitativa ou qualitativa) no sistema de maneira significativa e
eles se tornam informação, isto é, dados que foram organizados de
modo que tenham significado e valor para o recebedor.
Informação é o conjunto de fatos organizados de tal forma que
adquirem valor adicional além do valor do fato em si mesmos.
Dados e Informações
A transformação de dados em informação é um processo, ou
seja, um conjunto de tarefas logicamente relacionadas,
executadas para a realização de um resultado definido.
Processo
( Regras e 
Relações) 
Dados Informação
Dados e Informações
Por exemplo, com os dados de peças mantidas em estoque,
pedidos e vendedores podemos obter informações tão
diferentes quanto:
• lista de peças que estão em falta no estoque
• a média de venda por peça
• os melhores e piores vendedores da companhia,
• relacionar os piores e melhores vendedores com as horas
trabalhadas por cada um deles.
Dados e Informações
• Os dados relevantes para um determinado negócio se
mantém estáveis mesmo que o negócio em questão
modifique radicalmente sua forma de operação, ou seja,
os seus processos.
• Sendo assim, podemos afirmar que dados são mais
estáveis do que processos e, portanto, representam a
uma das partes mais valiosas e importantes de um sistema
de informação.
Dados e Informações
Bancos de Dados
De acordo com (Navathe, 2005), podemos definir um banco de 
dados como um conjunto de dados que se relacionam. 
Bancos de Dados
Porém, o significado do termo é mais restrito do que esta
definição. Um banco de dados, necessariamente, possui as
seguintes propriedades:
• um banco de dados é uma coleção lógica coerente de
dados com um significado inerente;
• uma disposição desordenada de dados não pode ser
referenciada como um banco de dados;
• um banco de dados é projetado, construído e populado
com dados para um propósito específico;
Bancos de Dados
Porém, o significado do termo é mais restrito do que esta
definição. Um banco de dados, necessariamente, possui as
seguintes propriedades:
• um banco de dados possui um conjunto pré definido de
usuários e aplicações;
• um banco de dados representa algum aspecto do mundo
real, o qual é chamado de “mini-mundo” e qualquer alteração
efetuada neste mini-mundo é automaticamente refletida no
banco de dados.
Sistemas Gerenciadores de Bancos de Dados e Sistemas 
de Banco de Dados
• Um banco de dados é criado e mantido por um conjunto de 
aplicações desenvolvidas especialmente para esta tarefa 
denominado “Sistema Gerenciador de Banco de Dados” 
(SGBD).
• Um SGBD é uma coleção de programas que permite aos 
seus usuários criarem e manipularem bancos de dados. O 
conjunto formado por um banco de dados e estes programas 
que o manipulam é chamado de Sistema de Banco de Dados. 
Sistemas Gerenciadores de Bancos de Dados e Sistemas 
de Banco de Dados
Sistemas Gerenciadores de Bancos de Dados e Sistemas 
de Banco de Dados
• O SGBD não mantém somente os dados, mas, também, a
forma como os mesmos são armazenados, através de uma
descrição completa dos dados armazenados.
• Estas informações são armazenadas no catálogo ou
dicionário de dados do SGBD, que contém informações
como a estrutura de cada arquivo, o tipo e o formato de
armazenamento de cada tipo de dado, restrições, etc.
• As informações armazenadas neste catálogo são
chamadas meta-dados.
SGBD X Sistemas de Gerenciamento de Arquivos
• A melhor maneira de entender a natureza geral e as
características dos bancos de dados de hoje, é olhar para as
características dos sistemas que antecederam o uso da
tecnologia de banco de dados: os Sistemas de Gerenciamento
de Arquivos.
“Sistemas de Gerenciamento de Arquivos”
• Cada usuário define e implementa os arquivos necessários para
uma aplicação específica, acarretando repetição dos dados e
gerando inconsistência nas informações. Por exemplo:
salário do 
funcionário X
sistema de folha de 
pagamento 
sistema financeiro
salário do 
funcionário X
Sistemas de Gerenciamento de Arquivos
salário do 
funcionário X
sistema de folha 
de pagamento 
sistema financeiro
salário do 
funcionário X
• Não existem garantias que a alteração do salário de um
funcionário específico seja efetuada para os arquivos nos
dois.
• Se esta atualização não seja efetivada para os dois sistemas,
em algum deles, as informações geradas com base neste
dado, serão inconsistentes. Não refletirão a realidade do
negócio.
Sistemas de Gerenciamento de Arquivos
• O acesso aos dados está escrito nos programas que o
manipulam, subordinando os programas aos arquivos.
• Isto significa que qualquer alteração na estrutura dos
arquivos acarretará alterações em todos os programas que
o acessam.
• Estas alterações sempre envolvem muito tempo e muito
dinheiro.
Sistemas de Gerenciamento de Arquivos
• A manipulação dos dados contidos nos arquivos pelas
aplicações específicas dificulta o desenvolvimento de
novos sistemas e torna a manutenção dos aplicativos
difícil e cara.
Sistemas de Gerenciamento de Arquivos
• O sistema possibilita uma redundância não controlada de 
dados e inconsistência ao permitir que em um sistema um 
dado seja alterado e esse mesmo dado não seja alterado 
em outro.
Sistemas de Gerenciamento de Arquivos
• A responsabilidade sobre os procedimentos de backup e
recuperação esta a cargo da aplicação. Assim, não podem
ser automatizadas e, caso o responsável pela aplicação
não efetue estes backups sistematicamente, podem
ocorrem perda de dados.
Sistemas Gerenciadores de Bancos de Dados 
(SGBD)
• Um arquivo (tabela) é definido uma única vez e atende a
várias aplicações, ou seja, existe múltipla visão dos dados.
• Armazena-se junto com os dados todas as informações
referentes à forma como estes foram estruturados e onde
eles estão armazenados fisicamente. Essas informações
estão armazenadas no catálogo ou dicionário de dados do
SGBD.
Sistemas Gerenciadores de Bancos de Dados 
(SGBD)
• Há separação entre programas e dados. 
• Os acessos são escritos no banco de dados e os programas 
enviam comandos solicitando o acesso aos dados. 
• Esse conceito é chamado de abstração de dados, que caracteriza-
se por uma independência entre programas e dados e entre 
programas e operações de manipulação de dados. 
Sistemas Gerenciadores de Bancos de Dados 
(SGBD)
As consultas e programas de 
aplicação só acessam o banco 
de dados através do SGBD.
Sistemas Gerenciadores de Bancos de Dados 
(SGBD)
Da mesma forma, todos os dados 
retornados pelo banco de dados, 
somente são disponibilizados aos 
usuários e aplicações pelo SGBD.
Sistemas Gerenciadoresde Bancos de Dados 
(SGBD)
• É permitido acesso simultâneo de vários usuários ao
mesmo dado. Essa simultaneidade é tratada através do
gerenciamento da concorrência.
• Procedimentos de backup e recuperação são automatizados.
Evolução dos Bancos de Dados
• Nos primeiros sistemas de informação, dados e
processos eram mantidos juntos em um mesmo arquivo.
Evolução dos Bancos de Dados
• A partir da observação de que os dados são muito mais
estáveis que os processos em um sistema de
informação, iniciou-se a época de investimentos
massivos no desenvolvimento de ferramentas
voltados para seu tratamento eficiente.
Gradativamente, dados e processos foram separados.
Evolução dos Bancos de Dados
• Dados e processos foram separados. Em um primeiro
momento, estas ferramentas mantinham as funções
básicas de criação e manipulação dos dados
independentes das aplicações.
Evolução dos Bancos de Dados
• A partir deste ponto, em paralelo com a evolução do hardware 
disponível para suportar tais aplicações, estes ambientes 
foram ganhando novas versões.
• Em um segundo momento apresentando as características 
dos SGBDs.
Bancos de Dados Centralizados
• Neste ambiente, dados, SGBD e os programas que o acessam ficam
restritos a uma única máquina. O acesso se dá por meio de terminais
burros, ou seja, terminais com funcionalidades restritas.
Bancos de dados Cliente – Servidor (com servidor de arquivos)
• Programas e SGBD podem funcionar em uma ou várias das outras
máquinas da rede.
• Devido ao surgimento das redes de computadores e a possibilidade de
conexão entre diversas máquinas com alto poder de processamento, o
banco de dados pode ser deslocado para uma máquina específica, o
servidor de arquivos.
Bancos de dados Cliente – Servidor (com servidor de Banco de Dados)
• Com a manutenção do SGBD e do banco de dados em
uma mesma máquina, surgem os servidores de bancos de
dados. Neste cenário, os programas espalhados pela rede,
acessam o mesmo SGBD.
Bancos de dados distribuídos
• Os bancos de dados crescem em volume de dados e as
redes se tornam quase ilimitadas em tamanho.
• Para garantir a eficiência nestes ambientes, surge a
necessidade de distribuição da própria base de dados.
Assim, então surgem os bancos de dados distribuídos.
Bancos de dados distribuídos
• Estes bancos de dados representam, de forma bastante
simplificada, a divisão do banco de dados por vários
servidores de bancos de dados.
Novas arquiteturas de BD - Datawarehouse
• Os bancos de dados saem do nível operacional da 
empresa e são agora preparados para atender níveis mais 
altos da pirâmide empresarial. 
• Os datawarehouses, ou armazéns de dados, representam 
esta promoção dos bancos de dados. Eles contém dados 
como nos bancos convencionais, só que preparados para 
atender as necessidades de informação dos níveis 
estratégicos da organização. 
Novas arquiteturas de BD - Datawarehouse
Eles agora são empregados na tomada de decisão dentro das
empresas, e não apenas na viabilização do funcionamento
destas no dia a dia.
Novas arquiteturas de BD – Via Web
• Finalmente, com o surgimento da Internet, a possibilidade de
conexão entre estas bases de dados se torna praticamente
ilimitada.
Usuários de Bancos de Dados
Em um ambiente de bancos de dados existem várias categorias de usuários. 
São elas:
• Administrador de dados (AD)
• Responsáveis por identificar os dados a serem armazenados no BD e
por escolher as estruturas apropriadas para representar e armazenar
esses dados.
• Comunicação com usuários para identificação de visões (esquemas
conceituais), desenvolve e mantém o dicionário de dados, garante as
necessidade corporativas de dados
Usuários de Bancos de Dados
• Administradores do BD (ABD)
• Desenvolve os esquemas internos através da construção das
tabelas, índices, etc., autoriza o acesso ao banco de dados, de
modo a coordenar e monitorar seu uso, garante a segurança dos
dados, bem como seu backup e recuperação em caso de falhas,
garante a performance do banco de dados e desenvolve visões
que atendam ao esquema externo
Usuários de Bancos de Dados
• Analistas de sistemas 
• Determinam os requisitos dos usuários finais e desenvolvem 
especificações de transações que satisfaçam esses requisitos. 
Usuários de Bancos de Dados
• Programadores de aplicação
• Implementam as especificações das transações como programas, 
testando-os, corrigindo-os e documentando-os. 
Usuários de Bancos de Dados
• Usuários finais
• Utilizam os sistemas projetados pelo analista de sistemas cuja
base de dados é mantida e monitorada pelo DBA e cuja
integração com o conjunto da corporação é garantido pelo
esquema conceitual mantido pelo AD.
Usuários de Bancos de Dados
• Pessoal de suporte
• Preocupam-se com o hardware disponibilizado para o ambiente.
Próxima Aula...
• Aprender as principais características dos SGBDs.
• Aprender quando empregar e quando não empregar 
bancos de dados
• Conhecer conceitos fundamentais de um ambiente com 
SGBD
MODELAGEM DE DADOS
PROF. RAFAEL DIAS RIBEIRO, M.Sc.
@ribeirord
MODELAGEM DE DADOS
Aula 2
Prof. Rafael Dias Ribeiro. M.Sc.
@ribeirord
Objetivos:
• Revisão sobre Banco de Dados e SGBDs
• Aprender as principais características dos SGBDs.
• Aprender quando empregar e quando não empregar bancos 
de dados
• Conhecer conceitos fundamentais de um ambiente com 
SGBD
Bancos de Dados
De acordo com (Navathe, 2005), podemos definir um banco de 
dados como um conjunto de dados que se relacionam. 
Bancos de Dados
Porém, o significado do termo é mais restrito do que esta
definição. Um banco de dados, necessariamente, possui as
seguintes propriedades:
• um banco de dados é uma coleção lógica coerente de
dados com um significado inerente;
• uma disposição desordenada de dados não pode ser
referenciada como um banco de dados;
• um banco de dados é projetado, construído e populado com
dados para um propósito específico;
Bancos de Dados
Porém, o significado do termo é mais restrito do que esta
definição. Um banco de dados, necessariamente, possui as
seguintes propriedades:
• um banco de dados possui um conjunto pré definido de
usuários e aplicações;
• um banco de dados representa algum aspecto do mundo
real, o qual é chamado de “mini-mundo” e qualquer alteração
efetuada neste mini-mundo é automaticamente refletida no
banco de dados.
Sistemas Gerenciadores de Bancos de Dados e Sistemas 
de Banco de Dados
• Um SGBD é uma coleção de programas que permite aos seus 
usuários criarem e manipularem bancos de dados. 
• Um SGBD é conjunto complexo de software que deve prover 
um conjunto básico de funcionalidades.
Na abordagem utilizando um SGBD, um único Banco de Dados
é criado, mantido e acessado por todos os sistemas. Algumas
características do SGBD:
• Natureza auto descritiva
• Isolamento entre os programas e os dados, e a abstração de
dados
• Suporte para as múltiplas visões de dados
• Compartilhamento de dados e processamento de transações
de multiusuários
Natureza auto descritiva
• Descrição completa da estrutura do banco e suas restrições
• Estrutura de cada item, tipo e formato de cada dado, restrições
• Existe um catálogo que armazena as informações chamado
metadados(estrutura de cada tipo de dados)
• O catálogo é utilizado pelo próprio SGBD e também pelos usuários que
precisam de informações sobre a estrutura do banco.
• Não se altera as informações de metadados, o uso de tais informações
é apenas para consulta, caso contrário, o banco poderá apresentar
graves problemas.
• O SGBD precisa trabalhar com uma diversidade muito grande de
aplicações, o catálogo permite isso.
Isolamento entre os programas e os dados, e a
abstração de dados
• Diferente do processamento de arquivos, os programas não 
possuem informações sobre o armazenamento dos dados
• A estrutura dos arquivos de dados é armazenada nos 
catálogos do SGBD
• O Banco de Dados podeter sua estrutura alterada sem 
precisar alterar os programas que o acessam
• Essa característica é chamada independência programa-
dados
Isolamento entre os programas e os dados, e a
abstração de dados
• O SGBD fornece aos programas uma representação 
conceitual de dados, que não inclui detalhes de 
armazenamento
• Essa característica é chamada de abstração de dados
Suporte para as múltiplas visões de dados
• Um banco de dados típico tem muitos usuários e cada
usuários pode precisar de diferentes visões do banco de
dados.
• Uma visão pode ser:
• Um subconjunto do banco de dados, que atendem
critérios de necessidades do usuário
• Uma visão virtual dos dados, derivada dos dados
existentes, simulando dados/informações que não estão
explicitamente armazenados
Compartilhamento de dados
• Um SGBD deve permitir o acesso concorrente de diversos 
usuários
• O controle de concorrência deve permitir que muitos 
usuários, ao tentar atualizar o mesmo dado, o façam de 
modo controlado, para assegurar que os resultados das 
atualizações sejam corretos 
Reserva de cabine em um 
cruzeiro
Atendentes
Agentes de viagem
Internet
Processamento de transações
• Transação: é um processo que inclui um ou mais acessos no banco de 
dados, como leitura e gravação de registros
• Isolamento: garante que cada transação possa ser efetuada de forma 
isolada de outras transações
• Atomicidade: garante que todas as operações da transação sejam 
realizadas ou nenhum delas seja
• Exemplo: Transferência bancária
• Leitura de saldo
• Validação de saldo
• Débito da conta origem
• Validação da conta de destino
• Crédito da conta destino
• O SGBD deve permitir que transações concorrentes operem corretamente
Independência de Dados
• “Consiste na capacidade de permitir que haja evolução na 
descrição dos dados da empresa, sem que os sistemas ou 
aplicações tenham que ser alterados”
• “Representa a imunidade das aplicações às mudanças na 
estrutura de armazenagem e estratégias de acesso”
Independência de Dados
• A independência dos dados, em relação a aplicação,
representa o um avanço no sentido de tornar qualquer
modificação das estruturas dos arquivos imperceptível para os
programas. Desta forma, as mudanças na organização dos
dados não geram qualquer necessidade de alteração dos
programas que o manipulam. Por exemplo:
• Inclusão de um novo campo (atributo) em um arquivo
(tabela) é feita sem que sejam alterados os programas,
pois as estruturas dos arquivos não estão definidas nos
programas.
Controle de Redundância 
• “Redundância é armazenar o mesmo dado várias vezes para
atender diversas aplicações. Para manter a consistência do banco de
dados, deve-se armazenar o dado uma única vez e em apenas um
lugar no banco de dados. Isto permite manter a consistência,
economizar espaço de armazenamento.” Em alguns casos, a
redundância é necessária, porém ela deve ser controlada pelo
sistema de gerenciamento de banco de dados. “ (Elmasri & Navathe,
2005)
Controle de Redundância 
• “É um conceito representado pelo controle centralizado dos dados
compartilhados por diversas aplicações, reduzindo a repetição de
dados a um mínimo justificável e aceita apenas por questão de
desempenho.” (Cerícola, 1991)
Problemas da redundância de dados:
• Duplicação de esforço para manter os dados atualizados;
• Desperdício de espaço de armazenamento;
• Possibilidade de inconsistência dos dados
Controle de Redundância 
• Permitir a usuários diferentes a utilização simultânea de um 
mesmo dado. Por exemplo:
• As informações sobre clientes podem ser acessadas pelo 
sistema de vendas, de contas a receber e faturamento 
simultaneamente.
Compartilhamento de Dados 
Sistema de 
vendas
Sistema de 
contas a 
receber
Sistema de 
faturamento
• A mesma base de dados sobre empregados pode ser
usada simultaneamente pelo sistema de recursos
humanos e pelo sistema de vendas.
• No primeiro caso os dados serão utilizados no processo
de pagamento e no segundo no processo de alocação
dos vendedores às áreas de atendimento a cliente.
Compartilhamento de Dados 
Sistema de 
recursos 
humanos
Sistema de 
vendas
“Um SGBD deve prover controles de segurança e autorização,
que são utilizados para criar contas e seus respectivos direitos
de acesso quando múltiplos usuários compartilham um banco
de dados.” (Navathe,2005)
Restrições de Acesso 
“ Os controles de segurança abrangem conceitos tais como:
procedimentos de validação e controle, garantia de integridade
e controle de acesso, que visam resguardar o banco de
dados de uma possível perda ou destruição de dados seja por
falha de programa ou por falha de equipamento” (Cerícola,
1991)
Restrições de Acesso 
Restrições de Acesso 
Sistema de 
recursos 
humanos
Sistema de vendas
Restrições de Acesso Não Autorizado 
• Como todas os dados vão estar em um único local, é possível que nem todas 
as pessoas tenham acesso à todos os dados.
• Uma pessoa da secretaria pode não ter acesso aos dados financeiro
• Uma pessoa do financeiro pode não ter acesso aos dados de salários
• O SGBD deve ter um mecanismo de segurança e autenticação
• Criação de usuários/grupos e autenticação por senhas
• Atribuição de uma série de permissões/bloqueios, mais comuns:
• Apenas consultar
• Consultar apenas alguns dados
• Não apagar dados
• Somente inserir dados
• A granularidade das permissões depende do SGBD
A maioria dos SGBDs proveem certas restrições de integridade
que devem ser aplicadas aos dados. O SGBD deve ter
mecanismos para possibilitar a definição das restrições e
assegurar o respeito a estas. Um exemplo de restrição de
integridade é a definição de um tipo de dado (data type) para
cada item de dado.
Restrições de Integridade 
• O SGBD aceitará apenas os tipos definidos ou seja azul,
vermelho, amarelo e verde como válidos para este
atributo.
Restrições de Integridade 
Cor 
azul
vermelho
amarelo 
verde
Peça Cor 
• Se o usuário tentasse informar, por exemplo, o valor
branco para o atributo cor da parede, o sistema
acusaria um erro.
Mecanismos de Backup e Recuperação 
• Um SGBD deve prover facilidades para recuperação de
falhas do hardware ou software.
• Estes mecanismos evitam que cada aplicação tenha que
projetar e desenvolver seus próprios controles contra a
perda de dados.
Mecanismos de Backup e Recuperação 
• Falha: Ocorre no nível mais baixo do hardware ou software.
• Uma fonte queimar
• Uma linha de código errada
• Erro: Uma falha pode gerar um erro. Um erro é a 
representação da falha no universo da informação (dados).
• Por consequência de uma falha um dado foi corrompido
• Defeito: O defeito é o que é percebido pelo usuário, é a 
representação de um erro no universo do usuário.
• O sistema já esta com erro e o dado já esta corrompido
Mecanismos de Backup e Recuperação 
Exemplo:
Se o sistema falha no meio de um programa de alteração
complexo, o mecanismo de recuperação é responsável por
assegurar que o banco de dados será restaurado para o
estágio que ele se encontrava antes do início da execução
do programa.
Múltiplas Interfaces
• Um ambiente de banco de dados é acessado por variados
tipos de usuários com variadas necessidades de informação
e com diferentes níveis de conhecimento técnico.
Múltiplas Interfaces
• Para atender esta diversidade usuários, o SGBD deva
fornecer diferentes tipos de interfaces. Sendo assim este
ambiente disponibiliza:
• Linguagens de consulta para usuários casuais;
• Linguagens de programação para programadores de
aplicações;
• Interfaces gráficas com formulários (telas) e menus
para usuários paramétricos;
• Interfaces para administração do banco de dados;
• Linguagem natural.
Benefícios no uso de SGBDs
• Os ambientes de bancos de dados fornecem uma série de 
vantagens na sua adoção:
• Potencial para o estabelecimento e o cumprimento de 
padrões
• Garantir o uso de padrões na organização, códigos, 
nomes,datas
• Flexibilidade de mudanças
• Alteração da estrutura dos dados de forma simples
Benefícios no uso de SGBDs
• Redução no tempo de desenvolvimento de novas 
aplicações
• Encapsulamento das regras de armazenamento e 
integrações
• Disponibilidade de informação atualizada
• Assim que um dado é atualizado, ele deve estar 
disponível para todos os usuários
• Economia de escala
• Investimento pontual em profissionais especializados e 
equipamentos
Bancos de dados NÃO são sempre a solução...
• Apesar das vantagens de utilização, a escolha por uma
ambiente de banco de dados tem um alto custo atrelado.
• A sua adoção deve, então, compensar ou ser
compatível com este custo.
Bancos de dados NÃO são sempre a solução...
Sobrecustos vinculados
• Alto investimento inicial em software, pela aquisição do
banco de dados e licenças, e em hardware que suporte
este ambiente.
• Custo da generalidade do SGBD, ou seja, na definição e
no processamento dos dados.
• “Overhead” de processamento.
Bancos de dados NÃO são sempre a solução...
• Overhead significa tudo aquilo que o SGBD tem que
fazer além de gerenciar os dados. Isto envolve tarefas
tais como:
• garantir segurança
• controlar concorrência (utilização do mesmo
dado por aplicações e usuários distintos
simultaneamente)
• recuperação de falhas
• garantia de integridade.
Quando NÃO utilizar bancos de dados... 
• Volume de dados pequeno, aplicações simples, bem 
definidas. 
• Mudanças não são esperadas. 
• Ambientes de sistemas que exijam resposta em 
tempo real.
• Acessos múltiplos e concorrentes não são 
necessários.
Próxima Aula...
• Conhecer a arquitetura de 3 esquemas (conceitual, lógico e 
físico)
• Aprender o conceito e o processo de abstração de dados.
• Identificar os principais objetos conceituais (entidades, 
relacionamentos e atributos).
• Conhecer as representações básicas destes objetos 
conceituais.
MODELAGEM DE DADOS
PROF. RAFAEL DIAS RIBEIRO, M.Sc.
@ribeirord
MODELAGEM DE DADOS
Aula 3
Prof. Rafael Dias Ribeiro. M.Sc.
@ribeirord
Objetivos:
• Conhecer a arquitetura de 3 esquemas (conceitual, lógico e 
físico)
• Entender o conceito e o processo de abstração de dados.
• Identificar os principais objetos conceituais (entidades, 
relacionamentos e atributos).
• Conhecer as representações básicas destes objetos 
conceituais.
Modelagem Conceitual – Percepção do Mundo Real
• O projeto de um banco de dados envolve a produção de 3 modelos que
definem uma arquitetura de 3 esquemas (conceitual, lógico e físico).
• Na fase inicial do processo, o mundo real (ou mini mundo) deve ser
entendido e seus objetos conceituais identificados.
• A este entendimento e identificação chamamos abstração de dados
e o modelo produzido após esta fase chamamos modelo conceitual.
• Após a sua confecção e pela a aplicação de regras específicas, um
modelo lógico é produzido. Este modelo está vinculado ao modelo de
dados adotado pelo SGBD.
• Na etapa final, o modelo lógico dá origem ao modelo físico,
efetivamente armazenado no banco de dados.
• Toda realidade é, em princípio, bastante nebulosa e informal. Através da
observação podemos extrair desta realidade fatos que nos levam a
conhecê-la de uma forma mais organizada.
• Em um negócio, existem fatos que, observados e modelados, dizem
algo a respeito do funcionamento deste negócio. Estes fatos estão
ligados diretamente ao funcionamento da realidade, a qual temos
interesse em compreender e manter.
• Para que possamos retratar estes fatos e que os mesmos possam nos
levar a futuras decisões e ações, se faz necessário então registra-los.
Este registro é feito através da criação de um MODELO, isto é, algo que
nos mostre como as informações estão relacionadas.
Modelagem Conceitual – Percepção do Mundo Real
• Ao coletar e relacionar os fatos relevantes, devemos identificar os 
elementos geradores de informação, as leis que regem esta realidade, 
bem como as operações que incidem sobre os elementos básicos 
(dados).
• O que se quer criar é uma ABSTRAÇÃO da realidade, que seja capaz de 
registrar os acontecimentos da mesma, de modo que se possa 
implementar um sistema automatizado que atenda às reais necessidades 
de informação.
Modelagem Conceitual – Percepção do Mundo Real
Elementos de Abstração
• Minimundo
• Porção específica da realidade, captada pelo analista, objeto
de observação detalhada. Caso a análise do minimundo torne-
se muito complexa, o analista pode subdividi-lo em pontos
menores, chamados de “visões”.
• Banco de Dados
• Coleção de fatos registrados que refletem certos aspectos de
interesse do mundo real. Cada mudança em algum item do
banco de dados reflete uma mudança ocorrida na realidade.
Elementos de Abstração
• Modelo Conceitual
• Representa e/ou descreve a realidade do ambiente,
constituindo uma visão global dos principais dados e
relacionamentos (estruturas de informação), independente das
restrições de implementação.
• Descreve as informações contidas em uma realidade, as quais
irão estar armazenadas em um banco de dados.
Elementos de Abstração
• Modelo Lógico
• Descreve as estruturas que estarão contidas no banco de
dados, sem considerar nenhuma característica específica de
um Sistema Gerenciador de Banco de Dados (SGBD),
resultando em um esquema lógico de dados. Tem seu início a
partir do Modelo Conceitual
Elementos de Abstração
• Modelo Físico
• Descreve as estruturas físicas de armazenamento de dados,
tais como: tamanho dos campos, índices, tipo de
preenchimento destes campos, etc
• Tem origem no Modelo Lógico e detalha o estudo dos métodos
de acesso ao SGBD
O Projeto do Banco de Dados
• A modelagem de um sistema através da abordagem Entidades-
Relacionamentos representa este o ponto central no projeto
conceitual de dados em um sistema.
• O objetivo da Modelagem de Dados é transmitir e apresentar
uma representação única, não redundante e resumida, dos
dados de uma aplicação.
• Em projetos conceituais de aplicação em banco de dados o
Modelo Entidades-Relacionamentos é o mais largamente utilizado
para representação e entendimento dos dados que compõe um
sistema.
O Projeto do Banco de Dados
• Década de 70 - Peter Chen desenvolve o MER (Modelo 
Entidades-Relacionamentos) 
• Um Modelo de Dados é uma forma de representação gráfica do 
conhecimento que se tem sobre um ambiente qualquer. Mostra 
uma visão das informações de interesse e dos vínculos existentes 
entre elas, em um determinado momento.
O Projeto do Banco de Dados
• Baseou-se na compreensão da realidade em que se situava o 
problema. Como iremos projetar um sistema se não 
entendemos o negócio para o qual será realizado?
• Chen dedicou-se a destacar a importância de reconhecer os 
objetos que compõem este negócio, independentemente das 
formas de tratamento das informações, procedimentos, 
programas, etc. 
• Estes objetos que desejamos conhecer e modelar foram 
classificados em dois grupos: Entidades e Relacionamentos.
Objetos Conceituais
• ENTIDADES
• Define-se Entidade como aquele objeto que existe no mundo real, 
com identificação distinta e com um significado próprio.
• São as “coisas” que existem no negócio, ou ainda, descrevem o 
negócio em si.
• A representação de uma entidade no MER é feita através de um 
retângulo, com o nome da entidade em seu interior.
Objetos Conceituais
• ATRIBUTOS
• Todo objeto para ser uma entidade possui propriedades que 
são descritas por atributos e valores. 
• Estes atributos e valores, juntos, descrevem as instâncias de 
uma entidade.
• O que descreve CLIENTE ? Cliente é descrito por um código 
de identificação, nome, endereço, telefone de contato, CGC ou 
CPF.
Objetos Conceituais
• ATRIBUTOS
• A representação de uma entidade no MER é feita através de 
uma elipse, com o nome do atributo em seu interior.
nome 
telefone
CPF
Objetos Conceituais
• RELACIONAMENTOS
• Um relacionamento é uma associaçãoentre duas
entidades cujo significado seja de interesse para a
realidade analisada.
• Os relacionamentos estão intimamente ligados às ações
realizadas pelos processos sobre os dados e
representam os caminhos de navegação ou rotas de
acesso do Modelo de Dados.
Objetos Conceituais
• RELACIONAMENTOS
• Existem várias formas de se representar graficamente um 
relacionamento. Por exemplo, Peter Chen utiliza um retângulo para 
desenhar uma associação entre entidades, outros autores a 
representam através de um traço unindo as entidades.
Exercício - Identifique as entidades, atributos e relacionamentos existentes no 
mini mundo abaixo.
Suponha que estamos fazendo a análise de dados da área de Recursos
Humanos da empresa ABC e tenhamos obtido as seguintes informações:
“Cada funcionário é lotado em um departamento e tem um cargo de carreira.
Para o cadastramento do funcionário são registrados: nome, endereço,
telefone, cargo, departamento, salário, horário, filiação, idade, CPF,
identidade e nacionalidade. Para cada dependente do funcionário são
registrados: nome, idade, parentesco e sexo. Para cada departamento
deseja-se saber: nome, sigla, nome do chefe, número de funcionários. Para
cada cargo deseja-se saber: nome, sigla e salário base.
Sabemos também que não é armazenado o histórico de cargos dos
funcionários e que nem todos os funcionários possuem dependentes e que,
também, caso um funcionário seja casado com outro funcionário, o
dependente oficialmente pertencerá a apenas um deles. Podemos ter
departamentos momentaneamente sem nenhum funcionário.”
SOLUÇÃO:
ENTIDADES: Funcionário, Departamento, Cargo, Dependente.
ATRIBUTOS: 
Funcionário: nome, endereço, telefone, salário, horário, filiação, 
idade, CPF, identidade e nacionalidade.
Departamento: nome, sigla, nome do chefe.
Cargo: nome, sigla e salário base.
Dependente: nome, idade, parentesco e sexo.
RELACIONAMENTOS: 
FUNCIONÁRIO está lotado em DEPARTAMENTO
FUNCIONÁRIO tem DEPENDENTE
FUNCIONÁRIO possui CARGO
Próxima Aula...
• Aprofundar seus conhecimentos sobre o Modelo Entidade 
Relacionamento.
• Aprender a identificar os principais objetos conceituais.
• Aprender a criar um modelo para o negócio. 
MODELAGEM DE DADOS
PROF. RAFAEL DIAS RIBEIRO, M.Sc.
@ribeirord
MODELAGEM DE DADOS
Aula 4
Prof. Rafael Dias Ribeiro. M.Sc.
@ribeirord
Objetivos:
• Aprofundar seus conhecimentos sobre o Modelo Entidade 
Relacionamento.
• Aprender a identificar os principais objetos conceituais.
• Aprender a criar um modelo para o negócio. 
ENTIDADES
• Define-se Entidade como aquele objeto que existe no mundo real,
com identificação distinta e com um significado próprio.
• São as “coisas” que existem no negócio, ou ainda, descrevem o
negócio em si.
• A representação de uma entidade no MER é feita através de um
retângulo, com o nome da entidade em seu interior.
• Entidades podem ser tangíveis
• Pessoas
• Edifícios
• Entidades podem ser intangíveis
• setor (dentro de uma empresa)
• reserva em um vôo
ENTIDADES
• Entidade Fraca
• não existe se não estiver relacionada a outra, isto é, ela
é logicamente dependente da outra.
• Alguns conjuntos entidade não possuem um conjunto de
atributos capaz de identificar univocamente uma
determinada entidade. Neste caso, sua existência depende
da existência de outra entidade.
ATRIBUTOS
• Todo objeto para ser uma entidade possui propriedades que 
são descritas por atributos e valores. 
• Estes atributos e valores, juntos, descrevem as instâncias de 
uma entidade.
• A representação de uma entidade no MER é feita através de 
uma elipse, com o nome do atributo em seu interior.
• O que descreve CLIENTE ? Cliente é descrito por um código 
de identificação, nome, endereço, telefone de contato, CGC ou 
CPF.
nome 
telefone
CPF
Atributos Simples ou Atômicos
Atributos que não são divisíveis em unidades dados mais simples.
Exemplo: DataNascimento, NumeroFatura, ValorTotalVenda
ATRIBUTOS
Atributo multivalorado
Os atributos multivalorados são tratados pelos seus detalhes, seu
conteúdo é formado por mais de um valor.
Exemplo: Telefone. Um empregado poderá ter mais de um número
de telefone.
.
ATRIBUTOS
Atributos Compostos (Grupo de Atributos)
Combinação ou agregação de atributos relacionados
Exemplo: Endereço é formado pelos atributos: rua, bairro, cidade, 
estado, CEP. 
ATRIBUTOS
Atributos identificadores: Atributos que identifica, de forma 
única, as instâncias de uma entidade.
Exemplo: uma matrícula identifica um aluno e um CPF identifica um 
cliente
ATRIBUTOS
Domínio de um atributo: descrição de possíveis valores 
permitidos para um atributo.
Exemplo: domínio do atributo Cor_Peça: azul, amarelo, verde, 
vermelho, branco
Valores nulos: atributo sem valor. Um valor nulo pode ocorrer, 
quando o atributo não é relevante para descrever uma entidade em 
particular.
ATRIBUTOS
Atributos identificadores: Atributos que identifica, de forma única, 
as instâncias de uma entidade.
Exemplo: uma matrícula identifica um aluno e um CPF identifica um 
cliente
ATRIBUTOS
• Em um primeiro contato com o negócio de uma empresa,
podemos não possuir o conhecimento necessário sobre o
mesmo. Portanto, é fundamental que procuremos conhecer
seus objetos principais.
• Ao descrevermos textualmente a realidade analisada, as
entidades podem ser identificadas por similaridade com a
análise sintática nas linguagens naturais.
• Nesse caso, algumas regras podem ser aplicadas: o sujeito e
o objeto da sentença são, provavelmente, entidades; os
verbos podem sugerir relacionamentos.
MODELANDO O NEGÓCIO
“Um país participa das Olimpíadas”
A frase sugere de imediato a garimpagem de PAÍS e OLIMPÍADAS como
entidades e o verbo “PARTICIPA” como o relacionamento entre elas.
MODELANDO O NEGÓCIO
Assim, se desejamos ter, conceitualmente, representado um ambiente
observado onde “João é proprietário de um jipe amarelo”, poderemos nos
valer da seguinte estratégia:
Passo 1- Identificar os objetos envolvidos
PESSOA, com a instância “João”
VEICULO, com a instância “jipe”
Passo 2 - Caracterizar os objetos
PESSOA, caracterizado por: nome, data de nascimento, sexo, CPF
VEICULO, caracterizado por: marca cor, ano de fabricação, número do 
chassis
MODELANDO O NEGÓCIO
Passo 3 - Representar os objetos
MODELANDO O NEGÓCIO
Passo 4 - Identificar o relacionamento entre os objetos 
PESSOA é proprietária de VEICULO
Passo 5 - Caracterizar o relacionamento entre os objetos
• Nem toda PESSOA é proprietária de um VEICULO
• Um VEICULO pode pertencer a uma PESSOA ou não
• Algumas PESSOA possuem mais de um VEICULO
• Se um VEICULO pertence a uma PESSOA, ele não pertence a mais 
ninguém
MODELANDO O NEGÓCIO
Passo 6 - Representar o Relacionamento
MODELANDO O NEGÓCIO
Este processo pode ser utilizado para mapear qualquer relacionamento 
entre dois, ou mais, tipos de objetos e, também, entre os mesmos objetos.
Assim, se necessitamos expandir nosso modelo representando também as 
observações:
- um VEICULO é de propriedade de uma PESSOA mas pode ser utilizado 
por diversas PESSOAS para locomoção 
- uma PESSOA utiliza um IMOVEL para morar
Temos que repetir os passos de 1 a 6 para cada nova observação.
MODELANDO O NEGÓCIO
MODELANDO O NEGÓCIO
- um VEICULO é de propriedade de uma PESSOA mas pode 
ser utilizado por diversas PESSOAS para locomoção 
- uma PESSOA utiliza um IMOVEL para morar
Passo 1 - Identificar os objetos envolvidos
PESSOA
VEICULO
IMÓVEL
MODELANDO O NEGÓCIO
Passo 2 - Caracterizar os objetos
PESSOA, caracterizado por: nome, data de nascimento, sexo, CPF
VEICULO, caracterizado por: marca cor, ano de fabricação, número 
do chassis
IMOVEL, caracterizado por: numero do registro, endereço, 
metragem, tipo de edificação
MODELANDO O NEGÓCIO
Passo 2.1 – Identificar os atributos identificadores dos objetos:
PESSOA, caracterizado por: nome, data de nascimento, sexo, CPF
VEICULO, caracterizado por: marca,cor, ano de fabricação, número 
do chassis
IMOVEL, caracterizado por: numero do registro, endereço, 
metragem, tipo de edificação
MODELANDO O NEGÓCIO
Passo 3 - Representar os objetos:
MODELANDO O NEGÓCIO
Passo 4- Identificar os novos relacionamentos entre os objetos 
PESSOA utiliza VEICULO
PESSOA utiliza IMOVEL
MODELANDO O NEGÓCIO
Passo 5 - Caracterizar o relacionamento entre os objetos
• Nem toda PESSOA utiliza um VEICULO
• Um VEICULO pode ser utilizado por mais de uma PESSOA
• Algumas PESSOA utilizam mais de um VEICULO
• Um VEICULO sempre será utilizado por, pelo menos, uma PESSOA
• Toda PESSOA utiliza um, e somente um, IMOVEL para morar
• Um IMOVEL pode ser utilizado por uma ou mais PESSOA
• Um IMOVEL nem sempre é utilizado por uma PESSOA
MODELANDO O NEGÓCIO
Próxima Aula...
• Definir e exemplificar o conceitos de cardinalidade.
• Conhecer as possibilidades e critérios para nomear os 
relacionamentos.
• Entender limites mínimos e máximos.
• Identificar os relacionamentos recursivos
• Compreender sobre atributos em relacionamentos.
MODELAGEM DE DADOS
PROF. RAFAEL DIAS RIBEIRO, M.Sc.
@ribeirord
MODELAGEM DE DADOS
Aula 5
Prof. Rafael Dias Ribeiro. M.Sc.
@ribeirord
Objetivos:
• Definir e exemplificar o conceitos de cardinalidade.
• Conhecer as possibilidades e critérios para nomear os 
relacionamentos.
• Entender limites mínimos e máximos.
• Identificar os relacionamentos recursivos
• Compreender sobre atributos em relacionamentos.
MODELANDO O NEGÓCIO
“Modelo é a representação abstrata e simplificada de um sistema real,
com a qual se pode explicar ou testar o seu comportamento, em seu
todo ou em partes.”
Muitas ocasiões merecem nosso entendimento, memorização,
representação, explicação ou comunicação podem ser facilitadas pela
aplicação da modelagem de dados. Por exemplo:
• Representar um ambiente observado
• Servir de instrumento para a comunicação
• Favorecer o processo de verificação e validação
• Capturar aspectos de relacionamento entre os objetos observados
• Servir como referencial para a geração de estruturas de dados
• Estabelecer conceitos únicos a partir de visões diversas
TIPOS DE RELACIONAMENTOS:
• O relacionamento um-para-um é usado quando uma entidade A se relaciona com 
uma entidade B e vice-versa.
• Este relacionamento é representado pelo sinal: 1:1
Conjunto A Conjunto B 
TIPOS DE RELACIONAMENTOS:
• Relacionamento um-para-um
PESSOA
CERTIDÃO DE 
ÓBITO
recebe
1
TIPOS DE RELACIONAMENTOS:
• Relacionamento um-para-um
PESSOA
CERTIDÃO DE 
ÓBITO
recebe
11
TIPOS DE RELACIONAMENTOS:
• Relacionamento um-para-um
MARIDO ESPOSA
É 
casado
1
TIPOS DE RELACIONAMENTOS:
• Relacionamento um-para-um
MARIDO ESPOSA
É 
casado
1 1
TIPOS DE RELACIONAMENTOS:
• O relacionamento um-para-muitos é usado quando uma entidade A pode 
se relacionar com uma ou mais entidades B.
• Este relacionamento é representado pelo sinal: 1:N
Conjunto A Conjunto B 
TIPOS DE RELACIONAMENTOS:
• Relacionamento um-para-muitos
EMPRESA FILIALpossui
N
TIPOS DE RELACIONAMENTOS:
• Relacionamento um-para-muitos
EMPRESA FILIALpossui
N1
TIPOS DE RELACIONAMENTOS:
• Relacionamento um-para-muitos
SEÇÃO COLABORADORtrabalha
N
TIPOS DE RELACIONAMENTOS:
• Relacionamento um-para-muitos
SEÇÃO COLABORADORtrabalha
N1
TIPOS DE RELACIONAMENTOS:
• O relacionamento muitos-para-muitos é usado quando várias entidades A se 
relacionam com várias entidades B.
• Este relacionamento é representado pelo sinal: N:N ou N:M
Conjunto A Conjunto B 
TIPOS DE RELACIONAMENTOS:
• Relacionamento muitos-para-muitos
ATLETA ESPORTEpratica
N
TIPOS DE RELACIONAMENTOS:
• Relacionamento muitos-para-muitos
ATLETA ESPORTEpratica
NM
TIPOS DE RELACIONAMENTOS:
• Relacionamento muitos-para-muitos
LIVRO AUTOR
é 
escrito
N
TIPOS DE RELACIONAMENTOS:
• Relacionamento muitos-para-muitos
LIVRO AUTOR
é 
escrito
NM
• Um auto-relacionamento acontece quando os elementos
de uma entidade se relacionam com eles mesmos.
• Também conhecido como relacionamento recursivo
MODELANDO O NEGÓCIO
PESSOA
é
casada
• Auto-relacionamento
MODELANDO O NEGÓCIO
PESSOA
é
casada
PESSOA
é
casada
PESSOA
11
1
1
• A cardinalidade é um número que expressa o comportamento (número de
ocorrências) de determinada entidade associada a uma ocorrência da
entidade em questão através do relacionamento.
• Existem dois tipos de cardinalidade: mínima e máxima.
• A cardinalidade máxima, expressa o número máximo de ocorrências de
determinada entidade, associada a uma ocorrência da entidade em
questão, através do relacionamento.
• A cardinalidade mínima, expressa o número mínimo de ocorrências de
determinada entidade associada a uma ocorrência da entidade em
questão através do relacionamento.
MODELANDO O NEGÓCIO
• Para determinar a cardinalidade, deve-se fazer a pergunta relativa ao 
relacionamento em ambas as direções. Por exemplo:
MODELANDO O NEGÓCIO
DEPARTAMENTO COLABORADORpossui
(1,N)(1,1)
• Um departamento possui quantos colaboradores?
- no mínimo 1 e no máximo N.
• Um colaborador está alocado em quantos departamentos?
- no mínimo em 1 e no máximo em 1
COLABORADOR DEPENDENTEPOSSUI
• Uma ocorrência de colaborador pode não estar associada a uma ocorrência
de dependente ou pode estar associada a várias ocorrências dele
(determinado colaborador pode não possuir dependentes ou pode possuir
vários).
• Uma ocorrência de dependente está associada a apenas uma ocorrência de
colaborador(determinado dependente possui apenas um empregado
responsável).
(0,N)(1,1)
• O colaborador pode ter nenhum ou vários dependentes
• Todo dependente deve estar associado a um e apenas um colaborador
MODELANDO O NEGÓCIO
PRATICANDO...
Colaborador Departamento
PRATICANDO...
Colaborador Departamento
PRATICANDO...
Governador
Estado
PRATICANDO...
Passageiro
Poltrona do
Avião
PRATICANDO...
PESSOA CARROutiliza
• Nem toda pessoa utiliza carro
• Um carro pode ser utilizado por uma ou mais pessoas
• Algumas pessoas utilizam mais de um carro
• Um carro sempre será utilizado por, pelo menos, uma pessoa
PRATICANDO...
PESSOA IMÓVELutiliza
• Toda pessoa utiliza um e somente um imóvel para morar
• Um imóvel pode ser utilizado por uma, ou mais pessoas
• Um imóvel nem sempre será utilizado por uma pessoa
PRATICANDO...
VIGILANTE
• Em uma observação do mundo real percebemos que em certa parte da
análise, foi identificado o conjunto de VIGILANTE e que entre os vários
relacionamentos deste conjunto existia a definição de negócio “um
vigilante é substituído por outro vigilante”. Isso ocorria nos casos de final
de turno, na falta ao trabalho, licença médica,...
PRATICANDO...
As regras de substituição foram identificadas conforme abaixo:
• Um vigilante pode ou não ser substituído por outro
• Um vigilante, se substituído, será somente por um outro
• Um vigilante pode substituir um ou mais de seus colegas
• Alguns vigilantes não substituirão ninguém em algumas situações
VIGILANTE substitui
Próxima Aula...
• Revisão das aula 1,2,3,4 e 5.
MODELAGEM DE DADOS
PROF. RAFAEL DIAS RIBEIRO, M.Sc.
@ribeirord
MODELAGEM DE DADOS
Aula 6
Prof. Rafael Dias Ribeiro. M.Sc.
@ribeirord
Objetivos:
• Conhecer as extenções do Modelo Entidade Relacionamento 
• Generalizações
• Agregações
MODELANDO O NEGÓCIO
DEPARTAMENTO COLABORADORpossui
(1,N)(1,1)
• Auto-relacionamento
MODELANDO O NEGÓCIO
PESSOA
é
casada
PESSOA
é
casada
PESSOA
11
1
1
Atributos identificadores: Atributos que identifica, de forma única, 
as instâncias de uma entidade.
ATRIBUTOS
PESSOA Pessoa: Nome, CPF, Dt-Nascimento, Telefone
IDENTIFICANDO RELACIONAMENTOS
• Em princípio, uma ocorrência de relacionamento diferencia-se
das demais do mesmo relacionamento pelas ocorrências de
entidades que dela participam.
• Exemplificando, uma ocorrência de ALOCAÇÃO é identificada
pela ocorrência de ENGENHEIRO e pela ocorrência dePROJETO que ela relaciona. Em outros termos, para cada par
(engenheiro, projeto) há no máximo um relacionamento de
alocação.
ENGENHEIRO alocação PROJETO
N N
IDENTIFICANDO RELACIONAMENTOS
• Há casos nos quais entre as mesmas ocorrências de entidade
podem existir diversas ocorrências de relacionamento.
• Um exemplo é o relacionamento CONSULTA entre entidades de
MÉDICO e de PACIENTE. Entre um determinado médico e
um determinado paciente podem haver diversas consultas.
Neste caso, é necessário algo que distinga uma consulta
entre um médico e seu paciente das demais consultas entre este
médico e seu paciente.
MODELAGEM CONCEITUAL – MER ESTENDIDO
• Os conceitos básicos do Modelo Entidade Relacionamento
são suficientes para modelar grande parte dos bancos de
dados. Entretanto, algumas extensões, introduzidas
posteriormente ao seu surgimento, permitiram
refinamentos bastante significativos.
MODELAGEM CONCEITUAL – MER ESTENDIDO
• Através deste conceito é possível atribuir propriedades
particulares a um subconjunto das ocorrências
(especializadas) de uma entidade genérica. O símbolo
para representar generalização/especialização é um
triângulo isósceles
• A generalização/especialização expressa que a entidade CLIENTE é
dividida em dois subconjuntos, as entidades PESSOA FÍSICA e
PESSOA JURÍDICA cada um com propriedades próprias.
• Associada ao conceito de generalização/especialização está a
ideia de herança de propriedades. Herdar propriedades significa
que cada ocorrência da entidade especializada possui, além de
suas próprias propriedades (atributos, relacionamentos e
generalizações/especializações), também as propriedades da
ocorrência da entidade genérica correspondente.
• A generalização/especialização pode ser classificada em
dois tipos, total ou parcial, de acordo com a
obrigatoriedade ou não de a uma ocorrência da entidade
genérica corresponder uma ocorrência da entidade
especializada.
• Em uma generalização/especialização total para cada
ocorrência da entidade genérica existe sempre uma
ocorrência em uma das entidades especializadas.
• Em uma generalização/especialização parcial, nem toda
ocorrência da entidade genérica possui uma ocorrência
correspondente em uma entidade especializada.
• Em uma generalização/especialização total para cada
ocorrência da entidade genérica existe sempre uma
ocorrência em uma das entidades especializadas.
• Em uma generalização/especialização parcial, nem toda
ocorrência da entidade genérica possui uma ocorrência
correspondente em uma entidade especializada.
• Não há limite no número de níveis hierárquicos da
generalização / especialização.
• Uma entidade especializada em uma generalização /
especialização, pode, por sua vez, ser entidade genérica
em uma outra generalização / especialização.
• É admissível, inclusive, que uma mesma entidade seja
especialização de diversas entidades genéricas (a
chamada herança múltipla)
Estrutura de Agregação “Faz_parte_de”
• O Modelo Entidade Relacionamento não é capaz de
representar relacionamentos entre relacionamentos.
• Uma agregação é uma abstração através da qual os
relacionamentos são tratados como entidades de mais alto
nível.
PROJETOtrabalha
(1,N)
COLABORADOR
(1,N)
utiliza
MÁQUINA
(0,1)
(1,N)
FUNCIONÁRIO: MatrículaFuncionário, NomeFuncionário, Salário
PROJETO: NúmeroProjeto, NomeProjeto
MÁQUINA: SerialMaquina, NomeMaquina
Máquina se relaciona com
os funcionários trabalhando
em um projeto.
Máquinas não se relacionam
com funcionários e nem
projetos em separado, mas
sim com o relacionamento
que estas entidades
mantém.
PROJETOtrabalha
(1,N)
COLABORADOR
(1,N)
utiliza
MÁQUINA
(0,1)
(1,N)
FUNCIONÁRIO: MatrículaFuncionário, NomeFuncionário, Salário
PROJETO: NúmeroProjeto, NomeProjeto
MÁQUINA: SerialMaquina, NomeMaquina
• Um relacionamento é uma associação entre entidades. Na
modelagem ER não foi prevista a possibilidade de associar
uma entidade com um relacionamento ou então de associar
dois relacionamentos entre si.
• Na prática, quando está-se construindo um novo DER ou
modificando um DER existente, surgem situações em que é
desejável permitir a associação de uma entidade a um
relacionamento.
PACIENTECONSULTA
(0,N)
MÉDICO
(1,N)
• Em cada consulta, um ou mais medicamentos podem ser 
prescritos ao paciente. Para tal, criar-se-ia uma nova 
entidade, MEDICAMENTO.
MEDICAMENTO
PACIENTECONSULTA
(0,N)
MÉDICO
(1,N)
• Se MEDICAMENTO fosse relacionado a MÉDICO, ter-
se-ia apenas a informação de que médico prescreveu 
que medicamentos, faltando a informação do paciente 
que os teve prescritos. 
MEDICAMENTO
PACIENTECONSULTA
(0,N)
MÉDICO
(1,N)
• Por outro lado, se MEDICAMENTO fosse relacionado a
PACIENTE, faltaria a informação do médico que prescreveu
o medicamento.
MEDICAMENTO
• Deseja-se relacionar o medicamento à consulta, ou seja
deseja-se relacionar uma entidade (MEDICAMENTO) a um
relacionamento (CONSULTA), o que não está previsto na
abordagem ER.
• Para tal, foi criado um conceito especial, o de entidade
associativa. Uma entidade associativa nada mais é que a
redefinição de um relacionamento, que passa a ser tratado
como se fosse também uma entidade
PACIENTECONSULTA
(0,N)
MÉDICO
(1,N)
MEDICAMENTO
PRESCRIÇÃO
(0,N)
(0,N)
Próxima Aula...
• Aprender sobre a modelagem lógica dos dados.
• Conhecer os modelos lógicos de dados existentes.
• Aprender a base conceitual para Modelo Relacional. 
• Conhecer os conceitos de chave candidata, primária e estrangeira.
• Compreender as restrições de integridade.
MODELAGEM DE DADOS
PROF. RAFAEL DIAS RIBEIRO, M.Sc.
@ribeirord
MODELAGEM DE DADOS
Aula 7
Prof. Rafael Dias Ribeiro. M.Sc.
@ribeirord
Objetivos:
• Aprender sobre a modelagem lógica dos dados.
• Conhecer os modelos lógicos de dados existentes.
• Aprender a base conceitual para Modelo Relacional. 
• Conhecer os conceitos de chave candidata, primária e 
estrangeira.
• Compreender as restrições de integridade
Modelagem Lógica de Dados
• O modelo lógico descreve a estrutura do banco
de dados, conforme vista pelo usuário do SGBD.
• Detalhes de armazenamento interno de
informações, que não tem influencia sobre a
programação de aplicações no SGBD, mas podem
influenciar a performance da aplicações (por
exemplo, as estruturas de arquivos usadas no
acesso as informações) não fazem parte do modelo
lógico.
Modelagem Lógica de Dados
• O Modelo Lógico de Dados Lógico descreve os
componentes do Modelo Conceitual de Dados,
aproximando-o do ambiente computacional, onde
este será trabalhado.
Modelagem Lógica de Dados
• Modelo Hierárquico: Apresenta a mesma estrutura do
modelo de rede, diferindo apenas na organização dos
registros. Tais registros são organizados com coleções
de árvores em vez de grafos aleatórios.
• Ex.: IMS(IBM)
• Modelo de Rede: Os dados são representados por uma
coleção de registros e os relacionamentos entre os dados
são representados por meio de links.
• Ex. : IDMS, DMS-II(Unisys)
Modelagem Lógica de Dados
• Modelo Relacional: Os dados são representados 
através de tabelas.
• Ex.: DB-2, SQL-DS (IBM), Oracle, Ingres 
Modelagem Lógica de Dados
• Modelo Orientado a Objetos: Surgiu em virtude da necessidade
de se acompanhar o aumento na complexidade dos dados.
• Quando o modelo relacional foi sugerido, dados como imagens ou
som não foram considerados na sua estrutura.
• Atualmente, dados deste tipo são bastante comuns, até mesmo nas
aplicações mais simples e o modelo relacional não é suficiente para
este tipo de modelagem.
• De modo geral, no modelo orientado a objeto as entidades do
modelo conceitual são objetos que encapsulam tanto dados quanto
o código associado a este objeto.
• Ex.: Vbase, O2, Orion, Gemstone, Jasmine, ObjectStore
Modelagem Lógica de Dados
• Modelo Relacional Objeto: Um extensão do modelo
relacional, que inclui orientação a objeto e permite o
tratamento de dados complexos.• Ex.: Postgres, Informix, Oracle 9i, IBM DB2
Modelo Relacional
• Está fundamentado na teoria de conjuntos, combinado com
a ideia que não é relevante para o usuário saber onde os
dados estão nem como os dados estão armazenados.
• O usuário, para lidar com estes objetos, conta com um
conjunto de operadores e funções de alto nível, constantes
na álgebra relacional.
Modelo Relacional
. • Relação = Tabela bi-dimensional, composta de linhas e colunas
de dados.
• Relação recursiva = relaciona o objeto a si mesmo.
• Atributo = Coluna
• Grau de uma relação = Número de atributos
• Tupla = Cada linha da relação
• Domínio de um atributo = Conjunto ao qual pertence os valores
de um atributo
• Valor nulo de um atributo de uma tupla = Atributo inaplicável
ou com valor desconhecido
• Esquema de Banco de Dados Relacional = Nomes das
relações seguidos pelos nomes dos atributos, com os atributos
chaves sublinhados e com as chaves estrangeiras identificadas
Modelo Relacional
. 
Tabela Depto
Modelo LÓGICO Relacional
• O conceito básico para estabelecer relações entre
linhas de tabelas de um banco de dados relacional é
o da chave. Em um banco de dados relacional, há
ao menos três tipos de chaves a considerar:
• chave primária
• chave alternativa
• chave estrangeira
• Uma chave primária é uma coluna ou uma combinação de
colunas cujos valores distinguem uma linha das demais
dentro de uma tabela.
CHAVE PRIMÁRIA
CHAVE PRIMÁRIA COMPOSTA
Qualquer combinação de colunas que contenha as colunas
CódigoEmp e NoDepen é uma chave primária.
Por isso, nas definições formais de chave primária, exige-se
que essa seja mínima.
Uma chave é mínima quando todas suas colunas forem
efetivamente necessárias para garantir o requisito de
unicidade de valores da chave.
• É uma coluna ou uma combinação de colunas, cujos
valores aparecem necessariamente na chave primária
de uma tabela.
• A chave estrangeira é o mecanismo que permite a
implementação de relacionamentos em um banco de
dados relacional.
CHAVE ESTRANGEIRA
CHAVE ESTRANGEIRA
A existência de uma chave estrangeira impõe restrições que devem
ser garantidas...
• Quando da inclusão de uma linha na tabela que contém a chave
estrangeira
• Deve ser garantido que o valor da chave estrangeira
apareça na coluna da chave primária referenciada. Isso
significa que um novo empregado deve atuar em um
departamento já
• existente no banco de dados
• Quando da inclusão de uma linha na tabela que contém a chave
estrangeira
• Deve ser garantido que o valor da chave estrangeira apareça
na coluna da chave primária referenciada. Isso significa que
um novo empregado deve atuar em um departamento já
existente no banco de dados.
• Quando da alteração do valor da chave estrangeira
• Deve ser garantido que o novo valor de uma chave
estrangeira apareça na coluna da chave primária
referenciada.
• Quando da exclusão de uma linha da tabela que contém a
chave primária referenciada pela chave estrangeira
• Deve ser garantido que na coluna chave estrangeira não
apareça o valor da chave primária que está sendo
excluída. Isso significa que um departamento não pode
ser excluído, caso nele ainda existirem empregados
• A palavra “estrangeira” usada para denominar este tipo de
chave pode ser enganosa.
• Ela pode levar a crer que a chave estrangeira sempre
referencia uma chave primária de outra tabela. Entretanto,
esta restrição não existe. Uma chave primária pode
referenciar a chave primária da própria tabela
ATENÇÃO:
Chave Alternativa:
• Em alguns casos, mais de uma coluna ou combinações de
colunas podem servir para distinguir uma linha das demais.
• Uma das colunas (ou combinação de colunas) é escolhida
como chave primária. As demais colunas ou combinações são
denominadas chaves alternativa
Chave Alternativa:
• Uma tabela com dados de empregados (Emp) na qual tanto a
coluna códigoEmp quanto a coluna CIC podem ser usadas
para distinguir uma linha das demais.
• Nesta tabela, como a coluna CódigoEmp foi escolhida como
chave primária, diz-se que a coluna CIC é uma chave
alternativa.
Restrições de Integridade
• Um dos objetivos primordiais de um SGBD é a integridade de
dados.
• Dizer que os dados de um banco de dados estão íntegros
significa dizer que eles refletem corretamente a realidade
representada pelo banco de dados e que são consistentes
entre si.
• Para tentar garantir a integridade de um banco de dados os
SGBD oferecem o mecanismo de restrições de integridade
Restrições de Integridade
• Uma restrição de integridade é uma regra de consistência de
dados que é garantida pelo próprio SGBD.
• No caso da abordagem relacional, costuma-se classificar as
restrições de integridade nas seguintes categorias:
• Integridade de domínio
• Integridade de vazio
• Integridade de chave
• Integridade referencial
Restrições de Integridade de Domínio
• Restrições deste tipo especificam que o valor de um campo deve
obedecer a definição de valores admitidos para a coluna (o domínio da
coluna).
• Nos SGBD relacionais comerciais, é possível usar apenas domínios
pré-definidos (número inteiro, número real, alfanumérico de tamanho
definido, data, …).
• O usuário do SGBD não pode definir domínios próprios de sua
aplicação (por exemplo, o domínio dos dias da semana ou das
unidades da federação).
Restrições de Integridade de Vazio
• Através deste tipo de restrição de integridade é especificado
se os campos de uma coluna podem ou não ser vazios (se a
coluna é obrigatória ou opcional).
• NOTA: Campos que compõem a chave primária sempre
devem ser diferentes de vazio.
Restrições de Integridade de Chave
• Trata-se da restrição que define que os valores da chave
primária e alternativa devem ser únicos.
Restrições de Integridade Referencial
• É a restrição que define que os valores dos campos que
aparecem em uma chave estrangeira devem aparecer na
chave primária da tabela referenciada.
Próxima Aula...
• Aprender um método de conversão do modelo conceitual 
para o modelo relacional para: 
• Relacionamentos 1:1
• Relacionamentos 1:n
• Relacionamentos n:m
MODELAGEM DE DADOS
PROF. RAFAEL DIAS RIBEIRO, M.Sc.
@ribeirord
MODELAGEM DE DADOS
Aula 8
Prof. Rafael Dias Ribeiro. M.Sc.
@ribeirord
Objetivos:
• Aprender a transformar o modelo conceitual para o modelo 
lógico relacional para: 
• Relacionamentos 1:1
• Relacionamentos 1:n
• Relacionamentos n:m
Convertendo o Diagrama ER para Tabelas Relacionais
• Regras simples, baseadas na cardinalidade dos
relacionamentos, são aplicadas para converter entidades e
relacionamentos em tabelas relacionais.
Para cardinalidade 1:1
• Caso 1:
Para cardinalidade 1:1
• Caso 1:
PEDIDO (NºdoPedido, DataEmissão, DatadeEntrega, Produtos 
Comprados, Numero, DataDeEmissão, Valor_Total)
PEDIDO (NºdoPedido, DataEmissão, DatadeEntrega, Produtos 
Comprados, Numero, DataDeEmissão, Valor_Total)
Nºdo
Pedido
Data
Emissão
Datade
Entrega
Produtos 
Comprados
Numero DataDe
Emissão
Valor
Total
Pedido Nota Fiscal
Para cardinalidade 1:1
• Caso 2:
ALUNO TESEPRODUZ
(1,1) (0,1)
Matricula
Nome
e-mail
endereço
Titulo
Resumo
Ano
Para cardinalidade 1:1
• Caso 2:
ALUNO (Matricula, Nome, e-mail, endereço)
TESE (Aluno-Matricula , Titulo, Resumo, Ano)
ALUNO TESEPRODUZ
(1,1) (0,1)
Matricula
Nome
e-mail
endereço
Titulo
Resumo
Ano
ALUNO (Matricula, Nome, e-mail, endereço)
TESE (Aluno-Matricula , Titulo, Resumo, Ano)
Matricula Nome e-mail endereço
ALUNO 
Aluno
Matricula
Titulo Resumo Ano
TESE 
Para cardinalidade 1:N
Para cardinalidade 1:N
FABRICA (Nome, CNPJ)
LOJA (CNPJ_Loja, Fabrica-CNPJ , Razão_Social, End, Nome, 
Telefone)
FABRICA (Nome, CNPJ)
LOJA (CNPJ_Loja, Fabrica-CNPJ , Razão_Social, End, Nome, 
Telefone)
CNPJ Nome
FABRICA 
CNPJ FABRICA 
CNPJ
Razão
Social
End Nome Telefone
LOJA 
Para cardinalidade 1:N
FABRICA(Nome, CNPJ)
CADASTRO(CNPJ, CNPJ_Loja)
LOJA(CNPJ_Loja, Razão_Social,End, Nome, Telefone)
FABRICA(Nome, CNPJ)
CADASTRO(CNPJ, CNPJ_Loja)
LOJA(CNPJ_Loja, Razão_Social, End, Nome, Telefone)
CNPJ Nome
FABRICA 
CNPJ Razão
Social
End Nome Telefone
LOJA 
CADASTRO
FABRICA 
CNPJ
LOJA
CNPJ
Para cardinalidade N:M
Para cardinalidade N:M
ROUPA (Cod_modelo, Preço, TipoTecido)
POSSUEM (Cod_Modelo,Sigla)
TECIDO (Sigla, Descrição)
ROUPA (Cod_modelo, Preço, TipoTecido)
POSSUEM (Cod_Modelo,Sigla)
TECIDO (Sigla, Descrição)
Sigla Descrição
A Algodão
B Poliester
TECIDO 
TECIDO 
Sigla
ROUPA 
Cod_modelo
A 01
B 01
POSSUEM 
ROUPA 
Cod_modelo Preço TipoTecido
01 1,00 Algodão
02 2,00 poliester
Para cardinalidade N:M
EMPREGADO ProjetoTrabalha em
(1,N) (1,N)
Matricula
Nome
e-mail
Código
Nome
Local
Horas
Para cardinalidade N:M
EMPREGADO ProjetoTrabalha em
(1,N) (1,N)
Matricula
Nome
e-mail
Código
Nome
Local
Horas
EMPREGADO (Matricula, Nome, e-mail)
PROJETO (Código , Nome , Local)
EMPREGADO/PROJETO (EMPREGADO-Matricula, PROJETO-Código, Horas)
EMPREGADO (Matricula, Nome, e-mail)
PROJETO (Código , Nome , Local)
EMPREGADO/PROJETO (EMPREGADO-Matricula, PROJETO-Código, Horas)
Matricula Nome e-mail
1 Ana a@a
2 Juca j@j
3 Paulo p@p
EMPREGADO 
Código Nome Local
01 Sist. A
02 Sist. B
03 Sist. C
PROJETO 
EMPREGADO.
Matricula
PROJETO.
Código 
Horas
1 01 20
1 03 10
3 01 40
EMPREGADO/PROJETO 
Para cardinalidade N:M
PEÇA FORNECEDOR
Forneci
mento
(1,N) (1,N)
Codigo
Nome
Cor
Cidade
Codigo
Nome
Cidade
QTDE
Para cardinalidade N:M
PEÇA FORNECEDOR
Forneci
mento
(1,N) (1,N)
Codigo
Nome
Cor
Cidade
Codigo
Nome
Cidade
QTDE
PEÇA (Codigo, Nome, Cor, Cidade)
FORNECEDOR (Codigo , Nome, Cidade)
FORNECIMENTO (PEÇA-Codigo, FORNECEDOR-Codigo, QTDE)
Para cardinalidade N:M
PEÇA
CURITIBAAZULPARAFUSOP3
SPVERDEPORCAP2
RJVERMELHOPREGOP1
CIDADECORNOMECODIGO
FORNECEDOR
SPJOÃOS2
RJSILVAS1
CIDADENOMECODIGO
FORNECIMENTO
400P2S2
300P1S2
400P3S1
200P2S1
300P1S1
QTDECOD_PECACOD_FORN
AMBULATORIO
MEDICO
numero
andar
capacidade
CONSULTA
PACIENTE
(1,1)
(1,1)
(1,1)
(0,N)
(0,1)
(1,N)
Matricula
nome
crm
ESPECIALIDADE
(0,N)
codigo
nome
codigo
nome
CPF
Dt.Nascimento
Data
Hora
(0,N)
MEDICO
(0,1)
Matricula
nome
crm
ESPECIALIDADE
(0,N)
codigo
nome
ESPECIALIDADE (Codigo, Nome)
MEDICO (Matricula, Nome, Crm, ESPECIALIDADE- Codigo )
AMBULATORIO
MEDICO
numero
andar
capacidade
CONSULTA
PACIENTE
(1,1)
(1,1)
(1,1)
(0,N)
(0,1)
(1,N)
Matricula
nome
crm
ESPECIALIDADE
(0,N)
codigo
nome
codigo
nome
CPF
Dt.Nascimento
Data
Hora
(0,N)
AMBULATORIO
MEDICO
numero
andar
capacidade
CONSULTA
PACIENTE
(1,1)
(1,1)
(1,1)
(0,N)
(1,N)
Matricula
nome
crm
codigo
nome
CPF
Dt.Nascimento
Data
Hora
(0,N)
MEDICO (Matricula, Nome, Crm, ESPECIALIDADE- Codigo )
AMBULATORIO (Numero, Andar, Capacidade)
PACIENTE (Codigo, Nome, CPF, Dt.Nascimento
CONSULTA (MEDICO- Matricula, AMBULATORIO- Numero, PACIENTE-Codigo,Data,Hora)
CONSULTA (MEDICO- Matricula, AMBULATORIO- Numero, PACIENTE-Codigo,Data,Hora)
MED. 
Matricula
AMB.
Numero
PAC. 
Codigo
Data Hora
012 2 001 25/11/2009 08:15
017 5 005 26/12/2009 23:50
015 3 009 31/12/2009 12:00
012 2 001 25/11/2009 19:30
015 3 009 15/01/2010 11:30
• Uma chave primária é uma coluna ou uma combinação de
colunas cujos valores distinguem uma linha das demais
dentro de uma tabela.
CHAVE PRIMÁRIA
Por isso, nas definições formais de chave primária, exige-se
que essa seja mínima.
Uma chave é mínima quando todas suas colunas forem
efetivamente necessárias para garantir o requisito de
unicidade de valores da chave.
CONSULTA (MEDICO- Matricula, AMBULATORIO- Numero, PACIENTE-Codigo, Data, Hora)
MED. 
Matricula
AMB.
Numero
PAC. 
Codigo
Data Hora
012 2 001 25/11/2009 08:15
017 5 005 26/12/2009 23:50
015 3 009 31/12/2009 12:00
012 2 001 25/11/2009 19:30
015 3 009 15/01/2010 11:30
MEDICO (Matricula, Nome, Crm, ESPECIALIDADE- Codigo )
ESPECIALIDADE (Codigo, Nome)
AMBULATORIO (Numero, Andar, Capacidade)
PACIENTE (Codigo, Nome, CPF, Dt.Nascimento
CONSULTA (MEDICO- Matricula, AMBULATORIO- Numero, PACIENTE-Codigo,Data,Hora)
Próxima Aula...
• Aprender um método de conversão do modelo conceitual 
para o modelo relacional para: 
• Relacionamentos recursivos
• Generalizações
• Agregações
• Relacionamentos n-ários
MODELAGEM DE DADOS
PROF. RAFAEL DIAS RIBEIRO, M.Sc.
@ribeirord
MODELAGEM DE DADOS
Aula 9
Prof. Rafael Dias Ribeiro. M.Sc.
@ribeirord
Objetivos:
• Método de conversão do modelo conceitual para o modelo 
relacional para: 
• Relacionamentos recursivos
• Generalizações
• Agregações
• Relacionamentos n-ários
Para cardinalidade 1:1
• Caso 1:
REVISÃO
Para cardinalidade 1:1
• Caso 1:
PEDIDO (NºdoPedido, DataEmissão, DatadeEntrega, Produtos 
Comprados, Numero, DataDeEmissão, Valor_Total)
REVISÃO
PEDIDO (NºdoPedido, DataEmissão, DatadeEntrega, Produtos 
Comprados, Numero, DataDeEmissão, Valor_Total)
Nºdo
Pedido
Data
Emissão
Datade
Entrega
Produtos 
Comprados
Numero DataDe
Emissão
Valor
Total
Pedido Nota Fiscal
REVISÃO
Para cardinalidade 1:1
• Caso 2:
ALUNO TESEPRODUZ
(1,1) (0,1)
Matricula
Nome
e-mail
endereço
Titulo
Resumo
Ano
REVISÃO
Para cardinalidade 1:1
• Caso 2:
ALUNO (Matricula, Nome, e-mail, endereço)
TESE (Aluno-Matricula , Titulo, Resumo, Ano)
ALUNO TESEPRODUZ
(1,1) (0,1)
Matricula
Nome
e-mail
endereço
Titulo
Resumo
Ano
REVISÃO
ALUNO (Matricula, Nome, e-mail, endereço)
TESE (Aluno-Matricula , Titulo, Resumo, Ano)
Matricula Nome e-mail endereço
ALUNO 
Aluno
Matricula
Titulo Resumo Ano
TESE 
REVISÃO
Para cardinalidade 1:N
REVISÃO
Para cardinalidade 1:N
FABRICA (Nome, CNPJ)
LOJA (CNPJ_Loja, Fabrica-CNPJ , Razão_Social, End, Nome, 
Telefone)
REVISÃO
FABRICA (Nome, CNPJ)
LOJA (CNPJ_Loja, Fabrica-CNPJ , Razão_Social, End, Nome, 
Telefone)
CNPJ Nome
FABRICA 
CNPJ FABRICA 
CNPJ
Razão
Social
End Nome Telefone
LOJA 
REVISÃO
Para cardinalidade 1:N
FABRICA(Nome, CNPJ)
CADASTRO(CNPJ, CNPJ_Loja)
LOJA(CNPJ_Loja, Razão_Social, End, Nome, Telefone)
REVISÃO
FABRICA(Nome, CNPJ)
CADASTRO(CNPJ, CNPJ_Loja)
LOJA(CNPJ_Loja, Razão_Social, End, Nome, Telefone)
CNPJ Nome
FABRICA 
CNPJ Razão
Social
End Nome Telefone
LOJA 
CADASTRO
FABRICA 
CNPJ
FABRICA 
CNPJ
REVISÃO
Para cardinalidade N:M
REVISÃO
Para cardinalidade N:M
ROUPA (Cod_modelo, Preço, TipoTecido)
POSSUEM (Cod_Modelo,Sigla)
TECIDO (Sigla, Descrição)
REVISÃO
ROUPA (Cod_modelo, Preço, TipoTecido)
POSSUEM (Cod_Modelo,Sigla)
TECIDO (Sigla, Descrição)
Sigla Descrição
TECIDO 
TECIDO 
Sigla
ROUPA 
Cod_modelo
POSSUEM 
ROUPA 
Cod_modelo Preço TipoTecido
REVISÃO
AMBULATORIO
MEDICO
numero
andar
capacidade
CONSULTA
PACIENTE
(1,1)
(1,1)
(1,1)
(0,N)
(1,N)
Matricula
nome
crm
codigo
nome
CPF
Dt.Nascimento
Data
Hora
(0,N)
MEDICO (Matricula, Nome, Crm)
AMBULATORIO (Numero, Andar, Capacidade)
PACIENTE (Codigo, Nome, CPF, Dt.Nascimento)
CONSULTA (MEDICO- Matricula, AMBULATORIO- Numero, PACIENTE-Codigo,Data,Hora)
REVISÃO
Para Relacionamentos recursivos
EMPREGADO
Casado 
com
(0,1)
Matricula
Nome
sobrenome
(0,1)
EMPREGADO (Matricula, Nome, Sobrenome
Para Relacionamentos recursivos
EMPREGADO
Casado 
com
(0,1)
Matricula
Nome
sobrenome
(0,1)
EMPREGADO (Matricula, Nome, Sobrenome)
CASADO (Matricula-Marido,Matricula-Esposa)
N
N
Temporariamente o LIMITE 
SUPERIOR é rotulado como N
Para Relacionamentos recursivos
EMPREGADO Supervisiona
(1,1)
Matricula
Nome
sobrenome
(0,N)
EMPREGADO (Matricula, Nome, Sobrenome, Matricula_Supervisor)
Para Relacionamentos recursivos
PEÇA Compõe
(0,N)
Numero
Descrição
Quantidade_Dispon
(0,N)
PEÇA (Numero, Descrição, Quantidade-Dispon)
COMPÕE(Numero_Peça, Numero_Peça_Comp , Quantidade) 
Quantidade
Para Generalizações
ALUNO
Matricula
Nome
E-mail
(0,1)
GRADUAÇÃO
PÓS
GRADUAÇÃO
(0,1)
(1,1)
AlojamentoDt_Nascimento
CR
Para Generalizações
ALUNO (Matricula, Nome, E-mail)
GRADUAÇÃO (Matricula,Dt-Nascimento,CR)
PÓS-GRADUAÇÃO (Matricula, Alojamento)
N
Temporariamente o LIMITE 
SUPERIOR é rotulado como N N
Para Agregações
COMPUTADOR
Computador_ID
Descricao
PL. Mãe Disco Rígido Vídeo
Tem Contém Consiste 
de
(1,1) (1,1)(0,N)
(0,N)
(0,N)
(0,N)
PLMae_ID
Descricao
Disco_ID
Capacidade
Video_ID
Descricao
Para Agregações
COMPUTADOR
Computador_ID
Descricao
PL. Mãe Disco Rígido Vídeo
Tem Contém Consiste 
de
(1,1) (1,1)(0,N)
(0,N)
(0,N)
(0,N)
PLMae_ID
Descricao
Disco_ID
Capacidade
Video_ID
Descricao
COMPUTADOR(Computador_ID, Descricao, PLMae-ID)
PL.MAE (PLMae-ID, Descricao ) 
Para Agregações
COMPUTADOR
Computador_ID
Descricao
PL. Mãe Disco Rígido Vídeo
Tem Contém Consiste 
de
(1,1) (1,1)(0,N)
(0,N)
(0,N)
(0,N)
PLMae_ID
Descricao
Disco_ID
Capacidade
Video_ID
Descricao
COMPUTADOR(Computador_ID, Descricao, PLMae-ID, Video-ID)
VIDEO (Video-ID , Descricao)
Para Agregações
COMPUTADOR
Computador_ID
Descricao
PL. Mãe Disco Rígido Vídeo
Tem Contém Consiste 
de
(1,1) (1,1)(0,N)
(0,N)
(0,N)
(0,N)
PLMae_ID
Descricao
Disco_ID
Capacidade
Video_ID
Descricao
Para Agregações
COMPUTADOR(Computador_ID, Descricao, PLMae-ID, Video-ID)
Disco Rigido( Disco-ID, Capacidade)
Contem (Computador_ID , Disco-ID)
COMPUTADOR(Computador_ID, Descricao, PLMae-ID, Video-ID)
Disco Rigido( Disco-ID, Capacidade)
Contem (Computador_ID , Disco-ID)
VIDEO (Video-ID , Descricao)
PL.MAE (PLMae-ID, Descricao ) 
Próxima Aula...
• Apresentar o conceito de normalização
• Apresentar e exemplificar a 1ª forma normal
• Apresentar e exemplificar a 2ª forma normal
• Apresentar e exemplificar a 3ª forma normal
• Apresentar e exemplificar a forma normal de Boyce-Codd
MODELAGEM DE DADOS
PROF. RAFAEL DIAS RIBEIRO, M.Sc.
@ribeirord
MODELAGEM DE DADOS
Aula 10
Prof. Rafael Dias Ribeiro. M.Sc.
@ribeirord
Objetivos:
• Apresentar o conceito de normalização
• Apresentar e exemplificar a 1ª forma normal
• Apresentar e exemplificar a 2ª forma normal
• Apresentar e exemplificar a 3ª forma normal
NORMALIZAÇÃO
• O processo de normalização de dados representa uma
série de passos que se seguem no projeto de um banco
de dados que permitem um armazenamento consistente
e um eficiente acesso aos dados de um banco de dados
relacional.
• Esses passos reduzem a redundância de dados e,
consequentemente, as chances de ocorrerem
inconsistências.
• A normalização serve para analisar tabelas e organizá-las
de forma que sua estrutura seja simples, relacional e
estável, para que o gerenciamento possa ser também
simples.
• Os objetivos são evitar perda e repetição da informação e
atingir uma forma de representação adequada para o que
se deseja armazenar.
• Oferecer mecanismos para analisar o projeto de Banco de
Dados e a identificação de erros.
• Oferecer métodos para corrigir o problema
Perigos Potenciais nos Projetos de Bancos de Dados 
Relacionais
• Repetição da Informação
- Informações repetidas consomem espaço de 
armazenamento
- Dificuldade de atualização
• Incapacidade de representar a informação
- Incidência de valores nulos
• Perda da Informação
- Projetos mal elaborados sugerem a decomposição 
de esquemas relacionais com muitos atributos 
Através do processo de normalização pode-se,
gradativamente, substituir um conjunto de entidades e
relacionamentos por um outro, o qual se apresenta "purificado"
em relação às anomalias de atualização (inclusão, alteração e
exclusão) as quais podem causar certos problemas, tais como:
• grupos repetitivos (atributos multivalorados) de dados;
• variação temporal de certos atributos, dependências
funcionais totais ou parciais em relação a uma chave
concatenada;
• redundâncias de dados desnecessárias;
• perdas acidentais de informação;
• dificuldade na representação de fatos da realidade
observada;
• dependências transitivas entre atributos.
Primeira forma normal (1FN) 
Uma tabela está na primeira forma normal quando se 
todos os seus atributo são monovalorados e atômicos, 
isto é, não contém tabelas aninhadas
Primeira forma normal (1FN) 
Primeira forma normal (1FN) 
• Cria-se uma tabela na 1FN referente à tabela Não
Normalizada e que contém apenas colunas com valores
atômicos, isto é, sem as tabelas aninhadas;
• Para cada tabela aninhada, cria-se uma tabela na 1FN
compostas pelas seguintes colunas:
• A chave primária de uma das tabelas na qual a
tabela em questão está aninhada
• As colunas da própria tabela
• São definidas as chaves primárias das tabelas na 1FN
que correspondem a tabelas aninhadas
Primeira forma normal (1FN) 
Segundo a definição da 1FN, para normalizar a tabela acima, é 
necessário decompô-la em duas:
Proj(CodProj, Tipo, Descr);
Emp(CodProj, CodEmp, Nome, Cat, Sal, DataIni, TempAl);
Primeira forma normal (1FN) 
Proj(CodProj, Tipo, Descr);
Emp(CodProj, CodEmp, Nome, Cat, Sal, DataIni, TempAl);
Quando encontrarmos um atributo multivalorado, deve-se criar um 
novo atributo que individualize a informação que esta multivalorada:
BOLETIM (matricula-aluno, materia, notas)
No caso acima, cada nota seria individualizada identificando a prova a 
qual aquela nota se refere:
BOLETIM (matricula-aluno, materia, numero-prova, nota)
Quando encontrarmos um atributo não atômico, deve-se dividi-lo em 
outros atributos que sejam atômicos:
PESSOA (CPF, nome-completo)
Vamos supor que, para a aplicação que utilizará esta relação, o atributo 
nome-completo não é atômico, a solução então será:
PESSOA (CPF, nome, sobrenome)
Segunda Forma Normal (2FN)
Uma tabela encontra-se na segunda forma normal, quando, 
além de estar na 1FN, não contem dependências parciais.
Dependência parcial -> Uma dependência parcial ocorre 
quando uma coluna depende apenas de parte de uma 
chave primária composta.
Segunda Forma Normal (2FN)
Depende apenas de CodEmp e não da 
Chave Primária (CodProj, CodEmp)
Segunda Forma Normal (2FN)
• Copiar para a 2FN cada tabela que tenha chave primária simples ou que
não tenha colunas além da chave.
• Para cada tabela com chave primária composta e com pelo menos uma
coluna não chave:
• Criar na 2FN uma tabela com as chaves primárias da tabela na 1FN
• Para cada coluna não chave fazer a seguinte pergunta:
”a coluna depende de toda a chave ou de apenas parte dela”
• Caso a coluna dependa de toda a chave
• Criar a coluna correspondente na tabela com a chave
completa na 2FN
• Caso a coluna não dependa apenas de parte da chave
• Criar, caso ainda não existir, uma tabela na 2FN que tenha
como chave primária a parte da chave que é determinante
da coluna em questão
• Criar a coluna dependente dentro da tabela na 2FN
Segunda Forma Normal (2FN)
Observe a relação abaixo:
BOLETIM 
(matricula-aluno, codigo-materia, numero-prova, nota, data-da-
prova, nome-aluno, endereço-aluno, nome-materia)
Fazendo a análise da dependência funcional de cada atributo 
primo, chegamos às seguintes dependências funcionais:
matricula-aluno, codigo-materia, numero-prova -> nota
codigo-materia, numero-prova -> data-da-prova
matricula-aluno -> nome-aluno, endereço-aluno
codigo-materia -> nome-materia
Concluímos então que apenas o atributo primo nota depende
totalmente de toda chave primária. Para que toda a relação seja
passada para a segunda forma normal, deve-se criar novas relações,
agrupando os atributos de acordo com suas dependências funcionais:
BOLETIM (matricula-aluno, codigo-materia, numero-prova, nota)
PROVA (codigo-materia, numero-prova, data-da-prova)
ALUNO (matricula-aluno, nome-aluno, endereço-aluno)
MATERIA (codigo-materia, nome-materia)
Terceira Forma Normal (3FN)
Uma tabela encontra-se na terceira forma normal, quando,
além de estar na 2FN, não contém dependências
transitivas
Dependência transitiva -> Uma dependência funcional
transitiva ocorre quando uma coluna, além de depender da
chave primária da tabela, depende de outra coluna ou
conjunto de colunas da tabela
Terceira Forma Normal (3FN)
Supondo que

Outros materiais