No artigo anterior vimos o que é um conjunto e como definir seus elementos com precisão. Agora damos um passo a mais: vamos aprender a operar sobre conjuntos — combiná-los, encontrar o que têm em comum, subtrair um do outro — e a visualizá-los com os diagramas de Venn.
Essas operações aparecem em toda parte: em consultas escritas em SQL
(Structured Query Language), em filtros de dados e em lógica de programação.
Por exemplo, um predicado como WHERE a IN (SELECT ...) AND b NOT IN (...)
já combina inclusão e exclusão de conjuntos. Entender a álgebra dos conjuntos
é entender a estrutura por trás de boa parte do raciocínio lógico em
computação.
Leitura prática em bancos e busca
Em bancos relacionais, UNION, INTERSECT e EXCEPT correspondem,
respectivamente, à união, à interseção e à diferença (veja a
documentação do PostgreSQL
sobre esses operadores). Em motores de busca,
OR amplia o conjunto de resultados, AND o restringe e a exclusão com -
remove os termos indesejados.
O Conjunto Universo e os Diagramas de Venn #
O conjunto universo \(U\) é o conjunto que contém todos os objetos relevantes no contexto de um problema. Cada conjunto do problema é um subconjunto de \(U\).
Quando escrevemos \(A = \{x \in \mathbb{N} \mid x \leq 50\}\), estamos dizendo que \(U = \mathbb{N}\) e selecionamos dentro de \(U\) apenas os elementos que satisfazem a propriedade. A explicitação do universo evita ambiguidades.
Diagramas de Venn são a representação geométrica dessa ideia:
- O universo \(U\) é representado pelo retângulo externo
- Cada subconjunto é representado por uma região circular dentro do retângulo
- A posição relativa dos círculos indica as relações entre os conjuntos
A figura abaixo mostra o caso mais elementar: \(A \subset U\). O círculo de \(A\) está inteiramente dentro do retângulo \(U\) — todo elemento de \(A\) pertence a \(U\), mas \(U\) contém elementos fora de \(A\).

Os diagramas recebem esse nome em homenagem ao matemático inglês John Venn (1834–1923), que os introduziu em 1880.
Mais de um século antes de Venn, Leonhard Euler já usava círculos para representar relações entre classes, nas Cartas a uma princesa alemã, escritas entre 1760 e 1762 e publicadas em 1768. Os dois desenhos seguem regras diferentes:
- Um diagrama de Euler mostra apenas as regiões que podem ter elementos. Se \(A \subset U\), o círculo de \(A\) fica dentro do retângulo; se dois conjuntos são disjuntos, seus círculos nem se tocam.
- Um diagrama de Venn, no sentido estrito, desenha todas as combinações de pertinência — \(2^2 = 4\) regiões para dois conjuntos, \(2^3 = 8\) para três —, inclusive as vazias. O que se sabe sobre cada região é indicado sombreando-a ou marcando-a.
No uso corrente, até em livros de matemática, “diagrama de Venn” virou o nome de qualquer desenho desse tipo, e é nesse sentido amplo que este artigo usa o termo. A rigor, a figura acima e as figuras de inclusão e de conjuntos disjuntos ao longo do texto são diagramas de Euler.
A figura abaixo é um diagrama de Venn no sentido estrito, para três conjuntos. As oito regiões aparecem sempre, mesmo que alguma esteja vazia, e cada uma corresponde a uma combinação de pertinência a \(A\), \(B\) e \(C\); a cor indica em quantos dos três conjuntos a região está. Essa numeração volta no Exercício 3 e no próximo artigo, ao contarmos os elementos de uma união de três conjuntos.

Exemplo: inclusão em diagrama
Considere \(U = \mathbb{N}\), \(A = \{x \in \mathbb{N} \mid 10 \leq x \leq 100\}\) e \(B = \{x \in \mathbb{N} \mid 15 \leq x \leq 50\}\).
Como todo elemento de \(B\) também pertence a \(A\), temos \(B \subset A \subset U\). Em um diagrama de Venn, o círculo de \(B\) fica inteiramente dentro do círculo de \(A\), que por sua vez está dentro do retângulo \(U\):

