Précédent   Forum des professionnels en informatique > Logiciels > Solutions d'entreprise > Business Intelligence > Business Objects
Business Objects Forum d'entraide sur Business Objects. Avant de poster --> FAQ BO, Tutoriels BO
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 25/11/2010, 16h14   #1
Invité de passage
 
Inscription : novembre 2010
Messages : 4
Détails du profil
Informations forums :
Inscription : novembre 2010
Messages : 4
Points : 1
Points : 1
Par défaut Produit cartesien dans BO

Bonjour,
j'ai un probleme sur un univers BO.
je viens de recuperer un univers que je ne connais pas et en faisant une requête simple (2 objets provenant de 2 tables liées directement) BO m'indique qu'il y a produit cartesien.

detail:

table A liée a table B selon jointure:
Code :
A.n2=B.n3 AND A.num1=B.n4
je prend 1 objet de la table A et 1 de la table B
et j'obtiens le message produit cartesien avec le sql suivant:

Code :
1
2
3
4
5
6
7
SELECT   
  A.num1, B.obj1
FROM
  A, C, B
WHERE
  ( C.n2=A.n2 AND C.num1=A.num1 AND A.DT_DEB<= C.DT_DEB AND A.DT_FIN> C.DT_DEB  )
  AND  ( A.n2=B.n3 AND A.num1=B.n4  )
la table C apparait car ds la definition de l'objet de la table A (bouton tables) la table C est aussi selectionnée.
dc je comprend que cela genere 1 autre clause "where"
mais a quoi peux etre du ce produit cartesien??
desolé pour la question mais je debute dans BO et j'aimerais comprendre.

merci d'avance pour votre reponse
boman86 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/11/2010, 11h01   #2
Membre Expert
 
Avatar de nuke_y
 
Inscription : mai 2004
Messages : 1 812
Détails du profil
Informations forums :
Inscription : mai 2004
Messages : 1 812
Points : 1 609
Points : 1 609
Bonjour.

Un produit cartésien c'est la jointure de 2 tables sans clé de jointure. Si la table A fait 1000 lignes et la B 100 lignes, un produit cartésien va générer 100 000 lignes. C'est donc généralement dangereux et incorrect (modèle relationnel => des relations entre les tables).

Maintenant sur votre exemple je ne vois pas. Que donne la requête SQL exécutée directement sur la base de données ?
__________________
Il vaut mieux monopoliser son intelligence sur des bêtises que sa bêtise sur des choses intelligentes.

Mon combat pour les droits des consommateurs face aux abus des grandes marques.
nuke_y est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/11/2010, 11h27   #3
Responsable Business Intelligence
 
Avatar de TomDuBouchon
 
Homme Thomas Cochin
Consultant en Business Intelligence
Inscription : juin 2009
Messages : 3 273
Détails du profil
Informations personnelles :
Nom : Homme Thomas Cochin
Âge : 29
Localisation : France, Seine et Marne (Île de France)

Informations professionnelles :
Activité : Consultant en Business Intelligence
Secteur : Conseil

Informations forums :
Inscription : juin 2009
Messages : 3 273
Points : 5 672
Points : 5 672
Bonjour,

Ce que je ne comprends pas dans votre SQL, c'est pourquoi il y a un appel à la table C, celle-ci n'étant utilisée ni en affichage, ni en condition...
__________________
Pensez à consulter les FAQs BI, les Tutoriels BI et à effectuer des Recherches.
Un message vous a aidé ? Votez en cliquant sur
Votre problème est résolu ? Merci de l'indiquer en cliquant sur le bouton
Vous souhaitez contribuer à la rubrique BI ? Contactez-moi ou un autre responsable de l'équipe BI par MP.
TomDuBouchon est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/11/2010, 12h58   #4
Modérateur
 
Avatar de doc malkovich
 
Homme
Consultant en Business Intelligence
Inscription : juillet 2008
Messages : 949
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Nord (Nord Pas de Calais)

Informations professionnelles :
Activité : Consultant en Business Intelligence

Informations forums :
Inscription : juillet 2008
Messages : 949
Points : 1 466
Points : 1 466
Salut Tom,

oulala ça sent la fin de semaine
la table C apparait car elle est dans les tables de la définition de l'objet de A ( bouton tables ).

