Relacje w bazie danych

0

Witam, mógłby mi ktoś na chłopski rozum wyjaśnić relacje między tabelami ?

Ogólnie wiem, kiedy jest relacja jeden do jednego, wiele do jednego np. (jeden przy tabeli słownikowej, a wiele przy tabeli które ma pole SlownikID) jednak nie znam różnicy między 0..1, 1..1, 1..* i 0..*

Powiedzmy, ze mamy 2 tabele

tabela słownikowa

TypKontaID Wartosc

tabela korzystająca ze słownika

KontoID StanKonta Adres TypKontaID

w tym przypadku relacja to *tabela słownikowa **1 ** ----> 1.. *tabela konto *
Teraz pytanie, kiedy byłyby inne relacje ?

Jeśli tabela słownikowa nie musi mieć żadnego rekordu to relacja wyglądała by tak ?
*tabela słownikowa ***0..1 ** ----> ***** *tabela konto *

Zaś jeśli tabela konto mogłaby mieć TypKontaID jako NULL (czyli nie wymagane), oraz (powyższy przypadek) czyli tabela słownikowa może mieć 0 rekordów to relacja wyglądałaby tak ?
*tabela słownikowa **0..1 ** ----> 0.. *tabela konto *

0

Tabela słownikowa bez rekordów nie ma raczej sensu. Za to jakaś wartość słownika może nie mieć powiązanych rekordów w tabeli korzystającej, wówczas byłoby to chyba 1 --- 0..*
1 --- 1 występuje w sytuacji, gdy dwie tabele mają ten sam klucz. Stosuje się takie coś rzadko i raczej ze względów wydajnościowych.

Tylko, kurde, dla mnie to wszystko, to są asocjacje między klasami na diagramie klas. W bazach danych nie spotkałem się z takimi oznaczeniami, wyłącznie z 1:1, 1:N i M:N.

1 użytkowników online, w tym zalogowanych: 0, gości: 1