Aula projetologico

36
Projeto L´ogico de Bancos de Dados

Transcript of Aula projetologico

Page 1: Aula projetologico

'

&

$

%

Projeto Logico de Bancos de Dados

Page 2: Aula projetologico

'

&

$

%

Projeto de Bancos de Dados

Modelos de Dados

• Conceituais ou de Alto Nıvel : Modelo ER,ModelosSematicos,OMT Class Diagram

• De representacao ou de implementacao

– Orientados a Objetos: O2, Objeto-Relacional

– Orientados a Tupla: Relacional

• Fısico ou de Baixo Nıvel

– Metodos de acesso: ISAM etc.

– API: B-Trive etc.

Page 3: Aula projetologico

'

&

$

%

Projeto - Visao Geral

Mini-Mundo

Análise de Requisitos

Requisitos de BD

Projeto Conceitual

Esquema Conceitual em um modelo de dados de alto nível

Projeto Lógico

Esquema Lógico em um modelo de nível lógico

Projeto Físico

Esquema Físco para um SGBD específico

Requisitos Funcionais

Análise Funcional

Especificação das Transações em alto nível

Projeto de Aplicações

Implementações

Programas

Independente de SGBD

Específico para um SGBD

Page 4: Aula projetologico

'

&

$

%

Projeto Logico

Mapear esquemas conceituais para esquemas logicos

Modelos conceituais: ER, EER, UML Class Diagram

Modelos logico: Relacional, Objeto-Relacional, Hierarquico

Page 5: Aula projetologico

'

&

$

%

Projeto Logico - Objetivos

• Implementar em um SGBD especıfico o projeto conceitual, oqual, supoe-se, captura corretamente os requisitos da aplicacao.

• Mapeamento: Representar as construcoes do esquemaconceitual usando construcoes do modelo logico.

• Manter requisitos originais...nem sempre e possıvel

Page 6: Aula projetologico

'

&

$

%

Projeto Logico - Lacuna Semantica

• Diferenca de poder de expressividade entre os modelos do nıvelconceitual e o do nıvel logico.

• Nem sempre e possıvel garantir todos os requisitos do esquemaconceitual no esquema logico.

• Em alguns casos, o custo do mapeamento nao e compensador,mesmo sendo possıvel.

• Exemplo: mapeamento de herancas

Page 7: Aula projetologico

'

&

$

%

Projeto Logico - Principais Tarefas

• Mapeamento de Tipos de Entidade

• Mapeamento de Tipos Relacionamentos

• Mapeamento de Especializacoes/Generalizacoes

• Geracao de restricoes de integridade

• Definicao de esquemas externos via visoes (opcional)

Page 8: Aula projetologico

'

&

$

%

Passo 1 : Tipos de Entidade

• Para cada tipo de entidade regular E no esquema ER, criar uma relacao R

que inclui todos os atributos simples de E

• Com relacao aos atributos compostos, incluir somente os atributos

simples em R

• Escolher um dos atributos chave de E com chave primaria de R.

Exemplo: Mapeamento dos tipos de entidade EMPLOYEE, DEPARTMENT e PROJECT

Page 9: Aula projetologico

'

&

$

%

Passo 2 : Tipos de Entidade Fraca

• Para cada tipo de entidade fraca W no esquema ER, criar uma relacao R,

e incluir todos os atributos simples (ou todos os componentes simples dos

atributos compostos) de W como atributos de R

• Para cada tipo de entidade E dono de W , tal que P e a relacao que

representa E e K a chave primaria de P, incluir os atributos de K em R e

definir com eles uma chave estrangeira em R referenciando P

• Definir como chave primaria de R a combinacao das chaves primarias dos

donos e da chave parcial de W, se houver

• Este passo resolve o mapeamento de tipos de relacionamento que

envolvem entidades fracas

Exemplo: Mapeamento do tipo de entidade DEPENDENT

Page 10: Aula projetologico

'

&

$

%

Passo 3 : Tipos de Relacionamento 1:1

• Para cada tipo de relacionamento binario 1:1 R no esquema ER,

identificar as relacoes S e T que correspondem aos tipos de entidade

participantes de R. Escolher uma das relacoes, digamos S, e incluir como

chave estrangeira em S a chave primaria de T

• Incluir todos os atributos simples de R como atributos de S

• Preferencialmente, o participante escolhido deve ser aquele com

participacao total no tipo de relacionamento

• Alternativamente, se os dois participantes tem participacao total e se nao

participam de outros tipos de relacionamento, pode-se representar os dois

tipos de entidade e o tipo de relacionamento na mesma relacao

Exemplo: Mapeamento do tipo de relacionamento MANAGES entre EMPLOYEE e

MANAGES

Page 11: Aula projetologico

'

&

$

%

Passo 4 : Tipos de Relacionamento 1:N

• Para cada tipo de relacionamento binario 1:N R no esquema ER, que nao

envolva entidade fraca, identificar a relacao S que corresponde ao tipo de

entidade participante de R que esta no “lado” N

• Incluir como chave estrangeira de S a chave primaria da relacao T que

representa o outro tipo de entidade participante de R

• Incluir todos os atributos simples de R como atributos de S

• Preferencialmente, o participante escolhido deve ser aquele com

participacao total no tipo de relacionamento

• Alternativamente, se os dois participantes tem participacao total e se nao

participam de outros tipos de relacionamento, pode-se representar os dois

tipos de entidade e o tipo de relacionamento na mesma relacao

Exemplo: Mapeamento do tipo de relacionamento WORKS FOR, CONTROLS e

