1 Na poprzednich zajęciach nauczyliśmy się tworzyć bazy danych i
Transkrypt
1 Na poprzednich zajęciach nauczyliśmy się tworzyć bazy danych i
Instrukcja do przedmiotu Bazy danych – laboratorium (zajęcia 3) 1 Na poprzednich zajęciach nauczyliśmy się tworzyć bazy danych i proste tabele przechowujące dane. Dzisiaj pójdziemy krok dalej - zajmiemy się czymś, co stanowi istotę relacyjnych baz danych tzn. tworzeniem związków między tabelami. Polecenie 3.1: Uruchom SQL Server Management Studio, zaloguj się do serwera. Polecenie 3.2: W Eksploratorze obiektów kliknij prawym przyciskiem myszy na gałąź Databases i wybierz New Database... Polecenie 3.3: Utwórz nową bazę danych o nazwie piwko_z2XsY (przypomnij sobie, co wstawić w miejsce X i Y!). Nie zmieniaj niczego więcej, po wpisaniu nazwy kliknij przycisk OK. Polecenie 3.4: Od tej wszystkie obiekty będziemy tworzyć tylko w nowoutworzonej bazie. Zwiń wszystkie niepotrzebne gałęzie w Eksploratorze obiektów, zostawiając rozwiniętą tylko bazę piwko_z2XsY. Aby zobaczyć, jak ważne są związki między tabelami, utworzymy na początek tabelę przechowującą informacje o produkcie, z którym właściwie każdy student, bez względu na tryb studiowania, wiek czy płeć, miał do czynienia – a mianowicie o piwie. Będą w niej przechowywane następujące dane: nazwa piwa, zawartość alkoholu i ekstraktu, nazwa oraz adres producenta. Polecenie 3.5: W bazie danych piwko_z2XsY kliknij prawym przyciskiem myszy na folder Tables i wybierz New Table. Utwórz tabelę o nazwie Browary. Tabela powinna posiadać następujące kolumny (zobacz rysunek poniżej): id nazwa_piwa zaw_alkoholu zaw_ekstraktu nazwa_producenta ulica miasto kod_pocztowy Polecenie 3.6: Przypomnij sobie z poprzednich zajęć definicję klucza głównego. Następnie nałóż klucz główny na kolumnę id (przypominam: prawy przycisk myszy i Set Primary Key - w odpowiednim miejscu powinien pojawić się kluczyk ). Polecenie 3.7: Jeśli jeszcze tego nie zrobiłeś/aś w okienku Properties po prawej stronie (jeśli go nie ma, naciśnij F4) wpisz nazwę tabeli. Polecenie 3.8: Zapisz utworzoną tabelę i zamknij okno z jej projektem. Instrukcja do przedmiotu Bazy danych – laboratorium (zajęcia 3) 2 Polecenie 3.9: W Eksploratorze obiektów kliknij prawym przyciskiem myszy na tabelę Browary i wybierz Open Table. Polecenie 3.10: Wprowadź następujące dane do tabeli: Widoki Widoki (z ang. Views, inna nazwa to perspektywy) to zapytania typu SELECT zapisane w bazie danych. Z widoków można korzystać w podobny sposób, w jaki korzystamy z tabel (np. wyświetlanie czy wprowadzanie dane), należy jednak pamiętać, że same widoki nie przechowują danych. Można o nich myśleć jako o filtrach, które wyświetlają dane z odpowiedniej tabeli (lub kilku tabel) w określony (w definicji takiego widoku) sposób. Utworzymy teraz pierwszy widok, który z tabeli Browary wyświetli tylko nazwy piw i ich producentów. Polecenie 3.11: W bazie piwko_z2XsY kliknij prawym przyciskiem myszy na folder Views i wybierz New View... Polecenie 3.12: W okienku, które wyskoczy, zaznacz nazwę tabeli Browary, następnie kliknij przycisk Add. Zamknij okienko przyciskiem Close. Instrukcja do przedmiotu Bazy danych – laboratorium (zajęcia 3) 3 Znajdujemy się teraz w oknie projektowania widoku. W jego górnej części znajduje się okno z kolumnami z tabeli Browary. Zaznaczając kratkę przy nazwie odpowiedniej kolumny dodajemy tę kolumnę do widoku. W środkowej części znajduje się tabela, w której możemy dokonywać zmiany projektowanego właśnie widoku. W dolnej części okna pojawia się kod SQL-a, który będzie wykonany w momencie, gdy zatwierdzimy tworzenie widoku. Polecenie 3.13: W okienku u góry zaznacz kolumny nazwa_piwa i nazwa_producenta. Polecenie 3.14: Zapisz widok pod nazwą vw_piwa_producenci1 i zamknij okno z projektem widoku. Polecenie 3.15: W Eksploratorze obiektów rozwiń folder Views a następnie kliknij prawym przyciskiem myszy na utworzony właśnie widok i wybierz Open View. Jeśli wszystko wykonałeś/aś prawidłowo, to rezultat powinien być podobny do tego z rysunku poniżej. Instrukcja do przedmiotu Bazy danych – laboratorium (zajęcia 3) 4 Związki Wracamy do niechcianej redundancji. Istotą relacyjnych baz danych jest rozbicie danych na kilka tabel, tak aby odpowiednie rekordy można było później znów ze sobą połączyć. Zobaczymy to na przykładzie z tymi naszymi piwami. Polecenie 3.16: W bazie piwko_z2XsY utwórz nową tabelę o nazwie Piwa. Kolumny w tej tabeli ustal zgodnie z rysunkiem poniżej. Nie zapomnij o nałożeniu klucza głównego na kolumnę id. Polecenie 3.17: W bazie piwko_z2XsY utwórz nową tabelę o nazwie Producenci. Kolumny w tej tabeli ustal zgodnie z rysunkiem poniżej. Podobnie jak poprzednio, nie zapomnij o nałożeniu klucza głównego. Ustalimy teraz sposób łączenia tych tabel. W tym celu w tabeli Piwa utworzymy tzw. klucz obcy, wskazujący z którym producentem dane piwo powinno być powiązane. Klucz obcy to taka kolumna w tabeli, której wartości wskazują na rekordy (a dokładniej wartości klucza głównego) z innej tabeli. Polecenie 3.18: W Eksploratorze obiektów w bazie piwko_z2XsY kliknij w folder Database Diagrams. Pojawi się okno (rys. niżej), w którym należy kliknąć przycisk Yes. Następnie kliknij jeszcze raz na folder Database Diagrams, tym razem prawym klawiszem myszy i wybierz New Database Diagram. Polecenie 3.19: W oknie, które się pojawi, zaznacz nazwy tabel Piwa i Producenci, każdorazowo zatwierdzając wybór przyciskiem Add. Następnie zamknij to okno klikając w przycisk Close. Instrukcja do przedmiotu Bazy danych – laboratorium (zajęcia 3) 5 Polecenie 3.20: Powinny być teraz widoczne dwa okienka z tabelami Piwa i Producenci. Kliknij w kwadracik z kluczykiem przy kolumnie id w tabeli Producenci i przeciągnij do kolumny id_producenta w tabeli Piwa. Wyskoczą dwa okienka, w obu należy kliknąć przycisk OK. Jeśli wszystko poszło zgodnie z planem, diagram powinien przypominać ten z rysunku poniżej. Gratuluję, właśnie utworzyliśmy pierwszy związek (z ang. relationship) w bazie danych. Od tej pory w kolumnie id_producenta będzie można wstawić identyfikatory tylko tych producentów, które znajdują się w tabeli Producenci. Polecenie 3.21: Zapisz diagram pod domyślną nazwą a następnie zamknij okno z jego projektem (kliknij OK w okienku, które po drodze wyskoczy). Polecenie 3.22: Otwórz tabelę Producenci i wprowadź do niej dane wg poniższego rysunku. Po zakończeniu zamknij okno z tabelą. Polecenie 3.23: Otwórz tabelę Piwa i wprowadź do niej dane wg poniższego rysunku. Gdy skończysz, również zamknij okno z tabelą. Instrukcja do przedmiotu Bazy danych – laboratorium (zajęcia 3) 6 Zwróć uwagę, że te same dane, które zostały wpisane do tabeli Browary, zostały rozdzielone między dwie tabele: Piwa i Producenci. Dzięki temu nazwę i adres każdego producenta wystarczyło wpisać tylko raz. Zaprojektujemy teraz widok, który połączy dane z tych tabel w odpowiedni sposób, co sprawi, że będziemy mogli wyświetlić nazwy piw i nazwy ich producentów zupełnie w ten sam sposób, jak gdyby znajdowały się one w jednej tabeli. Polecenie 3.24: Kliknij prawym przyciskiem myszy na folder Views w bazie piwko_z2XsY i wybierz New View. Polecenie 3.25: W okienku, które się pojawi, zaznacz nazwy tabel Piwa i Producenci, każdorazowo zatwierdzając wybór przyciskiem Add. Następnie zamknij to okno klikając w przycisk Close. Polecenie 3.26: Zaznacz "ptaszkiem" kwadraty przy kolumnie nazwa_piwa w tabeli Piwa i nazwa_producenta w tabeli Producenci (zob. rys. poniżej). Polecenie 3.27: Przyjrzyj się kodowi SQL-a w dolnej części okna projektu. Zastanów się, który jego fragment odpowiada za połączenie rekordów z tabel Piwa i Producenci. Polecenie 3.28: Zapisz widok pod nazwą vw_piwa_producenci2 i zamknij okno jego projektu. Polecenie 3.29: Otwórz widok vw_piwa_producenci2 i sprawdź, czy wyświetlają się te same informacje, co na rysunku poniżej. Instrukcja do przedmiotu Bazy danych – laboratorium (zajęcia 3) 7 Gratuluję! Właśnie udało ci się połączyć dwie tabele. Posiadasz już podstawowe umiejętności do pracy z bazami danych. Cała reszta to już tylko kwestia praktyki i doświadczenia... ;) Na zakończenie naszych bojów z bazami danych utworzymy kopię zapasową bazy piwko_z2XsY. Polecenie 3.30: W Eksploratorze obiektów kliknij prawym przyciskiem myszy na bazie piwko_z2XsY i wybierz Tasks→Back Up. Kliknij OK w oknie, które się pojawi. Po chwili powinna wyskoczyć informacja o udanej operacji wykonywania kopii zapasowej. Pytania kontrolne: 1. Co to są widoki? 2. Co to jest redundancja danych? Czy jej występowanie jest korzystne? 3. Co to jest klucz obcy? Po tych zajęciach powinieneś/powinnaś umieć: • tworzyć bazy proste widoki w SQL Server Management Studio, • tworzyć związki między tabelami, • wykonywać kopię zapasową bazy danych.