Você está na página 1de 27

Curso Superior em Tecnologia de Anlise e Desenvolvimento de Sistemas

Campus Alegrete

Banco de Dados I
Cristhiano Bossardi de Vasconcellos

Parte 8

TRANSFORMAO ENTRE MODELOS A abordagem ER voltada modelagem de dados de forma independente do SGBD considerado. adequada para construo do modelo conceitual. J a abordagem relacional modela os dados a nvel de SGBD relacional. Um modelo neste nvel de abstrao chamado de modelo lgico.

TRANSFORMAO ENTRE MODELOS


Abordagem ER voltada modelagem de dados de forma independente do SGBD considerado. Representao:
entidade1 R entidade2

Abordagem Relacional - Modela os dados a nvel de SGBD relacional. - Um modelo neste nvel de abstrao chamado de modelo lgico. - Representao: nometabela2(chaveprimria,atributo1,atributo2) atributo2 referencia nometabela1

TRANSFORMAO ENTRE MODELOS Inicialmente, veremos o projeto lgico de BD relacional. O projeto lgico consta da transformao de um modelo ER em um modelo lgico, que implementa, a nvel de SGBD relacional, os dados representados abstratamente no modelo ER. O termo implementao significa que ocorre uma transformao de um modelo mais abstrato para um modelo que contm mais detalhes de implementao.

TRANSFORMAO ER -> RELACIONAL


As regras para a transformao ER para relacional foram definidas tendo em vista dois objetivos bsicos: obter um banco de dados que permita boa performance de instrues de consulta e alterao do bd (isso significa diminuir o nmero de acesso a disco, j que isto consome tempo na execuo de uma instruo de bd); obter um bd que simplifique o desenvolvimento e a manuteno de aplicaes;

Regras gerais da traduo


A fim de alcanar estes objetivos, as regras de traduo foram definidas tendo por base, entre outros, os seguintes princpios: Evitar junes; Diminuir o nmero de chaves primrias; Diminuir o nmero de campos opcionais; Juno: operao para buscar dados de diversas linhas associadas pela igualdade dos campos. Exemplo: buscar os dados de um empregado e os dados de seu departamento (duas tabelas diferentes)

Exemplos
1 alternativa Cliente (CodCliente, Nome, NomeContato, Endereo, telefone) -> cria apenas um ndice por cdigo de cliente - a chave primria da tabela. 2 alternativa Cliente (CodCliente, Nome, NomeContato) ClienteEnder(CodCliente, Endereco, Telefone) CodCliente referencia Cliente -> cria, para cada tabela, um ndice por cdigo de cliente (onde, os dois ndices possuem exatamente as mesmas entradas, resultando em armazenamento e processamento dobrado).

Implementao inicial de entidades


Cada entidade -> transformada em uma tabela Cada atributo -> define uma coluna desta tabela Atributos identificadores -> compem a chave primria da tabela
nome codpess Pessoa dataNasc

Pessoa (CodPess, Nome, DataNasc)

Traduo de entidade fraca


cpfd Nome (1,1) Empregados (0,N)

Vnculo

Dependentes

cpfemp

nome

Entidade fraca

Modelo Relacional: Empregado (cpfemp, nome) Dependentes (CPFemp, CPFd, Nome) Um dependente identificado pelo cpf do empregado ao qual ele est vinculado e pelo cpf do prprio dependente

Implementao de Relacionamentos existem trs formas bsicas de traduo:


Tabela prpria (cria uma nova tabela para o relacionamento); Colunas adicionais dentro de tabela de entidade; Fuso de tabelas de entidades;
O fator determinante para a traduo em relacionamentos a cardinalidade mnima e mxima das entidades que participam do relacionamento

Tabela prpria (sempre que N:N)


(0,N) Engenheiro Nome DataNasc Atuacao (0,N) Projeto Codpr Funcao Ttulo Duracao

CodEng

Produz

sempre uma nova tabela para o relacionamento:

Engenheiro (CodEng,Nome,DataNasc) Projetos (Codpr,Ttulo,Duracao) Atuacao (CodEng,Codproj,Funcao) CodEng referencia Engenheiro CodPr referencia Projeto

Colunas adicionais a traduo preferida para relacionamentos (1:N)


faz-se insero de colunas tabela com cardinalidade mx. 1.
(1,1) Departamento Nome Lotacao (0,N) Empregado Contratacao CodE DataLotacao Nome

CodDep

Ou seja, Empregado (que possui cardinalidade mxima 1) recebe o CodDep e recebe tambm datalotacao que pertencia ao relacionamento.

Colunas adicionais a traduo preferida para relacionamentos (1:N)

(1,1) Departamento Nome Lotacao

(0,N) Empregado Contratacao CodE DataLotacao Nome

CodDep

Esquema relacional... Uma alternativa essa: Departamento(CodDep,Nome) Empregado(CodE,Nome,contratacao, CodDep, datalotacao) CodDep referencia Departamento

Porm, registro temporal... Origina...


(1,1) Departamento Nome Lotacao (0,N) Empregado Contratacao CodE DataLotacao Nome

CodDep

