O que é uma base de dados relacional?
Trata-se de uma base de dados que armazena e fornece um ponto de acesso aos dados entre si. Desta forma, estes últimos são interligados através de tabelas: daí se falar de modelo relacional.

Definição de uma base de dados relacional
O sistema de gestão de bases de dados relacionais (SGBDR) constitui um modelo maioritário no mercado. Muitos serviços web ou aplicações profissionais funcionam por meio deste tipo de bases de dados, a fim de estruturar e retirar informações essenciais dos dados. Algumas grandes empresas da cloud desenvolveram os seus próprios modelos (por exemplo, o Db2, pertencente à IBM; o Oracle Database; e o Microsoft SQL Server). No entanto, muitos projetos SGBDR são open source:
- o MySQL é o sistema mais utilizado em todo o mundo. Apesar de ter sido adquirido pela Oracle em 2009, inicialmente era um projeto gratuito e de utilização livre. Em reação à aquisição, os programadores criaram o seu sucessor, igualmente em open source: o MariaDB;
- o PostgreSQL é também uma solução de acesso livre. Uma equipa de programadores independentes assegura o seu desenvolvimento. Já o seu funcionamento difere ligeiramente do MySQL, pois é um modelo relacional de objetos (SGBDRO);
- o SQLite é uma biblioteca pública com a particularidade de estar alojada diretamente num programa, e não no modo cliente-servidor.
O acrónimo SQL corresponde à linguagem do mesmo nome: Structured Query Language. Constitui a interface padrão para uma base de dados relacional. As suas instruções são utilizadas para estruturar os dados e organizar a informação que deles se pretende extrair.
Arquitetura da base de dados relacional
A organização destas bases de dados baseia-se no teorema demonstrado por Edgar F. Codd em 1971: o modelo relacional. Segundo ele, qualquer pedido «natural» pode traduzir-se em álgebra relacional e, portanto, numa linguagem de pedido inteligível por um computador (através do SQL). Neste modelo, uma relação (ou uma tabela) é constituída por vários atributos organizados em várias linhas e colunas, chamadas tuplas. Toda a tabela é vista como um conjunto de tuplas. Tomemos um exemplo:

Cada elemento da relação está associado a um tipo de dados (valor) através de um esquema de relação como se segue:
Relação = (Atributo1: Tipo1, Atributo2: Tipo2, ..., AtributoN: TipoN)
Assim, podemos definir um elemento preciso e atribuir-lhe os dados do valor de uma tupla para constituir a tabela. Ora, uma base de dados relacional não passa de um conjunto de tabelas diferentes relacionadas entre si.
Como funciona uma base de dados relacional?
Para administrar a base de dados, os utilizadores comunicam com a interface de gestão através de uma linguagem: o SQL. Este último baseia-se na álgebra relacional. Todos os comandos são explicitados em SQL e detalham cada etapa de desenvolvimento da base de dados. Esta linguagem permite selecionar informações específicas, indicar a sua localização na base de dados, fazer com que interajam, etc.
No entanto, devem ser consideradas algumas especificidades.
As chaves
Trata-se de um conjunto de atributos que permite identificar um conjunto preciso de dados. Por exemplo, no caso da tabela anterior: A1 + A2 pode definir os clientes que compraram um novo automóvel no segundo semestre, sendo que A1 define a compra do veículo e A2 o período de compra. Contudo, nenhum dos atributos selecionados pode ter um valor nulo. Caso contrário, o conjunto não tem uma existência real. Cada tabela possui uma chave primária que pode ser exportada para outra tabela (como chave estrangeira) de modo a ligar conjuntos de dados.
Porém, quando duas tabelas estão ligadas por chaves estrangeiras, só podem responder a um único pedido. Para determinar informações que envolvem várias tabelas, é preciso utilizar uma função JOIN.
JOIN
Consiste numa operação que permite interrogar várias tabelas em simultâneo. Os dados selecionados são recolhidos e filtrados em função das condições definidas pelo utilizador.
A função SQL JOIN constitui um elemento essencial nas bases de dados multitabelas, a fim de gerar informações exploráveis e qualitativas.
Há três tipos de JOIN importantes:
- INNER JOIN;
- OUTER JOIN;
- SELF JOIN.
Raramente se estudam tabelas de dados separadamente. Em geral, interessa-nos um conjunto de dados com um significado preciso, dividido por diferentes tabelas. Para tal, os dados devem ser normalizados previamente.
Normalização
Interrogar várias tabelas ao mesmo tempo implicaria logicamente a emissão de vários pedidos para as diferentes tabelas, de modo a extrair os dados. Contudo, esta operação requer tempo, é pouco prática e pode criar duplicações. Tal processo é passível de alterar o tratamento dos dados.
É aqui que entra a normalização. Tratar os dados por relações interrogando os conjuntos de dados ligados pelas chaves estrangeiras permite efetuar um pedido único.
Diferenciação quanto a outros modelos de bases de dados
Nem todas as bases de dados se baseiam neste modelo de tabelas. Podem inspirar-se nele, mas possuem especificidades próprias. Nos anos 80 surge o modelo «orientado para o objeto», reinventando a forma como se armazenam as informações. Nos anos 2000 surge o modelo «NoSQL», que põe em causa o modelo relacional das bases de dados. O objetivo era desenvolver bases de dados mais práticas para análises avançadas, como o Big Data. Todos estes modelos têm as suas características e vantagens.
Base de dados orientada para o objeto
Permite o armazenamento dos dados sob a forma de objetos. Por «objeto» entende-se um grupo de dados no qual se define uma interface para aceder a essas informações.
O sistema SGBDO atribui automaticamente um identificador (ID) a cada objeto, permitindo o acesso através de diferentes métodos. A principal diferença quanto à base de dados relacional reside na possibilidade de atribuir um ID diferente a dois objetos distintos dotados dos mesmos valores. Ao contrário de uma tupla, que só pode ser identificada por um valor.
Também possui uma linguagem própria: o OQL (Object Query Language).
Base de dados orientada para documentos
O armazenamento nestas bases de dados difere totalmente do modelo relacional. De facto, baseia-se em dados heterogéneos de documentos tratados individualmente (e não em tabelas). Isto pode ir do documento de texto em JSON, YAML ou XML a dados não estruturados como ficheiros de imagem, vídeo ou áudio.
Estes documentos são registados em combinações chave/valor. Atenção: aqui, o termo «chave» é idêntico ao de um atributo. Portanto, não tem nada a ver com as chaves da base de dados relacional.
Vários documentos podem ser agrupados para formar coleções, permitindo assim a sua classificação. Os pedidos para manipular a base de dados orientada para documentos apresentam-se sob a forma de funções, por exemplo, em JavaScript. Esta base de dados é, por conseguinte, particularmente adequada para a gestão de grandes quantidades de informações.
Vantagens e desvantagens das bases de dados relacionais
Embora se tenham largamente difundido, as bases de dados relacionais não deixam de apresentar limites. O que faz a sua força também pode ser a sua fraqueza com certos tipos de dados (grandes volumes, multimédia, objetos, etc.).
Vantagens
- O modelo de tabelas: é bastante simples de implementar. Permite destacar, fácil e rapidamente, dados de clientes ou stocks.
- Redundância reduzida de dados: graças à normalização, evita-se falsear as informações exploradas graças à base de dados, ganhando-se coerência.
- Tratamento dos dados quantitativos: permite associar valores aos atributos.
- Linguagem de pedido padronizado (SQL): as aplicações podem ser desenvolvidas e executadas em vários projetos web com maior compatibilidade.
Desvantagens
- Nem todos os dados podem ser exibidos em tabelas: os dados abstratos e os dados não estruturados não podem funcionar com uma base de dados relacional.
- Os dados não podem ser hierarquizados: ao contrário das bases de dados orientadas para objetos. Assim, não é possível especificar as análises com subtuplas ou classes de tuplas, por exemplo.
- A segmentação dos dados: resultante da normalização, espalha os espaços de armazenamento dos dados. Isto acarreta pedidos complexos em várias tabelas ao nível da aplicação. Este grande número de pedidos simultâneos em várias tabelas reduz o desempenho das análises e aumenta o tempo de cálculo.
Em geral, são as bases de dados mais populares do mundo. No entanto, não são adaptadas a dados heterogéneos ou a certos casos de uso, como o Big Data.
As bases de dados relacionais na OVHcloud
Oferecemos uma vasta gama de bases de dados. Entre elas, tem à sua disposição dois modelos relacionais:
- MySQL: líder das bases de dados relacionais. Pode adquiri-la em modo «gerido», o que o poupa à gestão e à monitorização da base de dados.
- PostgreSQL: modelo de base de dados relacional capaz de tratar grandes cargas de trabalho. Também está disponível em modo «gerido».
- Também oferecemos bases de dados SQL privadas (como o MariaDB) para os seus alojamentos web.
Consulte o conjunto das nossas bases de dados geridas, pensadas para facilitar a gestão dos seus dados com toda a segurança. Todas estas bases de dados estão alojadas nos nossos datacenters e beneficiam de normas de segurança rigorosas. Assim, garantimos a soberania e a confidencialidade dos seus dados.