Cap. 3 Organização de Ficheiros e Indexação

Documentos relacionados
Consistem num conjunto de apontadores para instâncias especificas de cada relação.

DBMS%Performance% Carlos%Soares% (baseado%em%materiais%gen8lmente%cedidos% por%andré%res8vo,%joão%correia%lopes%e%do% livro%ramakrishnan%&%gehrke)% %

Cap. 2 - Armazenamento de Dados: Discos e Ficheiros

Administração e Optimização de BDs

PostgreSQL Performance

Banco de Dados Profa. Dra. Cristina Dutra de Aguiar Ciferri. Banco de Dados Processamento e Otimização de Consultas

TECNOLOGIAS DA INFORMAÇÃO E COMUNICAÇÃO. SISTEMAS DE GESTÃO DE BASE DE DADOS Microsoft Access TECNOLOGIAS DA INFORMAÇÃO E COMUNICAÇÃO

Guia de Consulta. Percorrer

Cap. 5 Indexação Baseada em Hashing

Ministério das Finanças Instituto de Informática. Departamento de Sistemas de Informação

TECNOLOGIAS DE INFORMAÇÃO E COMUNICAÇÃO

Estruturas de Armazenamento e Indexação. Rafael Lage Moreira Barbosa

Sistema de Informação de Licenciamento de Operações de Gestão de Resíduos

Sistemas de Ficheiros. Ficheiros Diretórios Implementação de sistemas de ficheiros Exemplos de sistemas de ficheiros

Possui como idéia central a divisão de um universo de dados a ser organizado em subconjuntos mais gerenciáveis.

Bases de Dados II 6638: BSc in Information Systems and Technologies. Cap. 1 Arquitectura de Sistemas de Bases de Dados. Module Introduction

Prof.: Clayton Maciel Costa

Banco de Dados I Módulo V: Indexação em Banco de Dados. (Aulas 1, 2 e 3) Clodis Boscarioli

INSTITUTO SUPERIOR TÉCNICO Administração e Optimização de Bases de Dados

Sistemas Operativos I

Programador/a de Informática

Sistemas Operativos. Sumário. Estruturas de sistemas de computação. ! Operação de um sistema de computação. ! Estruturas de E/S

Árvores Binárias Balanceadas

Tarefa Orientada 14 Subconsultas

SOP - TADS Sistemas de Arquivos Cap 4 Tanenmbaum

Aplicações de Escritório Electrónico

Bases de Dados. O que é uma Base de Dados? Pós-Grduação em SIG

Tarefa Orientada 12 Junção Externa, Auto-Junção e União

Apostila de Fundamentos de Programação I. Prof.: André Luiz Montevecchi

Fundamentos de Sistemas Operacionais

A VISTA BACKSTAGE PRINCIPAIS OPÇÕES NO ECRÃ DE ACESSO

Manual do GesFiliais

Prof. Daniela Barreiro Claro

Guia de Utilização. A consulta dos e-books não exige a instalação de nenhum programa específico.

Trabalhos Práticos. Programação II Curso: Engª Electrotécnica - Electrónica e Computadores

Bases de Dados. Parte IX: Organização Física dos Dados

Impressão e acabamento: Inova 1ª edição: Novembro de 2004

Bases de Dados. Lab 1: Introdução ao ambiente

Módulo 4: Gerenciamento de Dados

Organização de Arquivos

Prof. Bruno Calegaro

Programação III / Estruturas de Dados. Enunciado do Trabalho Prático

Sistemas Operacionais

Fundamentos de Sistemas Operacionais. Sistema de Arquivos. Prof. Edwar Saliba Júnior Março de Unidade Sistemas de Arquivos

DOCBASE. 1. Conceitos gerais. 2. Estrutura da pasta de associações. 3. A área de documentos reservados. 4. Associação de Imagens

EXCEL TABELAS DINÂMICAS

TOTVS BA Guia de Customização Linha Logix

Organização de Arquivos

Sistemas de Ficheiros. 1. Ficheiros 2. Directórios 3. Implementação de sistemas de ficheiros 4. Exemplos de sistemas de ficheiros

