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

Recursos dos ambientes OpenBASE

O Sistema Gerenciador de Bancos de Dados OpenBASE implementa todos os recursos e facilidades inerentes ao modelo relacional adotado. Entretanto, cabe ressaltar:

A seguir detalhamos alguns dos recursos básicos dos ambientes OpenBASE.

Segurança e controle nos ambientes OpenBASE

...

...

...

Mecanismos de bloqueio nos ambientes OpenBASE

Os mecanismos de controle de acesso para atualização concorrente em Bancos de Dados OpenBASE são estabelecidos conforme as estratégias de bloqueio especificadas no Esquema do Banco de Dados. Para melhor compreensão dos mecanismos de bloqueio adotados, é importante compreender o que seja uma transação OpenBASE.

Uma transação OpenBASE é constituyída por uma determinada seqüência de atualizações nas Bases de Dados, podendo compreender um ou mais registros de um ou mais arquivos do Banco. O início de uma transação é definida por um comando de bloqueio (LOCK) e o seu final por um comando de desbloqueio (UNLOCK). Isto não significa que somente os registros envolvidos na transação sejam bloqueados. Na verdade, o que vai determinar o universo de registros a serem bloqueados é o tipo de bloqueio escolhido para o Banco de Dados.

Em uma aplicação do usuário escrita na linguagem OPUS, as transações que envolvem uma única atualização não precisam explicitar os controles de LOCK e UNLOCK, pois estes são supridos internamente pela OPUS, de forma automática.

O OpenBASE implementa os mecanismos de bloqueio apresentados a seguir.

Bloqueio do Banco de Dados

Caso o usuário não especifique no Esquema do Banco nenhum tipo de bloqueio, o OpenBASE assume automaticamente (por default) um bloqueio por Banco, implementando em cada transação o bloqueio de todo o Banco de Dados.

Transações complexas, utilizando grandes Banco de Dados com intensa concorrência podem acarretar problemas de performance na utilização do bloqueio de Banco de dados. Em casos normais, o tempo que o Banco de Dados ficará bloqueado é praticamente imperceptível.

Para o OpenBASE, este tipo de bloqueio é bastante eficiente, econômico e seguro, sem possibilidade de ocorrer "deadlock".

Bloqueio de Arquivos

Este tipo de bloqueio é útil quando os aplicativos se restringem a acessar registros de um único arquivo, ou seja, cada aplicação acessa um arquivo do Banco de Dados.

Bloqueio de Chave

Este tipo de bloqueio define que todos os registros que contiverem a mesma chave estarão bloqueados. São bloqueadas as chaves primárias que se relacionam com os registros de uma transação e, em conseqüência, todos os registros que possuírem chaves estrangeiras, que referenciam as chaves primárias bloqueadas, estarão também bloqueados.

Bloqueio de Página

Este tipo de Bloqueio define que todas as páginas onde estão contidos os registros a serem atualizados pelas transações sejam bloqueados. O tamanho de uma página equivale a 1024 bytes e compreende um registro, parte de um registro, ou vários registros.

Bloqueio de Registro

Este tipo de Bloqueio define que todos os registros a serem atualizados pelas transações sejam bloqueados.

Observações gerais sobre bloqueio:

Implementação dos Relacionamentos

As Entidades no OpenBASE podem se relacionar com outras entidades direta ou indiretamente (relacionamento entre registros de arquivos distintos). Declarar um relacionamento no OpenBASE não é simplesmente declarar os itens associativos, ou seja, a chave estrangeira das entidades envolvidas nos relacionamentos. Mais do que isso, é estabelecer as ligações e os caminhos a serem percorridos pelo Banco de Dados.

Estabelecendo a Ligação

Toda Entidade é identificada através de seu atributo determinante (chave primária). Aliado a este atributo é informado o número de ligações, ou seja, em quantos arquivos de dados a chave primária da Entidade referenciada como chave estrangeira.

Numa relação entidade (tipo E ou T) o número de ligações pode ser especificado como *, o que será automaticamente substituído pelo número de referências nos arquivos posteriormente definidos.

Exemplo:

nome: PESSOA e

NOMEP (*)            u30 << (*) será substituído por (1) >>

IDADE            n2

nome: FILHOS r

NOMEP1 (PESSOA)        U30

IDADEF            n2

Estabelecendo o Caminho

Todo relacionamento é identificado através dos atributos associativos (chave estrangeira). Aliado a estes atributos são informados os nomes das entidades aos quais eles se referem, ou seja, as procedências das chaves estrangeiras.

Após definir as ligações e caminhos dos relacionamentos, o OpenBASE administra automaticamente a integridade referencial, além de permitir, para obtenção de dados (se não existir itens com nomes repetidos no Banco de Dados), junção de dados dos registros relacionados em vários níveis de relacionamento.

A definição de todas as ligações e caminhos dos relacionamentos é efetuada no Esquema do Banco de Dados, ou seja, estarão definidas também no Dicionário de Dados. O fato de ter que definir estas informações no esquema, não determina na implementação física do BD, ponteiros (elos explícitos) entre registros. Todas as ligações são efetuadas de forma lógica, através do Dicionário de Dados.

Integridade Referencial

A integridade referencial implementa a consistência das referências nos relacionamentos em um Banco de dados garantindo que:

Para efetivar a integridade referencial é necessário apenas definir os relacionamentos entre as entidades. O OpenBASE implementa automaticamente este recurso.

Subesquemas e visões

Bancos de Dados podem ser manipulados de maneira extremamente flexível com relação aos aplicativos. Dado um Esquema de um Banco de Dados qualquer, podem ser definidos subesquemas que irão manipular visões (ou porções) deste Banco de Dados.

O esquema base original, a partir do qual foram definidos os subesquemas, passa a ser chamado esquema global. Assim sendo, um subesquema apresenta visões ou partes do esquema base global conforme as especificações dos projetistas dos Bancos de Dados e suas respectivas aplicações.

Os arquivos declarados no subesquema devem existir no esquema global, sendo que os atributos dos arquivos definidos no subesquema devem ser compatíveis com os atributos do esquema global, ou seja, os itens declarados nos arquivos do subesquema devem encontrar itens correspondentes no esquema global, conservando seus tipos e tamanhos.

Interseção de Bancos

O OpenBASE permite interseções de Bancos de Dados, através de referências externas aos Arquivos Entidades e Relacionamentos. Estas referências são tratadas pelo OpenBASE como Arquivos TABELA e CONSULTA.

Arquivos Tabela e Arquivos Consulta

São arquivos externos ao Banco de Dados onde estão sendo declarados e se referem a arquivos Relacionamentos pertencentes a outros Banco de Dados. Ao ser declarado um arquivo Tabela ou Consulta, deve-se especificar a sua procedência, ou seja, a qual Banco de Dados ele pertence efetivamente. Por serem arquivos externos pertencentes a outros BDs, estes só poderão ser lidos e nunca atualizados.

Na declaração de um arquivo Tabela ou Consulta não é obrigatório declarar todos os itens de dados que estão definidos nos arquivos aos quais se referenciam (Entidades e Relacionamentos), porém todos os itens chaves devem ser declarados, na mesma ordem em que o foram, nos respectivos arquivos que estão sendo referenciados.

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