CREATE TABLE Cliente (
ID_Cliente INT PRIMARY KEY AUTO_INCREMENT,
Nome VARCHAR(100) NOT NULL,
CPF CHAR(11) UNIQUE NOT NULL,
Telefone VARCHAR(15)
);
CREATE TABLE Pedido (
ID_Pedido INT PRIMARY KEY AUTO_INCREMENT,
Data DATE NOT NULL,
Valor DECIMAL(10,2) NOT NULL,
ID_Cliente INT NOT NULL,
FOREIGN KEY (ID_Cliente) REFERENCES Cliente(ID_Cliente)
);
ID_Pedido | Nome_Cliente | Endereço_Cliente | Produto | Quantidade | Preço | |
1 | João Silva | Rua A, 123 | Celular | 1 | 2000 | |
2 | João Silva | Rua A, 123 | Fone | 2 | 300 | |
3 | Maria Lima | Rua B, 456 | Notebook | 1 | 5000 |
ID_Cliente | Nome_Cliente | Endereço_Cliente | |
1 | João Silva | Rua A, 123 | |
2 | Maria Lima | Rua B, 456 |
ID_Pedido | ID_Cliente | Produto | Quantidade | Preço | |
1 | 1 | Celular | 1 | 2000 | |
2 | 1 | Fone | 2 | 300 | |
3 | 2 | Notebook | 1 | 5000 |
START TRANSACTION;
UPDATE contas SET saldo = saldo - 100 WHERE id = 1;
UPDATE contas SET saldo = saldo + 100 WHERE id = 2;
COMMIT; -- Confirma a transação
COMMIT
, um ROLLBACK
pode ser executado para reverter as alterações.ROLLBACK;
Nível de Isolamento | Evita Leitura Suja? | Evita Leitura Não Repetível? | Evita Phantom Read? | |
Read Uncommitted | ❌ Não | ❌ Não | ❌ Não | |
Read Committed | ✅ Sim | ❌ Não | ❌ Não | |
Repeatable Read | ✅ Sim | ✅ Sim | ❌ Não | |
Serializable | ✅ Sim | ✅ Sim | ✅ Sim |
SET TRANSACTION ISOLATION LEVEL SERIALIZABLE;
START TRANSACTION;
-- Operações da transação
COMMIT;
Tipo | Características | Exemplos | |
Bancos de Documentos | Armazenam dados no formato JSON ou BSON, permitindo alta flexibilidade. | MongoDB, CouchDB | |
Bancos Chave-Valor | Estruturados como um dicionário, com pares chave → valor. | Redis, DynamoDB | |
Bancos de Colunas | Organizam dados em colunas em vez de linhas, otimizando consultas analíticas. | Apache Cassandra, HBase | |
Bancos de Grafos | Armazenam relacionamentos entre dados, ideais para redes sociais e análise de conexões. | Neo4j, ArangoDB |