Maestría en Bioinformática Bases de Datos y … Lógica proposicional Lógica de predicados...

40
Maestría en Bioinformática Bases de Datos y Sistemas de Información Fundamentos de Lógica Ing. Alfonso Vicente, PMP [email protected]

Transcript of Maestría en Bioinformática Bases de Datos y … Lógica proposicional Lógica de predicados...

Page 1: Maestría en Bioinformática Bases de Datos y … Lógica proposicional Lógica de predicados Conectivos y tablas de verdad Implicancia Equivalencia, tautología, contradicción ...

Maestría en Bioinformática

Bases de Datos y Sistemas de Información

Fundamentos de Lógica

Ing. Alfonso Vicente, PMP [email protected]

Page 2: Maestría en Bioinformática Bases de Datos y … Lógica proposicional Lógica de predicados Conectivos y tablas de verdad Implicancia Equivalencia, tautología, contradicción ...

Agenda

¿Qué es la lógica?

¿Por qué es importante? Introducción

Valores, variables y tipos

Proposiciones y predicados

Valores nulos

Conclusiones

Page 3: Maestría en Bioinformática Bases de Datos y … Lógica proposicional Lógica de predicados Conectivos y tablas de verdad Implicancia Equivalencia, tautología, contradicción ...

Agenda

Definiciones Introducción

Valores, variables y tipos

Proposiciones y predicados

Valores nulos

Conclusiones

Page 4: Maestría en Bioinformática Bases de Datos y … Lógica proposicional Lógica de predicados Conectivos y tablas de verdad Implicancia Equivalencia, tautología, contradicción ...

Agenda

Lógica proposicional

Lógica de predicados

Conectivos y tablas de verdad

Implicancia

Equivalencia, tautología,

contradicción

¿Para qué sirve todo esto?

Introducción

Valores, variables y tipos

Proposiciones y predicados

Valores nulos

Conclusiones

Page 5: Maestría en Bioinformática Bases de Datos y … Lógica proposicional Lógica de predicados Conectivos y tablas de verdad Implicancia Equivalencia, tautología, contradicción ...

Agenda

Necesidad del valor NULL

Problemas del valor NULL

Lógica trivalorada

Introducción

Valores, variables y tipos

Proposiciones y predicados

Valores nulos

Conclusiones

Page 6: Maestría en Bioinformática Bases de Datos y … Lógica proposicional Lógica de predicados Conectivos y tablas de verdad Implicancia Equivalencia, tautología, contradicción ...

Agenda

Aplicabilidad en la disciplina de

Bases de Datos Introducción

Valores, variables y tipos

Proposiciones y predicados

Valores nulos

Conclusiones

Page 7: Maestría en Bioinformática Bases de Datos y … Lógica proposicional Lógica de predicados Conectivos y tablas de verdad Implicancia Equivalencia, tautología, contradicción ...

Agenda

¿Qué es la lógica?

¿Por qué es importante? Introducción

Valores, variables y tipos

Proposiciones y predicados

Valores nulos

Conclusiones

Page 8: Maestría en Bioinformática Bases de Datos y … Lógica proposicional Lógica de predicados Conectivos y tablas de verdad Implicancia Equivalencia, tautología, contradicción ...

Introducción

La lógica estudia los principios del razonamiento, la

demostración y la inferencia.

Toda teoría es un sistema de sentencias o declaraciones, que

se aceptan como verdaderas y pueden ser utilizadas para

obtener nuevas declaraciones utilizando reglas bien definidas.

Es importante en computación, porque nosotros debemos

enseñar a razonar a las máquinas.

Es importante en la disciplina de Bases de datos, porque

trabajaremos con una lógica diferente a la clásica bi-valorada.

Page 9: Maestría en Bioinformática Bases de Datos y … Lógica proposicional Lógica de predicados Conectivos y tablas de verdad Implicancia Equivalencia, tautología, contradicción ...

Agenda

Definiciones Introducción

Valores, variables y tipos

Proposiciones y predicados

Valores nulos

Conclusiones

Page 10: Maestría en Bioinformática Bases de Datos y … Lógica proposicional Lógica de predicados Conectivos y tablas de verdad Implicancia Equivalencia, tautología, contradicción ...

Valores, variables y tipos

• Un Valor es una constante individual, con un significado bien

definido (por ejemplo, el entero 17). Un Valor no se puede

modificar, ya que no sería el mismo Valor. Los Valores se

codifican de alguna manera y pueden ser arbitrariamente

