22 Wrzesień 2019
Ostatnie artykuły
Egzamin mauralny i z...
Złote Pióra 2016
Dorota Sławińska
Wykaz podręczników 2...
Liceum Ogólnokształc...
Nawigacja
Strona główna
Patron Szkół
Artykuły
Download
FAQ
Forum
Katalog linków
Galeria zdjęć
Zespół muz. FORTE


Egzamin maturalny i zawodowy
Organizacja egzaminów

Plan lekcji 2019/20-zmiana od 16 września 2019 r.
Liceum Ogólnokształcące
Technikum
Branżowa Szkoła I stopnia

Biblioteka szkolna
Godziny pracy
Nowości książkowe
Kiermasz świąteczny

Dla Rodziców
Zebrania
Wychowawcy klas
Dodatkowe dni wolne
Plan pracy LO
Plan pracy Technikum
Plan pracy BS I stopnia

Publikacje
Publikacje nauczycieli

Prace ucziów
Publicystyka
Sport
Wydarzenia

Samorząd Uczniowski
Skład SU
Plan pracy

Szkolne Koło PCK
INFORMATYKA
Programowanie
Syst. operacyjne
Urządzenia TK
Oprogr. biurowe
Bazy danych
Multimedia
Informatyka
T. informacyjna

INNE PRZEDM.
Język polski


Ostatnio na forum
Najnowsze tematy
Gazetka Szkolna
XP Home Edition
Gratulacja
Najciekawsze tematy
Brak tematów na forum


Nawigacja
Artykuły » 06. Bazy danych. » Microsoft Access - Relacje
Microsoft Access - Relacje
Microsoft Access
Relacje

Po zaprojektowaniu różnych tabel dla poszczególnych tematów bazy danych (tzn. po określeniu ich struktury, typu danych, klucza podstawowego, ograniczeń), potrzebny jest sposób na powiązanie zawartych w nich informacji.

Pierwszym krokiem w tym procesie jest zdefiniowanie relacji (powiązań) pomiędzy tabelami.
Rodzaje relacji:

  • Jeden do jednego - jest tworzona, jeśli oba powiązane pola są kluczami podstawowymi lub mają unikatowe indeksy. Łączy jeden rekord z jednej tabeli dokładnie z jednym rekordem drugiej tabeli.
  • Wiele do jednego - jest tworzona, jeśli tylko jedno z powiązanych pól jest kluczem podstawowym lub ma unikatowy indeks (używana jest do łączenia wielu rekordów jednej tabeli z jednym rekordem innej tabeli).
  • Wiele do wielu - jest w rzeczywistości połączeniem dwóch powiązań jeden do wielu, za pomocą trzeciej tabeli, w której klucz podstawowy np. składa się z dwóch pól: kluczy obcych dwóch pozostałych tabel.

Uwaga

Jeżeli przy tworzeniu relacji, przeciągnie się pole, które nie jest kluczem podstawowym i nie ma indeksu unikatowego do innego pola, które również nie jest kluczem podstawowym i nie posiada indeksu unikatowego, to tworzona jest relacja nieokreślona.

Relacje tworzy się w oknie bazy danych. Można w nim wybrać polecenie Narzędzia-Relacje lub przycisk na pasku narzędzi..

Pojawi się wtedy okno dialogowe Relacje, które umożliwia dodawanie tabel i tworzenie między nimi powiązań. Kiedy pierwszy raz otworzy się to okno, jest ono puste. Aby dodać tabele należy wybrać polecenie Relacje-Pokaż tabelę. Po wyświetleniu listy tabel, należy dodać tabelę (tabele) do okna relacje klikając na nie dwukrotnie lewym przyciskiem myszy. Następnie zamknąć okno Pokazywanie tabeli. Wówczas otrzymamy następujący wygląd okna Relacje:

Aby utworzyć połączenie między tabelami, należy wykonać następujące czynności:

  1. Kliknąć na odpowiednie pole w wybranej tabeli.
  2. Trzymając wciśnięty lewy przycisk myszy przeciągamy wskaźnik myszy na odpowiednie pole innej tabeli.
  3. Upuścić wskaźnik myszy. Powinno się pojawić okno Edytowanie relacji.
Okno dialogowe Edytowanie relacji ma następujące opcje:
  • wymuszaj więzy integralności
  • kaskadowo aktualizuj pola pokrewne
  • kaskadowo usuń pola pokrewne

