Przewodnik po relacjach pomiędzy tabelami

Przewodnik po relacjach pomiędzy tabelami

Ważne : Ten artykuł został przetłumaczony maszynowo, zobacz zastrzeżenie. Angielskojęzyczną wersję tego artykułu można znaleźć tutaj .

Celem tworzenia dobrych projektów baz danych jest między innymi wyeliminowanie nadmiarowości danych (czyli danych zduplikowanych). Aby osiągnąć ten cel, najpierw dzieli się dane na wiele tabel tematycznych, tak aby każdy fakt był reprezentowany tylko raz. Następnie w programie Access określa się sposób ponownego zestawiania tych podzielonych informacji — w tym celu w tabelach powiązanych umieszcza się pola wspólne. Jednak aby poprawnie wykonać tę czynność, należy najpierw zrozumieć relacje występujące pomiędzy tabelami, a następnie określić te relacje w bazie danych.

W tym artykule

Wprowadzenie

Typy relacji między tabelami

Dlaczego warto tworzyć relacje pomiędzy tabelami?

Opis więzów integralności

Wyświetlanie relacji pomiędzy tabelami

Tworzenie relacji pomiędzy tabelami

Usuwanie relacji pomiędzy tabelami

Zmienianie relacji pomiędzy tabelami

Wymuszanie więzów integralności

Wprowadzenie

Po utworzeniu tabeli odpowiadającej każdemu tematowi w bazie danych należy w programie Access określić sposób, który umożliwi ponowne zestawienie tych informacji, jeśli okaże się to potrzebne. W tym celu umieszcza się pola wspólne w powiązanych ze sobą tabelach oraz definiuje relacje pomiędzy tabelami. Następnie można tworzyć kwerendy, formularze i raporty, dzięki którym będą wyświetlane informacje z kilku tabel jednocześnie. Przykładowy formularz przedstawiony poniżej zawiera informacje pochodzące z kilku tabel:

Formularz Zamówienia, w którym są jednocześnie wyświetlane powiązane informacje pochodzące z pięciu tabel

1. Informacje w tym formularzu pochodzą z tabeli Klienci...

2. ...tabeli Zamówienia...

3. ...tabeli Produkty...

4. ...oraz tabeli Szczegóły zamówień.

Nazwa klienta w polu Faktura dla jest pobierana z tabeli Klienci, wartości identyfikatora zamówienia i daty zamówienia pochodzą z tabeli Zamówienia, nazwa produktu pochodzi z tabeli Produkty, a wartości ceny jednostkowej i ilości — z tabeli Szczegóły zamówień. Te tabele są powiązane ze sobą wzajemnie w różny sposób, co umożliwia przekazywanie informacji z poszczególnych tabel do formularza.

W powyższym przykładzie konieczna jest koordynacja pól w tabelach, która zagwarantuje wyświetlenie informacji dotyczących tego samego zamówienia. Taką koordynację uzyskuje się dzięki relacjom pomiędzy tabelami. Relacja pomiędzy tabelami działa przez dopasowywanie danych w polach kluczy — często są to pola o tej samej nazwie w obu tabelach. W większości przypadków te pasujące pola to klucz podstawowy z jednej tabeli, dostarczający unikatowego identyfikatora każdego rekordu, oraz klucz obcy w drugiej tabeli. Pracowników można na przykład skojarzyć z zamówieniami, za które odpowiadają, tworząc relację wykorzystującą pole Identyfikator pracownika z tabel Pracownicy i Zamówienia.

Pole Identyfikator pracownika w tabeli Pracownicy jest używane jako klucz podstawowy, a w tabeli Zamówienia jako klucz obcy.

1. Pole Identyfikator pracownika występuje w obu tabelach — jako klucz podstawowy...

2. ...oraz jako klucz obcy.

Początek strony

Typy relacji pomiędzy tabelami