Sistemas Operacionais: Sistema de Arquivos

Sistemas de Nomes Planos

GereComSaber. Desenvolvimento de Sistemas de Software. Universidade do Minho Conselho de Cursos de Engenharia Licenciatura em Engenharia Informática

Conceitos Importantes:

implementação Nuno Ferreira Neves Faculdade de Ciências de Universidade de Lisboa Fernando Ramos, Nuno Neves, Sistemas Operativos,

O AMBIENTE DE TRABALHO DO WINDOWS

Prof. Daniela Barreiro Claro

APROG - Civil. Excel. Técnicas de pesquisa de informação em tabelas. Instituto Superior de Engenharia do Porto

Ficheiros binários 1. Ficheiros binários

MICROSOFT ACCESS MICROSOFT ACCESS. Professor Rafael Vieira Professor Rafael Vieira

ARQUIVOS DE CONFIGURAÇAO ZIM 8.50

AULA 16 - Sistema de Arquivos

Tipos de Servidores. Servidores com estado

Universidade Federal de Santa Maria Curso de Arquivologia. Disciplina de Banco de Dados Aplicados à Arquivística. Versao 1.

Disciplina de Banco de Dados Introdução

SUMÁRIO. Introdução... 3

Algoritmos de pesquisa. Tabelas de dispersão/hash

Usando o Excel ESTATÍSTICA. A Janela do Excel Barra de título. Barra de menus. Barra de ferramentas padrão e de formatação.

Tarefa Orientada 6 Edição de Dados

Figura 1 - O computador

SISTEMA DE INFORMAÇÃO DAS PARTICIPAÇÕES DO ESTADO

UFRJ IM - DCC. Sistemas Operacionais I. Unidade IV Sistema de arquivos. Prof. Valeria M. Bastos Prof. Antonio Carlos Gay Thomé 13/06/2012 1

- A crescente necessidade de sistemas inteligentes e de aquisição de conhecimento levaram à necessidade de implementação de Data Warehouses.

PROGRAMA DE PÓS-GRADUAÇÃO POSEAD. Curso Banco de Dados. Resenha Crítica: Backup e Recovery Aluno: Wilker Dias Maia

Armazenamento de Dados. Prof. Antonio Almeida de Barros Junior

Referencial do Módulo B

UNIVERSIDADE FEDERAL DO PARANÁ. CURSO: Ciência da Computação DATA: / / 2013 PERÍODO: 4 o.

Um modelo de dados é a colecção de, pelo menos, 3 componentes:

O modelo do computador

Introdução. Banco de dados. Por que usar BD? Por que estudar BD? Exemplo de um BD. Conceitos básicos

Data Warehousing e OLAP

CAP. I ERROS EM CÁLCULO NUMÉRICO

Contabilidade Financeira I

Programação de Sistemas

Sistemas Operacionais

Programação Engenharia Informática (11543) 1º ano, 1º semestre Tecnologias e Sistemas de Informação (6619) 1º ano, 1º semestre

Conceitos de Banco de Dados

Procedimento de Gestão PG 02 Controlo de Documentos e Registos

Introdução Banco de Dados

DEPARTAMENTO DE ENGENHARIA INFORMÁTICA FACULDADE DE CIÊNCIAS E TECNOLOGIA DA UNIVERSIDADE DE COIMBRA

Colocar em prática. Tópicos para aprender. Colocar em prática. Utilizar as aplicações da Microsoft Windows num quadro interactivo SMART Board

TUTORIAL DO ACCESS PASSO A PASSO. I. Criar um Novo Banco de Dados. Passos: 1. Abrir o Access 2. Clicar em Criar um novo arquivo

Sistemas de Banco de Dados Aspectos Gerais de Banco de Dados

Manual Brother Image Viewer para Android

RAID Redundat Arrays of Inexpensive Disks

Hardware & Software. SOS Digital: Tópico 2

Capítulo 6 Sistemas de Arquivos

Funções de um SO. Gerência de processos Gerência de memória Gerência de Arquivos Gerência de I/O Sistema de Proteção

