<?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>Forem: Isaac Maciel</title>
    <description>The latest articles on Forem by Isaac Maciel (@isaacmaciel).</description>
    <link>https://forem.com/isaacmaciel</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%2F3129383%2F5dc7debe-4e8b-4408-b59a-c44f47058066.jpg</url>
      <title>Forem: Isaac Maciel</title>
      <link>https://forem.com/isaacmaciel</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://forem.com/feed/isaacmaciel"/>
    <language>en</language>
    <item>
      <title>Importar CSV/Excel e limpar dados com Pandas</title>
      <dc:creator>Isaac Maciel</dc:creator>
      <pubDate>Wed, 03 Dec 2025 20:06:56 +0000</pubDate>
      <link>https://forem.com/isaacmaciel/importar-csvexcel-e-limpar-dados-com-pandas-20c</link>
      <guid>https://forem.com/isaacmaciel/importar-csvexcel-e-limpar-dados-com-pandas-20c</guid>
      <description>&lt;h2&gt;
  
  
  Como é feito a limpeza de dados, usando a poderosa biblioteca pandas?
&lt;/h2&gt;

&lt;blockquote&gt;
&lt;p&gt;A limpeza de dados (data cleaning) é uma das etapas mais importantes na análise de dados, e o Pandas, biblioteca poderosa do Python, oferece diversas ferramentas para isso.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Existem N fontes possíveis de dados, como &lt;strong&gt;Excel, CSV, SQL, JSON&lt;/strong&gt;, entre outras.&lt;/p&gt;

&lt;p&gt;Para facilitar o aprendizado, hoje vamos trabalhar com arquivos Excel, que é mais simples e básico.&lt;/p&gt;




&lt;h2&gt;
  
  
  Importe o pandas:
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;import pandas as pd
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Importe a planilha:
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;df = df.read_excel("nome_planilha.xlsx") // muito comum esquecermos da extensão.
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Remova as linhas vazias:
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;df = df.dropna(how="all")
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Remova as linhas duplicadas:
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;df = df.drop_duplicates()
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Remova as linhas nulas:
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;df = df.dropna()
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Veja sempre os nomes das colunas:
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;print(df.columns.tolist())
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Renomeie as colunas para deixar mais compreensivéis
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;df = df.rename(columns={
    "Valor Total": "valor_total",
    "Data da Venda": "data_venda"
})
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Veja dados de tal coluna:
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;df["nome_da_coluna"]
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Dados de mais de uma coluna:
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;df[["nome_da_coluna", "coluna_tal"]]
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Ordene uma única coluna:
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;df = df.sort_values(by="nome_da_coluna", ascending=False)

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

&lt;/div&gt;



&lt;h2&gt;
  
  
  Ordene mais de uma coluna:
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;df = df.sort_values(by=["Data", "Valor"], ascending=[True, False])
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;p&gt;Conjuntos de dados incompletos são extremamente comuns, seja ela uma planilha, banco de dados, etc, sempre vai haver, nomes incompletos, duplicidades, erros de digitações, e por isso temos ao nosso favor essa limpeza de dados, geramos qualidade, confiança e organização...&lt;/p&gt;

&lt;h2&gt;
  
  
  Mas... o que vem depois do tratamento/limpeza de dados?
&lt;/h2&gt;

&lt;p&gt;Vem a exploração, transformação, análise, visualização de dados, relatório de métricas, e por último, a tomada de decisão.&lt;/p&gt;

&lt;p&gt;Documentação do pandas: &lt;a href="https://pandas.pydata.org/docs/" rel="noopener noreferrer"&gt;https://pandas.pydata.org/docs/&lt;/a&gt;&lt;/p&gt;

</description>
      <category>python</category>
      <category>datascience</category>
      <category>tutorial</category>
      <category>beginners</category>
    </item>
    <item>
      <title>Entendendo APIs e sua estrutura.</title>
      <dc:creator>Isaac Maciel</dc:creator>
      <pubDate>Wed, 03 Dec 2025 00:55:05 +0000</pubDate>
      <link>https://forem.com/isaacmaciel/entendendo-apis-e-sua-estrutura-1hp4</link>
      <guid>https://forem.com/isaacmaciel/entendendo-apis-e-sua-estrutura-1hp4</guid>
      <description>&lt;h2&gt;
  
  
  O que é uma API?
&lt;/h2&gt;

&lt;blockquote&gt;
&lt;p&gt;API significa Application Programming Interface (em português: Interface de Programação de Aplicações).&lt;/p&gt;

&lt;p&gt;Basicamente: API é um jeito de um sistema conversar com outro, trocando informações de forma organizada e seguindo regras pré-definidas.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Ou seja, se um sistema quer pegar dados de outro, mandar informações, criar algo, atualizar algo… a API é quem faz essa ponte.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F6ih8c710ddj6u4qfmneh.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F6ih8c710ddj6u4qfmneh.png" alt=" " width="687" height="270"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Toda API trabalha via Web
&lt;/h2&gt;

