terça-feira, 6 de dezembro de 2016

DICIONÁRIO DE DADOS
DICIONÁRIO DE DADOS
Podemos dizer que dicionário de dados, é um conjuto de tabelas e views somente leitura, utilizado pelo banco de dados Oracle. Este conjunto é criado e mantido pelo Oracle e contém informações sobre o banco de dados, o dicionário de dados é estruturado em tabelas e views, da mesma forma que outros dados do banco. O dicionário de dados é uma importante ferramenta para todos os usuários, desde usuários finais até os desenvolvedores, inclusive os DBA’s. Para acessar o dicionário de dados, é utilizado as instruções de SQL, como dito acima, é somente leitura, então, só vamos conseguir usar o SELECT.  Todas as tabelas pertecem ao usuário SYS.
Que informações vamos encontrar na nas views de dicionário ?
As informações armazenadas no dicionário de dados incluem os nomes dos usuários do servidor Oracle, os privilegios concedidos aos usuários, os nomes dos objetos do banco de dados, as constraints de tabelas e as informações de auditoria. Há quatro categorias de views de dicionário de dados. Cada categoria possui um prefixo distinto que flete o uso pretendido.
Prefixo
Significado
USER_
Contém detalhes dos objetos pertencentes ao usuário.
ALL_
Contém detalhes dos objetos para os quais o usuário ganhou direitos de acesso e dos objetos pertencentes ao usuário.
DBA_
Contém detalhes dos usuários com privilégios de DBA para acessar qualquer objeto do banco de dados.
V$_
Armazena informações sobre o desempenho ou bloqueio do servidor do banco de dados; disponível para os administradores do banco.

Vejamos algumas views mais utilizadas:
Antes de começarmos a ver as tabelas do dicionário, podemos ver como elas se encontram dentro da tabela dicionário.

Select * from dictionary;

USER_TABLES: Exibe a descrição de todas as tabelas do usuário.
Select * from user_tables;

ALL_TABLES: Exibe a descrição de todas as tabelas do usuário e as que foram concedidas a ele, mesmo ele não sendo o owner.
SELECT * FROM all_tables;

USER_OBJECTS: Exibe todos os objetos pertencentes ao seu usuário.
SELECT * FROM user_objects;

ALL_OBJECTS: Exibe todos os objetos que pertencem ao usuário e aos quais tem acesso.
SELECT * FROM all_objects;

USER_TAB_COLUMNS: Você obter informações detalhadas sobre as colunas das suas tabelas. No qual, você é o dono.
SELECT * FROM user_tab_columns;

USER_CONSTRAINTS: Exibe as definições de constrainsts nas tabelas, pertencentes a seu usuário.
SELECT * FROM user_constraints;

USER_CONS_COLUMNS: Exibe as definições de constraints nas colunas das tabelas, pertencentes ao seu usuário
SELECT * FROM user_cons_columns;

USER_VIEWS: Exibe as views pertencentes ao seu usuário.
SELECT * FROM user_views;

USER_SEQUENCES: Exibe informações das sequences criadas, pelo seu usuário.
SELECT * FROM user_sequences;

USER_SYNONYMS: Exibe os synonyms pertencentes ao seu usuário.
SELECT * FROM user_synonyms;

USER_TAB_PRIVS_MADE: Exibe todas as conexões feitas aos objetos pertencentes ao usuário
SELECT * FROM user_tab_privs_made;

USER_COL_PRIVS_MADE: Exibe todas as concessões feitas às colunas de objetos pertencentes ao usuário.
SELECT * FROM user_col_privs_made;
ORACLE SQL
Sobre o SQL
O Banco de Dados Relacional Oracle faz uso de uma linguagem de pesquisa declarativa padrão denominada SQL (Structured Query Language) ou (Linguagem de Pesquisa Estruturada). O SQL tornou-se padrão para os banco de dados devido a sua simplicidade e facilidade de uso.
A linguagem SQL é dividida em subconjuntos de acordo com as operações que queremos efetuar sobre um banco de dados. Abaixo explicamos cada subconjunto desta divisão e seus respectivos comandos.




DML - Linguagem de Manipulação de Dados
DML é um subconjunto da linguagem SQL que é utilizada para realizar inclusões, consultas, alterações e exclusões de dados presentes em registros. Estas tarefas podem ser executadas em vários registros de diversas tabelas ao mesmo tempo. 

SELECT
INSERT
UPDATE
DELETE



DDL - Linguagem de Definição de Dados
DDL  permite ao utilizador definir tabelas novas e elementos associados.

CREATE TABLE
ALTER TABLE
TRUNCATE
DROP TABLE
VIEW MATERIALIZED


DCL - Linguagem de Controle de Dados
DCL  permite ao utilizador definir tabelas novas e elementos associados.


DCL - Linguagem de Controle de Dados[editar | editar código-fonte]

