20
1 Modelo de Dados Professores Professores Edson E. Scalabrin Marcos A. H. Shmeil telefone: 0xx41-330-1786 e-mail: {scalabrin, shm}@ppgia.pucpr.br download: http://www.ppgia.pucpr.br/~{scalabrin, shm}

Modelo de Dados

  • Upload
    wilda

  • View
    25

  • Download
    0

Embed Size (px)

DESCRIPTION

Modelo de Dados. Professores Edson E. Scalabrin Marcos A. H. Shmeil telefone: 0xx41-330-1786 e-mail: {scalabrin, shm}@ppgia.pucpr.br download : http://www.ppgia.pucpr.br/~{scalabrin, shm}. Modelo de Dados. Objetivo - PowerPoint PPT Presentation

Citation preview

Page 1: Modelo de Dados

1

Modelo de Dados ProfessoresProfessores Edson E.

ScalabrinMarcos A. H. Shmeil

telefone: 0xx41-330-1786e-mail: {scalabrin, shm}@ppgia.pucpr.br

download: http://www.ppgia.pucpr.br/~{scalabrin, shm}

Page 2: Modelo de Dados

2

Modelo de Dados

ObjetivoObjetivo• introduzir os principais introduzir os principais

conceitos do modelo de dados conceitos do modelo de dados relacional e dimensionalrelacional e dimensional

Page 3: Modelo de Dados

3

Modelo de Dados Sistemas Operacionais: Sistemas Operacionais: Geralmente implementados Geralmente implementados

através de banco de dados relacionais.através de banco de dados relacionais. Sistemas Analíticos: Sistemas Analíticos: Geralmente implementados através Geralmente implementados através

de um banco de dados dimensional.de um banco de dados dimensional.

SISTEMA OPERACIONAL SISTEMA ANALÍTICO

PROJETOTOP-DOWN

PROJETOBOTTOM-UP

Page 4: Modelo de Dados

4

Banco de DadosBanco de Dados

Modelo RelacionalModelo Relacional

Page 5: Modelo de Dados

5

Modelo RelacionalModelo Relacional

P00001 PALIO FIAT PASSEIO 12.000,00 18.000,00

P00002 K FORD PASSEIO 7.000,00 14.000,00

P00003 C10 FORD CARGA 18.000,00 27.000,00

Chave Produto Descrição Marca Categoria Preço Compra Preço VendaTABELA DE PRODUTO

L001 Av. Sete de Setembro, 2032 Só Passeio Ltda.

L002 Av. Visconde de Guarapuava, 4 Bom Negócio Ltda.

Chave Loja Endereço NomeTABELA DE LOJA

V00001 P00003 L001 1 0001 01/06/01

Chave Venda Chave Produto Chave Loja Quantidade Nota Fiscal DataTABELA DE VENDA

V00002 P00001 L002 1 0002 03/06/01

V00003 P00001 L002 1 0003 10/06/01

Page 6: Modelo de Dados

6

RelacionamentoRelacionamento No modelo relacional, as tabelas mantém um relacionamento entre

si. No exemplo abaixo, os registros da tabela venda se relacionam com os registros das tabelas loja e produto.

ba

23

4loja

venda No modelo relacional os dados do produto não

precisam ser duplicados para cada registro de venda.

Y

X

produto

1

Page 7: Modelo de Dados

7

Implementação Física do Implementação Física do RelacionamentoRelacionamento

P00001 PALIO FIAT PASSEIO 12.000,00 18.000,00

P00002 K FORD PASSEIO 7.000,00 14.000,00

P00003 C10 FORD CARGA 18.000,00 27.000,00

Chave Produto Descrição Marca Categoria Preço Compra Preço VendaTABELA DE PRODUTO

L001 Av. Sete de Setembro, 2032 Só Passeio Ltda.

L002 Av. Visconde de Guarapuava, 4 Bom Negócio Ltda.

Chave Loja Endereço NomeTABELA DE LOJA

V00001 P00003 L001 1 0001 01/06/01

Chave Venda Chave Produto Chave Loja Quantidade Nota Fiscal DataTABELA DE VENDA

V00002 P00001 L002 1 0002 03/06/01

V00003 P00001 L002 1 0003 10/06/01