&lt;p&gt;Quando falamos de APIs como REST, elas se comunicam usando HTTP/HTTPS, o mesmo protocolo que tem no navegador.&lt;/p&gt;

&lt;p&gt;Tudo é feito através de URLs chamadas endpoints.&lt;/p&gt;

&lt;p&gt;Endpoint = endereço onde o serviço da API está disponível.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Frwyx822jv3o9fdtd7xmb.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Frwyx822jv3o9fdtd7xmb.png" alt=" " width="424" height="147"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Toda Requisição Gera uma Resposta
&lt;/h2&gt;

&lt;p&gt;&lt;code&gt;: pediu → recebe algo de volta.&lt;br&gt;
&lt;/code&gt;&lt;br&gt;
A API responde com: dados, confirmação,ou um erro dizendo o que deu errado.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F0zcm9tesqfj8vzb02oh4.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F0zcm9tesqfj8vzb02oh4.png" alt=" " width="665" height="330"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;E sempre vem acompanhado de um status code.&lt;br&gt;
Os principais:&lt;/p&gt;

&lt;p&gt;200 – OK → Deu bom.&lt;br&gt;
201 – Created → Recurso criado com sucesso.&lt;br&gt;
204 – No Content → Funcionou, mas não tem nada pra retornar.&lt;br&gt;
400 – Bad Request → Você mandou algo errado.&lt;br&gt;
404 – Not Found → O que pediu não existe.&lt;br&gt;
500 – Internal Server Error → Erro no servidor (algo interno quebrou).&lt;/p&gt;

&lt;h2&gt;
  
  
  Os métodos HTTP (os “verbos” da API)
&lt;/h2&gt;

&lt;p&gt;Quando você acessa um endpoint, você sempre usa um método.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;GET – Buscar dados&lt;/li&gt;
&lt;li&gt;POST – Enviar dados (criação de recurso)&lt;/li&gt;
&lt;li&gt;PUT – Atualizar um recurso existente&lt;/li&gt;
&lt;li&gt;PATCH – Atualizar parte de um recurso&lt;/li&gt;
&lt;li&gt;DELETE – Deletar um recurso&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  Outros detalhes Importantes (que vale muito saber)
&lt;/h2&gt;

&lt;p&gt;Os formato de Dados, hoje em dia, a maioria das APIs usa JSON.&lt;br&gt;
Exemplo:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;code&gt;{&lt;br&gt;
  "id": 1,&lt;br&gt;
  "nome": "Isaac",&lt;br&gt;
  "email": "isaac@example.com"&lt;br&gt;
}&lt;/code&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;JSON é leve, fácil de ler e funciona bem com praticamente todas as linguagens.&lt;/p&gt;

&lt;h2&gt;
  
  
  Headers
&lt;/h2&gt;

&lt;p&gt;São informações adicionais que você envia na requisição.&lt;br&gt;
Exemplos comuns:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Tipo do conteúdo (JSON)&lt;/li&gt;
&lt;li&gt;Token de autenticação&lt;/li&gt;
&lt;li&gt;Idioma&lt;/li&gt;
&lt;li&gt;Permissões&lt;/li&gt;
&lt;li&gt;Sem headers, várias APIs nem deixam você acessar.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fwh7jwjg9i11h6u9vpli7.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fwh7jwjg9i11h6u9vpli7.png" alt=" " width="800" height="604"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Autenticação
&lt;/h2&gt;

&lt;p&gt;Nem toda API é aberta. Muitas exigem uma maneira de provar que você tem permissão.&lt;/p&gt;

&lt;p&gt;Os mais usados:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;API Key&lt;/li&gt;
&lt;li&gt;Bearer Token&lt;/li&gt;
&lt;li&gt;JWT&lt;/li&gt;
&lt;li&gt;OAuth2&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fr7lg3rr3jpk7menwvsc3.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fr7lg3rr3jpk7menwvsc3.png" alt=" " width="365" height="312"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Versionamento
&lt;/h2&gt;

&lt;p&gt;APIs mudam com o tempo. Por isso existe versionamento:&lt;br&gt;
&lt;code&gt;/api/v1/clientes&lt;br&gt;
/api/v2/clientes&lt;/code&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Exemplo Bem Simples de API com Spring Boot
&lt;/h2&gt;

&lt;p&gt;Você pode criar pelo Spring Initializr:&lt;br&gt;
&lt;a href="https://start.spring.io/" rel="noopener noreferrer"&gt;https://start.spring.io/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Depois, uma API simples:&lt;/p&gt;

&lt;p&gt;&lt;code&gt;@RestController&lt;br&gt;
 @RequestMapping("/api")&lt;br&gt;
 public class HelloController {&lt;br&gt;
     @GetMapping("/hello")&lt;br&gt;
     public String hello() {&lt;br&gt;
        return "Olá! API funcionando :)";&lt;br&gt;
  }&lt;br&gt;
}&lt;/code&gt;&lt;/p&gt;




