Siguiente: Cardinalidad Subir: El Modelo Entidad-Relación Anterior: Artículos científicos: un ejemplo   Índice General

Atributos y Llaves

Los atributos, tanto de entidades como de relaciones, toman sus valores posibles de un conjunto llamado dominio. El dominio es, entonces, el conjunto de valores posibles que puede tomar un atributo dado de un conjunto de entidades dado. Por ejemplo, la fecha de nacimiento de una persona puede ser una fecha cualquiera anterior a la fecha actual. El dominio de las fechas de nacimiento, entonces, es el subconjunto de fechas que son anteriores (o iguales, en algunos casos) a la fecha de hoy. El dominio de los números de teléfono, en Chile, podría ser una cadena de caracteres que cumpliera con el formato (XX) XXX-XXXX (simplificado), donde las X son dígitos. En general los dominios serán más bien amplios, aunque cuando se lleva a cabo la implementación es preferible restringir los dominios lo más posible de manera que el gestor de bases de datos automáticamente haga algunas verificaciones sobre los datos que se almacenan, para asegurar la integridad de los datos. Veremos cómo hacer esto en la sección siguiente.

Algunos atributos de un conjunto de entidades son especiales. De partida es necesario definir cuáles de ellos son opcionales y cuáles son obligatorios. Como el nombre lo indica, un atributo obligatorio es aquel que siempre debe estar definido para toda entidad. Un atributo opcional, en cambio, puede quedar sin definir para algunas de las entidades del conjunto de entidades. En general, es deseable que la mayor cantidad de atributos posible se definan como obligatorios, puesto que permite simplificar mucho algunas operaciones, al tiempo que asegura una mejor integridad de los datos. Veremos más sobre esto en la sección siguiente.

Otro concepto importante relacionado con los atributos es el de las llaves. Una superllave de una entidad es un atributo o conjunto de atributos que permite distinguir de modo único cada entidad dentro de un conjunto de entidades. Por ejemplo, el nombre y RUT de una persona sería una superllave. Sólo el nombre no podría serlo, puesto que dos personas pueden tener el mismo nombre. Un conjunto de entidades puede tener más de una superllave; otra superllave para personas podría ser el nombre, la fecha de nacimiento y la dirección postal, puesto que es muy improbable que dos personas hayan nacido el mismo día, vivan en la misma casa y se llamen igual; pero omitiendo cualquiera de esos atributos es razonable esperar encontrar coincidencias.

Además, una superllave puede contener más atributos de los necesarios para identificar unívocamente cada entidad. Eliminando los atributos innecesarios de las superllaves se obtienen las llaves candidatas. Por ejemplo, en el caso del nombre y RUT, usando sólo el RUT serviría también como superllave, y por lo tanto como llave candidata. Observe que todos los atributos que forman una llave candidata son obligatorios, puesto que si falta alguno, no es posible identificar completamente la entidad.

Finalmente, se escoge una de las llaves candidatas y se designa como llave primaria del conjunto de entidades.

Algunos conjuntos de entidades pueden no tener atributos suficientes para formar una llave primaria. En este caso, se dice que es un conjunto de entidades débil. Un ejemplo claro sería un modelo para almacenar facturas de venta de bienes o servicios. Cada factura en sí es una entidad fuerte; cada línea dentro de una factura es una entidad débil, puesto que no se puede identificar una línea en particular sino en tanto pertenece a una factura. Así cada factura tendría una línea número 1, una línea número 2, etc; por lo tanto, hablamos de una línea en particular como la línea número 5 de la factura número 18.289.

En nuestro ejemplo anterior, todos los conjuntos de entidades son fuertes, puesto que sus elementos cuentan con los atributos suficientes para ser identificados unívocamente. Para ilustrar este nuevo concepto, incluiremos en nuestro modelo los datos de los experimentos que se publican en cada artículo para obtener observaciones sobre las hipótesis que los autores plantean. Cada artículo puede utilizar uno, ninguno o varios experimentos; algunos experimentos serán similares o iguales entre artículos; no hay ningún código asociado intrínsecamente a un experimento, ni modo alguno de distinguirlos de forma unívoca entre todos los artículos. Pero dentro de cada artículo, cada experimento es único. Así, un experimento tendrá un atributo obligatorio que le permitirá ser discriminado de entre el conjunto de experimentos de un mismo artículo (por ejemplo, el número que el mismo autor le asigna en el artículo).

La figura 5 ilustra el nuevo diagrama E-R. Observe que el conjunto de entidades de experimentos se ha marcado como un rectángulo doble, lo cual indica que es débil.

Figura 5: El diagrama 4 con una entidad débil
Image ent-rel-debil

Con respecto a las llaves primarias de nuestro modelo de ejemplo, los conjuntos de entidades fuertes tienen por definición llaves primarias. Sin embargo, en muchos casos estas llaves primarias son complejas de implementar. En el caso de las personas chilenas, usar el RUT es una elección natural. Para personas de otros países, la elección se torna complicada: se podría escoger como llave primaria un número identificador por país en conjunto con el país que emite dicho número. Este esquema puede verse en problemas si existe algún país que no emite números identificadores para sus habitantes. Asimismo, identificar un artículo es complejo: el uso del título no es suficiente, puesto que otro artículo podría llevar el mismo título. Una elección teóricamente mejor sería el uso del resumen como llave primaria, elección que en la práctica es irrisoria cuando menos. Para resolver este problema práctico agregaremos a cada una de estos conjuntos un identificador numérico, ficticio, único dentro de cada conjunto de entidades, independiente de cada uno de los identificadores de los otros conjuntos. Este identificador se generará internamente en la base de datos, y no tendrá ningún significado fuera de ella. Una convención usual es ponerle el nombre del conjunto de entidades, en singular, seguido de id, como en autor_id.


Siguiente: Cardinalidad Subir: El Modelo Entidad-Relación Anterior: Artículos científicos: un ejemplo   Índice General
Alvaro Herrera 2004-10-04

Valid HTML 3.2