MÓDULO 1 - FUNDAMENTOS

📊 Fundamentos de BD e SQL

A base de todo conhecimento de um DBA Oracle

📄

Você está no Conteúdo Compacto

Resumo da trilha em uma única página

Ver Conteúdo Completo
6
Seções
10
Exercícios
SQL
Linguagem
Base
Nível

Introdução

Bem-vindo ao início de sua jornada para se tornar um Administrador de Banco de Dados (DBA) Oracle. Este primeiro módulo é a base de todo o conhecimento que você irá adquirir. Aqui, vamos explorar os conceitos essenciais que sustentam os bancos de dados relacionais e aprender a linguagem fundamental para interagir com eles: o SQL.

🏛️

1.1 Conceitos de BD Relacional

A estrutura fundamental

Um banco de dados relacional é um sistema que organiza os dados em tabelas. Pense em uma tabela como uma planilha, com linhas e colunas. Cada linha representa um registro (por exemplo, um cliente) e cada coluna representa um atributo desse registro (por exemplo, nome, email, telefone).

Conceitos Principais

Tabela

A estrutura fundamental de armazenamento, composta por linhas e colunas.

Coluna

Um atributo específico de uma tabela. Possui um nome e um tipo de dado (texto, número, data, etc.).

Linha

Um registro único dentro de uma tabela.

PK

Chave Primária: Uma ou mais colunas que identificam unicamente cada linha. Não pode haver duas linhas com a mesma PK.

FK

Chave Estrangeira: Uma coluna que se refere à chave primária de outra tabela. Cria o "relacionamento" entre tabelas.

📐

1.2 Modelagem de Dados

Diagrama Entidade-Relacionamento

A modelagem de dados é o processo de criar um diagrama que representa a estrutura do banco de dados. O modelo mais comum é o Diagrama Entidade-Relacionamento (DER).

Entidade

Objeto do mundo real sobre o qual armazenamos informações (ex: CLIENTES, PRODUTOS).

Atributo

Característica de uma entidade (ex: nome do cliente, preço do produto).

Relacionamento

Associação entre entidades (ex: CLIENTE faz PEDIDO).

📷 Diagrama ER: Veja a imagem diagrama_er.png na seção de Recursos para um exemplo visual.

🛠️

1.3 O Ambiente Oracle

SQL Developer e SQL*Plus

Para interagir com o banco de dados Oracle, utilizamos ferramentas cliente. As duas mais importantes para um DBA são:

SQL Developer

Interface gráfica (GUI) completa e gratuita da Oracle. Permite escrever e executar queries SQL, administrar objetos, importar/exportar dados.

Ideal para o dia a dia

SQL*Plus

Ferramenta de linha de comando (CLI). Menos amigável, mas extremamente poderosa para automação e execução de scripts.

Essencial para DBAs
📝

1.4 A Linguagem SQL

A base de tudo

SQL (Structured Query Language) é a linguagem padrão para gerenciar e manipular bancos de dados relacionais. Ela é dividida em subconjuntos de comandos:

DQL

Data Query Language

Para consultas. Comando: SELECT

DML

Data Manipulation Language

Comandos: INSERT, UPDATE, DELETE

DDL

Data Definition Language

Comandos: CREATE, ALTER, DROP

DCL

Data Control Language

Comandos: GRANT, REVOKE

💻

1.5 Comandos SQL na Prática

Exemplos com tabelas reais

Tabelas de Exemplo

Tabela: DEPARTAMENTOS

DEPT_ID (PK) NOME_DEP
10'FINANCEIRO'
20'TI'
30'RH'

Tabela: EMPREGADOS

EMP_ID (PK) NOME_EMP SALARIO DEPT_ID (FK)
101'JOÃO SILVA'500010
102'ANA LIMA'700020
103'CARLOS SOUZA'650020
104'MARIA GOMES'400010

SELECT: Consultando Dados

O comando SELECT é usado para buscar dados. Sintaxe: SELECT colunas FROM tabela WHERE condição

-- Selecionar todos os empregados
SELECT * FROM EMPREGADOS;

-- Selecionar nome e salário dos empregados do departamento de TI (DEPT_ID = 20)
SELECT NOME_EMP, SALARIO FROM EMPREGADOS WHERE DEPT_ID = 20;

INSERT: Inserindo Novos Dados

O INSERT adiciona novas linhas a uma tabela.

-- Inserir um novo departamento
INSERT INTO DEPARTAMENTOS (DEPT_ID, NOME_DEP) VALUES (40, 'VENDAS');

-- Inserir um novo empregado
INSERT INTO EMPREGADOS (EMP_ID, NOME_EMP, SALARIO, DEPT_ID)
VALUES (105, 'PEDRO COSTA', 5500, 40);

UPDATE: Atualizando Dados

O UPDATE modifica registros existentes na tabela.

-- Aumentar o salário dos empregados do Financeiro em 10%
UPDATE EMPREGADOS
SET SALARIO = SALARIO * 1.10
WHERE DEPT_ID = 10;

