@prefix dcterms: <http://purl.org/dc/terms/> .
@prefix edu: <https://knobit.org/def/> .
@prefix knobit: <https://knobit.org/id/knobit/> .
@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-606 a edu:Knobit ;
    rdfs:label "Recognises rolled-up subtypes losing conditional constraints"@en ;
    dcterms:identifier "K-606" ;
    dcterms:license <https://creativecommons.org/licenses/by/4.0/> ;
    dcterms:source "Review checklist 04-physical, row 6; E&N 9.2; S&W 11.3; Codd 1979 §2.3"@en ;
    skos:altLabel "Subtypes rolled up, conditional constraints lost (physical model)"@en ;
    skos:definition "Supertype and subtypes in one table. Columns that are mandatory for one subtype become nullable for all, so the database accepts a row missing a value its subtype requires, and accepts values on rows they do not apply to."@en ;
    skos:prefLabel "Recognises rolled-up subtypes losing conditional constraints"@en ;
    edu:actionVerb "Recognises"@en ;
    edu:appliesKnowledge knobit:K-652 ;
    edu:assessmentCriterion "Flags the deficient case and passes the acceptable one. Deficient: `account` holds both loan accounts and current accounts; `loan_maturity_date` nullable for all rows, so a loan account without a maturity date loads, and so does a current account with one Acceptable: `CHECK ((account_type_code = 'LOAN' AND loan_maturity_date IS NOT NULL) OR (account_type_code <> 'LOAN' AND loan_maturity_date IS NULL))` citing the rule; on platforms that do not enforce CHECK, a DQ rule. Each subtype-only column's `comment` says which subtype it applies to"@en ;
    edu:assessmentMethod "skill-tests task: Loan application physical model on Snowflake (physical design anomaly skills)"@en ;
    edu:contextFunction <https://knobit.org/def/contextFunction/resultEvaluation> ;
    edu:creationMethod <https://knobit.org/def/creationMethod/aiGeneratedHumanEdited> ;
    edu:dependsOnKnobit knobit:K-516 ;
    edu:expectedResult "The columns whose subtype obligation is lost, and the discriminator or check needed"@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 "supertype and subtypes in one table"@en ;
    schema:creativeWorkStatus "accepted" ;
    schema:isPartOf register:data-modelling .

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

knobit:K-516 rdfs:label "Recognises attributes inapplicable to some instances"@en .

knobit:K-652 rdfs:label "Explains the implementation options for subtypes"@en .

