Używanie relacji

Wprowadzenie do relacji między tabelami

Przeglądarka nie obsługuje klipu wideo. Instalowanie dodatku Microsoft Silverlight, Adobe Flash Player lub programu Internet Explorer 9.

Zaletą relacyjnej bazy danych jest możliwość łączenia danych z różnych tabel. W tym celu należy najpierw utworzyć relacje pomiędzy tabelami. Następnie program Access może już łączyć dane w zapytaniach, formularzach i raportach.

Aby wyświetlić wszystkie istniejące relacje zdefiniowane w bazie danych, otwórz szablon programu Access, przejdź do karty Narzędzia bazy danych i wybierz pozycję Relacje.

Uwaga: W przypadku otwarcia pustej bazy danych lub braku zdefiniowanych relacji między tabelami program Access wyświetli monit o dodanie tabeli lub zapytania. Aby można było dodać relację, w bazie danych muszą istnieć co najmniej dwie tabele. Najlepszym rozwiązaniem jest utworzenie wszystkich tabel przed rozpoczęciem. Aby uzyskać więcej informacji, zobacz Tworzenie relacji za pomocą Kreatora odnośników oraz Tworzenie relacji za pomocą okienka Relacje.

Opis widoku Relacje

Linie w widoku Relacje oznaczają połączenia między tabelami. Na poniższej ilustracji tabela po lewej stronie jest tabelą nadrzędną. Tabela po prawej stronie jest tabelą podrzędną. Linia pomiędzy tabelami łączy pola (w tym przypadku Identyfikator zamówienia i Identyfikator produktu) używane do dopasowywania danych.

Relacje są oznaczane za pomocą linii łączących pola nadrzędne i podrzędne.

Linie i symbole wskazują rodzaj relacji między tabelami:

  • Gruba linia łącząca oznacza wymuszanie więzów integralności między danymi. To dobrze. Dzięki temu dane są zawsze zsynchronizowane.

  • Na naszej ilustracji liczba 1 oznacza, że w tej tabeli mogą występować tylko pojedyncze zgodne rekordy. W pokazanej tu tabeli Zamówienia do każdego zamówienia dopasowano tylko jeden rekord.

  • Symbol ∞ oznacza, że wiele rekordów może zawierać ten sam identyfikator. W pokazanej tu tabeli Szczegóły zamówień jedno zamówienie (oznaczone przez Identyfikator zamówienia) może występować wiele razy, ponieważ zamówienie może zawierać wiele produktów.

Typy relacji między tabelami

Istnieją trzy typy relacji między tabelami:

  • Jeden-do-jednego. Oznacza, że każdy element występuje w każdej tabeli tylko raz. Na przykład każdy z pracowników może mieć co najwyżej jeden samochód służbowy. Aby uzyskać więcej informacji, zobacz Tworzenie relacji jeden-do-jednego.

  • Jeden-do-wielu. Oznacza, że jeden element w jednej tabeli może być powiązany z większą liczbą elementów w innej tabeli. Na przykład jedno zamówienie zakupu może zawierać wiele produktów.

  • Wiele-do-wielu. Oznacza, że element lub kilka elementów w jednej tabeli może mieć relację z jednym elementem lub kilkoma elementami w innej tabeli. Na przykład jedno zamówienie może zawierać wiele produktów, a jeden produkt może występować w wielu zamówieniach. Aby dowiedzieć się więcej, zobacz Tworzenie relacji wiele-do-wielu.

Relacje jeden-do-wielu

Jedną z najpowszechniejszych relacji między tabelami w dobrze zaprojektowanych bazach danych jest relacja jeden-do-wielu.

Relacje między tabelami na ogół opierają się na kluczu podstawowym jednej z tabel. Przypomnijmy, że klucz podstawowy to unikatowy identyfikator poszczególnych rekordów (często w postaci numeru). Aby wskazać, że informacje zawarte w dwóch różnych tabelach są powiązane, zwykle tworzy się relację przy użyciu klucza podstawowego jednej z tych tabel.

