1 / 54

SCC0141 - Bancos de Dados e Suas Aplicações

SCC0141 - Bancos de Dados e Suas Aplicações. Visões e Bancos de Dados Distribuídos Prof. Jose Fernando Rodrigues Junior Material original: Profa. Elaine Parros Machado de Sousa. Tabela Base. Tabela Base 2. Tabela Base 1. junção. View. View. Visão ( View ). consulta. consulta.

Download Presentation

SCC0141 - Bancos de Dados e Suas Aplicações

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. SCC0141 - Bancos de Dados e Suas Aplicações Visões e Bancos de Dados Distribuídos Prof. Jose Fernando Rodrigues Junior Material original: Profa. Elaine Parros Machado de Sousa

  2. Tabela Base Tabela Base 2 Tabela Base 1 junção View View Visão (View) consulta consulta

  3. Visão (View) • Representação de dados contidos em outras tabelas (tabelas base) ou mesmo em outras visões • Trata resultado de uma consulta como uma tabela • consulta armazenada • tabela virtual • Espaço de armazenamento (no dicionário de dados) apenas para a consulta (select) que define a visão • Consulta é executada cada vez que a visão é acessada

  4. Visão (View) • Utilidade: • segurança - restrição de acesso a tuplas e colunas • armazenamento de consultas complexas ou executadas com muita frequência • simplicidade para usuário • abstração • apresentação dos dados com menor complexidade ou em diferentes perspectivas • isolamento de aplicações em relação a alterações de esquema

  5. Views CREATE OR REPLACE VIEW nome [(NomeColuna [, NomeColuna ...])] AS <select>;

  6. Disciplina = {Sigla, Nome, NCred, Professor, Livro} Views • Exemplo – visão atualizável create or replace view view_disciplina as select nome, sigla from disciplina; select * from view_disciplina;

  7.  Professor = {Nome, NFunc, Idade, Titulação} Views • Exemplo create view view_professor_doutor as select * from professor where titulacao = 'DOUTOR'

  8. Aluno = {Nome, Nusp, Idade, DataNasc} Views Disciplina = {Sigla, Nome, NCred, Professor, Livro} Matrícula = {Sigla, Numero, Aluno, Ano, Nota} • Exemplo – join view create view view_matricula (NUsp, Nome, Sigla, Disciplina) as select A.NUSP, A.Nome, D.Sigla, D.Nome from Aluno A join Matricula M on A.NUSP = M.Aluno join Disciplina D on M.sigla = D.sigla;

  9. Views • CREATE VIEW • ALTER VIEW • DROP VIEW

  10. Visão Materializada (materialized view) • Visões armazenadas como tabelas • dados provenientes de master tables (tabelas base) • Utilidade • replicação de dados • performance • snapshot local de dados remotos • armazenamento de resultados de consultas complexas e custosas • armazenamento de informações sumarizadas • distribuição de dados

  11. Visão Materializada (materialized view) • Comuns em data warehousing, sistemas distribuídos, computação móvel.... • Principais desvantagens: • ocupa espaço de armazenamento • exige refresh quando as master tables são modificadas

  12. Visão Materializada no ORACLE CREATE MATERIALIZED VIEW view_matriculados BUILD IMMEDIATE REFRESH FAST ON COMMIT AS SELECT D.Sigla, count(M.Sigla) as Nro_Matriculados FROM Disciplina D, Matricula M WHERE D.Sigla=M.Sigla GROUP BY D.Sigla;

  13. BDs distribuídos - Introdução • Sistemas de banco de dados centralizados • dados mantidos em um único local • processamento de transações individuais essencialmente sequencial • Sistemas de banco de dados distribuídos • dados armazenados fisicamente em diversos locais (sites) • usualmente: cada site gerenciado por um SGBD • Sistemas relacionais de fato distribuídos não se tornaram padrões comerciais, ao invés disso os grandes fabricantes usam uma camada sobre diversos sistemas centralizados para se obter o mesmo resultado

  14. Sistemas comerciais • IBM DB2 – Distributed Database Facility (DDF) • Informix Dynamic Server • Microsoft SQLServer – Distributed Management Framework (DMF) • Oracle – Oracle Replication Manager e Heterogeneous Services/Transparent Gateway 14

  15. Problema • Imagine o seguinte problema: uma empresa abrange várias cidades e a operação da empresa é integrada por meio de uma base de dados única. Problemas: • Copiar a base inteira para todas as filiais? Mas apenas alguns dados são necessários em cada uma; como manter as cópias atualizadas? • Quais dados ter em cada filial então? Ainda assim, alguns dados comuns serão necessários em todas as sedes? • Onde guardar os dados comuns? Na sede? Como disponibilizar estes dados às filiais sem prejudicar o desempenho? Ter várias cópias dos mesmos dados é uma opção? • Em algumas situações será inevitável usar a infra-estrutura de rede para trafegar dados entre pontos geográficos distantes uns dos outros? Como minimizar o tráfego? Como tirar o melhor proveito da rede? Quais alterações podem melhorar o desempenho? 15

  16. Problema Exemplo: empresa de transporte rodoviário, rede de hotéis, empresa aérea internacional, rede de lojas do varejo, ... Quais problemas cada uma destas categorias pode ter de maneira que um BD distribuído possa resolver. • Imagine o seguinte problema: uma empresa abrange várias cidades e a operação da empresa é integrada por meio de uma base de dados única. Problemas: • Copiar a base inteira para todas as filiais? Mas apenas alguns dados são necessários em cada uma; como manter as cópias atualizadas? • Quais dados ter em cada filial então? Ainda assim, alguns dados comuns serão necessários em todas as sedes? • Onde guardar os dados comuns? Na sede? Como disponibilizar estes dados às filiais sem prejudicar o desempenho? Ter várias cópias dos mesmos dados é uma opção? • Em algumas situações será inevitável usar a infra-estrutura de rede para trafegar dados entre pontos geográficos distantes uns dos outros? Como minimizar o tráfego? Como tirar o melhor proveito da rede? Quais alterações podem melhorar o desempenho? 16

  17. Motivação • Por que distribuir dados? • disponibilidade • acesso distribuído • localidade  desempenho • análise distribuída de dados • expansão • Aplicações • grandes corporações • redes de hotéis • redes de lojas • companhias aéreas • companhias viárias 17

  18. Componentes • Tecnologiade Banco de Dados Distribuído Tecnologia de Banco de Dados Tecnologia de Redes e Comunicação de Dados

  19. Definições • Banco de Dados Distribuído (BDD) • conjunto de múltiplos bancos de dados (SGBDs) inter-relacionados distribuídos por uma rede de computadores • Sistema de Gerenciamento de Banco de Dados Distribuído (SGBDD) • sistema que gerencia um BDD • torna a distribuição transparente para o usuário 19

  20. Características • Sistema de BDD  mais complexo • funções adicionais do SGBDD • localização de dados’ • processamento de consultas distribuídas • gerenciamento de transações distribuídas • gerenciamento de dados replicados • recuperação de BDD • segurança • gerenciamento de dicionário de dados distribuído 20

  21. Arquitetura nada compartilhado – cada site seu BD Arquitetura de rede com um BD centralizado Algumas arquiteturas diferentes de sistemas de banco de dados (Elmasri e Navathe, 2005) Arquitetura BDD – o banco é uma composição dos diversos sites

  22. Projeto • Questões relevantes sobre BDD • Projeto de Distribuição (Fragmentação/Replicação) da Base de Dados • como distribuir a base de dados? • base de dados distribuída replicada ou não replicada? • Processamento de Consulta • como converter transações do usuário em instruções de manipulação de dados? • como otimizar uma consulta? • custo = transmissão dados + processamento local 22

  23. Projeto • Questões relevantes sobre BDD • Controle de Concorrência • como sincronizar acessos concorrentes? • como garantir consistência e isolamento das transações? • como evitar deadlocks? • Confiabilidade • como tornar o sistema tolerante a falhas? • como garantir durabilidade e atomicidade das transações? 23

  24. Projeto • Catálogo (ou Dicionário) de Dados Distribuído • como e onde os dados estão fragmentados • como e onde os dados estão replicados • informação de esquema • informação de autorização de usuários • estatísticas

  25. Transparência • Em SBDDs é necessário que os usuários não tenham que saber da arquitetura distribuída  transparência • Tipos de transparência de dados • de distribuição • localização • nomenclatura • de replicação • de fragmentação • horizontal (WHERE) • Vertical (SELECT)

  26. Tipos de Sistemas de BDD • Fator: grau de homogeneidade • SGBDD homogêneo • todos os SGBDs locais e todos os clientes idênticos • SGBDD heterogêneo • SGBDs locais distintos • Fator: grau de autonomia • Em que grau os sites do sistema distribuído são administrados independentemente nenhuma alto AUTONOMIA • SGBDs independentes • e autônomos • SGBDDs Federados • Multibases de dados • esquema conceitual único • acesso por um único site • para usuário “parece” um • único SGBD centralizado

  27. Catálogo de Dados Distribuído • Possíveis estruturas • centralizado • Vantagem: uma única cópia, simples de implementar • Desvantagem: gargalo para o processamento de consultas – todos os sites tem que acessar o site central para qq consulta • catálogo global replicado • Vantagem: desempenho local de consultas • Desvantagem: manter a consistência das múltiplas cópias do catálogo

  28. Catálogo de Dados Distribuído • Abordagem do R* - projeto protótipo de bases de dados distribuídas da IBM • cada site mantém catálogo apenas local • descrição apenas dos dados locais • site de criação de uma tabela é responsável por manter informação de réplicas • para encontrar uma tabela é necessário consultar o catálogo de seu site de criação • estratégia: uso de cache nos demais sites

  29. Fragmentação • Fragmentaçãoquebra de uma tabela em fragmentos que podem ser armazenados em sites diferentes • Tipos: • fragmentação vertical  projeção (SELECT) • fragmentação horizontal  filtragem (WHERE) • fragmentação mista  projeção + seleção • Conceito de “Esquema de Fragmentação”: metadados que descrevem como os dados são quebrados ao longo da arquitetura

  30. Fragmentação • Fragmentaçãoquebra de uma tabela em fragmentos que podem ser armazenados em sites diferentes • Tipos: • fragmentação vertical  projeção • fragmentação horizontal  seleção • fragmentação mista  projeção + seleção • Conceito de “Esquema de Fragmentação”: metadados que descrevem como os dados são quebrados ao longo da arquitetura Esquema de Fragmentação: definição de um conjunto de fragmentos que inclui todos os atributos e tuplas no banco de dados e satisfaz à condição de que o banco de dados pode ser reconstruído com base nos fragmentos ao se aplicar alguma sequência de operações de UNIÃO E JUNÇÃO. (Elmasri-Navathe, 2010)

  31. Fragmentação • Deve ser possível recuperar a tabela original a partir dos fragmentos • fragmentação horizontal (WHERE) • união dos fragmentos  tabela original • fragmentação vertical (SELECT) • coleção de fragmentos  decomposição sem perda de junção • como garantir? A chave deve fazer parte de cada fragmento

  32. Replicação • Replicação armazenamento de várias cópias de uma tabela ou fragmento de tabela • maior disponibilidade dos dados • consultas mais rápidas REPLICAÇÃO alocação não redundante replicação parcial BD completamente replicado

  33. Replicação • Replicação total: cópias de toda a base em todos os sites • Vantagem: maior desempenho de consultas • Desvantagem: atualizações e controle de concorrência são dispendiosos, pois novos dados e locks devem ser propagados para todos os sites; intenso tráfego de dados • Alocação não redundante: os sites são todos disjuntos (com exceção das chaves)  vantagens e desvantagens inversas à replicação total 34

  34. Replicação • Replicação parcial: algumas partes do banco são replicadas enquanto que outras não são: • Conceito de “Esquema de Replicação”: metadados que descrevem o que é replicado, onde, quantas vezes e com qual atualização os dados são sincronizados • O esquema de replicação é um problema de otimização complexo, ele depende: • De quais consultas são realizadas com qual frequência em cada site • De quais atualizações são realizadas com qual frequência em cada site • De qual controle de concorrência (isolamento) é necessário em cada site 35

  35. Replicação Um esquema de replicação envolve fragmentação horizontal e vertical. É comum que um site precise de apenas alguns atributos, enquanto que outro de apenas algumas tuplas. • Replicação parcial: algumas partes do banco são replicadas enquanto que outras não são: • Conceito de “Esquema de Replicação”: metadados que descrevem o que é replicado, onde, quantas vezes e com qual atualização os dados são sincronizados • O esquema de replicação é um problema de otimização complexo, ele depende: • De quais consultas são realizadas com qual frequência em cada site • De quais atualizações são realizadas com qual frequência em cada site • De qual controle de concorrência (isolamento) é necessário em cada site 36

  36. Replicação • Tipos: • replicação síncrona todas as cópias são atualizadas dentro de uma mesma transação • problema? – tráfego intenso de rede • replicação assíncrona atualizações periódicas das cópias de dados modificados • problema? – controle de transação mais elaborado é necessário, alguns dados não tem garantia de consistência e não devem ser lidos

  37. Esquema Distribuído Esquemas Lógicos locais ou um esquema global + Esquema de Fragmentação + Esquema de Replicação A arquitetura de um esquema distribuído visa reduzir seu maior custo: tráfego de rede No entanto, em algumas situações como consultas raramente efetuadas, não há o que se fazer – os dados irão trafegar em rede intensamente 38

  38. Esquema Distribuído Os esquemas de fragmentação e de replicação determinam um único esquema de fragmentação/replicação. Esquemas Lógicos locais ou um esquema global + Esquema de Fragmentação + Esquema de Replicação A arquitetura de um esquema distribuído visa reduzir seu maior custo: tráfego de rede No entanto, em algumas situações como consultas raramente efetuadas, não há o que se fazer – os dados irão trafegar em rede intensamente 39

  39. Processamento de Consultas Distribuídas • Custo da Consulta Distribuída Custo de Transferência de Dados Custo do Processamento da Consulta

  40. EX: Transferência de Dados • Exercício • Processamento-de-consulta-distribuido

  41. Semi-Junção • Idéia geral: reduzir o número de tuplas e de atributos transferidos entre sites • Por exemplo: No site 1, executar: SELECT * FROM R JOIN S ON R.atr1 = S.atr2 com R no site 1 e S no site 2 • No site 1, F=SELEC R.atr1 FROM R, e enviar para o site 2 • No site 2, executar: T = SELECT * FROM F JOIN S ON F.atr1 = S.atr2 e enviar o resultado para o site 1 • No site 1, executar: SELECT * FROM R JOIN T ON R.atr1 = T. atr2

  42. EX: Semi-junção • Exercício • Semi-juncao

  43. Transações Distribuídas • Propriedades ACID devem ser garantidas • Atomicidade • Consistência • Isolamento • Durabilidade Recuperação de falhas distribuída Concorrência distribuída

  44. Concorrência Distribuída • Problema: o mesmo dado replicado em diferentes sites A e B. No site A, o dado é alterado, quase que imediatamente o site B usará este dado, cuja cópia será diferente do valor no site A. • Solução: uso de locks. Quando o site A alterar o dado, deve-se bloqueá-lo (lock) para uso e escrita até que A finalize sua operação e o dado seja sincronizado com o site B. • Como gerenciar bloqueios (locks) de objetos (tabelas e fragmentos) distribuídos? • abordagem centralizada • abordagem cópia primária • abordagem completamente distribuída

  45. Concorrência Distribuída Baseada no conceito de Cópia Distinguida (ou Distinta): dentre as várias cópias dos dados, uma delas dita como o controle de concorrência é feito – isto é, uma única cópia recebe e libera locks A escolha da cópia que irá ditar o controle de concorrência pode ser estático ou dinâmico O site que possui a cópia distinguida é denominado site Coordenador, o qual deverá responder ao sistema de locks 46

  46. Concorrência Distribuída • Abordagem cópia primária • bloqueios são gerenciados pelo site onde está a cópia primária (original) do objeto requisitado • problema? Maior complexidade • Abordagem completamente distribuída • bloqueios gerenciados nos sites onde ocorrem as operações – coordenação dinâmica • problema? Maior complexidade, necessidade de broadcast dinâmico para informar sobre a coordenação • Abordagem centralizada • um único siteresponsável por gerenciar todas as requisições de bloqueio • problema? Vulnerável a falhas, requer um backup – sobrecarga de um único site

  47. Recuperação de Falhas Distribuída • Novos tipos de falha que não ocorrem em SGBDs não distribuídos • falhas de comunicação • falha em um site onde uma sub-transação é executada • Atomicidade: • ou todas as sub-transações são efetivadas (committed) ou nenhuma deve ser efetivada COMMIT protocol Ex: Two-Phase Commit (2PC)

  48. Recuperação de Falhas Distribuída • Uso do two-phase commit protocol (2PC) • Algoritmo distribuído que visa gerenciar situações transacionais – protocolo do tipo consensual • Duas fases 1ª. Contacta todos os participantes preparando-os para o sistema de consenso, segundo o qual, após a execução distribuída, cada um terá que “votar” sim (commit) ou não (abort) 2ª. Efetivação da decisão consensual, todos são informados de que devem consolidar a transação (todos votaram commit) ou retornar ao estado anterior (pelo menos um votou abort ou alcançou time-out)

  49. Exemplo: ORACLE • Transparência de localização (uso de LDAP) • Transações distribuídas baseadas em 2PC • Replicação básica • leitura em qualquer site • escrita em site primário • Replicação avançada – leitura e escrita em qualquer site • snapshots • Suporte a arquitetura heterogênea (Elmasri e Navathe, 2005)

  50. Exemplo: ORACLE • Enterprise Manager • Third-Party Administration Tools • SNMP Support Caso heterogêneo: Heterogeneousservices Transparent gateway Oracle Net Services Caso homogêneo: Oracle Advanced Replication

More Related