Unidade C - Modelo Lógico

6.1 MODELO RELACIONAL

O modelo de dados relacional usa o conceito de uma relação matemática, como se fosse uma tabela com valores. Os modelos que antecederam o modelo relacional são os modelos hierárquicos e modelos de rede.

Quando uma relação é usada como uma tabela de valores, cada linha desta relação representa uma coleção de valores de dados relacionados.

Exemplo:

PESSOA
Codigo | Nome | Telefone | Endereço
1 | Maria | 232323 | Av. JK
2 | José | 242424 | Av. JB
3 | Carla | 252525 | Av. JX

No exemplo acima, a linha com o código 1 representa os dados relacionados de uma pessoa que mora na Av. JK, com telefone de número 232323 cujo nome é Maria.

Associando com a unidade 5 (modelo conceitual), onde cada entidade e relacionamento modelava um objeto do mundo real. Na abordagem relacional, cada linha representa dados de uma ocorrência de entidade. No caso acima a entidade PESSOA do modelo conceitual representa a relação no modelo relacional.

O modelo relacional formal chama cada linha de uma tabela de tupla, o cabeçalho da coluna é chamado de atributo e o conjunto ordenado das linhas é denominado de tabela ou relação. E ainda podemos definir o tipo de dado que descreve os valores que podem aparecer nas tabelas como domínios.

| Uma tabela é um conjunto de tuplas, onde cada tupla é uma lista ordenada de valores. |

Para identificar cada tupla e estabelecer relações entre estas o conceito básico é o da chave.

Vamos considerar o que o autor Heuser descreve sobre chave no seu livro Projeto de Banco de Dados . Neste ele considera três tipos de chaves: chave primária, chave alternativa e chave estrangeira.

CHAVE PRIMÁRIA:

Como exposto anteriormente, uma tabela é constituída por uma lista ordenada de valores, ou seja, por tuplas. Como forma de garantir que não aconteça a duplicidade dessas tuplas, utiliza-se o procedimento de inserir nessa tabela uma chave.

A chave funciona como identificadora de uma tupla, garantindo, assim, a regra da unicidade.

A chave que identifica uma tabela é denominada de chave primária, podendo ser composta por um ou mais campos da tabela em questão. A especificação de uma chave define uma restrição de integridade, ou seja, uma regra que garante que a unicidade será obedecida em todos os estados do Banco de Dados.

Exemplo:

ALUNO
Codigo | Nome | Endereco
1 | Maria | Av. JK
2 | José | Av. JB
3 | Pedro | Av. JC

Na tabela acima, o valor de um atributo chave é usado para identificar, unicamente, cada tupla, pois, o atributo “nome de aluno” pode receber um valor igual, ou seja, ter mais de um aluno com o mesmo nome. Se o campo “nome do aluno” for indicado como chave, será garantida a regra da unicidade, contudo, quando há a ocorrência de nomes iguais, apenas um é inserido, no caso o primeiro. Nesse caso, procede-se a criação de um campo, preferencialmente numérico, que fará a identificação da tupla, podendo assim, serem gravados nomes iguais que, entretanto, constituem tuplas diferentes.

Exemplo:

CHAVE ESTRANGEIRA:

Uma chave estrangeira é um atributo ou uma combinação de atributos que aparecem necessariamente como chave primária em outra tabela.

ALUNO
Cd_Aluno | Nome_Aluno | End_Aluno | Cd_Curso
1 | Maria | Av. JK | 3
2 | José | Av. JB | 2
3 | Pedro | Av. JC | 3

CURSO
Cd_Curso | Nome_Curso | Sigla_Curso
1 | Informatica | INF
2 | Quimica | QUI
3 | Biologia | BIO

Nas tabelas acima podemos identificar que o Cd_Curso da relação CURSO é uma chave estrangeira em relação a chave primária da tabela ALUNO. Com esta relação podemos identificar que todo aluno esta relacionado a um curso através de um atributo Cd_Curso.

Por exemplo:

> O aluno José está vinculado ao curso de Química
> O aluno Pedro está vinculado ao curso de Biologia
> A aluna Maria está vinculada ao curso de Biologia

CHAVE ALTERNATIVA:

Quando podemos identificar mais de uma chave em uma tabela, escolhemos uma como chave primária e as demais são consideradas chaves alternativas.

PESSOA
Codigo | Nome | Telefone | CPF
1 | Maria | 232323 | 90909090990
2 | José | 242424 | 808080808080

No exemplo acima, podemos usar tanto o código como o CPF para identificar a unicidade da linha.