Escolar Documentos
Profissional Documentos
Cultura Documentos
3
Organização por Registros e Campos
6
Arquivo Stream (seq. de bytes)
7
Arquivo Stream (seq. de bytes)
8
Arquivo Stream (seq. de bytes)
9
Organização por Campos
Há muitos meios de estruturar arquivos por campos:
1. Definir campos de tamanhos fixos
2. Iniciar cada campo com um indicador de tamanho
3. Colocar delimitador no fim de cada campo
• Separando o campo do próximo.
4. Usar uma expressão “keyword = value” para identificar
cada campo e seu conteúdo.
• Esse seria um arquivo de atributos (keywords) e valores
dos atributos.
10
Organização por Campos
Método 1: campos com comprimento fixo.
11
Organização por Campos (Método 2)
12
Organização por Campos (Método 3)
13
Organização por Campos (Método 4)
14
Exercício – Em casa
Faça um programa que leia os dados sobrenome, nome,
endereço, CEP e telefone do teclado e grave esses dados
segundo os métodos abaixo. Esse programa deve ser capaz
de listar os registros após gravá-los.
• campos de tamanho fixo.
• campos com tamanho no início.
• campos com separadores.
• campos com atributo = valor.
Leia e grave até que sobrenome = ‘’.
Obs: O método de organização do arquivo deve ser passado via linha
de comando.
15
Organização por Registros
Registro é um conjunto de campos (de tipos quaisquer) que devem estar
agrupados quando o arquivo é analisado em um nível de organização
mais alto:
registro é uma ferramenta conceitual, como o conceito de campo.
é um outro nível de organização que se impõe aos dados para preservar seu
significado.
Os registros não precisam ser entidades físicas de um arquivo:
mesmo que eles sejam noções lógicas relevantes inclusas na estrutura do
arquivo.
podem coexistir com entidades físicas como:
• setores (trilhas organizadas por setores),
• cluster, extensão etc.
• blocos (trilhas organizadas por blocos, páginas, etc)
16
Organização por Registros
17
Organização por Registros
Método 1: Registros de tamanho fixo
18
Organização por Registros
Método 1: Registros de tamanho fixo
Registro de tamanho fixo c/ campos de tamanho fixo
A seleção do tamanho do registro é mais difícil quando os comprimentos dos campos podem
variar. A escolha de um comprimento fazendo a soma do tamanho máximo estimado para
cada campo garante espaço suficiente, mas é desperdiçado um espaço enorme. 20
Organização por Registros
Método 2: Registros com um Número Fixo de
Campos
Quantidade fixada de campos
ao invés de especificar que cada registro contém um número fixo de
bytes (tamanho), podemos especificar que contém um número fixo
de campos! [o tamanho do registro, em bytes, é variável].
cada campo pode ter tamanho variável ou fixo.
os campos seriam separados por delimitadores!
Tamanho do registro
Não é limitado.
É o somatório dos tamanhos dos campos.
Tamanho fixo ou variável.
• Depende dos tamanhos dos campos
21
Organização por Registros
Método 2: Registros com um Número Fixo de
Campos
Exemplo: 3 campos por registro
Com delimitadores de campos
22
Organização por Registros
Método 3: Registros com Tamanho Indicado
no Início
O registro começa com o seu tamanho
Método freqüentemente empregado para tratar registros de tamanho
variável.
Precisa conhecer o tamanho dos campos.
Tamanho do registro (em bytes) é a soma dos tamanhos dos campos
com:
• a quantidade de delimitadores dos campos.
• ou a quantidade de bytes dos indicadores dos tamanhos dos campos.
• Exemplo: Com delimitador de campos
23
Organização por Registros
Método 4: Registros Apontados por Índices
00 33 ......... 24
Organização por Registros
Método 5: Registros com Delimitadores
Os registros no arquivo texto são separados por um
delimitador:
O delimitador não pode ocorrer como conteúdo de um campo
armazenado.
tal delimitador pode ser um caracter de final de linha:
• “CR-LF”, usado em processamento de textos.
• CR (Carriage return) seguido por um LF (line feed)
É a mesma idéia usada na delimitação de campos.
O delimitador de campos é mantido, sendo que o método combina os
dois delimitadores.
25
Organização por Campos e
Registros
26
Acesso a registros
27
Acesso a registros:
Chaves de Registros
28
Acesso a registros:
Chaves de Registros
Exemplo: Um arquivo é composto de registros
com dados de empregados de uma empresa.
Uma chave pode ser o sobrenome do
empregado: silva, SILVA, Silva, etc. Logo antes
de fazer a procura devemos transformar a chave
a forma padrão.
30
Acesso a registros:
Busca Sequencial
33
Acesso a registros:
Busca Sequencial com Blocagem
34
Acesso a registros:
Busca Sequencial
35
Acesso a registros:
Acesso Direto
36
Acesso a registros:
Acesso Direto
37
Acesso a registros:
Acesso Direto x S.O. e Linguagens
MS-DOS, Windows ou Unix e derivados
Um arquivo é visto como uma sequência de bytes:
• a LP dos aplicativos pode continuar com essa visão
(caso do C: lseek( ) ).
• a LP pode usar procedimentos próprios para ver
arquivo como um conjunto de registros (caso do
PASCAL).
A linguagem PL/I (bem como sistemas que a suportam, como VMS,
OS/MVS), tem outra visão da organização de arquivo.
-Quando o arquivo é organizado em registros, não existe acesso
por bytes, mas apenas por registros.
-Os arquivos são tratados como uma coleção de registros
acessados através de chaves. A conversão chave/endereço
do registro é realizada pelo sistema operacional. 38
Escolha da estrutura e do
tamanho dos registros
O uso do NRR implica em definir um tamanho
fixo para os registros.
Obviamente, esta decisão está relacionada ao
tamanho dos campos que desejamos armazenar
no arquivo.
• Depende se os campos possuem tamanho fixo ou
variável.
39
Escolha da estrutura e do
tamanho dos registros
Registros de tamanho fixo, com campos de tamanho
fixo
(<campo1> <campo2>...<campok>)
• Tamanho do registro = ∑ tamanho(campoi)
• Não há perdas ao nível de registros.
• Há perdas ao nível de campo.
40
Escolha da estrutura e do
tamanho dos registros
Registros de tamanho fixo, com campos de tamanho
variável
O registro é a soma dos tamanhos máximos (estimados) de cada
campo e dos separadores:
• c/ indicador de tamanho de campos
(<Tc1><campo1><Tc2><campo2>...<Tck><campok><perda>)
• c/ separadores de campo
(<campo1>|<campo2>|...|<campok><perda>)
Pode haver perda ao nível de registro.
41
Escolha da estrutura e do
tamanho dos registros
Registro de tamanho fixo c/ campos de tamanho fixo
43
Registro Cabeçalho
(header record)
Em geral, é interessante manter algumas informações sobre o
arquivo para uso futuro. Essas informações podem ser
mantidas em um header no início do arquivo. Algumas
informações típicas são:
número atual de registros no arquivo
política de tamanho de cada registro
os tipos dos campos de cada registro
datas de criação e atualização
r0 r1 r2 rn
Cabeçalho <Tr > <campos> <Tr > <campos> ... <Tr > <campos>
44
Registro Cabeçalho
(header record)
Ele é o primeiro registro do arquivo
A existência de um registro header torna um
arquivo um objeto auto-descrito. [O software
pode acessar arquivos de forma mais flexível]
Problemas: tira a homogeneidade dos registros.
O conteúdo do header difere dos demais
registros do arquivo.
• Embora possa ser tratado como registro variante.
• Usando um flag para indica o tipo de registro atual.
45
Acesso a arquivos x Organização de arquivos
46
Acesso a arquivos x Organização de arquivos
ORGANIZAÇÃO ACESSO
- reg tamanho fixo - direto
49
Tipo Abstrato de Dados – TAD
Objetivo: Focar no conteúdo da informação, ao invés de no
seu formato físico.
Antigamente: Atualmente:
Os computadores processavam: É possível:
- registros de cartões perfurados - processar e transmitir som
e fitas magnéticas, - processar e mostrar imagens
- memória limitada, - processar e interagir com
- Ling.Progr. primitivas. documentos
51
Tipo Abstrato de Dados – TAD
Implementando TAD
Os detalhes da implementação dos objetos são
encapsulados (escondidos do programador).
• visão: nome do tipo e lista de operações disponíveis.
Colocar no arquivo informações:
• que descrevem os objetos nesse arquivo.
• usadas pelo software de acesso para entender esses
objetos.
• implementadas por registro do tipo cabeçalho.
• poupam o programador de entender como os dados estão
fisicamente armazenados.
52
Tipo Abstrato de Dados – TAD
Arquivo auto-descritivo:
É um arquivo com registro cabeçalho contendo
todas as informações que o descrevem:
• número de campos por registro
Contrapartida:
• nome de cada campo Os programas
• tipo de cada campo precisam ser
mais sofisticados.
• número de registros efetivos, etc.
Permite o uso de programas genéricos:
• um programa genérico pode ler ou escrever “qualquer”
arquivo autodescrito.
53
Metadados
Exemplo: um astrônomo, que estuda imagens geradas por
telescópios, precisa projetar uma estrutura de arquivo para
guardar as representações digitais dessas imagens.
Poderão existir milhares de imagens, a serem guardadas em arquivos
individuais.
Dados de interesse: as imagens
Porém, várias informações sobre cada imagem devem estar
disponíveis: a localização no céu, a data de obtenção, o telescópio
utilizado, etc.
54
Metadados
São dados descrevendo dados:
descrições de dados primários num arquivo.
é bastante conveniente armazenar os metadados junto aos dados
primários.
podem ser implementados via registro cabeçalho.
Podem ser inseridos em qualquer arquivo cujos dados
primários precisam de suporte de informação:
métodos específicos, usando metadados, precisam ser empregados
para interpretar os dados primários.
exemplos:
• imagens médicas (DICOM – Digital Image Communication).
• imagens astronômicas (FITS – Flexible Image Transport System).
55
Exemplo - Metadados
DICOM (Digital Image Communication in Medicine)
Aplicações em imagens médicas;
Conjunto de normas para tratar, transmitir e armazenar
imagens médicas
A rede é o grande “gargalo” da grande maioria dos sistemas
de imagens médicas;
Formato DICOM oferece suporte para comunicação em rede
Grande variedade de produtos na área médica utilizam o
formato DICOM ;
DICOM está se tornando o formato padrão de imagens
médicas
56
DICOM Application Domain
Storage, Query/Retrieve,
Study Component
LiteBox
MAGN
ETOM
Media
Exchange
Query/Retrieve, Patient &
Query/Retrieve
Study Management
Results Management
Print Management
57
Imagens Formato DICOM
Exemplo - Metadados
Formato FITS (Flexible Image Transport System)
Arquivo:
<cabeçalho em ascii> <imagem em binário> Imagens
Astronômicas
Cabeçalho:
• uma coleção de blocos de 2.880 bytes.
• cada bloco tem registros de 80 bytes em ASCII.
• cada registro tem um único metadado com a notação:
<keyword = value> / <comentários>
• Exemplo
BITPIX = 16 / bits per pixel
NAXIS = 2 / number of axes
DATE = ’22/09/1989’ / date file written
END
59
Metadados
FITS:
exemplo
de
cabeçalho
Metadados
65
Mistura de tipos de objetos em um
único arquivo
68
Arquivo: <seq de metadados> <anotações> <pontos da imagem> <..
Mistura de tipos de objetos em um
único arquivo
69
Mistura de tipos de objetos em um
único arquivo
70
Mistura de tipos de objetos
em um único arquivo
Para um programa que precisa acessar objetos
em um tagged file, algumas perguntas:
1. Onde encontrar um objeto já armazenado?
2. Onde armazenar um objeto no arquivo?
• Como e onde armazenar sua tag?
3. Dado que os objetos são diferentes:
• Como determinar o método correto para armazenar e
recuperar tais objetos?
73
Acesso a arquivo orientado a
objeto
Por exemplo: aplicação que trabalha com imagens em RAM de 8 bits
precisa processar uma coleção de arquivos. Alguns arquivos estão
armazenados no padrão FITS e outros em TIFF.
Adotando a orientação a objetos nessa aplicação, o programa utilizaria
uma rotina que leria os objetos para a memória no formato esperado
(8 bits). A rotina de leitura (read_image), por sua vez, estaria
encarregada de, a cada arquivo, invocar o procedimento correto para
conversão daquele arquivo no formato 8-bits necessário.
Tagged files são uma maneira de implementar esse tipo de
organização de arquivos, com esse tipo de acesso ao arquivo.
A especificação de uma tag pode ser acompanhada de métodos para
leitura, escrita, etc., do objeto correspondente, de acordo com as
necessidades de uma aplicação. 74
Portabilidade e Padronização
Ao se criar um arquivo, deve se pensar que ele
possa ser acessado por:
diferentes computadores com diferentes S.O.
diferentes programas de aplicação.
nesse contexto o arquivo é compartilhável.
O compartilhamento de um arquivo é afetado por
dois fatores:
portabilidade.
padronização.
75
Fatores que afetam portabilidade
76
Fatores que afetam portabilidade
77
Fatores que afetam portabilidade
78
Fatores que afetam portabilidade
79
Obtendo Portabilidade
Algumas diretrizes para tratar do problema são:
Escolha e mantenha um formato de registro físico
padrão ou standard. (ex: FITS, TIFF)
80