Escolar Documentos
Profissional Documentos
Cultura Documentos
BancoDados A3
BancoDados A3
AULA 3
Modelo Entidade
Relacionamento
Conceitos Básicos
• Entidades;
• Relacionamentos;
• Atributos;
• Cardinalidades.
Entidades
• Entidade: conjunto de “objetos” da realidade modelada
sobre os quais deseja-se manter informações no banco de
dados
• Exemplos: produtos, clientes, contas correntes, pessoa,
automóvel, departamento, etc
• Representação Gráfica:
• Exemplo: pessoa
Relacionamentos
Atributos
• Atributo: dado que é associado a cada ocorrência de
uma entidade ou de um relacionamento;
• Exemplo: nome da pessoa, código do depto, etc.
0,n 1,1
pessoa lotação depto
nome código
Atributos
0,n 0,n
engenheiro atuação projeto
• Atributos de entidade;
• Atributos de relacionamento.
Auto-Relacionamentos
• Auto-Relacionamento: relacionamento entre
ocorrências de uma mesma entidade;
• Conceito adicional: papel da entidade no
relacionamento:
– Função que uma instância da entidade cumpre
dentro de uma instância do relacionamento.
marido
pessoa casamento
esposa
10
Mapeamento de Restrições
• Mapeamento das Cardinalidades expressa o número de
entidade às quais outra entidade pode estar associada
via um conjunto de relacionamentos.
11
Mapeamento de Restrições
12
Interpretação
1 1
Aluno Curso
Qual é a diferença entre essas
quatro modelagens?
1 N
Aluno Curso
N 1
Aluno Curso
N M
Aluno Curso
13
BANCO DE DADOS
Cardinalidade
• Cardinalidade (mínima, máxima) de Relacionamentos:
14
Cardinalidades
0,n 1,1
pessoa lotação depto
15
16
Identificadores de Entidades
• Identificadores de entidades:
• Cada entidade deve possuir um identificador.
• Um identificador é um conjunto de um ou mais atributos (e
possivelmente relacionamentos), cujos valores servem para
distinguir uma ocorrência da entidade das demais
ocorrências da mesma entidade.
• CHAVE PRIMÁRIA / PK
17
Identificadores de Entidades
engenheiro Um só atributo
código nome
prateleira
Vários atributos
Capacidade numCorredor numPrat
18
ANSI/SPARC
American National Standards Institute, Standards
Planning And Requirements Committee
ANSI/SPARC
American National Standards Institute, Standards Planning
And Requirements Committee
Nível externo:
Especificação da organização conceitual do BD,
vista por um grupo de usuários;
Nível conceitual:
É uma descrição global da base de dados, que omite
detalhes da estrutura de armazenamento físico e se concentra na
descrição de entidades, tipos de dados, relacionamentos e restrições,
ou seja, o quê o BD armazena;
Requisitos
de
Dados
MODELAGEM
Levantamento dos
Requisitos de
Dados
Projeto Esquema
Conceitual Modelo Conceitual
Estrutura Conceitual
dos Entidade-
Dados Relacionam.
Orientado a Objetos, etc.
Projeto Esquema
Lógico Modelo de Lógico
Estrutura Lógica do Dados:
Banco de Relacional
Dados Objeto-Relacional
Orientado a Objetos, etc.
Projeto Esquema
Físico Características Físico
específicas do
Estruturas de SGBD alvo
Armazenamento e
Métodos de Acesso
MODELOS DE DADOS
Visão do Usuário
Análise Modelo
Conceitual
Projeto
Modelo
Lógico
Lógico
Projeto Modelo
Físico Físico
MODELO DE DADOS
APRESENTAÇÃO DE DADOS
É uma descrição( gráfica ou textual ) dos tipos
de informações que estão armazenadas em
um banco de dados.
| MODELO CONCEITUAL
MODELO DE DADOS
CONCEITUAL
É uma abstração de alto nível dos fatos
relevantes do mundo real que devem se
tornar persistentes (dados operacionais)
Identifica:
Objetos concretos (pessoa, livro etc.)
Objetos abstratos (conceitos) (endereço, pedido etc.)
MODELO DE DADOS
CONCEITUAL
Modela de forma mais natural os fatos do
mundo real, suas propriedades e seus
relacionamentos, independente de SGBD.
CONCEITUAL - SITUAÇÃO
A loja ABC pretende controlar o
estoque de seus produtos
juntamente com a venda dos
mesmos para os seus clientes,
também controlando o
pagamento destas vendas em
um sistema informatizado, pois
até então o controle é feito em
planilhas e isso acaba gerando
muitas inconsistências nas
informações.
Prof. Rafael Marcolin – rafael@marcolin.inf.br
BANCO DE DADOS
MODELO
MODELO DE DADOS
Para os CLIENTES, devemos armazenar dados como o Nome, RG, CPF, Nascimento, Endereço, Bairro, Cidade, UF, CEP.
Para cada VENDA, armazenaremos a Data da Venda, para quem foi vendido (cliente), os produtos vendidos com suas
devidas quantidades. Também devemos armazenar as parcelas desta venda, com seu devido valor e a data de
vencimento das mesmas, além dos registros de valor pagamento destas parcelas com suas devidas datas.
Qtd_ven
MODELO DE DADOS
CONCEITUAL | TEXTUAL
Cadastro de Clientes Dados necessários:
Nome do Cliente, Data de nascimento,
endereço, bairro, cidade, estado.
Cadastro de Produtos:
Nome do Produto, valor, quantidade, classe
| MODELO LÓGICO
LÓGICO
Objetivo
Detalhar tecnicamente o modelo conceitual,
indicando quais mecanismos serão utilizados para
que as necessidades levantadas possam ser
plenamente atendidas pelo SGDB
LÓGICO
LÓGICO
ENTIDADE “FORTE” OU NORMAL
Mapeando um relacionamento para nível lógico, há a transferência do identificador para a entidade dependente,
porém este identificador não faz parte do identificador da entidade dependente.
LÓGICO
ENTIDADE FRACA
LÓGICO
ENTIDADE FRACA
Quando a entidade é fraca, o identificador é transferido e também fará parte do identificador da entidade
dependente.
LÓGICO
LÓGICO
Relacionamento n:n
Qtd_ven
LÓGICO
Relacionamento n:n
VENDA
COD_VEN DATA_VEN VALOR_VEN COD_PROD
25 15/04/2016 90,00 ???
26 17/04/2016 52,00 ??? Através de uma terceira tabela,
denominada TABELA ASSOCIATIVA,
discriminando cada produto vendido em
PRODUTO_VENDIDO
cada venda.
COD_VEN COD_PROD
25 9
25 15
26 12
26 9
PRODUTO
COD_PROD DESC_PROD VALOR_PROD QTD_EST COD_VEN
9 PARAFUSO 1,20 25 ???
12 PREGO 9,00 45 ???
15 MARTELO 18,00 12 ???
LÓGICO
MODELO DE DADOS
LÓGICO | TEXTUAL
Classe
(Cod_Classe, Nome_Classe)
Produto
(Cod_Prod, Desc_Prod, Valor_prod, Qtd_Estoq, Cod_Classe)
CodClasse referencia Classe
| MODELO FÍSICO
FÍSICO
Objetivo
Gerar o código na linguagem SQL (Structured Query
Language) para que os objetos possam ser
implementados no SGDB
FÍSICO
CREATE TABLE ‘PRODUTO’ (
‘COD_PROD’ INT NOT NULL,
‘DESC_PROD’ VARCHAR(45) NOT NULL,
‘VALOR_PROD’ DOUBLE NOT NULL,
‘QTD_EST’ INT NOT NULL,
‘COD_CLA’ INT NOT NULL,
PRIMARY KEY (‘COD_PROD’)
INDEX ‘FK_COD_CLA_idx’ (‘COD_CLASSE’),
CONSTRAINT ‘FK_COD_CLA’ FOREING KEY (‘COD_CLASSE’)
REFERENCES ‘CLASSE’(‘COD_CLASSE’));