Istnieją trzy typy relacji między tabelami w programie Access.

  • Relacja jeden-do-wielu

    Użyjmy przykładu bazy danych do śledzenia zamówień, która zawiera tabelę Klienci i tabelę Zamówienia. Klient może złożyć dowolną liczbę zamówień. W związku z tym każdemu klientowi reprezentowanemu w tabeli Klienci może odpowiadać wiele zamówień reprezentowanych w tabeli Zamówienia. Relacja pomiędzy tabelą Klienci a tabelą Zamówienia to relacja jeden-do-wielu.

    Aby w projekcie bazy danych utworzyć relację jeden-do-wielu, należy klucz podstawowy znajdujący się po stronie „jeden” relacji dodać jako pole lub pola do tabeli po stronie „wiele” tej relacji. W tym przykładzie należy dodać nowe pole — jest to pole identyfikatora z tabeli Klienci — do tabeli Zamówienia i nadać mu nazwę Identyfikator klienta. Dzięki temu w programie Access będzie możliwe wyszukanie właściwego klienta dla każdego zamówienia za pomocą numeru identyfikacyjnego klienta.

  • Relacja wiele-do-wielu

    Teraz przyjrzyjmy się relacji pomiędzy tabelą Produkty a tabelą Zamówienia. Jedno zamówienie może obejmować wiele produktów. Z drugiej strony jeden produkt może się znaleźć w wielu zamówieniach. Dlatego każdemu rekordowi z tabeli Zamówienia może odpowiadać wiele rekordów z tabeli Produkty. Ponadto każdemu rekordowi z tabeli Produkty może odpowiadać wiele rekordów z tabeli Zamówienia. Ta relacja to relacja wiele-do-wielu. Należy zauważyć, że aby wykryć istniejące relacje wiele-do-wielu pomiędzy tabelami, trzeba się przyjrzeć obu stronom relacji.

    Aby utworzyć relację wiele-do-wielu, należy utworzyć trzecią tabelę, często zwaną tabelą skrzyżowań, która rozbija relację wiele-do-wielu na dwie relacje jeden-do-wielu. Do tej trzeciej tabeli wstawia się klucze podstawowe z obu pierwotnych tabel. Skutkiem tego trzecia tabela rejestruje każde wystąpienie relacji. Tabele Zamówienia i Produkty są na przykład powiązane relacją wiele-do-wielu zdefiniowaną przez utworzenie dwóch relacji jeden-do-wielu z tabelą Szczegóły zamówień. Każde zamówienie może dotyczyć wielu produktów, a każdy produkt może występować w wielu zamówieniach.

  • Relacja jeden-do-jednego

    W relacji jeden-do-jednego z każdym rekordem w pierwszej tabeli może być związany tylko jeden pasujący rekord w drugiej tabeli, a z każdym rekordem w drugiej tabeli może być związany tylko jeden pasujący rekord w pierwszej tabeli. Ta relacja jest nietypowa, ponieważ najczęściej informacje powiązane w ten sposób są przechowywane w jednej tabeli. Za pomocą relacji jeden-do-jednego można podzielić tabelę z wieloma polami, odizolować fragment tabeli ze względów bezpieczeństwa lub przechowywać informacje odnoszące się tylko do podzbioru tabeli głównej. Określenie takiej relacji wymaga, aby w obu tabelach było używane wspólne pole.

Początek strony

Dlaczego warto tworzyć relacje pomiędzy tabelami?

Relacje pomiędzy tabelami można tworzyć bezpośrednio za pomocą okna Relacje lub przez przeciągnięcie pola z okienka Lista pól. Przy użyciu relacji pomiędzy tabelami w programie Access można określić sposób sprzęgania tabel, gdy trzeba ich użyć w obiekcie bazy danych. Istnieje kilka powodów, dla których warto tworzyć relacje pomiędzy tabelami przed utworzeniem innych obiektów bazy danych, takich jak formularze, kwerendy i raporty.

  • Relacje pomiędzy tabelami pomagają w projektowaniu kwerend

    Aby pracować z rekordami z więcej niż jednej tabeli, często należy utworzyć kwerendę sprzęgającą te tabele. Kwerenda działa przez dopasowywanie wartości pola klucza podstawowego pierwszej tabeli do pola klucza obcego drugiej tabeli. Aby na przykład zwrócić wiersze zawierające zamówienia każdego klienta, należy utworzyć kwerendę sprzęgającą tabelę Klienci z tabelą Zamówienia przy użyciu pola Identyfikator klienta. W oknie Relacje można ręcznie określić pola do sprzężenia. Jeśli jednak pomiędzy tabelami jest już zdefiniowana relacja, w programie Access jest podawane sprzężenie domyślne na podstawie istniejącej relacji pomiędzy tabelami. Ponadto jeśli używany jest jeden z kreatorów kwerend, w programie Access, przy użyciu informacji zebranych z już zdefiniowanych relacji pomiędzy tabelami, są przedstawiane rozszerzone opcje do wyboru i wstępnie uzupełniane ustawienia właściwości odpowiednimi wartościami domyślnymi.

  • Relacje pomiędzy tabelami pomagają w projektowaniu formularzy i raportów

    Podczas projektowania formularza lub raportu w programie Access, przy użyciu informacji zebranych z już zdefiniowanych relacji pomiędzy tabelami, są przedstawiane rozszerzone opcje do wyboru i wstępnie uzupełniane ustawienia właściwości odpowiednimi wartościami domyślnymi.

  • Relacje pomiędzy tabelami to podstawa, dzięki której można wymuszać więzy integralności zapobiegające powstawaniu rekordów odłączonych w bazie danych. Rekord odłączony to rekord odwołujący się do rekordu, który nie istnieje — na przykład rekord zamówienia, który odwołuje się do nieistniejącego rekordu klienta.

    Podczas projektowania bazy danych posiadane informacje dzieli się na tabele, z których każda ma klucz podstawowy. Następnie w tabelach powiązanych dodaje się klucze obce, które odwołują się do kluczy podstawowych. Te pary klucz obcy-klucz podstawowy stanowią podstawę relacji pomiędzy tabelami i kwerend wielotabelowych. Ważne jest synchronizowanie tych odwołań klucz obcy-klucz podstawowy. Więzy integralności, które zależą od relacji pomiędzy tabelami, pomagają w synchronizowaniu odwołań.

Początek strony

Opis więzów integralności

Podczas projektowania bazy danych informacje danej bazy danych dzieli się na wiele tabel tematycznych, aby zminimalizować nadmiarowość danych. Następnie w programie Access określa się sposób ponownego zestawiania danych przez umieszczanie pól wspólnych w powiązanych tabelach. Aby na przykład utworzyć relację jeden-do-wielu, należy klucz podstawowy z tabeli po stronie „jeden” dodać jako pole w tabeli po stronie „wiele”. Aby ponownie zestawić dane, w programie Access sprawdzana jest wartość w tabeli po stronie „wiele” i wyszukiwana odpowiadającą jej wartość w tabeli po stronie „jeden”. Dzięki temu wartości w tabeli po stronie „wiele” odwołują się do odpowiednich wartości w tabeli po stronie „jeden”.

