DCC011 Introução a Banco e Daos -20 Revisão: Moelagem e Daos Mirella M. Moro Departamento e Ciência a Computação Universiae Feeral e Minas Gerais mirella@cc.ufmg.br Revisão: Projeto e Bancos e Daos Inepenente e SGBD Específico para um SGBD Requisitos Funcionais Análise Funcional Especificação as Transações (em alto nível) Projeto as Aplicações Implementação Mini-Muno Análise e Requisitos Requisitos o BD Projeto Conceitual Esquema Conceitual (em um moelo e aos e alto nível) Projeto Lógico Esquema Lógico (em um moelo e aos lógico) Projeto Físico Esquema Físico (para um SGBD específico) Moelo ER Moelo Relacional SGBD Relacional Revisão: Processo e Projeto e BD Caracterização Complexiae Multipliciae e tarefas Fases Coleção e análise e requisitos Projeto conceitual Escolha e um SGBD Projeto lógico ou mapeamento para o moelo e aos o SGBD escolhio Projeto físico Implementação e tuning Programas DCC011 - profa. Mirella 3 4 Revisão:Estratégias para o Projeto o Esquema Conceitual Centralizao Toos os requisitos são capturaos e uma vez Aboragem e integração e visões Uma visão éprojetaa para caa grupo e usuários e aplicações Subseqüentemente essas visões são integraas em um esquema conceitual global Revisão: Proprieaes e Moelos ER (a) Moelo ER é um moelo formal Preciso, não ambíguo (b) Poer e expressão é limitao Restrições e integriae (c) Equivalência entre moelos Expressam a mesma realiae 5 6
Revisão: equivalência Revisão: Processo e Construção A. Ientificano construções Atributo versus entiae relacionaa Atributo versus especialização/generalização Atributo opcional Atributo multivalorao B. Verificação o moelo Moelo eve ser correto, completo, livre e reunâncias C. Moelo eve refletir o aspecto temporal D. Estratégias e moelagem 7 8 EXEMPLO Reserva e passagens aéreas O objetivo o trabalho é projetar um sistema e reservas para uma companhia e aviação. O sistema contará com um banco e aos central, que será acessao por aplicações clientes, roano tanto entro a própria companhia, quanto fora ela. A transação central o sistema é a reserva. Uma reserva é ientificaa por um cóigo gerao pelo sistema em computaor. A reserva é feita para um único passageiro, o qual se conhece apenas o nome. A reserva compreene um conjunto e trechos e vôos, que acontecerão em eterminaa ata/hora. Para caa trecho, a reserva é feita em uma classe (econômica, executiva, etc) Um vôo é ientificao por um cóigo e possui uma origem e um estino. Por exemplo, o vôo 959 sai e Porto Alegre com estino a São Paulo. Um vôo é composto e vários trechos, corresponeno às escalas intermeiárias o vôo. Por exemplo, o vôo 959 é composto e ois trechos, um e Porto Alegre a Lonrina, o outro e Lonrina a São Paulo. Cabe salientar que há ciaes que são servias por vários aeroportos. Por isso, é importante informar ao passageiro que faz a reserva qual é o aeroporto no qual o vôo passa. Reserva e passagens aéreas Às vezes os clientes, ao fazer a reserva querem saber qual é o tipo e aeronave que será utilizaa em eterminao trecho e vôo. Alguns poucos vôos, principalmente internacionais, têm troca e aeronave em eterminaas escalas. Nem toos vôos operam em toos ias a semana. Inclusive, certos vôos têm pequenas muanças e horário em certos ias a semana. Caa reserva possui um prazo e valiae. Caso os bilhetes não tenham sio emitios até esgotar-se o prazo a reserva, a mesma é cancelaa. Reservas poem ser prorrogaas. Como o check-in e toos os vôos está informatizao, a companhia possibilita a reserva e assento para o passageiro. Reservas e assento poem ser feitas com até três meses e anteceência. Além e efetivar reservas, o sistema eve servir para vários tipos e consultas que os clientes poem querer fazer: Possibiliaes e viagem e uma ciae ou e um aeroporto para outro O mesmo, mas restrito a eterminaos ias a semana Horários e chegaa ou e saía em eterminaos vôos Disponibiliae e vagas em um trecho e vôo Disponibiliae e eterminaos assentos em um trecho e vôo 9 10 a. entiaes b. relacionamentos Entiaes Companhia, reserva, passageiro, trecho, voo, ciae, aeroporto, tipo-aeronave, horário, assento Não foi criaa uma entiae Pessoas que efetivaram a reserva Problema e homônimos Atributo reserva 11 12
c. Atributos e ientificaores. Restrições e integriae RESERVA (coigo reserva, passageiro, prazo) VOO (numero) TRECHO () AEROPORTO (coigo, nome) CIDADE (coigo, nome, país) TIPO AERONAVE (coigo, escrição) HORARIO (ia semana, horário partia, horário chegaa) ASSENTO (numero, classe) RSRV-TRCH (ata) Uma reserva e trecho somente poe ser realizaa caso existam vagas no trecho em questão na ata em questão Uma reserva para um assento somente poe ser feita se o assento em questão existir no tipo e aeronave utilizaa no trecho e vôo em questão 13 14 e. Reunância e esempenho Observação geral Solução aotaa conceitual Não inclui reunâncias e aos que objetivem melhorar o esempenho Não atributos reunantes Número e vagas em um trecho e vôo, em uma ata, inclusive iscriminao por classe Criar entiae TRECHO-DIA Etapa e projeto Mapeamento ER - Relacional 1. Transformações entre Moelos 2. Algoritmo e mapeamento ER Relacional 15 1. Transformações entre Moelos Transformações entre Moelos Uma vez efinio o moelo conceitual, o próximo passo é efinir o moelo lógico Uma alternativa: mapear as construções o moelo conceitual para o lógico 17 18
Transformações entre Moelos Transformações ER para Relacional Regras gerais Aplicáveis à maioria os casos Há situações Por exigências a aplicação, outros mapeamentos são usaos Implementaas em ferramentas CASE Objetivos básicos Bom esempenho Simplificar o esenvolvimento 19 20 Regras gerais e traução A. Evitar junções A. Evitar junções B. Diminuir o número e chaves C. Evitar campos opcionais Junções Operação para buscar aos e iversas linhas associaas pela igualae e campos Daos e empregaos e seus respectivos epartamentos SGBD relacional normalmente armazena os aos e uma linha contiguamente em isco Junção envolve iversos acessos a isco Preferível Ter os aos necessários a uma consulta em uma única linha 21 22 B. Chave e Ínice C. Campos opcionais Implementação eficiente o controle e chaves: SGBD usa um ínice Ínices tenem a ocupar espaço consierável em isco Inserção e remoção e entraas em um ínice Poem exigir iversos acesso a isco Campo opcional = campo que poe assumir o valor vazio(null em SQL) SGBD relacional não esperiça espaço pelo fato e campos e uma linha estarem vazios Campo opcional não tem influência no esempenho EVITAR porque controle e campo opcional poe complicar programação Verifica quais campos poem estar vazios 23 24
2. Algoritmo e Mapeamento Elmasri & Navathe a. Entiaes regulares b. Atributos multivaloraos c. Entiaes fracas. Relacionamentos.1 1:1.2 1:N.3 N:M.4 Relacionamentos N-ários e. Hierarquias (Especializações/Generalizações) Exemplo e um Diagrama ER NomeEmp Salário NDept NomeDept N Trabalha-para 1 Departamento 1 1 Gerencia 1 1 Possui M Controla N N Participa-e N Depenente Projeto Ramal NomeDep DataNasc NProj HsTrab NomeProj Local 25 26 a. Entiaes regulares (sem atributos multivaloraos) Entiaes regulares (sem atributos multivaloraos) Entiae regular E Relação R Atributo em E Coluna em R Atributo ientificaor em E Chave primária em R NomeEmp Salário (, NomeEmp, Salário) 27 28 Observação: Nomes e colunas Referenciaos freqüentemente em programas e outras formas e texto em computaor Para iminuir o trabalho e programaores manter os nomes e colunas curtos SGBD relacional: nome e uma coluna não poe conter brancos Não transcrever os nomes atributos nomes colunas Nomes e colunas não necessitam conter o nome a tabela Preferível usar o nome e coluna NOME a usar os nomes e coluna NOMEPESS ou NOMEPESSOA Observação: Nome a chave Chave primária Poe aparecer em outras tabelas na forma e chave estrangeira Recomenável Nomes as colunas que compõem a chave primária: sufixaos ou prefixaos com o nome ou sigla a tabela na qual aparecem como chave primária Exemplo: CoigoPess 29 30
b. Atributos Multivaloraos c. Entiae Fraca Departamento NDept NomeDept Ramal 1 N Possui Depenente NomeDep DataNasc Departamento (NDept, NomeDept) Ramal-Departamento (NDept, Ramal) NDept referencia Departamento, por propagação (,...) Depenente (,NomeDep, DataNasc) referencia, por propagação 31 32. Relacionamentos.1. Relacionamento binário 1:1 (aição e colunas) Tabela própria Aição e colunas a uma as tabelas Fusão e tabelas Alternativa epene a carinaliae (máxima e mínima) o relacionamento.1 1:1.2 1:N.3 N:M.4 Relacionamentos N-ários (,...) 1 Gerencia Departamento (NDept,..., ) 1 Departamento NDept Chave alternativa referencia, por bloqueio 33 34 Relacionamento binário 1:1 (fusão e tabelas) Relacionamento binário 1:1 (aição e colunas) Conferência (CoConf, Nome, DataInstComOrg, EnerComOrg) Departamento (CoDept, Nome) (CoEmp, Nome, CoDept, DataLota) CoDept referencia Departamento 35 36
Relacionamento binário (0,1) (1,1) (0,1) (0,1) ambas opcionais Aição e Colunas Mulher (IentM, Nome, IentH, Data, Regime) IentH referencia Homem Homem (IentH, Nome) 37 38 (0,1) (0,1) ambas opcionais (0,1) (0,1) ambas opcionais Tabela Própria Mulher (IentM, Nome) Homem (IentH, Nome) Casamento (IentM, IentH, Data, Regime) IentM referencia Mulher IentH referencia Homem Fusão e Tabelas Casamento (IentM, IentH, Data, Regime, NomeH, NomeM) 39 40 (0,1) (0,1) ambas opcionais (0,1) (1,1) opcional e obrigatória Solução por fusão e tabelas é inviável Chave primária artificial Solução por aição e colunas melhor Menor número e junções Menor número e chaves Solução por tabela própria aceitável Fusão e Tabelas Correntista (CoCorrent, Nome, CoCartao, DataExp) 41 42
(0,1) (1,1) opcional e obrigatória (0,1) (1,1) opcional e obrigatória Aição e Colunas Correntista (CoCorrent, Nome) Cartao (CoCartao, DataExp, CoCorrent) CoCorrent referencia Correntista Tabela Própria Correntista (CoCorrent, Nome) Cartao (CoCartao, DataExp) CartaoCorrentista (CoCartao, CoCorrent) CoCorrent referencia Correntista CoCartao referencia Cartao 43 44 (0,1) (1,1) opcional e obrigatória Solução por tabela própria é pior que a solução por aição e colunas Maior número e junções Maior número e ínices Nenhum tem problema e campos opcionais Aição e colunas versus fusão e tabelas Fusão é melhor em termos e número e junções e número e chaves Aição é melhor em termos e campos opcionais Fusão é consieraa a melhor e aição é aceitável Fusão e Tabelas (1,1) (1,1) ambas obrigatórias Conferência (CoConf, Nome, DataInstComOrg, EnerComOrg) 45 46 (1,1) (1,1) ambas obrigatórias.2. Relacionamento binário 1:N Nenhuma as emais alternativas atene plenamente Em ambas Entiaes que participam o relacionamento seriam representaas através e uas tabelas istintas Estas tabelas teriam a mesma chave primária e relação um-para-um entre suas linhas Maior número e junções Maior número e chaves primárias 47 N Trabalha -para (,...) Departamento (NDept,...) Trabalha-para(, Nept) referencia, por propagação NDept referencia Departamento, por bloqueio π()= π (Trabalha-para) 1 Departamento NDept 48
Relacionamento binário 1:N (mapeamento otimizao) (1:N) N Trabalha -para 1 Departamento NDept (,..., NDept) NDept referencia Departamento, por bloqueio Departamento (NDept,...) 49 50 (1,1) (0,N) (1,1) (0,N) Aição e Colunas Departamento (CoDept, Nome) (CoEmp, Nome, CoDept, DataLota) CoDept referencia Departamento Tabela Própria Departamento (CoDept, Nome) (CoEmp, Nome) Lotacao (CoEmp, CoDept, DataLota) CoDept referencia Departamento CoEmp referencia 51 52 (1,1) (0,N) (0,1) (0,N) Fusão e Tabelas Não se aplica Implicaria em Reunância e aos e epartamento ou Tabela aninhaa Aição e colunas é melhor que tabela própria Menor número e chaves Menor número e junções Não há problema e campos opcionais Aição e Colunas Financeira (CoFin, Nome) Vena (IVena, Data, CoFin, NoParc, TxJuros) CoFin referencia Financeira 53 54
(0,1) (0,N) (0,1) (0,N) Implementação por tabela própria também é aceitável É melhor em relação a campos opcionais Pere em relação a junções e número e chaves Tabela Própria Financeira (CoFin, Nome) Vena (IVena, Data) Financiam (IVena, CoFin, NoParc, TxJuros) IVena referencia Vena CoFin referencia Financeira 55 56.3. Relacionamento binário N:M Relacionamento binário (N:M) M Participa -e N Projeto HsTrab NProj (,...) Projeto (NProj,...) Participa-e(, NProj, HsTrab) referencia, por propagação NProj referencia Projeto, por propagação 57 58 Relacionamento binário (N:M).4. Relacionamento N-ario Tabela Própria Engenheiro (CoEng, Nome) Projeto (CoProj, Titulo) Atuacao (CoEng, CoProj, Funcao) CoEng referencia Engenheiro CoProj referencia Projeto Não são efinias regras específicas O relacionamento é transformao em uma entiae São aplicaas regras e implementação e relacionamentos binários Nova entiae Rel Colunas = chaves primárias as tabelas relacionaas 59 60
Relacionamento N-ario e. Hierarquias Geralmente quatro opções e.1. Relações : superclasse e subclasses e.2. Relações : subclasses e.3. Relação única e.4. Relação única : atributos tipo 61 62 Hierarquias e.1. Relações superclasse+subclasses NomeEmp Salário Gerente Técnico = Gerente Técnico Gerente Técnico = φ SalA Formação 63 Gerente Técnico SalA Formação (,...) Gerente (, SalA) Técnico (, Formação) p Gerente [] [] p Técnico [] [] π(gerente) π (Técnico) = φ π(gerente) π (Técnico) = π () 64 e.1. Relações superclasse + subclasses e.2. Relações subclasses Gerente (,..., SalA) Técnico (,..., Formação) Gerente Técnico π(gerente) π (Técnico) = φ π(gerente) π (Técnico) = toos empregaos 65 SalA Formação 66
e.3. Relação única Gerente Técnico (,..., SalA, Formação) π π π (σ SalA nulo (σ Formação nulo (σ SalA nulo ()) ()) = φ ()) π (σ Formação nulo ()) = π () 67 SalA Formação 68 e.4. Relação única: atributos tipo o 69 70