Saltar la navegación

4.- Tipos de datos.

Caso práctico

Ana.
Ministerio de Educación (Uso educativo nc)



Juan le ha pedido a Ana que repase cada una de las relaciones y en función de los datos que contenga cada atributo, elija el tipo de datos más adecuado. Más adelante habrá que restringir esos valores para que al introducir datos no se produzcan errores. Los tipos de datos ocupan espacio en el disco duro del servidor donde se guarde y pueden hacer que el acceso sea más lento, así que hay que optimizar.

Además, Ana todavía recuerda aquella vez que tuvo que entregar una práctica en la facultad sobre base de datos. Guardó el teléfono con un formato de número y cuando fue a imprimir un informe... ¡no quiere ni acordarse! Le salieron unos números de teléfonos que nada tenían que ver con los datos introducidos.

Computadora que, formando parte de una red, provee servicios a otras computadoras denominadas clientes

¿Qué es un DNI? ¿Con qué datos lo representamos? El DNI es una información que es susceptible de ser guardada. Normalmente el DNI está formado por dígitos y una letra al final. Si tuviéramos que clasificarlo diríamos que es un conjunto de caracteres alfanuméricos. ¿Y si pensamos en Sueldo? Aquí lo tenemos un poco más claro, evidentemente es un número entero o con decimales.

Hasta ahora hemos visto que vamos a guardar información relacionada en forma de filas y columnas. Las columnas son los atributos o información que nos interesa incluir del mundo real que estamos modelando.

Hemos visto que esos atributos se mueven dentro de un dominio, que formalmente es un conjunto de valores. Pues bien, en términos de sistemas de base de datos, se especifica indicando el tipo de dato (de forma general) y el conjunto de valores que puede tomar (de forma restringida). El conjunto de valores restringidos se le indicará en la definición de la tabla si el SGBD lo permite. 

Por ejemplo para un atributo que va a guardar el género (M masculino o F femenino), el tipo de datos será carácter o texto de longitud 1. Los valores posibles M o F se indicarán en la definición de la tabla.

Al crear la relación (tabla) decidimos qué conjunto de datos deberá ser almacenado en los atributos de las filas. Tenemos que asignar un tipo de dato a cada atributo.

Con la asignación de tipos de datos, también habremos seleccionado un dominio para cada atributo. 

Cada campo:

  • debe poseer un Nombre (relacionado con los datos que va a contener) y
  • debe tener asociado un Tipo de dato que determinará qué valores puede tomar y qué operaciones se pueden realizar con ellos.

Existen distintas formas de nombrar los tipos de datos dependiendo del lenguaje que utilicemos (C, Java, PHP, MySQL, SQL, Pascal, etc.).

Veamos cuales son los tipos de datos más comunes y habituales, existentes en la mayoría de los lenguajes, que posteriormente se definirán utilizando la sintaxis específica del  lenguaje elegido.

  • Texto: almacena cadenas (conjunto) de caracteres: números con los que no vamos a realizar operaciones matemáticas, letras o símbolos.
  • Numérico: almacena números. Si dudamos entre numérico o texto tendremos en cuenta si vamos a realizar operaciones matemáticas con ellos, en cuyo caso será numérico.
  • Fecha/hora: almacena fechas y horas.
  • Sí/No: almacena datos que solo tienen dos posibilidades (verdadero/falso).
  • Autonumérico: se puede considerar un subtipo de Numérico ya que almacena valores numéricos secuenciales que el SGBD incrementa de modo automático al añadir un registro (fila).
  • Memo: almacena texto largo (mayor que un tipo texto).
  • Moneda:  pero con una característica especial, y es que los valores representan cantidades de dinero.
  • Objeto OLE: almacena gráficos, imágenes o textos creados por otras aplicaciones.

Para determinar qué tipo de dato se asocia a cada atributo se tiene en cuenta el conjunto de valores que puede tomar y las operaciones que hay que realizar con él.

Un código postal, por ejemplo 06800, a pesar de estar formado por dígitos numéricos, es mejor definirlo como una cadena de 5 caracteres por dos motivos: porque no se va a realizar operaciones matemáticas con él y porque los ceros a la izquierda no deben ser obviados como si fuera numérico. El número de teléfono se encuentra en un caso similar.

Es fundamental determinar de forma correcta el tipo de dato y tamaño para cada atributo, ya que si se define mal, no permitirá almacenar la información deseada o puede que almacene información incompleta. Por ejemplo, si se define de un tamaño o longitud inferior al valor que va a contener. Supongamos que nos precipitamos y definimos el DNI como un campo de tipo cadena de 8 caracteres; si se quiere registrar el  DNI 89234432B que tiene 9 caracteres, es posible que el sistema lo almacene mal, dejando atrás el carácter sobrante. De ahí la importancia de este proceso. 

El lenguaje C es un lenguaje de programación de tipo general. Fue realizado a principios de la década de los setenta por Dennis Ritchie, como evolución del lenguaje B que creara Ken Thompson

Lenguaje de programación orientado a objetos desarrollado por Sun Microsystems para la elaboración de aplicaciones exportables a la red y capaces de operar sobre cualquier plataforma a través, normalmente, de visualizadores WWW. El programa Java se descarga desde el servidor Web y lo interpreta un programa que se ejecuta en el equipo que contiene el explorador de Web

Lenguaje de programación interpretado, diseñado originalmente para la creación de páginas web dinámicas.

MySQL es un sistema de gestión de bases de datos relacional desarrollado bajo licencia dual: Licencia pública general/Licencia comercial por Oracle Corporation y está considerada como la base de datos de código abierto más popular del mundo,​​ y una de las más populares en general junto a Oracle y Microsoft SQL Server, .

SQL (Structured Query Language) es un lenguaje de programación diseñado para almacenar, manipular y recuperar datos almacenados en bases de datos ...

Pascal es un lenguaje de programación creado por el profesor suizo Niklaus Wirth entre los años 1968 y 1969, y publicado en 1970. Su objetivo era crear un lenguaje que facilitara el aprendizaje de programación a sus alumnos, utilizando la programación estructurada y estructuración de datos

Para saber más

Si quieres saber un poco más sobre los tipos de datos generales puedes ver este enlace de Wikipedia:

En el siguiente enlace puedes ver cómo se definen  los tipos de datos en el SGBD Oracle