Przypuśćmy, że istnieje relacja jeden-do-wielu między tabelami Spedytorzy i Zamówienia oraz trzeba usunąć pewnego spedytora. Jeśli usuwanemu spedytorowi odpowiadają zamówienia w tabeli Zamówienia, to po usunięciu rekordu spedytora staną się one rekordami odłączonymi. Zamówienia te będą wciąż zawierać identyfikator spedytora, ale identyfikator ten nie będzie już prawidłowy, ponieważ przestanie istnieć rekord, do którego on się odwołuje.

Więzy integralności mają na celu zapobieganie powstawaniu rekordów odłączonych i synchronizowanie odwołań, tak aby ta teoretyczna sytuacja nigdy nie wystąpiła.

Więzy integralności wymusza się przez włączenie ich dla relacji pomiędzy tabelami (aby uzyskać instrukcje krok po kroku, zobacz Włączanie więzów integralności). Jeśli więzy integralności są wymuszane, w programie Access odrzucana jest każda operacja, która naruszyłaby te więzy w danej relacji pomiędzy tabelami. Oznacza to, że w programie Access zostaną odrzucone zarówno aktualizacje zmieniające obiekt docelowy odwołania, jak i operacje usuwające obiekt docelowy odwołania. Możliwe jednak, że wystąpi całkowicie uzasadniona potrzeba zmiany klucza podstawowego spedytora, któremu odpowiadają zamówienia w tabeli Zamówienia. W takim przypadku tak naprawdę potrzebna jest automatyczna aktualizacja wszystkich wierszy, na które wpływa ta zmiana, w ramach jednej operacji w programie Access. W ten sposób program Access zapewnia wykonanie pełnej aktualizacji, dzięki czemu baza danych nie będzie niespójna w wyniku zaktualizowania tylko niektórych wierszy. W tym celu program Access udostępnia opcję Kaskadowo aktualizuj pola pokrewne. Gdy użytkownik wymusi więzy integralności i wybierze opcję Kaskadowo aktualizuj pola pokrewne, a następnie zaktualizuje klucz podstawowy, w programie Access zostaną automatycznie zaktualizowane wszystkie pola, które odwołują się do klucza podstawowego.

Ponadto może wystąpić uzasadniona potrzeba usunięcia wiersza i wszystkich wierszy pokrewnych — na przykład rekordu Spedytor i wszystkich zamówień powiązanych z danym spedytorem. W programie Access służy do tego opcja Kaskadowo usuń rekordy pokrewne. Gdy użytkownik wymusi więzy integralności i wybierze opcję Kaskadowo usuń rekordy pokrewne, a następnie usunie rekord po stronie relacji, po której znajduje się klucz podstawowy, w programie Access zostaną automatycznie usunięte wszystkie rekordy odwołujące się do klucza podstawowego.

Początek strony

Wyświetlanie relacji pomiędzy tabelami

Aby wyświetlić relacje pomiędzy tabelami, należy kliknąć pozycję Relacje na karcie Narzędzia bazy danych. Zostanie otworzone okno Relacje zawierające wszystkie istniejące relacje. Jeśli relacje pomiędzy tabelami nie zostały jeszcze zdefiniowane i okno Relacje jest otwierane pierwszy raz, w programie Access zostanie wyświetlony monit o dodanie tabeli lub kwerendy do okna.

Otwieranie okna Relacje

  1. Kliknij pozycję Plik, a następnie kliknij pozycję Otwórz.

  2. Wybierz i otwórz bazę danych.

  3. Na karcie Narzędzia bazy danych w grupie Relacje kliknij pozycję Relacje.

    Jeśli baza danych zawiera relacje, zostanie wyświetlone okno Relacje. Jeśli baza danych nie zawiera relacji i okno Relacje jest otwierane pierwszy raz, zostanie wyświetlone okno dialogowe Pokazywanie tabeli. Kliknij przycisk Zamknij, aby zamknąć okno dialogowe.

  4. Na karcie Projektowanie w grupie Relacje kliknij pozycję Wszystkie relacje.

    Zostaną wyświetlone wszystkie relacje zdefiniowane w bazie danych. Należy pamiętać, że tabele ukryte (czyli tabele, dla których zaznaczono pole wyboru Ukryty w oknie dialogowym Właściwości) oraz ich relacje nie zostaną wyświetlone, chyba że w oknie dialogowym Opcje nawigacji jest zaznaczone pole wyboru Pokaż ukryte obiekty.

Relację pomiędzy tabelami reprezentuje linia relacji narysowana między tabelami w oknie Relacje. Jeśli w relacji nie są wymuszane więzy integralności, to ma ona postać cienkiej linii między polami wspólnymi obsługującymi relację. Zaznaczenie relacji przez kliknięcie linii powoduje pogrubienie tej linii. Jeśli w relacji są wymuszane więzy integralności, linia jest grubsza na obu końcach. Ponadto nad grubszym fragmentem linii po jednej stronie relacji jest wyświetlana liczba 1, a nad grubszym fragmentem po drugiej stronie jest wyświetlany symbol nieskończoności ().

Gdy okno Relacje jest aktywne, dostępne są następujące polecenia na Wstążce:

Na karcie Projektowanie w grupie Narzędzia:

  • Edytuj relacje    Otwiera okno dialogowe Edytowanie relacji. Po zaznaczeniu linii relacji można kliknąć przycisk Edytuj relacje, aby zmienić relację pomiędzy tabelami. Można także kliknąć dwukrotnie linię relacji.

  • Wyczyść układ    Usuwa wszystkie tabele i relacje z widoku w oknie Relacje. Należy pamiętać, że to polecenie tylko ukrywa tabele i relacje — nie usuwa ich w rzeczywistości.

  • Raport relacji    Tworzy raport, w którym wyświetlane są tabele i relacje zawarte w bazie danych. Raport pokazuje tylko tabele i relacje, które nie są ukryte w oknie Relacje.

Na karcie Projektowanie w grupie Relacje:

  • Pokaż tabelę    Otwiera okno dialogowe Pokazywanie tabeli, umożliwiając wybranie tabel i kwerend do wyświetlenia w oknie Relacje.

  • Ukryj tabelę    Ukrywa wybraną tabelę w oknie Relacje.

  • Relacje bezpośrednie    Wyświetla w oknie Relacje wszystkie relacje i tabele powiązane odpowiadające wybranej tabeli (jeśli nie są jeszcze wyświetlone).

  • Wszystkie relacje    Wyświetla w oknie Relacje wszystkie relacje i tabele pokrewne znajdujące się w bazie danych. Należy pamiętać, że tabele ukryte (czyli tabele, dla których zaznaczono pole wyboru Ukryty w oknie dialogowym Właściwości) oraz ich relacje nie zostaną wyświetlone, chyba że w oknie dialogowym Opcje nawigacji jest wybrana opcja Pokaż ukryte obiekty.

  • Zamknij    Zamyka okno Relacje. Jeśli w układzie okna Relacje zostały wprowadzone zmiany, zostanie wyświetlony monit o ich zapisanie.

Początek strony

Tworzenie relacji pomiędzy tabelami

Relację pomiędzy tabelami można utworzyć przy użyciu okna Relacje lub przez przeciągnięcie pola do arkusza danych z okienka Lista pól. Podczas tworzenia relacji pomiędzy tabelami pola wspólne nie muszą mieć tych samych nazw (choć często mają). Ważniejsze jest to, że pola wspólne muszą mieć ten sam typ danych. Jednak jeśli polem klucza podstawowego jest pole typu Autonumerowanie, polem klucza obcego może być również pole typu Liczba, o ile właściwość RozmiarPola obu pól jest taka sama. Na przykład pole typu Autonumerowanie można powiązać z polem typu Liczba, jeśli właściwość RozmiarPola obu tych pól ma wartość Liczba całkowita długa. Gdy oba pola wspólne są polami typu Liczba, muszą mieć takie samo ustawienie właściwości RozmiarPola.

Tworzenie relacji pomiędzy tabelami za pomocą okna Relacje

  1. Kliknij pozycję Plik, a następnie kliknij pozycję Otwórz.

  2. Wybierz i otwórz bazę danych.

  3. Na karcie Narzędzia bazy danych w grupie Relacje kliknij przycisk Relacje.

  4. Jeśli nie zostały jeszcze zdefiniowane relacje, zostanie automatycznie wyświetlone okno dialogowe Pokazywanie tabeli. Jeśli nie zostanie ono wyświetlone, na karcie Projektowanie w grupie Relacje kliknij przycisk Pokaż tabelę.

    W oknie dialogowym Pokazywanie tabeli są wyświetlane wszystkie tabele i kwerendy zawarte w bazie danych. Aby zobaczyć tylko tabele, kliknij kartę Tabele. Aby zobaczyć tylko kwerendy, kliknij kartę Kwerendy. Aby zobaczyć tabele i kwerendy, kliknij kartę Obie.

  5. Zaznacz co najmniej jedną tabelę lub kwerendę, a następnie kliknij przycisk Dodaj. Gdy zakończysz dodawanie tabel i kwerend do okna Relacje, kliknij przycisk Zamknij.

  6. Przeciągnij pole (zwykle klucz podstawowy) z jednej tabeli do pola wspólnego (klucza obcego) w drugiej tabeli. Aby przeciągnąć kilka pól, przed przeciągnięciem kliknij kolejne pola przy naciśniętym klawiszu CTRL.

    Zostanie wyświetlone okno dialogowe Edytowanie relacji.

  7. Sprawdź, czy pokazane nazwy pól oznaczają pola wspólne relacji. Jeśli nazwa pola jest niepoprawna, kliknij ją i wybierz z listy nowe pole.

    Aby wymusić więzy integralności dla tej relacji, zaznacz pole wyboru Wymuszaj więzy integralności. Aby uzyskać więcej informacji na temat więzów integralności, zobacz sekcje Opis więzów integralności oraz Wymuszanie więzów integralności.

  8. Kliknij przycisk Utwórz.

    Między dwiema tabelami zostanie narysowana linia relacji. Jeśli zostało zaznaczone pole wyboru Wymuszaj więzy integralności, linia będzie grubsza na obu końcach. Ponadto, jeśli zostało zaznaczone pole wyboru Wymuszaj więzy integralności, nad grubszym odcinkiem linii po jednej stronie relacji zostanie wyświetlona liczba 1, a nad grubszym odcinkiem linii po drugiej stronie zostanie wyświetlony symbol nieskończoności ().

    Uwagi : 

    • Tworzenie relacji jeden-do-jednego    Oba pola wspólne (zwykle pola klucza podstawowego i klucza obcego) muszą mieć unikatowy indeks. Oznacza to, że właściwość Indeksowane tych pól powinna być ustawiona na wartość Tak (Bez duplikatów). Jeśli oba pola mają unikatowy indeks, w programie Access są tworzone relację jeden-do-jednego.

    • Tworzenie relacji jeden-do-wielu    Pole po stronie „jeden” relacji (zwykle pole klucza podstawowego) musi mieć unikatowy indeks. Oznacza to, że właściwość Indeksowane tego pola powinna być ustawiona na wartość Tak (Bez duplikatów). Pole po stronie „wiele” nie powinno mieć unikatowego indeksu. Może mieć ono indeks, ale musi zezwalać na duplikaty. Oznacza to, że właściwość Indeksowane tego pola powinna być ustawiona na wartość Nie lub wartość Tak (Duplikaty OK). Gdy jedno pole ma unikatowy indeks, a drugie nie, w programie Access jest tworzona relacja jeden-do-wielu.

