Definição
O que é um SGBD?
Um SGBD (Sistema Gerenciador de Banco de Dados) ou DBMS (Database Management System) é um software que permite criar, gerenciar, consultar e controlar o acesso a bancos de dados de forma eficiente e segura.
É importante entender a diferença entre Banco de Dados e SGBD:
Banco de Dados
É a coleção organizada de dados em si. Os arquivos físicos que armazenam as informações estruturadas.
- Dados propriamente ditos
- Estruturas (tabelas, índices)
- Relacionamentos
- Metadados
SGBD
É o software que gerencia o banco de dados. A ferramenta que permite interagir com os dados.
- Oracle Database
- MySQL
- PostgreSQL
- SQL Server
Funções Principais de um SGBD
1. Gerenciamento de Dados
Armazenamento, recuperação, atualização e exclusão de dados de forma eficiente.
2. Controle de Concorrência
Permite que múltiplos usuários acessem o banco simultaneamente sem conflitos, usando locks e transações.
3. Segurança e Controle de Acesso
Autenticação de usuários, autorização de operações, auditoria e criptografia de dados.
4. Integridade dos Dados
Garantia através de constraints, triggers e validações que os dados permanecem consistentes.
5. Backup e Recuperação
Proteção contra perdas através de backups e mecanismos de recovery em caso de falhas.
6. Otimização de Consultas
Query optimizer analisa e executa consultas da forma mais eficiente possível.
Arquitetura Cliente-Servidor
A maioria dos SGBDs modernos, incluindo o Oracle, utiliza uma arquitetura cliente-servidor:
Servidor (Server)
Gerencia o banco de dados, processa requisições e retorna resultados.
- Oracle Instance (processos + memória)
- Database files (datafiles, controlfiles, redologs)
- Listener (recebe conexões)
Cliente (Client)
Aplicação que se conecta ao servidor e envia comandos SQL.
- SQL*Plus, SQL Developer
- Aplicações web/desktop
- Scripts e ferramentas ETL
Fluxo de Comunicação:
Cliente → SQL Request → Listener → Server Process → Database Cliente ← Result Set ← Server Process ← Database
Oracle vs Outros SGBDs
Comparação entre SGBDs Relacionais
| Característica | Oracle | MySQL | PostgreSQL | SQL Server |
|---|---|---|---|---|
| Licença | Comercial | Open Source | Open Source | Comercial |
| Fabricante | Oracle Corporation | Oracle (MySQL AB) | PostgreSQL Global Development Group | Microsoft |
| Plataformas | Multi-plataforma | Multi-plataforma | Multi-plataforma | Windows, Linux |
| Escalabilidade | Muito Alta | Média | Alta | Alta |
| RAC (Clustering) | Sim | Limitado | Não nativo | Sim (AlwaysOn) |
| Particionamento | Avançado | Básico | Bom | Bom |
| Mercado | Grandes empresas | Web, startups | Empresas médias/grandes | Microsoft ecosystem |
Vantagens do Oracle Database
Alta Disponibilidade
RAC, Data Guard, Flashback technologies
Performance Excepcional
Otimizador avançado, in-memory processing
Recursos Empresariais
Particionamento, compressão, encriptação
PL/SQL Poderoso
Linguagem procedural robusta e performática
Segurança Avançada
Label Security, Database Vault, Data Masking
Suporte e Ecossistema
Documentação completa, suporte técnico premium
Componentes Principais do Oracle
Arquitetura do Oracle Database
1. Instance (Instância)
Conjunto de processos em memória e estruturas que gerenciam o banco de dados.
- SGA (System Global Area): Memória compartilhada (Buffer Cache, Shared Pool, Redo Log Buffer)
- PGA (Program Global Area): Memória privada de cada processo
- Background Processes: SMON, PMON, DBWn, LGWR, CKPT, ARCn
2. Database (Banco de Dados)
Conjunto de arquivos físicos que armazenam os dados permanentemente.
- Datafiles: Armazenam tabelas, índices e dados
- Control Files: Metadados sobre a estrutura do banco
- Redo Log Files: Registram todas as mudanças (recovery)
- Archive Log Files: Cópias dos redo logs (backup)
3. Listener
Processo que escuta requisições de conexão dos clientes na rede.
- Recebe pedidos de conexão na porta 1521 (padrão)
- Cria ou direciona para um server process
- Configurado no arquivo listener.ora
4. Server Processes
Processos criados para atender requisições dos usuários.
- Dedicated: Um processo para cada conexão
- Shared: Vários usuários compartilham processos (MTS)
Diagrama Simplificado
┌──────────────────────────────────────────────────────────┐
│ CLIENTE │
│ (SQL*Plus, SQL Developer, Aplicações) │
└────────────────────┬─────────────────────────────────────┘
│ SQL Requests
▼
┌──────────────────────────────────────────────────────────┐
│ LISTENER │
│ (Porta 1521 - Recebe conexões) │
└────────────────────┬─────────────────────────────────────┘
│
▼
┌──────────────────────────────────────────────────────────┐
│ ORACLE INSTANCE │
│ ┌────────────────────────────────────────────────┐ │
│ │ SGA (System Global Area) │ │
│ │ - Buffer Cache │ │
│ │ - Shared Pool (Library Cache, Dict Cache) │ │
│ │ - Redo Log Buffer │ │
│ │ - Large Pool, Java Pool │ │
│ └────────────────────────────────────────────────┘ │
│ ┌────────────────────────────────────────────────┐ │
│ │ Background Processes │ │
│ │ SMON | PMON | DBWn | LGWR | CKPT | ARCn │ │
│ └────────────────────────────────────────────────┘ │
└────────────────────┬─────────────────────────────────────┘
│ I/O
▼
┌──────────────────────────────────────────────────────────┐
│ DATABASE │
│ ┌──────────────┐ ┌──────────────┐ ┌──────────────┐ │
│ │ Datafiles │ │ Control Files│ │ Redo Logs │ │
│ │ (.dbf) │ │ (.ctl) │ │ (.log) │ │
│ └──────────────┘ └──────────────┘ └──────────────┘ │
└──────────────────────────────────────────────────────────┘
Resultado Esperado
O que você deve dominar após este tópico:
Diferenciar BD e SGBD
Entender a distinção entre dados e gerenciador
Conhecer funções do SGBD
Segurança, concorrência, backup, otimização
Arquitetura cliente-servidor
Compreender o fluxo de comunicação
Comparar SGBDs
Oracle vs MySQL, PostgreSQL, SQL Server
Componentes Oracle
Instance, Database, Listener, Processos
Vantagens do Oracle
Alta disponibilidade, performance, recursos
Exercícios Práticos
Exercício 1: Identificando Componentes
Classifique cada item como Instance ou Database:
- SGA (System Global Area)
- Datafiles (.dbf)
- Background Processes (SMON, PMON, DBWn)
- Control Files (.ctl)
- PGA (Program Global Area)
- Redo Log Files (.log)
Ver Solução
Resposta:
- Instance: SGA, Background Processes, PGA
- Database: Datafiles, Control Files, Redo Log Files
A Instance são estruturas em memória e processos. O Database são arquivos físicos em disco.
Exercício 2: Vantagens do Oracle
Liste 3 cenários em que o Oracle seria mais adequado que MySQL:
Ver Solução
Cenários:
- Grande volume transacional: Bancos, sistemas financeiros que exigem alta concorrência e ACID rigoroso
- Alta disponibilidade crítica: Sistemas 24/7 que não podem ter downtime (RAC, Data Guard)
- Dados sensíveis: Aplicações que precisam de criptografia avançada, auditoria e compliance rigoroso
Exercício 3: Fluxo de Conexão
Ordene os passos do processo de conexão de um cliente ao Oracle Database:
- A) Server process executa SQL e retorna resultado
- B) Cliente envia requisição SQL na porta 1521
- C) Listener cria/direciona para um server process
- D) Aplicação cliente inicia conexão
- E) Listener recebe a conexão
Ver Solução
Ordem Correta:
D → B → E → C → A
- Aplicação cliente inicia conexão
- Cliente envia requisição SQL na porta 1521
- Listener recebe a conexão
- Listener cria/direciona para um server process
- Server process executa SQL e retorna resultado