SUPERVISION

Page 12: Aula projetologico

'

&

$

%

Passo 5: Tipos de Relacionamento M:N

• Para cada tipo de relacionamento binario M:N R no esquema ER, criar

uma nova relacao S para representar R

• Incluir como chaves estrangeiras de S as chaves primarias das relacoes

que representam os tipos de entidade participantes de R

• Definir a chave primaria de S como sendo a combinacao destas chaves

estrangeiras

• Incluir todos os atributos simples, ou atributos componentes simples de

atributos compostos, de R como atributos de S

• Note que poderiamos representar da mesma maneira tipos de

relacionamento 1:1 e 1:N

Exemplo: Mapeamento do tipo de relacionamento WORKS ON

Page 13: Aula projetologico

'

&

$

%

Passo 6: Atributos Multivalorados

• Para cada atributo multivalorado A, criar uma nova relacao R que inclui

um atributo correspondente a A

• Definir como chave estrangeira de R a chave primaria K da relacao que

representa o tipo entidade para o qual o atributo A esta definido

• A chave primaria de A e composta pelo atributo A mais os atributos da

chave K

• Se A e tambem um atributo composto, incluir somente seus componentes

Exemplo: Mapeamento do atributo DLOCATION do tipo de entidade DEPARTMENT

Page 14: Aula projetologico

'

&

$

%

Passo 7: Tipos de Relacionamento Nao-Binarios

• Para cada tipo de relacionamento R n-ario, sendo n> 2, criar uma nova

relacao S para representar R

• Incluir como chaves estrangeiras em S as chaves primarias das relacoes

que representam os tipos de entidade participantes

• Incluir todos os atributos simples, ou atributos componentes simples de

atributos compostos, de R como atributos de S

• A chave primaria de S e geralmente composta pela combinacao de todas

as chaves estrangeiras que referenciam as relacoes que representam os

tipos de entidade participantes

• A chave primaria de S pode ser composta somente pela chave estrangeira

que referencia a relacao que representa o tipo de entidade que participa

com cardinalidade 1 em R

Exemplo: Tipo de relacionamento SUPPLY entre SUPLIER, PROJECT e PART

Page 15: Aula projetologico

'

&

$

%

Relacionamentos Ternarios

Atividade

Sala Horário Ocorre

?

? ?

• Quantas Atividades podem ser alocadas em uma mesma Sala no mesmo

Horario?

• Em quantas Salas uma mesma Atividade pode ocorrer no mesmo Horario?

• Em quantos Horarios uma mesma Atividade pode ocorrer na mesma Sala?

Page 16: Aula projetologico

'

&

$

%

Relacionamentos Ternarios

Occorre

NumSala OrdemHor

2010 2

2010 2

NomeAtv

Palesta A

Palestra B

2010 3 Palestra A

2011 3 Palestra A

Atividade

Sala Horário Ocorre 1 1

Page 17: Aula projetologico

'

&

$

%

Relacionamentos Ternarios

Occorre

NumSala OrdemHor

2010 2

2010 2

NomeAtv

Palesta A

Palestra B

2010 3 Palestra A

2011 3 Palestra A

Atividade

Sala Horário Ocorre 1 1

Page 18: Aula projetologico

'

&

$

%

Passo 8: Especializacoes/Generalizacoes

• Restricoes

• Particao da super classe

• Disjuncao das subclasses

• Opcoes de mapeamento

• 1-para-1: uma tabela diferente p/ a super classe e para cada subclasse

• Otimizado: uma mesma tabela p/ super classe e subclasses

• Herancas multiplas

Page 19: Aula projetologico

'

&

$

%

Subclasses com Particao e Disjuncao

Page 20: Aula projetologico

'

&

$

%

Subclasses sem Particao e com Disjuncao

Page 21: Aula projetologico

'

&

$

%

Subclasses com Particao e sem Disjuncao

Page 22: Aula projetologico

'

&

$

%

Subclasses sem Particao e sem Disjuncao

Page 23: Aula projetologico

'

&

$

%

Grupos de Sub-classes

Page 24: Aula projetologico

'

&

$

%

Sem Particao e Sem Disjuncao - 1 para 1

Page 25: Aula projetologico

'

&

$

%

Com Disjuncao e Sem Particao - 1 para 1

Page 26: Aula projetologico

'

&

$

%

Com Particao e Sem Disjuncao - 1 para 1

Page 27: Aula projetologico

'

&

$

%

Com Particao e Com Disjuncao - 1 para 1

Page 28: Aula projetologico

'

&

$

%

Mapeamento de Herancas: Otimizado

• Atributos discriminantes: Indicam a pertinencia a umasub-classe

• Todas as instancias das sub-classe tem um valor determinadopara o atributo

• Nativo X Imposto

• Caracterıstico X Compartilhado

Page 29: Aula projetologico

'

&

$

%

Atributo Discriminante Imposto

Page 30: Aula projetologico

'

&

$

%

Sem Particao e Sem Disjuncao - Otimizado

Page 31: Aula projetologico

'

&

$

%

Sem Particao e Com Disjuncao - Otimizado

Page 32: Aula projetologico

'

&

$

%

Com Particao e Sem Disjuncao - Otimizado

Page 33: Aula projetologico

'

&

$

%

Com Particao e Com Disjuncao - Otimizado

Page 34: Aula projetologico

'

&

$

%

Otimizado

Page 35: Aula projetologico

'

&

$

%

Otimizado

Page 36: Aula projetologico

'

&

$

%

Otimizado