1. O documento discute conceitos e técnicas de modelagem de dados em bancos de dados.
2. Apresenta os principais modelos de dados como Modelo Entidade Relacionamento e Modelo Relacional.
3. Discutem técnicas de modelagem como entidades, atributos, relacionamentos, cardinalidade e chaves.
2. 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
3. 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
4. “É 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
5. Mundo Real Solução
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.
6. É um conjunto de registros dispostos em estrutura regular que
possibilita a reorganização dos mesmos e produção
de informação.
Um banco de dados normalmente agrupa registros utilizáveis
para um mesmo fim.
Um banco de dados é usualmente mantido e acessado por meio
de um software conhecido como Sistema Gerenciador de Banco
de Dados (SGBD).
Normalmente um SGBD adota um modelo de dados, de forma
pura, reduzida ou estendida. Muitas vezes o termo banco de
dados é usado, de forma errônea, como sinônimo de SGDB.
7. Os sistemas de gestão de banco de dados possuem
características especiais para o armazenamento, classificação,
gestão da integridade e recuperação dos dados.
Com a evolução de padrões de conectividade entre as tabelas de
um banco de dados e programas desenvolvidos em linguagens
como Java, Delphi, Visual Basic, C++ etc.
Como hoje em dia a maioria das linguagens de programação
fazem ligações a bancos de dados, a apresentação destes tem
ficado cada vez mais a critério dos meios de programação,
fazendo com que os bancos de dados deixem de restringir-se às
pesquisas básicas, dando lugar ao compartilhamento, em tempo
real, de informações, mecanismos de busca inteligentes e
permissividade de acesso hierarquizada.
8. Sistema Gerenciador de Bancos de Dados (SGBD):
Software construıdo para facilitar as atividades de definição,
construção e manipulação de bancos de dados;
Consistem em uma coleção de dados inter-relacionados
e de um conjunto de programas
para acessá-los
Sistema de Bancos de Dados: Banco de Dados + Software
que o manipula
9. Prover um ambiente que seja conveniente e eficiente para recuperar e
armazenar informações de Bancos de Dados.
Eliminar ou Reduzir
Redundância e inconsistência de dados
Dificuldade no acesso aos dados
Isolamento dos dados
Anomalias de acesso concorrente
Problemas de segurança
Abstração de dados
Simplifica a interação do usuário com o Sistema
11. 1.Controle de Redundancia;
2. Compartilhamento de Dados;
3. Controle de Acesso aos Dados;
4. Multiplas Interfaces;
5. Representação de associacoes complexas;
6. Garantia de restrições de Integridade;
7. Recuperação de falhas
12. 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
13. Mundo Real
Modelo Entidade Relacionamento
Nível Conceitual
Modelo Relacional-Objeto Relacional
nível lógico
nível físico
14. 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
15. 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.
Fucapi
16. 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
Fucapi
18. ...
Atributo Composto
Atributo Derivado
Participação total de E2 em R
E1 R E2
Ex: Agência e Conta Corrente
1 N Cardinalidade 1:N para E1:E2 em R
E1 R E2
(min,max) E2 Constraint (min,max) de E em R
E1 R
Fucapi
19. 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
Fucapi
20. 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
Fucapi
21. 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
Fucapi
22. 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
Fucapi
23. Entidade
Dependente
Nome
IdFunc Endereço
Nome
Salário
1 N
Funcionário
Tem Dependente
IdDepto Nome
P-20
1
Trabalho Departamento
Entidade
Independente
Fucapi
24. Atributo- serve para qualificar a entidade
Simples
Multivalorado
Determinante ou Identificador
Composto
Derivado ou Calculado
Fucapi
25. Simples
só pode assumir um único valor elementar
Exemplo: Nome, Idade, Data de Nascimento
Notação
Rua
Nome Idade
Num
CEP
Fone
PESSOAS Endereço
Fucapi
26. 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.
Fucapi
27. Multivalorado
só pode assumir mais de uma valor
Exemplo: Fones
Notação
Rua
Nome Num
Idade
Fones CEP
PESSOAS Endereço
Fucapi
28. 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
Fucapi
29. 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
Fucapi
30. Composto
Pode ser dividido em sub atributos
Exemplo: Endereço
Notação
Nome Idade
Rua Num
Fones
CEP
Código
PESSOAS
Endereço
Fucapi
31. 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
Fucapi
32. 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
Fucapi
33. 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
Fucapi
34. Entidade Entidade
Independente Dependente
Identificador
Nome
Código Endereço
Nome
Salário Código
1 N
1 Funcionário É de possui
Tem Dependente
N N
ÉC
om
po
sto
Supervisor
de
Código Nome
Trabalha no 1
Trabalho Departamento
Não Identificador
Papel do
Relacionamento
Fucapi
35. 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
Fucapi
39. 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)
Fucapi
40. 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
Fucapi
41. É dado pelo total de entidades envolvidas no relacionamento
• Binário, ternário, etc.
N N
MÉDICOS consultas PACIENTES
N N
VENDEDORES vendas PRODUTOS
N
CLIENTES
Fucapi
42. • É definido pela regra de negócio
N N
VENDEDORES vendas PRODUTOS
N N
N N
vendem CLIENTES compram
N N
VENDEDORES vendas PRODUTOS
N
CLIENTES
Fucapi
43. AGREGAÇÃO
N N
MÉDICOS consultas PACIENTES
• Supondo que um médico faz consultas a pacientes.
Fucapi
44. 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
Fucapi
45. AGREGAÇÃO
N N
MÉDICOS consultas PACIENTES
N
EXAMES
• O ternário obriga que em toda consulta o médico
solicite um exame.
Fucapi
46. AGREGAÇÃO
N N
MÉDICOS consultas PACIENTES
N
solicita
N
EXAMES
• O MER não permite relacionamento entre relacionamento
Fucapi
47. 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
Fucapi
48. 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
Fucapi
49. AGREGAÇÃO
N N
MÉDICOS consultas PACIENTES
N
N N
solicitações MÉDICOS consultas PACIENTES
N
N
EXAMES solicitações
N
EXAMES
Fucapi
50. 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.
Fucapi
51. 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
Fucapi
52. 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
Fucapi
53. 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
Fucapi
54. 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
Fucapi
55. 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.
Fucapi
56. 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.
Fucapi
57. 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.
Fucapi