complejos.

“El peso atómico del Helio es 4,0026”

Page 11: Maestría en Bioinformática Bases de Datos y … Lógica proposicional Lógica de predicados Conectivos y tablas de verdad Implicancia Equivalencia, tautología, contradicción ...

Valores, variables y tipos

• Una Variable mantiene un Valor, pero puede mantener

múltiples Valores a lo largo del tiempo. Las Variables sí se

pueden modificar; cambiando el Valor que mantienen. Las

Variables tienen nombre, lo que nos permite hablar (o

predicar) sobre ellas.

v_peso_atomico := 4,0026;

If (v_peso_atomico < 28,88) then

print “Este elemento es más liviano que el aire”

end if

Page 12: Maestría en Bioinformática Bases de Datos y … Lógica proposicional Lógica de predicados Conectivos y tablas de verdad Implicancia Equivalencia, tautología, contradicción ...

Valores, variables y tipos

• Diremos que todas las Variables tienen un Tipo, y diremos

que el Tipo de una Variable es el conjunto de todos los

Valores que la Variable puede mantener. Ejemplos comunes

de tipo son strings, números enteros o fechas.

define v_peso_atomico numeric(12,9);

define v_descubierto date;

define v_nombre varchar(20);

• Una base de datos se puede ver como una variable; en

cada momento del tiempo tiene un determinado valor (de un

tipo muy complejo, determinado por el esquema de la base).

Page 13: Maestría en Bioinformática Bases de Datos y … Lógica proposicional Lógica de predicados Conectivos y tablas de verdad Implicancia Equivalencia, tautología, contradicción ...

Agenda

Lógica proposicional

Lógica de predicados

Conectivos y tablas de verdad

Implicancia

Equivalencia, tautología,

contradicción

¿Para qué sirve todo esto?

Introducción

Valores, variables y tipos

Proposiciones y predicados

Valores nulos

Conclusiones

Page 14: Maestría en Bioinformática Bases de Datos y … Lógica proposicional Lógica de predicados Conectivos y tablas de verdad Implicancia Equivalencia, tautología, contradicción ...

Proposiciones y predicados

• Una proposición es una sentencia declarativa que puede ser

verdadera o falsa, y se debe poder decidir cuál de las dos.

Podemos determinar si una sentencia S es declarativa

verificando que tenga sentido la pregunta ¿es cierto que S?

• Diremos que las proposiciones tienen un valor de verdad,

que puede ser verdadero o falso.

• Un ejemplo de proposición es "1 + 1 = 3", la cual

obviamente, es falsa…

Page 15: Maestría en Bioinformática Bases de Datos y … Lógica proposicional Lógica de predicados Conectivos y tablas de verdad Implicancia Equivalencia, tautología, contradicción ...

Proposiciones y predicados

• Un predicado, a diferencia de una proposición, admite

variables de las que no se conoce su valor de verdad. Estas

variables se conocen como parámetros del predicado.

• Un ejemplo de predicado es "X aprobará Bases de Datos", y

podemos suponer que el valor de verdad de este predicado

dependerá del parámetro X, que varía en el conjunto de

estudiantes.

• Si sustituye el lector la variable X por su nombre (esto se

denomina instanciar un predicado con valores) obtendrá una

proposición. Queda como tarea averiguar el valor de verdad

de la proposición que obtiene.

Page 16: Maestría en Bioinformática Bases de Datos y … Lógica proposicional Lógica de predicados Conectivos y tablas de verdad Implicancia Equivalencia, tautología, contradicción ...

Proposiciones y predicados

• Hay MUCHO más: Lógica para Ingeniería en Computación

Fuente: http://www.fing.edu.uy/inco/cursos/logica/admin/Programa.pdf, 2012-03-14

Page 17: Maestría en Bioinformática Bases de Datos y … Lógica proposicional Lógica de predicados Conectivos y tablas de verdad Implicancia Equivalencia, tautología, contradicción ...

Proposiciones y predicados

• Los parámetros de un predicado también se denominan

variables libres, y se pueden cuantificar (esto es, vincular de

alguna forma a un conjunto de valores).

• No permitiremos algunos tipos especiales de declaraciones

como "esta proposición es falsa", ya que son declaraciones

auto referenciadas que generan paradojas con las que no

queremos lidiar. Tampoco declaraciones mal formadas como

la proposición "3 es un elemento de 4" ya que 4 no es un

conjunto, o "el conjunto de todas las cosas...“ ya que "todas

