Banco de Dados
Modelagem de Dados
2
Modelagem
n É o processo de transformar aspectos do mundo real (fatos)
em um modelo formal igualmente representativo.
n A modelagem conceitual do BD independe da sua
implementação (Modelo Lógico ou Físico)
n Deve mostrar, de forma abstrata, como os fatos estão
relacionados
n Por que modelar ?
n Para facilitar a interação com o usuário (validação das metas) antes
3
Modelagem
n Classificação dos modelos de dados
n Genéricos: maior transparência quanto a implementação física do
SGBD (modelo conceitual).
n EX: ER, ER-X, OMT, UML
n Específicos: dependentes da implementação física do SGBD (modelo
lógico).
Modelagem
Será que realmente precisamos planejar e modelar um novo BD/S.I.?
Como o cliente
explicou sua
necessidade
Modelagem
Será que realmente precisamos planejar e modelar um novo BD/S.I.?
Como o líder do
projeto entendeu
Modelagem
Será que realmente precisamos planejar e modelar um novo BD/S.I.?
Como o analista
planejou
Modelagem
Será que realmente precisamos planejar e modelar um novo BD/S.I.?
Como o
programador
escreveu
Modelagem
Será que realmente precisamos planejar e modelar um novo BD/S.I.?
Como o gerente de
negócios descreveu
Modelagem
Será que realmente precisamos planejar e modelar um novo BD/S.I.?
Como o projeto foi
documentado
Modelagem
Será que realmente precisamos planejar e modelar um novo BD/S.I.?
Quais operações
foram instaladas
Modelagem
Será que realmente precisamos planejar e modelar um novo BD/S.I.?
Pelo que o cliente
pagou
Modelagem
Será que realmente precisamos planejar e modelar um novo BD/S.I.?
Como foi suportado
na empresa
Modelagem
Será que realmente precisamos planejar e modelar um novo BD/S.I.?
Real necessidade
do cliente
14
Modelagem
n Um modelo que descreve o comportamento da realidade
em um Sistema de BD. Realidade Realidade Nebulosa Nebulosa Analista Analista Minimundo Minimundo MODELO MODELO Conceitual Conceitual Observação Observação Organiza Organiza Idéias Idéias Descreve Descreve MODELO MODELO Lógico Lógico MODELO MODELO Físico Físico DB Cria Cria Descrever o estado Descrever o estado Especifica Especifica Implementa Implementa
15
Modelagem
n Ciclo de Desenvolvimento de Sistemas de BD
Monitoramento e Manutenção do BD Investigação dos Dados Modelagem dos Dados Projeto do Banco de Dados Implementação do Banco de Dados
Modelos de Dados
n Um modelo de dados é uma descrição de tipos de
informações que estão armazenadas em um banco de dados.
Modelo de Dados =
Descrição formal da estrutura de um banco de dados
Modelos de Dados
n Os modelos de dados podem ser classificados de acordo
com os tipos de conceitos que eles utilizam para descrever a estrutura do banco de dados.
n Modelo conceitual: descreve os dados de maneira próxima ao modo
como os usuários percebem os dados.
n Modelo lógico: modelo intermediário (mapeamento interno). n Modelo físicos: descrevem os detalhes de como os dados são
Modelo Conceitual
n É uma descrição do banco de dados de forma independente
de implementação ou SGBD.
n Registra quais dados podem aparecer no banco de dados,
mas não registra como são armazenados.
Modelo Conceitual =
Modelo de dados abstrato, que descreve a estrutura de um
banco de dados
Modelo Conceitual
n A técnica mais utilizada na modelagem conceitual é a
abordagem Entidade-Relacionamento (ER).
Modelo Lógico
n É uma descrição de um banco de dados no nível de
abstração visto pelo usuário do SGBD.
n Depende do SGBD que está sendo utilizado. Modelo Lógico
=
Modelo de dados que representa a estrutura de dados conforme vista pelo
Modelo Lógico
n ExemploTipoDeProduto (CodTipoProd, DescrTipoProd)
Produto (CodProd, DescrProd, PrecoProd, CodTipoProd)
Modelo Físico
n Detalhes de armazenamento interno.
n Não influencia na programação de aplicações no SGBD.
n Influencia na performance das aplicações.
n Usados por profissionais que fazem sintonia (tunning) de
banco de dados, para otimizar a performance.
24
Modelo Entidade-Relacionamento
n Um pouco de História...n O modelo E.R. é baseado na teoria relacional criada em 1970 por Codd. n Este foi originalmente definido por Chen em 1976 e
n Posteriormente, na década de 80, na sofreu algumas extensões
n A visão de uma dada realidade baseia-se no relacionamento
entre entidades.
n Representa o significado dos dados como:
n Entidades,
n Relacionamentos e n Atributos
25
Entidades
n 1) É um conjunto de objetos concretos (cliente,livro,...) ou
abstratos (conta,empréstimo,...) que são: unívocos, de um mesmo tipo e que compartilham as mesmas propriedades.
n EX: Todas as pessoas com conta = Entidades Cliente e Conta
n 2) Conjunto de objetos da realidade modelada sobre os
quais deseja-se manter informações no BD
n Entidade X Instância de Entidade
n Para referir um objeto particular fala-se em instância ou ocorrência
de entidade
n Alguns autores consideram um objeto específico como uma
26
Entidades
Rita/C1 Ana/C2 João/C3 José/C4 Rita/Conta1 Ana/Conta2 João/Conta3 José/Conta4
27
Relacionamentos
n 1) Conjunto de associações do mesmo tipo entre entidades
n EX: Todos os relacionamentos entre as entidades Cliente e Conta
n 2) Conjunto de associações entre entidades sobre as quais
deseja-se manter informações no BD
n Relacionamento X Instância de Relacionamento
n Para referir um relacionamento particular fala-se em instância ou
ocorrência de relacionamento
n Tem autores que consideram uma associação específica como um
relacionamento e o conjunto de associações como conjunto de relacionamentos
28
Relacionamentos
CLIENTES
CLIENTES
CLIENTES
29
Relacionamentos
n Relacionamentos Totais (incondicionais)
n Todas as instâncias de uma entidade estão relacionadas às
instâncias das outras
n EX: Relacionamento entre esposo e esposa
n Relacionamento entre livros e autores
n Relacionamentos Parciais (condicionais)
n Apenas algumas as instâncias de uma entidades estão
relacionadas às outras
n EX: Relacionamento entre homens e esposas
30
Atributos
n São propriedades descritivas de cada membro de uma
entidade ou relacionamento.
n Uma entidade sempre é representada por um conjunto de
atributos
n Atributos de uma entidade Cliente n nome, RG, rua, cidade, telefone...
n Atributos de uma entidade Conta n numero, data_abertura, saldo...
n Em algumas situações relacionamentos também podem ter
atributos:
n Atributos de um relacionamento Consulta (entre medico e paciente) n data, hora, prescrição, ...
31
Atributos
n Cada instância de uma entidade ou relacionamento tem seu
próprio valor para cada atributo.
n Ex: nome → Rita, Ana, João, José, ...
conta → 123, 321, 456, 654, ... consulta → C1, C2,C3, C4, ...
n O conjunto de valores permitido para cada atributo é
chamado de domínio (é a definição do tipo do atributo)
n EX: nome = texto 60 posições n conta = inteiro 8 posições n consulta = texto 8 posições
32
Atributos
n Um atributo pode ser caracterizado como:
n Simples ou Composto
n Monovalorado ou Multivalorado n Nulo
33
Atributos simples ou composto
n Atributo simples: não é dividido em partes.n Atributo composto: pode ser dividido em partes (isto é, em
outros atributos).
n Ex: nome do cliente pode ser estruturado em prenome,
nome-intermediário e sobrenome.
n Atributos compostos são usados quando o usuário desejar se
referir ao atributo como um todo em certas ocasiões e somente a parte dele em outras.
34
Atributos mono ou multivalorados
n O atributo RG de uma entidade Cliente refere-se apenas a
um nº de identidade é mono-valorado.
n Instâncias onde um atributo possui um conjunto de valores
para uma única entidade è multivalorado.
n Ex: o atributo telefone o conjunto de entidades Cliente: pode-se ter
35
Atributos opcionais ou nulos
n Usado quando uma entidade não possui valor (é nulo) para
determinado atributo.
n Nulo significar que o valor do atributo é vazio ou ainda não foi
informado (desconhecido). n Ex: Um cliente sem telefone
n OBS: Um atributo não opcional é um atributo de preenchimento
obrigatório.
36
Atributos Derivados
n O valor deste tipo de atributo pode ser derivado de outros
atributos ou entidades a ele relacionados.
n Ex: o conjunto de entidades cliente poderia ter o atributo QTD_Conta,
mas pode-se derivar o valor deste atributo contando o número das entidades Contas associadas ao cliente em questão.
n O uso de atributos derivados é uma questão de projeto
37
Metáfora
n No mundo real normalmente pode-se correlacionar:
n Entidades = Substantivos
n Empregado, Nota Fiscal, Livro, Consulta
n Atributos = Complementos n Nome, Número, Valor, Cor
n Relacionamentos = Verbos
n Ter, Empregar, Prescrever, Gerenciar
- Isto não é regra, pois existem
relacionamentos que não são bem expressos por verbos.
- Quando isto ocorrer, uni-se os nomes das entidades para dar nome ao
relacionamento
38
Notação E-R Básica
n Um diagrama E-R basicamente consiste dos seguintes
componentes gráficos:
RETÂNGULOS: conjunto-entidade ELIPSES: atributos
LOSANGOS: conjunto-relacionamento
LINHAS: ligam atributos a conjunto-entidade e entidade a
39
40
Diagramas E-R: Exemplo
CLIENTE CONTA CLIENTE CONTA Cidade Nome R.G. Endereço Data Número Saldo
Na prática os atributos não são representados graficamente, pois sobrecarregam (graficamente) a apresentação do diagrama
41
Diagramas E-R: Exemplo
CLIENTE CÔNJUGE Cidade Nome R.G. Endereço Data Nome CPF CASA-SE Data
Assim como Entidades, Relacionamentos também podem possuir atributos
42
Diagramas E-R: Exemplo
ENGENHEIRO PROJETO
Código Nome
Código Título
ATUA Função
O mesmo Engenheiro pode desempenhar funções diferentes em projetos diferentes
43
Diagramas E-R: Exemplo
FINANCEIRA FINANCIA VENDA
Qtd_Parcelas
Por que não em vendas?, porque nem todas as venda são feitas a prazo ! (ficariam muito atributos nulos em vendas)
44
n Um relacionamento não associa apenas entidades diferentes
n As vezes é necessário relacionar instâncias de uma mesma
entidade, ou seja, fazer um auto-relacionamento
n Nestes casos é necessário o conceito de Papel
n Papel = Função que uma instância de uma entidade cumpre em uma
instância de um relacionamento
n Relacionamento entre entidades diferentes não requer papéis
Diagramas E-R: Exemplo
CLIENTE
CASADO
Marido Esposa
45
n As vezes pode existir mais de um relacionamento entre as
mesmas entidades
Diagramas E-R: Exemplo
Professor Curso
Leciona
46
Mapeamento de Cardinalidade
n Expressa o número de entidades as quais outra entidade
47
Tipos de Mapeamento - 1
n Um-para-um: Uma entidade A está associada no máximo
a uma entidade B e B está associada no máximo a uma entidade A.
CLIENTE
48
Tipos de Mapeamento - 1
n Um-para-um:Cônjuge
Cliente
casa-se
Cliente
Cônjuge
49
Tipos de Mapeamento - 2
n Um-para-muitos: Uma entidade A está associada a
qualquer número de entidades B. No entanto, B só pode estar associada e uma única entidade A.
50
Tipos de Mapeamento - 2
n Um-para-muitos:Dependente
Cliente
possui
n
Cliente
Dependente
51
Tipos de Mapeamento - 3
n Muitos-para-um: Uma entidade A está associada no máximo
a uma entidade B. B, entretanto, pode estar associada a qualquer número de entidades A.
Conta Corrente 1
52
Tipos de Mapeamento - 3
n Muitos-para-um:Cliente
Conta
conta_cliente
n
Conta
Cliente
$$ $$ $$ $$ $$53
Tipos de Mapeamento - 4
n Muitos-para-muitos: Uma entidade A está associada a
qualquer número de entidades B e uma entidade B está associada a qualquer número de entidades A.
54
Tipos de Mapeamento - 4
n Muitos-para-muitos:Vendedor
Cliente
atende
n
Cliente
Vendedor
m
Exercícios – Modelagem ER
n Agenda de Contatos;n Endereços (ibge e correios);
n Venda de Produtos;
n Locadora de Vídeos;
n Gravadora de CDs;