30 de out. de 2020

SQL - Introdução

    Os comando SQL se dividem em tipos, são eles DML, DDL, DCL e TCL.

-> DML: Data Manipulation Language

        SELECT, INSERT, UPDATE, DELETE, MERGE

-> DDL: Data Definition Language

        CREATE, ALTER, DROP, TRUNCATE, RENAME, COMMENT

-> DCL: Data Control Language

        GRANT, REVOKE

-> TCL: Transaction Control Language

        COMMIT, ROLLBACK, SAVEPOINT

DML

    São os comandos utilizados para manipulação dos dados, permitindo inserir, atualizar, remover ou simplesmente selecionar dados das tabelas do banco de dados. Mais exemplos:
CALL
EXPLAIN PLAN
LOCK TABLE


DDL

    São os comando usados para a criação da estrutura do banco de dados, para criar tabelas, usuários, views, alterar todos esses objetos. Os comandos DCL também podem ser considerados DDL, visto que garantem as definições de acesso aos objetos do banco de dados. Mais exemplos:
ANALYZE
ASSOCIATE STATISTICS
AUDIT
DISASSOCIATE STATISTICS
FLASHBACK
NOAUDIT
PURGE


TCL

    São os comando utilizados na garantia das alterações dos comandos DML, podendo efetivar uma alteração ou descartá-la, ou mesmo em procedures e triggers servindo como controle de código. Mais exemplos:
SET TRANSACTION
SET CONSTRAINT

    Também existem os comandos que se encaixam como Controle de Sessão, que são SET ROLE e ALTER SESSION, e os comandos de Controle de Sistema como o ALTER SYSTEM.


Fontes:

19 de out. de 2020

Ambientes para Testes

    Para que possa fixar o aprendizado é necessário praticar, para isso é necessário montar um ambiente para testes.

    A opção mais fácil é utilizar o ambiente online da própria Oracle através do link Oracle Live, para utilizar esse ambiente é necessário previamente possuir uma conta no site da Oracle. Após efetuar o login, basta utilizar a aba SQL Worksheet.



    Lembrando que ao utilizar a versão Oracle Live, estamos utilizando o banco de dados Oracle 19c, caso o intuito da utilização seja puramente aprender SQL, com certeza essa plataforma atenderá, porem, caso o objetivo seja uma prova de certificação, o melhor é criar um ambiente com a versão citada na prova.

Oracle XE

    Oracle eXpress Edition é uma maneira fácil de ter um banco de dados disponível um sua máquina, o mesmo pode ser encontrado através deste link, e está na versão 18c, caso seja necessário uma versão mais antiga, pode ser encontrado neste link.

Ambiente Virtual

    Embora este seja o modo mais trabalhoso, é a melhor alternativa, pois simula um banco de dados de fato. Para ter um ambiente virtual é necessário utilizar o Oracle VM VirtualBox e criar uma máquina virtual dentro dele, após a criação da máquina virtual, é necessário instalar o sistema operacional na máquina virtual que foi criada, nesse caso o mais indicado é o Oracle Linux e após a instalação do sistema operacional finalmente efetuar a instalação do Oracle Database.

Utilizando o ambiente

Tanto no uso de uma instalação do Oracle XE ou de um ambiente virtual será necessário uma ferramenta para conectar ao banco de dados e de fato poder executar os comandos SQL, juntamente com a instalação do banco de dados, é instalado o SQLplus que permite fazer conexão no banco de dados e execução de comandos SQL, porem esta ferramenta é apenas modo texto, sendo bastante útil quando se está diretamente no servidor. A melhor opção acaba sendo a ferramenta gratuita Oracle SQL Developer que é visual e facilita muito o uso no dia a dia, tem funções para fazer a indentação do código, estrutura colorida para melhor leitura dos códigos, possibilidade de salvar conexões.


    Caso a necessidade seja de projetar um banco de dados, pode ser utilizado o Oracle SQL Developer Data Modeler.



14 de out. de 2020

Certificações

O que é uma certificação?

    Certificação, como o próprio nome sugere, é um certificado emitido por uma organização reconhecida que atesta que o portador passou por uma prova e que atingiu um percentual mínimo de acertos, certificações podem ser emitidas pelo próprio fornecedor da tecnologia como Oracle, IBM, Microsoft, SAP ou instituições responsáveis por gerir tecnologias e metodologias como a Exin, por exemplo.

