O Modelo Relacional foi proposto em 1970 por Edgar Codd. Esse modelo superou os dois modelos mais usados na época, o modelo de redes e o modelo hierárquico, pelas suas características que o tornavam simples e de fácil entendimento e pela fundamentação teórica através da álgebra relacional, também definida por Codd. Por isso o modelo relacional é o mais usado hoje para a construção de sistemas de gerenciamento de banco de dados.
No modelo relacional, um banco de dados é representado por uma coleção de relações. Cada relação possui um esquema, onde é especificado seu nome, o nome de cada campo ou atributo e o domínio de cada campo. Uma relação por sua vez pode ser vista como uma tabela bidimensional, onde as colunas representam os atributos e as linhas representam as tuplas da relação. Podemos enxergar isso com uma ilustração de uma esquema a seguir:
- Alunos (id-aluno: string, nome: string, idade: integer)
Nesse esquema denominado Alunos existem três campos, o id-aluno no domínio string, o nome no domínio string e o idade no domínio integer. As tuplas representam a instância da relação. Podemos ver um exemplo de instância da relação Alunos a seguir:
- id-aluno nome idade
- 5673 Eduardo 22
- 6576 Artur 24
- 7583 Fernando 19
Os relacionamentos entre as relações aparecem de forma implícita, há um elo na forma de ocorrência de valores comparáveis nos domínios de duas relações.
A álgebra relacional é um formalismo usado para a manipulação de um banco de dados relacional. Ela é composta de oito operações: união, interseção, diferença, produto cartesiano, projeção, restrição, junção e divisão. Essas operações são usadas na SQL, que é uma linguagem desenvolvida para a manipulação de bancos de dados relacionais.
Justamente por descrever um banco de dados através de conceitos matemáticos simples de bem conhecidos, o modelo é de fácil entendimento. Podemos notar facilmente a correspondência entre as terminologias do modelo relacional com a computação: uma relação é um arquivo, uma tupla é um registro evalores de domínios são valores de itens.
Pelos elos entre as relações não serem explícitos, a forma de representar relações como tabelas do modelo relacional não é suficiente para uma implementação eficiente de um SGBD, pois o acesso por relacionamento é convertido em acesso por valor, ou seja, para uma relação a percorreríamos serialmente e para cada tupla tomaríamos o valor no domínio do campo desejado e procuraríamos na relação que esse campo representa uma tupla que possua o mesmo valor do campo.
Outros aspecto é a normalização das relações. Existem várias formas normais definidas para o modelo relacional, e dependendo da forma aplicada uma relação teria seu número de tuplas aumentado ou seria dividida em outras três relações, com uma relação representando o elo entre as outras duas. Isso faz com que o modelo ocupe mais espaço para armazenamento.