&lt;p&gt;Spring initializr: &lt;a href="https://start.spring.io/" rel="noopener noreferrer"&gt;https://start.spring.io/&lt;/a&gt;&lt;br&gt;
Linkedin: &lt;a href="https://www.linkedin.com/in/isaac-bessa-044a14321/" rel="noopener noreferrer"&gt;https://www.linkedin.com/in/isaac-bessa-044a14321/&lt;/a&gt;&lt;/p&gt;

</description>
      <category>backend</category>
      <category>api</category>
      <category>beginners</category>
      <category>webdev</category>
    </item>
    <item>
      <title>NPS: o indicador que revela o futuro da sua empresa</title>
      <dc:creator>Isaac Maciel</dc:creator>
      <pubDate>Tue, 09 Sep 2025 14:17:46 +0000</pubDate>
      <link>https://forem.com/isaacmaciel/nps-o-indicador-que-revela-o-futuro-da-sua-empresa-15n3</link>
      <guid>https://forem.com/isaacmaciel/nps-o-indicador-que-revela-o-futuro-da-sua-empresa-15n3</guid>
      <description>&lt;h1&gt;
  
  
  📊 Dashboard NPS – Medindo a satisfação dos clientes
&lt;/h1&gt;

&lt;p&gt;O &lt;strong&gt;NPS (Net Promoter Score)&lt;/strong&gt; é uma métrica simples e poderosa para avaliar a lealdade dos clientes e entender se eles recomendariam sua empresa.  &lt;/p&gt;

&lt;p&gt;Neste projeto, desenvolvi um &lt;strong&gt;dashboard interativo em Power BI&lt;/strong&gt; para analisar o NPS de forma clara e dinâmica, permitindo acompanhar:  &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;✅ Total de clientes, promotores, neutros e detratores
&lt;/li&gt;
&lt;li&gt;📈 Evolução mensal do NPS
&lt;/li&gt;
&lt;li&gt;🏙️ Comparação por cidade
&lt;/li&gt;
&lt;li&gt;📦 Filtros por produto, perfil de cliente e canal de compra
&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  🔍 Tecnologias utilizadas
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Power BI
&lt;/li&gt;
&lt;li&gt;Banco de dados / Planilhas
&lt;/li&gt;
&lt;li&gt;Metodologia NPS
&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  📊 Resultado
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ftujbb6dxh0yd3dqmfldt.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ftujbb6dxh0yd3dqmfldt.png" alt=" " width="800" height="468"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  🔗 Links
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Repositório no gitHub: &lt;a href="https://github.com/isaacmacb/nps_bi/tree/main" rel="noopener noreferrer"&gt;isaacmacb/nps_bi&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;LinkedIn: &lt;a href="https://www.linkedin.com/in/isaac-bessa-044a14321/" rel="noopener noreferrer"&gt;Isaac Maciel&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;




&lt;p&gt;✍️ Autor: &lt;strong&gt;Isaac Maciel&lt;/strong&gt;&lt;/p&gt;

</description>
    </item>
    <item>
      <title>Entendendo SQL: Comandos Principais e Diferença com NoSQL</title>
      <dc:creator>Isaac Maciel</dc:creator>
      <pubDate>Fri, 16 May 2025 03:52:40 +0000</pubDate>
      <link>https://forem.com/isaacmaciel/entendendo-sql-comandos-principais-e-diferenca-com-nosql-3n0o</link>
      <guid>https://forem.com/isaacmaciel/entendendo-sql-comandos-principais-e-diferenca-com-nosql-3n0o</guid>
      <description>&lt;p&gt;&lt;strong&gt;SQL (Structured Query Language) é a linguagem padrão usada para gerenciar e manipular dados em bancos de dados relacionais.&lt;/strong&gt; Através de SQL, é possível realizar operações como consulta, inserção, atualização, deleção de dados e mais, facilitando a gestão e análise de informações. Neste post, vamos explorar os principais comandos SQL e, ao final, fazer uma breve comparação entre SQL e NoSQL.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;O que é SQL?&lt;/strong&gt;&lt;br&gt;