Tworzenie relacji pomiędzy tabelami za pomocą okienka Lista pól

Do istniejącej tabeli otwartej w widoku arkusza danych można dodać pole, przeciągając je z okienka Lista pól. W okienku Lista pól są pokazane pola dostępne w tabelach powiązanych oraz pola dostępne w innych tabelach. Przeciągnięcie pola z „innej” (niepowiązanej) tabeli, a następnie wykonanie wszystkich kroków Kreatora odnośników, spowoduje automatyczne utworzenie nowej relacji jeden-do-wielu pomiędzy tabelą z okienka Lista pól a tabelą, do której zostało przeciągnięte pole. W tej relacji, utworzonej w programie Access, więzy integralności nie są domyślnie wymuszane. Więzy integralności można wymusić, edytując relację. Aby uzyskać więcej informacji, zobacz sekcję Zmienianie relacji pomiędzy tabelami.

Otwieranie tabeli w widoku arkusza danych

  1. Na karcie Plik kliknij pozycję Otwórz.

  2. W oknie dialogowym Otwieranie wybierz i otwórz bazę danych.

  3. W okienku nawigacji kliknij prawym przyciskiem myszy tabelę, do której chcesz dodać pole, i utwórz relację, a następnie kliknij polecenie Otwórz.

Otwieranie okienka Lista pól

  • Naciśnij klawisze ALT+F8.

    Zostanie wyświetlone okienko Lista pól.

W okienku Lista pól są wyświetlane wszystkie inne tabele z danej bazy danych, pogrupowane w kategorie. Podczas pracy z tabelą w widoku arkusza danych program Access wyświetla pola w okienku Lista pól w jednej z dwóch kategorii: Pola dostępne w tabelach pokrewnych i Pola dostępne w innych tabelach. W pierwszej kategorii są wymienione wszystkie tabele, które pozostają w relacji z aktualnie opracowywaną tabelą, w drugiej zaś — wszystkie tabele, z którymi dana tabela nie ma relacji.

W okienku Lista pól należy kliknąć znak plus (+) obok nazwy tabeli, aby wyświetlić listę wszystkich dostępnych w niej pól. Aby dodać pole do opracowywanej tabeli, należy przeciągnąć żądane pole z okienka Lista pól do tabeli w widoku arkusza danych.

Dodawanie pola i tworzenie relacji za pomocą okienka Lista pól

  1. W okienku Lista pól w obszarze Pola dostępne w innych tabelach kliknij znak plus (+) obok nazwy tabeli, aby wyświetlić listę pól zawartych w tej tabeli.

  2. Przeciągnij odpowiednie pole z okienka Lista pól do tabeli otwartej w widoku arkusza danych.

  3. Gdy zostanie wyświetlony wiersz wstawiania, upuść pole w odpowiednim miejscu.

    Zostanie uruchomiony Kreator odnośników.

  4. Postępuj zgodnie z instrukcjami, aby ukończyć pracę z Kreatorem odnośników.

    Pole zostanie wyświetlone w tabeli w widoku arkusza danych.

Przeciągnięcie pola z „innej” (niepowiązanej) tabeli, a następnie wykonanie wszystkich kroków Kreatora odnośników, spowoduje automatyczne utworzenie nowej relacji jeden-do-wielu pomiędzy tabelą z okienka Lista pól a tabelą, do której zostało przeciągnięte pole. W tej relacji, utworzonej w programie Access, więzy integralności nie są domyślnie wymuszane. Więzy integralności można wymusić, edytując relację. Aby uzyskać więcej informacji, zobacz sekcję Zmienianie relacji pomiędzy tabelami.

Początek strony

Usuwanie relacji pomiędzy tabelami

