I2 (2 points)
https://knobit.org/id/task/dq-rule-derivation/I2
Also as Turtle · JSON-LD · RDF/XML
| dcterms:license | https://creativecommons.org/licenses/by/4.0/ |
|---|---|
| owl:sameAs | https://bitbucket.org/reffa/ontology/id/task/dq-rule-derivation/I2 |
| rdfs:label | I2 (2 points) en |
| schema:hasPart | dq-rule-derivation I2a: null second holder decided in the joint-holder predicate |
| schema:hasPart | dq-rule-derivation I2b: product family stored per account found transitive and checked across rows |
| schema:identifier | I2 |
| schema:position | 5 |
| schema:text | 1 each: (a) BR-205: on a single account second_holder_customer_id is null, so second_holder_customer_id <> first_holder_customer_id is UNKNOWN and fails a row predicate - every single account would fail; the null case is decided explicitly (population account_type = 'JOINT', IS NULL OR ..., or IS DISTINCT FROM); (b) BR-211: product_name and product_family on DIM_DEPOSIT_ACCOUNT depend on product_code, not on the account (a transitive dependency; the table is not in third normal form), so moving a product to another family must be repeated on every account row, and the merge rewrites only the rows that changed that night - the update anomaly is reported, BR-211 gets a set check returning product codes with more than one family, and a product table (or a declared copy refreshed from the catalogue) is proposed. en |