As Quatro Operações Fundamentais #
União, interseção, diferença e complemento são as operações básicas da álgebra dos conjuntos (em inglês, veja o verbete Set operations (Boolean)). Para cada uma, veremos a definição, o diagrama, exemplos e a correspondência em SQL.
União #
A união de \(A\) e \(B\) reúne todos os elementos que pertencem a pelo menos um dos dois conjuntos:
$$A \cup B = \{x \in U \mid x \in A\ \text{ou}\ x \in B\}$$No diagrama de Venn, a união corresponde a toda a área coberta pelos dois círculos.

Exemplo com elementos
Se \(A = \{1,2,3,4,5,6\}\) e \(B = \{5,6,7,8,9\}\), então os elementos \(5\) e \(6\) ficam na interseção \(A \cap B\), enquanto \(1,2,3,4\) ficam apenas em \(A\) e \(7,8,9\) apenas em \(B\). A união junta todas essas regiões, resultando em:
$$A \cup B = \{1,2,3,4,5,6,7,8,9\}$$
Exemplo sem interseção (conjuntos disjuntos)
Se \(A = \{1,2,3\}\) e \(B = \{7,8,9\}\), então \(A \cap B = \emptyset\): os círculos ficam isolados no universo \(U\), sem sobreposição. Ainda assim, a união é formada por todos os elementos que estão em \(A\) ou em \(B\):
$$A \cup B = \{1,2,3,7,8,9\}$$
Propriedades:
| Propriedade | Enunciado |
|---|---|
| Idempotência | \(A \cup A = A\) |
| Elemento neutro | \(A \cup \emptyset = A\) |
| Absorção pelo universo | \(A \cup U = U\) |
| Comutatividade | \(A \cup B = B \cup A\) |
| Associatividade | \((A \cup B) \cup C = A \cup (B \cup C)\) |
| Inclusão na união | \(A \subseteq A \cup B\) |
| Equivalência (característica) | \(A \subseteq B \iff A \cup B = B\) |
Caso particular: se \(W \subseteq Z\), então \(Z \cup W = Z\).
Exemplo aplicado (altura mínima)
Considere, em um universo \(U\) de pessoas medidas:
$$Z = \{x \in U \mid \text{altura}(x) \geq 1{,}75\text{ m}\}$$$$W = \{x \in U \mid \text{altura}(x) \geq 1{,}90\text{ m}\}$$
Todo elemento de \(W\) também pertence a \(Z\), então \(W \subseteq Z\). Logo:
$$Z \cup W = Z$$
Aplicação em SQL
Em SQL, a união corresponde ao operador UNION, que combina os resultados de
duas consultas eliminando duplicatas. A consulta abaixo retorna todos os
clientes de SP ou do RJ — exatamente \(A \cup B\):
SELECT id FROM clientes WHERE estado = 'SP'
UNION
SELECT id FROM clientes WHERE estado = 'RJ'Interseção #
A interseção de \(A\) e \(B\) reúne apenas os elementos que pertencem a ambos simultaneamente:
$$A \cap B = \{x \in U \mid x \in A\ \text{e}\ x \in B\}$$No diagrama de Venn, a interseção é a área de sobreposição dos dois círculos.

