¿ Qué es ? Una base de datos autoportante


Conceptos Iniciales

La programación de computadores es la única ciencia que puede modificar el medio de estudio o de investigación, según su conveniencia y no tener que investigar en lo que hay, sino que por el contrario, “hacer” lo que se va a investigar.

El médico tiene que curar los cuerpos así como están y no puede hacer que estos nazcan de forma que sean fáciles de curar (hasta ahora).

En cambio en la informática, si un proceso se hace lento por los cálculos, se acelera la CPU.
Y si se hace lento en disco, se hacen discos de estado sólido.

Y si la información es grande, ni siquiera se preocupe, ya que los espacios de almacenamiento crecen casi el doble por año (1,75) desde los años 60.

Economía

Es más económico para todos los clientes, comprar más disco que invertir en horas de programación para achicar espacio.
Históricamente las reducciones de espacio duraron pocos años.

Las Bases de Datos

Hay una tendencia, tal vez propia de la naturaleza humana, de programar optimizando el espacio en disco como si fuese sagrado.

El espacio en disco no existe frente al coste de un programador bueno.

Lo que si existe, es en lo que no se piensa

  1. Es que el código del programa debe ser lo más claro posible.
  2. El acceso a datos para lograr el resultado, debe tener la menor cantidad de interacciones posibles.

Es decir, todo lo contrario a lo que un “novato” cree que es conveniente.

¿ Por qué ?

Porque el novato ve solamente el “hoy” y no considera que el programa durará muchos años o que lo verán muchos programadores.
Por esta razón, existen programas funcionado hechos en COBOL desde hace más de 30 años y programas “nuevos” que no funcionan en 30 años.

Bases Autoportantes

Es un concepto desarrollado hace unos 20 años, que parte de las siguientes premisas

  • Se lee un dato más de 30 veces de lo que se graba (velocidad).
  • El espacio en disco es más barato que la programación, aunque sea el doble del previsto (costo).
  • La experiencia evidente que siempre aumenta el espacio y la velocidad.

Por lo tanto, leer rápido y ocupar más disco, es lo más barato y veloz.

Dato real

Existen archivos “dinámicos” y “estáticos”, que quedarán muy claros con el ejemplo siguiente :

El “dato” (Estático – Dirección Cliente) es uno solo en el momento que se hace el “movimiento” (Dinámico – Factura) en un instante de tiempo.

Y aquí comienza “el idilio del programador inexperto” que por ahorrar espacio y definiciones de archivo, hace que la Factura guarde solamente el “Código” del cliente.

Y cuando el cliente cambia de domicilio, pueden pasar las siguientes cosas (en diferentes magnitudes de desastre)

  1. Que todas las facturas anteriores, aparezcan con la dirección actual del cliente.
  2. Que se haga un cliente nuevo para las facturas nuevas, manteniendo al cliente anterior para las facturas viejas.

Una vez ocurrido esto por primera vez, al inexperto la solución 2 le parece fabulosa !!

Pero es la peor, ya que ahora hay que hacer

  • Un programa que junte las cuentas corrientes
  • Otro para los cheques
  • Otro para los movimientos
  • Otro que una las facturas en un solo resumen anual
  • Otro y otro y otro.

O, la opción 3 que parece ser la salvación y es “Hacer que el programa identifique cuando cambió la dirección del cliente y entonces en ese momento cambie el dato en las facturas que se imprimen, en las cuentas, en los resultados, en los y en los …y en los” hasta que cambia de nuevo de dirección, donde el programador inexperto se atreve a decirle al cliente :
¿ Cómo y por qué su cliente cambia tanto de dirección ?, como si fuese el programa el centro del Universo.

Una norma :
“Cuantas más explicaciones tenga un programa, más improbable será que funcione”
(esto se da en la vida en general)

La respuesta es muy sencilla
Guarde el Código y la dirección el el archivo móvil
Más, si tiene duda, guarde todo.

Archivo Autoportante II

Es así de simple, guarde todo lo que le resulte necesario a simple vista, así, al leer (que es lo que se hace 30 veces más que grabar) esto sea inmediato y no necesite hacer “malabares” para obtener un dato.

Por qué entonces “solamente lo que entienda a simple vista”

Y si mañana el cliente, cambia su código fiscal, (pasa) su nacionalidad (pasa, el país se dividió en dos) o lo que sea “imprevisto” (nada es previsible) proceda a hacer lo siguiente :

Agregue este campo del registro de datos (estático) y al registro de facturas (dinámico), quedando en las factura “anteriores” la nacionalidad hasta el momento, y en las siguientes, guardará de ahora en adelante, las nuevas nacionalidades.

Así la nacionalidad podrá cambiar las veces que sea necesario

(Utilizo para el ejemplo la nacionalidad porque es algo que se considera intocable y en el ejemplo se ve claramente que no lo es).

Espero sea de utilidad.

Oll Korrect, España 2003, Luis Fernando Massa

Anuncios

Acerca de Luis Fernando Massa

Comentarios de Economía, Politica y observaciones personales. Ideas, Inventos y Desarrollos Industriales
Esta entrada fue publicada en Programación, Uncategorized y etiquetada , . Guarda el enlace permanente.

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s