Transformações entre modelos Níveis de Abstração Modelo de Banco Mundo Real Modelo Modelo de Banco de Dados Modelo Conceitual Analista Descreve Modelo Lógico Mini-mundo Projeto de Banco de Dados Modelo Físico organiza idéias (abstração da realidade) Define BD Banco de Dados I Unidade I BD 1
34
Embed
Transformações entre modelos Níveis de Abstração · transformações entre modelos traduÇÃo de relacionamentotraduÇÃo de relacionamento por adiÇÃo de colunas nas tabelas
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Transformações entre modelos
Níveis de Abstração
Modelo de BancoMundo Real
Modelo
Modelo de Banco de Dados
Modelo ConceitualAnalista
DescreveModelo LógicoMini-mundo
Projeto de Banco de
Dados
Modelo Físico
organiza idéias(abstração da realidade)
Define
BD
Banco de Dados IUnidade I
BD
1
Transformações entre modelosFases: Projeto de Banco de Dados
Modelo conceitual
Modelo lógico
Esquema relacionalTipo_Produto (Codigo, Descricao)P d t (C di N P C d Ti )
gProduto (Codigo, Nome, Preco, Cod_Tipo)
Cod_Tipo referencia Tipo_Produto)
CODIGO DESCRICAO1 COMPUTADOR2 IMPRESSORA
TIPO_PRODUTO
Banco de Dados
Modelo físicoCODIGO DESCRICAO PRECO COD_TIPO1 DESKTOP DELL MODELO P III 2500 12 NOTEBOOK TOSHIBA L 1.7 3500 13 HP 692 C JATO DE TINTA 600 2
PRODUTO
BD
Banco de Dados IUnidade I
3 HP 692 C JATO DE TINTA 600 24 EPSON 1500 L LASER 1200 2 BD
2
Transformações entre modelos
Transformação de DER para RelacionalImplementação de entidades:
Entidade normalmente transforma-se em tabela:Atributo da entidade (“simples”): coluna da tabelaAtributo da entidade ( simples ): coluna da tabela
Nomes: curtos, significativos, sem “brancos”, se preciso usar abreviaturaspAbreviatura: usar mesmo princípio em todo BD
Atributo identificador da entidade: chave primária
CONVENÇÕES PARA NOMEAR TABELAS E COLUNAS DE TABELAS ÇDURANTE A TRADUÇÃO
- usar os nomes das tabelas no singular;- nomes de colunas extensivamente utilizados na
aplicação = devem ser o mais curtos possíveis;- nomes de atributos compostos de diversas palavras- nomes de atributos compostos de diversas palavras
devem ser abreviados;- SGBDR não aceita brancos nos nomes de colunas, se
preciso usar “underline”;- não se inclui o nome da tabela no nome da coluna;
a chave primária de uma tabela é uma exceção =- a chave primária de uma tabela é uma exceção = poderá ser uma chave estrangeira de uma outra tabela;
- abreviaturas usadas em nomes de colunas devem serabreviaturas usadas em nomes de colunas devem ser utilizadas da mesma forma em todo o BD.
Banco de Dados IUnidade I 4
Transformações entre modelosTRADUÇÃO DE RELACIONAMENTOS
- As cardinalidades são os fatores determinantes;- Três formas básicas de implementação:
Ó- por TABELA PRÓPRIA PARA O RELACIONAMENTO;
E1 E2RE1 E2R
TRADUÇÃO
Banco de Dados IUnidade I 5
Transformações entre modelosTRADUÇÃO DE RELACIONAMENTO
ÓPOR TABELA PRÓPRIACriar uma tabela para o relacionamento com as seguintes colunas:-os identificadores das entidades que participam do relacionamento;q p p ;-as colunas dos atributos do relacionamento.- A chave primária será o conjunto das colunas correspondentes aos identificadores das entidades que participam do relacionamento.
CodigoEngenheiro referencia EngenheiroC di P j t f i P j t
Banco de Dados IUnidade I
CodigoProjeto referencia Projeto
6
Transformações entre modelos
TRADUÇÃO DE RELACIONAMENTOSTRADUÇÃO DE RELACIONAMENTOS- por ADIÇÃO DE COLUNAS numa das tabelas que participam do
relacionamento; e
E1 E2R
relacionamento; e
TRADUÇÃO
Banco de Dados IUnidade I 7
Transformações entre modelos
TRADUÇÃO DE RELACIONAMENTOTRADUÇÃO DE RELACIONAMENTOPOR ADIÇÃO DE COLUNAS NAS TABELAS QUE PARTICIPAM DO RELACIONAMENTO
- Só é possível quando há um relacionamento com cardinalidade máxima 1;Só é possível quando há um relacionamento com cardinalidade máxima 1;- Insere-se na tabela que tem o relacionamento com cardinalidade n;- O(s) identificador(es) da outra tabela serão chave(s) estrangeira(s);
O( ) t ib t ( ) ó i d l i t- O(s) atributo(s) próprios do relacionamento.
código nome código nomed t l t ã
DEPARTAMENTO
g
(1,1)EMPREGADO
g
(0,n)LOTAÇÃO
data lotação
DEPARTAMENTO
Departamento(CodigoDepartamento,Nome_Dep)
EMPREGADOLOTAÇÃO
Empregado(CodigoEmpregado,Nome_Emp,CodigoDepartamento,Data_Lot)CodigoDepartamento referencia Departamento
Banco de Dados IUnidade I 8
Transformações entre modelos
TRADUÇÃO DE RELACIONAMENTOSTRADUÇÃO DE RELACIONAMENTOS- por FUSÃO DAS TABELAS das entidades que participam do
relacionamento.
E1 E2R
TRADUÇÃO
Banco de Dados IUnidade I 9
Transformações entre modelos
TRADUÇÃO DE RELACIONAMENTOTRADUÇÃO DE RELACIONAMENTOPOR FUSÃO DE TABELAS DE ENTIDADES QUE
PARTICIPAM DO RELACIONAMENTO
- Só é possível quando o relacionamento é 1:1;- Insere-se na tabela os atributos das entidades e do próprio
Dominio (CodEmp, CodProc)CodEmp referencia EmpregadoCodProc referencia ProcText
PROJETO
( , )( , )
Código Nome
PROCESSADORDE TEXTO
Código Nome
RAMO DAENGENHARIA
( , )
Código Nome
Participacao (CodEmp, CodProj)CodEmp referencia EmpregadoCodProj referencia Projeto
Banco de Dados IUnidade I
Código Nome Código Nome Código Nome j j
27
Transformações entre modelosImplementação generalização / especialização:
uma tabela para cada entidade de generalização / especializaçãouma tabela para cada entidade de generalização / especializaçãoModelo conceitual
Banco de Dados IUnidade I 28
Transformações entre modelosImplementação generalização / especialização:
uma tabela para cada entidade de generalização / especializaçãouma tabela para cada entidade de generalização / especializaçãoModelo conceitual Modelo lógico
Empregado (CodEmp, Nome, CIC, Tipo, CodDep)p g ( p, , , p , p)CodDep referencia Departamento
Motorista (CodEmp NumCartHab)
Departamento (CodDep, Nome)
Motorista (CodEmp, NumCartHab)
Engenheiro (CodEmp, CREA, CodRamo)
CodRamo referencia Ramo
Ramo (CodRamo, Nome)
ProcText (CodProc Nome)
Projeto (CodProj, Nome)
ProcText (CodProc, Nome)
Dominio (CodEmp, CodProc)CodEmp referencia EmpregadoCodProc referencia ProcText
Participacao (CodEmp, CodProj)CodEmp referencia Empregado
Banco de Dados IUnidade I
CodProj referencia Projeto
29
Transformações entre modelos
TRADUÇÃO DE GENERALIZAÇÃO/ESPECIALIZAÇÃOÇ Ç ÇCOMPARAÇÃO DAS IMPLEMENTAÇÕES
UMA TABELA PARA TODA A HIERARQUIA
VANTAGENS- Dados referentes a uma ocorrência de entidade genérica bem como
as ocorrências de suas especializações estão numa mesma linha;as ocorrências de suas especializações estão numa mesma linha;- Chave primária da hierarquia é armazenada uma única vez.
UMA TABELA PARA CADA ENTIDADE DA HIERARQUIAUMA TABELA PARA CADA ENTIDADE DA HIERARQUIAVANTAGENS- Colunas opcionais que aparecem são apenas aquelas referentes a p q p p q
atributos que podem ser vazios do ponto de vista da aplicação;- Controle das colunas opcionais é feito pela aplicação com base no
valor da coluna tipo e não pelo SGBDR.p p
DECISÃOO j ti t t á l i d d à it ã
Banco de Dados IUnidade I
- O projetista optará pela mais adequada à sua situação.
30
Transformações entre modelos
REFINAMENTOS NO MODELO RELACIONAL
Em certas circunstâncias o projeto de BD desenvolvido pela observação cuidadosa das regras de tradução mostradas, pode não atenderobservação cuidadosa das regras de tradução mostradas, pode não atender aos requisitos de performance impostos ao sistema.
Diante desta situação é preciso buscar alternativas que resultem em ç p qmelhor performance, mesmo com a desobediência das regras de tradução.
Estas alternativas só devem ser adotadas em último caso pois o seuEstas alternativas só devem ser adotadas em último caso, pois o seu uso indiscriminado levam a resultados piores do que o esperado.
Serão mostradas a seguir algumas destas alternativas.
Banco de Dados IUnidade I 31
Transformações entre modelos
RELACIONAMENTOS MUTUAMENTE EXCLUSIVOSnúmero dataCIC nome
PESSOA FÍSICA(0,1)
VENDA(0,n)
(0 n)
CGC ã i l
(0,n)Implementação pelas regras:
PessoaFísica(CICPessoaFisica,Nome_PF)PessoaJurídica(CGCPessoaJuridica Nome PJ)
O número de reservas é feito atravésde uma contagem das linhas da tabelareserva. Sob o ponto de vista de projeto, esta é uma informação redundante. nro
RESERVA
(0,n)-Um atributo contendo este valor poderiacontribuir com a performance,uma vez que não seria necessária umauma vez que não seria necessária umacontagem em toda tabela quando se necessitasse desta informação.