Więzy integralności stanowią system reguł zapewniający poprawność związków między rekordami tabel powiązanych ze sobą i uniemożliwiających przypadkowe usunięcie lub zmianę powiązanych danych. Więzy integralności wymagają spełnienia następujących warunków:

  • Pole w tabeli podstawowej jest kluczem podstawowym lub ma indeks unikatowy
  • Powiązane pola mają ten sam typ danych. Istnieją tylko dwa wyjątki od tej zasady, można powiązać pole typu Autonumerowanie z polem Liczba jeśli jego właściwość Rozmiar pola ma ustawienie: Liczba całkowita długa lub ID replikacji.
  • Obie tabele należą do jednej bazy danych programu Microsoft Access. Jeżeli tabele są tabelami połączonymi, muszą być tabelami programu Microsoft Access i trzeba otworzyć bazę danych, w której są one przechowywane, aby określić więzy integralności. Więzów integralności nie można wymusić połączonych z innego formatu.

Więzy integralności narzucają następujące reguły postępowania:

  • W polu klucza obcego w tabeli sprzężonej nie można wprowadzać wartości nie istniejących wpolu klucza podstawowego tabeli podstawowej. Można jednak w polu klucza obcego wprowadzić wartość Null oznaczającą, że rekord nie jest powiązany.
  • W tabeli podstawowej nie można usunąć rekordu, jeśli istnieją powiązane z nim rekordy w tabeli sprzężonej.
  • W tabeli podstawowej nie można zmienić wartości klucza podstawowego, jeżeli istnieją powiązane z nim rekordy.

Aby powyższe reguły obowiązywały, należy podczas tworzenia relacjizaznaczyć pole wyboruwymuszaj więzy integralności. Jeżeli podjęta zostanie próba złamania jednej z powyższych reguł, pojawi się komunikat ostrzegawczy, a próba zostanie udaremniona.

Wspomniane powyżej ograniczenia dotyczące usuwania i modyfikacji rekordów powiązanych można znieść nie naruszając więzów integralności, ustawiając pola wyboru Kaskadowo aktualizuj powiązane pola i Kaskadowo usuwaj powiązane rekordy. Przy zaznaczonym polu wyboru Kaskadowo aktualizuj powiązane pola zmiana wartości klucza podstawowego, automatycznie aktualizuje tę wartość we wszystkich rekordach powiązanych. Przy zaznaczonym polu wyboru Kaskadowo usuwaj powiązane rekordy, usunięcie rekordu z tabeli podstawowej automatycznie usuwa wszystkie rekordy powiązane w tabeli powiązanej.

Przykład:

Tabela PAŃSTWA z bazy z poprzedniego ćwiczenia została podzielona na dwie tabele:

kontynenty

IdKontynent
1Europa
2Azja
3Australia
4Ameryka Północna
5Ameryka Południowa
6Afryka
7Ameryka Środkowa

państwa

IDPaństwoStolicaPowierzchniaLudnośćJęzyk urzędowyKontynent
1AFGANISTANKabul652,120,9paszto, dari2
2ALBANIATirana28,73,4albański1
3ALGIERIAAlgier2381,729,1arabski6
4ANDORAAndora0,4680,971kataloński1
5ANGOLALuanda1246,711,6portugalski6
6ANTIGUA I BARBUDASaint John's0,4420,066angielski7
7ARABIA SAUDYJSKAAr-Rijad2149,719,5arabski2
8ARGENTYNABuenos Aires2766,935,7hiszpański5
9ARMENIAErywań29,83,6ormiański2
10AUSTRALIACanberra7682,318,5angielski3
11AUSTRIAWiedeń83,98,1niemiecki1
12AZERBEJDŻANBaku86,67,6azerbejdżański2
13BAHAMYNassau13,90,29angielski7
14BAHRAJNAl-Manama0,67790,62arabski2
15BANGLADESZDakka144122bengalski2
16BARBADOSBridgetown0,4310,265angielski7

Dane z tabel PANSTWA i KONTYNENTY zostaną połączone poprzez pole id z tabeli KONTYNENTY z polem kontynent z tabeli PANSTWA relacją jeden do wielu.

Po zawiązaniu relacji powinniśmy otrzymać następujący efekt:

Zapraszamy
Zegar
Logowanie
Nazwa użytkownika

Hasło



Nie masz jeszcze konta?
Zarejestruj się

Nie możesz się zalogować?
Poproś o nowe hasło
Aktualnie online
Gości online: 4

Użytkowników online: 0

Łącznie użytkowników: 95
Najnowszy użytkownik: Adrian