Mostrando postagens com marcador Oracle. Mostrar todas as postagens
Mostrando postagens com marcador Oracle. Mostrar todas as postagens

11 de fev. de 2021

Instalando Oracle Linux na VM

    Após ter a VM criada e configurada o passo seguinte é realizar a instalação do sistema operacional Oracle Linux.

    A versão atual do Oracle Linux é a 8.3. O download do SO pode ser feito gratuitamente através do site da Oracle, disponível neste link. Também é possível baixar imagens prontas para VM já com o SO instalado através deste link.

    Após realizar o download da imagem do SO Oracle Linux, é necessário colocar essa .ISO para rodar no drive virtual da VM. Para isso basta clicar no ícone 'Configurações' da VM, ir na opção 'Armazenamento', selecionar a opção 'Controladora IDE' e no ícone de um CD, clicar para localizar o arquivo .ISO.


O passo seguinte a inclusão da .ISO no drive é colocar a VM para rodar, selecionando a opção 'Iniciar'.


    Em algumas situações, pode aparecer uma janela solicitando para confirmar o caminho da .ISO que será utilizada no boot da VM.

    Assim que a VM fizer o boot e carregar as informações da .ISO, teremos a opção de dar início a instalação.

    Após selecionar a opção de instalação, devemos aguardar pela mesma.


    Em seguida, teremos a interface de instalação pronta para o início da configuração do Oracle Linux.


    O passo seguinte a seleção do idioma é a interface para as demais configurações. Nesse passo podemos definir a senha do usuário root.

    Seguimos com a seleção do disco onde a instalação será realizada e com a ativação da placa de rede da VM.



    Na área de seleção de aplicações, podemos definir a maneira que o SO irá se portar na VM. A escolha padrão irá optar por 'Server with GUI' que é uma instalação de servidor, porém com a possibilidade de acesso visual e não apenas modo texto, em muitas empresas, a opção utilizada é 'Server' e se utiliza ferramenta externa para emular o modo visual na instalação do Oracle Database.


    Com as devidas configurações selecionadas, basta dar início ao processo de instalação e aguardar.


E assim que a instalação for concluída, será necessário reiniciar a VM.



Após reiniciar a VM, temos a tela onde devemos aceitar os termos da licença e criar o usuário.


    E por fim, finalizamos a instalação.



    Assim que finalizar a instalação, a VM irá reiniciar, possibilitando a login com o usuário criado no último passo, e estando a VM pronta para o uso.


    Após esse ponto, devemos partir para a instalação do Oracle Database.

4 de nov. de 2020

SQL - Primeiras consultas

   O comando SQL, necessariamente deve possuir ao menos 2 partes, a parte da consulta e a parte de onde consultar. Sendo assim, temos a estrutura básica de uma consulta SQL.

SELECT 
    *
 FROM 
    tabela


    Sempre iremos ter a cláusula SELECT que indica selecionar, buscar, o asterisco (*) indica tudo, e pode ser substituído pelo nome das colunas da tabela, funções, literais ou mesmo a combinação de todos.
    A segunda cláusula é o FROM que indica onde iremos buscar as informações solicitadas na cláusula SELECT, após a palavra chave FROM deve ser informada uma ou mais tabelas, podendo ser também views ou um sub-select.
    Tanto na cláusula SELECT quanto na cláusula FROM devemos usar a vírgula (,) para separar mais de um parâmetro.
    Também temos a cláusula WHERE onde são feitas as filtragens do resultado, a coluna utilizada na filtragem pode ou não estar entre as colunas exibidas no resultado da consulta.
SELECT 
    coluna1, coluna2, coluna3
FROM 
    tabela
WHERE
    coluna1 = 'valor'


    As palavras reservadas utilizadas na escrita de um comando SQL não são case-sensitive, ou seja, podem ser escritas em maiúsculas, minúsculas ou uma combinação de ambos. Embora a indentação, torne o código mais legível, os comandos SQL podem ser escritos em uma ou várias linhas, desde que não haja quebra no meio de um comando, as palavras chave também não podem ser abreviadas.
    Para testar alguns comandos no Banco de Dados Oracle, é possível utilizar a tabela dual, essa tabela é criada juntamente com o banco e por padrão possui uma coluna chamada dummy do tipo VARCHAR(1).

A tabela dual pode ser usada como coringa, para testar expressões e funções, conforme os exemplos abaixo, buscando a data atual, retornando operações matemáticas





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.



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/