Na przykład w pokazanej tu relacji każda osoba w tabeli Kontakty ma identyfikator, będący kluczem podstawowym (na co wskazuje wyświetlony obok niego symbol klucza). Ten identyfikator występuje również w polu Właściciel w tabeli Zasoby. Aby wysłać wiadomość e-mail do osoby powiązanej z danym zasobem, należy pobrać wartość z pola Adres e-mail. W tym celu należy znaleźć wartość w polu Właściciel w tabeli Zasoby, a następnie wyszukać znaleziony identyfikator w tabeli Kontakty. Liczba 1 na jednym z końców linii łączącej tabele oraz symbol ∞ na drugim końcu oznaczają, że jest to relacja typu jeden-do-wielu, a zatem jeden kontakt może być powiązany z wieloma zasobami.

Relacja jeden-do-wielu

Edytowanie relacji

W przypadku modyfikowania istniejącej bazy danych lub utworzenia bazy danych na podstawie szablonu możesz edytować istniejące relacje odpowiednio do potrzeb.

Uwaga: Jeśli tabele, z którymi chcesz pracować, są używane, należy najpierw zamknąć te tabele oraz wszelkie otwarte obiekty, które ich używają.

  1. Wybierz pozycję Narzędzia bazy danych > Relacje.

  2. Wybierz linię łączącą dwie powiązane tabele.

    Porada: Jeśli nie widzisz odpowiedniej relacji, na karcie Projektowanie w grupie Relacje wybierz przycisk Wszystkie relacje.

  3. Na karcie Projektowanie wybierz pozycję Edytuj relacje.

    Edytowanie istniejącej relacji między tabelami

    Tabela/zapytanie to tabela nadrzędna po lewej stronie (w tym przykładzie jest to tabela Klienci).

    Pokrewna tabela/zapytanie to tabela podrzędna (w tym przykładzie — Zamówienia).

    Nawet jeśli w widoku Relacje tabele nie są wyświetlane w tej kolejności, ich rozmieszczenie w oknie dialogowym wskazuje kierunek łączącej je linii i relacji. To ważne na przykład wówczas, gdy mamy do czynienia z relacją jeden-do-wielu, ponieważ wskazuje, że tabela po lewej znajduje się po stronie „jeden” relacji (jest tabelą nadrzędną), a tabela po prawej znajduje się po stronie „wiele” (jest tabelą podrzędną).

  4. Aby zmienić pola łączące tabele, wybierz inne pole poniżej każdej z wyświetlonych tabel. W tym przykładzie pole Identyfikator w tabeli Klienci jest połączone z polem Identyfikator klienta w tabeli Zamówienia.

  5. Zmienianie sposobu synchronizacji danych między tabelami w programie Access.

    Wymuszanie więzów integralności

    Zaznacz tę opcję, aby zapobiec przekazywaniu nieprawidłowych danych oraz utrzymać synchronizację odnośników w połączonych relacjami tabelach.

    Załóżmy na przykład, że istnieje relacja jeden-do-jednego między tabelami Pracownicy i Świadczenia pracowników. Jeśli jeden z pracowników opuści firmę i zostanie przez Ciebie usunięty z tabeli Pracownicy, powiązany rekord pracownika zostanie także usunięty z tabeli Świadczenia pracowników.

    Czasem wymuszanie więzów integralności nie jest uzasadnione. Załóżmy na przykład, że istnieje relacja jeden-do-wielu między tabelami Spedytorzy i Zamówienia. Zostaje usunięty spedytor powiązany z zamówieniami w tabeli Zamówienia. Te zamówienia zostaną odłączone, co oznacza, że nadal zawierają Identyfikator spedytora, ale identyfikator ten nie jest już prawidłowy, ponieważ nie istnieje rekord, do którego się odnosił.

    Kaskadowo aktualizuj pola pokrewne

    Zaznacz tę opcję, aby mieć pewność, że dane w powiązanych polach będą aktualizowane we wszystkich powiązanych tabelach.

    Załóżmy na przykład, że chcesz po prostu zmienić identyfikator spedytora. Zaznaczenie tej opcji gwarantuje, że Identyfikator spedytora zostanie zaktualizowany nie tylko w tabeli Spedytorzy, ale również we wszystkich innych połączonych z nią tabelach zawierających ten Identyfikator spedytora — na przykład w tabeli Zamówienia.

    Kaskadowo usuń rekordy pokrewne

    To, czy należy zaznaczyć tę opcję, czy nie, zależy od tego, czy jest wymagane zachowanie rekordów w niektórych tabelach mimo usunięcia tych rekordów w innych tabelach.

    Załóżmy na przykład, że usuwasz spedytora. W przypadku zaznaczenia tej opcji w programie Access zostaną usunięte wszystkie rekordy zawierające odpowiedni Identyfikator spedytora we wszystkich tabelach — w tym wszystkie zamówienia (w tabeli Zamówienia) obsługiwane przez tego spedytora. Zatem należy zaznaczyć tę opcję tylko wtedy, gdy masz pewność, że chcesz usunąć również historię zamówień.

  6. Aby zmienić relację między tabelami ze sprzężenia wewnętrznego na sprzężenie zewnętrzne, wybierz przycisk Typ sprzężenia. Aby uzyskać więcej informacji, zobacz Tworzenie zapytań przy użyciu sprzężeń zewnętrznych.