Os relacionamentos são implementados fisicamente através do relacionamento das chaves primárias de cada tabela que compõe o relacionamento.

Chave Estrangeira

Page 8: Modelo de Dados

8

Formas NormaisFormas Normais Regras desenvolvidas para:Regras desenvolvidas para:

• Evitar inconsistências lógicas nas operações de atualização Evitar inconsistências lógicas nas operações de atualização das tabelas.das tabelas.

• Evitar redundância na organização das tabelas.Evitar redundância na organização das tabelas.

Primeira Forma Normal

SegundaForma Normal

TerceiraForma Normal

Diminui o desempenho

Aumenta as restrições

Page 9: Modelo de Dados

9

Primeira Forma Normal – Primeira Forma Normal – 1FN1FN

Definição: Definição: o domínio de todos os atributos das tabelas deve ser atômico (indivisível)• Cada coluna da tabela deve conter só um tipo de atributos

Id-pessoaId-pessoa nome contatoTabela Pessoa

Id-pessoaId-pessoa nome endereçoTabela Pessoa telefone

NãoSatisfaz1FN

Satisfaz 1FN

Brigadeiro [email protected]

email

Page 10: Modelo de Dados

10

Segunda Forma Normal – Segunda Forma Normal – 2FN2FN

Definição: cada tabela deve satisfazer a 1FN, cada registro deve ter uma chave primária e cada campo não chave deve depender totalmente da chave primária.

Id-pessoaId-pessoa nome endereço conta saldoNão Satisfaz 2FN

Satisfaz 2FN

agência endereço-agência

os campos dependem apenas de parte da chave primária, alguns apenas de conta outros apenas de id_pessoa

chave primária: id_pessoa, conta

conta saldo agência endereço-agência

Id-pessoaId-pessoa nome endereço contachave primária: id_pessoa

chave primária: conta

Page 11: Modelo de Dados

11

Terceira Forma Normal – Terceira Forma Normal – 3FN3FN

Definição: cada tabela deve satisfazer a 2FN e cada atributo não chave primária depende diretamente da chave primária.

Não Satisfaz 3FN

Satisfaz 3FN

endereço-agência

conta saldo agência endereço-agência

Id-pessoaId-pessoa nome endereço conta

o endereço da agência não depende da conta, mas da agência.

conta saldo agência

agência

Page 12: Modelo de Dados

12

IntegridadeIntegridade Devem ser observados dois tipos de integridade:Devem ser observados dois tipos de integridade:

• a) a) Integridade de Entidades (cada tabela deve ter (cada tabela deve ter exatamente uma chave primária)exatamente uma chave primária)

• b) b) Integridade Referencial (cada chave estrangeira deve (cada chave estrangeira deve ser consistente com sua chave primária correspondente)ser consistente com sua chave primária correspondente)

Id-pessoa nome endereço Id-empresa

Id-empresa nome-da-empresa endereço

Tabela Empresa

Tabela Pessoa

Chave estrangeiraChave

primária

Page 13: Modelo de Dados

13

Integridade ReferencialIntegridade Referencial.. O valor da chave estrangeira deve existir na tabela empresa ou

ser NULO. Quando um registro da tabela empresa for excluído, todas os

registros da tabela pessoa que façam referência a esse registro devem ter o valor da sua chave estrangeira alterado para NULO.

id-pessoa nome endereço id-empresa

id-empresa nome-da-empresa endereço

TABELA EMPRESA

TABELA PESSOA

1 Adão Paraíso 2

2 Só Maçã S/A. Botas Perdidas

2 Eva Paraíso 2

Page 14: Modelo de Dados

14

Características do Modelo Características do Modelo RelacionalRelacional

Reduz a redundância das informações armazenadas, diminuindo o Reduz a redundância das informações armazenadas, diminuindo o espaço total gasto para armazenar-las.espaço total gasto para armazenar-las.

Simplifica significativamente as operações de escrita, tanto na Simplifica significativamente as operações de escrita, tanto na inserção de novas informações quanto a alteração de informações inserção de novas informações quanto a alteração de informações existentes.existentes.

