Вы находитесь на странице: 1из 35

Projetos de Banco de Dados

Me. Bruno Caputo

Mapeamento conceitual -Lgico

Explicar novamente a diferena entre modelo conceitual e lgico e as suas finalidades.

3.1. Mapeamento de classes, atributos e associaes.

Escola de Cincia e Tecnologia Curso: INFORMTICA

Mapeamento conceitual - Lgico


Mapeamento conceitual - lgico.
Classes
Classes so mapeadas para relaes.
Caso simples: cada classe mapeada como uma relao e cada atributo desta classe como uma coluna da relao. Outros casos: vrias classes so mapeadas para uma nica relao; uma classe mapeada para vrias relaes.
Disciplina: Projeto de Banco de Dados

Escola de Cincia e Tecnologia Curso: INFORMTICA

Mapeamento conceitual - Lgico


Mapeamento conceitual - lgico. Atributos
Forma geral: um atributo mapeado para uma ou mais colunas. Em geral, atributos derivados no so mapeados no banco de dados.

Disciplina: Projeto de Banco de Dados

Escola de Cincia e Tecnologia Curso: INFORMTICA

Mapeamento conceitual - Lgico


Exemplo: atributos derivados
No so mapeados no banco de dados RELACIONAL

Disciplina: Projeto de Banco de Dados

Escola de Cincia e Tecnologia Curso: INFORMTICA

Mapeamento conceitual - Lgico


H duas alternativas de mapeamento:
1
2
Cliente (id, nome, telefone, logradouro, dataNascimento, CEP, idCPF) CPF (idCPF, nmero, digitoVerificador) Cliente (id, nome, telefone, logradouro, dataNascimento, CEP, CPF)

Na alternativa 1, o CEP do cliente mapeado para uma relao separada

Na alternativa 2, o CEP mapeado de forma nica.


Disciplina: Projeto de Banco de Dados

Escola de Cincia e Tecnologia Curso: INFORMTICA

Mapeamento conceitual - Lgico


Associaes
Associaes de conectividade um para um Associaes de conectividade um para muitos Associaes de conectividade muitos para muitos

Disciplina: Projeto de Banco de Dados

Escola de Cincia e Tecnologia Curso: INFORMTICA

Mapeamento conceitual - Lgico


Exemplo de associaes

Disciplina: Projeto de Banco de Dados

Escola de Cincia e Tecnologia Curso: INFORMTICA

Mapeamento conceitual - Lgico


Associaes: um para um
Devemos adicionar uma chave estrangeira em uma das duas relaes para referenciar a chave primria da outra relao. H 3 possibilidades:
A associao obrigatria em ambos os extremos. A associao opcional em ambos os extremos. A associao obrigatria em um extremo e opcional no outro extremo.
Disciplina: Projeto de Banco de Dados

Escola de Cincia e Tecnologia Curso: INFORMTICA

Mapeamento conceitual - Lgico


Soluo: um para um
As classes que participam de uma associao um para um podem ser mapeadas para uma nica relao para aumentar o desempenho de processamento. (Por ex., classes Cliente e CPF vistos anteriormente).

Departamento (id, sigla, nome, idEmpregado<Gerente>) Empregado (idEmpregado, matrcula, CPF, nome, endereo, CEP)
Disciplina: Projeto de Banco de Dados

Escola de Cincia e Tecnologia Curso: INFORMTICA

Mapeamento conceitual - Lgico


Associaes: um para muitos
Se um objeto da classe A se associa a muitos objetos da classe B, devemos adicionar uma chave estrangeira na relao correspondente classe B para referenciar a chave primria da relao que corresponde classe A.

Disciplina: Projeto de Banco de Dados

Escola de Cincia e Tecnologia Curso: INFORMTICA

Mapeamento conceitual - Lgico


Soluo: um para muitos

Departamento (id, sigla, nome, idEmpregadoGerente) Empregado (id, matrcula, CPF, nome, endereo, CEP, idDepartamento)
Disciplina: Projeto de Banco de Dados

Escola de Cincia e Tecnologia Curso: INFORMTICA

