[go: up one dir, main page]

Saltar para o conteúdo

Lógica ternária

Origem: Wikipédia, a enciclopédia livre.

Lógica ternária (ou lógica trivalente) refere-se a qualquer sistema lógico polivalente em que há três valores verdade indicando , e algum terceiro valor. Em contraste, a forma mais comum de lógica é bivalente (como a lógica booleana) e fornece somente e .

Representação de valores

[editar | editar código-fonte]

Assim como na lógica bivalente, os valores verdade da lógica ternária podem ser representados numericamente usando diversas representações do sistema ternário. Exemplos comuns incluem:

  • 1 para , 2 para e 0 para , ou .[1]
  • 0 para , 1 para e um não-inteiro como # ou ½.[2]
  • −1 para , +1 para e um terceiro valor, o que pode ser simplificado para somente −, + e 0, respectivamente.[3]

Tabela verdade

[editar | editar código-fonte]

Segue abaixo uma tabela verdade mostrando operações lógicas para a lógica de Kleene.

verdadeiro verdadeiro verdadeiro verdadeiro falso
verdadeiro desconhecido verdadeiro desconhecido
verdadeiro falso verdadeiro falso
desconhecido verdadeiro verdadeiro desconhecido desconhecido
desconhecido desconhecido desconhecido desconhecido
desconhecido falso desconhecido falso
falso verdadeiro verdadeiro falso verdadeiro
falso desconhecido desconhecido falso
falso falso falso falso

Na tabela verdade acima, significa um estado contendo ou ou , mas não há conhecimento sobre qual dos dois estados está representado. Algumas operações conseguem ser aplicadas envolvendo sem que haja ambiguidade. Por exemplo, dado que tanto quanto resultam em , também é .

Aplicações de bancos de dados

[editar | editar código-fonte]

A linguagem SQL implementa lógica ternária como uma forma de lidar com o conteúdo nulo de campos de registros, utilizando NULL para representar valores em falta num banco de dados. Se um campo não possui um valor definido, o SQL assume NULL, mas esse valor não é gravado no banco de dados. Entretanto, um valor em falta é diferente dum valor numérico zero (0) ou de uma cadeia de caracteres vazia (""). A comparação com NULL resulta num estado chamado UNKNOWN. Por exemplo, a expressão SQL "Cidade = 'Porto Alegre'" retorna FALSE para um registro contendo "Rio de Janeiro" no campo Cidade, mas retorna UNKNOWN para um registro contendo NULL no mesmo campo.

Usando a lógica ternária, o SQL consegue usar UNKNOWN para resolver expressões booleanas. Considerando a expressão "Cidade = 'Porto Alegre' OR Balanco < 0.0". Essa expressão retorna TRUE para qualquer registro contendo um valor negativo no campo Balanco. A mesma expressão retorna TRUE para qualquer registro contendo "Porto Alegre" no campo Cidade. Já FALSE é retornado somente para um registro contendo explicitamente uma cadeia diferente de "Porto Alegre" e cujo campo Balanco é explicitamente não negativo. Em qualquer outro caso, o retorno é UNKNOWN.

Na linguagem de manipulação de dados do SQL, um retorno TRUE duma expressão inicia uma ação, enquanto UNKNOWN ou FALSE não iniciam ações. Dessa forma a lógica ternária é transformada em binária para o utilizador.

Referências
  1. Brian Hayes. «Third Base» (PDF). American Scientist (em inglês). Sigma Xi, the Scientific Research Society. Consultado em 29 de julho de 2008 
  2. Penguin Books (ed.). The Penguin Dictionary of Mathematics. 1998 2 ed. Londres: [s.n.] 417 páginas 
  3. Knuth, Donald E. Addison-Wesley, ed. The Art of Computer Programming Vol. 2. 1981. [S.l.: s.n.] 190 páginas