A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

AULA 10 Profa. Sandra de Amo GBC053 – BCC

Apresentações semelhantes


Apresentação em tema: "AULA 10 Profa. Sandra de Amo GBC053 – BCC"— Transcrição da apresentação:

1 AULA 10 Profa. Sandra de Amo GBC053 – BCC 2013-1
Revisão Prova 1 AULA 10 Profa. Sandra de Amo GBC053 – BCC 2013-1

2 Esquema Geral Processador de Consultas
Solicita dados para consulta (leitura) ou alterações (escritura) Informa modif Gerenciador de Buffer Propaga modif aloca Busca DB

3 Disco Memória Principal
Dados precisam estar na memória principal para serem operados. Unidade de transferência de dados entre disco e memória principal = bloco Se um único item num bloco é necessário, todo o bloco é transferido Ler ou escrever um bloco = operação de I/O Tempo de Acesso = busca + rotação + transferência

4 Tempos de Acesso Procura Rotação Transferência
Tempo para mover as cabeças dos discos para a trilha na qual um bloco desejado está localizado. Rotação Tempo para que o bloco desejado se posicione sob a cabeça do disco = meia rotação em média; menor do que tempo de busca. Transferência Tempo para ler ou escrever no bloco = tempo de rotação do disco sobre o bloco.

5 Gerenciador de Espaço em Disco
Quais blocos estão em uso ? Que páginas estão em que blocos ? Inserções e supressões de páginas = criação de “buracos”. Páginas são alocadas quando da criação de arquivos. Gerenciamento de espaço livre 1a alternativa Lista de blocos livres. Ponteiro para primeiro bloco livre é estocado num local do disco. 2a alternativa Array de 0 e 1 : se o bloco i está livre ou não

6 Algoritmo de Gerenciamento do Buffer Pool
Frame no pool 3 Dirty bit : página suja ou não Pin-count = número de vezes que a página foi solicitada para consultas ou modificações mas não foi liberada ainda. Inicialmente : Dirtybit := 0 Pin-count := 0

7 Algoritmo de Gerenciamento
Testa se buffer pool contém a página desejada Se não : procura frame com pin-count = 0 Frame com pin-count = 0 : página está liberada por transações que a utilizavam Caso não encontre frame com pin-count = 0 Espera até que as transações sendo executadas liberem páginas em uso. Se dirty-bit = 0, escreve página nova no frame. Se dirty-bit = 1 : escreve página do frame no disco Escreve nova página no frame Incrementa pin-count do frame (já que alguma transação solicitou a página)

8 Políticas de Substituição de Páginas
Que frames com pin-count = 0 escolher para substituição ? LRU : Least recently used Lista de ponteiros para frames com pin-count = 0 Ponteiros dos frames são adicionados no fim da lista MRU : Most recently used Ponteiros dos frames são adicionados no início da lista Random

9 Gerenciamento de arquivos Heap (sequencias)
Como encontrar determinada página no arquivo ? Que página possui espaço livre? Método 1: Lista ligada de páginas Método 2: Diretório de páginas 3/25/2017 Bacharelado em Ciência da Computação 9

10 Lista Ligada de Páginas
Arquivo EndPag1 Alunos 1033 Hospital 5023 Tabela Arquivos- End 1a página Páginas contendo Espaço Livre Header Page Páginas Cheias 1a página do arquivo 3/25/2017 Bacharelado em Ciência da Computação 10 10

11 Diretório de Páginas Tabela Arquivos- End 1a páginaDP Header Page
Endpg1DP Alunos 1033 Hospital 5023 Tabela Arquivos- End 1a páginaDP Diretório de Páginas = Lista Ligada 10 40 35 Pg Dados 1 Pg Dados 2 Pg Dados N Header Page Espaço Livre da Página 1 11

12 Focando agora nas páginas !!
rid = identificador do registro (record id) registro rid 2 50 Número do slot Identificador da página Página = coleção de slots Slot = espaço físico preenchido por um registro 12

13 Como registros de tamanho FIXO são organizados: 1a alternativa
Slot 1 Slot 2 Slot 3 Slot N Espaço livre N Número de registros Informações sobre a página : Número da página, ponteiro para próxima página,… 13 13

14 Como registros de tamanho fixo são organizados (2ª alternativa)
Registros de Tamanho Fixo : 2a alternativa Slot 1 Espaço livre Slot 2 Slot 3 Slot M 1 1 1 M Número de Slots Info sobre página 1 2 3 M 3/25/2017 Bacharelado em Ciência da Computação 14 14

15 Como registros de tamanho variável são organizados – Diretório de Slots da Página
200 Número de slots no diretório Ponteiro para o início do espaço livre na página 1035 (P1, T1) 1 Pi = ponteiro para o registro 1 (P2, T2) 2 Ti = tamanho do registro 1 (P200, T200) 200 Rid = (np, i) Ti 3/25/2017 Bacharelado em Ciência da Computação 15 15

