O modelo de dados relacional foi introduzido por Edgar F. Codd em 1970. Esse modelo se mostrou uma grande revolução na área de banco de dados tanto por sua simplicidade quanto por sua base teórica fundamentada em Relações e na teoria de Conjuntos, resultando na Álgebra e cálculo relacional.
No modelo de dados relacional o banco de dados é representado como uma coleção de relações, na qual cada relação é conceitualmente semelhante a uma tabela de valores. Cada relação é formada por tuplas, que são equivalentes a linhas de uma tabela, e também por atributos, equivalentes aos cabeçalhos de uma tabela. Para cada coluna (elemento das tuplas) é necessário especificar quais tipos e estrutura de valores são válidos. Os valores possíveis para cada coluna são representados por um domínio de valores.
Nessa representação, cada linha da tabela corresponde a uma tupla na relação, e cada relação representa uma entidade aluno em particular. Os cabeçalhos da tabela representam os atributos da relação, indicando como interpretar os valores de cada coluna.
As definições dos principais conceitos pertinentes ao modelo de dados relacional são dadas de maneira formal a seguir:
-
Um domínio é um conjunto de valores atômicos, ou seja, valores indivisíveis. Um domínio é composto por uma definição lógica, um tipo de dado e um formato para esses dados. Também é comum atribuir a um domínio um nome, que auxilia na interpretação dos seus valores.
-
Um esquema de relação de grau , denotado por é composto por um nome de relação e uma lista de atributos . Cada atributo é o nome de um papel desempenhado por algum domínio no esquema de relação . Nesse caso o domínio é chamado de domínio de , sendo denotado por . Um esquema de relação é usado para descrever a estrutura de uma relação.
-
Uma relação (ou estado de relação) de um esquema de relação , denotado por , é um conjunto de tuplas tal que cada tupla é uma lista ordenada de valores , no qual cada valor é um elemento de ou um valor especial
NULL
. Note que o estado de relação representa as tuplas em um dado momento no banco de dados, ou seja, o estado é alterado frequentemente através de operações de inserção, atualização e remoção.
Dadas essas definições, é importante fazer algumas observações:
- Como uma relação é um conjunto, as tuplas de uma relação são únicas e sua ordem dentro da relação não importa.
- Como uma tupla é uma lista ordenada, a ordem dos valores dentro de uma tupla importa. Entretanto, é possível definir uma relação de forma a usar um mapeamento ao invés de tuplas, resultando em valores nomeados, eliminando a necessidade de ordenação.
- O modelo relacional é um modelo plano. Ou seja, cada valor em uma tupla é um valor atômico, não é divisível em outros componentes. Dessa forma, atributos compostos ou multivalorados devem ser representados em relações separadas, pois não são valores atômicos.
- Valores
NULL
representam valores de atributos desconhecidos ou não aplicáveis a uma tupla.
Um esquema de banco de dados relacional é um conjunto de esquemas de relação e um conjunto de Restrições de integridade . Da mesma forma, um estado de banco de dados relacional de é um conjunto de estados de relação tal que cada é um estado de e tal que cada estado satisfaz as restrições de integridade especificadas em , ou seja, todos os estados são válidos.