las cosas“ es un conjunto que no podemos definir

matemáticamente.

Page 18: Maestría en Bioinformática Bases de Datos y … Lógica proposicional Lógica de predicados Conectivos y tablas de verdad Implicancia Equivalencia, tautología, contradicción ...

Proposiciones y predicados

• Recordemos los conectivos lógicos básicos de la lógica

proposicional: conjunción (AND), disyunción (OR) y

negación (NOT). Los conectivos lógicos son operadores

lógicos; toman predicados y devuelven predicados,

permitiendo construir (en un proceso inductivo) predicados

compuestos a partir de predicados simples (predicados sin

conectivos).

• El significado preciso de los conectivos puede ser definido

mediante tablas de verdad, que son estudiadas en los

cursos de lógica.

Page 19: Maestría en Bioinformática Bases de Datos y … Lógica proposicional Lógica de predicados Conectivos y tablas de verdad Implicancia Equivalencia, tautología, contradicción ...

Proposiciones y predicados

• Tabla del AND

Page 20: Maestría en Bioinformática Bases de Datos y … Lógica proposicional Lógica de predicados Conectivos y tablas de verdad Implicancia Equivalencia, tautología, contradicción ...

Proposiciones y predicados

• Tabla del OR

Page 21: Maestría en Bioinformática Bases de Datos y … Lógica proposicional Lógica de predicados Conectivos y tablas de verdad Implicancia Equivalencia, tautología, contradicción ...

Proposiciones y predicados

• Tabla del NOT

• Queda como tarea recordar las tablas de verdad de la

implicancia y de la equivalencia

Page 22: Maestría en Bioinformática Bases de Datos y … Lógica proposicional Lógica de predicados Conectivos y tablas de verdad Implicancia Equivalencia, tautología, contradicción ...

Proposiciones y predicados

• Una implicancia se puede considerar como un orden entre

predicados, determinando uno más fuerte y uno más débil.

Si se tiene una implicancia verdadera P Q se dice que P

es más fuerte que Q (o que Q es más débil que P).

• Por ejemplo, en la implicancia "X > 42 X > 0", decimos

que "X > 42" es más fuerte que "X > 0". Esto es consistente

con la noción de cantidad de información, el primer

predicado contiene más información (es más fuerte) que el

segundo.

Page 23: Maestría en Bioinformática Bases de Datos y … Lógica proposicional Lógica de predicados Conectivos y tablas de verdad Implicancia Equivalencia, tautología, contradicción ...

Proposiciones y predicados

• Dados dos predicados P y Q no siempre se cumple que P

Q o que Q P, por lo que la implicancia es un orden parcial

en el conjunto de los predicados, pero no es un orden total.

• Hay un predicado más fuerte que todos los demás y es valor

F (falso), ya que para cualquier Q, se cumple que F Q. De

manera análoga, hay un predicado más débil que todos los

demás y es el valor V (verdadero), ya que para cualquier P,

se cumple que P V.

Page 24: Maestría en Bioinformática Bases de Datos y … Lógica proposicional Lógica de predicados Conectivos y tablas de verdad Implicancia Equivalencia, tautología, contradicción ...

Proposiciones y predicados

• Hay proposiciones (y de la misma forma predicados) que

son equivalentes, e.g. los predicados "X < 10 OR X > 20" y

"NOT(X >= 10 AND X <= 20)" son equivalentes.

• Hay proposiciones (y de la misma forma predicados) que

siempre son verdaderas, a los que llamamos tautologías; y

en oposición contradicciones, que siempre son falsas. Por

ejemplo "1 = 1" es una tautología, mientras que "1 = 2" es

una contradicción

Page 25: Maestría en Bioinformática Bases de Datos y … Lógica proposicional Lógica de predicados Conectivos y tablas de verdad Implicancia Equivalencia, tautología, contradicción ...

Proposiciones y predicados

• Una declaración puede ser rescrita en una forma

equivalente, pero que tal vez requiera menos trabajo de

cómputo para ser evaluada por una computadora.

• Por ejemplo, el predicado "X < 2 OR X > 1" es una

tautología, y es equivalente a V. Lo que se puede ganar con

una rescritura, es que si X varía en un conjunto de 100

elementos sería necesario evaluar 200 desigualdades, y

calcular 100 veces un conectivo OR para hallar el valor de

verdad del predicado en función de cada valor del parámetro

X. Si se rescribe el predicado, no importa dónde varíe X, se

sabe de antemano que para cualquier X el predicado será

