V4 2. MODELOWANIE BAZ DANYCH
ją, że w takiej roli występuje dokładnie jedna wartość. Jako przykład więzów integralności referencyjnej można podać atrybut, który przyjmuje wyłącznie niepustc, pojedyncze wartości, lecz częściej tego terminu używa się do określenia związków między klasami.
Rozważmy na przykład, opisany w ODL na rys. 2.6 w wierszu 7, związek naleźyDo między klasami Film i Studio. Niektórzy zapytają, czy to możliwe, aby istniało wskazanie związku r.ależyDo, a nie istniało wr bazie to studio. Polega to na tym, że w implementacji ODL związek nalożyDo jest wskaźnikiem lub referencją do obiektu studio i może się tak zdarzyć, że w pewnej chwili ten obiekt zostanie usunięty z klasy Studio. W takim przypadku pozostaje wiszący wskaźnik, nie wskazuje on już żadnego rzeczywistego obiektu.
Więzy integralności referencyjnej dla związku naleźyDo wymusiłyby, aby wskazywany obiekt zawsze istniał. Wymuszenie spełnienia tego warunku można osiągnąć na różne sposoby.
1. Można zabronić usuwania obiektu, który jest wskazywany (w naszy m przypadku studio).
2. Można by zażądać, aby wraz z usuwanym obiektem, wskazywanym przez inne, były także usuwane wszystkie obiekty, które nań wskazują. W naszym przypadku oznaczałoby to, że wraz z usuwanym studiem trzeba by usuwać z bazy' danych również wszystkie filmy, które posiada dane studio.
W uzupełnieniu takiej procedury- usuwania powstaje wymaganie, aby w przypadku utworzenia nowego obiektu typu film jednocześnie przypisywano mu, jako wartość związku naleźyDo, pewien obiekt typu studio. Ponadto, jeśli ta wartość ulega zmianie, to wskazywany przez nią obiekt musi już istnieć w bazie. Jedno z zadań w fazie implementacji bazy danych polega właśnie na zapewnieniu możliwości zadziałania takich procedur, tutaj jednak nie będziemy wnikać w szczegóły dotyczące implementacji.
W diagramach związków- encji można rozszerzyć notację strzałek wr ten sposób, aby można było określić integralność referencyjną danego związku w jednym lub w iciu kierunkach. Załóżmy, że zw iązek R prow adzi od zbioru encji E do zbioru encji F. Strzałka o zaokrąglonym grocie skierowanym w stronę zbioru encji F będzie oznaczać nie tylko to, że związek jest typu w iele do jeden lub jeden do jeden ze zbioru E do F, ale także że w zbiorze F musi istnieć encja odpowiadająca encji ze zbioru E. Wymaganie pozostaje niezmienne, gdy związek obejmuje więcej niż dwa atrybuty.
PRZYKŁAD 2.28
Na rysunku 2.25 uwidoczniono charakterystyczne więzi integralności referen-cyjnej pomiędzy zbiorami encji Filmy, Studia i Prezesi. Po raz pierwszy określono te zbiory encji na rys. 2.8 i 2.9. Okrągła strzałka jest skierowana od związku Posiada do zbioru Studia. Oznacza ona więzy integralności narzucające wymaganie, aby studio posiadające pewien film zawsze istniało w zbiorze encji Studia.
RYSUNEK 2.25
Diagram E /R reprezentujący więzy integralności referencyjnej
Podobna zaokrąglona strzałka dochodzi do Studia ze związku Kieruje. Tutaj oznacza ona więzy integralności narzucające wymaganie, aby studio kierowane przez pewnego prezesa zawsze istniało w zbiorze encji Studia
Strzałka między' związkiem Kieruje a Prezesami jest natomiast zakończona tradycyjnie. Odzwierciedla to rozsądnie określony związek między prezesami a studiami. Jeśli studio znika, to jego prezes nie może być już dłużej nazywany prezesem (studia), więc należałoby oczekiwać, że zostanie on usunięty' ze zbioru encji Prezesi. Dlatego przy studiach umieszczono okrągłą strzałkę. Jednak, jeśli prezes zostanie usunięty z bazy danych, to studio w dalszym ciągu będzie istnieć. A zatem strzałka skierowana na Prezesów jest ostra, co wskazuje, że każde studio ma co najwyżej jednego prezesa, ale w pewnych momentach może go wcale nie mieć.
□
Jak już wspomniano na początku rozdziału, są także inne rodzaje więzów, które warto zapewnić w bazach danych. Tylko króciutko potraktujemy ten temat tutaj, a głębię tematu odkryjemy w rozdziale 6.
Wiązy domenowe polegają na tym, żc ogranicza się wartość atrybutu do pewnego zbioru. W modelach ODL wszystkie atrybuty mają określony typ i jest to rutynowy sposób opisywania więzów domenowych. Na przykład, jeśli dla atrybutu długość określono typ integer, to wartość tego atrybutu nic może wynosić 101,5, ani nie może być wartością niecałkowitą. Jednakże w modelach ODL nie da się zapisać więzów nakładających jeszcze większe ograniczenia, takich jak na przykład wymaganie, aby długość znajdowała się pomiędzy 60 a 240. Tego typu ograniczenia można zadawać w języku SQL, co prześledzimy w podrozdziale 6.3.