Exemplo com elementos
Se \(A = \{1,2,3,4,5,6\}\) e \(B = \{5,6,7,8,9\}\), apenas os elementos comuns aos dois conjuntos entram na interseção:
$$A \cap B = \{5,6\}$$
Exemplo sem interseção (conjuntos disjuntos)
Se \(A = \{1,2,3\}\) e \(B = \{7,8,9\}\), os conjuntos não compartilham elementos, então:
$$A \cap B = \emptyset$$
Propriedades:
| Propriedade | Enunciado |
|---|---|
| Idempotência | \(A \cap A = A\) |
| Interseção com vazio | \(A \cap \emptyset = \emptyset\) |
| Interseção com universo | \(A \cap U = A\) |
| Comutatividade | \(A \cap B = B \cap A\) |
| Inclusão da interseção | \(A \cap B \subseteq A\) |
| Equivalência (característica) | \(A \subseteq B \iff A \cap B = A\) |
\(A\) e \(B\) são disjuntos quando \(A \cap B = \emptyset\): não compartilham nenhum elemento.
Caso particular: se \(W \subseteq Z\), então \(Z \cap W = W\).
Exemplo aplicado (altura mínima)
Considere, em um universo \(U\) de pessoas medidas:
$$Z = \{x \in U \mid \text{altura}(x) \geq 1{,}75\text{ m}\}$$$$W = \{x \in U \mid \text{altura}(x) \geq 1{,}90\text{ m}\}$$
Como \(W \subseteq Z\), todo elemento de \(W\) já está em \(Z\). Portanto:
$$Z \cap W = W$$
Aplicação em SQL
A interseção corresponde ao operador INTERSECT. A consulta abaixo retorna
apenas os clientes que compraram tanto em janeiro quanto em fevereiro
— exatamente \(A \cap B\):
SELECT cliente_id FROM vendas WHERE mes = 1
INTERSECT
SELECT cliente_id FROM vendas WHERE mes = 2Diferença #
A diferença \(A - B\) (lê-se “\(A\) menos \(B\)”) contém os elementos de \(A\) que não estão em \(B\):
$$A - B = \{x \in U \mid x \in A\ \text{e}\ x \notin B\}$$No diagrama de Venn, é a parte de \(A\) que não se sobrepõe a \(B\). Note que a operação não é comutativa: \(A - B \neq B - A\) em geral.
Na literatura, essa operação também aparece como complemento relativo de \(B\) em \(A\).

Exemplo com elementos (dois sentidos)
Se \(A = \{1,2,3,4,5,6\}\) e \(B = \{5,6,7,8,9\}\):
$$A - B = \{1,2,3,4\}$$$$B - A = \{7,8,9\}$$


Exemplo sem interseção (conjuntos disjuntos)
Se \(A = \{1,2,3\}\) e \(B = \{7,8,9\}\), então \(A \cap B = \emptyset\), e:
$$A - B = \{1,2,3\} = A$$$$B - A = \{7,8,9\} = B$$
Quando os conjuntos são disjuntos, o subtraendo não remove nenhum elemento do minuendo, então a diferença é sempre igual ao próprio minuendo (o lado esquerdo da operação): \(A - B = A\) e \(B - A = B\). Nos diagramas, a região destacada é o círculo inteiro do minuendo:


Propriedades:
| Propriedade | Enunciado |
|---|---|
| Diferença consigo mesmo | \(A - A = \emptyset\) |
| Retirar o vazio | \(A - \emptyset = A\) |
| Vazio como minuendo | \(\emptyset - A = \emptyset\) |
| Equivalência (característica) | \(A \subseteq B \iff A - B = \emptyset\) |
| Inclusão da diferença | \(A - B \subseteq A\) |
Relação útil: \(A - B = A \cap \bar{B}\) (veremos o complemento a seguir).
Se \(W \subseteq Z\), então \(W - Z = \emptyset\).
Exemplo aplicado (altura mínima, dois sentidos)
Considere, em um universo \(U\) de pessoas medidas:
$$Z = \{x \in U \mid \text{altura}(x) \geq 1{,}75\text{ m}\}$$$$W = \{x \in U \mid \text{altura}(x) \geq 1{,}90\text{ m}\}$$
Como \(W \subseteq Z\), temos:
$$Z - W = \{x \in U \mid 1{,}75 \leq \text{altura}(x) < 1{,}90\}$$$$W - Z = \emptyset$$


Aplicação em SQL
A diferença corresponde ao operador EXCEPT. Um uso clássico é identificar
registros presentes em uma tabela mas ausentes em outra — por exemplo,
usuários que se cadastraram mas ainda não realizaram nenhuma compra
(\(A - B\)):
SELECT id FROM usuarios
EXCEPT
SELECT DISTINCT usuario_id FROM pedidosCombinando as duas direções da diferença — \(A - B\) e \(B - A\) — obtemos a diferença simétrica, que retém apenas os elementos exclusivos de cada conjunto. Exploramos essa operação no Exercício 2.
Complemento #
O complemento de \(A\) em relação a \(U\) é tudo que está em \(U\) mas não está em \(A\):
$$\bar{A} = U - A = \{x \in U \mid x \notin A\}$$No diagrama de Venn, o complemento é toda a área do retângulo que fica fora do círculo de \(A\):

