Kodulehed
Valitud koduleht: [368] - Andmebaasid I (IDU0220) (kevad 2018)
Üldist
Ülesanded
Materjalid
Vaated materjalidele
Tudeng
Abi
Mitmesugust
HELPDESK - teemad:

                         
Anonüümne:
Meil tekkis andmebaasi füüsisilise disaini mudeli genereerimisega probleem: veerg nimega kood esineb mitmes kohas. Milles võib olla probleem?
Vastus: See probleem tekib Enterprise Architecti (EA) täiendatud mudeliteisenduse kasutamise korral. Tekib, sest ka EA täiendatud mudeliteisendus pole paraku ideaalne.

Konkreetne põhjus on selles, et kontseptuaalses andmemudelis on olemitüüp Klassifikaator, millel on atribuut kood. Klassifikaatoril on palju alamtüüpe (Riik, Amet, Töötaja_seisundi_liik jne) millest igaühe põhjal luuakse eraldi tabel. Kõikidesse nendesse tekib teisenduse tulemusena primaarvõtme veerg kood. See veeru nimi tuleb ära muuta nii klassifikaatorite tabelites kui ka tabelites, kuhu koodid lähevad välisvõtmeks. Näiteks kui tabelis Amet on veerg kood, siis selle uus nimi võiks olla amet_kood. Kui tabelis Töötaja on välisvõtme veerg kood, milles olevad andmed viitavad ridadele tabelis Amet, siis ka sellele veerule tuleb anda nimi amet_kood.

Järgnevalt esitan soovitusliku parandamise algoritmi. Kõigepealt terminoloogiast:

[Amet]-1--------0..*-[Töötaja]

Välisvõti on tabelis Töötaja
Amet - primaarne tabel, antud juhul klassifikaatori tabel
Töötaja - sõltuv tabel

1. Juhul kui sõltuvas tabelis on täpselt üks välisvõtme veerg nimega kood (näiteks töövihiku kasutamise korral Klient).

  • Muuda primaarvõtme veeru nime klassifikaatori tabelis (näiteks tabelis Kliendi_seisundi_liik: kood=> kliendi_seisundi_liik_kood).
  • Muuda vastavat välisvõtme veeru nime sõltuvas tabelis (antud juhul tabelis Klient: kood=> kliendi_seisundi_liik_kood).

2. Juhul kui sõltuvas tabelis on rohkem kui üks välisvõtme veerg nimega kood (näiteks töövihiku kasutamise korral Töötaja).

  • Kustuta sõltuvast tabelist kõik välisvõtme kitsendused, mis viitavad klassifikaatorite tabelitele (näiteks kaks kitsendust tabelist Töötaja).
  • Muuda primaarvõtme veeru nime kõikides asjassepuutuvates klassifikaatori tabelites (näiteks tabelis Amet: kood=> amet_kood; tabelis Töötaja_seisundi_liik: kood=> töötaja_seisundi_liik_kood).
  • Muuda vastavate välisvõtme veergude nimesid sõltuvas tabelis (antud juhul tabelis Töötaja: kood=> amet_kood; kood=> töötaja_seisundi_liik_kood ).
  • Loo välisvõtme kitsendused mudelis käsitsi uuesti.
Kommentaarid
Sellele küsimusele/vastusele pole kommentaare



1.Anonüümne:
2.Anonüümne:
3.Anonüümne:
4.Anonüümne:
5.Raul:
6.Viljar:
7.Anonüümne:
8.Anonüümne: