• Sólo para demostrar el poder los índices, comento un caso en el que se tenía una hoja Excel de aproximadamente 12000 registros con la siguiente estructura:

    Tabla

    Aunque no son muchos registros, el proceso demoraba bastante pues se debía actualizar un campo de una tabla denominada “Persona” con el número de archivo. Es decir que los nombres ya se encontraban en la tabla que contenía unos 50000 registros, que tampoco es mucho pero, de todas maneras, la operación demoraba demasiado. Seguir leyendo…

    Tags:

  • Recientemente, en un famoso sitio web dedicado a la teoría de las bases de datos leí que la Primera Formal Normal consistía en:

    • Eliminar las columnas duplicadas de una tabla
    • Crear tablas separadas para cada grupo de datos relacionados e identificar cada fila con una columna única (la clave primaria)

    Como esto no es exactamente lo que yo conocía, me puse a analizar el postulado anterior y encuentro que no es correcto. De manera que en este artículo quiero aclarar qué tablas no están en 1FN (Primera Forma Normal) y  cómo se pueden normalizar. Seguir leyendo…

    Tags: ,

  • Proyectos 09.06.2012 No Comments

    Este artículo en formato MP3
    He leído y escuchado varias veces, particularmente, en trabajos de grados, el tema de la selección de metodología usada, con la correspondiente respuesta de RUP o XP.

    En el caso más extremo, leí un proyecto consistente en la fabricación de una matriz de 5 x 8 leds, cuya documentación decía que el autor había usado RUP. Esto es ridículo, ¿no?.

    Metodología RUPRUP o Rational Unified Process (Proceso Unificado de Rational) es una metodología pesada. Aunque, teóricamente, podría servir para cualquier tipo y tamaño de proyecto, en la realidad se considera apropiado para proyectos y equipos grandes. Probablemente el equipo mínimo debería contar con 10 o más miembros, caso contrario, tal vez deberían realizar muchísimas adaptaciones a la metodología.

    Por otra parte, esta metodología recibe constantes críticas acerca de que introduce una gran burocracia al proceso, ya que para un proyecto pequeño sólo la exhaustiva documentación que exige podría demandar más recursos de los disponibles.

    Claramente, no es una buena opción si se trata de un proyecto mediano o pequeño que vaya a ser realizado por pocas personas y mucho menos si es un trabajo individual, como el típico caso del proyecto desarrollado para obtener un grado académico en algún centro de formación.

    Quienes se dan cuenta de estos hechos, suelen pensar en XP (Extreme Programming) que tiene como principal estandarte el ser una metodología liviana que tendría que resolver las críticas a RUP.

    Seguir leyendo…

    Tags: , ,

  • Este artículo en formato MP3

    CDCuando tenemos que guardar imágenes, con frecuencia tenemos que decidir si las almacenamos en la base de datos en un campo BLOB, o si las copiamos a un directorio del servidor, conservando sólo en la base de datos la ruta y nombre del archivo en un campo tipo CHAR.

    En este caso, como en muchos otros, no hay una respuesta definitiva o absoluta, sino que depende del caso particular, es decir de las características o requerimientos del proyecto.

    Nótese que aunque en este artículo se hace referencia sólo a imágenes, lo mismo se aplica a otro tipo de información como archivos de sonido o video.

    Almacenamiento en la Base de Datos

    El primer caso, o sea el almacenamiento dentro de un campo BLOB, provocará una base de datos que ocupará mucho espacio en disco, lo cual, en una aplicación normal, no suele ser un problema por el espacio mismo, ya que actualmente no cuesta mucho, sino por otras causas que se mencionan a continuación.

    Seguir leyendo…

    Tags: ,

  • Logos de SGBDsSuele ocurrir que determinadas herramientas informáticas despiertan un fanatismo entre sus usuarios que, entonces, ignoran los datos objetivos para defender agresivamente su posición, dando lugar a las llamadas “guerras santas” como las que se producen entre usuarios de Windows y Linux, Java y C#, ASP y PHP, Intel y AMD, etc.

    Sin embargo, ya se sabe desde hace mucho que, frecuentemente, la causa de la imposibilidad de llegar a conclusiones objetivas es la amplitud del tema discutido, pues es difícil encontrar algún software o hardware superior en todos los sentidos al resto. Lo que se ve en la realidad es que ciertos productos tienen ventajas en ciertos campos y desventajas en otros.

    Entonces, las discusiones serias delimitan un área para tratar de encontrar fortalezas y debilidades del objeto de discusión.

    Con esta idea en mente, vamos a revisar algunos de los gestores de bases de datos más populares viendo en qué área tienen mayores prestaciones y en cuales son desaconsejados.

      Seguir leyendo…

  • Claves primariasNormalmente, cada tabla de una base de datos debe tener una llave primaria que contendrá valores que identifiquen unívocamente cada fila o tupla de la tabla.

    Digo “normalmente”, porque algunas tablas no necesitan de la llave primaria, pues son tablas que establecen las relaciones  existentes entre 2 o más tablas.

    En cambio, en el resto de las tablas, sí se requiere una clave primaría y esta puede ser “subrogada” o “semántica”.

    Una clave subrogada es aquella cuyos valores se forman independientemente de los datos almacenados. Típicamente, es sólo una secuencia de números.

    Clave primaria subrogada

    Clave primaria subrogada

    Por ejemplo, en MySQL, definimos con frecuencia, un campo como clave primaria auto incrementable (PRIMARY KEY AUTO_INCREMENT), y los registros adquieren una clave primaria que es un número entero que se incrementa con cada inserción de nuevo registro.

    Seguir leyendo…

  • Proyectos 23.01.2012 No Comments
    Diagrama Entidad relación

    Diagrama ER

    La idea de desarrollar aquí un proyecto es la de ilustrar con un ejemplo las sugerencias, métodos o técnicas expuestas en este blog.

    Este proyecto es una aplicación real que debo desarrollar para un cliente, de manera que lo escribiré a medida que lo realice.

    Como es de suponer, voy a usar los 6 pasos señalados en el artículo “Como iniciar un proyecto de programación”.

    Paso 1. Apagar la PC y tomar un lápiz y papel. 

    Supongo que muchas personas pueden hacer su documentación directamente en la PC, pero en mi caso, en la etapa de diseño soy más productivo con lápiz y papel.

     

    Paso 2.  Escribir el propósito del programa. 

    El cliente solicita un programa para almacenar archivos digitales y cierta información relacionada a los mismos.

    Existirán usuarios que podrán buscar documentos por diferentes criterios y descargarlos si lo desean. De acuerdo a los permisos de acceso que tengan también podrán subir archivos al servidor.

    También requiere un registro de clientes, pues los archivos pertenecen a estos.

      Seguir leyendo…

    Tags: ,

  • Tutoriales 14.01.2012 No Comments

    Este artículo en formato MP3

     
    PensandoLos primeros programas que desarrollamos no suelen ser muy buenos por que tratamos de aplicar la extensa teoría existente a un caso práctico y notamos que tenemos vacíos en nuestra compresión pese a las buenas calificaciones obtenidas en la asignatura correspondiente.

    Ahora, uno de los pilares de un buen programa es el diseño de su base de datos y esta no es una labor muy intuitiva.

    Por eso, aquí van mis 6 pasos para diseñar una base de datos:

    Paso 1. Escribe el propósito del programa de manera breve pero completa. Es necesario que menciones a los distintos tipos de usuarios del programa y la tarea que desarrollarán.

    Vamos a desarrollar un ejemplo consistente en una aplicación para controlar los ingresos y gastos de una persona.

    Seguir leyendo…

    Tags: ,

  • Lenguajes 11.01.2012 No Comments

     

    Esta recurrente pregunta se podría contestar: “cualquiera, ya que con cualquier lenguaje se puede construir cualquier programa”, pero entonces este artículo sería muy breve, así que vamos por la respuesta larga.

    La selección de aquel lenguaje en el que serás, dentro de poco tiempo, todo un experto depende de muchos factores como…

    • Desarrollarás aplicaciones web, de escritorio o para celulares?
    • Tienes formación en informática?
    • Piensas encontrar un empleo de programador en una empresa o vas a desarrollar software para comercializarlo por tu cuenta?
    • Qué sistema operativo usas?

    Seguir leyendo…

    Tags: , ,

  • Proyectos 03.01.2012 2 Comments

    Este es un ejemplo para mostrar cómo se puede iniciar un proyecto de desarrollo de software. Es muy recomendable leer primero el artículo “Cómo iniciar un proyecto de programación“, que sugiere 6 pasos.

    1)     Apagar la PC y tomar un lápiz y papel.

    … Listo!

     

    2)     Escribir el propósito del programa.

    Este programa servirá a los profesores para que puedan registrar en clases las notas de las actividades evaluativas que realicen. Podrá colocar notas y también podrán registrar casos como ausencias o tardanzas, indisciplina, tareas no cumplidas y cuanta observación considere adecuada el profesor.

    Para esto necesitará poder registrar los nombres de sus estudiantes. También podrá almacenar fotografías.

    Podrá anotar las tareas o trabajos asignados y su fecha de entrega. El programa deberá poder emitir un aviso recordatorio.

    Seguir leyendo…

    Tags: , ,