Ir al contenido


Foto

¿Pivot o no pivot?


  • Por favor identifícate para responder
10 respuestas en este tema

#1 felipe

felipe

    Advanced Member

  • Administrador
  • 3.283 mensajes
  • LocationColombia

Escrito 05 junio 2009 - 07:18

Comparto con ustedes esta inquietud, ya que muchas veces me pongo en duda la verdadera utilidad de estas tablas y serí­a bueno saber los diferentes conceptos de cada uno.

Saludos!

[off-topic]Si lo consideran pueden mover el foro donde corresponda[/off-topic]
  • 0

#2 poliburro

poliburro

    Advanced Member

  • Administrador
  • 4.945 mensajes
  • LocationMéxico

Escrito 05 junio 2009 - 08:37

Vale aclarar un poco. :p

Para mi las tablas pivote son aquellas resultantes de extraer las filas de una tabla X y convertirlas en las columnas de una Tabla Y. De ser así­ amigo felipe puedo asegurarte que son en determnados casos necesarias. Un ejemplo:

Tienes una tabla de checadas diarias. Donde la tabla se compone de las columnas

CodEmp, FechaCheq, HorCheq


Ahora se te pide que de esa tabla, para cada empleado Digas el promedio de hora en que realizó su checada. Esto nos daria una tabla resultante con la siguiente estructura:

CodEmp, PromChequFechEne, PromChequFechFeb,..,PromChequFechdic

Para obtener esa tabla resultante debes convertir la información de las filas en columnas. Bajo esta situación una consulta o tabla pivote son necesarias.

Mi punto de vista unicamente.

Saludos.
             
  • 0

#3 felipe

felipe

    Advanced Member

  • Administrador
  • 3.283 mensajes
  • LocationColombia

Escrito 05 junio 2009 - 08:44

Bien amigo Edgar, entiendo tu ejemplo... yo pensé la duda más que todo, en el inicio de un diseño de BD al encontrarnos relaciones Muchos a Muchos, y dado tu ejemplo es una manera diferente de ver los conceptos  ;), gracias por el aporte, ¿alguién más?  :D

Saludos!
  • 0

#4 enecumene

enecumene

    Webmaster

  • Administrador
  • 7.419 mensajes
  • LocationRepública Dominicana

Escrito 05 junio 2009 - 09:41

Perdonen mi ignorancia, pero...es la primera vez que oigo mencionar ese tipo de tablas, ¿donde consigo una información completa sobre ella? :$

Saludos.
  • 0

#5 felipe

felipe

    Advanced Member

  • Administrador
  • 3.283 mensajes
  • LocationColombia

Escrito 05 junio 2009 - 09:55

Perdonen mi ignorancia, pero...es la primera vez que oigo mencionar ese tipo de tablas, ¿donde consigo una información completa sobre ella? :$

Saludos.


Es fácil amigo, solo se trata de aquella tabla intermedia que creamos cuando en nuestro MER tenemos relaciones Muchos a Muchos.

Saludos!
  • 0

#6 poliburro

poliburro

    Advanced Member

  • Administrador
  • 4.945 mensajes
  • LocationMéxico

Escrito 05 junio 2009 - 10:23

La siguiente imagen muestra el uso de las tablas de relación que menciona felipe. Este es un diseño en access.


Imagen Enviada
  • 0

#7 root

root

    mister

  • Miembro Platino
  • PipPipPip
  • 529 mensajes
  • LocationMexico D.F:

Escrito 05 junio 2009 - 11:31

digo po rlo general soy medio bruto para eso de las DB pero que no hay en el ejemplo
la relacion siempre es de uno a muchos ???

hay se ilustra de 1 a ( no se como sale el 8 de ladito ) infinito
osea de 1 a muchos
igual estoy mal
  • 0

#8 felipe

felipe

    Advanced Member

  • Administrador
  • 3.283 mensajes
  • LocationColombia

Escrito 05 junio 2009 - 01:43

digo po rlo general soy medio bruto para eso de las DB pero que no hay en el ejemplo
la relacion siempre es de uno a muchos ???

hay se ilustra de 1 a ( no se como sale el 8 de ladito ) infinito
osea de 1 a muchos
igual estoy mal


Precisamente esa es la funcion de esa tabla.

Propongo el siguiente ejemplo:

DetalleFactura <---> Items