SQL é uma linguagem de consulta que permite interagir com bancos de dados relacionais. Bancos de dados relacionais, como MySQL, PostgreSQL, SQL Server e Oracle, armazenam dados em tabelas compostas por linhas e colunas, e SQL é utilizado para consultar, alterar ou organizar esses dados.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Os bancos de dados relacionais oferecem uma estrutura muito organizada e são ideais para cenários onde os dados possuem um formato bem definido&lt;/strong&gt; e requerem forte consistência, como em sistemas financeiros, de inventário e outros tipos de aplicações que exigem integridade de dados.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Principais Comandos SQL&lt;/strong&gt;&lt;br&gt;
Aqui estão alguns dos principais comandos SQL para você começar a trabalhar com bancos de dados relacionais.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;1. SELECT — Consultar Dados&lt;/strong&gt;&lt;br&gt;
O comando SELECT é usado para &lt;strong&gt;consultar dados&lt;/strong&gt; de uma ou mais tabelas. Ele é a base para extrair informações de um banco de dados.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Sintaxe Básica:&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;SELECT coluna1, coluna2
FROM tabela
WHERE condição;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Exemplo:&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;SELECT nome, idade
FROM clientes
WHERE idade &amp;gt; 30;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;2. INSERT — Inserir Dados&lt;/strong&gt;&lt;br&gt;
O comando INSERT é utilizado para adicionar novos registros em uma tabela.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Sintaxe:&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;INSERT INTO tabela (coluna1, coluna2)
VALUES (valor1, valor2);
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Exemplo:&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;INSERT INTO clientes (nome, idade)
VALUES ('João', 28);
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;3. UPDATE — Atualizar Dados&lt;/strong&gt;&lt;br&gt;
O comando UPDATE é utilizado para modificar os dados existentes em uma tabela.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Sintaxe:&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;UPDATE tabela
SET coluna1 = valor1, coluna2 = valor2
WHERE condição;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Exemplo:&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;UPDATE clientes
SET idade = 29
WHERE nome = 'João';
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;4. DELETE — Deletar Dados&lt;/strong&gt;&lt;br&gt;
O comando DELETE remove dados de uma tabela com base em uma condição.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Sintaxe:&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;DELETE FROM tabela
WHERE condição;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Exemplo&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;DELETE FROM clientes
WHERE idade &amp;lt; 18;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;5. CREATE TABLE — Criar Tabela&lt;/strong&gt;&lt;br&gt;
O comando CREATE TABLE é utilizado para criar uma nova tabela no banco de dados.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Sintaxe:&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 TABLE tabela (
    coluna1 tipo_dado,
    coluna2 tipo_dado,
    coluna3 tipo_dado
);
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Exemplo:&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 TABLE clientes (
    id INT PRIMARY KEY,
    nome VARCHAR(100),
    idade INT
);
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;6. ALTER TABLE — Modificar Tabela&lt;/strong&gt;&lt;br&gt;
O comando ALTER TABLE permite modificar a estrutura de uma tabela existente, como adicionar ou remover colunas.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Sintaxe:&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;ALTER TABLE tabela
ADD coluna tipo_dado;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Exemplo:&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;ALTER TABLE clientes
ADD email VARCHAR(100);
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;7. DROP TABLE — Deletar Tabela&lt;/strong&gt;&lt;br&gt;
O comando DROP TABLE é utilizado para excluir uma tabela do banco de dados, removendo completamente a estrutura e os dados nela armazenados.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Sintaxe:&lt;/strong&gt;&lt;br&gt;
DROP TABLE tabela;&lt;br&gt;
&lt;strong&gt;Exemplo:&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;DROP TABLE clientes;

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

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;8. JOIN — Combinar Tabelas&lt;/strong&gt;&lt;br&gt;
O comando JOIN é utilizado para combinar dados de duas ou mais tabelas, baseando-se em uma coluna comum entre elas. O INNER JOIN é o tipo mais comum, retornando apenas as linhas que têm correspondência em ambas as tabelas.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Sintaxe:&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;SELECT tabela1.coluna, tabela2.coluna
FROM tabela1
INNER JOIN tabela2 ON tabela1.coluna_comum = tabela2.coluna_comum;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Exemplo:&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;SELECT clientes.nome, pedidos.valor
FROM clientes
INNER JOIN pedidos ON clientes.id = pedidos.cliente_id;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;9. GROUP BY — Agrupar Dados&lt;/strong&gt;&lt;br&gt;
O comando GROUP BY é utilizado para agrupar resultados com base em uma ou mais colunas, frequentemente combinado com funções agregadas, como SUM, COUNT, AVG, etc.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Sintaxe:&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;SELECT coluna, COUNT(*)
FROM tabela
GROUP BY coluna;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Exemplo:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;SELECT cidade, COUNT(*)
FROM clientes
GROUP BY cidade;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;10. ORDER BY — Ordenar Resultados&lt;/strong&gt;&lt;br&gt;
O comando ORDER BY ordena os resultados de uma consulta em ordem crescente (ASC) ou decrescente (DESC).&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Sintaxe:&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;SELECT coluna1, coluna2
FROM tabela
ORDER BY coluna1 ASC;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Exemplo:&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;SELECT nome, idade
FROM clientes
ORDER BY idade DESC;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;SQL vs NoSQL&lt;/strong&gt;&lt;br&gt;
&lt;strong&gt;1. SQL&lt;/strong&gt; (Bancos de Dados Relacionais)&lt;br&gt;
Os bancos de dados relacionais (SQL) &lt;strong&gt;são baseados no modelo de dados relacional, onde os dados são armazenados em tabelas compostas por linhas e colunas.&lt;/strong&gt; Esse modelo oferece uma estrutura organizada, permitindo que os dados sejam manipulados de forma consistente e segura, especialmente em sistemas que exigem transações robustas e integridade de dados.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Exemplos de bancos relacionais:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;MySQL&lt;/li&gt;
&lt;li&gt;PostgreSQL&lt;/li&gt;
&lt;li&gt;Oracle&lt;/li&gt;
&lt;li&gt;SqL Server&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;2. NoSQL&lt;/strong&gt; (Bancos de Dados Não Relacionais)&lt;br&gt;
&lt;strong&gt;Os bancos de dados NoSQL são uma categoria de bancos de dados projetados para lidar com grandes volumes de dados não estruturados ou semi-estruturados.&lt;/strong&gt; Ao contrário dos bancos relacionais, os bancos NoSQL não utilizam tabelas para armazenar dados. Eles são ideais para aplicações que precisam de alta escalabilidade, flexibilidade de dados e gerenciamento de dados distribuídos.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Exemplos de bancos NoSQL:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;MongoDB (Documentos)&lt;/li&gt;
&lt;li&gt;Cassandra (Colunas)&lt;/li&gt;
&lt;li&gt;Redis (Chave-valor)&lt;/li&gt;
&lt;li&gt;Neo4j (Grafos)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Considerações Finais&lt;/strong&gt;&lt;br&gt;
O SQL é a linguagem essencial para trabalhar com bancos de dados relacionais, sendo fundamental para a manipulação de dados em sistemas que exigem consistência e integridade. Se você está começando a trabalhar com SQL, aprender os principais comandos SQL é o primeiro passo para se tornar eficiente em manipulação de dados.&lt;/p&gt;