Porm se for necessrio armazenar o registro temporal das lotaes do funcionrio ficar assim: Departamento (CodDep,Nome) Empregado (CodE,Nome,contratacao) Lotacao (CodE, CodDep, DataLotacao) CodE referencia Empregado CodDep referencia Departamento

Fuso de tabelas

Rel. Binrios do tipo (1,1) , (1,1) - Ou seja, quando ambas tem participao obrigatria
Nro (1,1) Eventos CodEv Nome (1,1) Comisses Local Responsvel

Organizao

Data_inst comisso

Eventos(CodEv,Nome,Data_inst_comisso,Local, Responsvel_comisso)

Para alguns tipos de relacionamento h ainda uma segunda alternativa a ser usada: Exemplo: quando uma entidade tem participao opcional e a outra obrigatria Rel. Binrios, com Parcialidade em alguma das entidades

(1,1) Clientes Codcli Nome

Posse

(0,1) Cartes Magnticos Nro Data_exped

Ruim, Alternativa preferida (continua sendo a fuso) Ruim, se existem poucos clientes com Clientes(Codcli,Nome,Nro,Data_exped) carto

Pode ser usada a Adio de colunas Clientes (Codcli,Nome) CartesMagnticos (Nro, Codcli,Data_exped) Codcli referencia clientes

Ambas entidades tm participao opcional

Rel. Binrios (0,1), (0,1) (0,1) Homens cpfh nome


CertRes

(0,1) Mulheres cpfm Nome

Casamento
Data Regime

Alternativa preferida Adio entidades pode ser escolhida. Homens(cpfh,Nome,CertRes)

de colunas, e qualquer uma das

Mulheres(cpfm,Nome, cpfh, data, regime) Cpfh referencia Homens

(0,1) Homens cpfh nome CRes

(0,1) Mulheres cpfm Nome

Casamento
Data regime

Alternativa que pode ser usada

Tabela prpria

Homens(cpfh,Nome,CRes) Mulheres(cpfm,Nome) Casamento(cpfh, cpfm,Data,Regime) cpfm referencia Mulheres Cpfh referencia Homens

Quando a participao opcional da entidade que apresenta cardinalidade mx. 1...


Em relacionamentos binrios 1:N A adio coluna continua sendo a preferida; Mas a traduo por tabela prpria pode ser usada
(0,1) Departamento Nome Lotao (1,N) Empregado CodE DataLotao contratao

CodDep

Nome

Esquema relacional para Adio em Coluna: Departamento(CodDep,Nome) Empregado(CodEmp,Nome,contratacao, CodDep, datalotacao) CodDep referencia Departamento
Podero ficar vazios!

Quando ambas entidades tem participao opcional


Rel. Binrios 1:N - Adio coluna preferida; - tabela prpria pode ser usada;
(0,1)
Pessoas posse

(0,N)
Automveis

cpf

Nome

Idade

Data

Coda

modelo

Pessoas(cpf,Nome,Idade) Automveis(Coda,modelo,cpf, data) cpf referencia pessoa

Quando ambas entidades tem participao opcional


Rel. Binrios 1:N - tabela prpria pode ser usada;
(0,1)
pessoas posse

(0,N)
automoveis

cpf

Nome

Idade

Data

coda

modelo

pessoas(cpf,Nome,Idade) automveis(Coda,modelo) posse(cpf,coda,Data) cpf referencia pessoa coda referencia automoveis

Em sntese:

Em sntese:

Regras gerais de traduo: Evitar junes


Embora os SGBD procurem implementar a juno de forma eficiente (j que e um operao frequente em BD), a juno envolve diversos acesso a disco; Todos os dados de uma linha de uma tabela so trazidos para a memria em uma operao de acesso a disco. Isto significa que, uma vez encontrada uma linha da tabela, seus campos esto todos disponveis sem necessidade de acesso adicionais a disco;
Prefervel: ter os dados necessrios a uma consulta em uma nica linha;

Regras gerais de traduo: Diminuir o nmero de chaves primrias


Para implementao eficiente do controle da chave primria, o SGBD usa uma estrutura de acesso auxiliar - um ndice para cada chave primria.
O ndice permite que o SGBD teste rapidamente a existncia do valor de uma chave primria sendo includa, sem que seja necessrio fazer uma leitura exaustiva em toda a tabela. Tambm para controle da chave estrangeira so utilizados ndices. Quando uma chave primria estiver sendo excluda ou alterada, o ndice permite o acesso rpido a chave estrangeira para verificao da existncia do antigo valor da chave primria.

ndices
A regra geral em projetos fsicos para bd que para cada chave primria ou estrangeira, necessrio definir um ndice e...

Pela forma em que so implementados, ndices tendem a ocupar espao considervel em disco.
Alm disso, insero ou remoo de entradas em um ndice podem exigir diversos acessos a disco. Assim... podendo escolher entre 2 alternativas de implementao, uma na qual os dados aparecem em 1 nica tabela e outra na qual os mesmos dados aparecem em 2 ou mais tabelas com a mesma chave primria, prefira a implementao por uma nica tabela.

Referncias Esta apresentao foi adaptada a partir do material da Prof. Jiani Cardoso da Roza