MS Access 2000 Relacje Piotr Górczyński 2005
Spis treści O relacjach Relacja typu 1:n Przykłady relacji 1:n Tworzenie relacji 2005
Wstęp Relacja określa związek między rekordami dwóch tabel lub tej samej tabeli Wyróżnia się relacje typu 1:1 (jeden do jednego) 1:n, 1: (jeden do wielu) n:n, : (wiele do wielu) W procesie normalizacji uzyskamy zawsze relacje typu 1:n Relacje pozwalają zapewnić integralność (zgodność, poprawność) danych 2005
Relacja typu 1:n Jeżeli w wyniku procesu normalizacji pole (lub pola) znajdą się w tabelach A i B, to tabele A i B będą ze sobą w relacji. Jeżeli pole to stanie się kluczem (całym kluczem, a nie jego częścią) na przykład w tabeli A, to tabelę tą nazywamy tabelą główną (master, parent) a tabelę B tabelą szczegółową (detail, child). Mówimy wtedy, że tabele A i B są w relacji jeden do wielu i oznaczamy to przez symbol 1:n. Relacja typu 1:n między rekordami tabel A i B oznacza, że dla każdego rekordu w tabeli A może wystąpić dowolna ilość rekordów w tabeli B Pole w tabeli szczegółowej, które łączy się z kluczem w tabeli głównej, nazywamy kluczem obcym (foreign key) 2005
Przykład pierwszy relacji 1:n W procesie normalizacji (do 3 postaci normalnej) uzyskaliśmy tabele Odbiorcy i Faktury. Pole NIPObiorcy znalazło się w obu tabelach i pozwala powiązać rekordy między dwoma tabelami Ponieważ pole NIPOdbiorcy stanowi cały klucz w tabeli Odbiorcy to tabelę Odbiorcy nazywamy tabelą główną (ang. master, parent), a tabelę Faktura nazywamy tabelą szczegółową (ang. detail, child) Między tabelami istnieje zatem relacja typu 1:n oznaczająca, że dla 1 rekordu w tabeli Odbiorcy o określonej wartości w polu Odbiorcy.NIPObiorcy, może wystąpić wiele rekordów w tabeli Faktura o takiej samej wartości w polu Faktura.NIPObiorcy Pole NIPObiorcy w tabeli szczegółowej Faktura, które łączy się z kluczem w tabeli głównej, nazywamy kluczem obcym (foreign key) 2005
Przykład drugi relacji 1:n W procesie normalizacji (do 2 postaci normalnej) uzyskaliśmy między innymi tabele PozycjeFaktury i Towar. Pole NazwaTowaru znalazło się w obu tabelach i pozwala powiązać rekordy między dwoma tabelami Ponieważ pole NazwaTowaru stało się całym kluczem w tabeli Towar to tabelę Towar nazywamy tabelą główną (ang. master, parent), a tabelę PozycjeFaktury nazywamy tabelą szczegółową (ang. detail, child) Między tabelami istnieje zatem relacja typu 1:n oznaczająca, że dla 1 rekordu w tabeli Towar o określonej wartości w polu Towar. NazwaTowaru, może wystąpić wiele rekordów w tabeli PozycjeFaktury o takiej samej wartości w polu PozycjeFaktury. NazwaTowaru Pole NazwaTowaru w tabeli szczegółowej PozycjeFaktury, które łączy się z kluczem w tabeli głównej, nazywamy kluczem obcym (foreign key) 2005
Tworzenie relacji - krok 1 z 4 Aby stworzyć relacje należy otworzyć okno relacji. W tym celu należy wybrać z menu Narzędzia (Tools) polecenie Relacje (Relationship) lub kliknąć na pasku narzędzi guzik Otworzy się okno, które pozwala na zdefiniowanie relacji między tabelami 2005
Dodawanie tabel - krok 2 z 4 Aby zobaczyć tabelę w oknie relacji należy ją dodać. Robimy to wybierając z menu Relacje (Relationships) polecenie Dodaj tabelę (Add table) lub klikając na pasku narzędzi guzik W oknie Pokaż tabelę (Show table) wybieramy tabelę i naciskamy guzik Dodaj (Add) 2005
Łączenie pól - krok 3 z 4 Naciskamy lewy przycisk myszy na polu tworzącym relację w tabeli głównej i przeciągamy je na odpowiednie pole w tabeli szczegółowej Pojawi się okno Edycja relacji (Edit Relationship), w którym sprawdzamy, czy relacja jest poprawna (między odpowiednimi polami i typu jeden-do-wielu) Włączamy opcję Wymuszenie integralności danych (Enforce Referential Integrity) Naciskamy OK 2005
Usuwanie relacji - krok 4 z 4 Jeżeli relacja została niepoprawnie utworzona to należy ją zaznaczyć klikając wskaźnika myszy na relacji (linia zostanie pogrubiona) Nacisnąć na klawiaturze klawisz Delete W oknie dialgowym pytającym o potwierdzenie naszej decyzji nacisnąć przycisk Tak (Yes) 2005
Diagram relacji 2005