Sistemas de Bases de Dados

Transcrição:

Cap. 3 Organização de Ficheiros e Indexação If you don t find it in the index, look very carefully through the entire catalogue. -- Sears, Roebuck, and Co., Consumer s Guide, 1897 Abel J.P. Gomes Bibliografia: 1. R. Ramakrishnan and J. Gehrke. Database Management Systems. Addison-Wesley, 2003 (cap.8). 1

1. Objectivos Como é que um DBMS armazena e acede aos dados em disco? Porque é que o custo temporal I/O é tão importante nas operações de bases de dados? Como é que um DBMS organiza os ficheiros de registos de dados em disco para minimizar os custos de I/O? O que é um índice, e porque é que é usado? Qual é a relação entre um ficheiro de registos de dados e um índice que sobre ele é definido? Quais são s as propriedades importantes dos índices? Como é que um índice baseado em hashing funciona, e em que circunstâncias é mais eficaz? Como é que um índice estruturado em árvore funciona, e em que circunstâncias é mais eficaz? Como é que se pode usar índices para optimizar o desempenho 2 para uma dada carga de trabalho?

2. Contexto A abstracção básica dos dados num DBMS é a de uma colecção de registos ou um ficheiro; cada ficheiro consiste numa ou mais páginas. A camada FMA organiza os dados cuidadosamente para suportar acesso rápido a subconjuntos de registos que são alvo de operações específicas. Compreender como os registos estão organizados em ficheiro é essencial para compreender o funcionamento dum sistema de bases de dados. Optimização e Execução de Inquirições Operadores Relacionais Fich. e Métodos de Acesso Gestão de Buffers Gestão de Espaço em Disco DB 3

3. Alternativas na Organização de Ficheiros Existem muitas alternativas, cada uma das quais adequada a situações específicas, mas não a outras: Heap files (unsorted files): adequados quando o acesso varre o ficheiro de alto a baixo para devolver todos os registos (records) nele existentes. Ficheiros Ordenados (sorted files): mais adequados quando se pretende devolver os registos pela ordem estabelecida pela search key, ou quando somente uma gama de registos é necessária. Clustered Files (with Indexes): em breve 4

4. Análise e Modelo de Custos Para tornar a análise mais simples, vamos ignorar os custos de tempo gasto na CPU: B: número de blocos de dados (data blocks) R: número de registos por bloco D: Tempo (médio) para ler ou escrever um bloco de/no disco A medição do número de I/O s de blocos ignora os ganhos de pré-localização e acesso sequencial; portanto, mesmo o custo I/O é só grosseiramente aproximado. Análise do caso médio; é baseada em várias assumpções simplistas. Modelo suficientemente bom para mostrar as tendências no seu todo! 5

4.1 Algumas assumpções feitas na análise Simples inserção e eliminação de registos. Selecção baseada na igualdade - exactamente um one match (what if more or less???). Heap Files: A inserção é sempre feita no fim do ficheiro. Ficheiros Ordenados: Ficheiros compactados após eliminações de registos. Selecções baseadas na chave de pesquisa (search key). 6

