Informações Principais
     Resumo
     Abstract
     Introdução
     Conclusão
     Download
  
  
  
 
Introdução
 
 
Acadêmico(a): Davi Rodrigo Bianchi
Título: Ferramenta para desenvolvimento de objetos compartilháveis de banco de dados em linguagem procedural
 
Introdução:
Os crescentes avanços tecnológicos e a evolução constante dos sistemas computacionais geraram a demanda de um local de armazenamento de dados seguro e capaz de manipular de forma ágil e rápida grandes quantidades de informação. Para sanar tal necessidade, a utilização de um Sistema Gerenciador de Banco de Dados (SGDB) torna-se imprescindível. A razão de ser de um sistema gerenciador de banco de dados é gerenciar os dados armazenados em um banco de dados. Em geral, pode ser visto sob duas perspectivas: a do usuário e a do SGBD. Os usuários visualizam um banco de dados como uma coleção de dados logicamente agrupados. Para um SGBD, um banco de dados é simplesmente uma série de bytes, usualmente armazenados em um disco rígido. (PETKOVIC, 2001, p. 5). Através da possibilidade de criação de estruturas de controle internas, os SGBDs passaram a suportar parte do desenvolvimento da aplicação. Além disso, como aspectos relevantes na utilização de um SGDB, pode-se citar, por exemplo: a) consistência de dados; b) segurança e autorização; c) integridade de dados; d) independência física e lógica de dados; e) controle concorrente. Em Taylor (2003, p. 21) é afirmado que a Structured Query Language (SQL) é a ferramenta mais utilizada para comunicação em bancos de dados relacionais. De acordo com Kriegel e Trukhnov (2003, p. 42), a linguagem SQL foi projetada para armazenamento de dados, recuperação e manipulação, e como tal, foi incorporada aos SGBDs, ou seja, não existe fora de um SGBD, nem poderia ser executada sem. Para escrever objetos compartilháveis de banco de dados existe uma linguagem, que estende a forma procedural do SQL, denominada pela Oracle como Procedural Language/Structured Query Language (PL/SQL). Conforme descrito em Oliveira (2000), a linguagem PL/SQL combina o poder de manipulação de dados do SQL com os recursos de uma linguagem de programação de alto nível. No entanto, cada SGBD possui sintaxe própria para utilização de linguagem procedural, o que vai contra a padronização existente na linguagem SQL. Logo, o desenvolvimento dos objetos do banco de dados compartilháveis para diferentes SGBDs por parte do programador do sistema de informação torna-se uma tarefa árdua e complexa, uma vez que as peculiaridades devem ser consideradas. Visando criar um ambiente comum para programação de objetos de banco de dados, Hiebert (2003) aborda em seu trabalho de conclusão o desenvolvimento de um protótipo de compilador, cujo objetivo é a geração de código para dois SGBDs específicos, Oracle e MS SQL Server. A partir da definição da gramática de uma linguagem padrão e utilizando um código fonte obedecendo às regras dessa gramática, o protótipo realiza a verificação de erros e a geração de código para o SGBD específico, considerando as características do mesmo. Para construção de tal ferramenta, Hiebert (2003) utilizou técnicas de compilação para validação do código fonte, gerando o respectivo código objeto para SGBDs distintos. Grune et al. (2001, p. 1) define compilador como “um programa que aceita como entrada um texto de programa em uma certa linguagem e produz como saída um texto de programa em outra linguagem, enquanto preserva o significado deste texto”. Conforme Aho, Sethi e Ullman (1995, p. 3-5), conceitualmente, um compilador opera em fases, cada uma das quais transforma o programa fonte de uma representação para a outra. Na prática, algumas das fases podem ser agrupadas e a representação intermediária entre as mesmas não precisa ser explicitamente construída. Como parte do núcleo de análise do compilador, responsável pela validação do código fonte e detecção de erros, tem-se as fases de análise léxica e sintática. Ainda tem-se como fases não menos importantes, a análise semântica, a geração de código intermediário, a otimização de código e a fase de geração de código, que realizam a síntese do código fonte. Todas as fases podem encontrar erros, porém as fases de análise sintática e semântica tratam usualmente de uma ampla fatia de erros detectáveis pelo compilador.