• Nenhum resultado encontrado

6 – Atividade Projetar Base de Dados

N/A
N/A
Protected

Academic year: 2019

Share "6 – Atividade Projetar Base de Dados"

Copied!
14
0
0

Texto

(1)

6 – Atividade

Projetar Base de Dados

Objetivos deste módulo

• Apresentar os passos necessários para

realizar a atividade projetar base de dados

e discutir seus artefatos

(2)

Projeto Orientado a Objetos 3

Projetar Base de Dados

O que foi feito até agora

• Identificação das classes de análise, seus atributos, responsabilidades e relacionamentos

• Mapeamento das classes de análise em elementos de projeto

• Identificação das oportunidades de reuso • Definição da organização do sistema • Definição da distribuição do sistema

• Refinamento das realizações dos casos de uso

(3)

Projeto Orientado a Objetos 5

Objetivos desta atividade

• Definir as estruturas que serão usadas para armazenar os dados persistentes, de acordo com o meio de armazenamento adotado • Otimizar essas estruturas de acordo com os

requisitos não funcionais do projeto e estimativas do volume de dados a ser manipulado

Considerações

• Vamos assumir um SGBD relacional como meio de armazenamento

• Passos para bancos orientados a objetos são similares; passos para outros meios de

armazenamento não estão contemplados • Levar em conta o modelo corporativo da

instituição e regras de nomenclatura

(4)

Projeto Orientado a Objetos 7

Visão geral dos artefatos

Passos para Projetar base de

dados

1. Mapear classes persistentes

2. Mapear relacionamentos das classes

persistentes

3. Identificar índices

(5)

Projeto Orientado a Objetos 9

Passo 1. Mapear classes

persistentes

• Mapear atributos em colunas

• Mapear classes em tabelas

• Identificar chaves

Mapear atributos em colunas

• Regra geral - mapear diretamente

– cada atributo transforma-se em uma coluna

• Atributos complexos - como mapear?

Clie nte

n o m e : Strin g te le fon e : Strin g

e n d ere co R e s ide n cial : End e re co

E nderec o

(6)

Projeto Orientado a Objetos 11

Cliente

n om e : Strin g te lefon e : Strin g

e nd ere c o Res ide nc ia l : En de re c o

Cliente

clienteID (PK) nom e telefone logradouro num ero cidade es tado país C EP

Mapear atributos em colunas

• Mapeamento de atributos complexos

Mapear atributos em colunas

• Considerar também os valores máximos e mínimos para cada atributo

• O atributo pode ser chave?

– Preferencialmente, um único atributo para chave – Chaves devem ser estáveis!

(7)

Projeto Orientado a Objetos 13

Mapear classes em tabelas

• Analisar as classes persistentes

• O mapeamento dificilmente será direto

– hierarquias de classes

P es s oa

nom e enderec o telefone

Fornec edor produto

Func ionario

s a la rio d a ta Inicio

h o ra s Tra b a lha d a s

Mapear classes em tabelas

(8)

Projeto Orientado a Objetos 15

Mapear classes em tabelas

• Estratégias de mapeamento

– uma única tabela para todas as classes da hierarquia

– uma tabela para cada classe da hierarquia – uma tabela para cada classe concreta da

hierarquia

Mapear classes em tabelas

P es s o a p e s s o a ID (P K )

P es s oa

nom e enderec o telefone

Fornec edor produto

Func ionario s a la rio da ta Inicio ho ras Tra b a lh a da s

(9)

Projeto Orientado a Objetos 17

das classes persistentes

• Relacionamentos 1 para 1

• Relacionamentos 1 para muitos

• Relacionamentos muitos para muitos

Relacionamentos 1 para 1

Funciona rio s alario dataIn icio

C arta oPonto h o ra sT ra b a l h a d a s 0 ..1

1

1 0 ..1

(10)

Projeto Orientado a Objetos 19

Relacionamentos 1 para 1

• Chaves estrangeiras - FK (

foreign key)

– se as classes tiverem relacionamentos com outras classes

• Fusão das tabelas

– se uma das classes for não persistente

• A decisão é caso-a-caso

Relacionamentos 1 para 1

Funcionario salario dataInicio CartaoPonto horasTrabalhadas 0..1 1 1 0..1 Funcionario pessoaID (PK,FK) salario dataInicio CartaoPonto cartaoPontoID (PK) horasTrabalhadas pessoaID (FK) Funcionario

(11)

Projeto Orientado a Objetos 21

Relacionamentos 1 para muitos

• Como mapear?

Ativid ad e

n om e Fu ncio n ario

s a lario

d a taI nicio 11 1 ..*1 ..*

Relacionamentos 1 para muitos

• Mapeados através de chaves estrangeiras • A chave estrangeira é inserida na tabela com

multiplicidade * do relacionamento

Atividade nome Funcionario

salario

dataInicio 11 1..*1..*

Atividade

atividadeID (PK) nome

pessoaID (FK)

Funcionario

pessoaID (PK,FK) sal ario

(12)

Projeto Orientado a Objetos 23

muitos

• Precisam de uma tabela extra para representar a associação Cliente clienteID (PK) nom e telefone enderecoRes idencial

Cli enteCont a clienteID (FK) contaID (FK) Cont a contaID (PK) num ero saldo Conta numero saldo Cliente nome telefone

enderecoResidencial : Endereco 1..*1..* 1..*1..*

Passo 3. Identificar índices

• Otimização de consultas

• Custo extra na inclusão, remoção e

atualização de dados

(13)

Projeto Orientado a Objetos 25

Que colunas indexar?

• Chaves primárias são sempre indexadas

• Consultas

x

operações de manutenção

(inclusão/atualização/remoção de dados)

• Analisar descrições dos casos de uso e

requisitos não funcionais

– freqüência das operações – requisitos de desempenho

Passo 4. Criar estruturas de

armazenamento

• Normalmente é feito por um DBA • Usar ferramenta como apoio • Envolve:

– criar a base de dados, tabelas, colunas, etc.

– definir índices para as chaves primárias e restrições de integridade para chaves primárias e estrangeiras (se a ferramenta não criar automaticamente)

– restrições relacionadas a regras de negócio não são implementadas pelo banco

(14)

Projeto Orientado a Objetos 27

atividade

1. Mapear classes persistentes

2. Mapear relacionamentos das classes

persistentes

3. Identificar índices

Referências

Documentos relacionados

Este trabalho é resultado de uma pesquisa quantitativa sobre a audiência realizada em 1999 envolvendo professores e alunos do Núcleo de Pesquisa de Comunicação da Universidade

a) O polícia disse um palavrão, após ter saído da casa de Adrian. Corrige as falsas.. A mãe também está com gripe. “Quase que não consegui ficar calado quando vi que não

As ativistas, ao redimensionarem o modelo de relação afetiva convencional, geraram zonas de conflitos raciais [mulheres negras ativistas x mulheres brancas] e de gênero, com

• Árvores são ideais para armazenar hierarquias, além de serem mais rápidas e eficientes do que as estruturas de dados lineares... • É formada por um “conjunto de

– Os elementos devem estar ordenados – Realizar a busca pelo meio do vetor.

• Estas árvore podem assumir diferentes formas quando criadas ou modificadas. – A ordem de inserção ou remoção influem no formato

– Um nó aponta para o seu primeiro filho (prim) – Cada filho aponta para o próximo (prox) irmão.. • Representação de um nó

9)Escreva uma função que recebe como parâmetros um vetor de inteiros v, onúmero de elementos dele N e ponteiros para variáveis nas quais devem ser armazenados os valores maximo