derivação do modelo lógico

Post on 30-Oct-2014

180 Views

Category:

Documents

1 Downloads

Preview:

Click to see full reader

TRANSCRIPT

Aloísio de Meneses Maciel1.1Conceitos de Banco de Dados

Aplicação de regras sobre o Modelo Conceitual.

Age sobre dois grupos distintos:

As entidades e seus atributos;

As estruturas de relacionamento , agregação e especialização.

Objetivo:

Obtenção do Modelo Lógico baseado na abordagem conceitual.

Derivação do Modelo LógicoDerivação do Modelo Lógico

Aloísio de Meneses Maciel1.2Conceitos de Banco de Dados

Passos para a Obter o Modelo LógicoPassos para a Obter o Modelo Lógico

Para obter o Modelo Lógico a partir do Modelo Conceitual deve-se seguir os seguintes passos:

Obter o Modelo Conceitual;

Definir o tipo de implementação (Relacional);

Aplicar as regras de derivação;

Adaptar o Modelo às necessidades.

Aloísio de Meneses Maciel1.3Conceitos de Banco de Dados

Derivação de EntidadesDerivação de Entidades

No geral, uma entidade deriva uma tabela.

Aloísio de Meneses Maciel1.4Conceitos de Banco de Dados

É a representação de regras de integridade a partir dos relacionamentos do Modelo Conceitual.

Nesta abordagem deve-se preocupar apenas com o grau máximo do relacionamento. O grau mínimo deve ser ignorado.

Derivação de RelacionamentosDerivação de Relacionamentos

Aloísio de Meneses Maciel1.5Conceitos de Banco de Dados

Derivação de RelacionamentosDerivação de Relacionamentos

Podem ser:Relacionamentos 1:1 sem Atributos;

Relacionamentos 1:1 com Atributos;

Relacionamentos 1:N sem Atributos;

Relacionamentos 1:N com Atributos;

Relacionamentos M:N com ou sem Atributos;

Auto-relacionamento 1:1

Auto-relacionamento 1:N

Auto-relacionamento M:N

Aloísio de Meneses Maciel1.6Conceitos de Banco de Dados

Relacionamentos 1:1 sem AtributosRelacionamentos 1:1 sem Atributos

É o caso mais elementar de relacionamento;

Possui quatro alternativas possíveis de derivação.

A1

R B1

Aloísio de Meneses Maciel1.7Conceitos de Banco de Dados

Relacionamentos 1:1 sem AtributosRelacionamentos 1:1 sem Atributos

SOLUÇÃO 1: acrescentar a chave da TABELA A como chave estrangeira na TABELA B.

A1

R1

B

TABELA A

coluna A1 (PK)coluna A2coluna A3 ...

TABELA B

coluna B1 (PK)coluna B2coluna B3

...

coluna A1 (FK)

A B

Aloísio de Meneses Maciel1.8Conceitos de Banco de Dados

Relacionamentos 1:1 sem AtributosRelacionamentos 1:1 sem Atributos

SOLUÇÃO 2: acrescentar a chave da TABELA B como chave estrangeira na TABELA A.

A1

R1

B

TABELA A

coluna A1 (PK)coluna A2coluna A3

...

coluna B1 (FK)

TABELA B

coluna B1 (PK)coluna B2coluna B3

...

A B

Aloísio de Meneses Maciel1.9Conceitos de Banco de Dados

Relacionamentos 1:1 sem AtributosRelacionamentos 1:1 sem Atributos

SOLUÇÃO 3: Migrar os atributos e relacionamentos da TABELA A para a TABELA B excluindo a TABELA A definitivamente.

A1

R1

B

TABELA B

coluna B1 (PK)coluna B2coluna B3 ...coluna A1coluna A2coluna A3 ...

B

Aloísio de Meneses Maciel1.10Conceitos de Banco de Dados

Relacionamentos 1:1 sem AtributosRelacionamentos 1:1 sem Atributos

SOLUÇÃO 4: Migrar os atributos e relacionamentos da TABELA B para a TABELA A excluindo a TABELA B definitivamente.

A1

R1

B

TABELA A

coluna A1 (PK)coluna A2coluna A3 ...coluna B1coluna B2coluna B3 ...

A

Aloísio de Meneses Maciel1.11Conceitos de Banco de Dados

Relacionamentos 1:1 com AtributosRelacionamentos 1:1 com Atributos

Não é algo muito comum;

Do ponto de vista conceitual poderá existir.

A1

R B1

Aloísio de Meneses Maciel1.12Conceitos de Banco de Dados

Relacionamentos 1:1 com AtributosRelacionamentos 1:1 com Atributos

SOLUÇÃO 1: Criar uma TABELA C para conter as associações entre A e B, agregando as chaves estrangeiras de A e B para dar origem à chave de C, e alocando os atributos do relacionamento na TABELA C.

