| title | Banco de dados |
|---|---|
| layout | default |
- 1.1 Modelos de Dados
- 1.2 Estrutura
- 1.3 Arquiteturas
- 2.1 Visão geral
- 2.2 Linguagens
- 3.1 Principais operações em SQL
- 3.2 Filtros e operadores
- 3.3 Relacionamentos
- 3.4 Normalização
É uma coleção organizada de dados, tipicamente armazenados e acessíveis eletronicamente.
Sua importância está relacionada à facilidade de organização das informações, ao suporte à tomada de decisões com base em dados e à eficiência e escalabilidade nas operações de negócio.
| Modelo | Organização dos Dados |
|---|---|
| Hierárquico | Estrutura em árvore |
| Rede | Estrutura em grafos |
| Relacional | Estrutura em tabelas |
É um modelo de dados que organiza as informações em tabelas (relações). Os principais elementos onde as informações são armazenadas são:
- Tabelas -> Estrutura que armazena os dados
- Linhas (registros) -> Cada linha representa um registro da tabela
- Colunas (atributos) -> Cada coluna representa uma característica do dado
A estrutura de um banco de dados relacional inclui:
- Chave primária (Primary Key) -> Coluna ou conjunto de colunas que identifica de forma única cada registro em uma tabela.
- Chave estrangeira (Foreign Key) -> Coluna que cria uma relação entre duas tabelas diferentes, referenciando a chave primária de outra tabela.
- Índice (Index) -> Estrutura utilizada para melhorar a velocidade das consultas realizadas na tabela.
- Esquema (Schema) -> É a estrutura lógica de um banco de dados que define como os dados são organizados e como eles se relacionam.
- Monolítica -> Todos os dados e serviços estão centralizados em um único sistema.
- Cliente-Servidor -> Os dados ficam armazenados em servidores e são acessados por aplicações clientes.
- Distribuída -> Os dados são armazenados em múltiplos sistemas interconectados.
É um software responsável pela criação, gerenciamento e manipulação das informações armazenadas em um banco de dados.
Entre suas principais funções estão:
- Controle de concorrência (gerenciamento de múltiplos acessos simultâneos ao banco)
- Recuperação de falhas
- Segurança dos dados
- Garantia da integridade das informações
Alguns dos SGBDs mais populares são:
- MySQL
- PostgreSQL
- Oracle
- SQL Server
- MySQL – Open Source e amplamente utilizado em aplicações web.
- PostgreSQL – Suporte a tipos de dados complexos e grande extensibilidade.
- Oracle – Alta performance e segurança, muito utilizado em grandes empresas.
- SQL Server – Sistema da Microsoft integrado a diversas ferramentas corporativas.
As principais linguagens utilizadas em bancos de dados são:
-
DDL (Data Definition Language) -> Utilizada para criar e modificar a estrutura do banco de dados.
Exemplos:
- CREATE
- ALTER
- DROP
-
DML (Data Manipulation Language) -> Utilizada para manipular os dados armazenados.
Exemplos:
- INSERT
- UPDATE
- DELETE
- SELECT
- MySQL Workbench -> Ferramenta gráfica (GUI) utilizada para modelagem de banco de dados, desenvolvimento de consultas SQL e administração de servidores.
- INSERT – Inserir dados
- SELECT – Consultar dados
- UPDATE – Atualizar dados
- DELETE – Remover dados
- WHERE
SELECT * FROM usuarios WHERE idade > 18;- AND / OR
SELECT * FROM usuarios WHERE idade > 18 AND nome = 'Miguel';- LIKE
SELECT * FROM usuarios WHERE nome LIKE 'M%';Relacionamentos definem como tabelas se conectam. É aqui que o banco deixa de ser “ilhas de dados” e vira uma rede inteligente.
Tipos principais
1:1 (Um para um)
- Um registro em uma tabela se relaciona com apenas um em outra
- Ex: Usuário ↔ Perfil
1:N (Um para muitos)
- Um registro pode se relacionar com vários outros
- Ex: Usuário → Pedidos
N:N (Muitos para muitos)
- Vários registros se relacionam com vários outros
- Ex: Alunos ↔ Cursos
- Necessita de uma tabela intermediária (tabela associativa)
Exemplo de tabela intermediária: Tabela: aluno_curso
|aluno_id | curso_id |1 | 2| |1 | 3|
Chaves:
As chaves são os elementos que garantem organização, identificação e relacionamento dentro do banco de dados.
Chave Primária (Primary Key)
É a coluna (ou conjunto de colunas) que identifica unicamente cada registro de uma tabela.
Características:
- Não pode se repetir
- Não pode ser nula (NULL)
- Cada tabela deve ter apenas uma chave primária
Exemplo:
CREATE TABLE usuarios (
id INT PRIMARY KEY,
nome VARCHAR(100)
);Aqui, o id funciona como o “CPF” do registro
Chave Estrangeira (Foreign Key)
É a coluna que cria uma ligação entre duas tabelas. Ela aponta para a chave primária de outra tabela.
Exemplo:
CREATE TABLE pedidos (
id INT PRIMARY KEY,
usuario_id INT,
FOREIGN KEY (usuario_id) REFERENCES usuarios(id)
);Características:
- usuario_id guarda o ID do usuário
- Ele conecta pedido → usuário
Sem chave estrangeira:
- Você pode ter pedidos sem usuário
Com chave estrangeira:
- O banco garante integridade
Integridade Referencial
É a regra que garante que os dados estão corretamente conectados.
Exemplo:
- Não pode existir um usuario_id = 99 se o usuário 99 não existe
O banco bloqueia esse erro automaticamente
Ações com FOREIGN KEY
Você pode definir o que acontece quando um dado relacionado é alterado:
FOREIGN KEY (usuario_id) REFERENCES usuarios(id)
ON DELETE CASCADETipos comuns:
- CASCADE → apaga tudo relacionado
- SET NULL → deixa o valor nulo
- RESTRICT → impede exclusão
Chave Composta
É quando usamos mais de uma coluna como chave primária.
Exemplo:
CREATE TABLE aluno_curso (
aluno_id INT,
curso_id INT,
PRIMARY KEY (aluno_id, curso_id)
);Aqui, a combinação dos dois IDs é única
Resumão das chaves
- Primary Key → identifica
- Foreign Key → conecta
- Integridade → protege os dados
JOIN (juntar tabelas) É o coração dos relacionamentos. Permite consultar dados de várias tabelas ao mesmo tempo.
INNER JOIN (interseção)
SELECT usuarios.nome, pedidos.id
FROM usuarios
INNER JOIN pedidos ON usuarios.id = pedidos.usuario_id;Retorna apenas quem tem correspondência nas duas tabelas
LEFT JOIN (tudo da esquerda)
SELECT usuarios.nome, pedidos.id
FROM usuarios
LEFT JOIN pedidos ON usuarios.id = pedidos.usuario_id;Retorna todos os usuários, mesmo sem pedidos
Normalizar é organizar os dados para evitar repetição e inconsistência.
Objetivos:
- Evitar dados duplicados
- Melhorar organização
- Facilitar manutenção
Exemplo ruim:
|nome | curso| |Miguel| ADS| |Miguel| SI|
Melhor:
- tabela alunos
- tabela cursos
- tabela relacionamento
🦉 Este material faz parte do projeto Arthemis, com foco em aprendizado colaborativo para alunos do Senac.