<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Kauan Davi Fraga Gomes</title>
    <description>The latest articles on DEV Community by Kauan Davi Fraga Gomes (@kauan_gomes).</description>
    <link>https://dev.to/kauan_gomes</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F1228576%2Fee1bc652-fd74-43e6-b8d6-e8f63dd3d7d4.png</url>
      <title>DEV Community: Kauan Davi Fraga Gomes</title>
      <link>https://dev.to/kauan_gomes</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/kauan_gomes"/>
    <language>en</language>
    <item>
      <title>Views, Sequences, e Synonyms in Oracle.</title>
      <dc:creator>Kauan Davi Fraga Gomes</dc:creator>
      <pubDate>Fri, 08 Dec 2023 01:21:44 +0000</pubDate>
      <link>https://dev.to/kauan_gomes/views-sequences-e-synonyms-in-oracle-lk8</link>
      <guid>https://dev.to/kauan_gomes/views-sequences-e-synonyms-in-oracle-lk8</guid>
      <description>&lt;p&gt;Hello Guys, nesse artigo desenvolvimento por 3 estudantes, iremos falar sobre alguns objetos em Oracle, como por exemplo Views, Sequences e Synonyms. Espero que vocês gostem do conteúdo :)&lt;/p&gt;




&lt;h2&gt;
  
  
  &amp;gt; &lt;u&gt;&lt;em&gt;&lt;strong&gt;Views no Oracle&lt;/strong&gt;&lt;/em&gt;&lt;/u&gt;
&lt;/h2&gt;

&lt;p&gt;Views em bancos de dados representam uma maneira de visualizar dados de tabelas. Elas não armazenam dados, mas oferecem uma forma específica de apresentar informações. &lt;/p&gt;

&lt;p&gt;A principal razão para usar views é a segurança, permitindo que os usuários vejam apenas as informações necessárias e criem visualizações personalizadas dos dados. &lt;/p&gt;

&lt;p&gt;As Views têm características como a abstração de complexidade, simplificando consultas, facilitando a compreensão das tabelas. Além disso, melhoram a manutenção, evitando modificações extensas nas consultas, e podem otimizar o desempenho do sistema, tornando-o mais eficiente.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Exemplo de criação de uma View:&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;CREATE VIEW nome_da_view AS
SELECT coluna1, coluna2, ...
FROM tabela1
WHERE condição;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;









&lt;h2&gt;
  
  
  &amp;gt; &lt;u&gt;&lt;em&gt;&lt;strong&gt;Sequences no Oracle&lt;/strong&gt;&lt;/em&gt;&lt;/u&gt;
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;&lt;em&gt;O oque é?&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Você pode usar a CREATE SEQUENCE instrução para criar uma sequência Sequence e um objeto de banco de dados você pode usar para gerar automaticamente valores para uma chave primaria, quando um Numero é gerado a sequece incrementada, independentemente da confirmação ou reversão da transação. &lt;/p&gt;

&lt;p&gt;Se Dois usuários estiverem incrementado ao mesmo tempo poderá ficar  uma lacuna, pois um usuário não pode gerar um numero já gerado por outro usuário, Depois que um valor de sequência é gerado por um usuário, esse usuário pode continuar a acessar esse valor, independentemente de a sequência ser incrementada por outro usuário.&lt;/p&gt;

&lt;p&gt;Os números de sequência são gerados independentemente das tabelas, portanto, a mesma sequência pode ser usada para uma ou várias tabelas. &lt;br&gt;
É possível que números de sequência individuais pareçam ter sido ignorados, porque foram gerados e usados em uma transação que acabou sendo revertida Além disso, um único usuário pode não perceber que outros usuários estão desenhando na mesma sequência.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Assim que criar Uma esquece você pode acessar seus valores em instruções sql com a CURRVALpseudocoluna, que retorna o valor atual da sequecia  ou a NEXTVALpseudocoluna que incrementa a sequecia e retorna outro valor.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;em&gt;Pré-requisitos&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Para criar uma sequence no seu próprio esquema você deve ter  CREATE SEQUENCEprivilégio de sistema.&lt;br&gt;
Para cria uma sequence no esquema de outros usuários você deve ter CREATE ANY SEQUENCEprivilégio de sistema.&lt;/p&gt;



&lt;p&gt;&lt;strong&gt;Exemplos de Sequence:&lt;/strong&gt;&lt;br&gt;
SEQUECIA QUE COMEÇA DE 1 EM 1&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;CREATE SQUENCE Test.CountBy1
    START WITH 1
    INCREMENT BY 1;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Sequência chamada "DecSeq" que começa em 200, é incrementada por 30, possui um valor mínimo de 100, um valor máximo de 500, cicla quando atinge o valor máximo, e tem um cache de 3 valores.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;CREATE SEQUENCE Test.DecSeq