Usuwanie relacji pomiędzy tabelami

Uwaga: Jeśli tabele, z którymi chcesz pracować, są używane, należy najpierw zamknąć te tabele oraz wszelkie otwarte obiekty, które ich używają.

Aby usunąć relację pomiędzy tabelami:

  1. Wybierz pozycję Narzędzia bazy danych > Relacje.

  2. Wybierz linię łączącą dwie powiązane tabele.

    Porada: Jeśli nie widzisz odpowiedniej relacji, na karcie Projektowanie w grupie Relacje wybierz przycisk Wszystkie relacje.

  3. Wybierz klawisz Delete. Jeśli zostanie wyświetlony monit o potwierdzenie usunięcia relacji, wybierz pozycję Tak.

Uwaga: Usunięcie relacji powoduje również usunięcie obsługi więzów integralności tej relacji, jeśli została ona włączona. W wyniku tego program Access nie będzie już zapobiegać zmianom prowadzącym do tworzenia rekordów odłączonych po stronie „wiele” relacji jeden-do-wielu.

Chcesz wiedzieć więcej?

Tworzenie relacji

Usuwanie relacji

Szkolenia dotyczące programu Excel

Szkolenia dotyczące programu Outlook

Po dodaniu do bazy danych tabel można utworzyć relacje między nimi. Relacje są kluczowe, ponieważ dzięki nim tabele są ze sobą powiązane po podzieleniu danych. Ponadto relacje mają duży wpływ na sposób konstruowania zapytań i uzyskiwania odpowiedzi na podstawie danych.

W bazie danych używa się trzech typów relacji między zawartymi w niej tabelami: jeden-do-wielu, wiele-do-wielu i jeden-do-jednego.

Używana relacja zależy od danych. Relacja jeden-do-wielu występuje wtedy, gdy jeden rekord w jednej tabeli jest powiązany z jednym lub wieloma rekordami w drugiej tabeli.

Ten typ relacji jest używany w naszej przykładowej bazie danych. Jeden klient może mieć jeden lub kilka numerów telefonów, a każdy numer jest powiązany tylko z jednym klientem.

Relacja wiele-do-wielu występuje wtedy, gdy jeden rekord w tabeli A może być powiązany z jednym lub wieloma rekordami w tabeli B, a jeden rekord w tabeli B również może być powiązany z jednym lub wieloma rekordami w tabeli A.

Relacje wiele-do-wielu zazwyczaj występują w bazach danych do śledzenia zamówień, gdzie zamówienie może zawierać wiele produktów, a jeden produkt może być częścią wielu zamówień.

Ten typ relacji spotykany jest także w bazach danych uczniów, gdzie wielu uczniów może zajmować wiele klas.

