
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.
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>]]
[DISTRIB = [<servidor>]
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.
BANCO nota_fiscl 33 AQRRECUP DIÁRIO
BANCO /usr/apl/bds/folha_pg 33 ESQUEMA=bd_rh 21 gerent
banco teste 1
Em caso de Bancos Distribuídos:
<banco> <seg> ... [ distrib = <servidor> ]
A opção distrib indica que o banco de dados é distribuído e o servidor mestre.
nome: <arquivo> <tipo> ... [ servidor = <servidor> ]
O operando <servidor> especifica o nome do Host servidor onde reside o Banco distribuído, por Exemplo.
banco abc 1 distrib = TS1
nome: arq1 e servidor = TS2
c1(1) u03
nome: arq2 r servidor = TS3
c2(arq1) u03