Mapeamento conceitual - Lgico


Associaes: muitos para muitos
Uma relao de associao deve ser criada com o objetivo de representar a associao muitos para muitos entre duas ou mais relaes. Neste caso, diferente dos outros, uma nova relao precisa ser criada. O mapeamento feito aplicando-se a regra para o mapeamento um para muitos duas vezes.
Disciplina: Projeto de Banco de Dados

Escola de Cincia e Tecnologia Curso: INFORMTICA

Mapeamento conceitual - Lgico


Soluo: muitos para muitos
Alerta! Vrias opes de construir a tabela Alocao, depende do negcio.

Alocao (idProjeto, idEmpregado) Alocao (idProjeto, idEmpregado,X) Alocao (id, idProjeto, idEmpregado)

Empregado (idEmpregado, matrcula, CPF, nome, endereo, CEP, idDepartamento) Projeto(idProjeto, nome, verba) Alerta! Alocao( id, idEmpregado, IdProjeto)
Disciplina: Projeto de Banco de Dados

Escola de Cincia e Tecnologia Curso: INFORMTICA

Mapeamento conceitual - Lgico


Associaes: reflexivas
Uma associao reflexiva um tipo especial de associao. Portanto, o mapeamento aplicado a associaes se aplica da mesma forma aqui.

Soluo:
Empregado (id, matrcula, nome, dataContratao, idCnjuge, idSupervisor)
Disciplina: Projeto de Banco de Dados

Escola de Cincia e Tecnologia Curso: INFORMTICA

Mapeamento conceitual - Lgico


Associaes: ternrias ou n-rias
Podem ser mapeadas atravs de um procedimento semelhante ao utilizado para associaes binrias de conectividade muitos para muitos. Uma relao para representar a associao criada e so adicionadas nesta relao chaves estrangeiras para as n classes participantes da associao. Se a associao ternria possuir uma classe associativa, os atributos so mapeados como colunas da relao de associao.
Disciplina: Projeto de Banco de Dados

Escola de Cincia e Tecnologia Curso: INFORMTICA

Mapeamento conceitual - Lgico


Soluo: associao ternrias ou n-rias

Tcnico (id, nome) Projeto (id, nome, verba) Computador (id, modelo) Alocao (id, idProjeto, idTcnico, idComputador)

Disciplina: Projeto de Banco de Dados

Escola de Cincia e Tecnologia Curso: INFORMTICA

Mapeamento conceitual - Lgico


Classes associativas
Mais encontrada em associaes de conectividade muitos para muitos. Geralmente, h necessidade da criao de uma relao para representar uma classe associativa. Os atributos da classe associativa so mapeados para colunas da relao e esta relao deve conter chaves estrangeiras referenciando as relaes correspondentes s classes que participam da associao.

Disciplina: Projeto de Banco de Dados

Escola de Cincia e Tecnologia Curso: INFORMTICA

Mapeamento conceitual - Lgico


Classes associativas

Disciplina: Projeto de Banco de Dados

Escola de Cincia e Tecnologia Curso: INFORMTICA

Mapeamento conceitual - Lgico


Soluo: Classes associativas

Empregado (id, matrcula, nome) Projeto (id, sigla, nome, verbaAnual, idEmpregadoLider) Ferramenta (id, nome, descrio) Utilizao (id, idFerramenta, idProjeto, dataUso) Trabalho (id, idEmpregado, idProjeto, cargaHorria, remunerao)
Disciplina: Projeto de Banco de Dados

3.2. Remoo de generalizaes.

Escola de Cincia e Tecnologia Curso: INFORMTICA

Mapeamento conceitual - Lgico


3.2. Remoo de generalizaes.
H 3 alternativas de mapear relacionamentos de generalizao:
Uma relao para cada classe da hierarquia Uma relao para toda a hierarquia Uma relao para cada classe concreta da hierarquia

Disciplina: Projeto de Banco de Dados

Escola de Cincia e Tecnologia Curso: INFORMTICA

Mapeamento conceitual - Lgico