verdadero.

Page 26: Maestría en Bioinformática Bases de Datos y … Lógica proposicional Lógica de predicados Conectivos y tablas de verdad Implicancia Equivalencia, tautología, contradicción ...

Proposiciones y predicados

• Normalmente, se puede evaluar de forma sistemática si se

puede aplicar alguna tautología conocida, o regla de

reescritura, como idempotencia ( P AND P es equivalente a

P, así como P OR P es equivalente a P), doble negación (

NOT NOT P es equivalente a P), etc

• El siguiente ejemplo es bastante avanzado por el momento,

pero ya podemos comprender por qué el optimizador de

DB2 ni siquiera accede a la tabla para resolver una consulta.

Page 27: Maestría en Bioinformática Bases de Datos y … Lógica proposicional Lógica de predicados Conectivos y tablas de verdad Implicancia Equivalencia, tautología, contradicción ...

Proposiciones y predicados

create table numeros(n int);

insert into numeros values (1), (2), (3), (4), (5), (6), (7);

select n

from numeros

where n < 2

Estimated Cost = 7.582313

Optimizer Plan:

RETURN

( 1)

|

TBSCAN

( 2)

|

Table:

DB2INST9

NUMEROS

select n

from numeros

where n < 2 and n > 3

Estimated Cost = 0.000177

Optimizer Plan:

RETURN

( 1)

|

TBSCAN

( 2)

|

TFunc:

SYSIBM

GENROW

Page 28: Maestría en Bioinformática Bases de Datos y … Lógica proposicional Lógica de predicados Conectivos y tablas de verdad Implicancia Equivalencia, tautología, contradicción ...

Agenda

Necesidad del valor NULL

Problemas del valor NULL

Lógica trivalorada

Introducción

Valores, variables y tipos

Proposiciones y predicados

Valores nulos

Conclusiones

Page 29: Maestría en Bioinformática Bases de Datos y … Lógica proposicional Lógica de predicados Conectivos y tablas de verdad Implicancia Equivalencia, tautología, contradicción ...

Valores nulos

• Hasta aquí todo es sencillo, las proposiciones lógicas

pueden ser verdaderas o falsas, y decimos que trabajamos

en una lógica bi-valorada.

• Sin embargo, en sistemas de información, muchas veces

desconocemos alguna información, o no aplica (por ejemplo,

fecha de deceso en una base de personas).

• Admitiremos la existencia de un valor que no es verdadero

ni falso, sino que representa la ausencia de información, sea

porque es desconocido (UNKNOWN) o simplemente porque

no aplica. Llamaremos NULL a este valor.

Page 30: Maestría en Bioinformática Bases de Datos y … Lógica proposicional Lógica de predicados Conectivos y tablas de verdad Implicancia Equivalencia, tautología, contradicción ...

Valores nulos

• Es importante notar que el valor desconocido es un valor

que aplica a todos los tipos de datos, y de naturaleza

diferente al resto de los valores del tipo. Por ejemplo, NULL

no debería ser igual al string vacío o al número entero 0 (se

debería codificar de una forma diferente).

• Sin embargo... Oracle implementa el NULL como un string

vacío

“Oracle Database currently treats a character value with a length of zero as null. However,

this may not continue to be true in future releases, and Oracle recommends that you do

not treat empty strings the same as nulls.”

Fuente: http://docs.oracle.com/cd/E11882_01/server.112/e17118/sql_elements005.htm

Page 31: Maestría en Bioinformática Bases de Datos y … Lógica proposicional Lógica de predicados Conectivos y tablas de verdad Implicancia Equivalencia, tautología, contradicción ...

Valores nulos

• La introducción del valor de verdad desconocido hace que

debamos repensar la semántica de las operaciones lógicas.

Por ejemplo, ¿qué debería devolver el OR entre falso y

desconocido?

• Diremos que cada vez que el valor de verdad del resultado

de una operación lógica dependa del valor que pudiera

tener algún operando desconocido, el resultado será

desconocido (para la semántica de la lógica tri-valorada

conviene pensar en NULL como un valor desconocido).

• Así, debemos construir nuevas tablas de verdad,

extendidas, para admitir valores desconocidos.

Page 32: Maestría en Bioinformática Bases de Datos y … Lógica proposicional Lógica de predicados Conectivos y tablas de verdad Implicancia Equivalencia, tautología, contradicción ...

Valores nulos

• Tabla del AND, extendida