Par contre normalement tu as un produit cartésien quand tu n'as pas de chemin défini dans l'univers reliant toutes les tables de la requête.
Or là d'après le SQL ce n'est pas le cas ( on a C -- A -- B ).

Vérifies dans l'univers s'il n'y a pas de contexte, si la table A est aussi dans les tables de l'objet de A.
Et une requête avec en seul objet A.num1, ça donne quoi ?
__________________
Avez-vous 60 secondes pour répondre aux sondages sur BO ici et ?
doc malkovich est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/11/2010, 13h13   #5
Responsable Business Intelligence
 
Avatar de TomDuBouchon
 
Homme Thomas Cochin
Consultant en Business Intelligence
Inscription : juin 2009
Messages : 3 273
Détails du profil
Informations personnelles :
Nom : Homme Thomas Cochin
Âge : 29
Localisation : France, Seine et Marne (Île de France)

Informations professionnelles :
Activité : Consultant en Business Intelligence
Secteur : Conseil

Informations forums :
Inscription : juin 2009
Messages : 3 273
Points : 5 672
Points : 5 672
Effectivement... Je n'y pense pas car je ne l'utilise pas en fait. Je trouve ça dérangeant de pouvoir implémenter des choses qui sont totalement transparentes lors de leur utilisation.
__________________
Pensez à consulter les FAQs BI, les Tutoriels BI et à effectuer des Recherches.
Un message vous a aidé ? Votez en cliquant sur
Votre problème est résolu ? Merci de l'indiquer en cliquant sur le bouton
Vous souhaitez contribuer à la rubrique BI ? Contactez-moi ou un autre responsable de l'équipe BI par MP.
TomDuBouchon est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/11/2010, 09h58   #6
Invité de passage
 
Inscription : novembre 2010
Messages : 4
Détails du profil
Informations forums :
Inscription : novembre 2010
Messages : 4
Points : 1
Points : 1
Bonjour,
dsl de ne pas avoir repondu avant
je vais suivre vos pistes et vous tiens au courant.
en tout cas merci pour vos reponses...
boman86 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/11/2010, 15h07   #7
Invité de passage
 
Inscription : novembre 2010
Messages : 4
Détails du profil
Informations forums :
Inscription : novembre 2010
Messages : 4
Points : 1
Points : 1
rebonjour,

ds BO en epurant au Max la requête en modifiant la definition de l'objet j'obtiens un sql vraiment simple:

Code :
1
2
3
4
5
6
SELECT   
  A.num1, B.obj1
FROM
  A, B
WHERE
A.n2=B.n3 AND A.num1=B.n4
et j'ai toujours le msg de produit cartesien donc du coup la je ne comprend vraiment pas pourquoi BO reagit comme cela.
je crois que je vais essayer detrouver qq'un qui connait l'historique de cet univers car c'est vraiment bizarre.
pour info cette requête lancé sur sqldevelopper retourne qques doublons mais rien de vraiment alarmant.
boman86 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/11/2010, 16h35   #8
Modérateur
 
Avatar de doc malkovich
 
Homme
Consultant en Business Intelligence
Inscription : juillet 2008
Messages : 949
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Nord (Nord Pas de Calais)

Informations professionnelles :
Activité : Consultant en Business Intelligence

Informations forums :
Inscription : juillet 2008
Messages : 949
Points : 1 466
Points : 1 466
Bizarre ...

Tu as une clause Where dans les définitions des objets ?
Tu as des contextes ?
Les cardinalités sont bonnes ?

Tu peux essayer de mettre 2 jointures au lieu d'une seule entre A et B, pour voir
__________________
Avez-vous 60 secondes pour répondre aux sondages sur BO ici et ?
doc malkovich est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/12/2010, 10h19   #9
Invité de passage
 
Inscription : novembre 2010
Messages : 4
Détails du profil
Informations forums :
Inscription : novembre 2010
Messages : 4
Points : 1
Points : 1
Bonjour,

pour info j'ai trouvé le probleme...
il y avait 2 jointures identiques de créées ds l'univers...
j'ai remarqué ca en regardant la liste de jointure par table...
en en supprimant une cela fonctionne...

en tout cas merci pour votre aide
boman86 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 19h06.


 
 
 
 
Partenaires

Hébergement Web