Propriedades:
| Propriedade | Enunciado |
|---|---|
| Involução | \(\overline{\bar{A}} = A\) |
| Complementaridade | \(A \cup \bar{A} = U\) |
| Disjunção | \(A \cap \bar{A} = \emptyset\) |
| Complemento do universo | \(\bar{U} = \emptyset\) |
| Complemento do vazio | \(\bar{\emptyset} = U\) |
Exemplos de complemento
- \(U = \mathbb{N}\), \(A = \{x \in \mathbb{N} \mid x \leq 50\}\) → \(\bar{A} = \{x \in \mathbb{N} \mid x > 50\}\)
- \(U = \mathbb{Z}\), \(A = \{x \in \mathbb{Z} \mid x > 2\}\) → \(\bar{A} = \{\ldots, -2, -1, 0, 1, 2\}\)
- \(U = \mathbb{N}\), \(A = \{x \in \mathbb{N} \mid x > 2\}\) → \(\bar{A} = \{1, 2\}\)
Aplicação em SQL
O complemento aparece sempre que se exclui um subconjunto do universo. A consulta abaixo retorna todos os usuários sem assinatura ativa — o complemento do conjunto dos assinantes:
SELECT id FROM usuarios
WHERE id NOT IN (SELECT usuario_id FROM assinaturas WHERE ativa = TRUE)Identidades Fundamentais #
Leis de De Morgan #
As leis de De Morgan descrevem como o complemento se distribui sobre a união e a interseção. São fundamentais em lógica e programação — e se você já leu o artigo sobre Álgebra Booleana, já as encontrou no contexto das operações lógicas AND, OR e NOT. Aqui, as identidades são expressas em termos de conjuntos:
$$\overline{A \cup B} = \bar{A} \cap \bar{B}$$$$\overline{A \cap B} = \bar{A} \cup \bar{B}$$Em palavras: o complemento de uma união é a interseção dos complementos;
o complemento de uma interseção é a união dos complementos. Você usa
isso ao negar condições compostas: NOT (A OR B) equivale a NOT A AND NOT B.
Exemplo de refatoração lógica
Imagine uma regra que libera o acesso a quem é admin ou tem a conta ativa e bloqueia todos os demais. Escrita diretamente, a condição de bloqueio é a negação da condição de acesso:
if not (is_admin or is_active):
block_access()Pela Primeira Lei de De Morgan, a mesma condição pode ser reescrita como “não é admin e a conta não está ativa”:
if not is_admin and not is_active:
block_access()As duas formas são logicamente equivalentes. A primeira deixa à vista a regra de acesso que está sendo negada; a segunda lista, uma a uma, as condições que levam ao bloqueio. Qual lê melhor depende de como a regra foi pensada.
As figuras abaixo mostram cada identidade em etapas, separadamente:


Distributividade #
$$A \cap (B \cup C) = (A \cap B) \cup (A \cap C)$$$$A \cup (B \cap C) = (A \cup B) \cap (A \cup C)$$A interseção se distribui sobre a união, e vice-versa — exatamente como a multiplicação se distribui sobre a adição nos números.
As figuras a seguir mostram, em etapas, as duas igualdades de distributividade:


Prova da segunda identidade \(A \cup (B \cap C) = (A \cup B) \cap (A \cup C)\):
Parte 1: Mostremos que \(A \cup (B \cap C) \subseteq (A \cup B) \cap (A \cup C)\).
Seja \(x \in A \cup (B \cap C)\). Então ou \(x \in A\), ou \(x \in B \cap C\) (isto é, \(x \in B\) e \(x \in C\)). Em ambos os casos, \(x \in A \cup B\) e \(x \in A \cup C\) simultaneamente. Logo \(x \in (A \cup B) \cap (A \cup C)\). \(\square\)
Parte 2: Mostremos a inclusão contrária.
Seja \(x \in (A \cup B) \cap (A \cup C)\). Então \(x \in A \cup B\) e \(x \in A \cup C\). Se \(x \in A\), acabou. Caso contrário, para pertencer a \(A \cup B\) sem estar em \(A\), é preciso \(x \in B\); e para pertencer a \(A \cup C\) sem estar em \(A\), é preciso \(x \in C\). Portanto \(x \in B \cap C\), e então \(x \in A \cup (B \cap C)\). \(\square\)
A primeira identidade — \(A \cap (B \cup C) = (A \cap B) \cup (A \cap C)\) — segue por argumento análogo, trocando os papéis de \(\cup\) e \(\cap\). Tente demonstrá-la como exercício.
Absorção #
$$A \cup (A \cap B) = A \qquad \text{e} \qquad A \cap (A \cup B) = A$$Outras identidades úteis #
$$A - B = A \cap \bar{B}$$Prova: \(x \in A - B\) se e somente se \(x \in A\) e \(x \notin B\), o que equivale a \(x \in A\) e \(x \in \bar{B}\), isto é, \(x \in A \cap \bar{B}\). \(\square\)
Exemplo
Se \(U = \{1,2,3,4,5\}\), \(A = \{1,2,3\}\) e \(B = \{2,3,4\}\), então \(\bar{B} = \{1,5\}\), e:
$$A - B = \{1\} = A \cap \bar{B} = \{1,2,3\} \cap \{1,5\} = \{1\}$$Se \(A \cap B = \emptyset\): \(A - B = A\) e \(B - A = B\).
Tabela-Resumo #
| Propriedade | União | Interseção |
|---|---|---|
| Comutatividade | \(A \cup B = B \cup A\) | \(A \cap B = B \cap A\) |
| Associatividade | \((A \cup B) \cup C = A \cup (B \cup C)\) | \((A \cap B) \cap C = A \cap (B \cap C)\) |
| Distributividade | \(A \cup (B \cap C) = (A \cup B) \cap (A \cup C)\) | \(A \cap (B \cup C) = (A \cap B) \cup (A \cap C)\) |
| De Morgan | \(\overline{A \cup B} = \bar{A} \cap \bar{B}\) | \(\overline{A \cap B} = \bar{A} \cup \bar{B}\) |
| Absorção | \(A \cup (A \cap B) = A\) | \(A \cap (A \cup B) = A\) |
Exercícios #
Exercício 1 — Operações concretas
Sejam \(U = \{0,1,2,3,4\}\), \(A = \{0,4\}\), \(B = \{0,1,2,3\}\), \(C = \{1,4\}\), \(D = \{0,1\}\).
Determine: (a) \(A \cup B\) (b) \(B \cap C\) (c) \(A \cap B\) (d) \(A \cup (B \cap C)\) (e) \((A \cup B) \cap (A \cup C)\)
(f) \(\overline{(A \cap B)} \cup \overline{(A \cap C)}\) (g) \(\overline{A \cup B}\) (h) \(A - B\) (i) \(B - A\) (j) \(A \cup (B \cap C \cap D)\)
Soluções:
(a) \(A \cup B = \{0,1,2,3,4\} = U\)
(b) \(B \cap C = \{1\}\)
(c) \(A \cap B = \{0\}\)
(d) \(A \cup (B \cap C) = \{0,4\} \cup \{1\} = \{0,1,4\}\)
(e) \((A \cup B) \cap (A \cup C) = U \cap \{0,1,4\} = \{0,1,4\}\) — observe que é igual a (d), confirmando a distributividade.
(f) \(\overline{A \cap B} = U - \{0\} = \{1,2,3,4\}\); \(\overline{A \cap C} = U - \{4\} = \{0,1,2,3\}\); logo a união é \(\{0,1,2,3,4\} = U\).
(g) \(A \cup B = U\), portanto \(\overline{A \cup B} = \emptyset\).
(h) \(A - B = \{4\}\) (o 0 está em \(B\), o 4 não)
(i) \(B - A = \{1,2,3\}\)
(j) \(B \cap C \cap D = \{0,1\} \cap \{1\} = \{1\}\) (interseção de \(B\), \(C\) e \(D\)), então \(A \cup \{1\} = \{0,1,4\}\).
Exercício 2 — Diferença simétrica
A diferença simétrica \(A \mathbin{\Delta} B\) é definida como:
$$A \mathbin{\Delta} B := (A - B) \cup (B - A)$$Interprete essa operação geometricamente e determine \(A \mathbin{\Delta} B\) para \(A = \{0,4\}\) e \(B = \{0,1,2,3\}\).
Solução: A diferença simétrica retém os elementos que pertencem a exatamente um dos dois conjuntos — excluindo a interseção. Visualmente, no diagrama de Venn, é a área dos dois círculos excluindo a sobreposição. Em linguagem booleana, isso corresponde ao operador XOR (ou “ou exclusivo”, \(\oplus\)); se quiser rever essa conexão, vale voltar ao artigo sobre Álgebra Booleana.
Uma analogia visual útil: git diff destaca linhas removidas como \(A - B\),
linhas adicionadas como \(B - A\) e, em conjunto, tudo o que mudou como
\(A \mathbin{\Delta} B\). É apenas uma analogia: o diff preserva ordem e
contexto.
\(A - B = \{4\}\), \(B - A = \{1,2,3\}\), portanto \(A \mathbin{\Delta} B = \{1,2,3,4\}\).