16 Bacharelado em Ciência da Computação - 2004
Organização da Página Área de dados Página i rid = (i,N) rid = (i,1) rid = (i,2) Comprimento = 24 Espaço Livre Diretório de slots 16 24 N 20 N 2 1 3/25/2017 Bacharelado em Ciência da Computação 16 16

17 Focando agora nos registros !!
O tamanho do campo Ci é o mesmo em todos os registros C1 C2 C3 C4 L1 L2 L3 L4 B= endereço do registro Endereço = B + L1 + L2 Ci = campo i Li = Comprimento do campo i 17

18 Como localizar um campo em um registro de tamanho variável
1a alternativa C1 $ C2 $ C3 $ C4 $ 2a alternativa Registro C1 C2 C3 C4 Endereço do final do registro 3/25/2017 Bacharelado em Ciência da Computação 18 18

19 Indice: como são os registros ?
Alternativa 1 Entrada = registro inteiro de dados Neste caso, a única vantagem do índice é a forma como é organizado: ordenado, hash, com método de acesso ou não Alternativa 2 Entrada = (k,rid), k = chave Chave = conjunto de atributos Alternativa 3 Entrada = (k, lista de rids) Vantagem: ocupa menos espaço. Uma chave acessa diversos registros no arquivo de dados Desvantagem: registro de tamanho variável

20 Como organizar as entradas do índice ?
Entrada = registro Entradas podem ser ordenadas Entradas podem ser organizadas por Hash

21 Exemplo de Indice 2000 Paulo, 44, 2000 2000 Pedro, 35, 2000 2000
Carlos, 44, 2000 2500 José, 40, 2500 3000 João, 35, 3000 3500 Ilmério, 40, 3500 3500 Rodrigo, 40, 3500 4000 Maria, 30, 4000 4000 Sara, 35, 4000 5000 Sabrina, 31, 5000 Entradas : organizadas de forma ordenada Registros de dados

22 Exemplo de Indice organizado por Hash
Paulo, 44, 2000 2000 2000 Pedro, 35, 2000 H(sal) = 01 Carlos, 44, 2000 2000 José, 40, 2500 2500 H H(sal) = 11 João, 35, 3000 5000 Ilmério, 40, 3500 3000 Rodrigo, 40, 3500 3500 Maria, 30, 4000 3500 H(sal) = 00 Sara, 35, 4000 4000 Sabrina, 31, 5000 4000 Registros de dados Entradas

23 Exemplo de Indice Agrupado
2000 Paulo, 44, 2000 2000 Pedro, 35, 2000 2000 Carlos, 44, 2000 2500 José, 40, 2500 3000 João, 35, 3000 3500 Ilmério, 40, 3500 3500 Rodrigo, 40, 3500 4000 Maria, 30, 4000 4000 Sara, 35, 4000 5000 Sabrina, 31, 5000 Entradas Registros de dados

24 Exemplo de Indice não agrupado
Paulo, 44, 2000 2000 2000 Pedro, 35, 2000 H(sal) = 01 Carlos, 44, 2000 2000 José, 40, 2500 2500 H H(sal) = 11 João, 35, 3000 5000 Ilmério, 40, 3500 3000 Rodrigo, 40, 3500 3500 Maria, 30, 4000 3500 H(sal) = 00 Sara, 35, 4000 4000 Sabrina, 31, 5000 4000 Registros de dados Entradas

25 Exemplo de Indices denso e não denso
André, 44, 2000 30 Carlos, 44, 2000 31 André Ilmério, 40, 3500 35 José João, 35, 3000 35 Rodrigo José, 40, 2500 35 Maria, 30, 4000 40 Pedro, 35, 2000 40 Rodrigo, 40, 3500 40 Sabrina, 31, 5000 44 Sara, 35, 4000 44 Indice Esparso e Agrupado Indice Denso e não-agrupado Registros de dados

26 Indices Primários e Secundários
Primários : Chave do índice inclue a chave primária da relação. Não há entradas duplicadas (com mesmo valor da chave) Secundários : Não contém chave primária. Pode conter chave candidata Pode conter duplicatas ou não

27 Indices com chaves compostas
Indice em (Idade,Sal) Indice em Idade 31,80 31 33,75 33 42,10 bob 42 10 42 42,20 cal 31 80 42 joe 42 20 sue 33 75 Indice em Sal 10,42 10 20,42 20 75,33 75 80,31 80 Indice em (Sal,Idade)

28 Organização de arquivos
Sequencial Ordenado Hash Usando Métodos de Acesso para melhorar performance Indices: Arquivos AUXILIARES ISAM, B+Tree, Hash

