Fundamentos de Bancos de Dados Relacionais e SQL

  1. 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.

  1. 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%';
  1. 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.

Tags: MySQL SQL Banco de Dados Relacional InnoDB MyISAM

Publicado em 6-2 16:40 por Thomas