Unidad 2.- "Diseño de la Base de Datos y el modelo Entidad Relación".
Tarea 3.2.5 Claves.
Es importante poder especificar cómo se distinguen las entidades y las relaciones. Una superclave es un conjunto de uno o más atributos que, considerados conjuntamente, nos permiten identificar de forma única a una entidad en el conjunto de entidades. Así. seguridad-social es una superclave. Análogamente, la combinación de nombre-cliente y seguridad-social es una superclase para el conjunto de entidades cliente. El atributo nombre-cliente de cliente no es una superclave, ya que varias personas podrían tener el mismo nombre.
Una superclave puede contener atributos ajenos. Si k es una superclave, entonces también lo será cualquier superclase de k. A menudo estamos interesados en superclaves para las cuales ningún subconjunto propio es una superclave. Dichas superclaves mínimas se llaman candidatas.
Es posible que varios conjuntos de atributos distintos pudieran servir como claves candidatas. Supóngase que una combinación de nombre-cliente y calle es suficiente para distinguir entre los miembros del conjunto de entidades cliente. Entonces {seguridad-social} y {nombre-cliente, calle} son claves candidatas. Aunque los atributos seguridad-social y nombre-cliente juntos pueden distinguir entidades cliente, sus combinaciones no forman una clave candidata, ya que el atributo seguridad-social por sí solo es una clave candidata.
Usaremos el término clave primaria para denotar una clave candidata que el diseñador elige como el medio principal de identificar entidades dentro de un conjunto de entidades.
Definición de clave primaria. |
Un conjunto de entidades que no tengan atributos suficientes para formar una clave primaria se les denomina conjunto de entidades débil. Un conjunto de entidades que tiene una clave primaria se denomina conjunto de entidades fuerte.
Para que un conjunto de entidades débil sea significativo, debe ser parte de un conjunto de relaciones una a muchas.
Ilustración y ejemplo de entidad débil y entidad fuerte. |
Un miembro de un conjunto de entidades fuerte es, por definición, una entidad dominante, mientras que un miembro de un conjunto de entidades débil es una entidad subordinada.
Aunque un conjunto de entidades débil no contiene un clave primaria, debe haber un medio de distinguir entre todas aquellas entidades en el conjunto de entidades que dependen de una entidad fuerte determinada.
El discriminador de un conjunto de entidades débil es un conjunto de atributos que permite que se haga esta distinción. Por ejemplo, el discriminador del conjunto de entidades débil transacción es el atributo número-transacción, ya que para cada cuenta un número de transacción identifica de forma única una única transacción.
La clave primaria de un conjunto de entidades débil está formada por la clave primaria del conjunto de entidades fuerte de la que depende su existencia y su discriminador. En el caso del conjunto de entidades transacción, su clave primaria es {número-cuenta, número-transacción}.
La clave primaria de un conjunto de entidade nos permite distinguir entre las diversas entidades del conjunto. Necesitamos un mecanismo similar para distinguir entre las diversas relaciones de un conjunto de relaciones.
Sea R un conjunto de relaciones que implica a los conjuntos de entidades E1, E2, ..., En. Supóngase que los nombres de atributos de todas las claves primarias son únicos. Supóngase que R no tiene atributos. Entonces los atributos que describen las relaciones individuales del conjunto R, denotadas por (R), son
clave-primaria(E1) ∪...∪clave-primaria(En)
En el caso de que R tenga atributos descriptivos, digamos {a1, a2, ..., am}, entonces el conjunto atributo(R) consta de
clave-primaria(E1) ∪...∪clave-primaria(En)∪{a1, a2, ..., am}
Para ilustrar lo anterior, considérese el conjunto de relaciones CtaCli, que implica a los siguientes conjuntos de entidades:
- cliente, con la clave primaria seguridad-social.
- cuenta, con la clave primaria número-cuenta.
Puesto que el conjunto de relaciones tiene el atributo fecha, el conjunto atributo(CtaCli) se compone de los tres atributos seguridad-social, número cuenta y fecha.
La composición de la clave primaria depende de la cardinalidad de asignación y de la estructura de los atributos asociados con el conjunto de relaciones R.
Si el conjunto de relaciones R no tiene atributos asociados, entonces el conjunto atributo(R) forma una superclave. Esta superclave es una clave primaria si la cardinalidad de asignación es de muchas a muchas. Considérese, una vez más, el conjunto de relaciones CtaCli. Si el conjunto de relaciones es muchas a muchas, entonces su clave primaria es {seguridad.social}. Si el conjunto de relaciones es muchas a una de cliente a cuenta, entonces su clave primaria es {seguridad-social}, ya que una persona puede tener una cuenta asociada con ella misma.
Si el conjunto de relaciones R tiene varios atributos asociados con él, entonces una superclave está formada como antes, con la posible adición de uno o más de estos atributos. La estructura de la clave depende tanto de la cardinalidad de asignación como de las semánticas de conjuntos de relaciones.
Glosario
- Atributo.- representa una propiedad de interés de una
- Entidad.- representación de un objeto o concepto del mundo real que se describe en una base de datos.
- Cardinalidad de asignación.- Para un conjunto de relaciones binarias R entre los conjuntos de entidades A y B, la correspondencia de cardinalidades debe ser una de las siguientes:
*Uno a uno. Una entidad en A se asocia con a lo sumo de la endidad en B, y una entidad en B se asocia con a lo sumo una endidad en A.
*Uno a varios. Una entidad en A se asocia con cualquier número de entidades en B (ninguna o varias). Una entidad en B, sin embargo, se puede asociar con a los sumo a una entidad en A.
*Varios a uno. Una entidad en A se asocia con a los sumo una entidad en B. Una entidad en B, sin embargo se puede asociar con cualquier número de entidades (ninguna o varias) en A.
* Varios a varios. Una entidad en A se asocia con cualquier número de entidades (ninguna o varias) en B, y una entidad en B se asocia con cualquier número de entidades (ninguna o varias) en A.
No hay comentarios:
Publicar un comentario