Ćwiczenia
> Budowa bazy danych w MS SQL Server 2000 > Tworzenie związków między tabelami |
![]() ![]() |
||||||||||
3.8 Tworzenie związków między tabelami![]() Mając utworzone tabele wraz z kluczami głównymi można przystąpić do tworzenia związków (związek - ang. relationship). Na ogół jednak wyraźne rozgraniczenie procesu tworzenia tabel od procesu tworzenia związków występuje tylko, gdy tworzymy tabele i związki przy pomocy programu Enterprise Manager. Jeśli natomiast tworzymy tabele z poziomu kodu T-SQL (np. przy pomocy prgogramu Query Analyzer), to związki powstają na ogół już w procesie tworzenia tabel (aczkolwiek można najpierw utworzyć tabele, a dopiero potem deklarować związki). Krok 1 - Jak utworzyć związek za pomocą skryptu T-SQLZwiązki z poziomu kodu T-SQL tworzymy niejawnie przy określaniu kluczy obcych (patrz lekcja poprzednia). Poniżej prezentujemy kod, który wewnątrz definicji tabeli Ksiazki tworzy związek pomiędzy tabela Ksiazki a tabela Wydawnictwa (patrz skrypt demo_3_4_1.sql).
Krok 2 - Jak utworzyć związek przy pomocy diagramu w programie Enterprise Manager1. Uruchom program Enterprise Manager.2. Rozwijaj drzewo po lewej stronie okna programu i wejdź do folderu Databases. 3. W folderze bazy Biblioteka wybierz pozycję Diagrams. 4. W prawej części okna programu kliknij dwukrotnie na utworzonym w lekcji 3.4 Tworzenie tabel diagramie bazy danych. 5. W otwartym diagramie kliknij raz na linii łączącej tabele Ksiazki i Wydawnictwa. 6. Mając zaznaczoną linię reprezentującą związek między dwiema tabelami kliknij w górnej części okna diagramu ikonę właściwości ![]() 7. Zamknij okno Properties. 8. Mając ciągle zaznaczony związek między tabelami Ksiazki i Wydawnictwa naciśnij klawisz Delete. 9. Na pytanie serwera, czy na pewno usunąć związek, odpowiedz Tak. Związek zostanie usunięty (zniknie linia łącząca tebele).
10. Przeciągnij i upuść szary prostokąt (z rysunkiem klucza) obok kolumny ID_wydawnictwa w tabeli Wydawnictwa na szary prostokąt przy kolumnie ID_wydawnictwa w tabeli Ksiazki. Na rysunku 3.8.1 ilustrujemy tę operację przy pomocy strzałki. ![]() Rys. 3.8.1 Enterprise Manager - tworzenie związku metodą "przeciągnij i upuść" na diagramie 11. W oknie Create Relationship kliknij Zamknij upewniwszy się, że wybrane zostały odpowiednie kolumny z tabel Ksiazki (kolumna ID_wydawnictwa jako klucz obcy) i Wydawnictwa (kolumna ID_wydawnictwa jako klucz główny). Właściwą sytuację obrazuje rysunek 3.8.2. ![]() Rys. 3.8.2 Enterprise Manager - okno tworzenia nowego związku Zauważ, że oprócz nazwy i kluczy w związku możesz także określić: - czy istniejące w tabelach dane mają zostać sprawdzone pod względem spójności przy utworzeniu związku (pole Check existing data on creation), - czy związek ma wymuszać spójność danych dla replikacji (pole Enforce relationship for replication), - czy związek ma wymuszać spójność danych przy wstawianiu i modyfikowaniu danych (pole Enforce relatioship on INSERTs and UPDATEs), - dodatkowo możesz wymuszać: kaskadowe modyfikowanie danych w powiązanych kolumnach (pole Cascade Update Related Fields) oraz kaskadowe usuwanie danych w powiązanych kolumnach (pole Cascade Delete Related Fields).
12. Zamknij okno diagramu bazy danych po drodze zapisując zmodyfikowane tabele (na pytanie serwera, czy chcesz zapisać zmiany w tabelach, odpowiedz Tak). Krok 3 - Jak utworzyć związek przy użyciu okna właściwości tabeli w programie Enterprise Manager1. Mając uruchomiony program Enterprise Manager otwórz widok projektu tabeli Ksiazki (okno Design Table).2. Kliknij w górnej części okna na ikonie zarządzania związkami ![]() 3. Pojawi się okno Properties z wybraną kartą Relationships. 4. Z rozwijanej listy Selected relationship wybierz FK_Ksiazki_Wydawnictwa. 5. Kliknij na przycisku Delete w oknie Properties. 6. Na pytanie serwera, czy usunąć związek, odpowiedz Tak. Tym sposobem usunąłeś związek między tabelami Ksiazki i Wydawnictwa. 7. Kliknij w oknie Properties na przycisku New. 8. W środkowej części okna Properties jako Primary key table (tabela, z której pobierzesz klucz główny) ustaw Wydawnictwa, zaś jako Foreign key table (tabela, w której zdeklarujesz klucz obcy) ustaw Ksiazki. 9. Pod wyborem tabel masz do dyspozycji wybór kolumn, które będą określały związek. Ustaw ID_wydawnictwa zarówno jako klucz główny (pod ustawioną tabelą Wydawnictwo), jak i klucz obcy (pod ustawioną tabelą Ksiazki). 10. Jako nazwę związku (Relationship name) wpisz FK_Ksiazki_Wydawnictwa. 11. Porównaj swoje ustawienia z rysunkiem 3.8.3 i kliknij Zamknij. 12. Na pytanie serwera, czy zapisać zmiany w tabelach, odpowiedz Tak. ![]() Rys. 3.8.3 Enterprise Manager - tworzenie związku w widoku projektu tabeli
Przejdź dalej ![]() |
|||||||||||
![]() Ćwiczenia > Budowa bazy danych w MS SQL Server 2000 > Tworzenie związków między tabelami |