INFO
Sylabus
Standard ODMG, część 2
1. Plan wykładu
2. Typy abstrakcyjne, typy konkretne, polimorfizm, wielo-dziedziczenie
3. Ekstensje, klucze
4. Obiekty
5. Kolekcje
6. Literale
7. Użycie deklaracji struktur
8. Deklaracje atrybutów
9.Związki
10. Operacje
11. Wyjątki
12. Metadane
13. Transakcje
Skorowidz
Wyście:
Wyklad VIII. Wprowadzenie do standardu ODMG, część 2:
Model obiektowy (KURS SSR)
I II III IV V VI VII VIII IX X XI XII XIII XIV
« poprzedni punkt   następny punkt »

9. Związki (relationships)

Związki mają bardzo podobny charakter jak w modelu encja-związek.
  • Są definiowane pomiędzy dwoma typami.
  • Podtrzymywane są wyłącznie związki binarne.
  • Liczność związku może być 1:1, 1:n, m:n.
  • Związek wyznacza ścieżkę przejścia (traversal path) w obie strony

(2kB)
Liczność związku
jest ustalona poprzez
słowa kluczowe
określające rodzaj kolekcji
(set,bag,sequence)
interface Profesor { 
 ... 
 relationship set <Wykład> prowadzi 
   inverse Wykład:: jest_prowadzony_przez; 
    ... 
}
interface Wykład { 
   ... 
   relationship Profesor jest_prowadzony_przez; 
      inverse Profesor::prowadzi; 
   ... 
}

Zadeklarowanie związku oznacza, że system musi automatycznie podtrzymywać integralność odwołań (referential integrity). Jeżeli np. usunięty będzie obiekt Wykład, wówczas automatycznie są usuwane wszystkie ścieżki przejścia “prowadzi” prowadzące od obiektu Profesor do usuniętego obiektu.

Związek jest więc czymś więcej niż wskaźnikiem lub zbiorem wskaźników

Inny sposób deklarowania związku - poprzez referencje lub wskaźniki:

interface Student { 
   ... 
   attribute set<Wykład> zaliczone_wykłady; 
   ... 
}
(1kB)
W tym przypadku deklarowane jest także powiązanie “zaliczone_wykłady” (o liczności m:n) prowadzące od obiektów Student do obiektów Wykład; jednakże system jest zwolniony z obowiązku automatycznego podtrzymywania integralności odwołań.

Wprowadzenie związków oraz wskaźników jako dwóch odrębnych bytów o podobnym przeznaczeniu i charakterze, lecz dość różnej semantyce jest bardzo kontrowersyjne, gdyż niepotrzebnie komplikuje model i prowadzi do nieporozumień


« poprzedni punkt   następny punkt »