Baixe o app para aproveitar ainda mais
Prévia do material em texto
José de Aguiar Moraes Filho 07.02.2012 Técnicas de Implementação de Sistemas de Banco de Dados 1 José de Aguiar Moraes Filho Técnicas de Implementação de SBDs 1 Técnicas de Implementação de Sistemas de Bancos de Dados José de Aguiar Moraes Filho, Dr.-Ing. Universidade de Fortaleza – UNIFOR Departamento de Computação jaguiar@unifor.br José de Aguiar Moraes Filho Técnicas de Implementação de SBDs 2 Técnicas de Implementação de Sistemas de Banco de Dados - TÓPICOS- 1. Sistema de Bancos de Dados (SBD ou DBS) - Revisão 2. Armazenamento de Dados 3. Gerenciamento de Buffer (Memória) 4. Indexação 5. Processamento de Consultas 6. Processamento de Transações 7. Controle de Concorrência 8. Recuperação e Logging 9. Performance (Tuning) em BDs 10.Distribuição de BDs - Conceitos José de Aguiar Moraes Filho 07.02.2012 Técnicas de Implementação de Sistemas de Banco de Dados 2 José de Aguiar Moraes Filho Técnicas de Implementação de SBDs 3 Técnicas de Implementação de Sistemas de Banco de Dados - Bibliografia Recomendada- 1. Silberschatz, A., Korth, H., Sudarshan, S. “Sistemas de Banco de Dados”, 3ª Edição, Makron Books 2. Garcia-Molina, H., Ullman, Jeffrey D., Widom, Jennifer. “Implementação de Sistemas de Bancos de Dados”. Editora Campus, 2001 3. O’Neil, Patrick., O’Neil, Elizabeth. “Database: Principles, Programming and Performance”. Second Edition, Morgan Kaufmann 4. Elsmari, R., Navathe, Shamkant B. “Fundamentals of Database Systems”. Third Edition, Addison-Wesley. José de Aguiar Moraes Filho Técnicas de Implementação de SBDs 4 Técnicas de Implementação de Sistemas de Banco de Dados - Guia Bibliográfico por Tópicos - Tópico Livro Capítulo/Seção 1. Sistema de Bancos de Dados (SBD ou DBS) Silberschatz, A., Korth, H., Sudarshan, S. “Sistemas de Banco de Dados”, 3ª Edição, Makron Books 1, 2, 3, 4, 7,16 Garcia-Molina, H., Ullman, Jeffrey D., Widom, Jennifer. “Implementação de Sistemas de Bancos de Dados”. Editora Campus, 2001 1 O’Neil, Patrick, O’Neil, Elizabeth. “Database: Principles, Programming and Performance”. Second Edition, Morgan Kaufmann 1, 2, 3 Elsmari, R., Navathe, Shamkant B. “Fundamentals of Database Systems”. Third Edition, Addison-Wesley 2, 7, 8, 14 José de Aguiar Moraes Filho 07.02.2012 Técnicas de Implementação de Sistemas de Banco de Dados 3 José de Aguiar Moraes Filho Técnicas de Implementação de SBDs 5 Técnicas de Implementação de Sistemas de Banco de Dados - Guia Bibliográfico por Tópicos - Tópico Livro Capítulo/Seção 2. Armazenamento de Dados Silberschatz, A., Korth, H., Sudarshan, S. “Sistemas de Banco de Dados”, 3ª Edição, Makron Books 10 Garcia-Molina, H., Ullman, Jeffrey D., Widom, Jennifer. “Implementação de Sistemas de Bancos de Dados”. Editora Campus, 2001 2, 3 O’Neil, Patrick, O’Neil, Elizabeth. “Database: Principles, Programming and Performance”. Second Edition, Morgan Kaufmann Nenhum capítulo específico para o tópico Elsmari, R., Navathe, Shamkant B. “Fundamentals of Database Systems”. Third Edition, Addison-Wesley 5 José de Aguiar Moraes Filho Técnicas de Implementação de SBDs 6 Técnicas de Implementação de Sistemas de Banco de Dados - Guia Bibliográfico por Tópicos - Tópico Livro Capítulo/Seção 3. Gerenciamento de Buffer (memória) Silberschatz, A., Korth, H., Sudarshan, S. “Sistemas de Banco de Dados”, 3ª Edição, Makron Books Nenhum capítulo específico para o tópico Garcia-Molina, H., Ullman, Jeffrey D., Widom, Jennifer. “Implementação de Sistemas de Bancos de Dados”. Editora Campus, 2001 6.8 O’Neil, Patrick, O’Neil, Elizabeth. “Database: Principles, Programming and Performance”. Second Edition, Morgan Kaufmann Nenhum capítulo específico para o tópico Elsmari, R., Navathe, Shamkant B. “Fundamentals of Database Systems”. Third Edition, Addison-Wesley Nenhum capítulo específico para o tópico José de Aguiar Moraes Filho 07.02.2012 Técnicas de Implementação de Sistemas de Banco de Dados 4 José de Aguiar Moraes Filho Técnicas de Implementação de SBDs 7 Técnicas de Implementação de Sistemas de Banco de Dados - Guia Bibliográfico por Tópicos - Tópico Livro Capítulo/Seção 4. Indexação Silberschatz, A., Korth, H., Sudarshan, S. “Sistemas de Banco de Dados”, 3ª Edição, Makron Books 11 Garcia-Molina, H., Ullman, Jeffrey D., Widom, Jennifer. “Implementação de Sistemas de Bancos de Dados”. Editora Campus, 2001 4, 5 O’Neil, Patrick, O’Neil, Elizabeth. “Database: Principles, Programming and Performance”. Second Edition, Morgan Kaufmann 8 Elsmari, R., Navathe, Shamkant B. “Fundamentals of Database Systems”. Third Edition, Addison-Wesley 6 José de Aguiar Moraes Filho Técnicas de Implementação de SBDs 8 Técnicas de Implementação de Sistemas de Banco de Dados - Guia Bibliográfico por Tópicos - Tópico Livro Capítulo/Seção 5. Processamento de Consultas Silberschatz, A., Korth, H., Sudarshan, S. “Sistemas de Banco de Dados”, 3ª Edição, Makron Books 12 Garcia-Molina, H., Ullman, Jeffrey D., Widom, Jennifer. “Implementação de Sistemas de Bancos de Dados”. Editora Campus, 2001 6, 7 O’Neil, Patrick, O’Neil, Elizabeth. “Database: Principles, Programming and Performance”. Second Edition, Morgan Kaufmann 9 Elsmari, R., Navathe, Shamkant B. “Fundamentals of Database Systems”. Third Edition, Addison-Wesley 18 José de Aguiar Moraes Filho 07.02.2012 Técnicas de Implementação de Sistemas de Banco de Dados 5 José de Aguiar Moraes Filho Técnicas de Implementação de SBDs 9 Técnicas de Implementação de Sistemas de Banco de Dados - Guia Bibliográfico por Tópicos - Tópico Livro Capítulo/Seção 6. Processamento de Transações 7. Controle de concorrência Silberschatz, A., Korth, H., Sudarshan, S. “Sistemas de Banco de Dados”, 3ª Edição, Makron Books 13, 14 Garcia-Molina, H., Ullman, Jeffrey D., Widom, Jennifer. “Implementação de Sistemas de Bancos de Dados”. Editora Campus, 2001 9, 10 O’Neil, Patrick, O’Neil, Elizabeth. “Database: Principles, Programming and Performance”. Second Edition, Morgan Kaufmann 10.1, 10.2, 10.3, 10.4, 10.5 Elsmari, R., Navathe, Shamkant B. “Fundamentals of Database Systems”. Third Edition, Addison-Wesley 19, 20 José de Aguiar Moraes Filho Técnicas de Implementação de SBDs 10 Técnicas de Implementação de Sistemas de Banco de Dados - Guia Bibliográfico por Tópicos - Tópico Livro Capítulo/Seção 8. Recuperação e Logging Silberschatz, A., Korth, H., Sudarshan, S. “Sistemas de Banco de Dados”, 3ª Edição, Makron Books 15 Garcia-Molina, H., Ullman, Jeffrey D., Widom, Jennifer. “Implementação de Sistemas de Bancos de Dados”. Editora Campus, 2001 8 O’Neil, Patrick, O’Neil, Elizabeth. “Database: Principles, Programming and Performance”. Second Edition, Morgan Kaufmann 10.6, 10.7, 10.8, 10.9 Elsmari, R., Navathe, Shamkant B. “Fundamentals of Database Systems”. Third Edition, Addison-Wesley 21 José de Aguiar Moraes Filho 07.02.2012 Técnicas de Implementação de Sistemas de Banco de Dados 6 José de Aguiar Moraes Filho Técnicas de Implementação de SBDs 11 Técnicas de Implementação de Sistemas de Banco de Dados - Guia Bibliográfico por Tópicos - Tópico Livro Capítulo/Seção 9. Performance (Tuning) em BD Silberschatz, A., Korth, H., Sudarshan, S. “Sistemas de Banco de Dados”, 3ª Edição, Makron Books 19.3, 19.4Garcia-Molina, H., Ullman, Jeffrey D., Widom, Jennifer. “Implementação de Sistemas de Bancos de Dados”. Editora Campus, 2001 Nenhum capítulo específico para o tópico O’Neil, Patrick, O’Neil, Elizabeth. “Database: Principles, Programming and Performance”. Second Edition, Morgan Kaufmann 10.10 Elsmari, R., Navathe, Shamkant B. “Fundamentals of Database Systems”. Third Edition, Addison-Wesley 16 José de Aguiar Moraes Filho Técnicas de Implementação de SBDs 12 Técnicas de Implementação de Sistemas de Banco de Dados - Guia Bibliográfico por Tópicos - Tópico Livro Capítulo/Seção 10. Distribuição em BD – Conceitos Silberschatz, A., Korth, H., Sudarshan, S. “Sistemas de Banco de Dados”, 3ª Edição, Makron Books 18 Garcia-Molina, H., Ullman, Jeffrey D., Widom, Jennifer. “Implementação de Sistemas de Bancos de Dados”. Editora Campus, 2001 10.4 O’Neil, Patrick, O’Neil, Elizabeth. “Database: Principles, Programming and Performance”. Second Edition, Morgan Kaufmann 11 Elsmari, R., Navathe, Shamkant B. “Fundamentals of Database Systems”. Third Edition, Addison-Wesley 24 José de Aguiar Moraes Filho 07.02.2012 Técnicas de Implementação de Sistemas de Banco de Dados 7 José de Aguiar Moraes Filho Técnicas de Implementação de SBDs 13 1. Sistemas de Bancos de Dados - Conceitos Básicos - q Sistema de Bancos de Dados (SBD ou DBS) Banco de Dados (BD ou DB) +Conjunto de dados relacionados Sistema Gerenciador de Bancos de Dados (SGBD ou DBMS) +Componente de software Acesso Controle de Concorrência Recuperação Armazenamento José de Aguiar Moraes Filho Técnicas de Implementação de SBDs 14 1. Sistemas de Bancos de Dados - Arquitetura de Três Camadas - Esquema Externo 1 Esquema Externo 2 Esquema Externo n Esquema Conceitual Esquema Interno (Banco de Dados armazenado) DBMS Camada Conceitual Camada Interna Camada Externa José de Aguiar Moraes Filho 07.02.2012 Técnicas de Implementação de Sistemas de Banco de Dados 8 José de Aguiar Moraes Filho Técnicas de Implementação de SBDs 15 1. Sistemas de Bancos de Dados - Arquitetura - Gerenciador de Transações Mecanismo de Consultas Gerenciador de Buffer Gerenciador de Arquivo Compilador DML Pre-compilador DML Sistema de Armazenamento Processador de Consultas DBMS DBS Código Objeto aplicativos Arquivos de dados índices Catálogo DB Esquema Consulta Programa Aplicativo DBA Usuário experiente Programadores Interpretador DDL Fragmentos de código José de Aguiar Moraes Filho Técnicas de Implementação de SBDs 16 1. Sistemas de Banco de Dados - Componentes da Arquitetura - *SGBD Processador de Consultas + Sistema de Armazenamento Processador de Consultas Compilador DML Analisa sintaticamente e semanticamente comandos DML expressos em uma linguagem de consulta (ex. SQL) Traduz estes comandos para uma das formas de representação interna de consultas (ex. álgebra relacional) Pré-Compilador DML Traduz comandos DML em chamadas a procedimentos (rotinas) na linguagem hospedeira Interpretador DDL Interpreta comandos DDL e os armazena no catálogo Tabelas contendo meta-dados Descrição do banco de dados Esquema Mecanismo de Consultas Responsável pela otimização e geração de planos de execução de consultas José de Aguiar Moraes Filho 07.02.2012 Técnicas de Implementação de Sistemas de Banco de Dados 9 José de Aguiar Moraes Filho Técnicas de Implementação de SBDs 17 *SGBD (cont.) Sistema de Armazenamento Gerenciador de Transações Controle de concorrência Recuperação do banco de dados após falhas Gerenciador de Buffer Responsável para recuperar objetos em disco e carregá-los na memória principal em forma de páginas SGBD possui uma área de buffer em memória principal Mapeamento: Bloco (disco) (buffer do SGBD) Definição da política de alocação do buffer MRU, LRU, FIFO, etc 1. Sistemas de Banco de Dados - Componentes da Arquitetura - Página Gerenciador de Arquivo (File System) Responsável pelo armazenamento físico em disco Gerencia a alocação de espaço em disco José de Aguiar Moraes Filho Técnicas de Implementação de SBDs 18 1. Sistemas de Banco de Dados - Componentes da Arquitetura - *BD Arquivos de dados + Índices + Catálogo + Fragmentos de código Arquivos de dados Armazena os dados Índices Estruturas de índices para os arquivos de dados Índices ordenados Árvores B+ Arquivos grade Árvores R Árvores quadrantes Índices não ordenados Indice hash José de Aguiar Moraes Filho 07.02.2012 Técnicas de Implementação de Sistemas de Banco de Dados 10 José de Aguiar Moraes Filho Técnicas de Implementação de SBDs 19 1. Sistemas de Banco de Dados - Componentes da Arquitetura - *BD (cont.) Catálogo Armazena esquema do banco de dados (meta-dados) Nomes das tabelas Atributos de cada tabela Definição de índice para uma tabela, etc… Armazena informações estatísticas Exemplo Cardinalidade de uma tabela Utilizadas na otimização de consultas Fragmentos de código Stored procedures Triggers Métodos José de Aguiar Moraes Filho Técnicas de Implementação de SBDs 20 1. Sistemas de Bancos de Dados - Classificação - q Modelo de Dados Sistema de Banco de Dados Relacional Modelo Relacional Tipo primitivo de dados Relação (tabela) Conjunto de tuplas (linhas) Conjunto de Operadores Álgebra e Cálculo Relacional Restrições de integridade Integridade de chave primária, integridade referencial, etc. Sistema de Banco de Dados Orientado a Objeto Modelo orientado a objeto Objeto, herança, composição, métodos Tipos primitivos Objeto, conjunto, lista, string, integer, real Sistema de Banco de Dados Objeto-Relacional José de Aguiar Moraes Filho 07.02.2012 Técnicas de Implementação de Sistemas de Banco de Dados 11 José de Aguiar Moraes Filho Técnicas de Implementação de SBDs 21 1. Sistemas de Bancos de Dados - Classificação - q Arquitetura Centralizada Sistema de Banco de Dados Centralizados Os componentes do SBD residem no mesmo host Distribuída Critérios Função Controle Dados Sistema de Banco de Dados Cliente-Servidor Distribuição de funções do SGBD entre clientes e servidor Sistema de Banco de Dados Paralelos Distribuição do controle de funções do DBMS entre diversos sistemas computacionais Sistema de Banco de Dados Distribuídos Distribuição de dados através de diversos SBDs homogêneos José de Aguiar Moraes Filho Técnicas de Implementação de SBDs 22 1. Sistemas de Bancos de Dados - Classificação - q Arquitetura (cont.) Distribuída (cont.) Sistema de Banco de Dados Heterogêneos Distribuição de dados através de SBDs heterogêneos e autônomos Sistema de banco de dados múltiplos (MDBS) Sistema de banco de dados federados (FDBS) Arquitetura de Mediadores Sistema de Banco de Dados Móvel Distribuição de funções e dados do SGBD entre clientes e servidor em ambientes de computação móvel José de Aguiar Moraes Filho 07.02.2012 Técnicas de Implementação de Sistemas de Banco de Dados 12 José de Aguiar Moraes Filho Técnicas de Implementação de SBDs 23 2. Armazenamento de Dados - Meios Físicos de Armazenamento - q Sistema computacional Variedade de dispositivos para armazenar instruções e dados necessários a sua operação Sistema de memória q Sistema de memória Dispositivos de armazenamentoAlgoritmos implementados por software ou por hardware Objetivo dos componentes de um sistema de memória Controlar e gerencia a informação armazenada José de Aguiar Moraes Filho Técnicas de Implementação de SBDs 24 2. Armazenamento de Dados - Meios Físicos de Armazenamento - q Tipos de Meios Físicos de Armazenamento Memória Interna do Processador Compreende pequeno conjunto de registradores de alta velocidade Utilizada como memória de trabalho para armazenamento temporário de instruções e dados Memória Cache Dispositivo de memória que funciona como dispositivo de armazenamento temporário e intermediário entre registradores e memória principal José de Aguiar Moraes Filho 07.02.2012 Técnicas de Implementação de Sistemas de Banco de Dados 13 José de Aguiar Moraes Filho Técnicas de Implementação de SBDs 25 2. Armazenamento de Dados - Meios Físicos de Armazenamento - q Tipos de Meios Físicos de Armazenamento (cont.) Memória Principal (Memória Primária) Armazenamento de programas e dados que estão sendo operados pelo sistema computacional Memória relativamente rápida e cara Normalmente apresenta capacidade muito limitada +Computadores (64 bits) com 14 GB de memória principal Tecnologia de bancos de dados em memória principal Endereços facilmente e rapidamente acessados pelo conjunto de instruções da CPU Denominada de memória RAM (Random Access Memory) Memória volátil Conteúdo é perdido em caso de queda de energia ou crash do sistema - Dados não persistentes (memória volátil) José de Aguiar Moraes Filho Técnicas de Implementação de SBDs 26 2. Armazenamento de Dados - Meios Físicos de Armazenamento - q Tipos de Meios Físicos de Armazenamento (cont.) Memória Secundária Dispositivo de memória com maior capacidade de armazenamento que a memória principal Memória Não-Volátil Utilizada para armazenar de forma persistente Programas aplicativos Grandes arquivos de dados e Bancos de dados Acesso mais lento Pode ser utilizada como memória de overflow quando a capacidade da memória principal é excedida José de Aguiar Moraes Filho 07.02.2012 Técnicas de Implementação de Sistemas de Banco de Dados 14 José de Aguiar Moraes Filho Técnicas de Implementação de SBDs 27 2. Armazenamento de Dados - Meios Físicos de Armazenamento - q Tipos de Meios Físicos de Armazenamento (cont.) Memória Terciária Classe composta por dispositivos mais lentos Fita magnéticas e discos óticos Utilizada para armazenar um grande volume de dados back-up q Características dos Meios Físicos de Armazenamento Custo Definido por c=CT/CA dollars/bit, onde CT representa o custo total do sistema de memória completo cuja capacidade de armazenamento é dado por CA José de Aguiar Moraes Filho Técnicas de Implementação de SBDs 28 2. Armazenamento de Dados - Meios Físicos de Armazenamento - q Características dos Meios Físicos de Armazenamento Tempo de Acesso (TA) Representa o tempo médio necessário para ler uma quantidade fixa de informação da memória Por exemplo, uma palavra (word) Utilizado como medida de performance para dispositivos de memória Taxa de acesso (bA) de um dispositivo de memória é dada por 1/TA Representa a quantidade de palavras lidas por segundo José de Aguiar Moraes Filho 07.02.2012 Técnicas de Implementação de Sistemas de Banco de Dados 15 José de Aguiar Moraes Filho Técnicas de Implementação de SBDs 29 2. Armazenamento de Dados - Meios Físicos de Armazenamento - q Características dos Meios Físicos de Armazenamento Modo de Acesso (cont.) (i) Random-access memory (RAM) Dispositivos de memória cujas posições podem ser acessadas em qualquer ordem O tempo de acesso é independente da localização a ser acessada Existe um mecanismo de acesso para cada posição de memória Seletor de cabeçote de Leitura/Escrita Cabeçote de Leitura/Escrita Posições de memória José de Aguiar Moraes Filho Técnicas de Implementação de SBDs 30 2. Armazenamento de Dados - Meios Físicos de Armazenamento - q Características dos Meios Físicos de Armazenamento Modo de Acesso (cont.) (ii) Serial-access memory (memória de acesso seqüencial) Dispositivos cujas posições só podem ser acessadas em seqüências pré-definidas Um único mecanismo de acesso é compartilhado por várias posições de memória Alterabilidade Característica que representa a capacidade de permitir a alteração do conteúdo de memória (i) Read-only memory (ROM) (ii) Read-write memory José de Aguiar Moraes Filho 07.02.2012 Técnicas de Implementação de Sistemas de Banco de Dados 16 José de Aguiar Moraes Filho Técnicas de Implementação de SBDs 31 2. Armazenamento de Dados - Meios Físicos de Armazenamento - q Características dos Meios Físicos de Armazenamento Persistência de Armazenamento Os processos físicos envolvidos no armazenamento são algumas vezes instáveis Pode provocar a perda da informação armazenada após um certo período de tempo Propriedades de memória de que podem destruir informação (i) Destructive read-out (leitura destrutiva) Em alguns dispositivos de armazenamento, o método de leitura destrói a informação armazenada Dispositivos DRO - Têm como contrapartida os dispositivos NDRO Em dispositivos DRO, cada operação de leitura precisa ser seguida de uma operação de escrita - Para restaurar o estado original da memória José de Aguiar Moraes Filho Técnicas de Implementação de SBDs 32 2. Armazenamento de Dados - Meios Físicos de Armazenamento - q Características dos Meios Físicos de Armazenamento Persistência de Armazenamento (cont.) Propriedades de memória de que podem destruir informação (cont.) (ii) Memória dinâmica Certos dispositivos de armazenamento, apresentam a seguinte característica: Um “1” armazenado torna-se um “0” devido a algum processo de decaímento Por exemplo: Muitos dispositivos armazenam um “1” através de uma carga elétrica em um capacitor Com o passar do tempo, a carga armazenada tende a se descarregar (decair) Tais dispositivos necessitam de um processo de recarga, denominado de refreshing José de Aguiar Moraes Filho 07.02.2012 Técnicas de Implementação de Sistemas de Banco de Dados 17 José de Aguiar Moraes Filho Técnicas de Implementação de SBDs 33 2. Armazenamento de Dados - Meios Físicos de Armazenamento - q Características dos Meios Físicos de Armazenamento Persistência de Armazenamento (cont.) Propriedades de memória de que podem destruir informação (cont.) (iii) Volatilidade Fenômeno através do qual certos dispositivos de memória têm seu conteúdo destruído por falhas elétricas ou crash de sistema Memória volátil José de Aguiar Moraes Filho Técnicas de Implementação de SBDs 34 2. Armazenamento de Dados - Meios Físicos de Armazenamento - q Hierarquia de meios físicos de armazenamento Banco de dados relacional No nível conceitual Conjunto de tabelas No nível físico Dados armazenados em dispositivo de armazenamento não volátil Acessar dados Acessar diferentes dispositivos (níveis) de armazenamento Memória Secundária Memória Terciária Memória Principal Cache CPU (Registradores) Custo Tempo de acesso José de Aguiar Moraes Filho 07.02.2012 Técnicas de Implementação de Sistemas de Banco de Dados 18 José de Aguiar Moraes Filho Técnicas de Implementação de SBDs 35 2. Armazenamento de Dados - Armazenamento em Disco - q Discos Magnéticos Em cada superfície de um disco, existem várias trilhas que são arranjadasde forma concêntrica Existem de 20 a 1500 trilhas por disco Cada trilha está subdividida em setores Um setor representa a menor unidade de informação que pode ser lida ou escrita no disco Setores podem variar de 32 bytes até 4096 bytes Tipicamente, um setor possui 512 bytes. Existem de 4 a 32 setores por trilha José de Aguiar Moraes Filho Técnicas de Implementação de SBDs 36 2. Armazenamento de Dados - Armazenamento em Disco - q Discos Magnéticos (cont.) Trilha t Cilindro c Cabeçote de leitura e escrita Suporte do braço braço Motor de Rotação Disco d Setor José de Aguiar Moraes Filho 07.02.2012 Técnicas de Implementação de Sistemas de Banco de Dados 19 José de Aguiar Moraes Filho Técnicas de Implementação de SBDs 37 2. Armazenamento de Dados - Armazenamento em Disco - q Discos Magnéticos (cont.) Acessando uma unidade de disco o motor de rotação faz o disco girar a uma velocidade constante (60, 90 ou 120 rps) Cada superfície do disco possui um cabeçote de leitura/escrita O cabeçote está montado em um dispositivo chamado braço do disco O braço movimenta-se transversalmente pelo disco para acessar as diferentes trilhas do disco. Uma unidade de disco possui geralmente um conjunto de discos Os cabeçotes de leitura/escrita de todas as superfícies de discos de uma unidade movimentam-se em conjunto (simultaneamente) e são acionadas pelo suporte do braço. José de Aguiar Moraes Filho Técnicas de Implementação de SBDs 38 2. Armazenamento de Dados - Armazenamento em Disco - q Discos Magnéticos (cont.) Acessando uma unidade de disco (cont.) Suponha que os discos de uma unidade A apresentem 1000 trilhas cada um. Em um instante de tempo t: Todos os cabeçotes acessam a mesma posição nos diferentes discos Os cabeçotes acessam trilhas de diferentes discos ou superfícies, mas que apresentam mesmo diâmetro Cilindro o conjunto de trilhas pertencentes a diferentes superfícies e discos de uma uma mesma unidade, mas que apresentem a mesma posição relativa Por exemplo, o conjunto de todas as trilhas 450 dos discos da unidade A compõe um cilindro Para otimizar o acesso a disco, dados de um mesmo arquivo são armazenados em cilindros. José de Aguiar Moraes Filho 07.02.2012 Técnicas de Implementação de Sistemas de Banco de Dados 20 José de Aguiar Moraes Filho Técnicas de Implementação de SBDs 39 2. Armazenamento de Dados - Armazenamento em Disco - q Discos Magnéticos (cont.) Medidas de Desempenho de Discos Tempo de procura (TP) Tempo gasto para posicionar o braço sobre a trilha correta Tempo médio de latência rotacional (TL) Tempo médio necessário para que o setor desejado passe pelo cabeçote de leitura/escrita. Definido como 1/2 do tempo de uma rotação completa. Se r é a taxa de rotações/segundo, então T=(2r)-1 Taxa de transferência de dados (TTr) Taxa na qual os dados são lidos ou armazenados por segundo. Se N é a capacidade das trilhas em palavras, então TTr= rN Tempo de transferência de dados de um setor Tempo (segundos) necessário para transferir dados de um setor. Se n é o tamanho (palavras) de um setor, então TT= n(rN) -1 José de Aguiar Moraes Filho Técnicas de Implementação de SBDs 40 2. Armazenamento de Dados - Armazenamento em Disco - q Discos Magnéticos (cont.) Medidas de Desempenho de Discos Tempo de acesso a um setor (TA) Tempo gasto desde um pedido de leitura/escrita até o fim da transferência de dados A fórmula para determinar o tempo de acesso de um disco é dada por: TA=TP + TL + TT TA= TP + (2r) -1 + n(rN)-1 Acesso a disco é extremamente lento José de Aguiar Moraes Filho 07.02.2012 Técnicas de Implementação de Sistemas de Banco de Dados 21 José de Aguiar Moraes Filho Técnicas de Implementação de SBDs 41 2. Armazenamento de Dados - Técnicas RAID - q Redundância de dados para aumentar a confiabilidade MTTF (Mean Time to Failure) Seja TF o tempo médio de falha de um disco O tempo médio de falha em um disco de um conjunto de N discos é dado por TF / N. Se considerarmos TF =10 5 horas e N=100 Tempo médio de perda de dados é 1000 horas ou 41,66 dias Pode-se aumentar esse tempo médio através da redundância de dados Armazenar informação redundante Informação normalmente não necessária Utilizada para reconstruir informação perdida durante uma falha de disco José de Aguiar Moraes Filho Técnicas de Implementação de SBDs 42 2. Armazenamento de Dados - Técnicas RAID - q Redundância de Dados para aumentar a confiabilidade (cont.) Espelhamento de discos (replicação) Caso um disco falhe dados podem ser acessados no disco espelho Perda total de dados só ocorre se o segundo disco falhar antes que o primeiro disco tenha sido recuperado Tempo médio de perda de dados depende do: Tempo médio de falhas (TF ) e do Tempo necessário para substituir o disco que falhou mais o tempo para recuperar os dados perdidos (TR) José de Aguiar Moraes Filho 07.02.2012 Técnicas de Implementação de Sistemas de Banco de Dados 22 José de Aguiar Moraes Filho Técnicas de Implementação de SBDs 43 2. Armazenamento de Dados - Técnicas RAID - q Redundância de Dados para aumentar a confiabilidade (cont.) Espelhamento de discos (cont) Considerando-se que as falhas em dois discos físicos de um mesmo disco lógico sejam independentes e que a probabilidade de falha não varie ao longo tempo, o tempo médio de perda de dados com espelhamento é dado por (TF) 2 / 2TR Exemplo Se considerarmos TF =10 5 horas e TR =10 horas, então o tempo médio de perda de dados é de 5 x 108 horas ou 57 x 103 anos. Existem sistemas de discos espelhado no mercado que garantem um tempo médio de perda de dados da ordem de 106 horas (110 anos) José de Aguiar Moraes Filho Técnicas de Implementação de SBDs 44 2. Armazenamento de Dados - Técnicas RAID - q Acesso paralelo a discos para aumentar desempenho Em um conjunto de N discos Acesso paralelo a diversos discos através da distribuição paralela de dados nos múltiplos discos Aumentar a taxa de transferência de dados Estratégias para distribuição de dados Distribuição paralela de bits Distribuir os bits de um byte em diferentes discos Exemplo (a) Em um conjunto de oito discos, cada bit i é armazenado no disco i (b) Em um conjunto de quatro discos, como deverá ser realizada a distribuição de bits de um byte ? Os bits i e 4+i de um byte são armazenados no disco i Os bits i e 4+i de um byte são armazenados no disco i José de Aguiar Moraes Filho 07.02.2012 Técnicas de Implementação de Sistemas de Banco de Dados 23 José de Aguiar Moraes Filho Técnicas de Implementação de SBDs 45 2. Armazenamento de Dados - Técnicas RAID - q Acesso paralelo a discos para aumentar desempenho Estratégias para distribuição de dados (cont.) Distribuição paralela de blocos Distribuir os blocos de um arquivo em diferentes discos Política de alocação de blocos de um arquivo O bloco i deve ser alocado no disco (i mod n) + 1 n representa o número de discos disponíveis José de Aguiar Moraes Filho Técnicas de Implementação de SBDs 46 2. Armazenamento de Dados - Técnicas RAID - q Mecanismo de RAID Espelhamento Garante confiabilidade (+) Tecnologia extremamente cara (-) Distribuição paralela de dados Altas taxas de transferência de dados (+) Não garante confiabilidade (-) Técnicas RAID Combinar diferentes graus de distribuição de dados e de redundância Redundância a baixo custo Níveis de RAID Striping Concatenar múltiplas unidades de disco em uma únicaunidade de armazenamento lógica José de Aguiar Moraes Filho 07.02.2012 Técnicas de Implementação de Sistemas de Banco de Dados 24 José de Aguiar Moraes Filho Técnicas de Implementação de SBDs 47 Disco 1 Disco 2 Disco 3 Disco 4 2. Armazenamento de Dados - Técnicas RAID - q Níveis de RAID RAID nível 0 Organização de discos com distribuição paralela Baseada em blocos Blocos de um arquivo são armazenados em diversos discos Não apresenta redundância Exemplo RAID 0 com quatro discos Distribuição paralela não-redundante Striping Arquivo A José de Aguiar Moraes Filho Técnicas de Implementação de SBDs 48 2. Armazenamento de Dados - Técnicas RAID - RAID nível 1 Organização de discos com distribuição paralela Baseada em blocos Redundância implementada através de replicação Exemplo RAID 1 com quatro discos de dados e quatro discos para replicação Distribuição paralela com replicação D1 D2 D3 D4 R1 R2 R3 R4 José de Aguiar Moraes Filho 07.02.2012 Técnicas de Implementação de Sistemas de Banco de Dados 25 José de Aguiar Moraes Filho Técnicas de Implementação de SBDs 49 2. Armazenamento de Dados - Técnicas RAID - RAID nível 2 Organização de discos com distribuição paralela Baseada em bytes Redundância implementada através de bits de correção Bits de correção podem ser implementados através de bit de paridade Mecanismo de bit de paridade Para cada byte armazenado existe um bit de paridade 0 Se o número de bits no byte com valor 1 é par (paridade 0) 1 Se o número de bits no byte com valor 1 é ímpar (paridade 1) José de Aguiar Moraes Filho Técnicas de Implementação de SBDs 50 2. Armazenamento de Dados - Técnicas RAID - RAID nível 2 Se o bit de paridade de um byte for danificado Não coincidirá com a paridade calculada Um erro em um byte pode ser detectado e corrigido Estratégia do RAID nível 2 é Implementar o código de correção de erros Dois ou mais bits adicionais Implementar distribuição paralela de bytes Bits em diferentes discos Organização de código de correção de erros José de Aguiar Moraes Filho 07.02.2012 Técnicas de Implementação de Sistemas de Banco de Dados 26 José de Aguiar Moraes Filho Técnicas de Implementação de SBDs 51 2. Armazenamento de Dados - Técnicas RAID - RAID nível 2 (cont) P1 P2 P3 Para cada 4 discos de dados, 3 discos para armazenar os bits de paridade a0 b0 c0 d0 a1 b1 c1 d1 a2 b2 c2 d2 a3 b3 c3 d3 a0 a1 a2 a3 Unidades de Transferência b0 b1 b2 b3 c0 c1 c2 c3 d0 d1 d2 d3 a b c d Setor 0 Disco D1 Setor 0 Disco D2 Setor 0 Disco D3 Setor 0 Disco D4 José de Aguiar Moraes Filho Técnicas de Implementação de SBDs 52 2. Armazenamento de Dados - Técnicas RAID - RAID nível 2 (cont) Exemplo 1 RAID 2 com oito discos de dados Distribuição paralela de bytes Cada bit i de um byte é armazenado no disco i Redundância Os bits de correção são armazenados em outros discos Caso um disco falhe, como recuperar seus dados ? Exemplo 2 RAID 2 com quatro discos de dados Distribuição paralela de bytes Os bits i e 4+i de um byte são armazenados no disco i Redundância Os bits de correção são armazenados em outros discos Caso um disco falhe, como recuperar seus dados ? José de Aguiar Moraes Filho 07.02.2012 Técnicas de Implementação de Sistemas de Banco de Dados 27 José de Aguiar Moraes Filho Técnicas de Implementação de SBDs 53 2. Armazenamento de Dados - Técnicas RAID - RAID nível 2 (cont) Exemplo 2 Byte n 0 1 1 1 1 1 1 1 Paridade=1 Disco 1 Caso disco 1 falhe Pela paridade, sabe-se que os bits perdidos do byte n são 0 e 1 Como determinar a posição correta dos bits no byte??? São necessários bits adicionais Para recuperar a posição correta dos bits perdidos Diferentes estratégias para definir bits adicionais José de Aguiar Moraes Filho Técnicas de Implementação de SBDs 54 2. Armazenamento de Dados - Técnicas RAID - RAID nível 3 No RAID nível 2 Um bit de paridade para cada byte Bits adicionais Controladoras armazenam bits de paridade por setor de disco Um único bit de paridade por byte poder ser utilizado para correção de erros José de Aguiar Moraes Filho 07.02.2012 Técnicas de Implementação de Sistemas de Banco de Dados 28 José de Aguiar Moraes Filho Técnicas de Implementação de SBDs 55 2. Armazenamento de Dados - Técnicas RAID - RAID nível 3 (cont) RAID nível 3 ou mecanismo de paridade de bits entrelaçados Organização de discos com distribuição paralela Baseada em bytes Bits de um mesmo byte em diferentes discos Caso mais de um bit de um mesmo byte s armazenados em um mesmo disco i Armazenados em diferentes setores de i Redundância implementada através de bits de paridade Armazenar um bit de correção (bit de paridade) para cada byte Utilizar bits de paridade de setores José de Aguiar Moraes Filho Técnicas de Implementação de SBDs 56 2. Armazenamento de Dados - Técnicas RAID - RAID nível 3 (cont) Redundância implementada através de bits de paridade Armazenar um bit de correção (bit de paridade) para cada byte Utilizar bits de paridade de setores Exemplo 2 RAID 2 com quatro discos de dados Distribuição paralela de bytes Os bits i e 4+i de um byte são armazenados em setores diferentes do disco i Redundância Os bits de correção são armazenados em outros discos Caso um disco falhe, como recuperar seus dados ? D1 D2 D3 D4 P1 José de Aguiar Moraes Filho 07.02.2012 Técnicas de Implementação de Sistemas de Banco de Dados 29 José de Aguiar Moraes Filho Técnicas de Implementação de SBDs 57 2. Armazenamento de Dados - Técnicas RAID - RAID nível 3 (cont) Exemplo 2 Byte n 0 1 1 1 1 1 1 1 Paridade=1 Caso disco 1 falhe Pela paridade, sabe-se que os bits perdidos do byte n são 0 e 1 Pela paridade dos setores Pode-se descobrir a posição correta dos bits no byte n Vantagens Recuperação eficiente Mais barato Necessita de apenas um disco adicional para vetores de discos não muito grandes Setor 1 do Disco 1 Setor 2 do Disco 1 José de Aguiar Moraes Filho Técnicas de Implementação de SBDs 58 2. Armazenamento de Dados - Técnicas RAID - RAID nível 4 Não apresenta distribuição Blocos são armazenados da mesma forma que em discos comum Redundância implementada através de blocos de paridade Um disco armazena todos os blocos de paridade Bloco i do disco redundante armazena bit de paridade dos blocos i de todos discos de dados D1 D2 D3 D4 P1 José de Aguiar Moraes Filho 07.02.2012 Técnicas de Implementação de Sistemas de Banco de Dados 30 José de Aguiar Moraes Filho Técnicas de Implementação de SBDs 59 2. Armazenamento de Dados - Técnicas RAID - RAID nível 4 RAID nível 4 ou mecanismo de paridade de blocos entrelaçados Caso um disco falhe Bloco de paridade mais os blocos dos discos em funcionamento são utilizados para recuperar os blocos do disco que falhou Recuperação por blocos de um disco José de Aguiar Moraes Filho Técnicas de Implementação de SBDs 60 2. Armazenamento de Dados - Técnicas RAID - RAID nível 5 Apresenta distribuição de dados Redundância implementada através de blocos de paridade Um bloco de paridade para cada bloco armazenado nos discos de dados RAID nível 5 ou mecanismo de paridade distribuída de blocos entrelaçados Distribuição Blocos de dados e de paridade são distribuídos nos N+1 discos No RAID nível4, os dados são armazenados nos N discos e o bloco de paridade é armazenado em um disco separado D1+P D2+P D3+P D4+P D5+P José de Aguiar Moraes Filho 07.02.2012 Técnicas de Implementação de Sistemas de Banco de Dados 31 José de Aguiar Moraes Filho Técnicas de Implementação de SBDs 61 2. Armazenamento de Dados - Técnicas RAID - RAID nível 5 Exemplo Para cada bloco i em um conjunto de 5 discos Bloco de paridade de i é armazenado no disco (i mod 5) +1 Os i-ésimos blocos dos outros quatro discos armazenam os dados do bloco I O bloco de paridade para um bloco i Armazenado em um disco diferente dos discos que armazenam i Caso um disco falhe Bloco de paridade mais os blocos dos discos em funcionamento são utilizados para recuperar os blocos do disco que falhou RAID nível 6 Semelhante ao nível Armazena informações adicionais para recuperar dados no caso de falha em mais de um disco Garante maior grau de confiabilidade que o nível 5 José de Aguiar Moraes Filho Técnicas de Implementação de SBDs 62 2. Armazenamento de Dados - Técnicas RAID - q Escolha do nível de RAID Vários fatores devem ser considerados Tempo e complexidade da atividade de reconstrução de discos após falhas Aplicações que requerem um fornecimento contínuo de dados Fator importante para determinar tempo médio de falha Tipo de aplicações que acessam discos do mecanismo RAID RAID nível 0 Aplicações de alto desempenho Discos bastante confiáveis RAID nível 1 Aplicações que requerem um fornecimento contínuo de dados RAID níveis 3 e 5 Aplicações que requerem um fornecimento contínuo de dados e armazenam grandes volumes de dados Quantidade de discos José de Aguiar Moraes Filho 07.02.2012 Técnicas de Implementação de Sistemas de Banco de Dados 32 José de Aguiar Moraes Filho Técnicas de Implementação de SBDs 63 2. Armazenamento de Dados - Memória Terciária - q Sistemas de banco de dados com grande volume de dados Limitação de capacidade de armazenamento de memória secundária Parte dos dados são armazenados em memória terciária Exemplo Bancos de dados que armazenam fotos da terra tiradas por satélites Fotos enviada periodicamente (a cada 2 minutos) Mídias para armazenamento terciário Discos óticos Fita Magnética Sistema de memória virtual Hierarquia com três níveis de memória Memória Principal Memória secundária Memória terciária José de Aguiar Moraes Filho Técnicas de Implementação de SBDs 64 2. Armazenamento de Dados - Memória Terciária - q Fitas Magnéticas Meio de armazenamento Fita de plástico flexível revestida de material magnético Acesso seqüencial Utilizada como memória secundária Informação armazenada em 9 trilhas longitudinais Trilha 1 0 Trilha 2 1 Trilha 3 1 Trilha 4 0 Trilha 5 1 Trilha 6 1 Trilha 7 1 Trilha 8 0 Trilha 9 1 O cabeçote de leitura/escrita de uma unidade de fita magnética acessa as 9 trilhas simultaneamente Palavra de memória (fita magnética) de 9 bits José de Aguiar Moraes Filho 07.02.2012 Técnicas de Implementação de Sistemas de Banco de Dados 33 José de Aguiar Moraes Filho Técnicas de Implementação de SBDs 65 2. Armazenamento de Dados - Memória Terciária - q Fitas Magnéticas (cont.) O bit da trilha 9 Bit de paridade Cálculo do bit de paridade Considere a palavra b8,b7,b6,b5,b4,b3,b2,b1,b0 b8 representa o bit de paridade b7 o bit mais significativo do byte Tabela Verdade para 0 0 = 0; 0 1 = 1; 1 0 = 1; 1 1 = 0 Calcule o bit de paridade para o byte 10101101 b8=b7b6b5b4b3b2b1b0 b8=b7b6b5b4b3b2b1b0 :exclusive-or para bits (0-F, 1-V) :exclusive-or para bits (0-F, 1-V) José de Aguiar Moraes Filho Técnicas de Implementação de SBDs 66 2. Armazenamento de Dados - Memória Terciária - q Fitas Magnéticas (cont.) Quando uma unidade de fita está em uso, o acionador movimenta a fita em movimento não contínuo Lê um bloco e pára Os dados armazenados em uma fita estão organizados em blocos Gaps são inseridos entre os blocos de informação Espaços vazios entre os blocos Porque são necessários estes gaps??? Medidas de desempenho Taxa de transferência de dados de uma unidade de fita (TTr) Velocidade do acionador de fita (V) Densidade da fita (d) TTr= dV José de Aguiar Moraes Filho 07.02.2012 Técnicas de Implementação de Sistemas de Banco de Dados 34 José de Aguiar Moraes Filho Técnicas de Implementação de SBDs 67 2. Armazenamento de Dados - Memória Terciária - q Fitas Magnéticas (cont.) Jukeboxes de fitas Grande número de fitas Alguns acionadores nos quais as fitas podem ser montadas Montagem feitas por braços mecânicos Armazenar volumes de dados da ordem de 12 Terabytes (1012 bytes) José de Aguiar Moraes Filho Técnicas de Implementação de SBDs 68 2. Armazenamento de Dados - Memória Terciária - q Discos Óticos Características físicas semelhantes a discos magnéticos Informação binária é armazenada em trilhas concêntricas Na forma de pontos de sombra ou de reflexão Largura de 0.6 m Disco em uso O motor de rotação faz o disco girar a uma velocidade constante Os dados são acessados da seguinte forma Cabeçote de leitura/escrita Mecanismo de laser Movimenta-se transversalmente pelo disco Um raio laser percorre a superfície do disco O raio é refletido diferentemente por pontos de sombra ou de reflexão Meio barato e com boa capacidade armazenamento Geralmente, são do tipo WORM Write Once, Read Many José de Aguiar Moraes Filho 07.02.2012 Técnicas de Implementação de Sistemas de Banco de Dados 35 José de Aguiar Moraes Filho Técnicas de Implementação de SBDs 69 2. Armazenamento de Dados - Memória Terciária - q Discos Óticos (cont.) Menores velocidades rotacionais e maiores tempos de procura do que discos magnéticos Maiores tempos de latência DVD 4,7 a 17 giga José de Aguiar Moraes Filho Técnicas de Implementação de SBDs 70 2. Armazenamento de Dados - Gerenciamento de Arquivos - q Armazenamento eficiente e seguro de dados Capacidade de armazenar grandes volumes de dados Os dados devem continuar armazenados após o término da aplicação que os acessou Persistência dos dados q Solução para o problema de armazenamento Armazenar dados em unidades Arquivos q Operações sobre arquivos Leitura Escrita q Dados armazenados em arquivos Persistentes José de Aguiar Moraes Filho 07.02.2012 Técnicas de Implementação de Sistemas de Banco de Dados 36 José de Aguiar Moraes Filho Técnicas de Implementação de SBDs 71 2. Armazenamento de Dados - Gerenciamento de Arquivos - q Gerenciador (Sistema) de arquivo (file system) Componente do SGBD (SO) responsável pelo gerenciamento de arquivos q Arquivos Abstração que fornece uma maneira de agrupar dados logicamente relacionados Armazenar esse conjunto de dados relacionados em disco, para depois garantir o acesso a esse mesmo conjunto Torna transparente para usuários detalhes como: Como e onde os dados estão armazenados Como acessar discos José de Aguiar Moraes Filho Técnicas de Implementação de SBDs 72 2. Armazenamento de Dados - Gerenciamento de Arquivos - q Arquivos (cont.) Não estruturado Seqüência de bytes Qualquer semântica deve ser definida a nível de programa UNIX Estrutura de registro Seqüência de registros Unidade para operações de leitura e escrita José de Aguiar Moraes Filho 07.02.2012 Técnicas de Implementaçãode Sistemas de Banco de Dados 37 José de Aguiar Moraes Filho Técnicas de Implementação de SBDs 73 2. Armazenamento de Dados - Gerenciamento de Arquivos - q Armazenamento de Arquivos Identificar em quais blocos um arquivo está armazenado Política de alocação de arquivos em disco 1. Alocação Contínua Arquivo armazenado em blocos contíguos em disco Exemplo: Considere um disco com blocos de 2K Um arquivo de 60K será armazenado em 30 blocos consecutivos Vantagens Facilidade em localizar todos os dados em disco É suficiente guardar apenas o número do primeiro bloco do disco que contem o arquivo Acessar seqüencialmente esses blocos Performance Desvantagens Como reservar espaço em disco para armazenar um arquivo Arquivos crescem dinamicamente Fragmentação José de Aguiar Moraes Filho Técnicas de Implementação de SBDs 74 q Armazenamento de Arquivos (cont.) 2. Alocação com Lista Encadeada Cada arquivo é alocado como uma lista encadeada de blocos de disco Cada elemento da lista representa um bloco A primeira palavra de um bloco contem um ponteiro para o próximo bloco do mesmo arquivo 10 7 11 2 5 3 15 2. Armazenamento de Dados - Gerenciamento de Arquivos - Bloco do Arquivo 1 Bloco do Arquivo 2 Bloco do Arquivo 3 Bloco do Arquivo 4 Bloco de disco Bloco do Arquivo 1 Bloco do Arquivo 2 Bloco do Arquivo 3 Arq1 Arq2 0 0 José de Aguiar Moraes Filho 07.02.2012 Técnicas de Implementação de Sistemas de Banco de Dados 38 José de Aguiar Moraes Filho Técnicas de Implementação de SBDs 75 2. Armazenamento de Dados - Gerenciamento de Arquivos - 2. Alocação com Lista Encadeada (cont.) Vantagens Facilidade em localizar todos os dados em disco É suficiente guardar apenas o número do primeiro bloco do disco que contem o arquivo Acessar seqüencialmente esses blocos Não ocorre fragmentação Desvantagens Tamanho do bloco não é mais uma potência de 2 Ponteiro ocupa alguns bytes Acesso randômico Lento Identificação de blocos vazios (não utilizados) 3. Alocação com Lista Encadeada Utilizando Índices Alocação com lista encadeada Ponteiros armazenados no próprio bloco Armazenar os ponteiros em uma tabela na memória José de Aguiar Moraes Filho Técnicas de Implementação de SBDs 76 2. Armazenamento de Dados - Gerenciamento de Arquivos - 3. Alocação com Lista Encadeada Utilizando Índices Arq1 ocupa os blocos 10, 7, 11, 2 Arq2 ocupa os blocos 5, 3, 15 0 1 2 0 3 15 4 5 3 6 7 11 8 9 10 7 11 2 12 13 14 15 0 Blocos de disco Ponteiro para próximo bloco Início Arq1 Início Arq2 José de Aguiar Moraes Filho 07.02.2012 Técnicas de Implementação de Sistemas de Banco de Dados 39 José de Aguiar Moraes Filho Técnicas de Implementação de SBDs 77 2. Armazenamento de Dados - Gerenciamento de Arquivos - 3. Alocação com Lista Encadeada Utilizando Índices Vantagens Facilidade em localizar todos os dados em disco É suficiente guardar apenas o número do primeiro bloco do disco que contem o arquivo Acessar seqüencialmente esses blocos Não ocorre fragmentação Todo o bloco é ocupado só com dados Acesso randômico mais eficiente Desvantagens A tabela precisa ser carregada em memória Disco com 2,5x105 blocos de 4K (1G) Tabela com 250000 entradas Cada entrada ocupa em média 4 bytes A tabela ocuparia quase 1M Identificação de blocos vazios (não utilizados) José de Aguiar Moraes Filho Técnicas de Implementação de SBDs 78 2. Armazenamento de Dados - Gerenciamento de Arquivos - 4. Alocação utlizando I-nodes Cada arquivo está associado a uma tabela denominada de index-node (i-node) Conteúdo de um i-node Atributos do arquivo Endereços dos blocos de disco, onde estão armazenados os blocos do arquivo Tabela i-node deve ser carregada na memória Tabela de tamanho fixo Como armazenar os blocos de disco ocupados por grandes arquivos no i-nodes single indirect block double indirect block triple indirect block José de Aguiar Moraes Filho 07.02.2012 Técnicas de Implementação de Sistemas de Banco de Dados 40 José de Aguiar Moraes Filho Técnicas de Implementação de SBDs 79 2. Armazenamento de Dados - Gerenciamento de Arquivos - 4. Alocação utlizando I-nodes Single indirect block double indirect block triple indirect block Atributos José de Aguiar Moraes Filho Técnicas de Implementação de SBDs 80 3. Gerenciamento de Buffer - Sistema de Memória Virtual - q Conceituação Sistema de armazenamento hierárquico, com no mínimo dois níveis de memória A maioria dos sistemas de memória virtual implementam uma hierarquia de dois níveis, compreendendo: 1. Uma memória principal M1 Capacidade S1 e Custo C1 2. Uma memória secundária M2 Capacidade S2 e Custo C2 +S2 >> S1 ; C1 > C2 ; TA1 < TA2 José de Aguiar Moraes Filho 07.02.2012 Técnicas de Implementação de Sistemas de Banco de Dados 41 José de Aguiar Moraes Filho Técnicas de Implementação de SBDs 81 3. Gerenciamento de Buffer - Sistema de Memória Virtual em SGBDs - q Conceituação SGBDs possuem mecanismo de memória proprietários Implementado pelo Gerenciador de Buffer Objetivo Dar a ilusão ao usuário do SGBD que existe uma única memória principal com grande capacidade Permitir um compartilhamento eficiente do espaço de memória entre diferentes usuários Reentrância Apresentar altas taxas de acesso a baixo custo de armazenamento por bit Otimizar acesso ao banco de dados Mecanismo de Buffer 1. Região de buffer M1 (em memória principal) 2. Região de memória secundária M2 (banco de dados) José de Aguiar Moraes Filho Técnicas de Implementação de SBDs 82 3. Gerenciamento de Buffer - Gerenciador de Buffer - q Funcionamento Funciona com base no seguinte princípio Toda informação armazenada em M1, em qualquer instante, também está armazenada em M2 O inverso não é verdade O SGBD comunica-se diretamente com M1 e M1 comunica-se com M2 Caso a informação desejada pelo SGBD não se encontre em M1 Gerenciador de buffer realiza uma realocação de armazenamento apropriada de M1 Carregar de M2 para M1 a informação requerida Gerenciador de buffer eficiente Informação desejada deve ser encontrada em M1 com uma taxa de freqüência ótima José de Aguiar Moraes Filho 07.02.2012 Técnicas de Implementação de Sistemas de Banco de Dados 42 José de Aguiar Moraes Filho Técnicas de Implementação de SBDs 83 3. Gerenciamento de Buffer - Gerenciador de Buffer - q Performance Medida com base na taxa de acerto (H) Definida pela probabilidade que os endereços gerados pelo SGBD refiram-se a informação já alocada em M1 A taxa de acerto é determinada experimentalmente como descrito a seguir: Um conjunto de programas (consultas) é executado Os números de referências de endereços satisfeitas por M1 e M2 são registrados Números denotados por N1 e N2 A taxa de acerto é calculada aplicando-se a fórmula H= N1 / (N1+N2) A taxa de acerto ótima deve tender a 1 Porque? A taxa de não acerto é definida por 1-H José de Aguiar Moraes Filho Técnicas de Implementação de SBDs 84 3. Gerenciamento de Buffer - Gerenciador de Buffer - q Performance Considere TA1 e TA2 o tempo de acesso de M1 e M2 O tempo médio para o SGBDacessar um dado no sistema de memória é dado por: TA = H.TA1 + (1-H).TA2 (1) Caso um dado não é encontrada em M1 Uma página do banco de dados (em disco) contendo a palavra é transferida para M1 Tempo de transferência da página (TB) TA2 = TB + TA1 (2) Substituindo (2) em (1), temos: TA = TA1 + (1-H).TB José de Aguiar Moraes Filho 07.02.2012 Técnicas de Implementação de Sistemas de Banco de Dados 43 José de Aguiar Moraes Filho Técnicas de Implementação de SBDs 85 3. Gerenciamento de Buffer - Gerenciador de Buffer - q Performance A razão do tempo de acesso de um sistema de memória virtual com dois níveis é definida como: r= TA2 / TA1 A eficiência de acesso (e) de um sistema de memória virtual é determinada pela equação: e= 1 / [r+(1-r).H] O objetivo é obter valores para e próximos a 1. É necessário que H seja próximo a 1 Porquê ? José de Aguiar Moraes Filho Técnicas de Implementação de SBDs 86 3. Gerenciamento de Buffer - Gerenciador de Buffer - q Mecanismo de Paginação (Swapping ) A operação mais importante em qualquer sistema de memória virtual Troca de blocos de informação entre os níveis de memória Paginação Essa troca ocorre de acordo com a demanda de processamento Demanda de Paginação Propriedade que indica quando uma operação de paginação deve ocorrer Política de Alocação Método utilizado para determinar o local (endereço) da memória principal, onde uma nova página deve ser carregada José de Aguiar Moraes Filho 07.02.2012 Técnicas de Implementação de Sistemas de Banco de Dados 44 José de Aguiar Moraes Filho Técnicas de Implementação de SBDs 87 3. Gerenciamento de Buffer - Gerenciador de Buffer - q Mecanismo de Paginação (cont.) Tipos de Alocação Alocação estática Cada página de dados está ligado a uma região fixa da memória principal Alocação dinâmica A região de memória principal na qual uma página K é carregado é variável Alocação dinâmica não preemptiva Página a ser carregada só pode ser alocado em um espaço vazio da memória principal Alocação dinâmica preemptiva Página a ser carregada pode ser alocado em um espaço ocupado por outra página K A página K deve ser re-alocada em um outro endereço ou removida totalmente da memória José de Aguiar Moraes Filho Técnicas de Implementação de SBDs 88 3. Gerenciamento de Buffer - Gerenciador de Buffer - q Mecanismo de Paginação (cont.) Políticas de alocação dinâmica preemptiva FIFO (First-In First-Out) A página a ser carregada é alocada na região de buffer ocupada pela página carregada menos recentemente no buffer LRU (Least Recently Used) A página a ser carregada é alocada na região de buffer ocupada pela página acessada mais remotamente (tempo) MRU (Most Recently Used) A página a ser carregada é alocada na região de buffer ocupada pela página acessada mais recentemente José de Aguiar Moraes Filho 07.02.2012 Técnicas de Implementação de Sistemas de Banco de Dados 45 José de Aguiar Moraes Filho Técnicas de Implementação de SBDs 89 4. Indexação - Conceitos Básicos - q Índices Cada estrutura de índice está associada a uma chave de busca Chave de busca representa um atributo de tuplas Fornecem um caminho através do qual os dados podem ser localizados e acessados de forma mais eficiente Reduzem o overhead de busca a um pequeno conjunto de tuplas q Classificação de índices Índice ordenado Índice hash Índice Primário Índice Secundário Denso Esparso + José de Aguiar Moraes Filho Técnicas de Implementação de SBDs 90 q Índice Primário (Clustering Indices) Definido sobre uma chave de busca que determina a ordem física dos registros 4. Indexação - Tipos de Índices - matr nome sal 1 2 3 4 7 9 10 André Bárbara Ines Lucas Sofia Caio Lara 1 4 10 Esparso Denso 1 2 3 4 7 9 10 Uma entrada na estrutura de índice para cada valor da chave de busca José de Aguiar Moraes Filho 07.02.2012 Técnicas de Implementação de Sistemas de Banco de Dados 46 José de Aguiar Moraes Filho Técnicas de Implementação de SBDs 91 4. Indexação - Tipos de Índices - q Índice Secundário Chave de busca não determina a ordem física das tuplas Índices determinam uma ordem (lógica) das tuplas Exemplo Chave de busca definida sobre atributo chave matr nome sal 7 10 9 4 1 3 2 Sofia Lara Caio Lucas André Inês Bárbara Denso 1 2 3 4 7 9 10 Uma entrada na estrutura de índice para cada valor da chave de busca 4Índice secundário é sempre denso José de Aguiar Moraes Filho Técnicas de Implementação de SBDs 92 4. Indexação - Tipos de Índices - q Índice Secundário (cont.) Chave de busca definida sobre atributo não chave Nível extra de indireção matr nome sal 7 10 9 4 1 3 2 Sofia 1000 Lara 900 Caio 500 Lucas 900 André 3000 Inês 5000 Bárbara 3000 500 900 1000 3000 5000 José de Aguiar Moraes Filho 07.02.2012 Técnicas de Implementação de Sistemas de Banco de Dados 47 José de Aguiar Moraes Filho Técnicas de Implementação de SBDs 93 4. Indexação - Tipos de Índices - q Índice Hash Estrutura de índice organizada como um arquivo hash Hashing Estático Bucket representa uma unidade armazenamento de um conjunto de registros Função de Hash h: K B, onde K representa o conjunto de todas as chaves de busca e B é o conjunto do endereço de todos os buckets +Eficiente para consultas do tipo exact match +Utilizado para implementar select com igualdade sobre atributos chaves Select A1,A2,A3, ..., An From s where Ak = c José de Aguiar Moraes Filho Técnicas de Implementação de SBDs 94 4. Indexação - Tipos de Índices - q Índice Hash (cont.) Hashing Estático (cont.) h(matr)= matr / 3 1 2 3 4 7 9 10 11 André Bárbara Ines Lucas Sofia Caio Lara Yasmim matr nome sal 1 2 3 4 7 9 10 11 Bucket 0 Bucket 1 Bucket 2 Bucket 3 Bucket overflow Estimativa de custo (sem overflow) 2 acessos a disco José de Aguiar Moraes Filho 07.02.2012 Técnicas de Implementação de Sistemas de Banco de Dados 48 José de Aguiar Moraes Filho Técnicas de Implementação de SBDs 95 4. Indexação - Tipos de Índices - q Índice Hash (cont.) Hashing Estático (cont.) Fatores geradores de overflow de buckets Número insuficiente de buckets Altas taxas de colisão Número ideal de buckets nB é dado por nB > nR/fR, onde + nR representa o número de tuplas e + fR representa o número de tuplas por bucket Desequilíbrio Poucos buckets armazenam mais tuplas que os outros buckets + Overflow de buckets, mesmo com buckets com espaço Várias tuplas com mesmo valor de chave de busca Função hash não garante uma distribuição uniforme José de Aguiar Moraes Filho Técnicas de Implementação de SBDs 96 4. Indexação - Tipos de Índices - q Índice Hash (cont.) Hashing Estático (cont.) Função de hash é escolhida no momento em que a estrutura de índice está sendo criado Função de hash Mapea um valor de chave de busca em um endereço pertencente ao conjunto B B muito grande Desperdício de espaço em disco B muito pequeno Overflow de bucketsAlteração da função de hash Reorganização Situação ideal A medida que a estrutura de índices cresce, devem ser alterados dinamicamente Número de buckets Função de hash José de Aguiar Moraes Filho 07.02.2012 Técnicas de Implementação de Sistemas de Banco de Dados 49 José de Aguiar Moraes Filho Técnicas de Implementação de SBDs 97 4. Indexação - Tipos de Índices - q Índice Hash (cont.) Hashing Dinâmico Permitir a modificação dinâmica da função de hash e do número de buckets Adequar a função ao crescimento da quantidade de entradas de índices Resultado de funções de hash sobre a chave de busca Valores inteiros e não negativos Representados através de números binários Alocação de registros por buckets Construída com base na representação binária do resultado da função de hash String de bits Valor de hash de uma tupla Alocação da tupla Feita com base nos bits iniciais de seus valores de hash José de Aguiar Moraes Filho Técnicas de Implementação de SBDs 98 4. Indexação - Tipos de Índices - q Índice Hash (cont.) Hashing Dinâmico (cont) Funcionamento Inicialmente Estrutura de índice com apenas um bucket (tamanho fixo) Quando o primeiro bucket estiver cheio e um novo registro é inserido Um novo bucket é criado Registros são distribuídos nos dois buckets com base no valor do primeiro bit (mais à esquerda) de seu valor de hash Registros com bit inicial igual a 0 são armazenados no bucket com endereço 0 Registros com bit inicial igual a 1 são armazenados no bucket com endereço 1 Uma árvore binária é construída Estrutura de diretório José de Aguiar Moraes Filho 07.02.2012 Técnicas de Implementação de Sistemas de Banco de Dados 50 José de Aguiar Moraes Filho Técnicas de Implementação de SBDs 99 4. Indexação - Tipos de Índices - q Índice Hash (cont.) Hashing Dinâmico (cont) 0 1 overflow overflow 0 1 0 1 Bucket overflow Bucket overflow Bucket para registros com valor de hash começando por 0 Bucket para registros com valor de hash começando por 1 Bucket para registros com valor de hash começando por 10 Bucket para registros com valor de hash começando por 11 Bucket para registros com valor de hash começando por 0 José de Aguiar Moraes Filho Técnicas de Implementação de SBDs 100 4. Indexação - Estruturas de Índices Ordenados - q Árvores B (B-trees) Árvore balanceada Todos os caminhos a partir da raiz até os nós folhas apresentam o mesmo comprimento Altura da árvore é constante Regras de formação de uma B-Tree de ordem n Cada nó interno de uma B-tree é da forma <P1,<K1,PD1>,P2,<K2,PD2>, ... ,Pm-1,<Km-1,PDm-1>,Pm> m n Cada Pi representa um ponteiro para uma subárvore (B-tree) ponteiro de árvore Cada PDi representa um ponteiro para a página que contém uma tupla r cuja chave de busca é igual a Ki Ponteiro de dados José de Aguiar Moraes Filho 07.02.2012 Técnicas de Implementação de Sistemas de Banco de Dados 51 José de Aguiar Moraes Filho Técnicas de Implementação de SBDs 101 4. Indexação - Estruturas de Índices Ordenados - q Árvores B (cont.) Regras de formação de uma B-Tree de ordem n (cont.) -Dentro de um nó: K1< K2< ... < Km-1 Para todo valor X de chave de busca na subárvore apontada por Pi, temos Ki-1< X < Ki para 1<i<m, X < Ki para i=1 e Ki-1< X para i=m Cada nó possui no máximo n ponteiros de árvore Cada nó possui no mínimo n/2 ponteiros de árvore (n-1)/2 valores de chave de busca Todos os nós exceto a raiz A raiz possui no mínimo dois ponteiros de árvore Um nó com m ponteiros de árvore possui m-1 valores de chave de busca e m-1 ponteiros de dados José de Aguiar Moraes Filho Técnicas de Implementação de SBDs 102 4. Indexação - Estruturas de Índices Ordenados - q Árvores B (cont.) Regras de formação de uma B-Tree de ordem n (cont.) Todos os nós folhas possuem a altura e apresentam a mesma estrutura que os nós internos Os ponteiros de árvore têm valor null Quantidade máxima de valores de chave de busca que podem ser armazenados na raiz de uma B-tree de ordem p p-1 p-1 José de Aguiar Moraes Filho 07.02.2012 Técnicas de Implementação de Sistemas de Banco de Dados 52 José de Aguiar Moraes Filho Técnicas de Implementação de SBDs 103 4. Indexação - Estruturas de Índices Ordenados - q Árvores B (cont.) Estrutura de uma árvore B (Nó) Pi P1 ... .. . K1 PD1 (X<K1) X P2 Ki-1 PDi-1 Ki PDi (Ki-1<Y<Ki) Y Pm Km-1 PDm-1 Ponteiro de dados (V > Km-1) V K1 PD1 Ponteiro de dados ... ... Ki-1 PDi-1 Ki PDi Km-1 PDm-1 (Folha) José de Aguiar Moraes Filho Técnicas de Implementação de SBDs 104 4. Indexação - Estruturas de Índices Ordenados - q Árvores B (cont.) Construção uma árvore B de ordem n árvore_B ( ) Árvore é inicializada com apenas um nó (nó raiz) - altura 0; Enquanto existir entradas para serem inseridas inserção_nova_entrada(L, chave-busca, PD); Fim; Função inserção_nova_entrada(L, chave_busca, PD) Se o nó L possui n-1 entradas <chave_busca, PD> /* overflow */ Um nó L´ de mesma altura é criado Se Pai(L) /* nó L possui um nó pai */ /* Valor médio M da chave de busca é inserido no nó pai de L */ inserção_nova_entrada(Pai(L), M, PD) Caso contrário criar um nó pai R para L e L´ /* L era raiz da árvore */ inserção_nova_entrada(R, M, PD) /* No nó R, P1 aponta para L e PT2 aponta para L’ */ Valores de chave de busca X < M continuam alocados no nó L; Valores de chave de busca Y > M são alocados no nó L´; Senão inserir entrada <chave_busca, PD) em L José de Aguiar Moraes Filho 07.02.2012 Técnicas de Implementação de Sistemas de Banco de Dados 53 José de Aguiar Moraes Filho Técnicas de Implementação de SBDs 105 4. Indexação - Estruturas de Índices Ordenados - q Árvores B (cont.) Construa árvore B de ordem 3 com a seguinte ordem de inserção de valores de chave de busca 1,3,5,6,7,8,9,12 PD 1 PD 3 PD 1 PD 3 PD 5 6 PD PD 1 PD 3 PD 6 PD 5 PD 7 Incluir 5 - overflow Incluir 7 - overflow PD 8 Incluir 9 - overflow José de Aguiar Moraes Filho Técnicas de Implementação de SBDs 106 4. Indexação - Estruturas de Índices Ordenados - q Árvores B (cont.) Construa árvore B de ordem 3 (cont.) PD 1 PD 6 PD 5 PD 7 PD 9 PD 12 PD 3 PD 8 - Pior caso: nós com capacidade mínima. - Deve ser considerado para cálculo da altura - Pior caso: nós com capacidade mínima. - Deve ser considerado para cálculo da altura José de Aguiar Moraes Filho 07.02.2012 Técnicas de Implementação de Sistemas de Banco de Dados 54 José de Aguiar Moraes Filho Técnicas de Implementação de SBDs 107 4. Indexação - Estruturas de Índices Ordenados - q Árvores B (cont.) Altura Quanto maior o número de ponteiros de árvore por nó Menor a altura da árvore Árvore larga Altura deve ser calculada no pior caso para árvores B Cada nó apresenta sua capacidade mínima Existe uma relação entre altura h e número de nós M (na altura h) em uma árvore B de ordem n h=0; M=1 h=1; M=n/2 (quantidade mínima de nós apontados em h) h=2; M=(n/2)2 h=3; M=(n/2)3 . . . h=k; M=(n/2)k logn/2 M = logn/2 (n/2) k h= logn/2 M Quanto maior a ordem, menor a altura da árvore B José de Aguiar Moraes Filho Técnicas de Implementação de SBDs 108 4. Indexação - Estruturas de Índices Ordenados - q Árvores B (cont.) Remoção de entradas em um nó Função remoção_entrada(L,chave_busca) Se L é nó raiz remoção_entrada_raiz(L, chave_busca) Senão remoção_entrada_nó(L, chave_busca) Fim; José de Aguiar Moraes Filho 07.02.2012 Técnicas de Implementação de Sistemas de Banco de Dados 55 José de Aguiar Moraes Filho Técnicas de Implementação de SBDs 109 4. Indexação - Estruturas de Índices Ordenados - q Árvores B (cont.) Remoção de entradas em um nó Função remoção_entrada_raiz(L, chave_busca) Se L possui apenas uma entrada <chave,PD> /* L possui 2 filhos (ponteiros de árvore) */ S=filho(L) /* retorna filho de L que possui no mínimo (n/2) entradas <chave,PD> */ Se S Se S=filho_esquerda(L) /* Inserir na raiz maior valor de chave de busca em S - considerar toda subárvore */ remoção_entrada(S, K) inserção_nova_entrada(L, K, PD) Senão /* Inserir na raiz menor valor de chave de busca em S */ remoção_entrada(S, K) inserção_nova_entrada(L, K, PD) Senão /* fundir os nós filhos de L em um nó R que será a nova raiz da árvore */ Senão remover entrada <Ki, PDi> de L Se Pi NULL ou Pi+1 NULL atualizar_chave busca(L,i) José de Aguiar Moraes Filho Técnicas de Implementação de SBDs 110 PD V PL' PL 4. Indexação - Estruturas de Índices Ordenados - Função remoção_entrada_nó(L, chave_busca) remover entrada <Ki, PDi> de L; Se nó L possui ((n- 1)/2) entradas <chave de busca, PD> /* underflow */ L’= irmão (L); /* retorna irmão (esq/ dir) de L que possui (n/2) entradas <chave,PD> */ Se L’ inserção_nova_entrada(L, V, PD); /*inserir V (valor entre L e L’ no pai(L)) em L */ Se L’=irmão_esq(L) /* Substituir V no nó pai por maior valor de chave de busca em L’ */ remoção_entrada(L’, K); inserção_nova_entrada(Pai(L), K, PD) Senão /* Substituir V’ no nó pai por menor valor de chave de busca em L’ */ remoção_entrada(L’, F); inserção_nova_entrada(Pai(L), F, PD); Senão /* Irmãos de L contêm exatamente n/2 - 1 entradas <chave, PD> */ Se L’=irmão_esq(L) inserção_nova_entrada(L’, V, PD); /*inserir V em L’ */ remoção_entrada(Pai(L), V, PD); /*remove V de Pai(L) */ inserção_nova_entrada(Pai(L), K, PD); /*Substituir V em Pai(L) por maior valor K em L*/ Transferir entradas de L para L’; remover nó L; Senão inserção_nova_entrada(L, V, PD) /*inserir V em L’ */ remoção_entrada(Pai(L), V, PD); /*remove V de Pai(L) */ inserção_nova_entrada(Pai(L), K, PD) /* Substituir V no nó pai por maior chave em L’ */ Transferir entradas de L’ para L; remover nó L’; Senão Se PTi NULL ou PTi+1 NULL atualizar_chave busca(L,i); Pai(L) José de Aguiar Moraes Filho 07.02.2012 Técnicas de Implementação de Sistemas de Banco de Dados 56 José de Aguiar Moraes Filho Técnicas de Implementação de SBDs 111 4. Indexação - Estruturas de Índices Ordenados - q Árvores B (cont.) Função atualiza_chave_busca(L, i) S=filho(L, PTI) /*retorna verdade se filho de L apontado por PTI tem (n/2) entradas <chave,PD> */ S´= filho(L, PTi+1) Se (S) /* Inserir na raiz maior valor de chave de busca da subárvore apontada PTI*/ remoção_entrada(L´, K) inserção_nova_entrada(L, K, PD) Senão Se (S´) /* Inserir na raiz menor valor de chave da subárvore apontada PTi+1 */ remoção_entrada(L´, K) inserção_nova_entrada(L, K, PD) Senão /* fundir os nós filhos de L em um nó S que será a nova raiz da árvore */ José de Aguiar Moraes Filho Técnicas de Implementação de SBDs 112 4. Indexação - Estruturas de Índices Ordenados - q Estrutura de Índices Ordenados (cont.) Árvores B+ (B+-trees) Árvore balanceada Altura da árvore é constante Regras de formação de uma B+-Tree de ordem n Cada nó interno de uma B+-tree é da forma <PT1, K1, PT2, K2, ... , PTm-1, Km-1, PTm> m n Em um nó não folha, Cada PTi representa um ponteiro para uma subárvore (B +- tree) Em um nó folha Cada PTi representa um ponteiro para a página que contém uma tupla r cuja chave de busca é igual a Ki PTm representa um ponteiro para a próxima folha José de Aguiar Moraes Filho 07.02.2012 Técnicas de Implementação de Sistemas de Banco de Dados 57 José de Aguiar Moraes Filho Técnicas de Implementação de SBDs 113 4. Indexação - Estruturas de Índices Ordenados - q Estrutura de Índices Ordenados (cont.) Árvores B+ (cont) Regras de formação de uma B+-Tree de ordem n (cont.) -Dentro de um nó: K1< K2< ... < Km-1 Para todo valor X de chave de busca na subárvore apontada por PTi, nós temos Ki-1< X Ki para 1<i<m, X Ki para i=1 e Ki-1< X para i=m Cada nó não folha Possui no máximo n ponteiros de árvore Um nó com m ponteiros de árvore possui m-1 valores de chave de busca Possui no mínimo n/2 ponteiros de árvore (n-1)/2 valores de chave de busca Todos os nós exceto a raiz A raiz possui no mínimo dois ponteiros de árvore José de Aguiar Moraes Filho Técnicas de Implementação de SBDs 114 4. Indexação - Estruturas de Índices Ordenados - q Estrutura de Índices Ordenados (cont.) Árvores B+ (cont.) Regras de formação de uma B+-Tree de ordem n (cont.) Cada nó folha Possui no máximo n-1 ponteiros de dados e um ponteiro para próxima folha Uma folha com m ponteiros de árvore possui m-1 valores de chave de busca Possui no mínimo n/2 ponteiros de dados (n-1)/2 valores de chave de busca Todos os nós exceto a raiz A raiz possui no mínimo dois ponteiros de árvore Todos nós folhas apresentam mesma altura José de Aguiar Moraes Filho 07.02.2012 Técnicas de Implementação de Sistemas de Banco de Dados 58 José de Aguiar Moraes Filho Técnicas de Implementação de SBDs 115 4. Indexação - Estruturas de Índices Ordenados - q Estrutura de Índices Ordenados (cont.) Árvores B+ (cont.) Uma entrada <chave de busca, ponteiro para página> só é inserida nos nós folhas Cada nó não folha contém apenas valores de chave de busca e ponteiros de árvore Não contém ponteiros de dados Podem conter mais ponteiros de árvore que árvores B A ordem de árvores B+ é maior que a de árvores B Para um mesmo tamanho de página T Um nó em uma árvore B+ pode ter mais filhos que um nó em uma árvore B Qual uma importante conclusão que se pode tirar do fato acima?? José de Aguiar Moraes Filho Técnicas de Implementação de SBDs 116 4. Indexação - Estruturas de Índices Ordenados - q Estrutura de Índices Ordenados (cont.) Árvores B+ (cont.) Estrutura de uma árvore B+ Ki Ki-1 Pi P1 K1 ... Km-1 Pm ... (Nó) Pi+1 Pi Ki K1 ... P1 Pm ... (Folhas) Próxima folha (XK1) X (Ki-1<YKi) Y (V > Km-1) V Km-1 Pm-1 Km-2 José de Aguiar Moraes Filho 07.02.2012 Técnicas de Implementação de Sistemas de Banco de Dados 59 José de Aguiar Moraes Filho Técnicas de Implementação de SBDs 117 4. Indexação - Estruturas de Índices Ordenados - q Estrutura de Índices Ordenados (cont.) Árvores B+ (cont.) Algoritmo de inserção semelhante ao algoritmo para árvores B Quando há overflow ou underflow Só são transferidos para os nós não folhas valores de chave de busca Não são transferidos ponteiros de dados Cálculo da ordem n de uma árvore B+ Parâmetros Tamanho de página T bytes Tamanho da chave de busca C bytes Tamanho do ponteiro de árvore P bytes (nP) + ((n-1) C) T José de Aguiar Moraes Filho Técnicas de Implementação de SBDs 118 4. Indexação - Estruturas de Índices Ordenados - q Estrutura de Índices Ordenados (cont.) Construa uma
Compartilhar