PL/SQL
Published: 2023-11-13 23:30:11

O que é PL/SQL?


PL/SQL é uma extensão da linguagem SQL usada no banco de dados Oracle. Ela combina a capacidade de manipulação de dados do SQL com recursos de programação procedural, permitindo criar consultas poderosas. Com PL/SQL, é possível usar estruturas de controle como loops e condições para maior controle sobre o banco de dados. Essa linguagem melhora a segurança e a robustez do banco de dados, proporcionando aos desenvolvedores mais controle sobre suas operações.
Isso oferece diversas possibilidades, mas é essencial entender a estrutura e os detalhes de implementação para evitar escrever códigos inadequados. É crucial compreender como o PL/SQL interage com o SQL para criar programas eficientes e bem-sucedidos.

Arquitetura do PL/SQL

A arquitetura PL / SQL consiste principalmente nesses três componentes:
1.	Bloco do PL/SQL
2.	Motor do PL/SQL
3.	Servidor do banco de dados

BLOCO PL/SQL

 O BLOCO PL/SQL é um componente fundamental que abriga código PL/SQL, composto por seções que organizam logicamente o código. Estas seções incluem a declarativa para declarações, a de execução para instruções de processamento, e a de tratamento de exceções para lidar com erros. Dentro deste bloco, encontramos instruções SQL que interagem com o servidor de banco de dados. Todas as unidades PL/SQL são tratadas como blocos PL/SQL, sendo este o estágio inicial da arquitetura e a entrada principal para o código.
Existem vários tipos de unidades PL/SQL, incluindo:
1.	Anonymous Block: Um bloco sem nome que contém código executável.
2.	Function: Uma unidade PL/SQL que retorna um valor.
3.	Library: Um conjunto de procedimentos e funções armazenados para reutilização.
4.	Procedure: Uma unidade PL/SQL que executa uma série de instruções.
5.	Package Body: Contém a implementação real de um pacote.
6.	Package Specification: Define a interface de um pacote, especificando as funções e procedimentos disponíveis.
7.	Trigger: Um bloco PL/SQL que é automaticamente executado em resposta a eventos específicos no banco de dados.
8.	Type: Define um tipo de dado personalizado.
9.	Type Body: Contém a implementação real de um tipo de dado definido.
Esses tipos de unidades PL/SQL permitem uma organização modular e eficiente do código, promovendo a reusabilidade e a manutenção facilitada. O bloco PL/SQL serve como o ponto de partida para a construção de lógica e interação com o banco de dados em ambientes Oracle e é essencial para o desenvolvimento de aplicações robustas e escaláveis.

MOTOR DO PL/SQL

O MOTOR DO PL/SQL é o componente responsável pelo processamento efetivo dos códigos PL/SQL. Ele atua como uma camada intermediária que separa as unidades PL/SQL da parte de entrada SQL, conforme ilustrado na imagem anterior. Essas unidades PL/SQL, uma vez isoladas, são gerenciadas internamente pelo motor.
Ao contrário, a porção SQL é encaminhada para o servidor, permitindo a interação direta com o banco de dados. Essa divisão de responsabilidades destaca a função central do motor do PL/SQL na execução eficiente e organizada do código.
É relevante notar que o motor do PL/SQL pode ser instalado tanto no servidor de banco de dados quanto no servidor de aplicativos, proporcionando flexibilidade na implementação. Essa arquitetura contribui para a eficácia do PL/SQL ao possibilitar a execução de lógica de negócios no motor, enquanto as consultas SQL são processadas diretamente no servidor de banco de dados. Essa abordagem favorece o desempenho e a modularidade no desenvolvimento de aplicações que empregam a linguagem PL/SQL.

SERVIDOR DO BANCO DE DADOS

O principal componente da unidade PL/SQL é o executor do SQL, onde os dados são armazenados. O motor do PL/SQL utiliza o SQL da unidade PL/SQL para interagir com o servidor de banco de dados. O executor do SQL desempenha um papel crucial ao analisar todas as instruções SQL de entrada e executar as operações necessárias no banco de dados. Essa interação eficiente entre o motor do PL/SQL e o executor do SQL é essencial para o processamento efetivo de dados e a execução de lógica de negócios nas aplicações PL/SQL.

TIPOS DE DADOS

O PL/SQL, assim como outras linguagens de programação, oferece uma variedade de tipos de dados para uso em variáveis, constantes e parâmetros. As principais categorias desses tipos de dados são as seguintes:

1.	Scalar: Representa valores únicos que não possuem componentes adicionais. Exemplos incluem o tipo:
NUMBER: Para representação de valores numéricos.
DATE: Utilizado para manipulação de dados temporais.
BOOLEAN: Designado para variáveis lógicas que podem assumir os valores verdadeiro ou falso.