A1

R B1

TABELA A

coluna A1 (PK)coluna A2coluna A3 ...

TABELA B

coluna B1 (PK)coluna B2coluna B3 ...

TABELA C

coluna A1 (PK) (FK)coluna B1 (PK) (FK)coluna C1coluna C2 ...

A BC

Aloísio de Meneses Maciel1.13Conceitos de Banco de Dados

Relacionamentos 1:1 com AtributosRelacionamentos 1:1 com Atributos

SOLUÇÃO 2: Migrar os atributos do relacionamento R para a TABELA A.

A1

R B1

TABELA A

coluna A1 (PK)coluna A2coluna A3 ...coluna R1coluna R2 ...

TABELA B

coluna B1 (PK)coluna B2coluna B3

...

A B

Aloísio de Meneses Maciel1.14Conceitos de Banco de Dados

Relacionamentos 1:1 com AtributosRelacionamentos 1:1 com Atributos

SOLUÇÃO 3: Migrar os atributos do relacionamento R para a TABELA B.

A1

R B1

TABELA A

coluna A1 (PK)coluna A2coluna A3 ...

TABELA B

coluna B1 (PK)coluna B2coluna B3 ...coluna R1coluna R2 ...

A B

Aloísio de Meneses Maciel1.15Conceitos de Banco de Dados

ExemploExemplo

Suponha que temos um modelo na qual uma PESSOA pode indicar um, e somente um, DEPENDENTE para receber benefícios de um seguro de vida em seu nome (um beneficiário). Neste caso, deveríamos migrar o atributo DATA DE INDICAÇÃO ou para a entidade DEPENDENTE, ou para a entidade PESSOA.

PESSOA1,1

indica DEPENDENTE

0,1

data de indicação

Aloísio de Meneses Maciel1.16Conceitos de Banco de Dados

Relacionamentos 1:N sem AtributosRelacionamentos 1:N sem Atributos

Representam a grande maioria dos relacionamentos existentes no modelo;

A regra de derivação é única e bastante simples.

A1

R BN

Aloísio de Meneses Maciel1.17Conceitos de Banco de Dados

Relacionamentos 1:N sem AtributosRelacionamentos 1:N sem Atributos

Acrescentar a chave primária da TABELA A como chave estrangeira na TABELA B.

A1

RN

B

TABELA A

coluna A1 (PK)coluna A2coluna A3 ...

TABELA B

coluna B1 (PK)coluna B2coluna B3

...

coluna A1 (FK)

A B

Aloísio de Meneses Maciel1.18Conceitos de Banco de Dados

Relacionamentos 1:N com AtributosRelacionamentos 1:N com Atributos

SOLUÇÃO 1: Migrar os atributos do relacionamento R para a ENTIDADE B.

A1

RN

B

TABELA A

coluna A1 (PK)coluna A2coluna A3 ...

TABELA B

coluna B1 (PK)coluna B2coluna B3 ...coluna A1 (FK)coluna R1 ...

A B

Aloísio de Meneses Maciel1.19Conceitos de Banco de Dados

Relacionamentos 1:N com AtributosRelacionamentos 1:N com Atributos

SOLUÇÃO 2: Criar a TABELA C para conter as associações entre as tabelas A e B e alocar os atributos do relacionamento nessa nova tabela.

A1

R BN

TABELA A

coluna A1 (PK)coluna A2coluna A3 ...

TABELA B

coluna B1 (PK)coluna B2coluna B3 ...

TABELA C

coluna A1 (PK) (FK)coluna B1 (PK) (FK)coluna C1coluna C2 ...

A BC

Aloísio de Meneses Maciel1.20Conceitos de Banco de Dados

Relacionamentos 1:N com AtributosRelacionamentos 1:N com Atributos

Observação Importante: no Modelo Lógico final, os relacionamentos entre A e C é (1:N) e entre C e B é (1:1). Deve-se adicionar mecanismos adicionais para implementar esta restrição. Ex. índice único para a coluna B1 na tabela C.

A1

R BN

TABELA A

coluna A1 (PK)coluna A2coluna A3 ...

TABELA B

coluna B1 (PK)coluna B2coluna B3 ...

TABELA C

coluna A1 (PK) (FK)coluna B1 (PK) (FK) (UK)coluna C1coluna C2 ...

A BC

Aloísio de Meneses Maciel1.21Conceitos de Banco de Dados

Relacionamentos M:N com ou sem Relacionamentos M:N com ou sem AtributosAtributos

Deve-se criar a TABELA C, agregando as chaves estrangeiras de A e B para formar a chave primária da TABELA C. Caso existam atributos no relacionamento, estes irão passar a fazer parte da TABELA C como simples colunas (não participantes da chave).

AM

R BN

