¿Qué son los identificadores y sus tipos?

Identificadores en Bases de Datos: La Clave del Nombre

Valoración: 4.43 (2798 votos)

En el vasto universo de las bases de datos, cada elemento, desde la base de datos misma hasta una columna individual en una tabla, necesita un nombre único para ser reconocido y utilizado. Este nombre es lo que conocemos como un identificador.

Imagina una base de datos como una gran biblioteca. Los identificadores serían los nombres de los libros, las estanterías, las secciones e incluso las palabras clave que te ayudan a encontrar lo que buscas. Sin estos nombres, sería imposible referirse a un objeto específico, ya sea para consultarlo, modificarlo o eliminarlo.

¿Qué es un identificador de base de datos?
El nombre del objeto de base de datos se conoce como su identificador. En SQL Server, todo puede tener un identificador. Los servidores, las bases de datos y los objetos de base de datos, como tablas, vistas, columnas, índices, desencadenadores, procedimientos, restricciones y reglas, pueden tener identificadores.

La función principal de un identificador es, por lo tanto, proporcionar una forma inequívoca de hacer referencia a un objeto de base de datos. Se crean en el momento en que se define el objeto y son la herramienta fundamental para interactuar con la estructura de la base de datos a través de sentencias de lenguaje de consulta, como SQL.

Índice de Contenido

¿Qué Objetos Tienen Identificadores?

Prácticamente todo dentro de un sistema de gestión de bases de datos puede, y a menudo debe, tener un identificador. Esto incluye una amplia gama de elementos que conforman la estructura y la lógica de la base de datos:

  • Servidores
  • Bases de datos
  • Tablas
  • Vistas
  • Columnas
  • Índices
  • Triggers (disparadores)
  • Procedimientos almacenados
  • Restricciones (Constraints), aunque para algunos tipos son opcionales.
  • Reglas

Por ejemplo, al crear una tabla, le asignas un identificador. Luego, cada columna dentro de esa tabla también recibe su propio identificador. Para seleccionar datos de una columna específica en una tabla determinada, utilizas los identificadores correspondientes, como en SELECT NombreColumna FROM NombreTabla;

Si bien la mayoría de los objetos requieren un identificador, existen excepciones. Una restricción PRIMARY KEY, por ejemplo, puede crearse sin un nombre explícito, y el sistema de base de datos le asignará uno interno si es necesario, pero generalmente es una buena práctica nombrarlas para facilitar su gestión.

Clases de Identificadores: Regulares y Delimitados

Los identificadores se dividen en dos clases principales, basadas en las reglas de nomenclatura que siguen:

Identificadores Regulares

Estos son los identificadores que cumplen estrictamente con un conjunto de reglas predefinidas para su formato. La ventaja principal de los identificadores regulares es que no necesitan ser encerrados entre delimitadores cuando se utilizan en sentencias Transact-SQL u otros lenguajes de consulta. Son sencillos y directos.

Las reglas específicas pueden variar ligeramente entre diferentes sistemas de bases de datos, pero generalmente implican restricciones sobre los caracteres permitidos, especialmente para el primer carácter, y la prohibición de usar palabras reservadas del lenguaje de consulta.

Identificadores Delimitados