2.	Large Object (LOB): Funciona como um referenciador para objetos grandes armazenados separadamente dos dados comuns. Exemplos incluem:
Texto longo.
Imagens gráficas.
Vídeos.

3.	Composite: Esta categoria engloba tipos de dados nos quais os componentes podem ser manipulados individualmente. Exemplos são:
Matriz: Um conjunto de elementos do mesmo tipo.
Registro: Uma estrutura de dados contendo campos nomeados e de tipos diversos.
Tabela: Uma estrutura de dados semelhante a uma tabela de banco de dados.

4.	Reference: Essencialmente, serve para referenciar outros itens de dados. Este tipo de dado é valioso em situações em que é necessário manipular valores indiretamente.
Essas categorias proporcionam flexibilidade na representação e manipulação de dados no PL/SQL, atendendo a diversas necessidades em desenvolvimento de software.

VANTAGENS E DESVANTAGENS DO PL/SQL

A maior vantagem do SQL da Oracle é a padronização e consistência de várias implementações diferentes. O SQL foi padronizado primeiramente pela ANSI (Instituição americana de padrões) em 1986, e ratificado em 1987 pela Organização Internacional de Padronização (ISO), que mantêm o corpo da padronização. Outros pontos que podemos destacar:
Desempenho elevado, já que o SQL é executado de forma agrupada, ao invés de uma única instrução.
• Alta produtividade.
• Integração total com SQL
• Padronização
• Portabilidade total
• Muita segurança.
• Suporte aos conceitos de POO
• Escalabilidade e fácil de gerenciar
• Também oferece suporte ao desenvolvimento de aplicativos da web.

Desvantagens
Uma das maiores desvantagens do SQL da Oracle é a inconsistência e a incompatibilidade dos dados em áreas de tempo e dados de sintaxe, concatenação de sentenças e sensibilidade. A linguagem é complexa, com palavras chaves semelhantes a do COBOL, com menos menos regras de sintaxe a gramática.
• As procedures que ficam guardadas no PL/SQL usam muita memória.
• Não oferece suporte ao debugging de procedures armazenadas.
• Qualquer mudança que ocorra no banco de dados requer alguma mudança na camada de apresentação.
• Acaba não separando as funções do desenvolvedor back-end e front-end.





APLICAÇÕES NO MERCADO
1.	Desenvolvimento de Aplicações Web:

PL/SQL é frequentemente utilizado no desenvolvimento de aplicações web usando Oracle Application Express (APEX), uma plataforma de desenvolvimento de baixo código para criar aplicações web.
2.	Integração de Sistemas:

PL/SQL é usado para criar procedimentos armazenados que facilitam a integração entre sistemas diferentes. Isso é particularmente útil em ambientes corporativos complexos, onde várias aplicações precisam se comunicar entre si.
3.	Relatórios Personalizados:

PL/SQL pode ser usado para criar relatórios personalizados que atendam às necessidades específicas de uma organização. Isso é feito por meio da criação de procedimentos armazenados que recuperam, processam e formatam os dados conforme necessário.
4.	Automação de Tarefas:

Tarefas repetitivas e processos de negócios podem ser automatizados usando PL/SQL. Isso inclui processos de carga, transformação e carga (ETL) de dados, processamento de lotes e outras operações programáticas.
5.	Validações de Dados e Regras de Negócios:

PL/SQL é usado para implementar regras de negócios e validar dados antes de serem inseridos no banco de dados. Isso garante a consistência e a integridade dos dados.
6.	Segurança e Controle de Acesso:

Procedimentos armazenados em PL/SQL podem ser usados para implementar lógica de segurança e controle de acesso, garantindo que apenas usuários autorizados possam executar determinadas operações no banco de dados.
7.	Manutenção de Dados:

PL/SQL é frequentemente utilizado para a criação de scripts de manutenção de dados, como atualizações em massa, limpeza de dados obsoletos e outras operações de manutenção.
8.	Triggers para Eventos no Banco de Dados:

PL/SQL é usado na criação de triggers (gatilhos) que respondem a eventos específicos no banco de dados, como a inserção, atualização ou exclusão de registros em uma tabela.
9.	Processamento de Transações Financeiras:

Em sistemas financeiros, PL/SQL pode ser usado para implementar procedimentos armazenados que lidam com o processamento de transações, cálculos de juros e outras operações financeiras.
10.	Migração de Dados:

Durante processos de migração de dados entre sistemas ou atualizações de software, PL/SQL é frequentemente utilizado para facilitar a transferência de dados de forma eficiente e segura.