Para la explicacion del operador not, yo comprendo mas que excluye lo anotado, porque en el ejemplo en donde nuestra consulta
select NOMBRE
from PERSONAS
where (RUBIA = 'S') and not (ALTA = 'S') and (GAFAS='S')
nos da : "CARMEN"
y luego al negar la clausula WHERE, lo que hace es EXCLUIR a CARMEN porque si se dijere que nos genera lo contrario, el resultado tendria que ser lo equivalente a
select NOMBRE
from PERSONAS
where (RUBIA = 'N') and not (ALTA = 'N') and (GAFAS='N')
osea: PEDRO
por tal razon y mi logica tendria que modificarse el texto y colocar que la funcion es EXCLUYENTE, por favor aclararme si estoy en lo correcto, en caso contrario favor de explicarme.