Relacja jeden-do-jednego występuje wtedy, gdy jeden rekord w jednej tabeli jest powiązany tylko z jednym rekordem w drugiej tabeli. Na przykład jeden pracownik może jeździć jednym samochodem firmowym. Relacje jeden-do-jednego nie występują jednak często.

Wybierzmy teraz kartę Narzędzia bazy danych i pozycję Relacje. Zostanie otwarte okienko Relacje. Będziesz używać tego narzędzia dość często.

To tutaj tworzymy większość relacji i nimi zarządzamy. Widzimy tu typową relację: dwie tabele połączone linią. Linia oznacza, że tabele są ze sobą powiązane.

Ponadto jest to relacja jeden-do-wielu. Można to stwierdzić, ponieważ przy linii relacji występuje cyfra JEDEN i symbol NIESKOŃCZONOŚCI. Symbole te wiążą się z kilkoma istotnymi pojęciami.

Po pierwsze tabela po stronie JEDEN jest tabelą NADRZĘDNĄ, a tabela po stronie WIELE to tabela PODRZĘDNA.

Po drugie można powiedzieć, że większość relacji ma STRONY. W tym przypadku mamy tabelę po stronie JEDEN i po stronie WIELE.

Strony są ważne, ponieważ wpływają na sposób konstruowania zapytań.

Teraz zaznaczymy linię relacji, a następnie na wstążce wybierzemy polecenie Edytuj relacje.

Trzy ustawienia relacji wpływają na dane i ułatwiają poprawne korzystanie z relacji: więzy integralności, aktualizacje kaskadowei usuwanie kaskadowe. Działają one następująco.

Po pierwsze więzy integralności synchronizują rekordy z obu tabel. To kluczowy element zapewniający dokładność danych, dlatego prawie zawsze warto włączyć tę funkcję.

Po wymuszeniu więzów integralności nie można dodać numeru telefonu, o ile w tabeli Klienci nie znajduje się nazwa. Zapobiega to tworzeniu tak zwanych rekordów ODDZIELONYCH: danych niemających rekordów nadrzędnych.

Na przykład wyobraź sobie kwotę sprzedaży bez dołączonego zamówienia, a zrozumiesz, dlaczego więzy integralności są takie ważne.

Ustawienie Aktualizacje kaskadowe umożliwia kaskadowe przeniesienie dowolnych zmian po stronie nadrzędnej do powiązanych rekordów po stronie PODRZĘDNEJ lub po stronie WIELE.

Na przykład jeśli zmieni się nazwa klienta, to wystarczy ją zaktualizować tylko w tabeli Klienci, a wszystkie powiązane rekordy również zostaną zmienione.

Ustawienie Usuwanie kaskadowe kontroluje, czy usunięcie danych jest możliwe. Jeśli nie zaznaczysz tej opcji, nie będzie można usuwać danych. Jeśli natomiast ją wybierzesz, po usunięciu rekordu program Access usunie wszystkie elementy powiązane z tym rekordem.

Na przykład jeśli usuniesz klienta, to zostaną usunięte także jego numery telefonów.

To dobre rozwiązanie, ponieważ zapobiega rekordom oddzielonym — numerom telefonów bez klienta. Z drugiej strony należy pamiętać, że reguły biznesowe mogą uniemożliwiać usuwanie danych, zatem miej to na uwadze. Reguły biznesowe mogą w istotny sposób wpływać na projekt bazy danych.

Teraz wiesz już, jak działają relacje między tabelami. Umiesz też pracować z okienkiem Relacje programu Access i znasz ustawienia relacji, które ułatwiają efektywniejszą pracę z bazą danych programu Access.

Rozwijaj umiejętności związane z pakietem Office
Poznaj szkolenia
Uzyskuj nowe funkcje w pierwszej kolejności
Dołącz do niejawnych testerów pakietu Office

Czy te informacje były pomocne?

Dziękujemy za opinię!

Dziękujemy za opinię! Wygląda na to, że połączenie Cię z jednym z naszych agentów pomocy technicznej pakietu Office może być pomocne.

×