📖 Definição
Um banco de dados relacional organiza dados em tabelas (como planilhas) com linhas e colunas. Cada linha é um registro único, cada coluna é um atributo. As tabelas se relacionam através de chaves, permitindo consultas complexas e integridade dos dados.
🛠️ Aplicação Prática
Chave Primária (PK): Identifica unicamente cada registro (ex: ID do cliente).
Chave Estrangeira (FK): Cria relacionamentos entre tabelas (ex: pedido referencia cliente).
Isso garante consistência: não é possível ter um pedido sem um cliente válido.
✅ Resultado Esperado
Ao dominar estes conceitos, você conseguirá projetar estruturas de dados eficientes, entender esquemas existentes rapidamente e identificar problemas de modelagem que causam lentidão ou inconsistências.
📖 Definição
O Diagrama Entidade-Relacionamento (DER) é uma representação visual da estrutura do banco. Entidades são objetos do mundo real (CLIENTES, PRODUTOS). Atributos são suas características. Relacionamentos mostram como as entidades se conectam.
🛠️ Aplicação Prática
Antes de criar tabelas, desenhe o DER. Identifique: quais entidades existem? Quais atributos cada uma tem? Como se relacionam (1:1, 1:N, N:N)? Ferramentas como Oracle SQL Developer Data Modeler facilitam esse processo.
✅ Resultado Esperado
Um bom modelo evita redundância de dados, facilita manutenção e melhora performance. DBAs que dominam modelagem conseguem otimizar bancos existentes e projetar novos com eficiência.
📖 Definição
SQL Developer: Interface gráfica gratuita da Oracle. Ideal para desenvolvimento,
administração visual, debug de código PL/SQL e exportação/importação de dados.
SQL*Plus: Cliente de linha de comando. Essencial para scripts, automação e
situações onde não há interface gráfica disponível.
🛠️ Aplicação Prática
Use SQL Developer para tarefas do dia a dia: escrever queries, visualizar dados, criar objetos. Use SQL*Plus para scripts de manutenção, startup/shutdown do banco, e quando acessar via SSH. Ambos executam os mesmos comandos SQL - a diferença é a interface.
✅ Resultado Esperado
Dominar ambas as ferramentas torna você versátil: pode trabalhar em qualquer ambiente, automatizar tarefas repetitivas e resolver problemas mesmo em servidores sem GUI.
📖 Definição
DQL: Consultas (SELECT)
DML: Manipulação (INSERT, UPDATE, DELETE)
DDL: Definição de estrutura (CREATE, ALTER, DROP)
DCL: Controle de acesso (GRANT, REVOKE)
🛠️ Aplicação Prática
No dia a dia, você usará principalmente DQL (80% das operações são consultas). DML para manutenção de dados. DDL raramente (alterações estruturais planejadas). DCL é crítico para segurança - controla quem pode fazer o quê no banco.
✅ Resultado Esperado
Entender as categorias ajuda a saber o impacto de cada comando: DML pode ser revertido com ROLLBACK, DDL faz COMMIT automático. Essa distinção evita erros graves em produção.
📖 Definição
SELECT: Busca dados (SELECT * FROM tabela WHERE condição)
INSERT: Adiciona registros (INSERT INTO tabela VALUES (...))
UPDATE: Modifica registros (UPDATE tabela SET coluna = valor WHERE condição)
DELETE: Remove registros (DELETE FROM tabela WHERE condição)
🛠️ Aplicação Prática
SEMPRE use WHERE em UPDATE e DELETE - sem WHERE, afeta TODOS os registros!
Antes de UPDATE/DELETE, faça SELECT com a mesma condição para verificar quais registros serão afetados.
Use COMMIT para confirmar ou ROLLBACK para desfazer.
✅ Resultado Esperado
Após praticar estes comandos, você conseguirá fazer manutenção de dados com segurança, extrair informações rapidamente e resolver a maioria das solicitações do dia a dia.
📖 Definição
JOINs: Combinam dados de múltiplas tabelas (INNER, LEFT, RIGHT, FULL)
Funções de Agregação: COUNT, SUM, AVG, MAX, MIN com GROUP BY
Subqueries: Consultas dentro de consultas para filtros complexos
🛠️ Aplicação Prática
INNER JOIN: Apenas registros que existem em ambas tabelas
LEFT JOIN: Todos da esquerda + matches da direita (útil para encontrar órfãos)
Use GROUP BY com funções de agregação para relatórios (total por departamento, média salarial, etc.)
✅ Resultado Esperado
Com JOINs e agregações, você cria relatórios complexos, identifica inconsistências entre tabelas, e responde perguntas de negócio que envolvem múltiplas fontes de dados.
📖 Definição
Um SGBD é o software que gerencia o banco de dados: controla acesso, garante integridade, gerencia transações e otimiza performance. Oracle é um SGBD enterprise com recursos avançados de alta disponibilidade, enquanto outros como PostgreSQL, MySQL e SQL Server têm características específicas.
🛠️ Aplicação Prática
Na arquitetura cliente-servidor, o SGBD (servidor) processa requisições SQL de múltiplos clientes. Oracle destaca-se em ambientes críticos com RAC (cluster), Data Guard (replicação) e recursos de particionamento. Entender essas diferenças ajuda a escolher a ferramenta certa.
✅ Resultado Esperado
Compreender o papel do SGBD permite tomar decisões arquiteturais melhores, entender limitações e vantagens de cada plataforma, e comunicar-se efetivamente com equipes de infraestrutura e desenvolvimento.
📖 Definição
VARCHAR2: Texto variável (até 4000 bytes)
NUMBER: Números com precisão definida
DATE: Data e hora (até segundos)
TIMESTAMP: Data e hora com frações de segundo
CLOB/BLOB: Texto ou binário grande (até 4GB)
🛠️ Aplicação Prática
Use VARCHAR2 para textos, NUMBER para valores numéricos, DATE para datas simples e TIMESTAMP quando precisar de precisão em milissegundos. Conversões entre tipos usam TO_CHAR, TO_NUMBER, TO_DATE. Escolher o tipo correto economiza espaço e melhora performance.
✅ Resultado Esperado
Dominar data types evita erros de conversão implícita, otimiza uso de storage e permite trabalhar com dados complexos como documentos XML ou imagens armazenadas no banco.
📖 Definição
Aritméticos: +, -, *, / para cálculos
Comparação: =, !=, <, >, <=, >= para filtros
Lógicos: AND, OR, NOT para combinar condições
Especiais: BETWEEN (intervalo), IN (lista), LIKE (padrão), IS NULL (nulo)
🛠️ Aplicação Prática
Use BETWEEN para intervalos (WHERE salario BETWEEN 3000 AND 5000). Use IN para múltiplos valores (WHERE dept IN ('TI','RH')). Use LIKE com % para buscas parciais (WHERE nome LIKE 'João%'). Use IS NULL para valores ausentes (não use = NULL).
✅ Resultado Esperado
Dominar operadores permite criar filtros precisos, fazer buscas complexas e construir cálculos dentro das queries, reduzindo a necessidade de processamento externo.
📖 Definição
DUAL: Tabela especial para testar expressões (SELECT SYSDATE FROM DUAL)
Aliases: Apelidos para colunas/tabelas (SELECT nome AS funcionario)
ORDER BY: Ordena resultados (ASC/DESC)
DISTINCT: Remove duplicatas
ROWNUM: Limita número de linhas retornadas
🛠️ Aplicação Prática
Use aliases para tornar queries legíveis. Use prefixação (tabela.coluna) em JOINs para evitar ambiguidade. ORDER BY organiza resultados para relatórios. DISTINCT elimina duplicatas em consultas. ROWNUM permite paginação (WHERE ROWNUM <= 10 para top 10).
✅ Resultado Esperado
Queries avançadas ficam mais eficientes e legíveis. Você consegue criar relatórios ordenados, evitar duplicatas, limitar resultados e testar funções sem precisar de tabelas reais.
📖 Definição
COMMIT: Confirma alterações permanentemente
ROLLBACK: Desfaz alterações não confirmadas
SAVEPOINT: Marca ponto intermediário para rollback parcial
Uma transação é um conjunto de operações que deve ser executado completamente ou não ser executado.
🛠️ Aplicação Prática
Sempre faça COMMIT após operações bem-sucedidas ou ROLLBACK se algo deu errado. Use SAVEPOINT antes de operações arriscadas para poder voltar parcialmente. Transações garantem integridade: se transferir dinheiro entre contas, ou ambas operações (débito e crédito) ocorrem, ou nenhuma ocorre.
✅ Resultado Esperado
Controlar transações corretamente previne inconsistências de dados, permite recuperação de erros e garante que operações complexas sejam atômicas e confiáveis.
📖 Definição
Numéricas: ROUND, TRUNC, MOD, ABS, CEIL, FLOOR
String: UPPER, LOWER, SUBSTR, LENGTH, CONCAT, TRIM
Data: SYSDATE, ADD_MONTHS, MONTHS_BETWEEN, TRUNC, EXTRACT
Conversão: TO_CHAR, TO_NUMBER, TO_DATE
Condicionais: NVL, NVL2, DECODE, CASE
🛠️ Aplicação Prática
Use funções numéricas para arredondar valores monetários. Funções de string para formatar nomes e textos. Funções de data para calcular diferenças entre datas e adicionar meses. NVL substitui valores nulos. CASE cria lógica condicional complexa dentro de queries.
✅ Resultado Esperado
Dominar funções SQL reduz processamento em aplicações, permite transformações de dados diretamente no banco e cria queries mais eficientes e expressivas.
📖 Definição
GROUP BY: Agrupa linhas com valores idênticos
COUNT: Conta registros
SUM: Soma valores
AVG: Média de valores
MIN/MAX: Valores mínimo e máximo
HAVING: Filtra grupos (WHERE não funciona com agregações)
🛠️ Aplicação Prática
Use GROUP BY para criar relatórios sumarizados: total de vendas por região, média salarial por departamento, número de pedidos por cliente. HAVING filtra após a agregação (ex: HAVING SUM(valor) > 10000 mostra apenas grupos com total acima de 10k).
✅ Resultado Esperado
GROUP BY é essencial para análises e relatórios gerenciais. Permite extrair insights de grandes volumes de dados e criar dashboards diretamente do banco.
📖 Definição
View: Consulta armazenada que age como tabela virtual. Simplifica queries complexas
e controla acesso a dados sensíveis.
WITH CHECK OPTION: Garante que DML em views respeite a cláusula WHERE da view.
Synonym: Apelido para objetos do banco (tabelas, views) facilitando referências.
🛠️ Aplicação Prática
Crie views para JOINs frequentes ou cálculos complexos. Use para segurança: view mostra apenas colunas permitidas ao usuário. Synonyms permitem referenciar OWNER.TABELA como TABELA, simplificando código e facilitando migração entre ambientes.
✅ Resultado Esperado
Views tornam queries complexas reutilizáveis e melhoram segurança. Synonyms simplificam código e tornam aplicações mais portáveis entre diferentes schemas e ambientes.
📖 Definição
PRIMARY KEY (PK): Identifica unicamente cada registro
FOREIGN KEY (FK): Garante referência válida entre tabelas
UNIQUE: Impede valores duplicados
NOT NULL: Obriga preenchimento
CHECK: Valida regras customizadas
DEFAULT: Define valor padrão
🛠️ Aplicação Prática
PK e FK garantem integridade referencial (não há pedido órfão sem cliente). UNIQUE impede e-mails duplicados. NOT NULL garante dados essenciais. CHECK valida regras de negócio (ex: salário > 0). DEFAULT simplifica inserções (ex: data_cadastro DEFAULT SYSDATE).
✅ Resultado Esperado
Constraints bem definidas previnem inconsistências, validam dados no nível do banco (não apenas na aplicação) e documentam regras de negócio diretamente na estrutura.
Trilha 1: Fundamentos de BD e SQL
Acesse o resumo da trilha ou veja em formato modal