Portfoolio

ER-diagramm. Autoremonditöökoda

AAI-le esitatud prompt:

Siin on minu tehtud ER-diagramm Autoremonditöökoja andmebaasi jaoks (draw.io fail) ja õpetaja antud ülesande kirjeldus. Vaata üle ja kontrolli: kas kõik vajalikud olemid on olemas, kas PK ja FK on õigesti ja ühtemoodi nimetatud, kas tabelitevahelised seosed on õiged ning kas diagrammil on puuduvaid või üleliigseid seoseid või atribuute võrreldes kirjeldusega. Kui leiad vigu, paranda need diagrammis otse ja kirjuta, mida ja miks muutsid.

Diagrammide võrdlus ja kokkuvõte

ValdkondTulemus
OlemidKõik 14 tabelit olemas ja vastavad kirjeldusele — midagi ei lisanud ega eemaldanud
PK/FK kasutusTehniliselt õiged — iga FK viitas õigele PK-le
SeosedKõik 13 seost õigesti väljade külge ühendatud — puuduvaid ega üleliigseid ei leidnud
Atribuudi asukohtLeidsin ühe sisulise vea: väli “staatus” oli vales tabelis

Kõige olulisem leid tuli sellest, kui andsin AI-le lisaks diagrammile ka õpetaja ülesande teksti. Kirjelduses on otse kirjas: “Remonditöö kohta peab olema teada kuupäev, töö kirjeldus, töö staatus ja auto, millega tööd tehakse.” Minu diagrammil oli “staatus” väli hoopis TöötajaRemondis tabelis (töötaja-remondi seoses), mitte Remonditöö tabelis endas. AI tõstis selle õigesse kohta: lisas staatuse Remonditöö tabelisse ja eemaldas selle TöötajaRemondisest, kus kirjelduse järgi piisab ainult sellest, milline töötaja millise remonditööga tegeles.

Ülejäänud osas läks diagramm kirjeldusega kokku täpselt: Töötaja + Amet + Ametimäärätus kattis ametikohtade ajaloo nõude, Auto väljad (regNum, mark, mudel, VAasta, läbisõit) vastasid täpselt kirjeldusele, Varuosa (nimetus, tootja, hind, laoseis) samuti. Arve tabelisse ei pidanud lisama eraldi välju kasutatud varuosade ega tehtud tööde jaoks — need on kirjelduse järgi “nähtavad” arvel, aga reaalselt saab need remonditööID kaudu teistest tabelitest kätte, nii et eraldi dubleerimine oleks olnud üleliigne.

Kas muudatus oli põhjendatud?
Jah, ja seda sai kontrollida otse ülesande tekstist, mitte ainult üldisest loogikast — kirjeldus nimetab “töö staatust” eraldi atribuudina Remonditöö juures, mitte töötaja-remondi seose juures. Kui staatus oleks jäänud valesse tabelisse, ei saaks küsida “mis seisus on see remont” ilma töötajate tabelit kaasamata, mis poleks loogiline, kui remondil pole veel ühtegi töötajat määratud.

Mida AI tegi minu lahendusest erinevalt:
AI võrdles diagrammi rida-realt õpetaja antud tekstiga, mitte ainult üldiste andmebaasireeglitega — nii leidis atribuudi, mis diagrammil tehniliselt “töötas” (viga ei lõhkunud midagi), aga ei vastanud sellele, mida ülesanne tegelikult nõudis.

Mida edaspidi ER-diagrammi koostamisel arvestada:

Kui atribuut on seoses pigem kahe olemi vahel (nagu “kes millise tööga tegeles”), ei tasu sinna automaatselt lisada välju, mida kirjeldus ei nõua

Iga atribuut tuleb panna täpselt sinna olemisse, kus kirjeldus seda nimetab, mitte sinna, kus “tundub loogiline”

Kontrollida valmis diagrammi lause-haaval vastu algset kirjeldust, mitte ainult üldist andmebaasiloogikat