1.2.2. Valores e NULL nas tuplas

Já falamos anteriormente que cada valor em uma tupla é um valor atômico, ou seja, ele não é divisível em componentes dentro da estrutura básica do modelo relacional. Logo, atributos compostos ou multivalorados (como vetores e objetos) não são permitidos. Esse modelo às vezes é chamado de modelo relacional plano.

Grande parte da teoria por trás do modelo relacional foi desenvolvida com essa suposição em mente, que é chamada pressuposto da primeira forma normal (falaremos sobre normalização em outro momento no nosso curso). Assim, atributos multivalorados precisam ser representados por relações separadas, e os atributos compostos são representados apenas por seus atributos de componentes simples no modelo relacional básico. Como você pode observar, por exemplo, a tabela de histórico escolar apresenta uma linha para cada nota de cada aluno. Não é possível ter na mesma linha todas as notas que ele tirou.

Um conceito importante é o dos valores nulos, que são usados para representar os valores de atributos que podem ser desconhecidos ou não se aplicam a uma tupla. Um valor especial, chamado NULL, é usado nesses casos.

Há uma diferença de semântica SQL entre valor em branco (“”) e valor nulo (NULL). Mesmo que ambos sejam interpretados da mesma forma, eles são diferentes para o controle do SGBD. Ao realizar uma pesquisa no banco de dados é necessário que você inclua ambas possibilidades para localizar esses atributos. Por exemplo, suponha que você tenha uma tabela denominada ALUNO e você queira identificar todos aqueles que não têm uma turma atribuída. A consulta SQL que representa essa consulta é:

SELECT * FROM ALUNO WHERE turma ISNULL OR turma = “”

Observe no exemplo acima que foram utilizadas duas expressões, a ISNULL, para atributos nulos e a “”, para atributos em branco.

Copyright © 2014 AIEC.