Você está na página 1de 34

Transformaes entre modelos

Nveis de Abstrao
Mundo Real
Modelo de Banco de Dados
Modelo Conceitual

Analista
Descreve

Mini-mundo
organiza idias (abstrao da realidade) Define

Projeto de Banco de Dados

Modelo Lgico

Modelo Fsico

BD Unidade I Banco de Dados I 1

Transformaes entre modelos

Fases:

Projeto de Banco de Dados


Modelo conceitual

Esquema relacional Tipo_Produto (Codigo, Descricao) P d t (Codigo, Produto (C di N Nome, P Preco, C Cod_Tipo) d Ti ) Cod_Tipo referencia Tipo_Produto)

Modelo lgico g

TIPO_PRODUTO

Banco de Dados
PRODUTO CODIGO 1 2 3 4 DESCRICAO DESKTOP DELL MODELO P III NOTEBOOK TOSHIBA L 1.7 HP 692 C JATO DE TINTA EPSON 1500 L LASER

CODIGO 1 2
PRECO COD_TIPO 2500 3500 600 1200 1 1 2 2

DESCRICAO COMPUTADOR IMPRESSORA

Modelo fsico BD Banco de Dados I 2

Unidade I

Transformaes entre modelos

Transformao de DER para Relacional

Implementao de entidades: Entidade normalmente transforma-se em tabela: Atributo da entidade ( (simples): simples ): coluna da tabela Nomes: curtos, significativos, sem brancos, se preciso usar abreviaturas p Abreviatura: usar mesmo princpio em todo BD Atributo identificador da entidade: chave primria
Modelo conceitual Modelo lgico

Pessoa (CodigoPess, Nome, Endereco, DataAdm, DataNasc)

Unidade I

Banco de Dados I

Transformaes entre modelos PARA NOMEAR TABELAS E COLUNAS DE TABELAS CONVENES DURANTE A TRADUO - usar os nomes das tabelas no singular; - nomes de colunas extensivamente utilizados na aplicao = devem ser o mais curtos possveis; - nomes de atributos compostos de diversas palavras devem ser abreviados; - SGBDR no aceita brancos nos nomes de colunas, se preciso usar underline; - no se inclui o nome da tabela no nome da coluna; - a chave primria de uma tabela uma exceo = poder ser uma chave estrangeira de uma outra tabela; - abreviaturas usadas em nomes de colunas devem ser utilizadas da mesma forma em todo o BD.

Unidade I

Banco de Dados I

Transformaes entre modelos

TRADUO DE RELACIONAMENTOS
- As cardinalidades so os fatores determinantes; - Trs formas bsicas de implementao: - por TABELA PRPRIA PARA O RELACIONAMENTO;

E1

E2

TRADUO

Unidade I

Banco de Dados I

Transformaes entre modelos

TRADUO DE RELACIONAMENTO POR TABELA PRPRIA


Criar uma tabela para o relacionamento com as seguintes colunas: -os identificadores das entidades q que participam p p do relacionamento; ; -as colunas dos atributos do relacionamento. - A chave primria ser o conjunto das colunas correspondentes aos identificadores das entidades que participam do relacionamento.

cdigo nome (0,n)

cdigo funo data incio ATUAO (0,n)

ttulo

ENGENHEIRO

PROJETO

Engenheiro(CodigoEngenheiro,Nome_Eng) Projeto(CodigoProjeto,Ttulo_Proj) Atuao(CodigoEngenheiro,CodigoProjeto,Funo_Atu,DtaInic_Atu) CodigoEngenheiro referencia Engenheiro C di P j t referencia CodigoProjeto f i Projeto P j t

Unidade I

Banco de Dados I

Transformaes entre modelos

TRADUO DE RELACIONAMENTOS
- por ADIO DE COLUNAS numa das tabelas que participam do relacionamento; e

E1

E2

TRADUO

Unidade I

Banco de Dados I