Aby usunąć relację pomiędzy tabelami, należy usunąć linię relacji w oknie Relacje. Należy starannie ustawić wskaźnik tak, aby wskazywał linię relacji, a następnie kliknąć tę linię. Zaznaczona linia relacji jest pogrubiona. Po zaznaczeniu linii relacji należy nacisnąć klawisz DELETE. Należy zauważyć, że 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ż automatycznie zapobiegać tworzeniu rekordów odłączonych po stronie „wiele” relacji.

  1. Na karcie Narzędzia bazy danych w grupie Relacje kliknij pozycję Relacje.

    Zostanie wyświetlone okno Relacje. Jeśli nie zdefiniowano jeszcze żadnych relacji i okno Relacje jest otwierane po raz pierwszy, zostanie wyświetlone okno dialogowe Pokazywanie tabeli. W przypadku wyświetlenia tego okna dialogowego kliknij przycisk Zamknij.

  2. Na karcie Projektowanie w grupie Relacje kliknij pozycję Wszystkie relacje.

    Zostaną wyświetlone wszystkie tabele mające relacje, a także linie relacji.

  3. Kliknij linię oznaczającą relację, którą chcesz usunąć. Zaznaczona linia relacji jest pogrubiona.

  4. Naciśnij klawisz DELETE.

    — lub —

Kliknij prawym przyciskiem myszy, a następnie kliknij polecenie Usuń.

  • W programie Access może zostać wyświetlony komunikat Czy na pewno chcesz trwale usunąć wybraną relację z bazy danych?. W przypadku wyświetlenia tego komunikatu potwierdzającego kliknij przycisk Tak.

Uwaga : Jeśli dowolna z tabel występująca w relacji jest używana — na przykład przez inną osobę lub proces albo w otwartym obiekcie bazy danych (takim jak formularz) — jej usunięcie nie będzie możliwe. Aby usunięcie relacji było możliwe, należy najpierw zamknąć wszystkie otwarte obiekty używające tych tabel.

Początek strony

Zmienianie relacji pomiędzy tabelami

Aby zmienić relację pomiędzy tabelami, należy ją zaznaczyć w oknie Relacje, a następnie przeprowadzić jej edycję. Należy starannie ustawić wskaźnik tak, aby wskazywał linię relacji, a następnie kliknięciem zaznaczyć tę linię. Zaznaczona linia relacji jest pogrubiona. Po zaznaczeniu linii relacji należy kliknąć dwukrotnie lub kliknąć przycisk Edytuj relacje w grupie Narzędzia na karcie Projektowanie. Zostanie wyświetlone okno dialogowe Edytowanie relacji.

Wprowadzanie zmian w oknie dialogowym Edytowanie relacji

  1. Na karcie Narzędzia bazy danych w grupie Relacje kliknij pozycję Relacje.

    Zostanie wyświetlone okno Relacje. Jeśli nie zdefiniowano jeszcze żadnych relacji i okno Relacje jest otwierane po raz pierwszy, zostanie wyświetlone okno dialogowe Pokazywanie tabeli. W przypadku wyświetlenia tego okna dialogowego kliknij przycisk Zamknij.

  2. Na karcie Projektowanie w grupie Relacje kliknij pozycję Wszystkie relacje.

    Zostaną wyświetlone wszystkie tabele mające relacje, a także linie relacji.

  3. Kliknij linię oznaczającą relację, którą chcesz zmienić. Zaznaczona linia relacji jest pogrubiona.

  4. Kliknij dwukrotnie linię relacji.

  5. Wprowadź zmiany, a następnie kliknij przycisk OK.

    Okno dialogowe Edytowanie relacji umożliwia zmianę relacji pomiędzy tabelami. W szczególności możesz zmienić tabele, kwerendy lub pola po dowolnej stronie relacji. Ponadto możesz ustawić typ sprzężenia lub wymusić więzi integralności i wybrać opcję operacji kaskadowych. Aby uzyskać więcej informacji na temat typu sprzężenia i sposobu ustawiania go, zobacz sekcję Ustawianie typu sprzężenia. Aby uzyskać więcej informacji na temat sposobu wymuszania więzów integralności i wybierania opcji operacji kaskadowych, zobacz sekcję Wymuszanie więzów integralności.

Ustawianie typu sprzężenia

Po zdefiniowaniu relacji pomiędzy tabelami informacje na temat tej relacji są wykorzystywane w projektach kwerend. Jeśli na przykład zostanie zdefiniowana relacja między dwiema tabelami, a następnie użytkownik zacznie tworzyć kwerendę korzystającą z tych tabel, w programie Access zostaną automatycznie wybrane domyślne powiązane pola na podstawie pól określonych w relacji. Te początkowe wartości domyślne kwerendy można zastąpić, ale wartości pochodzące z relacji często okazują się poprawne. Ponieważ poza najprostszymi bazami danych dopasowywanie i łączenie danych z więcej niż jednej tabeli jest często wykonywaną czynnością, ustawienie wartości domyślnych przez utworzenie relacji może zaoszczędzić czas i zapewnić różne korzyści.

Kwerenda wielotabelowa łączy informacje z więcej niż jednej tabeli dzięki dopasowaniu wartości z pól wspólnych. Operacja powodująca dopasowywanie i łączenie jest nazywana sprzężeniem. Załóżmy na przykład, że użytkownik chce wyświetlić zamówienia klientów. Tworzy więc kwerendę sprzęgającą tabelę Klienci i tabelę Zamówienia przy użyciu pola Identyfikator klienta. Wynik kwerendy zawiera informacje o klientach i informacje o zamówieniach wyłącznie z tych wierszy, w których zostało odnalezione odpowiednie dopasowanie.

Jedną z wartości, którą można określić w każdej relacji, jest typ sprzężenia. Typ sprzężenia w programie Access określa, które rekordy mają być uwzględnione w wyniku kwerendy. Jako przykładu można ponownie użyć kwerendy sprzęgającej tabelę Klienci i tabelę Zamówienia przy użyciu pola wspólnego z identyfikatorem klienta. W przypadku użycia domyślnego typu sprzężenia (zwanego sprzężeniem wewnętrznym) kwerenda zwraca tylko wiersze klientów i wiersze zamówień, w których pola wspólne (zwane również polami sprzężonymi) są równe.