&lt;p&gt;Já a &lt;strong&gt;comparação entre SQL e NoSQL depende das necessidades do seu projeto.&lt;/strong&gt;&lt;br&gt;
Enquanto os bancos SQL são ideais para dados estruturados e transações complexas, os NoSQL oferecem flexibilidade e escalabilidade para cenários com grandes volumes de dados não estruturados.&lt;/p&gt;

&lt;p&gt;Espero que esse conteúdo tenha sido útil para entender melhor o SQL e os principais comandos SQL. Se precisar de mais detalhes ou tiver dúvidas, estou à disposição!&lt;/p&gt;

</description>
    </item>
    <item>
      <title>Power BI: Entendendo suas Funcionalidades e Conceitos Importantes</title>
      <dc:creator>Isaac Maciel</dc:creator>
      <pubDate>Fri, 16 May 2025 03:23:36 +0000</pubDate>
      <link>https://forem.com/isaacmaciel/power-bi-entendendo-suas-funcionalidades-e-conceitos-importantes-3c2p</link>
      <guid>https://forem.com/isaacmaciel/power-bi-entendendo-suas-funcionalidades-e-conceitos-importantes-3c2p</guid>
      <description>&lt;p&gt;O &lt;strong&gt;Power BI&lt;/strong&gt; é uma ferramenta poderosa da Microsoft para visualização e análise de dados. Ele permite que usuários transformem dados brutos em insights valiosos, criando painéis interativos, relatórios e gráficos dinâmicos. Se você é novo no Power BI ou está buscando entender melhor algumas de suas funcionalidades, este post vai abordar desde os conceitos básicos até detalhes mais avançados, como as colunas calculadas e medidas, e as principais funções DAX utilizadas para criar cálculos avançados.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;O que é o Power BI?&lt;/strong&gt;&lt;br&gt;
O Power BI é uma suíte de ferramentas de análise de negócios que permite coletar, transformar, modelar e visualizar dados de diversas fontes, como bancos de dados, planilhas Excel, serviços online, e até dados em tempo real. Ele é dividido em três componentes principais:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Power BI Desktop&lt;/strong&gt;: Usado para criar relatórios e dashboards.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Power BI Service&lt;/strong&gt;: A versão online que permite compartilhar e colaborar em dashboards e relatórios.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Power BI Mobile&lt;/strong&gt;: Permite acessar seus relatórios e dashboards de dispositivos móveis.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Com o Power BI, &lt;strong&gt;você pode criar gráficos interativos, relatórios e painéis&lt;/strong&gt; que ajudam a tomar decisões informadas a partir dos dados.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Coluna Calculada vs. Medidas&lt;/strong&gt; &lt;br&gt;
Uma das perguntas mais comuns que surgem ao trabalhar com Power BI é qual a diferença entre colunas calculadas e medidas. Ambos são elementos fundamentais no modelo de dados, mas têm finalidades e comportamentos distintos.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Coluna Calculada&lt;/strong&gt;&lt;br&gt;
Uma coluna calculada é uma nova coluna que você adiciona a uma tabela existente no seu modelo de dados. &lt;strong&gt;Ela é calculada linha por linha e o valor resultante é armazenado na tabela&lt;/strong&gt;. Ou seja, uma coluna calculada sempre estará disponível como parte da tabela, e seu valor é calculado uma única vez durante o carregamento dos dados, não sendo recalculado em tempo real com as interações do usuário.&lt;/p&gt;

