Gdziekolwiek były dwie całkowicie niezależne jednostki, które łączyła relacja jeden do jednego. Musi być wiele przykładów:
osoba <-> dentysta (to 1: N, więc to źle!)
osoba <-> lekarz (to 1: N, więc też jest źle!)
osoba <-> współmałżonek (to 1: 0 | 1, więc w większości źle!)
EDYTOWAĆ: Tak, to były bardzo złe przykłady, szczególnie jeśli zawsze szukałem 1: 1, a nie 0 lub 1 po obu stronach. Myślę, że mój mózg źle działał :-)
Więc spróbuję ponownie. Po chwili namysłu okazuje się, że jedynym sposobem, aby mieć dwa oddzielne byty, które muszą (jeśli chodzi o oprogramowanie) być razem przez cały czas, jest istnienie razem w wyższej kategoryzacji. Wtedy, wtedy i tylko wtedy, gdy wpadniesz w niższy rozkład, rzeczy są i powinny być oddzielone, ale na wyższym poziomie nie mogą żyć bez siebie. Kontekst jest więc kluczem.
W przypadku medycznej bazy danych możesz chcieć przechowywać różne informacje o określonych obszarach ciała, zachowując je jako oddzielną całość. W takim przypadku pacjent ma tylko jedną głowę i musi ją mieć, inaczej nie jest pacjentem. (Mają też jedno serce i kilka innych niezbędnych pojedynczych narządów). Jeśli na przykład interesuje Cię śledzenie operacji, każdy region powinien być odrębną jednostką.
W systemie produkcji / inwentaryzacji, jeśli śledzisz montaż pojazdów, z pewnością chcesz obserwować postęp silnika w inny sposób niż karoseria, ale istnieje relacja jeden do jednego. Opieka musi mieć silnik i tylko jeden (inaczej nie byłby to już „samochód”). Silnik należy tylko do jednego samochodu.
W każdym przypadku możesz stworzyć oddzielne jednostki jako jeden duży rekord, ale biorąc pod uwagę poziom dekompozycji, byłoby to błędne. W tych konkretnych kontekstach są one prawdziwie niezależnymi bytami, chociaż na wyższym poziomie mogą się tak nie wydawać.
Paweł.