Załóżmy jednak, że trzeba uwzględnić wszystkich klientów — nawet tych, którzy jeszcze nie złożyli zamówień. W tym celu należy zmienić typ sprzężenia ze sprzężenia wewnętrznego na tzw. lewe sprzężenie zewnętrzne. Lewe sprzężenie zewnętrzne zwraca wszystkie wiersze z tabeli po lewej stronie relacji oraz tylko pasujące wiersze z tabeli po prawej stronie. Prawe sprzężenie zewnętrzne zwraca wszystkie wiersze z prawej strony i tylko pasujące wiersze z lewej strony.

Uwaga : W tym przypadku określenia „lewe” i „prawe” odnoszą się do położenia tabel w oknie dialogowym Edytowanie relacji, a nie w oknie Relacje.

Należy się zastanowić, jaki wynik zapytania sprzęgającego tabele relacji będzie potrzebny najczęściej, a następnie odpowiednio ustawić typ sprzężenia.

Ustawianie typu sprzężenia

  1. W oknie dialogowym Edytowanie relacji kliknij przycisk Typ sprzężenia.

    Zostanie wyświetlone okno dialogowe Właściwości sprzężenia.

  2. Kliknij odpowiednią opcję, a następnie kliknij przycisk OK.

W poniższej tabeli (opracowanej dla tabel Klienci i Zamówienia) przedstawiono trzy opcje wyświetlane w oknie dialogowym Właściwości sprzężenia, typ używanego w nich sprzężenia oraz informację, czy w poszczególnych tabelach są uwzględniane wszystkie wiersze, czy pasujące wiersze.

Opcja

Sprzężenie relacyjne

Lewa tabela

Prawa tabela

1. Uwzględnia tylko wiersze, w których sprzężone pola z obu tabel są równe.

Sprzężenie wewnętrzne

Pasujące wiersze

Pasujące wiersze

2. Uwzględnia WSZYSTKIE rekordy z tabeli Klienci i tylko te rekordy z tabeli Zamówienia, dla których sprzężone pola są równe.

Lewe sprzężenie zewnętrzne

Wszystkie wiersze

Pasujące wiersze

3. Uwzględnia WSZYSTKIE rekordy z tabeli Zamówienia i tylko te rekordy z tabeli Klienci, dla których sprzężone pola są równe.

Prawe sprzężenie zewnętrzne

Pasujące wiersze

Wszystkie wiersze

W przypadku wybrania opcji 2 lub opcji 3 na linii relacji zostanie wyświetlona strzałka. Ta strzałka wskazuje stronę relacji, dla której są pokazane tylko pasujące wiersze.

Wprowadzanie zmian w oknie dialogowym Właściwości sprzężenia

  1. Na karcie Narzędzia bazy danych w grupie Relacje kliknij pozycję Relacje.

    Zostanie wyświetlone okno Relacje. Jeśli nie zdefiniowano jeszcze żadnych relacji i okno Relacje jest otwierane po raz pierwszy, zostanie wyświetlone okno dialogowe Pokazywanie tabeli. W przypadku wyświetlenia tego okna dialogowego kliknij przycisk Zamknij.

  2. Na karcie Projektowanie w grupie Relacje kliknij przycisk Wszystkie relacje.

    Zostaną wyświetlone wszystkie tabele mające relacje, a także linie relacji.

  3. Kliknij linię oznaczającą relację, którą chcesz zmienić. Zaznaczona linia relacji jest pogrubiona.

  4. Kliknij dwukrotnie linię relacji.

    Zostanie wyświetlone okno dialogowe Edytowanie relacji.

  5. Kliknij pozycję Typ sprzężenia.

  6. W oknie dialogowym Właściwości sprzężenia kliknij odpowiednią opcję, a następnie kliknij przycisk OK.

  7. Wprowadź ewentualne dodatkowe zmiany w relacji, a następnie kliknij przycisk OK.

Początek strony

Wymuszanie więzów integralności

Więzy integralności mają na celu zapobieganie powstawaniu rekordów odłączonych i synchronizowanie odwołań, tak aby nie było rekordów odwołujących się do rekordów, które już nie istnieją. Więzy integralności wymusza się przez włączenie ich dla relacji pomiędzy tabelami. Jeśli więzy integralności są wymuszane, w programie Access jest odrzucana każda operacja, która naruszyłaby te więzy w danej relacji pomiędzy tabelami. W programie Access są odrzucane aktualizacje zmieniające obiekt docelowy odwołania, a także operacje usuwające obiekt docelowy odwołania. Aby w programie Access były propagowane aktualizacje i usunięcia odwołań, tak aby wszystkie powiązane wiersze były zmieniane w odpowiedni sposób, zobacz sekcję Ustawianie opcji operacji kaskadowych.

Włączanie lub wyłączanie więzów integralności

  1. W oknie Relacje kliknij linię oznaczającą relację, którą chcesz zmienić. Zaznaczona linia relacji jest pogrubiona.

  2. Kliknij dwukrotnie linię relacji.

