Atributos de entidad en el diseño de bases de datos

Cuando se definen atributos para las entidades, normalmente se trabaja con el administrador de datos para decidir los nombres, los tipos de datos y los valores adecuados para los atributos.

Convenios de denominación para atributos de entidad

La mayoría de organizaciones tienen convenios de denominación. Además de los siguientes convenios, los administradores de bases de datos también basan las definiciones de atributos en palabras de clases. Una palabra de clase es una única palabra que indica la naturaleza de los datos a los que representa el atributo.

Por ejemplo, la palabra NUMBER de clase indica un atributo que identifica el número de una entidad. Por lo tanto, los nombres de atributos que identifican a los números de identidades deben incluir la palabra de clase NUMBER. Algunos ejemplos son EMPLOYEE_NUMBER, PROJECT_NUMBER y DEPARTMENT_NUMBER.

Cuando una organización no tiene unas direcciones bien definidas para los nombres de atributos, los administradores de bases de datos intentan determinar cómo los diseñadores de bases de datos utilizan atributos denominados históricamente. Se producen problemas cuando varias personas inventan sus propios esquemas de denominación sin consultarse entre ellos.

Tipos de datos para atributos de entidad

Debe especificarse un tipo de datos para cada atributo. La mayoría de organizaciones tienen directrices bien definidas para utilizar los diferentes tipos de datos. A continuación se proporciona una visión general de los principales tipos de datos que se pueden utilizar para los atributos de las entidades.

Tipos de datos de serie
Datos que contienen una combinación de letras, números y caracteres especiales. Los tipos de datos de serie se listan a continuación:
  • CHARACTER: Series de caracteres de longitud fija. El nombre abreviado común para este tipo de datos es CHAR.
  • VARCHAR: Series de caracteres de longitud variable.
  • CLOB: Series de objetos grandes de caracteres de longitud variable, que se suelen utilizar cuando es posible que una serie de caracteres exceda los límites del tipo de datos VARCHAR.
  • GRAPHIC: Series gráficas de longitud fija que contienen caracteres de doble byte.
  • VARGRAPHIC: Series gráficas de longitud variable que contienen caracteres de doble byte.
  • DBCLOB: Series de longitud variable de caracteres de doble byte en un objeto grande.
  • BINARY: Una secuencia de bytes que no está asociada a una página de códigos.
  • VARBINARY: Series binarias de longitud variable.
  • BLOB: Series binarias de longitud variable en un objeto grande.
  • XML: Serie de longitud variable que es una representación interna de XML.
Tipos de datos numéricos
Datos que contienen dígitos. Los tipos de datos numéricos se listan a continuación:
  • SMALLINT: para enteros pequeños.
  • INTEGER: para enteros grandes.
  • BIGINT: para valores más grandes.
  • DECIMAL (p, s) o NUMERIC (p, s), donde p es precisión y s es escala: para números decimales empaquetados con precisión p y escala s. Precisión es el número total de dígitos y escala es el número de dígitos a la derecha de la coma decimal.
  • DECFLOAT: para números decimales de coma flotante.
  • REAL: para números de coma flotante de precisión simple.
  • DOUBLE: para números de coma flotante de precisión doble.
Tipos de datos de fecha y hora
Valores de datos que representan fechas, horas o indicaciones de fecha y hora. Los tipos de datos de fecha y hora se listan a continuación:
  • DATE: Fechas con un valor de tres partes que representa un año, mes y día.
  • TIME: Fechas con un valor de tres partes que representa la hora del día en horas, minutos y segundos.
  • TIMESTAMP: Indicaciones de fecha y hora con un valor de siete partes que representa una fecha y hora mediante año, mes, día, hora, minuto, segundo y microsegundo.
ejemplos
Puede utilizar los siguientes tipos de datos para los atributos de la entidad EMPLOYEE:
  • EMPLOYEE_NUMBER: CHAR(6)
  • EMPLOYEE_LAST_NAME: VARCHAR(15)
  • EMPLOYEE_HIRE_DATE: DATE
  • EMPLOYEE_SALARY_AMOUNT: DECIMAL(9,2)

