Sem resumo de edição
Sem resumo de edição
Linha 6: Linha 6:


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.
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:
As tuplas representam a instância da relação. Podemos ver um exemplo de instância da relação ''Alunos'' a seguir:


{| class="wikitable"
{| class="wikitable"
Linha 19: Linha 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. Por exemplo, o relacionamento entre a relação Alunos e a relação Pesquisa mostrada a seguir se dá pela ocorrência do campo aluno que representa o id-aluno.
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. Por exemplo, o relacionamento entre a relação ''Alunos'' e a relação ''Pesquisa'' mostrada a seguir se dá pela ocorrência do campo ''aluno'' que representa o ''id-aluno''.


:''Pesquisa'' (''orientador:'' string, ''nome-pesquisa:'' string, ''aluno:'' string)
:''Pesquisa'' (''orientador:'' string, ''nome-pesquisa:'' string, ''aluno:'' string)

Edição das 17h30min de 14 de agosto de 2013

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. Por exemplo, o relacionamento entre a relação Alunos e a relação Pesquisa mostrada a seguir se dá pela ocorrência do campo aluno que representa o id-aluno.

Pesquisa (orientador: string, nome-pesquisa: string, aluno: string)
orientador nome-pesquisa aluno
158429 Redes 5673
124379 Banco de Dados 6576
108319 Engenharia de Software 7583

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.

Para a implementação do modelo relacional em um SGBD deve-se adicionar restrições de integridades para evitar informações incorretas no banco. Uma restrição de integridade é uma condição especificada que limita os dados que podem ser armazenados em uma instância. Muitas restrições podem ser impostas em um esquema do banco. As restrições de chave impõe que um certo campo de uma relação é um identificador único para uma tupla. Quando existe um relacionamento entre relações o campo que representa o elo deve possuir uma restrição de chave estrangeira. Algumas restrições gerais também podem ser impostas como um campo que deve possuir valores somente dentro de uma faixa específica.

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.