Pular para o conteúdo principal

Linguagens Internas Oracle - Linguagens - Ferramentas de Desenvolvimento - Família Oracle


#9
Aqui vamos conhecer apenas as linguagens internas do Oracle e como elas funcionam.

- Ela é desenvolvida e controlada por organismos internacionais.
- SQL é uma linguagem set-oriented (Orientada a Conjuntos).
- A linguagem possui apenas 16 comandos, mas, na prática, a codificação SQL as vezes é extremamente complicada

- Os 16 comandos são separados em 4 tipos: DML, DDL, DCL, TCL

Se você reparar as siglas são bem parecidas, então vamos decorar essas siglas.
Vamos dividir elas em 2 grupos para ficar mais fácil decorar.

Primeiro grupo
- DML e DDL, eles são bem parecidos e fácil de lembrar. A primeira sigla é para Manipulação de dados e a segunda é Definição de dados. Então vamos definir esse grupo como Manipulação e Definição de dados.

Segundo Grupo
- DCL e TCL, esse grupo também é bem parecido e fácil de lembrar, é só trocar a primeira letra. Esse grupo é referente a instruções de Controle. A primeira sigla controla a permissão sobre os Dados e a segunda sigla controla as transações DML efetuadas. Então vamos definir esse grupo como Controle de Dados e Transações.

Agora ficou mais fácil lembrar todos os comandos oferecidos pelo SQL. A segunda parte é decorar as instruções, mas se você lembrar desses grupos que criamos fica mais fácil lembrar dos comandos.

* DML (Data Manipulation Language) - Linguagem de manipulação de dados.

- Possui 5 Comandos
- Esses são os comandos mais usados em banco de dados.

- Comandos (também podem ser chamadas de instrução):
- SELECT
- INSERT
- UPDATE
- DELETE
- MERGE - Essa instrução é a menos usada, com ela é possível executar várias instruções do DML dentro de uma única instrução MERGE.

* DDL (Data Definition Language) - Linguagem de definição de dados

- Possui 6 Comandos
- Esses comandos são usados para trabalhar com a estrutura e organização do banco de dados e das tabelas.

- Comandos (também podem ser chamadas de instrução):
- CREATE
- ALTER
- DROP
- RENAME
- TRUNCATE
- COMMENT

* DCL (Data Control Language) - Linguagem de Controle de Dados

- Possui 2 Comandos
- Esses comandos são utilizados para gerenciar a parte de segurança do banco de dados, com esses comandos é possível Dar e Retirar permissões de usuários.

- Comandos (também podem ser chamados de instrução):
- GRANT - Esse comando fornece o acesso ou privilégios aos usuários sobre os objetos do banco de dados.
- REVOKE - Esse comando remove o acesso ou privilégios aos usuários sobre os objetos do banco de dados.

* TCL (Transaction Control Language) - Linguagem de Controle de Transações

- Possui 3 Comandos
- São intruções para controle das transações DML, com ele é possível desfazer ou confirmar uma transação realizada.

- Comandos (também podem ser chamadas de instrução):
- COMMIT - Esse comando confirma uma transação realizada, essa confirmação é irreversível. (Transação: INSERT, UPDATE, DELETE)
- ROLLBACK - Esse comando é usado para desfazer uma transação realizada. (Transação: INSERT, UPDATE, DELETE)
- SAVEPOINT - Esse comando define um ponto de restauração, com ele você cria um ponto de referência e caso ocorra um ROLLBACK a ação retorna até o SAVEPOINT criado.

Mais à frente vou explicar cada um desses comandos do SQL, então não se preocupem.

A única linguagem de uso inevitável em um banco de dados é a SQL (Structured Query Language, ou Linguagem de Consulta Estruturada).
A SQL é a linguagem responsável por realizar toda a comunicação com o banco de dados, mas, ela não pode ser usada sozinha, pois, ela não possui os recursos reais para desenvolver interfaces de usuário e não possui as estruturas procedurais para manipular linhas individualmente.
Resumindo: SQL é a linguagem usada para comunicar com o banco de dados, mas ela não consegue fazer essa comunicação sozinha, ela precisa de outras linguagens que ofereçam suporte a essa comunicação.

As outras 2 linguagens disponíveis dentro do banco de dados Oracle é a PL/SQL e Java, e essas 2 linguagens preenchem a lacuna deixada pela SQL.

Vamos conhecer PL/SQL, essa é uma linguagem de terceira geração (3GL) e ela é de propriedade da Oracle.
A PL/SQL possui os recursos e construções procedurais de praxe, como ramificações condicionais com base no loop iterativo e o if-then-else.
Com ela é possível interatigir de forma dinâmica com instruções SQL e executar várias ações de CRUD baseadas no resultado das SQLs.

Vamos conhecer Java, essa linguagem também vem internamente no Oracle, com ela também é possível executar instruções SQL e executar várias ações de CRUD baseadas no resultado das SQLs.

Para se tornar um DBA Oracle é obrigatório conhecer as linguagens SQL e PL/SQL, o conhecimento em Java é raramente obrigatório, a partir da versão 9i o uso de Java ficou menos comum, pois se tornou possível executar servlets e EJBs na camada intermediária do servidor.

No Oracle o componente Intermedia e Text, são escritos em java e um DBA normalmente irá precisar ativar o Java no banco de dados, mas o DBA não vai precisar de depurar ou ajustar o código Java, desta forma, o DBA não irá precisar de conhecimentos avançados em Java.

