Baixe o app para aproveitar ainda mais
Prévia do material em texto
P j t d B dProjeto de Banco de DadosDados Unidade 3: Projeto LógicoProjeto Lógico P f M l X i Rib iProfa. Marcela Xavier Ribeiro 1 UNIDADE 3 Projeto LógicoUNIDADE 3 – Projeto Lógico Objetivos • Apresentar conceitos avançados sobre o Projeto Lógico:j g – Refinamento do Modelo Conceitual; – Revisão de Mapeamento;Revisão de Mapeamento; – Esquema de Navegação para Operações no Banco de Dados; – Modelagem de Carga do Banco; 2 Projeto Lógico de Banco de Dados • Nesta fase é feito o mapeamento do esquema conceitual para o esquemaesquema conceitual para o esquema lógico; • É voltado para o Modelo de Dados adotado para a implementação;adotado para a implementação; • Gera o Esquema de Banco de Dados• Gera o Esquema de Banco de Dados Relacional (caso esteja trabalhando com o esquema relacional) que atende aso esquema relacional) que atende as necessidades do usuário; 3 Projeto Lógico de Banco de DadosProjeto Lógico de Banco de Dados O que é feito nesta etapa? • Nessa etapa, visando o desempenho da realização das operações sobre o banco são feitos: Refinamento do Esquema Conceitual– Refinamento do Esquema Conceitual M t M d l R l i l– Mapeamento para o Modelo Relacional – Refinamento do Modelo Relacional 4 Projeto Lógico de Banco de Dadosj g Refinamento do Esquema Conceitual Visando desempenhoVisando desempenho • O objetivo é fazer com que operações frequentes/críticas sejam executadas mais eficientemente; • Como? – Nesta etapa ainda não é possível ter uma– Nesta etapa, ainda não é possível ter uma estimativa precisa do número de acessos aos dados, pois isso é definido em uma fase posterior; 5 Projeto Lógico de Banco de Dadosj g Refinamento do Esquema Conceitual Visando desempenhoVisando desempenho • Continuação: N t t b d i ã d á i já– No entanto, com base na descrição do usuário já é possível saber quais as operações mais críticas/frequentes, cujo esquema deve ser j t d f jajustado para fazer com que as mesmas sejam realizadas eficientemente; – O que deve ser feito é refinar o esquema de maneira a red ir o número de acessos lógicos emaneira a reduzir o número de acessos lógicos e quantidade de informação transferida para a memória durante operações frequentes/críticas d ltde consultas; 6 Projeto Lógico de Banco de Dados Refinamento do Esquema Conceitual Particionamento de Entidades • Particionamento de Entidades – Visa reduzir o tamanho da tabela mantendoVisa reduzir o tamanho da tabela, mantendo os atributos mais acessados separados dos menos acessados; – Cria-se uma sub-entidade com os atributos (que não são chave) que são mais acessados e outra sub-entidade com os atributos que são menos acessadosatributos que são menos acessados. 7 Projeto Lógico de Banco de Dados R fi t d E C it lRefinamento do Esquema Conceitual Particionamento de Entidades • Suponha que acidade Suponha que a maioria de operações sobre a tid d Li nome isbn cidade entidade Livro, usem os atributos nome, primeiro autor, Livro editora p _ , edição. nropags primeiro autor edição • Somente as operações anuais do relatório dos livros _autor edição idioma relatório dos livros usam as demais informações. 8 resumo Projeto Lógico de Banco de Dados R fi t d E C it lRefinamento do Esquema Conceitual Particionamento de Entidades Continuaçãocidade Continuação... • Nesse caso, a nome isbn cidade , entidade Livro pode ser particionada para acelerar asLivro editora acelerar as operações de consulta. nropags primeiro autor edição_autor edição idioma 9 resumo Projeto Lógico de Banco de Dados Refinamento do Esquema Conceitual Particionamento de Entidades isbn Cidade nome Livro Detalhes Livro Tem editora (1,1) (1,1) primeiro_ autor edição nropags Entidade fraca idioma 10 resumo Projeto Lógico de Banco de Dados Refinamento do Esquema Conceitual Fusão de Entidades • É a operação inversa doÉ a operação inversa do particionamento de entidade; • É usado em relacionamentos 1:1 dquando: – o número de operações que usam o relacionamento é maior que o número de operações nas entidades separadas; 11 Projeto Lógico de Banco de Dados Refinamento do Esquema Conceitual Fusão de Entidades nroCarro modelo (1 1)(1 1) Carro Placa cidade nroplaca(1,1)(1,1) tem ano cor cidade estado Exemplo 12 Exemplo Projeto Lógico de Banco de Dados Refinamento do Esquema Conceitual Fusão de Entidades nroCarro estado modelo Criar uma única tid d C nroplaca entidade Carro, abrangendo informações deCarro cor cidade informações de sua placa Carro ano cor Exemplo 13 Exemplo Projeto Lógico de Banco de Dados Refinamento do Esquema Conceitual Reprodução de atributosp ç • atributos da entidade B podem ser replicados tid d Ana entidade A se: – A entidade A está relacionada direta ou indiretamente com uma entidade B eindiretamente com uma entidade B, e – São realizadas constantemente operações de junções para a consulta desses atributos;j ç p ; • Essa junção leva a necessidade deEssa junção leva a necessidade de operações adicionais para manter a consistência dos dados replicados, por isso, deve ser avaliada antes de ser aplicada. 14 Projeto Lógico de Banco de Dados Refinamento do Esquema Conceitual Reprodução de atributosp ç • Exemplo atendente QuantidadeEstoque Pessoa SanguetemColetaFaz coletaPessoa dataColeta TipoSangid p gnrocolidpessoa Se sempre são realizadas operações de junção para consultar o tipo sanguíneo da pessoa, então para 15 otimizar pode-se replicar o atributo tipo sanguíneo, adicionando-o em pessoa. Projeto Lógico de Banco de DadosProjeto Lógico de Banco de Dados Mapeamento • Mapear as Entidades/Relacionamentos p para o Esquema Relacional; 16 MapeamentoMapeamento Passo 1: Entidades Regulares • Para cada entidade regular E no DER, criar l ã Ruma relação R: – Atributos simples: inclua todos os atributos simples de E;simples de E; – Atributo composto: inclua apenas os atributos simples que compõem o atributo composto. placa Carro(placa, cor,modelo, ano) Carro d l cor 17 modelo ano MapeamentoMapeamento Passo 1: Entidades Regulares • Tratamento de Atributos multivalorados: – para cada atributo multivalorado m, criar uma relação contendo esse atributo m e auma relação contendo esse atributo m e a chave primária ch da relação original; – a chave da nova relação será: P t ib t i l t h• Para atributo m simples: composta por m e ch; • Se atributo multivalorado composto: um subconjunto de atributos simples de msubconjunto de atributos simples de m juntamente com ch. 18 MapeamentoMapeamento Passo 1: Entidades Regulares kmoficina Carro placa revisao Carro tipo ano motoristacor potenciamodelo Carro(placa, cor,ano,modelo, potencia) CarroRevisao(placa, km,oficina) CarroMotorista(placa motorista) 19 CarroMotorista(placa, motorista) MapeamentoMapeamento Passo 2: Entidade fraca • Para cada entidade fraca W do DER com identificação da entidade E:identificação da entidade E: – criar uma relação R que inclua todos os atributos ç q simples (ou os componentes simples de atributos compostos) de W como atributos de R. – incluir como chave estrangeira de R a chave primária da relação que corresponde ao tipo de entidade de identificação; ç ; – a chave primária de R é a combinação da chave primária da entidade de identificação e a chaveprimária da entidade de identificação e a chave principal da entidade fraca W. 20 MapeamentoMapeamento Passo 2: Entidade fraca N1parentesco Empregado Dependente1 Possui NomeDependnroEmp nome NomeDependnroEmp nome Empregado(nroEmp nome)Empregado(nroEmp, nome) Dependente(nroemp, nomedepend,parentesco) 21 MapeamentoMapeamento Passo 3: Relacionamento 1:1 • Opção 1: C i l õ S T d– Criar as relações S e T que correspondem as entidades participantes do relacionamento R. – Escolher uma das relações por exemplo S– Escolher uma das relações, por exemplo S, e inclua como chave estrangeira de S a chave primária de T; – Deve-se escolher o tipo de entidade com participação total em R como a relação S. Inclua todos os atributos simples (ou os– Inclua todos os atributos simples (ou os componentes simples de atributos composto) do relacionamento como atributos d Sde S. 22 MapeamentoMapeamento Passo 3: Relacionamento 1:1 • Opção 2: pç – Criar uma única relação que engloba os atributos da entidade e doatributos da entidade e do relacionamento; Apropriada quando o relacionamento para– Apropriada quando o relacionamento para ambas as entidades é total. 23 MapeamentoMapeamento Passo 3: Relacionamento 1:1 nomedept Empregado departamento11 gerencia nrodept nroEmp nome Empregado(nroEmp, nome) Departamento(nrodept, nomedept, nroEmpGerente) 24 MapeamentoMapeamento Passo 4: Relacionamento 1:N • Passos: Id ifi l ã S– Identificar a relação S que representa a entidade que participa do lado N do relacionamento;relacionamento; – Incluir como chave estrangeira de S a chave primária da relação T que representa a outra tid d ti i d l i tentidade que participa do relacionamento; • Observe que cada instância da entidade• Observe que cada instância da entidade do lado N está relacionada a uma instância da entidade do lado 1 do tipo deinstância da entidade do lado 1 do tipo de relacionamento. 25 MapeamentoMapeamento Passo 4: Relacionamento 1:N d t Empregado departamento1N Pertence a nomedept nrodept nroEmp nome Empregado(nroEmp, nome,nrodepto) Departamento(nrodept nomedept)Departamento(nrodept, nomedept) 26 MapeamentoMapeamento Passo 5: Relacionamento M:N • Passos: – Criar uma nova relação S para representar o relacionamento; – Incluir como chave primária de S as chaves i á i d l õ ti i tprimárias das relações participantes; I l i l t ib t i l d– Incluir qualquer atributo simples do relacionamento M:N (ou componentes simples dos atributos compostos ) comosimples dos atributos compostos ) como atributos de S. 27 MapeamentoMapeamento Passo 5: Relacionamento M:N • Mapeamento para relacionamentos n- ários, com n > 2 tratamento semelhante a M:N P d d t d t t t• Pode ser adotado esse tratamento para relacionamentos 1:1 e 1:N quando: – existem poucas tuplas envolvidas no relacionamento (para evitar inserir múltiplas l d ib )vezes o mesmo valor de um atributo). 28 MapeamentoMapeamento Passo 5: Relacionamento M:N nomeproj depto Empregado ProjetoMN Trabalha em nomeproj nroproj nroEmp nome nrohoras Empregado(nroEmp, nome,depto) Projeto(nroproj, nomeproj) TrabalhaEm(nroEmp,nroProj,nrohoras) 29 MapeamentoMapeamento Hierarquias de Generalização ch a1 N ó i lid G a2 Nos próximos slides veremos o tratamento para a hierarquia de generalização: an ... generalização: E EE 30 E1 En...E2 Hierarquias de GeneralizaçãoHierarquias de Generalização Opções de Mapeamento 1. Criar uma relação para a entidade genérica G e uma relação para cada entidade especializada Ei – G(ch, a1,a2, ... ,an) – Ei(ch, atributos de Ei) 2. Criar uma relação para cada entidade ç p especializada Ei, adicionando para cada uma, os atributos da entidade genérica Opção mais adequada para hierarquia de cobertura total e de disjunção Para evitar dados – Ei(ch, a1,a2, ... ,an, atributos de Ei) 31 disjunção. Para evitar dados nulos e replicados. Não pode ser usada para cobertura parcial. Hierarquias de GeneralizaçãoHierarquias de Generalização Opções de Mapeamento 3. Criar uma única relação para a entidade genérica G, adicionando os atributos de cada entidade especializada Ei. Se as entidades especializadas são p disjuntas: • Cria-se um atributo t, para indicar a qual subentidade a tupla pertence: G(ch, a1, a2,..., an, atributos de E1 , atributos de E2 atributos de En t)E2 ... , atributos de En ,t) 32 Hierarquias de Generalização Opções de MapeamentoOpções de Mapeamento continuação: Se as entidades especializadas se sobrepõe:p – Para cada entidade especializada Ei, cria-se p i, um atributo ti, para indicar se a tupla pertence ou não à subentidade Ei : G(ch, a1,a2, ... ,an, atributos de E1, t1, atributos d E t t ib t d E t )de E2, t2, ... , atributos de En, tn, ) 33 Hierarquias de GeneralizaçãoHierarquias de Generalização Opções de Mapeamento • Uso da Opção 3 de mapeamento gera pç p g uma grande quantidades de valores nulos:nulos: – Somente é justificável quando o número de atributos das entidadesde atributos das entidades especializadas é pequeno! 34 MapeamentoMapeamento Hierarquias de Generalização • Faça o mapeamento do esquema abaixo: cpf nomecpf Pessoa nome endereco Estudante Professor codfunc ra titulaçãoanoinicio Pessoa(cpf, nome,endereco) Professor(cpf,codfunc, titulaçao) 35 ( p , , ç ) Estudante(cpf,ra,nrop, anoinicio) MapeamentoMapeamento Herança múltipla • Pode-se utilizar as opções de pç mapeamento fornecidas anteriormente; • A opção mais comum é criar uma tabela para cada entidade;para cada entidade; A h i á i d b tid d d• A chave primária da sub-entidade pode ser a chave primária de qualquer uma das classes mãedas classes mãe. 36 MapeamentoMapeamento Herança múltipla codfunc nome codcli nome endereco funcionario cliente cargocargo funcionario(codfunc,nome, cargo) Cliente interno cliente(codcli,nome, endereço) clienteinterno(codcli,codfunc,...) 37 Escolher entre para ser chave MapeamentoMapeamento Categorização - A categorização é caracterizada pela existência de entidades mãe que representamexistência de entidades mãe que representam categorias de entidades filhas. • Uma categoria pode ser: – Total/parcialTotal/parcial – Se total: • pode ser mapeada para uma generalização: caso haja compartilhamento de muitos atributos, incluindo chaves; – Superclasses podem ter diferentes atributosSuperclasses podem ter diferentes atributos chave ou mesmo da sub-classe; 38 MapeamentoMapeamento Categorização rg nome cnpj O atributo chave darg nome empresa cnpj nome setorpessoa O atributo chave da sub-entidade foi adicionado nas entidades mães. U U União do conjunto Contido entidades mães. idPropProprietário U Contido Pessoa(rg, nome, idprop) Empresa(cnpj,nome, setor, idprop) 39 p ( pj, , , p p) Proprietario(idprop) ExercícioExercício Fazer o Mapeamento modelo nroeixos caminhãocarro l V í l U U placa placa Não tem a C ( l d l ) idchassiVeículo Registrado necessidade de adicionar as chaves nas entidades mães. Carro(placa, modelo) Caminhão(placa, nroeixos) V i l R i t d ( l id h i) 40 VeiculoRegistrado(placa, idchassi) ExercícioExercício Fazer o Mapeamento rg nome cnpj nome pessoa empresaplaca Proprietário Veiculo 1n idPropPossui carro caminhao modelo NroEixos 41 Mapeamento Agregação posicao MinicursoAluno cursa (1,n) (0 ) (1,n) faz (0,n) nota Trabalho (0,n) Se fosse relacionamento 1:n, então poderia ser Trabalho p ternário. 42 Mapeamento Agregação (1,n) (1,n) posicao MinicursoAluno cursa ( , ) (0,n) ( , )t faz nota aluno(idaluno, nome...) cursa(idaluno, idmcurso,posicao) Trabalho (0,n)minicurso(idtmcurso, posicao...) ( , ,p ) trabalho(idprograma,linguagem, descrição) 43 faz(idaluno, idmcurso,idtrabalho) Os 5 Mandamentos da Normalização 1. Não haverás atributos multivalorados e compostos;compostos; 2. Não haverás dependências parciais de chaves candidatas;chaves-candidatas; 3. Não haverás dependências transitivas de chaves candidatas;de chaves-candidatas; 4. Não haverás dependências multivaloradas a não ser de chaves-multivaloradas, a não ser de chaves- candidatas; 5 Não haverás dependências cíclicas;5. Não haverás dependências cíclicas; 44 Esquema de Navegação paraEsquema de Navegação para Operações em um Banco de Dados • Um esquema de navegação é utilizado para indicar:indicar: – o número de tabelas acessadas; – o número de operações de junção; – os atributos envolvidos em uma operação no banco de dados; • Existem operações que podem ter mais de um esquema de navegação válido; • Uma mesma entidade ou relacionamento pode ser usada de diferentes maneiras em uma mesmaser usada de diferentes maneiras em uma mesma operação. 45 Esquema de Navegação paraEsquema de Navegação para Operações em um Banco de Dados • Um esquema de navegação inclui: – Atributos usados para seleção, junção e atualização; – Entidades e Relacionamentos envolvidos; – Setas apontando os atributos usados nas di õ d l ãcondições de seleção; – Setas indicando a navegação no banco de dados;dados; – Letras indicando o tipo de operação: • R: retrieval; U:update; I: insert; D: delete;• R: retrieval; U:update; I: insert; D: delete; 46 Esquema de Navegação paraEsquema de Navegação para Operações em um Banco de Dados • Exemplo:p Select a3,a4 From A,B,C, , Where cond-a1 AND cond-a2 AND cond-juncao A a2 B CA a3 C RR R a1 a4 47 a1 Pode-se omitir ou não os atributos de junção. Esquema de Navegação paraEsquema de Navegação para Operações em um Banco de Dados creditos Aluno cursou médianroa nomea codd nomed Disciplina médianroa nomea codd nomed • Exemplo: Selecione os nomes dos alunos que– Selecione os nomes dos alunos que tiveram média superior a 9 em pelo menos 1 disciplina de 4 créditosmenos 1 disciplina de 4 créditos. 48 Esquema de Navegação paraEsquema de Navegação para Operações em um Banco de Dados Select DISTINCT nomea From aluno, cursou, disciplina Where media > 9 and creditos =4 And disciplina.codd =cursou.codd And aluno nroa = cursou nroa creditoscoddnroa And aluno.nroa = cursou.nroa DisciplinaAluno cursou creditos RR R codd medianroa nomea codd 49 Modelagem de Carga no banco deModelagem de Carga no banco de Dados • A carga em um banco de dados é caracterizada pelo volume de dadoscaracterizada pelo volume de dados envolvido em cada operação: – N(S): número médio de instâncias da entidade ou relacionamento S;entidade ou relacionamento S; – Cardinalidade média: média de ocorrências de tuplas do relacionamento R para cada tupla da entidade E: • card-media = N(R)/N(E)• card-media = N(R)/N(E) 50 Modelagem de carga Cliente Produtocompra 10000 40000 20000(1 2) (1,n), média = 4 (1,2), média = 2 (1,n), média = 1,5 possui 30000 (1,n), média = 30 Fornecedor 1000 ( ) • Cada entidade ou relacionamento recebe o número médio estimado de instâncias. Cada l i t i di lid drelacionamento possui as cardinalidades mínimas e máximas para cada instância 51 Modelagem de carga • Cada operação é descrita por: – Seu esquema de navegação; – A frequência média de ativação da operação:p ç • Exemplo: 200 vezes por mês ou 5 vezes por dia; – Tipo de operação: • Sequência pré-agendada (batch) ou online; 52 Modelagem de Cargag g Tabela de volume de acessos lógicos de operaçõesde operações • Componentes:p – Nome da operação; Frequência;– Frequência; – Nome do conceito (nome da tabela); – Tipo do conceito (E: entidade, R: relacionamento); – Read/Write (acesso de escrita ou leitura); – Número médio de ocorrências acessadas.Número médio de ocorrências acessadas. 53 Exemplo de operação: O1: Um cliente compra produtosO1: Um cliente compra produtos. Frequência: 100 vezes ao dia. Cliente compra 10000 40000 20000 (1,n), (1,2), média = 2 (1,n), média = 1,5 Produto possui 30000 média = 4 média 2 ( ) Fornecedor 1000 (1,n), média = 30 Op Frequência Conceito E/R R/W Média de ocorrências 1000 ocorrências acessadas O1 100 vezes/dia Cliente E R 100 Compra Produto R E W R 100×4 = 400 100x4 = 400 54 Exemplo de operação: O2: Um novo produto de um novo fornecedor ou fornecedores é di i d i té adicionado no sistema. Frequência: 3 vezes por dia. Cliente compra 10000 40000 20000 (1,n), (1,2), média = 2 (1,n), média = 1,5 Produto possui 30000 média = 4 média 2 ( ) Fornecedor 1000 (1,n), média = 30 Op Frequência Conceito E/R R/W Média de ocorrências 1000 ocorrências acessadas O2 3 vezes/dia Produto E W 3 Possui Fornecedor R E W W 3×1,5 = 4,5 3×1,5 = 4,5 55
Compartilhar