- Conceitos Fundamentais de Banco de Dados
1.1 Distinção entre Bancos Relacionais e Não Relacionais
1.2 Estrutura de um Banco de Dados Relacional
Banco de Dados (Database)
É um repositório organizado para armazenar e gerenciar informações. Pode ser comparado a um sistema de pastas no sistema de arquivos.
Tabela (Table)
Unidade fundamental de armazenamento, composta por linhas (registros) e colunas (atributos). Funcionalmente semelhante a uma planilha.
Registro (Record)
Representa uma entrada completa de dados em uma tabela. Exemplo: em uma tabela de pedidos, um registro contém todas as informações de uma transação específica.
Cabeçalho (Header)
Define os nomes das colunas e a estrutura lógica dos dados armazenados.
Formulário (Form)
Interface para entrada, exibição ou manipulação de dados. Embora não faça parte da estrutura física do banco, é essencial para a interação com os dados, mapeando campos para colunas das tabelas.
- Fundamentos da Linguagem SQL
2.1 Convenções de Escrita
SQL não diferencia maiúsculas de minúsculas, mas adotar padrões melhora a legibilidade. Recomenda-se escrever palavras-chave (como SELECT, FROM) em maiúsculas. Nomes de objetos (tabelas, colunas) devem ser minúsculos, podendo ser entre aspas duplas para garantir sensibilidade a maiúsculas. Strings e datas usam aspas simples. Cada instrução é finalizada com ponto e vírgula (;). Comentários de linha usam -- ou #, e comentários de bloco são delimitados por /* ... */.
2.2 Classificação dos Comandos SQL
- Consultas (DQL): Recuperam dados. Exemplo central:
SELECT. - Definição (DDL): Modificam a estrutura do banco. Comandos:
CREATE,ALTER,DROP,TRUNCATE,RENAME. - Manipulação (DML): Alteram os dados. Comandos:
INSERT,UPDATE,DELETE,MERGE. - Controle de Transações (TCL): Gerenciam a atomicidade das operações. Comandos:
COMMIT,ROLLBACK,SAVEPOINT. - Controle de Acesso (DCL): Concedem ou revogam permissões. Comandos:
GRANT,REVOKE. - Outros: Comandos auxiliares como
EXPLAIN,SHOW,USE,BEGIN TRANSACTION.
2.3 Operações Básicas (CRUD)
2.3.1 Geerenciamento de Bancos de Dados
Criar um banco de dados:
CREATE DATABASE IF NOT EXISTS meu_banco DEFAULT CHARSET utf8mb4;
Listar bancos existentes:
SHOW DATABASES LIKE '%comercial%';
Alterar o charset de um banco:
ALTER DATABASE meu_banco CHARACTER SET utf8mb4;
Excluir um banco (cuidado: ação irreversível):
DROP DATABASE IF EXISTS banco_antigo;
2.3.2 Manipulação de Tabelas
Selecionar o banco de trabalho:
USE meu_banco;
Criar uma tabela com restrições:
CREATE TABLE clientes (
cliente_id INT NOT NULL AUTO_INCREMENT,
nome_completo VARCHAR(150) NOT NULL,
email VARCHAR(100) UNIQUE,
data_cadastro DATE DEFAULT (CURRENT_DATE),
saldo DECIMAL(12, 2) CHECK (saldo >= 0),
PRIMARY KEY (cliente_id)
) ENGINE=InnoDB;
Verificar a estrutura de uma tabela:
DESCRIBE clientes;
SHOW CREATE TABLE clientes;
Modificar uma tabela (adicionar coluna):
ALTER TABLE clientes ADD COLUMN telefone VARCHAR(20) AFTER email;
Renomear uma tabela:
ALTER TABLE clientes RENAME TO cadastro_clientes;
Excluir uma tabela:
DROP TABLE IF EXISTS tabela_temporaria;
2.3.3 Manipulação de Registros
Inserir dados:
INSERT INTO cadastro_clientes (nome_completo, email, telefone)
VALUES ('Maria Silva', 'maria@example.com', '+5511999887766'),
('João Souza', 'joao@example.com', '+5521988776655');
Consultar dados:
SELECT nome_completo, email FROM cadastro_clientes WHERE saldo > 1000;
Atualizar dados:
UPDATE cadastro_clientes SET saldo = saldo * 1.1 WHERE cliente_id = 5;
Remover dados:
DELETE FROM cadastro_clientes WHERE email LIKE '%test%';
- Mecanismos de Armazenamento (Storage Engines)
Os mecanismos de armazenamento definem como os dados são gravados, indexados e gerenciados. Eles afetam características como desempenho, integridade transacional e suporte a funcionalidades avançadas.
3.1 Mecanismos Comuns no MySQL
- InnoDB: Padrão a partir do MySQL 5.5. Suporta transações ACID, travamento a nível de linha, chaves estrangeiras e recuperação após falhas.
- MyISAM: Focado em performance de leitura em cargas de trabalho predominantemente de consulta. Oferece alta velocidade de inserção, mas não suporta transações.
- MEMORY: Armazena dados voláteis na RAM. Oferece velocidade extrema, mas os dados são perdidos ao reiniciar o servidor.
- Blackhole: Aceita comandos de escrita, mas descarta os dados. Útil em cenários de teste ou replicação.
3.2 Verificando os Mecanismos Disponíveis
SHOW ENGINES;
3.3 Diferenças na Persistência de Dados
Cada mecanismo gera arquivos diferentes. Por exemplo, uma tabela usando InnoDB tiipcamente resulta em um arquivo .frm (definição) e um arquivo .ibd (dados e índices). O MyISAM separa a definição (.frm), os dados (.MYD) e os índices (.MYI). Tabelas baseadas em MEMORY mantêm apenas a definição em disco (.frm), já que os dados residem na memória volátil.