Uma relao para cada classe da hierarquia
Uma relao criada para cada uma das classes C0, C1, C2, C3, ..., Cn. Deve-se aplicar a mesma regra de mapeamento aplicada para associaes de conectividade um para um. A chave estrangeira deve ser adicionada relao que implementa a subclasse.
Disciplina: Projeto de Banco de Dados

Escola de Cincia e Tecnologia Curso: INFORMTICA

Mapeamento conceitual - Lgico


Soluo: Uma relao para cada classe da hierarquia
Contribuinte (id, endereo) PessoaFsica (id, nome, dataNascimento, CPF, idContribuinte) PessoaJurdica (id, CNPJ, razoSocial, idContribuinte)

Disciplina: Projeto de Banco de Dados

Escola de Cincia e Tecnologia Curso: INFORMTICA

Mapeamento conceitual - Lgico


Uma relao para toda a hierarquia
Devemos criar uma nica relao com colunas representando os atributos da superclasse e das subclasses. A relao deve conter uma coluna adicional para identificar a qual classe da hierarquia a linha da relao pertence.

Disciplina: Projeto de Banco de Dados

Escola de Cincia e Tecnologia Curso: INFORMTICA

Mapeamento conceitual - Lgico


Soluo: Uma relao para toda a hierarquia

Disciplina: Projeto de Banco de Dados

Escola de Cincia e Tecnologia Curso: INFORMTICA

Mapeamento conceitual - Lgico


Uma relao para cada classe concreta da hierarquia
Uma relao criada para cada subclasse. Os atributos de cada subclasse so mapeados para colunas da relao correspondente. Cada relao correspondente subclasse Ci tambm possui colunas para cada atributo herdado da superclasse C0. Portanto, os atributos da superclasse so replicados pelas n relaes que implementam as subclasses.
Disciplina: Projeto de Banco de Dados

Escola de Cincia e Tecnologia Curso: INFORMTICA

Mapeamento conceitual - Lgico


Soluo: Uma relao para cada classe concreta da hierarquia

PessoaFsica (id, dataNascimento, nome, endereo, CPF) PessoaJurdica (id, CNPJ, endereo, razoSocial)

Disciplina: Projeto de Banco de Dados

Comparao entre estratgias

Escola de Cincia e Tecnologia Curso: INFORMTICA

Comparao entre estratgias


Uma relao para cada classe da hierarquia Vantagens
a que melhor representa o modelo orientado a objetos.

Desvantagens
Desempenho ruim na manipulao das relaes.
Na insero (remoo) de um novo objeto, haver insero (remoo) de dois registros, um em cada relao (superclasse e subclasse). Em consultas cujos dados no esto na mesma relao, h necessidade de realizar uma juno que uma operao cara.

Disciplina: Projeto de Banco de Dados

32

Escola de Cincia e Tecnologia Curso: INFORMTICA

Comparao entre estratgias


Uma relao para toda a hierarquia Vantagens
Implementao simples. Facilidade nas situaes onde os objetos mudam de classe.

Desvantagens
Na insero ou remoo de um novo atributo de uma das classes da hierarquia, a relao que mapeia toda a hierarquia sempre modificada. Desperdcio de espao de armazenamento principalmente quando h muitas subclasses.

Disciplina: Projeto de Banco de Dados

Escola de Cincia e Tecnologia Curso: INFORMTICA

Comparao entre estratgias


Uma relao para cada classe concreta da hierarquia Vantagens
Os objetos de uma classe so agrupados em uma nica relao.

Desvantagens
Quando a superclasse modificada, cada uma das n relaes correspondentes s subclasses deve ser modificada.

Disciplina: Projeto de Banco de Dados

Escola de Cincia e Tecnologia Curso: INFORMTICA

Comparao entre estratgias


Concluso
No existe a melhor alternativa de mapeamento pois todas possuem vantagens e desvantagens. A escolha vai depender das caractersticas do sistema de software sendo desenvolvido.
Em caso geral pode utilizar a opo de Uma relao para toda a hierarquia .

Disciplina: Projeto de Banco de Dados

Вам также может понравиться