Complica as operações de leitura. Quanto mais normalizado for o Complica as operações de leitura. Quanto mais normalizado for o modelo do banco de dados operacional, mais lenta e trabalhosa será modelo do banco de dados operacional, mais lenta e trabalhosa será a operação de leitura.a operação de leitura.

1a FORMANORMAL

2a FORMANORMAL

3a FORMANORMAL

Redução no volume de dados e aumento

da consistência

Desempenho na leitura

Page 15: Modelo de Dados

15

Modelo Relacional: Modelo Relacional: ConclusõesConclusões

Operação: ESCRITA:Operação: ESCRITA: • Apenas um pequeno número de registros precisa ser alterado. Apenas um pequeno número de registros precisa ser alterado. • Por exemplo, para associar uma nova conta ao usuário os dados Por exemplo, para associar uma nova conta ao usuário os dados

do usuário não precisam ser recadastrados.do usuário não precisam ser recadastrados.Operação: LEITURA:Operação: LEITURA:

• Várias tabelas precisam ser associadas para obter a resposta. Várias tabelas precisam ser associadas para obter a resposta. • Por exemplo, para obter o faturamento total que uma loja obteve Por exemplo, para obter o faturamento total que uma loja obteve

com um dado produto, num dado período. com um dado produto, num dado período.

ESCRITA LEITURA

Page 16: Modelo de Dados

16

Banco de DadosBanco de Dados

Modelo DimensionalModelo Dimensional

Page 17: Modelo de Dados

17

Modelo DimensionalModelo Dimensional Considere a seguinte afirmativa.Considere a seguinte afirmativa.

• “Nós vendemos produtos em vários mercados, e nós medimos nosso desempenho ao longo do tempo”.

O modelo de dados mais adequado para representar diversas O modelo de dados mais adequado para representar diversas relações entre grandezas é o modelo dimensional.relações entre grandezas é o modelo dimensional.

TEMPO

MERCADO

PRODUTO

Cada ponto do cubo representa uma combinação de

Produto, Mercado e Tempo armazenado.

Page 18: Modelo de Dados

18

Modelo Dimensional:Modelo Dimensional:Esquema em EstrelaEsquema em Estrela O projeto de um banco de dados dimensional é do tipo O projeto de um banco de dados dimensional é do tipo top-downtop-down, isto é, ele é projetado a partir do tipo de , isto é, ele é projetado a partir do tipo de análise que se quer efetuar.análise que se quer efetuar.

Chave-tempodia-da-semanamêsquadrimestreanoflag-feriado

Chave-tempoChave-produtoChave-lojareais-faturadosunidades-vendidasreais-gastos

Chave-produtodescriçãomarcacategoria

Chave-lojanome-da-lojaendereçotipo-de-planta-da-loja

DIMENSÃO TEMPO

ANÁLISE DE VENDAS(TABELA DE FATOS)

DIMENSÃO PRODUTO

DIMENSÃO LOJA

Page 19: Modelo de Dados

19

Modelo Dimensional:Modelo Dimensional:Esquema em Floco de NeveEsquema em Floco de Neve

Chave-tempodia-da-semanamêsquadrimestreanoflag-feriado

Chave-tempoChave-produtoChave-lojareais-faturadosunidades-vendidasreais-gastos

Chave-produtodescriçãomarcaChave-categoria

Chave-lojanome-da-lojaendereçotipo_de_planta_da_loja

DIMENSÃO TEMPOANÁLISE DE VENDAS(TABELA DE FATOS)

DIMENSÃO PRODUTO

DIMENSÃO LOJAChave-categoriacategoria

Page 20: Modelo de Dados

20

Modelo Dimensional: Modelo Dimensional: ConclusõesConclusõesOperações:

• ESCRITA: Não pode ser utilizado, pois não guarda os registros na forma de unidades.

• LEITURA: Rápida, pois a consulta é feita basicamente em uma única tabela.

Características dos Bancos Analíticos:• A dimensão de tempo é definida de acordo com uma granularidade pré-

definida: dia, semana, mês. Ela não reflete o instante em que as operações individuais foram efetuadas.

• O projeto é top-down, isto é, a tabela central parte do objetivo final da análise.

• Não contém necessariamente todos os atributos relativos aos dados, apenas os que interessam para análise.

• Não é adequado para efetuar transações operacionais.