Anterior Próximo Sumário Fale conosco! OpenBASE! o Banco de Dados inteligente!

Declaração do Banco de Dados

Constitui-se num conjunto de declarações que devem ser especificadas no Esquema de forma ordenada. Estas declarações estão apresentadas nos parágrafos que seguem.

Sintaxe

BANCO [<percurso>] <nome_bd> <codigo_de_seguranca> [BITS64] ... 

[{ARQRECUP | VARIAVEL | ARQREFAZ | DIARIO | DIAREC | AUTOREC}] ...

[{BLOQARQ | BLOQPAG | BLOQREG}] ...

[ESQUEMA = [<percurso_bd_origem>]<nome_bd_origem> ...

<codigo_de_seguranca_bd_origem> ...

[<palavra_de_nivel_bd_origem>]]

Descrição

O comando BANCO marca o início da declaração de um dicionário de dados OpenBASE.

<percurso> indica o diretório completo onde será criado o dicionário de dados (Default: /usr/tsgbd/tsdic)

No ambiente Windows o nome completo do percurso inclui, obviamente, a letra do drive, que deve preceder o nome do diretório (ou pasta) onde reside (ou vai residir) o banco de dados OpenBASE. Caso não seja especificada a letra do Drive, serão aplicadas as seguintes regras:

Se um banco for mudado de drive deve ser executado o define para colocar o novo drive no dicionário.

O operando <nome_bd> especifica o nome do dicionário de dados: consiste de uma cadeia com até 12 caracteres, com as seguintes restrições:

No MS-DOS <nome_arquivo> não pode ultrapassar 8 caracteres.

O operando <codigo_de_seguranca> especifica o código de segurança do Banco de Dados que consiste de um número inteiro entre 1 e 4.294.836.225 (inclusive). Este número é o escolhido pelo projetista do Banco de Dados como uma senha.

BITS64

Se houver a possibilidade de um ou mais arquivos de um Banco de Dados exceder o tamanho de 4GB, a opção <BITS64> indica que, nos índices, os endereços dos registros terão 64 BITS, ou seja, 8 Bytes.

Para que esta opção funcione corretamente, é necessário que o sistema operacional, o FileSystem e as bibliotecas C/C++ suportem os sistemas LFS (Large File System).

No ambiente Windows, esta opção está disponível apenas para arquivos NTFS, pois o FAT32 não suporta LFS.

ARQRECUP

Determina que seja criado um ou mais arquivos, destinados a armazenar os dados das transações antes deles serem modificados.

Permitindo assim que uma ou mais transações não completadas possam ser desfeitas a qualquer momento (rollback / undo).

VARIAVEL

A opção <VARIAVEL> indica que o arquivo de recuperação terá registros de tamanho variável, diminuindo, em princípio, o seu tamanho.

ARQREFAZ

A opção <ARQREFAZ> indica que será criado um arquivo auxiliar com o nome <nome>.Z que conterá as atualizações realizadas no Banco de Dados de forma a permitir o reinicio automático de uma transação. O arquivo <nome>.Z é associado a cada processo e contém uma lógica (apenas as informações modificadas) das atualizações realizadas.

DIÁRIO

Determina que seja utilizado o arquivo DIÁRIO (criado pelo programa BDSGBD) para armazenar todos os dados das transações depois deles serem modificados. Permitindo assim que uma ou mais transações completadas possam ser refeitas, a qualquer momento, a partir de uma determinada data/hora ou a partir de uma determinada transação identificada pelo seu numero.

Esta opção implica na utilização automática da opção ARQRECUP.

DIAREC

Determina que seja utilizado o arquivo DIÁRIO (criado pelo programa BDSGBD) para armazenar todos os dados das transações antes deles serem modificados e depois deles serem modificados.

Permitindo assim que uma ou mais transações completadas possam ser desfeitas ou refeitas, a qualquer momento, a partir de uma determinada data/hora ou a partir de uma determinada transação identificada pelo seu número.

Esta opção implica na utilização automática da opção ARQRECUP.

AUTOREC

A opção AUTOREC indica que ao ser aberto um banco, se o arquivo de recuperação contiver uma transação não completada, a recuperação será feita automaticamente sem solicitar a execução do utilitário bdrecu, desde que não exista nenhum outro processo ativo utilizando o banco e que o bloqueio seja do tipo banco.

BLOQARQ

Determina, para todos os processos de atualização do Banco de Dados que a estratégia de bloqueio será baseada em bloqueio de Arquivos.

BLOQPAG

Estabelece para todos os processos de atualização do Banco de Dados que a estratégia de bloqueio será baseada em bloqueio de páginas.

BLOQREG

Determina para todos os processos de atualização do Banco de Dados que a estratégia de bloqueio será baseada em bloqueio de registros.

ESQUEMA =

Indica que dicionário de dados referenciado em <nome.bd> conterá a estrutura de um sub-esquema, ou seja, a estrutura parcial de um Banco de Dados já existente.

Esta cláusula determina que, na compilação do sub-esquema, seja aberto o Banco de Dados que dará origem ao sub-esquema (BDO), com a finalidade de consistir as estruturas definidas em ambos.

Assim sendo:

§ Todos os arquivos declarados no sub-esquema devem existir no BDO

§ Todos os itens declarados em um arquivo no sub-esquema devem existir no arquivo que esta sendo referenciado no BDO e em conseqüência os tipos e tamanhos dos itens devem ser idênticos.

A definição de um arquivo no sub-esquema deve contemplar todos os itens chaves do arquivo que esta sendo referenciado no BDO, na ordem em que foram declarados no BDO.

<percurso_bd_origem> Percurso onde se encontra o dicionário de dados do Banco de Dados que será referenciado no sub-esquema.

<nome_bd_origem> Nome do dicionário de dados do Banco de Dados que será referenciado no sub-esquema.

<codigo_de_seguranca_bd_origem> Código de segurança do Banco de Dados que será referenciado no sub-esquema.

<palavra_de_nivel_bd_origem> Palavra de nível do Banco de Dados que será referenciado no sub-esquema.

Em casos de sub-esquema não é necessário declarar as cláusulas de controle ARQRECUP, DIÁRIO, BLOQARQ | BLOQPAG | BLOQREG etc … pois esses controles estão subordinados ao Banco de Dados de origem ao qual o sub-esquema se referencia.

Exemplos

BANCO nota_fiscl 33 AQRRECUP DIÁRIO

BANCO /usr/apl/bds/folha_pg 33 ESQUEMA=bd_rh 21 gerent 

banco teste 1

 

 

 

Anterior Próximo Sumário Fale conosco! OpenBASE! o Banco de Dados inteligente!