&lt;p&gt;Exemplos de uso:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Criar uma coluna de desconto a partir de uma coluna de preço.&lt;/li&gt;
&lt;li&gt;Criar uma coluna que combine nome e sobrenome em uma única coluna.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Sintaxe de criação de uma coluna calculada:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;NovaColuna = [Preço] * (1 - [Desconto])
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;A coluna calculada vai ser recalculada sempre que os dados forem atualizados, mas não vai mudar em função de interações do usuário no relatório.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Medida&lt;/strong&gt;&lt;br&gt;
Uma medida é um &lt;strong&gt;cálculo que é executado dinamicamente no contexto de filtros aplicados no relatório&lt;/strong&gt;. Ao contrário das colunas calculadas, as medidas não são armazenadas fisicamente na tabela, mas são calculadas em tempo real, com base nas interações do usuário e no contexto do relatório. Elas são ideais para cálculos agregados, como somas, médias, contagens e outras métricas dinâmicas.&lt;/p&gt;

&lt;p&gt;Exemplos de uso:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Somar o total de vendas.&lt;/li&gt;
&lt;li&gt;Calcular a média de vendas por categoria.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Sintaxe de criação de uma medida:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;TotalVendas = SUM(Tabela[Vendas])
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;As medidas são recalculadas toda vez que você interage com o relatório, aplicando filtros, segmentações e drill-downs.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Principais Funções DAX&lt;/strong&gt; (Data Analysis Expressions)&lt;br&gt;
&lt;strong&gt;O DAX&lt;/strong&gt; é a linguagem de fórmulas utilizada no Power BI, Excel (Power Pivot) e SQL Server Analysis Services (SSAS). As funções DAX permitem realizar cálculos e análises avançadas de dados. Aqui estão algumas das funções mais utilizadas:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;1.Funções de Agregação:&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;SUM(): Soma dos valores de uma coluna.
TotalVendas = SUM(Tabela[Vendas])
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;





&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;AVERAGE(): Calcula a média dos valores de uma coluna.
MediaVendas = AVERAGE(Tabela[Vendas])
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;





&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;COUNT(): Conta o número de valores não nulos em uma coluna.
ContagemProdutos = COUNT(Tabela[ProdutoID])
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;





&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;DISTINCTCOUNT(): Conta o número de valores distintos em uma coluna.
ContagemDistinta = DISTINCTCOUNT(Tabela[ProdutoID])
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;2.Funções de Filtragem:&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;FILTER(): Filtra uma tabela com base em uma condição.
VendasFiltradas = FILTER(Tabela, Tabela[Vendas] &amp;gt; 1000)
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;





&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;ALL(): Remove todos os filtros de uma tabela ou coluna.
TotalVendasSemFiltro = CALCULATE(SUM(Tabela[Vendas]), ALL(Tabela))
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;





&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;- CALCULATE(): Calcula uma expressão no contexto de um filtro modificado.
VendasDesconto = CALCULATE(SUM(Tabela[Vendas]), Tabela[Desconto] &amp;gt; 0)
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;3.Funções de Tempo:&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;TODAY(): Retorna a data de hoje.
DataHoje = TODAY()
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;





&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;YEAR(): Extrai o ano de uma data.
AnoVenda = YEAR(Tabela[DataVenda])
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;





&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;SAMEPERIODLASTYEAR(): Retorna os valores do mesmo período do ano anterior.
VendasAnoAnterior = SAMEPERIODLASTYEAR(Tabela[DataVenda])

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

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;4.Funções Lógicas:&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;IF(): Retorna um valor se a condição for verdadeira, outro valor se for falsa.
VendasAltas = IF(Tabela[Vendas] &amp;gt; 1000, "Alta", "Baixa")
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;





&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;
AND(): Retorna verdadeiro se ambas as condições forem verdadeiras.
VendasAltasEBaixas = AND(Tabela[Vendas] &amp;gt; 1000, Tabela[Desconto] &amp;lt; 10)
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;





&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;
OR(): Retorna verdadeiro se pelo menos uma das condições for verdadeira.
VendasComDesconto = OR(Tabela[Desconto] &amp;gt; 5, Tabela[Vendas] &amp;gt; 500)
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Considerações Finais&lt;/strong&gt;&lt;br&gt;
O Power BI é uma ferramenta altamente poderosa e flexível, que, combinada com a linguagem DAX, pode transformar grandes volumes de dados em insights estratégicos. Compreender a diferença entre colunas calculadas e medidas é essencial para construir modelos de dados eficientes e performáticos. Além disso, conhecer as principais funções DAX pode ampliar significativamente suas habilidades na análise e manipulação de dados no Power BI.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Se você está começando no Power BI&lt;/strong&gt;, a melhor forma de aprender é praticando com exemplos reais e se aprofundando nas funcionalidades conforme a necessidade do seu projeto.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Espero que esse conteúdo ajude a entender melhor o Power B&lt;/strong&gt; I, suas funcionalidades e como usar as funções DAX no seu trabalho! Se precisar de mais detalhes ou exemplos, estou à disposição.&lt;/p&gt;