Page 33: Maestría en Bioinformática Bases de Datos y … Lógica proposicional Lógica de predicados Conectivos y tablas de verdad Implicancia Equivalencia, tautología, contradicción ...

Valores nulos

• Tabla del OR, extendida

Page 34: Maestría en Bioinformática Bases de Datos y … Lógica proposicional Lógica de predicados Conectivos y tablas de verdad Implicancia Equivalencia, tautología, contradicción ...

Valores nulos

• Tabla del NOT, extendida

Page 35: Maestría en Bioinformática Bases de Datos y … Lógica proposicional Lógica de predicados Conectivos y tablas de verdad Implicancia Equivalencia, tautología, contradicción ...

Valores nulos

• Más allá de las operaciones lógicas, al admitir el valor

desconocido en variables de cualquier tipo, se nos

presentan otros problemas como ¿cuál debería ser la suma

de 5 y NULL? En general, cualquier operación que involucre

un NULL devolverá NULL.

• En ocasiones se debe devolver un valor de verdadero o

falso, pero no desconocido. Por ejemplo, si tenemos que

decidir si NULL es mayor que 9 y no podemos devolver

NULL, tendremos que tomar una decisión. En general, se

asume que cualquier comparación con NULL es falsa, pero

por supuesto que esto nos traerá problemas.

Page 36: Maestría en Bioinformática Bases de Datos y … Lógica proposicional Lógica de predicados Conectivos y tablas de verdad Implicancia Equivalencia, tautología, contradicción ...

Valores nulos

• En nuestra lógica bi-valuada teníamos que proposiciones y

predicados del tipo P OR NOT P eran tautologías, pero

consideremos ahora que P tiene el valor NULL... y haga

cuentas !!

• Sólo para hacer énfasis en la complejidad del asunto,

imaginemos que queremos realizar una partición del

conjunto de personas; los mayores de edad y los menores

de edad. Supongamos que tenemos una función para contar

(COUNT), y que al contar las personas de 18 años o más el

resultado nos da 37 personas. Por otro lado, las personas

de menos de 18 años resultan ser 11.

• ¿Cuál es el total de personas?

Page 37: Maestría en Bioinformática Bases de Datos y … Lógica proposicional Lógica de predicados Conectivos y tablas de verdad Implicancia Equivalencia, tautología, contradicción ...

Valores nulos

• Podríamos deducir que el total de personas era de 37 + 11 =

48, sin embargo esto es cierto solamente si no había

personas con edad desconocida (NULL). Para éstas, las

comparaciones de desigualdad se asumirán falsas, por lo

que no sumarán en ninguno de los dos conjuntos, y el total

de personas podría ser mayor del que se dedujo.

• En otras palabras, antes podíamos asumir que un conjunto

se podía particionar en dos subconjuntos: los que cumplían

P y los que cumplían NOT P. Con nulos, un conjunto se

divide en los que cumplen P, los que cumplen NOT P y los

que por tener nulos no cumplen P ni tampoco NOT P.

Page 38: Maestría en Bioinformática Bases de Datos y … Lógica proposicional Lógica de predicados Conectivos y tablas de verdad Implicancia Equivalencia, tautología, contradicción ...

Valores nulos

• En resumen, la introducción del valor NULL es un mal

necesario, y se debe tener mucho cuidado cuando los datos

pueden admitir valores NULL. En los DBMSs existen formas

de restringir los tipos de datos para que no admitan valor

NULL, y a veces se recomienda hacer esto para evitar el

valor NULL tanto como sea posible, especialmente para

evitar errores como el del ejemplo anterior…

Page 39: Maestría en Bioinformática Bases de Datos y … Lógica proposicional Lógica de predicados Conectivos y tablas de verdad Implicancia Equivalencia, tautología, contradicción ...

Agenda

Aplicabilidad en la disciplina de

Bases de Datos Introducción

Valores, variables y tipos

Proposiciones y predicados

Valores nulos

Conclusiones

Page 40: Maestría en Bioinformática Bases de Datos y … Lógica proposicional Lógica de predicados Conectivos y tablas de verdad Implicancia Equivalencia, tautología, contradicción ...

Conclusiones

• En el mundo real, las consultas a una Base de Datos se

basan y se parecen mucho a la lógica de predicados

• Algunas construcciones de la lógica como las equivalencias,

tautologías y contradicciones se pueden utilizar para

rescribir los predicados y optimizar las búsquedas

• La comprensión de la lógica trivalorada es fundamental para

trabajar con Bases de Datos