DELETE: Removendo Dados

⚠️ Cuidado: Use sempre a cláusula WHERE para não apagar todos os dados!

-- Remover o empregado com ID 105
DELETE FROM EMPREGADOS WHERE EMP_ID = 105;
🔗

1.6 Joins, Funções e Subqueries

Recursos avançados de SQL

Joins: Combinando Tabelas

O JOIN permite combinar linhas de duas ou mais tabelas com base em uma coluna relacionada.

-- Selecionar o nome de cada empregado e o nome do seu departamento
SELECT E.NOME_EMP, D.NOME_DEP
FROM EMPREGADOS E
JOIN DEPARTAMENTOS D ON E.DEPT_ID = D.DEPT_ID;

Funções: Manipulando Dados

O Oracle oferece uma vasta biblioteca de funções para manipular texto, números e datas.

Agregação

COUNT(), SUM(), AVG(), MAX(), MIN()

String

UPPER(), LOWER(), SUBSTR()

Numéricas

ROUND(), TRUNC()
-- Contar quantos empregados existem em cada departamento
SELECT DEPT_ID, COUNT(*) AS TOTAL_EMPREGADOS
FROM EMPREGADOS
GROUP BY DEPT_ID;

Subqueries: Consultas Aninhadas

Uma subquery é uma consulta SELECT dentro de outra consulta. Úteis para filtros complexos.

-- Encontrar empregados que ganham mais que a média salarial
SELECT NOME_EMP, SALARIO
FROM EMPREGADOS
WHERE SALARIO > (SELECT AVG(SALARIO) FROM EMPREGADOS);
📝

Exercícios Práticos

Hora de praticar!

Cenário: Livraria

Você foi contratado como DBA júnior de uma pequena livraria. O banco de dados possui as seguintes tabelas:

Tabela: AUTORES

AUTOR_ID NOME_AUTOR PAIS_ORIGEM
1'J.K. Rowling''Reino Unido'
2'George Orwell''Reino Unido'
3'Machado de Assis''Brasil'

Tabela: LIVROS

LIVRO_ID TITULO ANO PRECO AUTOR_ID
101'Harry Potter...'199735.001
102'1984'194928.502
103'Dom Casmurro'189922.003
104'A Revolução dos Bichos'194525.002

1. SELECT Básico

Escreva uma query para selecionar o título e o ano de publicação de todos os livros.

2. SELECT com WHERE

Escreva uma query para encontrar todos os livros publicados antes de 1950.

3. INSERT

Insira um novo autor: ID 4, Nome 'J.R.R. Tolkien', País 'África do Sul'.

4. INSERT

Insira um novo livro: ID 105, Título 'O Hobbit', Ano 1937, Preço 45.00, Autor ID 4.

5. UPDATE

O preço do livro '1984' subiu. Atualize para 32.75.

6. DELETE

O livro 'O Hobbit' foi removido do catálogo. Apague-o.

7. JOIN

Mostre o título de cada livro e o nome do seu respectivo autor.

8. Função de Agregação

Calcule o preço médio de todos os livros.

9. Subquery

Encontre o título dos livros que são mais caros que a média.

10. JOIN com WHERE

Liste os títulos dos livros escritos por autores do 'Reino Unido'.

📋 Ver Gabarito dos Exercícios

1. SELECT Básico

SELECT TITULO, ANO_PUBLICACAO FROM LIVROS;

2. SELECT com WHERE

SELECT * FROM LIVROS WHERE ANO_PUBLICACAO < 1950;

3. INSERT Autor

INSERT INTO AUTORES (AUTOR_ID, NOME_AUTOR, PAIS_ORIGEM)
VALUES (4, 'J.R.R. Tolkien', 'África do Sul');

4. INSERT Livro

INSERT INTO LIVROS (LIVRO_ID, TITULO, ANO_PUBLICACAO, PRECO, AUTOR_ID)
VALUES (105, 'O Hobbit', 1937, 45.00, 4);

5. UPDATE

UPDATE LIVROS SET PRECO = 32.75 WHERE TITULO = '1984';

6. DELETE

DELETE FROM LIVROS WHERE TITULO = 'O Hobbit';

7. JOIN

SELECT L.TITULO, A.NOME_AUTOR
FROM LIVROS L
JOIN AUTORES A ON L.AUTOR_ID = A.AUTOR_ID;

8. Função de Agregação

SELECT AVG(PRECO) AS PRECO_MEDIO FROM LIVROS;

9. Subquery

SELECT TITULO, PRECO
FROM LIVROS
WHERE PRECO > (SELECT AVG(PRECO) FROM LIVROS);

10. JOIN com WHERE

SELECT L.TITULO
FROM LIVROS L
JOIN AUTORES A ON L.AUTOR_ID = A.AUTOR_ID
WHERE A.PAIS_ORIGEM = 'Reino Unido';

🎉 Módulo 1 Concluído!

Parabéns! Você aprendeu os fundamentos de SQL. No próximo módulo, vamos começar a administração do Oracle Database.