O terceiro grupo é o DCL (Data Control Language - Linguagem de Controle de Dados). DCL controla os aspectos de autorização de dados e licenças de usuários para controlar quem tem acesso para ver ou manipular dados dentro do banco de dados.
Duas palavras-chaves da DCL:
  • GRANT - autoriza ao usuário executar ou setar operações.
  • REVOKE - remove ou restringe a capacidade de um usuário de executar operações.

DTL - Linguagem de Transação de Dados[editar | editar código-fonte]

  • BEGIN WORK (ou START TRANSACTION, dependendo do dialeto SQL) pode ser usado para marcar o começo de uma transação de banco de dados que pode ser completada ou não.
  • COMMIT finaliza uma transação dentro de um sistema de gerenciamento de banco de dados.
  • ROLLBACK faz com que as mudanças nos dados existentes desde o último COMMIT ou ROLLBACK sejam descartadas.
COMMIT e ROLLBACK interagem com áreas de controle como transação e locação. Ambos terminam qualquer transação aberta e liberam qualquer cadeado ligado a dados. Na ausência de um BEGIN WORK ou uma declaração semelhante, a semântica de SQL é dependente da implementação.

DQL - Linguagem de Consulta de Dados[editar | editar código-fonte]

Embora tenha apenas um comando, a DQL é a parte da SQL mais utilizada. O comando SELECT permite ao usuário especificar uma consulta ("query") como uma descrição do resultado desejado. Esse comando é composto de várias cláusulas e opções, possibilitando elaborar consultas das mais simples às mais elaboradas.


Referências
[1] https://pt.wikipedia.org/wiki/SQL#DDL_-_Linguagem_de_Defini.C3.A7.C3.A3o_de_Dados


Oracle Forms