29 Custos de Operações – Arquivos Heap (sequencial)
Scan Sel = chave Nchave Sel <> Insert Delete sel B(RC+D) 0.5 B(D+RC) 2D+C Sel + + D + C BD 0.5BD 2D Sel+D 29

30 Custos de Operações – Arquivos Ordenados

31

32 Custos de Operações: Arquivos Ordenados
Scan Sel = chave Nchave Sel <> Insert Delete Sel = chave B(D+RC) (log2B)(D+C) + Clog2R Clog2R + + RC/2 (log2B)(D+C)+ B/2(D+RC) (log2B)(D+C) + (log2R)(C) + (D+RC/2) BD Dlog2B Dlog2B + DB/2 Dlog2B+D

33 Custos de Operações – Arquivos Hashed
Scan Sel = chave Nchave Sel <> Insert Delete sel 1.25B (D+RC) H + D + RC 1.25B(D+RC) H+2D+ C Sel + D + RC 1.25BD D 2D Sel+D

34 Escolha de uma Boa Organização
Scan Sel = chave Nchave Sel <> Insert Delete Heap BD 0.5BD 2D 2D+Sel Ord Dlog2B Dlog2B + B/2(D+RC) Dlog2B+ D Hash 1.25BD Sel+D

35 Método de Acesso – ISAM Organização do índice em árvore
Páginas auxiliares que permitem chegar rapidamente a uma folha Páginas do arquivo de índice Páginas do Arquivo de Dados 35

36 Discussão Páginas primárias (folhas) são alocadas
ISAM é uma estrutura estática Na criação do arquivo Páginas primárias (folhas) são alocadas 20% de cada página é livre para posteriores inserções, tentando “adiar” ao máximo a criação de páginas de overflow Páginas intermediárias são criadas. Manutenção : Páginas de overflow são alocadas à medida que as páginas primárias do índice ficam cheias em decorrência de inserções.

37 Esquema Geral do Método ISAM
Páginas dos arquivos de indices (a partir da 2a camada) Páginas primárias – as entradas do arquivo de índice da primeira camada Páginas de overflow 37

38 Como são os nós internos da estrutura ISAM ?
Pi = ponteiros que apontam para um núm. de página no nível imediatamente inferior Ki = valor do atributo chave do índice. Exemplo: se o atributo chave é idade então Ki é um valor de idade. P0 K1 P1 K2 P2 K3 ... Pi Ki+1 Pi+1 ... Km Pm K < Ki+1 K ≥ Ki+1 Valores K da chave nesta página são < Ki+1 Valores K da chave nesta página são ≥ Ki+1

39 Idéia Se quero buscar empregado com status > 7:
Não é preciso fazer busca binária nas páginas do arquivo de indice Faz-se a busca binária no segundo arquivo, que é bem menor do que o primeiro arquivo 14 2* 5* 7* 12* 14* 17* 19* 22* 39

40 Exemplo: Busca de um registro de dados
Busca da chave 27 Raiz 40 51 63 20 33 10* 15* 20* 27* 33* 37* 40* 46* 51* 55* 63* 97* 40

41 Inserção de um registro
Raiz 40 51 63 20 33 10* 15* 20* 27* 33* 37* 40* 46* 51* 55* 63* 97* 23* 48* 41* Página de Overflow 42* 41

42 Deleção de um registro Deleção de 42*, 51*, 97* Procura 51* Raiz
Nunca são alteradas !! 40 51 63 20 33 10* 15* 20* 27* 33* 37* 40* 46* 51* 55* 63* 97* 23* 48* 41* Pagina de Overflow 42* 42

43 Comparação de Custos Arquivo de 1 000 000 registros
Custo de uma busca A = a Arquivo de registros 10 registros por página de dados : total de páginas = 100 ponteiros em cada página de índice (99 entradas (chave,pt) + ponteiro P0) Arquivo não ordenado por A Scan = /10 = I/0 Arquivo ordenado por A Busca binária = log = 17 I/0 Arquivo estruturado usando método ISAM Arquivo de indice usa alternativa 1 (registro do indice = registro de dados) Custo = log = entre 2 e 3 I/0, pois 1002 < < 1003 43

44 Vantagens de ISAM ISAM é estático :
inserções e deleções afetam somente as folhas. Nós internos não sofrem modificações após uma inserção ou deleção de registros do indice. Logo, páginas internas podem ser manipuladas por outras transações sem problemas de bloqueios, já que nunca são alteradas. 44

45 Desvantagens de ISAM Possibilidade de cadeias de páginas overflow
Páginas overflow geralmente não são ordenadas, a fim de agilizar inserções. Para aliviar este problema : Árvore é criada com 20% de cada folha livre Entretanto, uma vez preenchido este espaço, cadeias de overflow só podem ser eliminadas através de uma total reorganização da estrutura. 45


Carregar ppt "AULA 10 Profa. Sandra de Amo GBC053 – BCC"

Apresentações semelhantes


Anúncios Google