</description>
    </item>
    <item>
      <title>Entendendo as Coleções do Java: List, Set e Map</title>
      <dc:creator>Isaac Maciel</dc:creator>
      <pubDate>Fri, 16 May 2025 02:51:28 +0000</pubDate>
      <link>https://forem.com/isaacmaciel/entendendo-as-colecoes-do-java-list-set-e-map-33jh</link>
      <guid>https://forem.com/isaacmaciel/entendendo-as-colecoes-do-java-list-set-e-map-33jh</guid>
      <description>&lt;p&gt;&lt;strong&gt;As coleções&lt;/strong&gt; em Java são estruturas de dados poderosas que permitem armazenar e manipular grandes quantidades de dados de maneira eficiente. O framework Java Collections Framework (JCF) fornece várias interfaces e classes que facilitam a manipulação de dados, sendo as mais utilizadas &lt;code&gt;List, Set e Map&lt;/code&gt;. Neste post, vamos explorar cada uma delas, suas funcionalidades e como usá-las no seu código.&lt;/p&gt;

&lt;p&gt;O que são Coleções?&lt;br&gt;
Uma coleção é simplesmente um objeto que armazena dados. A vantagem das coleções em Java é que elas oferecem implementações flexíveis e eficientes de várias estruturas de dados. O Java Collections Framework inclui &lt;strong&gt;interfaces&lt;/strong&gt; como Collection, List, Set, Queue, Map, entre outras, e classes como ArrayList, HashSet, HashMap, etc.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;1. List&lt;/strong&gt;&lt;br&gt;
Uma List é uma coleção ordenada que permite elementos duplicados. Ou seja, os elementos em uma lista mantêm uma ordem específica e podem se repetir. O acesso aos elementos é feito por índices, tornando-a semelhante a um array dinâmico.&lt;/p&gt;

&lt;p&gt;Características:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Ordenada: A ordem dos elementos é mantida.&lt;/li&gt;
&lt;li&gt;Indexada: Cada elemento tem um índice e pode ser acessado diretamente.&lt;/li&gt;
&lt;li&gt;Permite duplicatas: Você pode ter elementos repetidos.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Exemplos de Implementação:&lt;br&gt;
ArrayList&lt;br&gt;
Exemplos de Uso:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;import java.util.*;

