Kontseptuaalse modelleerimise kuristiku probleem

Interaktiivne selgitus andmebaasi struktuuris esineva "kuristiku probleemi" olemusest

Mis on kuristiku probleem?

Kuristiku probleem (inglise keeles chasm trap) tekib andmemudelis siis, kui mudel ei suuda esitada seost teatud olemite vahel. Tavaliselt on see tingitud valesti loodud või puuduvast seosest. Probleem avaldub, kui teatud päringute tegemisel kaotatakse andmeid või ei suudeta seost leida, tekitades "kuristiku" olemite vahele.

Sellel lehel uurime ühte tüüpilist stsenaariumit, demonstreerime probleemi interaktiivselt ja näitame, kuidas seda lahendada.

Näite stsenaarium

Kujutame ette ettevõtet, kus kehtivad järgmised reeglid:

Probleemi olemus: Kui mudel on valesti loodud, siis autot, mis pole hetkel kellegi kasutuses, ei saa seostada ühegi osakonnaga, kuigi auto tegelikult kuulub osakonnale.

Vigane andmemudel

Oletame, et loome andmemudeli, kus auto ja osakonna vahel puudub otseühendus. Seos luuakse kaudselt läbi töötaja, kes autot kasutab. Selline mudel võib tunduda loogiline, kuid see peidab endas kuristiku probleemi.

Osakond
töötab
Töötaja
kasutab
Ametiauto

Selle mudeli kohaselt saame auto osakonna teada ainult siis, kui leiame töötaja, kes autot kasutab, ja seejärel vaatame, millises osakonnas see töötaja töötab. Aga mis juhtub siis, kui autot hetkel keegi ei kasuta?

Interaktiivne demo: probleemi avastamine

Proovime pärida auto osakonda, kasutades vigast mudelit. Vali rippmenüüst auto ja vajuta nupule.

Lahendus: otseühenduse loomine

Probleemi lahendamiseks tuleb mudelit parandada. Peame looma otsese seose olemite Ametiauto ja Osakond vahele. See seos ("kuulub") tagab, et iga auto on alati seotud oma omanik-osakonnaga, sõltumata sellest, kas autot parajasti kasutatakse või mitte.

Ametiauto
Osakond

Uus mudel näeb välja terviklikum ja robustsem:

Osakond
töötab
Töötaja
kasutab
Ametiauto

... ja lisaks on olemas otseühendus auto ja osakonna vahel.

Interaktiivne demo: parandatud mudel

Nüüd proovime teha sama päringu parandatud mudeliga. Vali sama vaba auto ja vaata, mis juhtub.

Kokkuvõte

Kuristiku probleem on klassikaline viga andmemodelleerimisel, mis tekib olulise otseühenduse puudumisest olemite vahel. See näide demonstreeris, kuidas sõltuvus kaudsest seosest (läbi töötaja) võib viia andmekaoni, kui vahepealne lüli (auto kasutaja) puudub.

Peamine õppetund: Veendu alati, et kõik olulised seosed olemite vahel on mudelis olemas, isegi kui tundub, et info on kaudselt tuletatav. See tagab andmete terviklikkuse ja päringute korrektsuse igas olukorras.