Professional Documents
Culture Documents
Bases de Dados II
Objectivos
Quais so as caractersticas fsicas dos discos rgidos e das cassetes (tapes), e como que
afectam o design de sistemas de bases de dados?
Como que um DBMS regista o espao em disco? Como que um DBMS acede e modifica
os dados em disco? Qual o significado duma pgina enquanto unidade de armazenamento
e transferncia de dados?
Como que um DBMS cria e mantm ficheiros de registos (records)? Como que os
registos esto organizados em pginas, e como esto as pginas organizadas dentro dum
ficheiro?
Optimizao e Execuo
de Inquiries
Operadores Relacionais
Ficheiros e
Mtodos de Acesso
Gesto de Buffers
Gesto de Espao em Disco
DB
Discos e ficheiros
Optimizao e Execuo
de Inquiries
Operadores Relacionais
Ficheiros e
Mtodos de Acesso
Gesto de Buffers
Gesto de Espao em Disco
DB
Optimizao e Execuo
de Inquiries
Operadores Relacionais
Ficheiros e
Mtodos de Acesso
Gesto de Buffers
Gesto de Espao em Disco
DB
Hierarquias de memria
Mais Pequena,
Mais Rpida
Memria Cache
Memria Principal
Disco Electrnico
Disco Magntico
Disco ptico
Cassete Magntica
Maior,
Mais Lenta
Disco
Disco:
Componentes dum disco
Disco:
Acesso a uma pgina em disco
Disco:
Organizao das pginas em disco
Blocos num ficheiro devem ser organizados sequencialmente no disco (via next),
para minimizar a latncia rotacional e de procura.
A camada mais baixa dum DBMS faz a gesto de espao em disco (quer use o
sistema de ficheiros do sistema operativo ou no?).
DB
BUFFER POOL
disk
page
free
frame
Memria RAM
Disco
DB
seleco da frame
ditada pela
poltica de
substituio
Uma frame seleccionada para substituio com base numa poltica de substituio:
Least recently used (LRU)
Most recently used (MRU)
Clock
etc.
Problemas?
Algumas limitaes, p.ex. a memria virtual do OS no tem uma gesto to fina das
pginas.
DB
A estrutura mais simples dum ficheiro aquela que contm os registos sem
qualquer ordem em particular. Estes ficheiros so conhecidos por heap files.
Data
Page
Data
Page
Data
Page
Full Pages
Header
Page
Data
Page
Data
Page
Data
Page
Pages with
Free Space
Data
Page 1
header
page
Data
Page 2
Data
Page N
Tamanho fixo:
Informao acerca dos tipos dos
campos do registo a mesma para
todos os registos num ficheiro;
armazenada nos catlogos do sistema.
Fi = field i
Li = length of field i
F1
F2
F3
F4
L1
L2
L3
L4
base
address (B)
address = B+L1+L2
Tamanho varivel:
Dois formatos alternativos (#fields
fixo), como se ilustra ao lado.
A segunda alternativa oferece acesso
directo ao i-simo campo (field),
armazenamento eficiente de nulls
(valor especial para dont know);
pequena sobrecarga de directorias.
Fields delimited by
special symbol $
F1
F2
F3
$ F4 $
F1
F2
F3
F4
Record id = <page id, slot #>. Na primeira alternativa, quando se apaga um registo,
move-se o ltimo registo para o slot entretanto vago, o que altera o seu rid; isto
pode no ser aceitvel para referncias externas.
Slot 1
Slot 2
Slot 1
Slot 2
Free
Space
...
...
Slot N
Slot N
Slot M
1 ... 0 1 1M
N
PACKED
number
of records
M ...
3 2 1
UNPACKED, BITMAP
number
of slots
Pode mover registos sem alterar o rid; assim, tambm atractivo para registos de
tamanho fixo.
DATA AREArid
Offset of record
from start of
data area
= (i,N)
Page i
rid = (i,2)
Rid = (i,1)
FREE SPACE
20
N
...
16
2
SLOT DIRECTORY
24 N
1 # slots
Pointer to start
of free space
Catlogos do sistema
Catlogos do sistema:
exemplo
rel_name
Attribute_Cat
Attribute_Cat
Attribute_Cat
Attribute_Cat
Students
Students
Students
Students
Students
Faculty
Faculty
Faculty
type
string
string
string
integer
string
string
string
integer
real
string
string
real
position
1
2
3
4
1
2
3
4
5
1
2
3
Sumrio:
Sumrio (cont.):
Camada de ficheiros toma nota das pginas num ficheiro e suporta abstraco
duma coleco de registos.
Pginas com espao livre identificadas pela utilizao duma lista ligada ou estrutura de
directorias.