public class ListaExemplo {
    public static void main(String[] args) {
        List&amp;lt;String&amp;gt; lista = new ArrayList&amp;lt;&amp;gt;();

        // Adicionando elementos
        lista.add("Java");
        lista.add("Python");
        lista.add("JavaScript");

        // Acessando elementos
        System.out.println(lista.get(0)); // Saída: Java

        // Iterando pela lista
        for (String linguagem : lista) {
            System.out.println(linguagem);
        }
    }
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;2. Set&lt;/strong&gt;&lt;br&gt;
O Set é uma coleção que não permite elementos duplicados. Se você tentar adicionar um elemento já presente no conjunto, a operação falhará. Não há garantia de que a ordem dos elementos será mantida, embora algumas implementações, como o LinkedHashSet, mantenham a ordem de inserção.&lt;/p&gt;

&lt;p&gt;Características:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;1. Não permite duplicatas: Não há elementos repetidos.&lt;/li&gt;
&lt;li&gt;2. Não indexada: Você não pode acessar os elementos por índice.&lt;/li&gt;
&lt;li&gt;3. Sem ordem garantida: A ordem dos elementos não é garantida, mas algumas implementações, como LinkedHashSet, mantêm a ordem de inserção.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Exemplos de Implementação:&lt;br&gt;
HashSet&lt;/p&gt;

&lt;p&gt;Exemplos de Uso:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;import java.util.*;

public class SetExemplo {
    public static void main(String[] args) {
        Set&amp;lt;String&amp;gt; conjunto = new HashSet&amp;lt;&amp;gt;();

        // Adicionando elementos
        conjunto.add("Java");
        conjunto.add("Python");
        conjunto.add("JavaScript");
        conjunto.add("Java"); // Este não será adicionado, pois é um duplicado

        // Iterando pelo set
        for (String linguagem : conjunto) {
            System.out.println(linguagem);
        }
    }
}

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

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;3. Map&lt;/strong&gt;&lt;br&gt;
O Map é uma coleção que armazena pares chave-valor. Ele não permite chaves duplicadas, mas os valores podem ser duplicados. É ideal para situações onde você precisa associar uma chave única a um valor, como um dicionário.&lt;/p&gt;

&lt;p&gt;Características:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Chave única: Cada chave no mapa deve ser única.&lt;/li&gt;
&lt;li&gt;Permite valores duplicados: O valor associado a uma chave pode ser repetido.&lt;/li&gt;
&lt;li&gt;Não indexado: Os elementos não têm uma posição específica, mas podem ser acessados pelas chaves.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Exemplos de Implementação:&lt;br&gt;
HashMap&lt;/p&gt;

&lt;p&gt;Exemplos de Uso:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;import java.util.*;
 public class MapExemplo {
     public static void main(String[] args) {
         Map&amp;lt;String, Integer&amp;gt; mapa = new HashMap&amp;lt;&amp;gt;();

         // Adicionando pares chave-valor
         mapa.put("Java", 1995);
         mapa.put("Python", 1991);
         mapa.put("JavaScript", 1995);

        // Acessando valores por chave
        System.out.println("Ano de lançamento do Java: " + mapa.get("Java"));

         // Iterando pelo mapa
         for (Map.Entry&amp;lt;String, Integer&amp;gt; entry : mapa.entrySet()) {
             System.out.println(entry.getKey() + " foi lançado em " + entry.getValue());
         }
     }
 }

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

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Considerações Finais&lt;/strong&gt;&lt;br&gt;
As coleções são uma parte fundamental do Java, e entender como e quando usar List, Set e Map pode melhorar significativamente a eficiência do seu código. Aqui estão algumas dicas:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Use uma List&lt;/strong&gt; quando a ordem de inserção for importante ou quando você precisar acessar elementos por índice.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Use um Set&lt;/strong&gt; quando precisar garantir que não haja elementos duplicados e não se importar com a ordem.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Use um Map&lt;/strong&gt; quando precisar associar uma chave a um valor e garantir que as chaves sejam únicas.&lt;/p&gt;

&lt;p&gt;Com essas ferramentas, você pode resolver muitos problemas de manipulação de dados de forma eficiente e com boas práticas de programação.&lt;/p&gt;

</description>
    </item>
    <item>
      <title>Como funciona a Programação Orientada a Objetos em Java.</title>
      <dc:creator>Isaac Maciel</dc:creator>
      <pubDate>Tue, 06 May 2025 11:43:01 +0000</pubDate>
      <link>https://forem.com/isaacmaciel/como-funciona-a-programacao-orientada-a-objetos-em-java-4h7o</link>
      <guid>https://forem.com/isaacmaciel/como-funciona-a-programacao-orientada-a-objetos-em-java-4h7o</guid>
      <description>&lt;h2&gt;
  
  
  &lt;strong&gt;A Programação Orientada a Objetos (POO)&lt;/strong&gt; é um dos pilares da linguagem Java e também uma das formas mais poderosas de estruturar código de maneira organizada, reutilizável e escalável.
&lt;/h2&gt;

&lt;p&gt;Neste artigo, você vai entender:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;O que é Programação Orientada a Objetos&lt;/li&gt;
&lt;li&gt;Os quatro pilares da POO&lt;/li&gt;
&lt;li&gt;Como a POO é aplicada na prática com Java&lt;/li&gt;
&lt;li&gt;Um exemplo simples e funcional&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;O que é Programação Orientada a Objetos?&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;A Programação Orientada a Objetos é um paradigma que organiza o código em "objetos" — estruturas que combinam dados (atributos) e comportamentos (métodos).&lt;/p&gt;

&lt;p&gt;Em vez de pensar apenas em funções soltas, a POO nos permite modelar entidades do mundo real, como "Carro", "Pessoa" ou "ContaBancária", com suas características e ações.&lt;/p&gt;

&lt;h2&gt;
  
  
  Os 4 pilares da POO
&lt;/h2&gt;

&lt;p&gt;A POO se baseia em quatro princípios fundamentais:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;1. Abstração&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Esconder detalhes complexos e expor apenas o necessário.&lt;/li&gt;
&lt;li&gt;Ex: você usa um Scanner para ler dados, sem saber como ele funciona por dentro&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;2. Encapsulamento&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Proteger os dados internos de uma classe, controlando o acesso a eles.&lt;/li&gt;
&lt;li&gt;Usamos modificadores como private e métodos get/set.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;3. Herança&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Permite que uma classe herde características de outra.&lt;/li&gt;
&lt;li&gt;Ex: Cachorro pode herdar de Animal.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;4. Polimorfismo&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Objetos podem ter várias formas.&lt;/li&gt;
&lt;li&gt;Ex: métodos com o mesmo nome funcionando de maneira diferente em classes diferentes.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Como a POO é aplicada em Java?&lt;/strong&gt;&lt;br&gt;
Java foi projetado para ser orientado a objetos desde o início. Em Java, tudo gira em torno de classes e objetos. Vamos ver um exemplo simples:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F76rqjl0k8u94imj0fpwq.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F76rqjl0k8u94imj0fpwq.png" alt="Image description" width="520" height="405"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fbjssag5xve22w7m9ruy0.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fbjssag5xve22w7m9ruy0.png" alt="Image description" width="587" height="287"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F7tgd8aq6iz046pq9gl7n.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F7tgd8aq6iz046pq9gl7n.png" alt="Image description" width="587" height="190"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Conclusão&lt;/strong&gt;&lt;br&gt;
A Programação Orientada a Objetos é essencial para quem quer dominar Java e escrever códigos mais organizados, reutilizáveis e fáceis de manter. Aprender seus pilares e praticar com exemplos é o caminho ideal para evoluir como desenvolvedor.&lt;/p&gt;

&lt;p&gt;Se você está começando agora, experimente modelar objetos simples do seu dia a dia usando Java. Quanto mais você praticar, mais natural a POO vai se tornar no seu código.&lt;/p&gt;

</description>
      <category>programming</category>
      <category>java</category>
      <category>dev</category>
    </item>
  </channel>
</rss>