START WITH 200
INCREMENT BY 30
MINVALUE 50
MAXVALUE 500
CYCLE
CACHE 3;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;









&lt;h2&gt;
  
  
  &amp;gt; &lt;u&gt;&lt;strong&gt;&lt;em&gt;Synonyms no Oracle&lt;/em&gt;&lt;/strong&gt;&lt;/u&gt;
&lt;/h2&gt;

&lt;p&gt;Em princípio, Synonyms (ou Sinônimos) são aplicados exclusivamente em DDL (Linguagem de Definição de Dados) e DML (Linguagem de Manipulação de Dados).&lt;/p&gt;

&lt;p&gt;&lt;em&gt;&lt;strong&gt;O que são?&lt;/strong&gt;&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Synonyms são nomes alternativos para objetos como tabelas, views, sequências, stored procedures e outros elementos do banco de dados. Eles proporcionam independência de dados e transparência de localização, atuando como apelidos para objetos já existentes. O propósito dos synonyms é oferecer uma forma simplificada de referenciar um objeto no banco de dados, tornando o acesso aos objetos mais fácil, sem a necessidade de especificar o proprietário do objeto ou o nome completo.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;&lt;strong&gt;Por que devo usar Sinônimos ?&lt;/strong&gt;&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;A principal vantagem de usar synonyms no banco de dados é que os usuários não precisam digitar o nome completo da tabela junto com o esquema ao utiliza-la em uma consulta. Isso simplifica significativamente o processo de acesso aos objetos no banco de dados e pode tornar o código mais legível e manutenível.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Existem Pré-requisitos para se usar um Synonyms, antes você deve conceder o privilegio ao usuario de poder criar este Objeto no Banco de Dados, como nos exemplos abaixo.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Para conceder a um usuario o privilegio de criar Synonyms no Oracle, você pode usar a declaração "GRANT". O privilegio específico que você deve conceder é o "CREATE SYNONYM", como no exemplo abaixo:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;GRANT CREATE SYNONYM TO nome_do_usuario;

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Este comando concede ao usuario a capacidade de criar Synonyms no próprio esquema. Se você quiser permitir que o usuário crie Synonyms em outros esquemas, você precisará conceder o privilégio "CREATE ANY SYNONYM", como no exemplo abaixo:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;GRANT CREATE ANY SYNONYM TO nome_do_usuario;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;blockquote&gt;
&lt;p&gt;Lembrando que o CREATE ANY SYNONYM da o privilegio ao usuario de criar Synonyms em qualquer esquema no banco de dados.&lt;/p&gt;
&lt;/blockquote&gt;




&lt;p&gt;&lt;strong&gt;Exemplos de como se utilizar um Sinonimo:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt; Criando um "Synonyms" para uma Tabela:
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;//Criando uma tabela de exemplo
CREATE TABLE exemplo_tabela (
  id NUMBER,
  nome VARCHAR2(50)
);

//Criando um sinonimo para a tabela
CREATE SYNONYM sinonimo_exemplo_tabela FOR exemplo_tabela;

//Inserindo dados usando o sinonimo
INSERT INTO sinonimo_exemplo_tabela VALUES (1, 'Exemplo');

//Selecionando dados usando o sinonimo
SELECT * FROM sinonimo_exemplo_tabela;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt; Criando um "Synonyms" para uma View:
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;//Criando uma view de exemplo
CREATE VIEW exemplo_view AS
SELECT id, nome FROM exemplo_tabela WHERE id &amp;gt; 0;

//Criando um sinonimo para a view
CREATE SYNONYM sinonimo_view FOR exemplo_view;

//Selecionando dados usando o sinonimo
SELECT * FROM sinonimo_view;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;Criando um "Synonyms" para uma Sêquencia:
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;//Criando uma sequência de exemplo
CREATE SEQUENCE exemplo_sequencia START WITH 1 INCREMENT BY 1;

//Criando um sinonimo para a sequência
CREATE SYNONYM sinonimo_sequencia FOR exemplo_sequencia;

//Usando o sinonimo para obter o próximo valor da sequência
SELECT sinonimo_sequencia.NEXTVAL FROM DUAL;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;









&lt;p&gt;Created By:&lt;br&gt;
&lt;em&gt;Bruno Sampaio dos Anjos&lt;br&gt;
Kauan Davi Fraga Gomes&lt;br&gt;
Vinicius Gouvêa Machado&lt;/em&gt;&lt;/p&gt;

</description>
      <category>programming</category>
      <category>learning</category>
      <category>database</category>
      <category>braziliandevs</category>
    </item>
  </channel>
</rss>
