Você está na página 1de 44

BANCO DE DADOS

AULA 3

PROJETO DE BANCO DE DADOS


MODELAGEM

Prof. Rafael Marcolin – rafael@marcolin.inf.br


BANCO DE DADOS

Por que modelar?

• Geralmente, os projetistas se apoiam pouco em


metodologias sistemáticas para conduzir o projeto da Base
de Dados;
• Como conseqüências tem-se:
• Tempo e recursos são subestimados;
• Resultado não atende às necessidades das aplicações;
• Documentação é limitada;
• Manutenção custosa.

Prof. Rafael Marcolin – rafael@marcolin.inf.br


BANCO DE DADOS

Modelo Entidade
Relacionamento

› Graficamente: diagrama ER;


› 1976: Peter Chen;

Prof. Rafael Marcolin – rafael@marcolin.inf.br


BANCO DE DADOS

Conceitos Básicos
• Entidades;
• Relacionamentos;
• Atributos;
• Cardinalidades.

Prof. Rafael Marcolin – rafael@marcolin.inf.br


BANCO DE DADOS

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

Prof. Rafael Marcolin – rafael@marcolin.inf.br


BANCO DE DADOS

Relacionamentos

• Relacionamento: conjunto de associações entre objetos


• Exemplos: quais pessoas estão associadas a quais
departamentos
• Representação Gráfica:
• Exemplo:
pessoa lotação depto

Prof. Rafael Marcolin – rafael@marcolin.inf.br


BANCO DE DADOS

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

Prof. Rafael Marcolin – rafael@marcolin.inf.br


BANCO DE DADOS

Atributos

0,n 0,n
engenheiro atuação projeto

nome função título

• Atributos de entidade;
• Atributos de relacionamento.

Prof. Rafael Marcolin – rafael@marcolin.inf.br


BANCO DE DADOS

Exercícios: Identifique (DER) as entidades e


os relacionamentos nas descrições de
domínio:

• 1) Um cliente realiza compra de determinados


produtos. Estes produtos são fornecidos por certos
distribuidores;
• 2) Um curso de graduação possui várias disciplinas
em seu currículo. Os alunos estão matriculados nos
cursos de graduação.

Prof. Rafael Marcolin – rafael@marcolin.inf.br


BANCO DE DADOS

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

Prof. Rafael Marcolin – rafael@marcolin.inf.br


BANCO DE DADOS

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.

– Um para um: uma entidade em A está associada no


máximo a uma entidade em B, e uma entidade em B
está associada a no máximo uma entidade em A;

– Um para muitos: Uma entidade em A está associada a


várias entidades em B. Uma entidade em B deve estar
associada no máximo a uma entidade em A;

11

Prof. Rafael Marcolin – rafael@marcolin.inf.br


BANCO DE DADOS

Mapeamento de Restrições

– Muitos para um: Uma entidade em A está


associada a no máximo uma entidade em B.
Uma entidade em B, pode estar associada a um
número qualquer de entidades em A;

– Muitos para muitos: Uma entidade em A está


associada a qualquer número de entidades em
B e uma entidade em B está associada a um
número qualquer de entidades em A.

12

Prof. Rafael Marcolin – rafael@marcolin.inf.br


BANCO DE DADOS

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

Conjunto relacionamento: Participa

13
BANCO DE DADOS

Cardinalidade
• Cardinalidade (mínima, máxima) de Relacionamentos:

– Número (mínimo, máximo) de ocorrências de entidade


associadas a uma ocorrência da entidade em questão
através do relacionamento;

– Quantas ocorrências de uma entidade podem estar


associadas a uma determinada ocorrência através do
relacionamento.

14

Prof. Rafael Marcolin – rafael@marcolin.inf.br


BANCO DE DADOS

Cardinalidades
0,n 1,1
pessoa lotação depto

• Uma pessoa está lotada a um e somente um


depto;
• Um depto pode possuir zero ou vários
empregados;
• Geralmente, são representados nos DER
apenas as cardinalidades máximas.

15

Prof. Rafael Marcolin – rafael@marcolin.inf.br


BANCO DE DADOS

Exercícios: Identifique (DER) as entidades,


relacionamentos e cardinalidade mínima e
máxima
› Aluno x curso;
› Empregado x dependente;
› Empregado x supervisor;
› Engenheiro x projeto;
› Médico x paciente;
› Peça x fornecedor.

16

Prof. Rafael Marcolin – rafael@marcolin.inf.br


BANCO DE DADOS

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

Prof. Rafael Marcolin – rafael@marcolin.inf.br


BANCO DE DADOS

Identificadores de Entidades

engenheiro Um só atributo

código nome

prateleira
Vários atributos
Capacidade numCorredor numPrat

18

Prof. Rafael Marcolin – rafael@marcolin.inf.br


BANCO DE DADOS
MODELO DE DADOS
MODELO DE DADOS

ANSI/SPARC
American National Standards Institute, Standards
Planning And Requirements Committee

A meta desta arquitetura é separar as aplicações


de usuários da base de dados física.