Oracle Forms
O Oracle Forms é uma ferramenta utilizada para criar telas de entradas de dados e de consulta, com uma interface gráfica do usuário com aparência do Microsoft Windows.
O Oracle Forms é uma ferramenta de construção de aplicativos com muitos recursos, produz telas de qualidade de produção utilizando os dados armazenados em um banco de dados. É possível incorporar desenhos, fotos, vídeos, documentos de processamento de texto, planilhas através do uso da OLE2. O Oracle Forms pode também criar telas vinculadas em banco de dados não-Oracle.
O Oracle Forms pode compartilhar dados com outras ferramentas do Oracle Developer (por exemplo: Reports, Grafics.

TERMINOLOGIA
OLE2  - Significa "Object Linking and Enbedding", traduzindo "Incorporação e vinculação de objetos". Permite compartilhamento de objetos entre os softwares que o aceitam, por exemplo o Microsoft Word, onde qualquer alteração no documento reflete a OLE2 que de imediato dá acesso às mudanças no Microsoft Word.
ODBC - Significa "Open Database Connectivity", traduzindo "Conectividade Aberta de Banco de Dados", permite comunicação entre a fonte de dados de um fornecedor (por exemplo: SqlServer ) e as ferramentas de outro (por exemplo: Forms)


DICAS COMPLEMENTARES DE ESTUDO
http://www.profissionaloracle.com.br/gpo/meu-blog/tags/tag/forms?tmpl=component&type=raw

segunda-feira, 5 de dezembro de 2016

Linguagens de Programação


Início na Carreira de Programação
Para quem estiver pretendendo iniciar na carreira de programação, segue abaixo algumas dicas:
❶ Tem que gostar de computadores, smartphones, internet, tecnologia.
❷ Tem que gostar de lógica, exercícios de raciocínio, quebra-cabeça, desafios.
❸ Leva esforço e tempo
❹ Inicia-se pelo curso de "Lógica de Programação" e "Algoritmos"
❺ Escolher sua primeira Linguagem: C, Java, JavaScript 
       Recomenda-se JavaScript por não precisar instalar nada no seu computador
❻ Se familiarize com o vocábulo da linguagem de programação que quer aprender
❼ Faça Exercícios e mais exercícios
❽ Para quem está iniciando, leva em média, 1 ano para sair programando em uma           determinada linguagem de programação.

Linguagens de Programação
Existe várias linguagens de programação, abaixo vou descrever as mais requisitas no mercado de forma resumida, a área de programação exige investimento de tempo, vontade de aprender e se aprimorar, é impossível aprender todas e não é indicado aprender apenas uma, mesmo porque dependendo do software que se deseja desenvolver, uma linguagem é mais indicada que a outra.
Para o iniciante antes de aprender uma determinada linguagem, deve-se fazer um curso de lógica de programação. Pesquise na internet existe vários cursos de lógica de programação gratuitos, assisti o curso do site www.brasilmaisti.com.br (Algoritmos) e achei muito bom. Neste curso eles orientam a instalar a linguagem de programação C++ no seu computador e já começa a fazer os algoritmos e alguns programinhas nesta linguagem. Se preferir vai de JavaScript conforme mencionei no tópico anterior, no Youtube existe curso de JavaScript gratuito.



Terminologia
Linguagem de Baixo Nível : Linguagem que se aproxima da linguagem de máquina (Exemplo: Assembler) 
Linguagem de Alto Nível : Linguagem de programação que se aproxima da linguagem humana. 
Compilador : Converte codificação em linguagem de programação Alto Nível (Código Fonte) em linguagem de máquina (Código Objeto). 
Interpretador : Interpreta código fonte e converte em código executável. Seu funcionamento pode variar, em alguns casos interpreta linha-por-linha e converte em código objeto à medida que vai executando o programa e, em outros casos, converte o código fonte por inteiro e depois o executa. Exemplos de Linguagens interpretadas: Perl, PHP, Python, JavaScript, Ruby



Java
Esta Linguagem é uma das mais utilizadas no mundo, foi desenvolvida pela Sun Microsystems e atualmente pertence a Oracle. É uma linguagem Orientada a Objetos.
Muito utilizada para produzir softwares para plataforma Android e desenvolvimento Web. O objetivo do Java é criar uma linguagem de programação portável que pode trabalhar em diferentes plataformas de hardware e software. O código em Java não é interpretado pelo browser, já que é uma linguagem compilada. Todo código Java é carregado para a estação e roda independentemente do browser. Chamamos de APPLET um aplicativo Java que roda numa página no browser, vale lembrar que este aplicativo pode ser executado fora do browser como um aplicativo comum.

JavaScript
Aprenda JavaScript curso gratuito no youtube, link abaixo:
Universidade XTI - Curso JavaScript

PHP
C
C++
C#  - Amarrado ao Mundo Microsoft
Python
Objetive-C Amarrado ao Mundo Apple, indicado para aplicativos IOS
Swift Amarrado ao Mundo Apple, indicado para aplicativos IOS
Ruby
Delphi

Visual Basic
Desenvolvimento de Softwares para Desktop, vem perdendo mercado para o C#, ainda tem muitos softwares escrito no Visual Basic.


PL/SQL






DIVISÃO DA LINGUAGEM
Algumas linguagens são de Front-End e outras são de Back-End. É comum para facilitar o entendimento vincular da seguinte forma:
Front-End : Como Interface de Interação com o Usuário
Back-End : Como o sistema responsável pela regra de negócios, webservices e APIs de uma aplicação

Front-End
·         XHTML
·         HTML5
·         CSS
·         CSS3
·         JAVASCRIPT
·         AJAX
·         JQUERY
·         CFML

Back-End 

·         PERL Catalyst
·         RUBY on Rails
·         .NET
·         ASP
·         C#
·         Visual Basic
·         Java
·         JSP
·         PHP
·         Python
·         Node.js


VIEW MATERIALIZED
VIEW MATERIALIZED
A View Materialized ou view materializada são conhecidas desde a versão 9i, é um objeto de banco de dados Oracle que contém dados de tabelas, são usadas para agregação de tabelas em um determinado intervalo de tempo. Antes da versão 9i era conhecida como Snapshots. 

A View Materialized é extremamente util em uma empresa que trabalha com milhões de linhas nas tabelas em um banco de dados, o acesso fica custoso e a view materialized ajuda a diminuir acesso as tabelas master de um maneira segura e íntegra. O exemplo abaixo mostra como podemos criá-la:

CREATE MATERIALIZED VIEW vm_employees
  REFRESH FAST
  START WITH SYSDATE + 1
  NEXT SYSDATE + 1/24
  WIDTH PRIMARY KEY
AS
  SELECT empno, ename, job, salary
    FROM emp;

1. CREATE MATERIALIZED VIEW vm_employees
    Este comando cria a view materializada com o nome vm_employees

2. REFRESH FAST
    REFRESH indica o tipo de atualização que será efetuada com os dados contidos
    na view (visão). Existe três estados:
    a) FAST
        Atualiza somente as linhas da tabela original que sofreram atualizações.
    b) COMPLETE
         Recria toda a estrutura da view materializada mesmo que não seja necessário.
    c) FORCE
        Se não for especifico o método de atualização, o padrão é FORCE, que tentará
        fazer uma atualização FAST se não for possível irá fazer a COMPLETE.

3. START WITH SYSDATE + 1
    Indica que quando o banco irá fazer a primeira replicação.

4. NEXT SYSDATE + 1/24
    Determina o intervalo entre a próxima replicação.

5. WIDTH PRIMARY KEY
    É utilizado para criar a Chave-Primária, que é baseada na PK da tabela master.
ALTER TABLE
ALTER TABLE
Este comando é utilizado para alterar ou modificar a estrutura da tabela, por exemplo: adicionar uma coluna, remover uma coluna da tabela, alterar o tamanho de uma coluna, alterar o tipo de dado de uma coluna, alterar o nome de uma coluna.


Adicionando uma nova coluna a Tabela

CREATE TABLE ALUNO
  ADD CLASSE NUMBER(6); 


Modificando a definição de uma coluna na Tabela

CREATE TABLE ALUNO
  MODIFY CLASSE NUMBER(8); 


Apagando uma coluna da Tabela

CREATE TABLE ALUNO
  DROP COLUMN CLASSE ;


Renomenado uma coluna da Tabela

CREATE TABLE ALUNO

  RENAME COLUMN CLASSE TO CLASSES ;