4.2 Custo de operações B: número de páginas de dados (data pages) R: número de registos por página D: tempo (médio) para ler/escrever uma página no disco Heap File Ficheiro Ordenado Clustered File Escrutínio (scan) de todos os registos Pesquisa baseada na igualdade Pesquisa baseada na gama Inserção B D 0.5 B D B D 2D B D (log 2 B) D [(log 2 B) + #match pages] D ((log 2 B)+B) D Eliminação 0.5B D + D ((log 2 B)+B) D (porque R,W 0.5) 7

5. Índices Às vezes, queremos devolver registos através da especificação de valores num ou mais campos; por exemplo, Encontrar todos os estudantes do Dept. de Informática. Encontrar todos os estudantes com uma classificação superior a 3 (gpa > 3), assumindo a escala de 0 a 5. Um índice sobre um ficheiro é uma estrutura de dados baseada no disco que torna mais rápidas as selecções feitas a partir de campos-chave de pesquisa (the search key fields). Qualquer subconjunto de campos duma relação pode ser a chave de pesquisa (search key) do índice. Não se deve confundir uma chave de pesquisa (search key) com uma chave (key), pois não tem que ser única. Um índice contém uma colecção de verbetes ou entradas de dados (data entries), e suporta a devolução eficiente de todos os registos com base num valor k da chave de pesquisa. 8

6. Primeira Questão acerca de Índices Que tipos de selecções suportam? Selecções da forma campo <op> constante Selecções basedas na igualdade (op é =) Selecções basedas na gama de valores (op é dos seguintes operadores: <, >, <=, >=, BETWEEN) Selecções mais exóticas: Gamas 2-dimensionais ( este de Berkeley e oeste de Truckee e North of Fresno e South of Eureka ) ou n-dimensional Distâncias 2-dimensionais ( no raio de 2 milhas da Covilhã ) ou n-dimensional Inquirições baseadas em ranking ( 10 restaurantes mais próximos de Berkeley ) Satisfação de expressões regulares, satisfação de cadeias genómicas, etc. Um índice n-dimensional comum: R-tree Suportado por Oracle e Informix Veja-se http://gist.cs.berkeley.edu para mais detalhes sobre 9 este tópico

7. Disrupção dum Índice (Index Breakdown) Um índice suporta que selecções? Representação de verbetes de dados (data entries) no índice i.e., que tipo de informação é que o índice realmente guarda? há 3 alternativas Índices de Chave Simples vs. Índices de Chave Composta Índices baseados em árvore, índices baseados em hashing, outros Índices Aglomerados e Não-Aglomerados (Clustered vs. Unclustered Indexes) 10

8. Alternativas para Verbete de Dados (Data Entry) k* no Índice Três alternativas: registo de dados real (chave com valor k) <k, rid do registo de dados que contém k> <k, lista de rids dos registos de dados que contêm k > A escolha é ortogonal à técnica de indexação. Exemplos of técnicas de indexação: árvores B+, estruturas baseadas em hashing, árvores R, Tipicamente, o índice contém informação auxiliar que direcciona a procura para os verbetes de dados desejados. Podemos ter vários (e diferentes) índices por cada ficheiro de dados da BD. por exemplo, ficheiro ordenado por idade, com um índice hash sobre o salário e um índice em árvore B+ sobre 11 o nome.

8.1 Alternativa 1: Registo de dados real (chave com valor k) Com esta alternativa, a estrutura do índice é a de um ficheiro organizado em registos de dados (à semelhança dos ficheiros ordenados ou heap files). No máximo, só um índice sobre uma dada colecção de registos de dados pode usar a Alternativa 1. Esta alternativa poupa na procura de ponteiros, mas pode ser dispendiosa de manter face às inserções e eliminações de registos. 12

8.2 Alternativas 2 e 3: <k, rid do registo de dados que contém k> <k, lista de rids dos registos que contêm k> Mais fácil de manter do que a Alternativa 1. Se mais do que um índice é necessário para um dado ficheiro de dados, no máximo só um índice pode usar a Alternativa 1; os restantes têm de usar obrigatoriamente a Alternativa 2 ou 3. Alternativa 3 é mais compacta que Alternativa 2, mas conduz a verbetes de dados de tamanho variável mesmo se as chaves de procura são de tamanho fixo. Pior ainda, para listas grandes de rids, os verbetes podem abranger vários blocos! 13

9. Classificação de Índices Clustered vs. unclustered: Se a ordem dos registos de dados é a mesma que, ou é próxima de, a ordem dos verbetes de dados do índice, então temos um clustered index. Um ficheiro pode ser clustered para uma (no máximo) chave de pesquisa. O custo de devolver registos de dados através um índice varia bastante, dependendo de se o índice é clustered ou não! A Alternativa 1 implica ter um índice clustered, mas o contrário não é verdade. 14

9.1 Índices Clustered vs. Unclustered CLUSTERED Suponha que a Alternativa (2) é usada para verbetes de dados, e que os registos de dados são armazenados num heap file. Para construir um índice clustered, ordena-se em primeiro lugar o heap file (com algum espaço livre em cada bloco para eventuais inserções futuras de dados). Blocos em overflow podem ser necessários para operações de inserção. (Daí, a ordem de registos de dados ser próxima, mas não idêntica, à ordem de ordenação do heap file.) Index entries direct search for data entries UNCLUSTERED Data entries (Index File) (Data file) Data entries Data Records Data Records 15

9.2 Índices Clustered vs. Unclustered (cont.) Quais são as vantagens/desvantagens? Os prós dos índices clustered Eficientes para pesquisas baseadas em gamas de valores (range searches) Podem facilitar alguns tipos de compressão de dados Possíveis benefícios resultantes da localidade dos dados (dados relacionados?)??? Os contras dos índices clustered Custosos de manter (face a actualização de dados e avessos à reorganização) 16

9.3 Custo de operações B: The number of data pages R: Number of records per page D: (Average) time to read or write disk page Heap File Sorted File Clustered File Scan all records BD BD 1.5 BD Equality Search 0.5 BD (log 2 B) * D (log F 1.5B) * D Range Search BD [(log 2 B) + #match pg]*d [(log F 1.5B)+ #match pg]*d Insert 2D ((log 2 B)+B)D ((log F 1.5B)+1)* D Delete 0.5BD + D ((log 2 B)+B)D (because R,W 0.5) ((log F 1.5B)+1)* D 17

10. Chaves de Pesquisa Compostas Pesquisa sobre uma combinação de campos. Inquirição de igualdade: Todo o valor dum campo é igual a um valor constante; e.g.: wrt <age,sal> index: age=20 e sal =75 Inquirição de gama: algum valor dum campo não é constante; e.g.: age > 20; ou age=20 e sal > 10 Verbetes de dados no índice ordenados por chave de pesquisa para suportar inquirições de gama. Ordem lexicográfica. Como o dicionário, mas sobre campos, não sobre letras! Exemplos de índices de chave composta usando ordem lexicográfica 11,80 12,10 12,20 13,75 <age, sal> 10,12 20,12 75,13 80,11 <sal, age> name age sal bob cal Data entries in index sorted by <sal,age> 12 11 joe 12 10 80 20 sue 13 75 Data records sorted by name <age> <sal> 18 11 12 12 13 10 20 75 80 Data entries sorted by <sal>

Sumário A camada de ficheiros gere o acesso a registos em páginas. Os formatos de registos e de páginas dependem do comprimento ser fixo ou variável. A gestão do espaço livre é uma questão importante. O formato de página entalhada (slotted page format) suporta registos de comprimento variável e permite que os registos se movam dentro de cada página. Existem muitas formas de organizar a estrutura dum ficheiro, sendo cada uma apropriada para certos casos. Se as inquirições de selecção são frequentes, ordena-se o ficheiro ou constrói-se um índice. Índices em hashing só são bons para pesquisa de igualdade. Ficheiros ordenados (sorted files) e índices estruturados em árvore (tree-based indexes) adequam-se melhor a pesquisas de gama; também são bons para pesquisas de igualdade de valores. (Ficheiros raramente se mantêm ordenados na prática; o índice estruturado em árvore B+ é melhor.) Um índice é uma colecção de verbetes de dados mais uma forma de encontrar rapidamente verbetes com valores 19 específicos de chave.

FIM DE CAPÍTULO Sumário (cont.) Um índice é uma colecção de verbetes de dados mais uma forma de encontrar rapidamente verbetes com valores específicos de chave. Verbetes de dados no índice podem ser registos de dados reais, pares <key, rid>, ou pares <key, rid-list>. A escolha é ortogonal à estrutura de indexação (i.e., tree, hash, etc.). Normalmente, temos vários índices sobre um dado ficheiro de registos de dados, cada um com uma chave de pesquisa diferente. Os índices podem ser classificados como clustered vs. unclustered As diferenças entre eles têm consequências importantes na utilidade/desempenho. As relações no catálogo armazenam informação acerca de relações, índices e vistas. 20