Zostanie wyświetlone okno dialogowe Edytowanie relacji.

  1. Zaznacz pole wyboru Wymuszaj więzy integralności.

  2. Wprowadź ewentualne dodatkowe zmiany w relacji, a następnie kliknij przycisk OK.

Po wymuszeniu więzów integralności są stosowane następujące reguły:

  • Nie można wprowadzić wartości w polu klucza obcego tabeli powiązanej, jeśli ta wartość nie istnieje w polu klucza podstawowego tabeli podstawowej — czynność ta powoduje powstanie rekordów odłączonych.

  • Nie można usunąć rekordu z tabeli podstawowej, jeśli w tabeli powiązanej istnieją pasujące do niego rekordy. Nie można na przykład usunąć rekordu pracownika z tabeli Pracownicy, jeśli w tabeli Zamówienia istnieją zamówienia przypisane temu pracownikowi. Można usunąć rekord podstawowy oraz wszystkie rekordy pokrewne w ramach jednej operacji, zaznaczając pole wyboru Kaskadowo usuń rekordy pokrewne.

  • Nie można zmienić wartości klucza podstawowego w tabeli podstawowej, jeśli spowodowałoby to powstanie rekordów odłączonych. Nie można na przykład zmienić numeru zamówienia w tabeli Zamówienia, jeśli w tabeli Szczegóły zamówienia istnieją pozycje przypisane do tego zamówienia. Można zaktualizować rekord podstawowy oraz wszystkie rekordy pokrewne w ramach jednej operacji, zaznaczając pole wyboru Kaskadowo aktualizuj pola pokrewne.

    Uwagi : Jeśli przy włączaniu więzów integralności występują problemy, warto pamiętać, że do wymuszenia tych więzów jest wymagane spełnienie następujących warunków:

    • Pole wspólne z tabeli podstawowej musi być kluczem podstawowym lub mieć unikatowy indeks.

    • Pola wspólne muszą mieć ten sam typ danych. Jedynym wyjątkiem jest możliwość powiązania pola typu Autonumerowanie z polem typu Liczba, którego właściwość RozmiarPola ma ustawienie Liczba całkowita długa.

    • Obie tabele muszą znajdować się w tej samej bazie danych programu Access. Więzów integralności nie można wymusić w tabelach połączonych. Jednak jeśli tabele źródłowe mają format programu Access, można otworzyć bazę danych, w której są przechowywane, i włączyć więzy integralności w tej bazie danych.

Ustawianie opcji operacji kaskadowych

Może się zdarzyć, że wystąpi uzasadniona potrzeba zmiany wartości po stronie „jeden” relacji. W takim przypadku w programie Access w ramach jednej operacji powinny zostać automatycznie zaktualizowane wszystkie odpowiednie wiersze. W ten sposób aktualizacja jest wykonywana w pełni, dzięki czemu baza danych nie będzie niespójna w wyniku zaktualizowania tylko niektórych wierszy. Aby uniknąć tego problemu, program Access udostępnia opcję Kaskadowo aktualizuj pola pokrewne. Gdy użytkownik wymusi więzy integralności i wybierze opcję Kaskadowo aktualizuj pola pokrewne, a następnie zaktualizuje klucz podstawowy, w programie Access zostaną automatycznie zaktualizowane wszystkie pola, które odwołują się do klucza podstawowego.

Ponadto może wystąpić potrzeba usunięcia wiersza i wszystkich wierszy pokrewnych, na przykład rekordu spedytora i wszystkich zamówień powiązanych z danym spedytorem. W programie Access służy do tego opcja Kaskadowo usuń rekordy pokrewne. Gdy użytkownik wymusi więzy integralności i wybierze opcję Kaskadowo usuń rekordy pokrewne, to w momencie usunięcia rekordu zawierającego klucz podstawowy w programie Access zostaną automatycznie usunięte wszystkie rekordy, które odwołują się do klucza podstawowego.

Włączanie lub wyłączanie aktualizowania kaskadowego i/lub usuwania kaskadowego

  1. W oknie Relacje kliknij linię oznaczającą relację, którą chcesz zmienić. Zaznaczona linia relacji jest pogrubiona.

  2. Kliknij dwukrotnie linię relacji.

Zostanie wyświetlone okno dialogowe Edytowanie relacji.

  1. Zaznacz pole wyboru Wymuszaj więzy integralności.

  2. Zaznacz pole wyboru Kaskadowo aktualizuj pola pokrewne lub Kaskadowo usuń rekordy pokrewne albo zaznacz oba te pola.

  3. Wprowadź ewentualne dodatkowe zmiany w relacji, a następnie kliknij przycisk OK.

Uwaga : Jeśli klucz podstawowy jest polem typu Autonumerowanie, zaznaczenie pola wyboru Kaskadowo aktualizuj pola pokrewne nie wywoła żadnych skutków, ponieważ zmiana wartości pola typu Autonumerowanie jest niemożliwa.

Początek strony

Uwaga : Zrzeczenie dotyczące tłumaczenia maszynowego: Ten artykuł został przetłumaczony przez system komputerowy bez interwencji człowieka. Firma Microsoft udostępnia te tłumaczenia maszynowe, aby ułatwić użytkownikom, którzy nie znają języka angielskiego, korzystanie z zawartości dotyczącej produktów, usług i technologii firmy Microsoft. Ponieważ ten artykuł został przetłumaczony maszynowo, może zawierać błędy w słownictwie, składniowe lub gramatyczne.

Rozwijaj swoje umiejętności
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.

×