Transformaes entre modelos

TRADUO DE RELACIONAMENTO
POR ADIO DE COLUNAS NAS TABELAS QUE PARTICIPAM DO RELACIONAMENTO

- S possvel quando h um relacionamento com cardinalidade mxima 1; - Insere-se na tabela que tem o relacionamento com cardinalidade n; - O(s) identificador(es) da outra tabela sero chave(s) estrangeira(s); - O(s) O( ) atributo(s) t ib t ( ) prprios i do d relacionamento. l i t

cdigo g nome (1,1)

d t lotao data l t LOTAO

cdigo g (0,n)

nome

DEPARTAMENTO

EMPREGADO

Departamento(CodigoDepartamento,Nome_Dep) Empregado(CodigoEmpregado,Nome_Emp,CodigoDepartamento,Data_Lot) CodigoDepartamento referencia Departamento

Unidade I

Banco de Dados I

Transformaes entre modelos

TRADUO DE RELACIONAMENTOS
- por FUSO DAS TABELAS das entidades que participam do relacionamento.

E1

E2

TRADUO

Unidade I

Banco de Dados I

Transformaes entre modelos

TRADUO DE RELACIONAMENTO
POR FUSO DE TABELAS DE ENTIDADES QUE PARTICIPAM DO RELACIONAMENTO - S possvel quando o relacionamento 1:1; - Insere-se na tabela os atributos das entidades e do prprio relacionamento. cdigo nome (1 1) (1,1) data instalao ORGANIZAO (1 1) (1,1) endereo

CONFERNCIA

COMISSO

Conferncia(CodigoConferncia,Nome_Conf,DataInstalao_Org,Endereo_Com)

Unidade I

Banco de Dados I 10

Transformaes entre modelos

Implementao de relacionamentos (1:1) :

ambas entidades com participao opcional

Modelo conceitual

Modelo lgico
Homem (IdentH, Nome)