Por que tirar uma certificação?

    Ser um profissional certificado, atesta que o professional conhece a tecnologia, dedica tempo para estudo e tem comprometimento com o conhecimento e o crescimento profissional, um profissional certificado tem o reconhecimento da comunidade em que atua, juntamente com possibilidades de aumento salarial, aumento de responsabilidades na função que desempenha, possibilidade de um novo emprego e além de credibilidade junto ao mercado.

Por que uma certificação Oracle Database?

    Oracle é o banco de dados mais usado comercialmente, de acordo com a Oracle, cerca de 97% das empresas que integram o ranking da Fortune 500 utilizam soluções da Oracle para banco de dados, o que indica que existe muita demanda para profissionais que conhecem o mesmo, podendo ser como Administrador de Banco de Dados, o DBA, ou mesmo como desenvolvedor SQL ou PL/SQL.

Quais as certificações Oracle podem ser feitas?

Atualmente, a Oracle possui uma gama de certificações:

  • Oracle Certified Junior Associate OJA
    • Certificação para estudantes que estão entrando no mundo Oracle.
  • Oracle Certified Associate OCA
    • Primeiro passo nas certificações para profissionais Oracle, servem como introdução de conhecimento nas tecnologias.
  • Oracle Certified Professional OCP
    • Segundo nível das certificações, necessita previamente certificação OCA e valida conhecimentos mais avançados e específicos.
  • Oracle Certified Master OCM
    • Certificação após OCP, exige conhecimentos mais avançados que a OCP e prova pratica.
  • Oracle Certified Specialist OCS
    • Direcionada para áreas específicas, geralmente atribuídas para profissionais de parceiros Oracle que atuam com implementações.
  • Oracle Certified Expert OCE
    • Certificação independente do caminho OCA/OCP/OCM, explora nichos das tecnologias.

As provas para banco de dados Oracle podem ser divididas nos seguintes tópicos:

  • Administration
  • High Availability
  • New Features
  • Development
  • Security
A gama completa das certificações pode ser encontrada aqui.

Como é a prova?

    Cada prova tem sua particularidade, contudo basicamente as provas tem número de questões, percentual de acerto e tempo pré-determinados. Por exemplo, a prova 1Z0-071, o candidato tem 78 questões, que devem ser respondidas em 120 minutos e para a aprovação é necessário no mínimo 63% de acertos.

    Atualmente, algumas provas podem ser executadas da casa do candidato, sendo previamente necessária instalação dos devidos softwares de avaliação, nem todas as provas podem ser executadas da casa do candidato, porem todas podem ser executadas em um centro de exames credenciado. Esses locais de aplicação de prova, o candidato tem um computador com as aplicações de avaliação instaladas, durante a prova o candidato é monitorado por câmeras, não pode fazer uso de dispositivos externos como relógios ou telefones e tem um página e uma caneta fornecidos pelo centro de avaliação para anotações durante a prova, o qual não pode ser levado após o término da prova.

    As questões podem conter teoria a respeito do tema, ou mesmo trechos de códigos para avaliação e exibem várias opções de resposta, havendo ao menos 1 opção correta e podendo ter todas as opções corretas. Algumas provas têm suporte a vários idiomas como espanhol ou japonês, mas o idioma inglês é o disponível para todas as provas.

Que conteúdo estudar para uma prova de certificação?

    Na página de cada prova existe uma sessão com a informação de conteúdo cobrado na prova, como exemplo a prova 1Z0-071 tem os conteúdos abaixo solicitados:



Como se preparar para a prova?

  Embora todo conteúdo cobrado em prova possa ser encontrado nas documentações oficiais da Oracle. A Oracle também comercializa treinamentos oficiais que servem como preparação para suas provas. Também é possível encontrar cursos não oficiais ministrados por professionais certificados e com experiência profissional na área, que geralmente custam bem menos que os treinamentos oficiais. O treinamento oficial pode ser encontrado aqui e atualmente custa R$ 4185,00.

    Para saber como funciona a prova em si, é possível fazer testes simulados através do software da CyberVista, antigo Kaplan, homologado pela Oracle, o valor é US$129,00, porem atualmente o mesmo sai por US$64,50 usando o cupom CyberSecure.

Também é indicado que não apenas estude o conteúdo teórico, mas tenha uma ambiente para testar as funcionalidades e o conteúdo estudado.


Fontes:

https://www.oracle.com/br/corporate/features/oracle-certification.html

https://education.oracle.com/oracle-certification-paths-all?intcmp=WWOUOCOMCERTFEATURESTORY

7 de out. de 2020

O que é SQL?

