Navrh databazy - vhodny postup

Juraj Chlebec jc01 na fem.uniag.sk
Pátek Červen 7 21:39:40 CEST 2002


Dobry den

Jan Serak wrote:
> Juraj Chlebec wrote:
>
>>Dobry den,
>>
>>Pre navrh databazy pre projekt distancneho vzdelavania pouzivam case
>>program CaseStudio (2.9). Rad by som sa spytal na vas nazor na navrh
>>schemy databazy pre tento projekt...
>
>
> Abych se priznal, CaseStudio neznam a jeho vystup mi pripada ponekud
> zmateny (patrne tim, ze nevim presne, co jaky symbol znamena, napr.
> jaky je rozdil mezi sedou a bilou entitou a mezi ostrymi a zkosenymi
> rohy entity).

Farby su nastavene mnou pre lepsiu orientaciu (skupiny tabuliek).
Z manualu:
--
Identifikacni relace

Primarni klic z parent entity migruje do child entity, a tam je soucasti
primarniho klice. Pouziva se tehdy, pokud primarni klic cizi entity neni
schopen zajistit jednoznacnou identifikaci. Entita, ktera je child entitou
propojenou pres identifikacni relaci, je tzv. zavislou (dependent) entitou,
a je v modelu zobrazena se zaoblenymi rohy
--
>
>>A taka otazka (nie som odbornik na databazy), je bezne aby sa cudzie
>>kluce kopirovali postupne cez vsetky tabulky ked nastavim vazby medzi
>>tabulkami na identifikacnu relaciu?
>
> Tomu dotazu rozumim jen castecne, nebot obsahuje terminologicky gulas.
> Napr. nechapu, proc se constraint ("integritni omezeni") nazyva Relace14
> a jaka muze byt jina vazba mezi tabulkou a relaci, nez ta, ze je to
> jedno
> a to same (snad jen s tim rozdilem, ze "tabulka" je slovo, pouzivane
> pro intuitivni uchopeni matematickeho pojmu "relace" uzivateli relacni
> databaze, kteri matematickou oporu relacnich databazi neznaji).

Prepacte za terminologicky gulas :) Snazim sa naucit tieto veci sam, bez
zazemia vysokej skoly ktora by mi to vtlkla do hlavy (stredna ucnovska
skola nie je prave najvhodnejsia priprava pre tvorcu informacnych
systemov, ale snazim sa :))) ). Pracujem na pracovisku vysokej skoly z
polnohospodarskym zameranim, co hovori samo osebe o tom ze odbornikov na
problematiku databaz s ktorymi by sa dalo konzultovat je u nas ako
safranu. Som rad ze je k dispozicii moznost si niektore veci zistit a
potvrdit aj prostrednictvom tejto konferencie.

> Ale zkusim uhodnout, oc Vam jde:
>
> Mate tabulku (relaci) modulu (nazvanou Modules), tabulku casti (Parts),
> tabulku
> kapitol (Chapters) atd. Mezi temito tabulkami mate definovane vazby
> (integritni
> omezeni), ktere maji zajistit jakysi vztah mezi casti a modulem
> (informace o tom,
> do ktere casti modul patri), mezi modulem a kapitolou atd.
>
> V zasade jsou mozne dva pristupy - prirozene a umele klice (to uz nema
> s relacni databazi nic spolecneho, to uz je zalezitost tykajici se
> aplikace relacni databaze). Vy jste se rozhodl pro prirozene klice, tzn.
> kazdy modul ma nejaky identifikator, ktery slouzi jako primarni klic
> pro vyhledani modulu. Primarnim klicem casti je pak usporadana dvojice
> (klic_modulu,klic_casti), pricemz klic_casti nemusi byt unikatni v ramci
> cele tabulky casti. Dale primarnim klicem kapitoly je usporadana trojice
> (klic_modulu,klic_casti,klic_kapitoly). Vyhodou tohoto pristupu je, ze
> si kapitola nese s sebou odkaz na modul, tj. klice mohou byt
> mnemotechnicke,
> nevyhodou je, ze to muze byt narocnejsi na prostor a na implementaci
> automatic-
> keho vygenerovani klice v pripade, ze uzivatel nechce klic zadavat.
> Opacnym pristupem je pouziti umelych klicu. U modulu a casti to vyjde
> nastejno,
> kapitola vsak uz nese pouze odkaz na cast (ponevadz constraint mezi
> castmi a
> moduly zarucuje, ze cast muze patrit jen jednomu modulu). Vyhody a
> nevyhody
> jsou evidentni: snizi se mira redundance, narok na prostor, klice lze
> lehce generovat (a de facto zcela odstinit od uzivatele, ktery o nich
> vubec
> nemusi vedet), ale z kapitoly na modul nevede cesta prima, ale musi se
> jit
> pres casti.

Dakujem za osvetlenie. Hned je mi to jasnejsie. Cize obe cesty su spravne
ale v pripade prvej (ktorou momentalne kracam) musim riesit problemy typu
primarny kluc zlozeny z id + x cudzich klucov v poslednej tabulke alebo sa
rozhodnem upravit navrh tak ze kazda nasledujuca tabulka bude viazana len
s predchadzajucou a pokial bude nutne zistit pod ktory modul patri napr.
urcita cast kapitoly musim to urobit spatne cez predchadzajuce tabulky
(co, myslim ce joiny nebude az taky problem). Pravdepodobne bude asi
najvhodnejsie tieto dva sposoby skombinovat v miestach kde vyslovene nie
je nutne vediet do ktoreho modulu konkretne udaje patria.

Juraj Chlebec

--
                  /-------------------------------\
    University of Agriculture          Voice: (0421) 037 / 6508 813
     CIT FEM Nitra, Slovakia                    (7.30 - 16.00)
    ____ __  _ _    ____ __  _                       ---
   (_ || ||\ || |  (_ || || |_           Juraj.Chlebec na fem.uniag.sk
   __)||_||_|||_|  __)| | |_|_    http://www.fem.uniag.sk/Juraj.Chlebec/
       W E B  D E S I G N                  Commodore 64 is alive !
                  \-------------------------------/




Další informace o konferenci Test