Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » Mysql »

Atributos multivaluados

Estas en el tema de Atributos multivaluados en el foro de Mysql en Foros del Web. Perdón que reviva este tema, pero andaba buscando información acerca de si MySQL soportaba atributos multivalorados y me encontré con este post... Me parece correcto ...
  #1 (permalink)  
Antiguo 09/07/2013, 17:27
Leonardo_Manrique
Invitado
 
Mensajes: n/a
Puntos:
Atributos multivaluados

Perdón que reviva este tema, pero andaba buscando información acerca de si MySQL soportaba atributos multivalorados y me encontré con este post... Me parece correcto revivir este tema con la información que voy a propiciar dado que le puede servir a personas que puedan llegar a buscar información sobre atributos multivalorados y se encuentren con este post:

En realidad, yo creo que es correcto tratar un posible atributo como una entidad (el famoso caso de los teléfonos de un empleado, por ejemplo) sí y sólo sí uno quiere modelar o agregar información extra de dicho atributo: en el caso del teléfono, por ejemplo podríamos agregar la ubicación del teléfono (Departamento de Compras, Departamento de Ventas, etc.). Si no es el caso, yo creo que la mejor opción es simplemente agregarlo como un atributo "multivalorado", obviamente especificando límites (inferior y superior), por ejemplo:

"Los empleados pueden tener cero, uno o dos teléfonos."

En este ejemplo claramente vemos que el valor de límite inferior de los teléfonos de un empleado es cero y el superior es dos.

Yo me hago la siguiente pregunta:

¿Qué sentido tiene tomar a los teléfonos como entidad si sólo vamos a hacerlo para especificar una cantidad (a no ser que el dominio del problema lo requiera así o bien que queramos agregar más atributos acerca de teléfono como aclaré arriba)?

Eso es lo que yo creo.

Leo!
  #2 (permalink)  
Antiguo 09/07/2013, 17:51
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 4 meses
Puntos: 2658
Respuesta: Atributos multivaluados

La regla es absoluta: No se deben revivir posts obsoletos, por ninguna razón.

Y no. En el modelo relacional los atributos no pueden ser multivaluados. Nunca.
Si quieres una fundamentación teórico-práctica, te la puedo dar, pero es un poquitín extensa, pero en definitiva surge de un concepto básico: Una entidad es un conjunto lógico de dominios. Y cada imagen del dominio es siempre única.
¿Te acuerdas de ese concepto?
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #3 (permalink)  
Antiguo 09/07/2013, 20:02
Leonardo_Manrique
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Atributos multivaluados

Cita:
Iniciado por gnzsoloyo Ver Mensaje
La regla es absoluta: No se deben revivir posts obsoletos, por ninguna razón.

Y no. En el modelo relacional los atributos no pueden ser multivaluados. Nunca.
Si quieres una fundamentación teórico-práctica, te la puedo dar, pero es un poquitín extensa, pero en definitiva surge de un concepto básico...
Comparto lo que decís hasta este punto:

Cita:
Una entidad es un conjunto lógico de dominios.
Pero no considero que sea cierto que los atributos de un conjunto de entidades deban ser únicos. Cito a Silberschatz y compañía en su libro Fundamentos de Bases de Datos:

Cita:
2.4.1. Uso de conjuntos de entidades o atributos
[...] Al tratar un teléfono como un atributo número-teléfono implica que cada
empleado tiene precisamente un número de teléfono. Al tratar un teléfono como una entidad teléfono permite que los empleados puedan tener varios números de teléfono (incluido ninguno) asociados a ellos. Sin embargo, se podría definir fácilmente número-teléfono como un atributo multivalorado para permitir varios teléfonos por empleado.

La diferencia principal es que al tratar un teléfono como una entidad se modela mejor una situación en la que se puede querer almacenar información extra sobre un teléfono, como su ubicación, su tipo (móvil, videoteléfono o fijo) o quiénes comparten un teléfono. Así, al tratar un teléfono como una entidad es más general que tratarlo como un atributo y es apropiado cuando la generalidad pueda ser de utilidad.
Lo que yo dije...

Cita:
Por tanto, aparecen dos cuestiones naturales: ¿qué constituye un atributo? y ¿qué constituye un conjunto de entidades? Por desgracia no hay respuestas simples. Las distinciones dependen principalmente de la estructura de la empresa del mundo real que se esté modelando y de la semántica asociada con el atributo en cuestión.
Podés lograr un modelo mucho más óptimo en algunos casos siguiendo esta "teoría".

Un saludo.
  #4 (permalink)  
Antiguo 09/07/2013, 20:45
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 4 meses
Puntos: 2658
Respuesta: Atributos multivaluados

Creo que estás cruzando dos conceptos de diferente orden.
A nivel del modelo relacional, tal y como lo plantean Kort y Silberschatz (lo acabo de releer nuevamente, para más seguridad), existe la posibilidad de que existan "atributos multivalorados", pero lo que el libro plantea no es la existencia de campos de tabla que contengan N valores, sino que la instancia de la entidad relación (tupla) pueda tener un atributo que presente N variaciones de valores para ese atributo dado.
Eso se puede ver claramente cuando llegas al item 2.4.1:
Cita:
(...) Al tratar un teléfono como un atributo número-teléfono implica que cada empleado tiene precisamente un número de teléfono. Al tratar un teléfono como una entidad teléfono permite
que los empleados puedan tener varios números de teléfono (incluido ninguno) asociados a ellos. Sin embargo, se podría definir fácilmente número-teléfono como un atributo multivalorado para permitir varios teléfonos por empleado.
La diferencia principal es que al tratar un teléfono como una entidad se modela mejor una situación en la que se puede querer almacenar información extra sobre un teléfono, como su ubicación, su tipo (móvil, videoteléfono o fijo) o quiénes comparten un teléfono. Así, al tratar un teléfono como una entidad es más general que tratarlo como un atributo y es apropiado cuando la generalidad pueda ser de utilidad
Y es en ese caso donde empieza a visualizar la normalización.
En la siguiente etapa, es decir en la construcción física de las bases de datos, como cada campo debe tener un valor atómico, y no pueden existir datos múltiples en él, se requiere que se divida la entidad en diferentes tablas.
Por ello, la definición de "multivalorado" es aplicable sólo al modelo lógico, y no al modelo físico, y sólo desde el punto de vista conceptual.

De hecho, en ese punto entra a jugar lo mencionado en el ítem 2.2.1 del mismo libro (correspondencia de cardinalidades), ya que en el ejemplo mismo que usa para mencionar los atributos multivaluados, hay una correspondencia 1:N entre el empleado y sus teléfonos, por tanto el umbral y límite pasan a ser restricciones del modelado, y por ende se definen como entidades relacionadas.

Respecto a lo que yo comento, sobre a que no es admisible crear esos atributos multivaluados: En este foro tratamos más con el modelo físico, que con el modelo lógico. Por eso decimos habitualmente que esta unicidad de valores es algo mandatorio.
En este sentido, conviene ver lo que dicen ambos autores en el mismo libro, algo más adelante:
Cita:
2.9.5. Atributos multivalorados
Se ha visto que los atributos en un diagrama E-R generalmente se asocian directamente en columnas para las tablas apropiadas. Los atributos multivalorados, sin embargo, son una excepción; para estos atributos se crean tablas nuevas.
Es decir, terminamos en el mismo punto: Atributos multivalorados, al momento de la implementación, se transforman en registros únicos de una tabla relacionada, por medio de la normalización.

Ergo: No existen los atributos (columnas o campos) multivalorados en una base de datos relacional.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)

Última edición por gnzsoloyo; 10/07/2013 a las 14:55
  #5 (permalink)  
Antiguo 10/07/2013, 16:13
Leonardo_Manrique
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Atributos multivaluados

Cita:
Iniciado por gnzsoloyo Ver Mensaje
Creo que estás cruzando dos conceptos de diferente orden.
Por ello, la definición de "multivalorado" es aplicable sólo al modelo lógico, y no al modelo físico, y sólo desde el punto de vista conceptual.
O.o imagino que con "modelo físico" te referís a la implantación del diseño del modelo lógico, no? Porque si con modelo físico te referís a nivel físico me entran dudas ya que en base al estándar ANSI/SPARC se supone que no nos tenemos que "hacer drama" por el mismo.

Fuera de eso, la realidad es que no voy a discutir lo indiscutible, tenés toda la razón y yo estaba en un error . Al momento de estudiar había salteado ese apartado =/ Muchas gracias por esto! (Me salvaste de muchos errores en futuros diseños).

Un saludo,
Leo!
  #6 (permalink)  
Antiguo 10/07/2013, 17:30
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 4 meses
Puntos: 2658
Respuesta: Atributos multivaluados

En el rubro de Bases de Datos, se denomina "modelo físico" únicamente a los esquemas de tablas de una base de datos. Lo otro es "arquitectura de servidores", y tiene muchísima relación con la la escalabilidad, disponibilidad, performance y otros elementos que hacen a la administración de BBDD. Pero no son el modelo físico.

En esencia, en BBDD no se habla de hardware. Sólo de estructuras de datos (bases, esquemas, tablas).

Me alegra que te sirviera la aclaración. Este rubro es algo retorcido, lleno de vericuetos que no se encuentran en programación. Lleva algo de tiempo entender algunos conceptos (ni al cursar la materia en la facultad terminas de dominarlo)
Suerte

Saludos.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)

Última edición por gnzsoloyo; 10/07/2013 a las 17:53
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 17:13.