cancel
Showing results for 
Search instead for 
Did you mean: 

what will happen if no cardinality set of a join?

Former Member
0 Kudos

query will return more data or less data? i'm not sure, because i set the cardinality when i create a join.

thanks advance!

Accepted Solutions (1)

Accepted Solutions (1)

Former Member
0 Kudos

Hi,

Nothing wrong in not defining cardinalities. Every thing works fine as it is with or without cardinalities.

Defining cardinalities will give you lot of advantages:

1. Automatic context detection

2. Avoiding warning messages during Integrity check

3. Confusion to new users viewing or modifiing the universe

So its always best practice to define cardinalities. Other than that every thing works fine.

Hope this helps!

Answers (5)

Answers (5)

Former Member
0 Kudos

Hi,

You always need to create the joins and set the cardinalities as best practice, the universe won't automatically pick up the relationships between your tables. That said you could read up on External Strategies, but on the whole you need to be adding the joins and set the cardinalities yourself as you add tables...

Cardinalities express the maximum number of instances of an entity A that can be associated to corresponding instances

in another entity B.

Cardinalities need to be defined while setting up joins in a universe. If not, we encounter join path problems such

as loops and traps, and joining tables will result in Cartesian products.

Setting cardinalities is mandatory. If the cardinalities are not set, we cannot detect loops.

Former Member
0 Kudos

You always need to create the joins and set the cardinalities as best practice

correct

the universe won't automatically pick up the relationships between your tables.

Incorrect. The joins will be generated as part of the query without cardinalities being set.

Cardinalities need to be defined while setting up joins in a universe. If not, we encounter join path problems such

as loops and traps, and joining tables will result in Cartesian products.

Incorrect. It is just easier to resolve loops because of the detect context algorithm. You can create contexts without any cardinalities set if you do it manually.

Setting cardinalities is mandatory.

Incorrect

If the cardinalities are not set, we cannot detect loops.

Correct

Former Member
0 Kudos

Hi,

You need to setup cardinalities inorder to find loops and traps (fan trap & chasm trap)

and resolve loops.

All the Best,

Madhu...

Former Member
0 Kudos

You don't, so long as you know what the cardinalities are, if you are going to resolve them manually. D1 - F1, D1 - F2, D2 - F1 and D2 - F2 creates a loop, which would be resolved by one context for D1 - F1 and D2 - F1 and one for D1 - F2 and D2 - F2 and that's without knowing the cardinalities.

You are correct, though, if you try to use the detect functionality within Designer.

Personally, I see absolutely no reason for not setting cardinalities. Like adding object descriptions, it's another step closer to a properly-constructed universe that you'd be happy to inherit.

Former Member
0 Kudos

Hi,

You can get more information on this topic in Designer Guide.

You can dowload the same from http://help.sap.com/------Click SAP Business Objects -


>All products.

Hope it helps.

Thanks,

Sands

Former Member
0 Kudos

The cardinality of a join does not have a role in the SQL generated when you run a query. However, Designer uses cardinalities to determine contexts and valid query paths.

A context is a collection of joins which provide a valid query path. You use contexts to resolve join problems that can return too many or too few rows because of the way that tables are linked in the target database. Contexts affect the SQL generated for a query as they either direct the end user to take a particular join path, or solve a join path problem:

"You need to verify that cardinalities are correctly set for all joins in your schema to ensure that you have the correct contexts, and that you have valid join paths."

Setting cardinalities can also help you understand how tables are related in the database, and to graphically identify potential join path problems in your schema.

Former Member
0 Kudos

The main impact is that you will not be able to use the detect context functionality.

There are other minor points, but that is the most important. It will not affect the way that queries are generated.