Los tipos de datos que selecciona son definiciones empresariales del tipo de datos. Durante el diseño físico de bases de datos es posible que necesite cambiar definiciones de tipos de datos o utilizar un subconjunto de estos tipos de datos. Puede que la base de datos o el lenguaje principal no dé soporte a todas estas definiciones o puede que realice una selección diferente por motivos de rendimiento.

Por ejemplo, es posible que tenga que representar cantidades monetarias, pero Db2 y muchos lenguajes de host no tienen un tipo de datos MONEY. En Estados Unidos, la elección natural del tipo de datos SQL en esta situación sería DECIMAL(10,2) para representar los dólares. Pero también es posible que considere el tipo de datos INTEGER para obtener un rendimiento rápido y eficaz.

Valores para atributos de clave

Al diseñar una base de datos, debe decidir qué valores son aceptables para los distintos atributos de una entidad. Por ejemplo, puede que no desee permitir datos numéricos en un atributo para un nombre de persona. Los tipos de datos que elige limitan los valores que se aplican a un atributo determinado, pero también puede utilizar otros mecanismos. Estos otros mecanismos son dominios, valores nulos y valores por omisión.

Dominios
Un dominio describe las condiciones que un valor de atributo debe cumplir para ser un valor válido. Algunas veces el dominio identifica un rango de valores válidos. Cuando se define el dominio para un atributo determinado, se aplican reglas empresariales para asegurar que los datos tengan sentido. Por ejemplo:
  • Un dominio puede establecer que un atributo de número de teléfono debe ser un valor de 10 dígitos que únicamente contenga números. No querrá que el número de teléfono esté incompleto ni que contenga caracteres alfabéticos o especiales con lo cual no sería válido. Puede elegir entre utilizar un tipo de datos numérico o un tipo de datos de caracteres. Sin embargo, el dominio establece la regla empresarial de que el valor debe ser un valor de 10 dígitos formado por números. Antes de finalizar esta regla, considere si necesita números de teléfono internacionales, que tienen formatos diferentes.
  • Un dominio puede indicar que un atributo de mes debe ser un valor de 2 dígitos en el rango 01-12. De nuevo, puede elegir entre utilizar tipos de datos de fecha y hora, de caracteres o numéricos para este valor, pero el dominio exige que el valor debe estar dentro del rango de 01 a 12. En este caso, la incorporación del mes en un tipo de datos de fecha y hora es probablemente la mejor opción. Esta decisión debería revisarse de nuevo durante el diseño físico de la base de datos.
Valores nulos
Un valor nulo es un indicador especial que representa la ausencia de un valor. Al diseñar atributos para entidades, a veces puede encontrarse con que un atributo no tiene un valor válido para cada instancia de la entidad. Por ejemplo, puede que desee un atributo para un nombre medio de persona, pero no puede exigir un valor porque algunas personas no tienen un nombre medio. En estos casos, puede definir el atributo de modo que pueda contener valores nulos.

La ausencia del valor puede deberse a que es desconocido, todavía no se ha proporcionado o no existe. DBMS trata el valor nulo como un valor real, no como un valor cero, un blanco ni una serie vacía.

Del mismo modo que debería permitirse que algunos atributos contengan valores nulos, otros atributos no deberían contener valores nulos.

Por ejemplo, para la entidad EMPLOYEE, es posible que no desee permitir que el atributo EMPLOYEE_LAST_NAME contenga un valor nulo.

Valores predeterminados
Un valor por omisión es un valor que se aplica a un atributo si no hay disponible ningún otro valor válido. En algunos casos, puede que no desee que un atributo específico contenga un valor nulo, pero no desea exigir que el usuario o programa proporcione siempre un valor. En este caso, puede ser apropiado utilizar un valor por omisión. Por ejemplo, supongamos que no desea que el atributo EMPLOYEE_HIRE_DATE contenga valores nulos y que no desea exigir a los usuarios que proporcionen estos datos. Si los datos sobre empleados nuevos se añaden generalmente a la base de datos el primer día de contratación del empleado, podría definir un valor por omisión de la fecha actual.