En memoria de James Martin

4 comentarios

Hace unos minutos, respondiendo el e-mail de un amigo busqué información sobre James Martin en la Wikipedia y así me enteré que falleció hace solamente unos días, el 24 de junio de 2013.

Leí muchos de sus libros y mucho de lo que sé sobre Informática se lo debo a él. Aunque leerlo puede resultar bastante pesado porque sus libros no son muy fáciles de digerir sin duda que vale la pena hacerlo, sabía muy bien de lo que hablaba y cuando conseguías seguirlo realmente se te abría la mente a muchos nuevos horizontes.

Muchísimas cosas posiblemente jamás se me habrían ocurrido si no hubiera sido por su influencia, gracias a él pude entender mucho mejor lo que se puede lograr con la Informática y como lograrlo. Para quienes se encuentran en un nivel intermedio o avanzado es altamente recomendable que lo lean, aunque mucho de lo que dijo ya ha quedado obsoleto con el pasar de los años, muchos conceptos siguen siendo perfectamente válidos. Quien lo lea no perderá el tiempo y aprenderá un montón sobre muchos temas.

Según ComputerWorld, él fue el 4º entre las 25 personas que más influyeron en el mundo de la Informática. Imagínense, entre los millones de personas que se dedicaron a la Informática en los últimos 70 años, se seleccionaron a las 25 más influyentes y él esta 4º en esa lista. Muy, muy meritorio.

http://en.wikipedia.org/wiki/James_Martin_(author)

Artículo relacionado:

El índice del blog Firebird21

 

Anuncios

Borrando filas cuando la condición depende de otra tabla

1 comentario

A veces podemos encontrarnos con situaciones donde necesitamos borrar algunas filas pero la condición de borrado depende de otra tabla.

Por ejemplo en una institución educativa tenemos dos tablas: ALUMNOS e INSCRIPCIONES. Evidentemente el alumno no puede inscribirse antes de nacer. Si lo tenemos inscripto antes de su fecha de nacimiento eso es un error y debemos borrarlo de la tabla de INSCRIPCIONES o en todo caso modificar la fecha de la inscripción o del nacimiento.

Lo mismo ocurriría en el caso de ventas y cobranzas. Primero se hace la venta y después la cobranza, sería muy raro el caso inverso.

Lo correcto es que siempre cuando de borrar se trata lo hagamos tomando en cuenta los identificadores de las tablas porque así disminuye mucho la probabilidad de equivocarnos y borrar filas que no deberían ser borradas.

Pero en situaciones como las antedichas, en que por un error de programación se permitió inscribir a un alumno antes de que naciera o se realizó una cobranza antes de una venta, podríamos necesitar borrar esas filas erróneas.

Una posible solución es la siguiente:

DELETE FROM
   INSCRIPCIONES I
WHERE
   I.INS_FECHAX < (SELECT A.ALU_FECNAC FROM ALUMNOS A WHERE I.INS_IDEALU = A.ALU_IDENTI)

En este caso borramos de la tabla de INSCRIPCIONES todas las filas donde la fecha de inscripción sea menor que la fecha de nacimiento del respectivo alumno.

INS_FECHAX es la fecha de la inscripción

ALU_FECNAC es la fecha de nacimiento del alumno

INS_IDEALU es el identificador del alumno en la tabla de INSCRIPCIONES

ALU_IDENTI es el identificador del alumno en la tabla de ALUMNOS

Artículo relacionado:

El índice del blog Firebird21