Homem (IdentH, Nome) Mulher (IdentM, (IdentM Nome) Casamento (IdentM, IdentH, Data, Regime) IdentM referencia Mulher IdentH referencia Homem

Mulher (IdentM, Nome, IdentH, Data, Regime) IdentH referencia Homem

Unidade I

Banco de Dados I 11

Transformaes entre modelos

Implementao de relacionamentos (1:1) :

uma entidade com participao opcional e outra obrigatria Modelo conceitual

Modelo lgico
Correntista (CodCorrent, (CodCorrent Nome, Nome CodCartao, CodCartao DataExp)

Correntista (CodCorrent, Nome) Cartao (CodCartao, DataExp, CodCorrent) C dC CodCorrent t referencia f i Correntista C ti t

Unidade I

Banco de Dados I 12

Transformaes entre modelos

Implementao de relacionamentos (1:1) :

ambas entidades com participao obrigatria

Modelo conceitual

Correntista (CodCorrent, Nome, CodCartao, DataExp)

Modelo lgico

Unidade I

Banco de Dados I 13

Transformaes entre modelos

Transformao de DER para Relacional

Tipo de relacionamento Relacionamentos 1:1

Tabela prpria

Adio de Coluna

Fuso de Tabelas X

X X

9 9

9 X
Unidade I

Alternativa preferida p Pode ser usada No usar Banco de Dados I 14

Transformaes entre modelos

Implementao de relacionamentos (1:N) :

alternativa preferida: adio de colunas

Modelo conceitual

Modelo lgico
Financeira (CodFin, Nome)

Financeira (CodFin, Nome) V d (IdVend, Venda (IdV d Data) D t ) Financiamento (IdVend, CodFin, NumParc, TxJuros) IdVend referencia Venda CodFin referencia Financeira

Venda (IdVend, Data, CodFin, NumParc, TxJuros) CodFin referencia Financeira

Unidade I

Banco de Dados I 15

Transformaes entre modelos

Implementao de relacionamentos (1:N) :

alternativa preferida: adio de colunas


Endereo Nmero

Cdigo EDIFCIO

(1, 1)

(1, n) APARTAMENTO

Modelo conceitual

rea

Edificio (CodigoEd, (CodigoEd Endereco) Apartamento (CodigoEd, NumAp, AreaAp) CodigoEd g referencia Edificio

Modelo lgico

Unidade I

Banco de Dados I 16

Transformaes entre modelos

Transformao de DER para Relacional


Tipo de relacionamento Relacionamentos 1:N Tabela prpria Adio de Coluna Fuso de Tabelas


X X

9 9 9 9

X X X X

9 X
Unidade I

Alternativa preferida Pode ser usada No usar Banco de Dados I 17

Transformaes entre modelos

Implementao de relacionamentos (N:N) : criao de uma nova tabela

Modelo conceitual

Engenheiro (CodEng, Nome) Projeto (CodProj, (CodProj Titulo) Atuao (CodEng, CodProj, Funcao) CodEng referencia Engenheiro CodProj referencia Projeto

Modelo lgico

Unidade I

Banco de Dados I 18

Transformaes entre modelos

Transformao de DER para Relacional


Tipo p de relacionamento Relacionamentos N:N
(0,N) (0,N)

Tabela prpria

Adio de Coluna

Fuso de Tabelas

(0,N)

(1,N)

(1,N)

(1,N)

9 9 9

X X X

X X X

9 X
Unidade I

Alternativa preferida Pode ser usada No usar Banco de Dados I 19

Transformaes entre modelos


Tipo de relacionamento Relacionamentos 1:1 Tabela prpria p p Adio de Coluna Fuso de Tabelas X

Tipo de relacionamento Relacionamentos 1:N

Adio de Coluna X

X Tabela prpria X

Fuso de Tabelas

9 9
X X


Tipo de relacionamento Relacionamentos N:N

X Tabela prpria X

9 9 9 Adio de Coluna 9
X X X

9 X

Alternativa preferida Pode ser usada No usar

X Fuso de Tabelas X

9 9 9
Unidade I

X X X

Banco de Dados I 20

Transformaes entre modelos

Implementao de entidades com relacionamento identificador Modelo conceitual

Modelo lgico
Empregado (CodigoEmp, Nome) Dependente (CodigoEmp, NumSeq, Nome, DataNasc)

Unidade I

Banco de Dados I 21

Transformaes entre modelos

Implementao p de entidades com relacionamento identificador


Cdigo GRUPO (1,1) Nome

Modelo conceitual

(0,n) Nmero da Empresa EMPRESA (1,1) Nmero sequencia (0,n) Nmero do Empregado (1, 1) EMPREGADO (0, n) DEPENDENTE Nome Nome

Nome

Data Nascimento

Modelo lgico

G Grupo (CodGrupo, (C dG N Nome) ) Empresa (CodGrupo, NumEmpresa, Nome) Empregado (CodGrupo, NumEmpresa, NumEmpregado, Nome) Dependente (CodGrupo, NumEmpresa, NumEmpregado, NumSeq, Nome, DataNasc)

Unidade I

Banco de Dados I 22

Transformaes entre modelos

Relacionamentos de Grau maior que 02 (dois) - Ternrio


relacionamento transformado em entidade usa-se as regras de implementao de entidades e relacionamentos binrios Modelo conceitual

Unidade I

Banco de Dados I 23

Transformaes entre modelos

Relacionamentos de Grau maior que 02 (dois):


M d l conceitual Modelo it l

Modelo lgico
Nome Cdigo Nome

Cidade (CodCid, Nome)


Cdigo CIDADE (1,1) DISTRIBUIDOR (1,1)

Distribuidor (CodDistr, Nome) Produto (CodProd, Nome)

(0,n) DISTRIBUIO (0,n)

(0,n) Data de Incio

(1,1) Cdigo PRODUTO

Distribuicao (CodCid, CodDistr, CodProd, DataIni) CodCid referencia Cidade CodDistr referencia Distribuidor CodProd referencia Produto

Nome

Unidade I

Banco de Dados I 24

Transformaes entre modelos

Implementao generalizao / especializao (alternativas):


(1) uso de uma tabela para cada entidade (2) uso de uma nica tabela para toda hierarquia Modelo lgico
E Empregado d (CodEmp, (C dE N Nome, CIC CIC, Ti TipoEmp) E ) Motorista (CodEmp, NumCartHab) CodEmp referencia Empregado Engenheiro (CodEmp, CREA) CodEmp referencia Empregado

Modelo conceitual

(1)

Empregado (CodEmp, Nome, CIC, TipoEmp, NumCartHab, CREA)

(2)

Unidade I

Banco de Dados I 25

Transformaes entre modelos

Implementao generalizao / especializao:


uma nica tabela para toda hierarquia generalizao/ especializao

Modelo conceitual
Tipo de empregado Nome CIC Nome

Cdigo EMPREGADO

(0, n) LOTAO

(1, 1) DEPARTAMENTO

CREA

Cdigo

MOTORISTA

SECRETRIA (1, n)

ENGENHEIRO (0, n) PARTICIPAO (0, ( , n) ) PROJETO (1, ( , 1) ) RAMO DA ENGENHARIA

(0, n)

Carteira de Habilitao

DOMNIO (0, ( , n) ) PROCESSADOR DE TEXTO

Cdigo

Nome

Cdigo

Nome

Cdigo

Nome

Unidade I

Banco de Dados I 26

Transformaes entre modelos

Implementao generalizao / especializao:


uma nica tabela para toda hierarquia generalizao/ especializao

Modelo conceitual
Tipo de empregado Nome CIC Nome

Modelo lgico
Empregado (CodEmp, Nome, CIC, TipoEmp, NumCartHab, CREA, CodDep, CodRamo ) CodDep referencia Departamento CodRamo referencia Ramo

Cdigo EMPREGADO

(0, n) LOTAO

(1, 1) DEPARTAMENTO

Departamento (CodDep, Nome)

Ramo (CodRamo, (CodRamo Nome)


CREA Cdigo

Projeto (CodProj, Nome) ProcText (CodProc, Nome)


MOTORISTA SECRETRIA (1, n) Carteira de Habilitao DOMNIO (0, ( , n) ) PROCESSADOR DE TEXTO ENGENHEIRO (0, n) PARTICIPAO (0, ( , n) ) PROJETO (1, ( , 1) ) RAMO DA ENGENHARIA

(0, n)

Dominio (CodEmp, CodProc) CodEmp referencia Empregado CodProc referencia ProcText Participacao (CodEmp, CodProj) CodEmp referencia Empregado CodProj j referencia Projeto j

Cdigo

Nome

Cdigo

Nome

Cdigo

Nome

Unidade I

Banco de Dados I 27

Transformaes entre modelos

Implementao generalizao / especializao:

uma tabela para cada entidade de generalizao / especializao


Modelo conceitual

Unidade I

Banco de Dados I 28

Transformaes entre modelos

Implementao generalizao / especializao:

uma tabela para cada entidade de generalizao / especializao


Modelo conceitual Modelo lgico
Empregado p g (CodEmp, ( p, Nome, , CIC, , Tipo, p , CodDep) p) CodDep referencia Departamento Departamento (CodDep, Nome) Motorista (CodEmp, (CodEmp NumCartHab) Engenheiro (CodEmp, CREA, CodRamo) CodRamo referencia Ramo Ramo (CodRamo, Nome) Projeto (CodProj, Nome) ProcText (CodProc (CodProc, Nome) Dominio (CodEmp, CodProc) CodEmp referencia Empregado CodProc referencia ProcText Participacao (CodEmp, CodProj) CodEmp referencia Empregado CodProj referencia Projeto

Unidade I

Banco de Dados I 29

Transformaes entre modelos

TRADUO DE GENERALIZAO/ESPECIALIZAO COMPARAO DAS IMPLEMENTAES


UMA TABELA PARA TODA A HIERARQUIA VANTAGENS
- Dados referentes a uma ocorrncia de entidade genrica bem como as ocorrncias de suas especializaes esto numa mesma linha; - Chave primria da hierarquia armazenada uma nica vez.

UMA TABELA PARA CADA ENTIDADE DA HIERARQUIA VANTAGENS


- Colunas opcionais p que q aparecem p so apenas p aquelas q referentes a atributos que podem ser vazios do ponto de vista da aplicao; - Controle das colunas opcionais feito pela aplicao com base no valor da coluna tipo p e no pelo p SGBDR.

DECISO
- O projetista j ti t optar t pela l mais i adequada d d sua situao. it

Unidade I

Banco de Dados I 30

Transformaes entre modelos

REFINAMENTOS NO MODELO RELACIONAL


Em certas circunstncias o projeto de BD desenvolvido pela observao cuidadosa das regras de traduo mostradas, pode no atender aos requisitos de performance impostos ao sistema. p preciso buscar alternativas que q resultem em Diante desta situao melhor performance, mesmo com a desobedincia das regras de traduo. Estas alternativas s devem ser adotadas em ltimo caso, caso pois o seu uso indiscriminado levam a resultados piores do que o esperado.

Sero mostradas a seguir algumas destas alternativas.

Unidade I

Banco de Dados I 31

Transformaes entre modelos RELACIONAMENTOS MUTUAMENTE EXCLUSIVOS nome nmero data (0,1) PESSOA FSICA
Implementao pelas regras: PessoaFsica(CICPessoaFisica,Nome_PF) PessoaJurdica(CGCPessoaJuridica Nome PJ) PessoaJurdica(CGCPessoaJuridica,Nome_PJ) Venda(NumeroVenda,Data_Vda,CICPessoaFisica, CGCPessoaJuridica) CICPessoaFisica referencia PessoaFsica CGCPessoaJuridica referencia PessoaJurdica Alternativa: PessoaFsica(CICPessoaFisica,Nome_PF) PessoaJurdica(CGCPessoaJuridica,Nome_PJ) Venda(NumeroVenda,Data_Vda,CIC/CGC,Tipo) - Evita-se colunas opcionais; - No permite especificar ao SGBDR que CIC/CGC chave estrangeira.

CIC

(0,n) VENDA (0 n) (0,n)

CGC (0,1)

razo social i l

PESSOA JURDICA

Unidade I

Banco de Dados I 32

Transformaes entre modelos SIMULAO DE ATRIBUTOS MULTI-VALORADOS cdigo nome cdigo nome

CLIENTE telefone(0,n)
Implementao pelas regras: Cliente(CodigoCliente,Nome_Cli) Telefone(CodigoCliente,Nmero_Tel) ( g _ ) CodigoCliente referencia Cliente

CLIENTE (1,1)

nmero (0 ) (0,n) TELEFONE


- Evita-se a juno; - Pode haver coluna opcional. p

Alternativa: Cliente(CodigoCliente,Nome_Cli, Nro_Tel1,Nro_Tel2)

Unidade I

Banco de Dados I 33

Transformaes entre modelos USO DE INFORMAES REDUNDANTES cdigo roteiro nro de reservas

VO (1,1)
- O nmero de reservas feito atravs de uma contagem das linhas da tabela reserva. Sob o ponto de vista de projeto, esta uma informao redundante. -Um atributo contendo este valor poderia contribuir com a performance, uma vez que no seria necessria uma contagem em toda tabela quando se necessitasse desta informao.

nro (0 ) (0,n) RESERVA

passageiro

Unidade I

Banco de Dados I 34