¿Cómo se clasifican los datos del mundo real en tipos de datos (en programación)?

El idioma utilizado determinará los tipos disponibles. O de otra manera, la naturaleza de los datos informará sobre qué idiomas podrían usarse mejor para usar esos datos.

La representación de datos es un tema que puede llenar varios libros y clases. En el más básico, hay algunos tipos de datos primitivos. Estos se pueden combinar para crear tipos más complejos si es necesario para manejar los datos. La mayoría de los idiomas tendrán un tipo booleano (verdadero / falso), un número entero, un tipo de coma flotante (a veces llamado “real”) y un tipo de cadena. La preocupación clave es almacenar estos valores usando formas que están hechas de valores binarios (unos y ceros) como las unidades más pequeñas.

Comenzando con los datos reales del trabajo, compara lo que tiene con los tipos disponibles y elige el que mejor funcione. Algunos podrían manejarse de dos maneras diferentes. Veamos un saldo bancario. Esto puede parecer un caso para coma flotante con dígitos a cada lado del decimal (100.32 dólares, por ejemplo). Sin embargo, podría representar esto como 10032 centavos usando un tipo entero. Esto representa con mayor precisión el valor, ya que es exacto donde el valor de punto flotante estará muy cerca, pero no es exacto, ya que es difícil mostrar 1/100 en binario.

Los datos de texto (y la voz generalmente se pueden reducir a texto) se pueden almacenar en cadenas que están hechas de caracteres que son representaciones binarias de letras.

La mayoría de los datos del mundo real serán discretos o continuos. Lo discreto es esencialmente contar algunas cosas. Esto sería como la cantidad de artículos en un inventario. Este recuento puede ser negativo, como cuando se observa cuál es la diferencia entre un valor (una solicitud) y otro (el suministro disponible) si la solicitud excede el suministro. Los datos continuos son como la temperatura o la distancia. Estos se pueden medir a un nivel arbitrario de precisión. El puede ser muy grande o muy pequeño. El aspecto de punto flotante de estos datos es que la ubicación del decimal puede cambiar en función de la magnitud del valor en cuestión. (¿Hablamos de la distancia de la Tierra a Marte o la distancia desde el núcleo de un átomo a uno de sus electrones?)

La forma en que elige representar los datos es una habilidad clave en un desarrollador. Las decisiones tomadas en representación determinarán el idioma utilizado y los métodos utilizados para almacenar mejor los datos, en la memoria y en el disco. También establecerán restricciones en la calidad de los valores que pueden derivarse de los datos recopilados y los algoritmos específicos que pueden usarse para procesar los datos. La eficiencia del producto final puede depender en gran medida de la representación utilizada para los datos.

Personalmente, trato de usar y animo a otros a usar una estrategia llamada “sentido común”. Es decir, las medidas numéricas reales se representan como reales, mientras que los recuentos son enteros. Las categorías son factores (si eso es compatible). Verdadero y falso son booleanos. Las fechas se representan como fechas y horas son horas (y se representan en formato ISO8601 cuando se imprimen, pero se localizan en visualizaciones. Los comentarios y el texto libre son cadenas.

Las estructuras complejas son documentos con etiquetas claras. Las redes generalmente se representan como una lista de conexiones.

En su mayoría, el tipo o estructura debe representar fielmente la naturaleza semántica de la información que representa.