1.4. Conceitos do Modelo Relacional

O modelo de dados relacional, introduzido por Codd em 1970 [12], representa um banco de dados como uma coleção de relações, que informalmente, podem ser chamadas de tabelas. Uma tabela é um conjunto de elementos de dados particionados em linhas (horizontal) e colunas (vertical). As linhas também são chamadas de tuplas. Uma tabela possui um número fixo de colunas, e os valores das linhas ao longo dessas colunas (células) devem respeitar o conjunto de valores pertencentes ao tipo de dados definido na especificação da coluna. O termo esquema de uma tabela refere-se à estrutura da tabela, isto é, o seu nome, o nome das colunas e os tipos de dados definidos como domínio dos valores nas colunas. A Figura 1.7 ilustra uma tabela denominada unidades_federativas.

Coleção de Feições (Feature Collection)

Figura 1.7 - Coleção de Feições (Feature Collection).

Na tabela acima, o esquema denominado unidades_federativas possui o seguinte conjunto de colunas:

  • ufid: código do IBGE, um número inteiro usado para identificar as unidades federativas.

  • nome: nome da unidade federativa, uma string.

  • populacao: total da população da unidade federativa, um número inteiro.

  • e_vida: expectativa de vida, um número real.

  • fronteira: limite da unidade federativa, representada por um tipo geométrico (ex: MultiPolygon).

O cálculo relacional e a álgebra relacional introduzidos pelo trabalho de Codd [12] possibilitaram a criação de uma linguagem declarativa de alto nível e de domínio específico, usada para gerenciamento de dados, denominada Structured Query Language ou SQL [13]. A linguagem SQL é padronizada pela ISO e encontra-se presente em todos os sistemas gerenciadores de bancos de dados relacionais e objetos relacionais. A SQL possui comandos de definição de dados, como o comando CREATE TABLE, usado para criação de tabelas, e comandos de manipulação de dados, como o comando INSERT, para inserção de valores nas tabelas, e o comando SELECT, para recuperação de valores das tabelas. Nas próximas seções iremos conhecer os tipos de dados disponíveis no PostgreSQL para definição das colunas das tabelas e os principais comandos SQL para manipulação de dados.