¿Cuantos items puede tener un detalle de factura? y ¿cuantas detalles de facturas pueden tener items?

Esto da: Muchos a Muchos, solución: tabla pivot DetalleFacturaItems

DetalleFactura ---> DetalleFacturaItems <--- Items


Ahora bien, sucede que se puede hacer solamente esto si quisieramos:

DetalleFactura ---> Items


Por lo cuál planteo mi pregunta.

Saludos!
  • 0

#9 eduarcol

eduarcol

    Advanced Member

  • Administrador
  • 4.483 mensajes
  • LocationVenezuela

Escrito 05 junio 2009 - 04:21

por regla general una relacion muchos a muchos no puede existir, por lo cual debe romperse con una relación o pivot, esto se debe principalmente a la forma como se maneja la clave foranea en el MER y el MOdelo Relacional.  Se dice que la clave foranea va siempre del lado de la relacion muchos, si hubiese esta relacion de muchos a muchos se estaria cruzando la clave foranea cosa que convertiria eso en una relacion uno a uno automaticamente.  Asi que desde mi humilde punto de vista es la razon de la existencia de las Pivot o Relaciones.

El ejemplo que pones de detallefacturas  -- items esta mal planteado, ya que lo correcto es como lo hicistes al final.  Se diria que UN Detalle factura tiene un solo item, mientras que UN Item esta en muchos detalles factura.  Siempre la ENtidad que comparas lo haces con un solo registro

Espero que se entienda
  • 0

#10 Delphius

Delphius

    Advanced Member

  • Administrador
  • 6.295 mensajes
  • LocationArgentina

Escrito 05 junio 2009 - 09:32

Hola,
Es la primera vez que "escucho" el término PIVOT para referirse a las tablas intermedias.

Habí­a escuchado sobre tablas dinámicas, y campos PIVOT, que son ampliamente usados en los cubos de datos para los sistemas de tomas de decisiones, data minning, etc.

Yo en una ocasión hablé sobre el tema de la relación muchos a muchos en YR, y también se trató de forma breve en clubdelphi (Véase desde el post 47).

En resumen, la relación M:N es una manifestación en lo general y debe romperse puesto que las bases de datos trabajan en lo particular. La relación M:N implica una serie de sucesos individuales y es por ello que se necesita un nuevo grado de abstracción a fin de representar y registrar la información detallada.

Ahora bien, la pregunta de si es útil o no... pues yo dirí­a... que será útil en la medida en que su presencia permita representar algún elemento de la realidad útil para el dominio.

Si se tiene la certeza de que la tabla intermedia no contendrá más de x registros (siendo x algún número bastante inferior como para justificar la no presencia de dicha tabla), puede, en un principio, obviarse y transformar dichos registros en campos para la tabla una de sus tablas maestras. Aunque deberí­a verse, si esto afecta en alguna otra parte de las relaciones con otras entidades.

Saludos,
  • 0

#11 felipe

felipe

    Advanced Member

  • Administrador
  • 3.283 mensajes
  • LocationColombia

Escrito 06 junio 2009 - 01:56

por regla general una relacion muchos a muchos no puede existir, por lo cual debe romperse con una relación o pivot, esto se debe principalmente a la forma como se maneja la clave foranea en el MER y el MOdelo Relacional.  Se dice que la clave foranea va siempre del lado de la relacion muchos, si hubiese esta relacion de muchos a muchos se estaria cruzando la clave foranea cosa que convertiria eso en una relacion uno a uno automaticamente.  Asi que desde mi humilde punto de vista es la razon de la existencia de las Pivot o Relaciones.

El ejemplo que pones de detallefacturas  -- items esta mal planteado, ya que lo correcto es como lo hicistes al final.  Se diria que UN Detalle factura tiene un solo item, mientras que UN Item esta en muchos detalles factura.  Siempre la ENtidad que comparas lo haces con un solo registro

Espero que se entienda


Claro Eduardo, es entendible y obvio lo que expones... marque allí­ donde mencionas la relación ejemplo que propuse, no es que este mal planteada, solo es la base para definir las demás; allí¬ es donde podemos decir: Muchos items en el detalle y muchos detalles con un mismo item, espero se entienda  ;)

Este tema se pone interesante  :p

Saludos!
  • 0




IP.Board spam blocked by CleanTalk.