Ela é composta é composta pelos níveis:


Externo | Conceitual | Interno/Físico.

Prof. Rafael Marcolin – rafael@marcolin.inf.br


BANCO DE DADOS
MODELO DE DADOS

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;

Nível físico ou interno:


Especificação das estruturas de armazenamento do BD, ou seja, como o BD está armazenando;

Prof. Rafael Marcolin – rafael@marcolin.inf.br


BANCO DE DADOS
REPRESENTAÇÃO

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

Prof. Rafael Marcolin – rafael@marcolin.inf.br


BANCO DE DADOS
REPRESENTAÇÃO

MODELOS DE DADOS

Visão do Usuário

Análise Modelo
Conceitual

Projeto
Modelo
Lógico
Lógico

Projeto Modelo
Físico Físico

Prof. Rafael Marcolin – rafael@marcolin.inf.br


BANCO DE DADOS
MODELO DE DADOS

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.

São as Entidades, Atributos, Relacionamentos e cardinalidades


pertinentes aos dados.

Prof. Rafael Marcolin – rafael@marcolin.inf.br


BANCO DE DADOS

| MODELO CONCEITUAL

Prof. Rafael Marcolin – rafael@marcolin.inf.br


BANCO DE DADOS
MODELO

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.)

Prof. Rafael Marcolin – rafael@marcolin.inf.br


BANCO DE DADOS
MODELO

MODELO DE DADOS

CONCEITUAL
Modela de forma mais natural os fatos do
mundo real, suas propriedades e seus
relacionamentos, independente de SGBD.

Prof. Rafael Marcolin – rafael@marcolin.inf.br


BANCO DE DADOS
MODELO
MODELO DE DADOS

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

CONCEITUAL | GRÁFICO Modelo Entidade-Relacionamento (Peter Chen)


 Para os PRODUTOS da loja ABC é necessário armazenar características como nome, valor, quantidade e a sua classe
(higiene, vestuário, frios, limpeza)

 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

Prof. Rafael Marcolin – rafael@marcolin.inf.br


BANCO DE DADOS
MODELO DE DADOS

CONCEITUAL | GRÁFICO Modelo Entidade-Relacionamento (Peter Chen)

 Uma variação da simbologia clássica.

 Nesta variação os atributos são acomodados dentro das entidades.

Prof. Rafael Marcolin – rafael@marcolin.inf.br


BANCO DE DADOS
MODELO

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

Prof. Rafael Marcolin – rafael@marcolin.inf.br


BANCO DE DADOS

| MODELO LÓGICO

Prof. Rafael Marcolin – rafael@marcolin.inf.br


BANCO DE DADOS
MODELO DE DADOS

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

Prof. Rafael Marcolin – rafael@marcolin.inf.br


BANCO DE DADOS
MODELO DE DADOS

LÓGICO

Prof. Rafael Marcolin – rafael@marcolin.inf.br


BANCO DE DADOS
MODELO DE DADOS

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.

MODELO CONCEITUAL MODELO LÓGICO

Prof. Rafael Marcolin – rafael@marcolin.inf.br


BANCO DE DADOS
MODELO DE DADOS

LÓGICO

ENTIDADE FRACA

Prof. Rafael Marcolin – rafael@marcolin.inf.br


BANCO DE DADOS
MODELO DE DADOS

LÓGICO
ENTIDADE FRACA
 Quando a entidade é fraca, o identificador é transferido e também fará parte do identificador da entidade
dependente.

MODELO CONCEITUAL MODELO LÓGICO

Prof. Rafael Marcolin – rafael@marcolin.inf.br


BANCO DE DADOS
MODELO DE DADOS

LÓGICO

Prof. Rafael Marcolin – rafael@marcolin.inf.br


BANCO DE DADOS
MODELO DE DADOS

LÓGICO
Relacionamento n:n

Qtd_ven

Prof. Rafael Marcolin – rafael@marcolin.inf.br


BANCO DE DADOS
MODELO DE DADOS

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

Prof. Rafael Marcolin – rafael@marcolin.inf.br


BANCO DE DADOS
MODELO DE DADOS

LÓGICO

Prof. Rafael Marcolin – rafael@marcolin.inf.br


BANCO DE DADOS
MODELO

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

Prof. Rafael Marcolin – rafael@marcolin.inf.br


BANCO DE DADOS

| MODELO FÍSICO

Prof. Rafael Marcolin – rafael@marcolin.inf.br


BANCO DE DADOS
MODELO DE DADOS

FÍSICO
Objetivo
Gerar o código na linguagem SQL (Structured Query
Language) para que os objetos possam ser
implementados no SGDB

Prof. Rafael Marcolin – rafael@marcolin.inf.br


BANCO DE DADOS
MODELO DE DADOS

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’));

CREATE TABLE ‘CLASSE’ (


‘COD_CLA’ INT NOT NULL,
‘NOME_CLA’ VARCHAR(45) NOT NULL,
PRIMARY KEY (‘COD_CLA’));

Prof. Rafael Marcolin – rafael@marcolin.inf.br

Você também pode gostar