Após a publicação do estudo de Edgar F. Codd sobre os bancos de dados relacionais no início da década de 70 e a aceitação desse como modelo para os RDBMS (Relational DataBase Management Systems), houve a necessidade de uma linguagem comum para os bancos de dados, foi ai que entrou o Structured English Query Language ou SEQUEL, que podemos chamar em português de Linguagem de Consulta Estruturada em Inglês. Por questões de registro de marca, mais tarde o SEQUEL passou a ser escrito como SQL.

Em 1986 o SQL passou a ter o regulamentação pelo padrão ANSI e em 1987 pelo padrão ISO.


Fontes:

https://docs.oracle.com/database/121/SQLRF/intro001.htm#SQLRF50932

6 de out. de 2020

Normalização

    Um bom banco de dados, passa antes de tudo por um bom desenvolvimento, para isso deve ser basear nas regras de normalização. A normalização assim como o modelo de banco de dados relacionais, teve seu conceito introduzido por E.F. Codd durante os anos 70. A normalização também é conhecida como Normal Forms (Formas Normais), visa manter um banco de dados otimizado para reduzir redundâncias e dependências.

    Quando se normaliza um banco de dados, tem como objetivo flexibilizar a estrutura do banco de dados, assegura que os atributos estão nas tabelas corretas, reduzir a redundância dos dados, aumentar a efetividade dos programadores, diminuir custos de manutenção das aplicações e maximizar a efetividade da estrutura dos dados.

Primeira forma normal (First Normal Form 1NF)

Basicamente, uma tabela na 1NF não consta dados repetidos, então, para atender a primeira forma normal devemos considerar que em uma tabela cada coluna seja única.

Exemplo:

Na imagem acima vemos que a tabela 'Registro' possui 3 colunas para o mesmo tipo de dados, o que gera repetição.

Para aplicar a 1NF, é criada uma nova tabela 'Telefone', com as informações referente aos números de telefone e tipo do número, cada registro possui um ID único, que é disponibilizado na tabela 'Registro' por meio de chave estrangeira Foreigner Key.

Segunda forma normal (Second Normal Form 2NF)

Como premissa para a 2NF, a tabela já deve estar normalizada na 1NF, sabendo disso, o conceito da 2NF é que nenhuma outra coluna da tabela deve ser dependente de parte do valor da chave primária. Para exemplificar, uma tabela que possui uma chave primária composta, ou seja, 2 colunas ou mais formam a chave primária, uma nova coluna não pode depender do valor que consta apenas em uma coluna que forma a chave primária, isso busca reduzir a redundância de dados.

Exemplo.

Um país pode ter vários estados, e um estado várias cidades, na tabela acima ao mudar o nome de um estado, vai ser alterado apenas ao registro que está sendo manipulado, e caso nos dados da tabela tenhamos mais de uma cidade do mesmo estado, estamos replicando o nome do estado.



Após aplicar o 2NF, temos uma tabela para o país, uma para o estado onde o id do país vem como chave estrangeira da tabela país, e uma para cidade ontem temos as chaves estrangeiras do estado e do país, dessa forma ao alterar o nome do estado ou sigla do país, por exemplo, a informação esta integra, pois todos os registros da tabela cidade apontam para o identificador das outras tabelas.

Terceira forma normal (Third Normal Form 3NF)

Como premissa para a 3NF, a tabela já deve atender as normas anteriores. A 3NF consiste em que uma tabela, não possua uma coluna que dependa de outra coluna que não seja uma coluna chave, para normalizá-la deve-se remover essa coluna para outra tabela.

Exemplo:

Uma pista de corrida, tem uma corrida em uma determinada data, nessa corrida temos um vencedor, e o vencedor tem uma data de nascimento. Nesse caso a data de nascimento do vencedor é dependente da coluna vencedor, sendo aplicada a 3NF, teremos uma nova tabela com as informações do competidor, ligada a tabela de ganhadores.



Existem mais normas formais, contundo, um banco de dados que atende a estas 3 normas, já se torna otimizado de modo que muitos problemas possam ser evitados.


Fontes:

https://docs.oracle.com/en/database/oracle/oracle-database/19/dwhsg/data-warehouse-logical-design.html#GUID-A5E3E278-E611-4AB1-BE17-C3AF0DF87A80

https://www.ibm.com/support/knowledgecenter/SSGU8G_12.1.0/com.ibm.ddi.doc/ids_ddi_066.htm

https://www.w3schools.in/dbms/database-normalization/