Estrutura do Banco de Dados Relacional
O modelo relacional representa os dados como uma coleção de relações — o termo formal para o que chamamos informalmente de tabela.
Relação, Tupla e Atributo
Uma relação é uma tabela composta por linhas e colunas. Cada linha é chamada de tupla e cada coluna é chamada de atributo.
- Tupla: uma linha da tabela; representa um registro individual (por exemplo, os dados de um professor)
- Atributo: uma coluna da tabela; representa uma propriedade das entidades armazenadas (por exemplo,
nomeouch_semanal) - Aridade (arity): o número de atributos de uma relação
A tabela professor da UnDF é um exemplo de relação:
| id_prof | nome | id_escola | ch_semanal | salario |
|---|---|---|---|---|
| 21200001 | Eduarda Souza | 21 | 20 | 3200 |
| 21400002 | Felipe Araujo | 21 | 40 | 6400 |
| 31200001 | Gustavo Costa | 31 | 20 | 3300 |
| 31400002 | Helena Carvalho | 31 | 40 | 6700 |
| 31200003 | Igor Melo | 31 | 20 | 3100 |
| 11400001 | Bruno Teixeira | 11 | 40 | 6500 |
| 11400002 | Carla Pinto | 11 | 40 | 6600 |
Aqui a relação professor tem aridade 5 (cinco atributos) e sete tuplas.
Domínio dos Atributos
Cada atributo tem um domínio — o conjunto de valores permitidos para aquele atributo.
O domínio de um atributo é o conjunto de todos os valores possíveis que esse atributo pode assumir. Exige-se que os valores de cada atributo sejam atômicos, ou seja, indivisíveis.
Exemplos de domínios nos dados da UnDF:
| Atributo | Domínio |
|---|---|
id_prof |
números inteiros positivos |
nome |
cadeias de texto |
id_escola |
{11, 21, 31} |
ch_semanal |
números inteiros positivos |
salario |
números decimais positivos |
A exigência de atomicidade significa que não é permitido armazenar valores compostos ou multivalorados diretamente em um atributo. Por exemplo, não se deve armazenar uma lista de disciplinas em um único campo — isso violaria o modelo relacional.
O Valor Nulo (null)
O valor especial null pertence a todo domínio e indica que o valor de um atributo é desconhecido ou não aplicável.
Por exemplo, se o salário de um professor ainda não foi definido, o atributo salario recebe null. Embora necessário na prática, o null causa complicações em muitas operações (comparações, agregações) e deve ser usado com critério.
Tuplas Não Ordenadas
Uma propriedade fundamental do modelo relacional é que a ordem das tuplas é irrelevante. Uma relação é formalmente um conjunto de tuplas, e conjuntos não têm ordem definida.
A tabela professor apresentada acima poderia igualmente ser exibida com as tuplas em qualquer outra ordem — por nome, por id_escola ou em qualquer sequência aleatória — sem que o conteúdo da relação fosse alterado. Duas apresentações que diferem apenas na ordem das linhas representam a mesma relação.
Da mesma forma, a ordem dos atributos (colunas) também não tem significado formal, embora por convenção sempre usemos uma ordem consistente.
Para Praticar
1. Atomicidade violada. Considere a seguinte proposta de tabela:
| matricula | nome | disciplinas_cursadas |
|---|---|---|
| 2023311001 | Matheus Silva | 3110201, 3110202 |
Por que esse design viola o modelo relacional? Como corrigi-lo?
O atributo disciplinas_cursadas armazena uma lista de valores — não é atômico. O modelo relacional exige atomicidade: cada célula deve conter um único valor indivisível. A solução correta é usar a tabela matricula_disciplina, onde cada par (aluno, disciplina) ocupa uma tupla separada.
2. Duas instâncias, mesma relação? As duas tabelas abaixo representam a mesma relação?
Tabela A:
| id_prof | nome | id_escola |
|---|---|---|
| 31200001 | Gustavo Costa | 31 |
| 11400001 | Bruno Teixeira | 11 |
Tabela B:
| id_escola | nome | id_prof |
|---|---|---|
| 11 | Bruno Teixeira | 11400001 |
| 31 | Gustavo Costa | 31200001 |
Sim. As duas tabelas representam a mesma relação. No modelo relacional, nem a ordem das tuplas nem a ordem dos atributos têm significado formal — uma relação é um conjunto de tuplas, e conjuntos não têm sequência.
3. Aridade do banco. Consulte o schema da UnDF e preencha:
| Tabela | Aridade | Nº de tuplas na amostra |
|---|---|---|
centro |
? | ? |
professor |
? | ? |
prereq |
? | ? |
ministra |
? | ? |
| Tabela | Aridade | Nº de tuplas |
|---|---|---|
centro |
3 | 3 |
professor |
5 | 7 |
prereq |
2 | 16 |
ministra |
7 | 36 |