Aloísio de Meneses Maciel1.22Conceitos de Banco de Dados

Relacionamentos M:N com ou sem Relacionamentos M:N com ou sem AtributosAtributos

AM

R BN

TABELA A

coluna A1 (PK)coluna A2coluna A3 ...

TABELA B

coluna B1 (PK)coluna B2coluna B3 ...

TABELA C

coluna A1 (PK) (FK)coluna B1 (PK) (FK)coluna C1coluna C2 ...

A BC

Aloísio de Meneses Maciel1.23Conceitos de Banco de Dados

Auto-relacionamento 1:1Auto-relacionamento 1:1

Não se deve tratar este relacionamento diferente dos demais

Imagine que o relacionamento seja entre duas entidades distintas A e A´.

A1

R

1

Aloísio de Meneses Maciel1.24Conceitos de Banco de Dados

Auto-relacionamento 1:1Auto-relacionamento 1:1

SOLUÇÃO: migrar os atributos chave de A para A´.

A1

R

1

TABELA A

coluna A1 (PK)coluna A2coluna A3coluna A1´ (UK) (FK)

...

A

Deve ser tratado como uma coluna de valor único para garantir a cardinalidade de 1:1

Aloísio de Meneses Maciel1.25Conceitos de Banco de Dados

ExemploExemplo

Suponha um modelo onde temos um relacionamento 1:1 entre PESSOA e PESSOA. Este relacionamento pode significar, por exemplo, “pessoa representa outra pessoa”, como no caso de uma procuração. Estamos assumindo, em nosso exemplo, que se uma pessoa é procuradora de uma outra, não será de mais ninguém e que se uma pessoa dá procuração a outra pessoa também não dá a mais ninguém. Neste caso, estamos criando, em nosso modelo, um relacionamento de 1:1 para a entidade PESSOA.

Aloísio de Meneses Maciel1.26Conceitos de Banco de Dados

ExemploExemplo

PESSOA1

representa

1

PESSOA

CPF (PK)NomeData nascimentoCPF do representante (UK) (FK)

...

A

Aloísio de Meneses Maciel1.27Conceitos de Banco de Dados

Auto-relacionamento 1:NAuto-relacionamento 1:N

Não se deve tratar este relacionamento diferente dos demais

Imagine que o relacionamento seja entre duas entidades distintas A e A´.

A1

R

N

Aloísio de Meneses Maciel1.28Conceitos de Banco de Dados

Auto-relacionamento 1:NAuto-relacionamento 1:N

SOLUÇÃO: migrar os atributos chave de A para A´.

A1

R

N

TABELA A

coluna A1 (PK)coluna A2coluna A3coluna A1´ (FK)

...

A

Aloísio de Meneses Maciel1.29Conceitos de Banco de Dados

ExemploExemplo

Suponha o mesmo modelo tratado anteriormente. Passaremos, entretanto, a ter um relacionamento 1:N entre PESSOA e PESSOA. Este relacionamento terá o mesmo significado anterior, mas mudaremos a regra de negócio associada a ele. Agora, uma pessoa poderá autorizar para que várias pessoas sejam seus representantes. Porém, caso uma pessoa seja representante de alguém, não poderá ser de outra pessoa.

Aloísio de Meneses Maciel1.30Conceitos de Banco de Dados

ExemploExemplo

PESSOA1

representa

N

PESSOA

CPF (PK)NomeData nascimentoCPF do representante (FK)

...

A

Aloísio de Meneses Maciel1.31Conceitos de Banco de Dados

Auto-relacionamento M:NAuto-relacionamento M:N

Não se deve tratar este relacionamento diferente dos demais

Imagine que o relacionamento seja entre duas entidades distintas A e A´.

AM

R

N

Aloísio de Meneses Maciel1.32Conceitos de Banco de Dados

Auto-relacionamento M:NAuto-relacionamento M:N

SOLUÇÃO: Criar uma nova TABELA C e agregar as chaves de primárias de A e A´ para formar a chave primária de C.

AM

R

N

TABELA A

coluna A1 (PK)coluna A2coluna A3

...

TABELA C

coluna A1 (PK) (FK)coluna A1´ (PK) (FK)

...

A C

Aloísio de Meneses Maciel1.33Conceitos de Banco de Dados

ExemploExemplo

Continuando o exemplo anterior, vamos admitir que uma pessoa possa ser representada por diversas outras e que um representante, por sua vez, possa representar diversas outras pessoas. Com isso teremos um relacionamento M:N.

Aloísio de Meneses Maciel1.34Conceitos de Banco de Dados

ExemploExemplo

PESSOAM

representa

N

PESSOA

CPF (PK)NomeData nascimento

...

PESSOA

REPRESENTA

CPF Representante (PK) (FK)CPF Representado (PK) (FK)

REPRESENTArepresenta

é representada

top related