Observação:

Muitas pessoas questionam porque o comando TRUNCATE não pertence ao grupo DML já que ele executa a mesma ação do DELETE. Então vamos a explicação do porque o TRUNCATE é um DDL de corpo e alma.

A função do comando TRUNCATE é de excluir todas as linhas de uma tabela, ele não aceita o uso da condição WHERE que limita e restringe a instrução, o comando DELETE permite o uso da instrução WHERE. Outra diferença entre o comando TRUNCATE e DELETE é que quando é usado o TRUNCATE ele também altera a estrutura da tabela, se a tabela possui uma coluna auto-incremento o cursor que aponta para esse indice é alterado e volta para o inicio, com o uso do comando DELETE mesmo excluindo todos os registros o cursor continua apontando para o último indice que estava cadastrado.

O uso do comando TRUNCATE é bem mais rápido do que o uso do comando DELETE, pois, o comando TRUNCATE não usa o espaço de TableSpace do UNDO ou Redo Log, desta forma se você usar o TRUNCATE as informações não podem mais ser recuperadas pois não existe a opção de ROLLBACK para instrução TRUNCATE, ao contrário do comando DELETE que ao ser executado copia os dados para a TableSpace do UNDO e registra as informações no Redo Log antes de serem exluídos, e se usar o comando ROLLBACK os dados podem ser recuperados.

Outra situação importante que ao usar o comando TRUNCATE nenhuma TRIGGER é executada, usando o comando DELETE todas as TRIGGER referentes ao delete são disparadas.

Se a tabela possuir alguma restrição a chave estrangeira o comando TRUNCATE ou o comando DELETE não iram funcionar, até que esta restrição seja retirada.

Resumindo:
O TRUNCATE também altera a estrutura da tabela então é um DDL, o DELETE tem acesso somente as linhas então é um DML. Se você usar o TRUNCATE os dados são perdidos definitivamente. Você não pode limitar a quantidade de linhas a serem excluídas usando o TRUNCATE, com ele é tudo ou nada. Então usem esse comando somente quando for muito essencial, se não use apenas o DELETE.

Se tiverem dúvidas realizem um INSERT nos comentários e depois dê um COMMIT que depois respondo.

Abraço e bons estudos.

Comentários

Postagens mais visitadas deste blog

Conhecendo a arquitetura do Banco de Dados Oracle

#15 Vamos focar mais no ambiente de banco de dados mais comum, que é uma instância em um computador, abrindo um banco de dados armazenado em discos locais. Sempre que for mensionado instância, esta se referindo ao banco de dados em funcionamento. Um banco Oracle é composto por duas estruturas, uma lógica e uma física. A estrutura lógica é chamada de instância e composta por estruturas de memória e processos, a sua existência é temporária na memória RAM e CPU e fica ativa enquanto o banco Oracle estiver ligado, se desligar o banco Oracle toda a informação ou vestígios de sua existência será apagado da memória, ao ligar o banco Oracle a instância é carregada novamente na memória. Os processos que compõem a instância trabalham em segundo plano e fica ativo o tempo todo enquanto a instância estiver ativa. A estrutura física é onde fica armazenado as informações, e uma vez criado, ele existe até que o DBA deliberadamente decida exclui-lo. Quando um banco Oracle é iniciado, na me...

O Cache de Buffer do Banco de dados - Estruturas de Memória no Oracle

#21 Vamos conhecer um pouco mais sobre o Cache de Buffer de Dados. O Cache de Buffer de Dados é o local de trabalho do Oracle, é nessa área que ele executa as SQLs. A função dessa área é otimizar e melhorar o desempenho das instruções DML. O maior gargalo de um banco de dados é o I/O dos arquivos em disco. Mas antes de explicar como funciona o Cache de Buffer de Banco de dados, vamos entender rápidamente o que é bloco, desta forma você não fica perdido, os arquivos de dados que contém os registros que são as linhas da tabela, indices e outros objetos de dados são formatados em blocos de tamanho fixo, o DBA pode definir um tamanho para esses blocos ou deixar de forma automática. A quantidade de linhas por bloco é indefinida, pois, as linhas possuem comprimento variável, o comprimento desta linha dependerá do número de colunas e os tipos de informações definidos para a tabela. De acordo com tamanho das linhas, pode haver várias linhas por bloco ou uma linha pode se estender por vár...

Shared Pool - Estruturas de Memória no Oracle

#23 O Shared Pool é considerada umas das estruturas de memórias mais complexas da SGA, ela é dividida em dezenas de subestruturas e todas são gerenciadas internamente pelo Oracle. Mas nesse momento vamos citar apenas os 4 principais componentes desta estrutura, as demais serão analizadas posteriormente. Quando uma aplicação executa uma DML, vários processos internos no Oracle são realizados até o retorno do resultado para o usuário. E esses 4 componentes tem participação direta na execução da DML e com isso gerando um bom desempenho do banco de dados. Os 4 principais componentes são: - O Cache de Biblioteca - O Cache de Dicionário de Dados - A Área PL/SQL - O Cache de Resultados de Funções PL/SQL e Consultas SQL Agora, vamos conhecer um pouco mais de cada um. - O Cache de Biblioteca (library cache) Todas instruções DML enviadas pela aplicação devem ser analizadas pelo Oracle. Quem realiza essa análise é o parse, o parse converte o código escrito pelos progra...