Changes for page 10 Constraints

Last modified by Artur on 2025/09/10 11:19

From version 1.4
edited by Helena
on 2025/06/16 12:12
Change comment: There is no comment for this version
To version 1.15
edited by Helena
on 2025/06/16 12:22
Change comment: There is no comment for this version

Summary

Details

Page properties
Content
... ... @@ -216,14 +216,14 @@
216 216  
217 217  The following logic explains how the inheritance mechanism works. Note that this is conceptual logic and actual systems may differ in the way this is implemented.
218 218  
219 -1.
220 -11. Determine all possible keys that are valid at the higher level.
221 -11. These keys are deemed to be inherited by the lower-level constrained object, subject to the Constraints specified at the lower level.
222 -11. Determine all possible keys that are possible using the Constraints specified at the lower level.
223 -11. At the lower level inherit all keys that match with the higher-level Constraint.
224 -11. If there are keys in the lower-level Constraint that are not inherited then the key is invalid (i.e., it is less restrictive).
225 -111. Constraints Examples
219 +1. Determine all possible keys that are valid at the higher level.
220 +1. These keys are deemed to be inherited by the lower-level constrained object, subject to the Constraints specified at the lower level.
221 +1. Determine all possible keys that are possible using the Constraints specified at the lower level.
222 +1. At the lower level inherit all keys that match with the higher-level Constraint.
223 +1. If there are keys in the lower-level Constraint that are not inherited then the key is invalid (i.e., it is less restrictive).
226 226  
225 +=== 10.4.7 Constraints Examples ===
226 +
227 227  ==== 10.4.7.1 Data Constraint and Cascading ====
228 228  
229 229  The following scenario is used.
... ... @@ -237,9 +237,11 @@
237 237  
238 238  In the DSD, common code lists are used and the requirement is to restrict these at various levels to specify the actual code that are valid for the object to which the Constraint is attached.
239 239  
240 +[[image:1750065279010-260.png]]
240 240  
241 241  **Figure 20: Example Scenario for Constraints **Constraints are declared as follows:
242 242  
244 +[[image:1750065319060-899.png]]
243 243  
244 244  **Figure 21: Example Constraints**
245 245  
... ... @@ -280,10 +280,16 @@
280 280  
281 281  DSD Constraint
282 282  
285 +[[image:1750065367824-357.png]]
286 +
283 283  Dataflow Constraints
284 284  
289 +[[image:1750065392163-400.png]]
290 +
285 285  Provision Agreement Constraint
286 286  
293 +[[image:1750065461589-995.png]]
294 +
287 287  **10.4.7.2 Combination of Constraints**
288 288  
289 289  The possible combination of constraining terms are explained in this section, following a few examples.
... ... @@ -290,17 +290,18 @@
290 290  
291 291  Let’s assume a DSD with the following Components:
292 292  
293 -|Dimension|FREQ
294 -|Dimension|JD_TYPE
295 -|Dimension|JD_CATEGORY
296 -|Dimension|VIS_CTY
297 -|TimeDimension|TIME_PERIOD
298 -|Attribute|OBS_STATUS
299 -|Attribute|UNIT
300 -|Attribute|COMMENT
301 -|MetadataAttribute|CONTACT
302 -|Measure|MULTISELECT
303 -|Measure|CHOICE
301 +(% style="width:459.294px" %)
302 +|(% style="width:204px" %)(% style="color:#3498db" %)Dimension|(% style="width:252px" %)(% style="color:#3498db" %)FREQ
303 +|(% style="width:204px" %)(% style="color:#3498db" %)Dimension|(% style="width:252px" %)(% style="color:#3498db" %)JD_TYPE
304 +|(% style="width:204px" %)(% style="color:#3498db" %)Dimension|(% style="width:252px" %)(% style="color:#3498db" %)JD_CATEGORY
305 +|(% style="width:204px" %)(% style="color:#3498db" %)Dimension|(% style="width:252px" %)(% style="color:#3498db" %)VIS_CTY
306 +|(% style="width:204px" %)(% style="color:#2980b9" %)TimeDimension|(% style="width:252px" %)(% style="color:#2980b9" %)TIME_PERIOD
307 +|(% style="width:204px" %)(% style="color:#16a085" %)Attribute|(% style="width:252px" %)(% style="color:#16a085" %)OBS_STATUS
308 +|(% style="width:204px" %)(% style="color:#16a085" %)Attribute|(% style="width:252px" %)(% style="color:#16a085" %)UNIT
309 +|(% style="width:204px" %)(% style="color:#16a085" %)Attribute|(% style="width:252px" %)(% style="color:#16a085" %)COMMENT
310 +|(% style="width:204px" %)(% style="color:#f39c12" %)MetadataAttribute|(% style="width:252px" %)(% style="color:#f39c12" %)CONTACT
311 +|(% style="width:204px" %)(% style="color:#e74c3c" %)Measure|(% style="width:252px" %)(% style="color:#e74c3c" %)MULTISELECT
312 +|(% style="width:204px" %)(% style="color:#e74c3c" %)Measure|(% style="width:252px" %)(% style="color:#e74c3c" %)CHOICE
304 304  
305 305  On the above, let’s assume the following use cases with their constraining requirements:
306 306  
... ... @@ -312,8 +312,9 @@
312 312  
313 313  This is expressed with the following CubeRegion:
314 314  
315 -|FREQ|M, Q
316 -|VIS_CTY|MX
324 +(% style="width:287.294px" %)
325 +|(% style="width:131px" %)(% style="color:#3498db" %)FREQ|(% style="width:153px" %)(% style="color:#3498db" %)M, Q
326 +|(% style="width:131px" %)(% style="color:#3498db" %)VIS_CTY|(% style="width:153px" %)(% style="color:#3498db" %)MX
317 317  
318 318  **Use Case 2: A Constraint on allowed combinations for some Dimensions**
319 319  
... ... @@ -323,10 +323,11 @@
323 323  
324 324  This is expressed with the following DataKeySet:
325 325  
326 -|Key1|FREQ|M
327 -| |VIS_CTY|DE
328 -|(% rowspan="2" %)Key2|FREQ|Q
329 -|VIS_CTY|MX
336 +(% style="width:388.294px" %)
337 +|(% style="width:105px" %)(% style="color:#2980b9" %)Key1|(% style="width:137px" %)(% style="color:#2980b9" %)FREQ|(% style="width:143px" %)(% style="color:#2980b9" %)M
338 +|(% style="width:105px" %) |(% style="width:137px" %)(% style="color:#2980b9" %)VIS_CTY|(% style="width:143px" %)(% style="color:#2980b9" %)DE
339 +|(% rowspan="2" style="width:105px" %)(% style="color:#2980b9" %)Key2|(% style="width:137px" %)(% style="color:#2980b9" %)FREQ|(% style="width:143px" %)(% style="color:#2980b9" %)Q
340 +|(% style="width:137px" %)(% style="color:#2980b9" %)VIS_CTY|(% style="width:143px" %)(% style="color:#2980b9" %)MX
330 330  
331 331  **Use Case 3: A Constraint on allowed values for some Dimensions combined with allowed values for some Attributes** R1: Allow monthly and quarterly data
332 332  
... ... @@ -336,9 +336,10 @@
336 336  
337 337  This may be expressed with the following CubeRegion:
338 338  
339 -|FREQ|M, Q
340 -|VIS_CTY|MX
341 -|OBS_STATUS|A
350 +(% style="width:285.294px" %)
351 +|(% style="width:143px" %)(% style="color:#2980b9" %)FREQ|(% style="width:139px" %)(% style="color:#2980b9" %)M, Q
352 +|(% style="width:143px" %)(% style="color:#2980b9" %)VIS_CTY|(% style="width:139px" %)(% style="color:#2980b9" %)MX
353 +|(% style="width:143px" %)(% style="color:#27ae60" %)OBS_STATUS|(% style="width:139px" %)(% style="color:#27ae60" %)A
342 342  
343 343  **Use Case 4: A Constraint on allowed combinations for some Dimensions combined with specific Attribute values**
344 344  
... ... @@ -348,12 +348,13 @@
348 348  
349 349  This may be expressed with the following DataKeySet:
350 350  
351 -|(% rowspan="3" %)Key1|FREQ|M
352 -|VIS_CTY|DE
353 -|UNIT|EUR
354 -|(% rowspan="3" %)Key2|FREQ|Q
355 -|VIS_CTY|MX
356 -|UNIT|USD
363 +(% style="width:389.294px" %)
364 +|(% rowspan="3" style="width:89px" %)(% style="color:#2980b9" %)Key1|(% style="width:153px" %)(% style="color:#2980b9" %)FREQ|(% style="width:142px" %)(% style="color:#2980b9" %)M
365 +|(% style="width:153px" %)(% style="color:#2980b9" %)VIS_CTY|(% style="width:142px" %)(% style="color:#2980b9" %)DE
366 +|(% style="width:153px" %)(% style="color:#27ae60" %)UNIT|(% style="width:142px" %)(% style="color:#27ae60" %)EUR
367 +|(% rowspan="3" style="width:89px" %)(% style="color:#2980b9" %)Key2|(% style="width:153px" %)(% style="color:#2980b9" %)FREQ|(% style="width:142px" %)(% style="color:#2980b9" %)Q
368 +|(% style="width:153px" %)(% style="color:#2980b9" %)VIS_CTY|(% style="width:142px" %)(% style="color:#2980b9" %)MX
369 +|(% style="width:153px" %)(% style="color:#27ae60" %)UNIT|(% style="width:142px" %)(% style="color:#27ae60" %)USD
357 357  
358 358  **Use Case 5: A Constraint on allowed values for some Dimensions together with some combination of Dimension values**
359 359  
... ... @@ -363,12 +363,13 @@
363 363  
364 364  Considering the above examples, the following CubeRegions would be created:
365 365  
366 -|(% rowspan="3" %)CubeRegion1|FREQ|Q, A
367 -|VIS_CTY|MX, DE
368 -|OBS_STATUS|A
369 -|(% rowspan="3" %)CubeRegion2|FREQ|M
370 -|VIS_CTY|MX, DE
371 -|OBS_STATUS|F
379 +(% style="width:449.294px" %)
380 +|(% rowspan="3" style="width:126px" %)(% style="color:#2980b9" %)CubeRegion1|(% style="width:137px" %)(% style="color:#2980b9" %)FREQ|(% style="width:183px" %)(% style="color:#2980b9" %)Q, A
381 +|(% style="width:137px" %)(% style="color:#2980b9" %)VIS_CTY|(% style="width:183px" %)(% style="color:#2980b9" %)MX, DE
382 +|(% style="width:137px" %)(% style="color:#27ae60" %)OBS_STATUS|(% style="width:183px" %)(% style="color:#27ae60" %)A
383 +|(% rowspan="3" style="width:126px" %)(% style="color:#2980b9" %)CubeRegion2|(% style="width:137px" %)(% style="color:#2980b9" %)FREQ|(% style="width:183px" %)(% style="color:#2980b9" %)M
384 +|(% style="width:137px" %)(% style="color:#2980b9" %)VIS_CTY|(% style="width:183px" %)(% style="color:#2980b9" %)MX, DE
385 +|(% style="width:137px" %)(% style="color:#27ae60" %)OBS_STATUS|(% style="width:183px" %)(% style="color:#27ae60" %)F
372 372  
373 373  The problem with this approach is that according to the business rule for Constraints, only one should be specified per Component. Thus, if a software would perform some conflict resolution would end up with empty sets for FREQ and OBS_STATUS (as they do not share any values).
374 374  
... ... @@ -376,21 +376,24 @@
376 376  
377 377  DSD CubeRegion:
378 378  
379 -|FREQ|M, Q, A
380 -|VIS_CTY|MX, DE
381 -|OBS_STATUS|A, F
393 +(% style="width:280.294px" %)
394 +|(% style="width:156px" %)FREQ|(% style="width:121px" %)M, Q, A
395 +|(% style="width:156px" %)VIS_CTY|(% style="width:121px" %)MX, DE
396 +|(% style="width:156px" %)OBS_STATUS|(% style="width:121px" %)A, F
382 382  
383 383  Dataflow1 CubeRegion:
384 384  
385 -|FREQ|Q, A
386 -|VIS_CTY|MX, DE
387 -|OBS_STATUS|F
400 +(% style="width:285.294px" %)
401 +|(% style="width:157px" %)FREQ|(% style="width:125px" %)Q, A
402 +|(% style="width:157px" %)VIS_CTY|(% style="width:125px" %)MX, DE
403 +|(% style="width:157px" %)OBS_STATUS|(% style="width:125px" %)F
388 388  
389 389  Dataflow2 CubeRegion:
390 390  
391 -|FREQ|M
392 -|VIS_CTY|MX, DE
393 -|OBS_STATUS|A
407 +(% style="width:288.294px" %)
408 +|(% style="width:159px" %)FREQ|(% style="width:126px" %)M
409 +|(% style="width:159px" %)VIS_CTY|(% style="width:126px" %)MX, DE
410 +|(% style="width:159px" %)OBS_STATUS|(% style="width:126px" %)A
394 394  
395 395  **Use case 6: A Constraint on allowed values for some Dimensions combined with allowed values for Measures**
396 396  
1750065279010-260.png
Author
... ... @@ -1,0 +1,1 @@
1 +xwiki:XWiki.helena
Size
... ... @@ -1,0 +1,1 @@
1 +60.3 KB
Content
1750065319060-899.png
Author
... ... @@ -1,0 +1,1 @@
1 +xwiki:XWiki.helena
Size
... ... @@ -1,0 +1,1 @@
1 +91.0 KB
Content
1750065367824-357.png
Author
... ... @@ -1,0 +1,1 @@
1 +xwiki:XWiki.helena
Size
... ... @@ -1,0 +1,1 @@
1 +51.4 KB
Content
1750065392163-400.png
Author
... ... @@ -1,0 +1,1 @@
1 +xwiki:XWiki.helena
Size
... ... @@ -1,0 +1,1 @@
1 +104.8 KB
Content
1750065461589-995.png
Author
... ... @@ -1,0 +1,1 @@
1 +xwiki:XWiki.helena
Size
... ... @@ -1,0 +1,1 @@
1 +43.9 KB
Content