Los identificadores delimitados son aquellos que, por diversas razones, no cumplen con todas las reglas de los identificadores regulares. Para poder utilizarlos, deben ser encerrados entre caracteres delimitadores específicos. Los delimitadores comunes son las comillas dobles (") o los corchetes ([ y ]), dependiendo del sistema de base de datos (SQL Server prefiere corchetes, mientras que otros sistemas usan comillas dobles).

¿Por qué usar identificadores delimitados? Principalmente para:

  • Incluir caracteres no permitidos en identificadores regulares, como espacios en blanco, guiones u otros símbolos.
  • Utilizar palabras que son reservadas por el lenguaje de consulta (como Order o Table) como nombres de objetos.

Por ejemplo, un identificador como [SalesOrderDetail Table] o "Order" requiere delimitadores porque contiene un espacio o es una palabra reservada.

Reglas para Nombrar Identificadores (En SQL Server y Similares)

Aunque las reglas pueden variar, los sistemas como SQL Server siguen un conjunto estándar para los identificadores regulares. Estas reglas son particularmente importantes para nombres de variables, funciones y procedimientos almacenados:

  • Primer Carácter: Debe ser una letra (según el estándar Unicode 3.2, incluyendo a-z, A-Z y letras de otros idiomas), un guion bajo (_), una arroba (@) o un signo de número (#).
  • Los identificadores que comienzan con @ suelen denotar variables locales o parámetros.
  • Los que empiezan con # indican tablas o procedimientos temporales locales.
  • Los que comienzan con ## señalan objetos temporales globales. Se desaconseja usar # o ## para nombres de objetos permanentes.
  • Evita nombres que comiencen con @@, ya que se usan para funciones del sistema.
  • Caracteres Subsiguientes: Pueden incluir letras (Unicode 3.2), números decimales, arrobas (@), signos de dólar ($), signos de número (#) o guiones bajos (_).
  • Palabras Reservadas: Un identificador regular no puede ser una palabra reservada del lenguaje de consulta. Las palabras reservadas dependen del nivel de compatibilidad de la base de datos. Por ejemplo, SELECT, FROM, WHERE son palabras reservadas.
  • Espacios y Caracteres Especiales: Los identificadores regulares no pueden contener espacios incrustados ni la mayoría de los caracteres especiales.
  • Longitud: Un identificador regular o delimitado debe tener entre 1 y 128 caracteres. Para tablas temporales locales, el límite es de 116 caracteres.

Si un nombre no cumple con estas reglas (por ejemplo, contiene un espacio o es una palabra reservada), debe ser un identificador delimitado.

Sensibilidad a Mayúsculas/Minúsculas y Collation

La forma en que se comparan los identificadores (y si se distingue entre mayúsculas y minúsculas) depende de la collation.

La collation es un conjunto de reglas que define cómo se ordenan y comparan los datos de caracteres, incluyendo la sensibilidad a mayúsculas y minúsculas (case-sensitivity), acentos (accent-sensitivity), tipos de caracteres (kana-sensitivity) y ancho (width-sensitivity).

¿Qué es un identificador de base de datos?
Un identificador de base de datos es el nombre de un objeto de base de datos. Las tablas, las vistas, las columnas, los índices, los activadores, los procedimientos, las restricciones y las reglas pueden tener identificadores. El identificador se emplea para hacer referencia al objeto en las consultas SQL.

La collation de un identificador depende del nivel en el que se define:

  • Los identificadores de objetos a nivel de instancia (como nombres de inicio de sesión o nombres de bases de datos) heredan la collation predeterminada de la instancia del servidor.
  • Los identificadores de objetos dentro de una base de datos (como nombres de tablas, vistas o columnas) heredan la collation predeterminada de la base de datos.

Esto significa que en una base de datos con una collation sensible a mayúsculas y minúsculas (Case-Sensitive), podrías tener dos tablas llamadas TablaDatos y tabladatos. Sin embargo, en una base de datos con una collation insensible a mayúsculas y minúsculas (Case-Insensitive), estos dos nombres se considerarían idénticos y no podrías crear ambos.

En entornos como Azure SQL Database, puedes configurar la collation de la base de datos y la collation del catálogo (que afecta a los identificadores de los objetos de metadatos) de forma independiente al crear la base de datos.

Comparativa: Identificador Regular vs. Delimitado

CaracterísticaIdentificador RegularIdentificador Delimitado
Cumple reglas estrictasNo necesariamente
Requiere delimitadoresNoSí (" o [])
Permite espacios/caracteres especialesNo
Permite palabras reservadasNo
Uso recomendadoSiempre que sea posible por claridadCuando el nombre no cumple reglas regulares
Ejemplo VálidoMiTablaDatos, columna_id[Tabla de Clientes], "Order"

Preguntas Frecuentes sobre Identificadores

Aquí respondemos algunas dudas comunes sobre los identificadores en bases de datos:

¿Qué pasa si uso una palabra reservada como identificador regular?

Si intentas usar una palabra reservada (como SELECT, FROM, etc.) directamente como nombre de un objeto sin delimitarlo, el sistema de base de datos generará un error porque interpretará la palabra como un comando del lenguaje de consulta.

¿Por qué existen dos tipos de identificadores?

Los identificadores regulares fomentan nombres limpios y sencillos que son fáciles de leer y escribir. Los identificadores delimitados ofrecen flexibilidad para usar nombres que de otra manera serían inválidos, lo cual puede ser útil para compatibilidad con nombres de sistemas heredados o para alinear nombres de objetos con términos de negocio que contienen espacios o caracteres especiales.

¿Los identificadores son siempre sensibles a mayúsculas y minúsculas?

No, la sensibilidad a mayúsculas y minúsculas de los identificadores depende de la collation configurada para la base de datos o la instancia del servidor donde se define el objeto. Una collation sensible a mayúsculas y minúsculas tratará 'NombreTabla' y 'nombretabla' como diferentes, mientras que una insensible a mayúsculas y minúsculas los considerará iguales.

¿Cuál es la longitud máxima de un identificador?

Generalmente, la longitud máxima es de 128 caracteres para la mayoría de los objetos. Para tablas temporales locales, el límite puede ser ligeramente menor, como 116 caracteres en SQL Server.

¿Puedo usar cualquier carácter Unicode en un identificador?

Los identificadores regulares tienen restricciones sobre el primer carácter y los caracteres subsiguientes, basados en el estándar Unicode 3.2 para letras y números. Los identificadores delimitados pueden permitir un rango más amplio de caracteres, pero siempre dentro de los límites de longitud y las capacidades del sistema de base de datos.

Conclusión

Los identificadores son los cimientos sobre los que se construye cualquier interacción con una base de datos. Comprender qué son, qué objetos los utilizan y, fundamentalmente, las reglas para nombrarlos, es crucial para cualquier persona que trabaje con bases de datos. Elegir nombres claros, descriptivos y, siempre que sea posible, utilizar identificadores regulares, facilita la lectura, el mantenimiento y la gestión de la base de datos a largo plazo. Los identificadores delimitados ofrecen flexibilidad cuando es necesaria, pero deben usarse con conocimiento de causa debido a la necesidad de los caracteres delimitadores en cada referencia.

Si quieres conocer otros artículos parecidos a Identificadores en Bases de Datos: La Clave del Nombre puedes visitar la categoría Bases de datos.

Ivan

Soy un entusiasta de la tecnología con especialización en bases de datos, particularmente en MySQL. A través de mis tutoriales detallados, busco desmitificar los conceptos complejos y proporcionar soluciones prácticas a los desafíos cotidianos relacionados con la gestión de datos

Aprende mas sobre MySQL

Subir