@prefix dcterms: <http://purl.org/dc/terms/> .
@prefix edu: <https://knobit.org/def/> .
@prefix knobit: <https://knobit.org/id/knobit/> .
@prefix owl: <http://www.w3.org/2002/07/owl#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix register: <https://knobit.org/id/register/> .
@prefix schema: <https://schema.org/> .
@prefix skos: <http://www.w3.org/2004/02/skos/core#> .

knobit:K-601 a edu:Knobit ;
    rdfs:label "Recognises an unmanaged duplicate column"@en ;
    dcterms:identifier "K-601",
        "Q-384" ;
    dcterms:license <https://creativecommons.org/licenses/by/4.0/> ;
    dcterms:source "Review checklist 04-physical, row 1; Codd 1971; Kent 1983; E&N 1.6.1; C&B; S&W 12.6"@en,
        "Shared-URI copy of data-modelling K-601 (Review checklist 04-physical (data-modelling), row 1; Codd 1971; Kent 1983; E&N 1.6.1; C&B; S&W 12.6)"@en ;
    owl:sameAs <https://bitbucket.org/reffa/ontology/id/knobit/data-modelling/06-physical/01> ;
    skos:altLabel "Unmanaged duplicate column (physical model)"@en ;
    skos:definition "A column copied from another table to save a join, with nothing keeping the copy equal to the original. The update anomaly the logical model removed, put back."@en ;
    skos:prefLabel "Recognises an unmanaged duplicate column"@en ;
    edu:actionVerb "Recognises"@en ;
    edu:appliesKnowledge knobit:K-565,
        knobit:K-651 ;
    edu:assessmentCriterion "Flags the deficient case and passes the acceptable one. Deficient: `account.holder_name` copied from `party.name` for the account-servicing screen, no `derivation`, no DQ rule; the holder changes name and old accounts show the old one Acceptable: `derivation` names the source column and the mechanism that refreshes it, and a `consistency` DQ rule compares the two; or a view instead of a column. A copy meant to keep the value as at account opening is not a copy: the logical model says so (logical row 9)"@en ;
    edu:assessmentMethod "skill-tests task: Loan application physical model on Snowflake (physical design anomaly skills)"@en ;
    edu:conformsToProfile <https://oppekava.edu.ee/a/Knobitite_kirjeldamise_ja_seostamise_reeglid#LCG-KNOBIT-0.1> ;
    edu:contextFunction <https://knobit.org/def/contextFunction/resultEvaluation> ;
    edu:creationMethod <https://knobit.org/def/creationMethod/aiGeneratedAiEdited>,
        <https://knobit.org/def/creationMethod/aiGeneratedHumanEdited> ;
    edu:dependsOnKnobit knobit:K-502 ;
    edu:expectedResult "The copy, the original and what keeps them equal"@en ;
    edu:graphRelevance <https://knobit.org/def/graphRelevance/learnerState>,
        <https://knobit.org/def/graphRelevance/taskSelection> ;
    edu:knobitType <https://knobit.org/def/knobitType/skill> ;
    edu:targetObject "column copied to save a join"@en ;
    schema:creativeWorkStatus "accepted" ;
    schema:isPartOf register:data-modelling,
        register:data-quality .

edu:Knobit rdfs:label "Knobit"@en,
        "Knobit"@et .

knobit:K-502 rdfs:label "Recognises an update anomaly in a logical data model"@en .

knobit:K-565 rdfs:label "Explains derived data and point-in-time snapshots"@en .

knobit:K-651 rdfs:label "Explains controlled denormalisation"@en .