Nas soluções a seguir, as cores são meramente ilustrativas para destacar as regiões relevantes em cada caso. É um recurso visual, não uma convenção formal.
Exercício 3 — Diagramas com três conjuntos
Descreva como seria o diagrama de Euler de cada situação — o desenho que mostra apenas as regiões que podem ter elementos:
(i) \(A \subset B \subset C\)
(ii) \(A \cap B = \emptyset\), \(A \cap C = \emptyset\), \(B \cap C = \emptyset\)
(iii) \(A \subseteq B \cup C\)
(iv) \(A \subseteq \bar{B}\)
(v) \(A \subseteq B - C\)
Soluções: as cinco figuras a seguir são diagramas de Euler — cada uma omite as regiões que a condição obriga a ficarem vazias.
(i) Três círculos concêntricos: \(A\) mais interno, \(B\) ao meio, \(C\) mais externo.

(ii) Três círculos completamente disjuntos dentro do retângulo \(U\) — nenhum se toca.

(iii) O círculo de \(A\) está inteiramente dentro da região coberta por \(B \cup C\). Parte de \(A\) pode estar em \(B\), parte em \(C\), parte na interseção — mas nenhuma parte de \(A\) fica fora de \(B \cup C\).

(iv) \(A \subseteq \bar{B}\) significa que nenhum elemento de \(A\) está em \(B\): os círculos de \(A\) e \(B\) são disjuntos.

(v) \(A \subseteq B - C\) significa que \(A\) está na parte de \(B\) que não pertence a \(C\): o círculo de \(A\) está dentro de \(B\) e completamente fora de \(C\).

As mesmas situações em diagramas de Venn. No sentido estrito, as oito regiões de três conjuntos ficam sempre desenhadas, e as que a condição obriga a ficarem vazias aparecem hachuradas na figura abaixo. Em (i), por exemplo, \(A \subset B\) esvazia tudo o que está em \(A\) e fora de \(B\) (regiões 1 e 5), e \(B \subset C\) esvazia tudo o que está em \(B\) e fora de \(C\) (regiões 2 e 4). O hachurado só registra o que precisa estar vazio: o fato de as inclusões serem estritas — haver elemento de \(B\) fora de \(A\) e de \(C\) fora de \(B\) — não aparece no desenho.

Próximos passos #
Com as operações dominadas, o próximo artigo trata de uma pergunta central: quantos elementos tem um conjunto formado a partir de operações? O Princípio da Inclusão-Exclusão responde precisamente isso, e é a porta de entrada para a contagem combinatória.
Até lá!