Você está na página 1de 21

Modelagem de Banco de Dados

Conceitos de estruturas de arquivos e indexação

Prof. Ernando Passos


ernandopassosjr@gmail.com
Estruturas de Arquivos em Banco de Dados
● Os bancos de dados são armazenados fisicamente como
arquivos de registros
– Em geral ficam em HDs

● Nesta aula trataremos sobre a organização do Banco de


dados em locais de armazenamento e as formas para acessá-
los

2
Introdução
● A mídia de armazenamento de um computador forma uma
hierarquia de armazenamento que inclui as categorias
– Armazenamento primário
● Inclui a mídia de armazenamento que pode ser operada
diretamente pela unidade central de processamento (CPU)
● Normalmente oferece acesso mais rápido aos dados
– Mais cara e com menor capacidade de armazenamento
● Memória Cache (L1, L2, L3) nos processadores

– Armazenamento secundário e terciário


● HDs são considerados como armazenamento secundário
● Discos removíveis são considerados como armazenamento
terciário
– Pen drives, CD, DVD, HD Externo

3
Introdução

4
Armazenamento de Banco de Dados
● Informações no Banco de Dados precisam persistir por um
longo período de tempo
– Parte dos dados são acessadas e modificadas
constantemente
– Em geral os bancos de dados são muito grandes para caber
inteiramente na memória principal (RAM)
– Perda de dados é menos frequente em dispositivos de
armazenamento secundário (armazenamento não volátil)
– O custo de armazenamento secundário é menor quando
comparado ao armazenamento primário

● As técnicas utilizadas para armazenar e recuperar


informações em um SGBD são implementadas internamente

5
Armazenamento de Banco de Dados
● As aplicações de banco de dados típicas só precisam de uma
parte do banco de dados por vez para o processamento
– Dados precisam ser localizados no disco, copiado para a
memória principal e, depois, reescrita dos dados no disco HD
● Dados armazenados no HD são organizados como arquivos
de registros
– Cada registro é uma coleção de valores que podem ser
interpretados como fatos sobre entidades, atributos e
relacionamentos

6
Buffering de Blocos
● Em geral, informações são transferidas do HD para a memória
principal através de blocos de dados
– Buffers podem ser reservados na memória para agilizar a
transferência
– Enquanto um buffer está sendo lido ou gravado, a CPU está
processando dados de outro buffer
● Processos C e D estão executando simultaneamente de forma
paralela
● Processos A e B estão executando simultaneamente de forma
intervalada

7
Buffering de Blocos – Buffering Duplo
● Buffering é mais útil quando os processos podem ser
executados simultaneamente de forma paralela
– Vários processadores
● Leitura e processamento podem prosseguir em paralelo
– A cpu processa um bloco quando a transferência já está
finalizada
– Ao mesmo tempo inicia a transferência de um novo bloco de
informações
● Técnica Chamada de Buffering Duplo

8
Buffering de Blocos – Buffering Duplo
● O Buffering duplo permite a leitura ou gravação contínua de
dados em blocos de disco consecutivos
– Elimina o tempo de busca e o atraso para as transferências de
bloco
– Dados estão sempre prontos para processamento

9
Gravando Registro de Arquivos no Disco
● Dados costumam ser armazenados na forma de registros
– Cada registro contém uma coleção de valores ou itens de
dados relacionados
– Cada valor é formado por um ou mais bytes e corresponde por
um atributo em particular do registro
– Registros descrevem entidades, atributos e relacionamentos
● Um registro FUNCIONARIO especifica os seus atributos
– Nome, cpf, salario, departamento, etc
– Na linguagem C

10
Gravando Registro de Arquivos no Disco
● O número de bytes exigidos para cada sistema de
computação é fixo
– Inteiro pode exigir 4 bytes
– Decimal 4 ou 8 bytes
– Text 64KB de dados (Texto)
– LongText 4GB

11
Gravando Registro de Arquivos no Disco
● Um arquivo é uma sequência de registros
– Em muitos casos, todos os registros são do mesmo tipo
– Se cada registro do arquivo tem o mesmo tamanho, o arquivo
é considerado composto de registros de tamanho fixo
● De modo similar existem arquivos compostos de registros de
tamanho variável

● Um arquivo pode ter registros de tamanho variável por


diversos motivos
– Registros são do mesmo tipo, mas um ou mais campos são
opcionais
– O arquivo contém registros de tipos diferentes e, portanto, de
tamanho diferentes (arquivo misto)

12
Gravando Registro de Arquivos no Disco
● A Figura abaixo mostra registros de Funcionário de tamanho
fixo
– Mesmos campos com tamanhos fixos
– O SGBD pode identificar a posição inicial de cada campo em
relação ao registro e/ou arquivo

– No caso de campos opcionais (tamanho variável), é possível


modelar para que o tamanho continue fixo
● Não havendo ocorrência, armazena o valor como NULL

13
Gravando Registro de Arquivos no Disco
● Para campos de tamanho variável, cada registro tem um valor
para cada campo
– Não sabemos o valor exato de alguns campos
– Para delimitar os campos, pode ser utilizado caracteres
especiais (não usado no Banco de Dados)

14
Gravando Registro de Arquivos no Disco
● Um arquivo de registros com campos opcionais pode ser
formatado de várias maneiras
– Pode-se incluir uma sequência de pares
● <nome-valor, nome-campo>
– No exemplo abaixo três tipos de caracteres são utilizados

15
Blocagem de Registros
● Um bloco é a unidade de transferência de dados entre o disco
e a memória
– Os registros de um arquivo precisam ser alocados a blocos de
disco

● Quando o tamanho do bloco é maior que o tamanho do


registro, cada bloco poderá ter diversos registros

● Para um arquivo (B bytes) de registros de tamanho fixo (R


bytes), sendo B>=R, podemos estabelecer o fator de blocagem
bfr = (B/R)
● Em geral R não divide exatamente B, assim tem-se espaços
vazios nos blocos (Organização não espalhada)

16
Blocagem de Registros
● Para utilizar a parte do bloco não utilizada, é possível
armazenar parte de um registro em um bloco e o restante no
outro
– Um ponteiro no final do primeiro bloco aponta para o bloco
que contém o restante do registro
– Organização espalhada

17
Alocando Blocos de Arquivos no Disco
● Existem várias técnicas padrão para alocar os blocos de um
arquivo no disco
● Alocação Contígua
– Os blocos de arquivos são alocados a blocos de disco de
forma consecutiva
– Leitura rápida no buffering duplo, mas dificuldade na
expansão

18
19
Alocando Blocos de Arquivos no Disco
● Alocação Ligada
– Cada bloco de arquivo contém um ponteiro para o próximo
bloco de arquivos
– Facilidade na expansão de arquivos, mas torna a leitura mais
lenta
– Caso se deseje acessar um bloco no meio do arquivo, todos os
blocos anteriores terão de ser lidos em sequência
● Perda de eficiência

20
Alocando Blocos de Arquivos no Disco

21

Você também pode gostar