BAZY DANYCH ZAAWANSOWANE MECHANIZMY Microsoft Access Adrian Horzyk Akademia Górniczo-Hutnicza Wydział Elektrotechniki, Automatyki, Informatyki i Inżynierii Biomedycznej Katedra Automatyki i Inżynierii Biomedycznej Laboratorium Biocybernetyki 30-059 Kraków, al. Mickiewicza 30, paw. C3/205 horzyk@agh.edu.pl, Google: Adrian Horzyk Adrian Horzyk
TWORZENIE RELACJI WIELE-DO-WIELU W Accessie mamy dwa mechanizmy tworzenia takich relacji: Poprzez wybranie opcji „Zezwalaj na wiele wartości” Wykorzystując dodatkową tabelę łącznikową. Pierwszy sposób jest oczywiście niezgodny z 1. postacią normalną bazy danych, więc nie warto z niego korzystać! W drugim podejściu tworzymy najpierw tabele nadrzędne.
TWORZENIE RELACJI WIELE-DO-WIELU
SCHEMAT RELACJI W BAZIE NORTHWIND
ZAPROJEKTUJ BAZĘ DANYCH Od czego rozpocząć? Jakie kroki wykonać? Na co zwracać uwagę? Na czym skończyć? Jak normalizować? Projekt każdej dobrze znormalizowanej bazy danych to projekt autorski wymagający przemyślenia sposobu reprezentacji obiektów oraz relacji pomiędzy nimi. Bazę warto tak projektować, aby ją od razu doprowadzić do 3 postaci normalnej (lub postaci Boyce’a-Codda), tzn.: Wszystkie wartości pól muszą być atomowe. Wszystkie pola muszą być zależne od całego klucza głównego. Pomiędzy kolumnami tabeli nie mogą występować przechodnie zależności funkcyjne, tzn. wartości wszystkich kolumn muszą zależeć wyłącznie od wartości klucza głównego tabeli. Dane powinny być zapisane nie tam, gdzie chcielibyśmy, żeby były wyświetlane, lecz przy obiekcie, którego bezpośrednio dotyczą, a więc w kolumnach odpowiednich tabel definiujących te obiekty!
WYMUSZANIE WIĘZÓW INTEGRALNOŚCI Mechanizm wymuszania więzów integralności bazy dokonuje automatycznego sprawdzania, czy w kolumnach klucza podstawowego i obcego połączonych tabel przechowywane są poprawne dane, tzn. czy wartości kluczy obcych odpowiadają wartościom powiązanych kluczy podstawowych.
WYMUSZANIE WIĘZÓW INTEGRALNOŚCI Wymuszanie więzów integralności zapewnia, iż np.: Nie można przypisać oceny, jeśli nie ma określonego nauczyciela, który ją wystawił, bądź ucznia, który ją otrzymał. Zaznaczenie pola Kaskadowo aktualizuj pola pokrewne spowoduje, iż zmiana wartości klucza podstawowego tabeli podrzędnej zostanie automatycznie uwzględniona w tabeli nadrzędnej. Zaznaczenie pola Kaskadowo usuń rekordy pokrewne powoduje automatyczne usunięcie pól pokrewnych, tzn. usuwając ocenę w tabeli UczeńNauczyciel spowoduje również usunięcie rekordu ucznia i nauczyciela oraz wszystkich innych powiązanych z nimi pól, co może wyrządzić ogromne szkody w bazie danych! Należy więc z takich opcji korzystać rozsądnie. Np. usunięcie ucznia powinno spowodować kaskadowe usunięcie wszystkich jego ocen, ale nie nauczycieli.
MODYFIKOWNIE POWIĄZANYCH TABEL Przed usunięciem powiązanych tabel lub zmodyfikowaniem odnośników kolumn musimy najpierw usunąć łączące je relacje! Modyfikowanie kolumn, które są częścią relacji wymaga wcześniejszego usunięcia tej relacji. Jeśli tego nie zrobimy, Access zwróci nam błąd i uniemożliwi wykonanie takiej operacji!
OBLICZENIA GRUPOWE I PODSUMOWANIA Sumowanie, średnie, minima, maksima, ilości … w Kreatorze prostych kwerend Istnieje możliwość sumowania, obliczania średniej, minimum, maksimum, ilości dla wybranych grup.
TYPY KWEREND Kwerendy: Wybierające Tworzące Dołączające Aktualizujące Krzyżowe Usuwające Składające Przekazujące Definiujące
KWERENDY KRZYŻOWE I TABELE PRZESTAWNE Kwerenda krzyżowa umożliwia przedstawienie podsumowań pogrupowanych według dwóch atrybutów, tworząc tzw. tabele przestawne.
KWERENDY KRZYŻOWE I TABELE PRZESTAWNE Kwerenda krzyżowa umożliwia przedstawienie podsumowań pogrupowanych według dwóch atrybutów, tworząc tzw. tabele przestawne.
KWERENDY KRZYŻOWE I TABELE PRZESTAWNE W projektancie kwerend możemy tworzyć tabele przestawne wykorzystujące kwerendy krzyżowe wybierające dane z różnych powiązanych ze sobą tabel.
KWERENDY KRZYŻOWE a WYBIERAJĄCE Porównanie wyniku działania kwerend krzyżowych względem wybierających prezentujących te same dane w inny sposób pogrupowane i policzone.
KWERENDY TWORZĄCE Kwerendy tworzące tworzą nowe tabele danych na podstawie kwerend.
KWERENDY USUWAJĄCE Tworzenie kwerendy usuwającej: określenie tabeli (skąd) i wg jakiego kryterium:
KWERENDY AKTUALIZUJĄCE Kwerendy aktualizujące bezpowrotnie modyfikują dane!
KWERENDY DOŁĄCZAJĄCE Kwerendy dołączające umożliwiają dodawanie nowych rekordów do istniejącej tabeli. Można więc np. z tabel archiwalnych w taki sposób przesunąć stare dokumenty, faktury, wyciągi, klientów itp. do tabeli aktualnych dokumentów, faktur, wyciągów czy klientów. W tym celu definiujemy odpowiednio kryteria definiujące zakres wyszukiwania i dołączania. Jeśli do dodania jest niewiele rekordów, czasami bardziej skuteczną metodą okazuje się być prosta ręczna metoda Wytnij/Skopiuj i Wklej w poziomu edycji.
DZIELENIE BAZY DANYCH Bazę danych można podzielić na część serwerową (gdzie przechowywane są tabele danych) oraz część kliencką (gdzie przechowywane są formularze, kwerendy i raporty). Z częścią serwerową może łączyć się wiele części klienckich bazy. Przed podziałem należy zrobić kopię zapasową niepodzielonej bazy! Taki podział umożliwia przekazanie różnym klientom (np. sekretarce, księgowej, magazynierowi, działowi sprzedaży, administratorowi, dyrektorowi różnych kwerend, formularzy i raportów w zależności od potrzeb dostępu do danych oraz uprawnień do ich wpisywania, zmiany, usuwania czy też przeglądania:
TWORZENIE PÓL ODNOŚNIKÓW W TABELACH Można na etapie dodawania kolumn tworzyć relacje opisane poprzez inne pole a nie przez klucz tej tabeli, który może mało intuicyjnie kojarzyć się z tą relacją.
TWORZENIE PÓL ODNOŚNIKÓW W TABELACH
PROJEKT BAZY DANYCH OBEJMUME Określ dane, które będą przechowywane w bazie danych, rozpoczynając od wypisania listy obiektów. Określ atrybuty obiektów, które powinny definiować te obiekty. Podziel dane pomiędzy tabele pamiętając o warunkach normalizacji. Określ atrybuty atomowe i określ ich typ i właściwości. Utwórz tablice słownikowe, przechowujące możliwe wartości dla poszczególnych atrybutów, tj. miasta, kraje. Utwórz tabele podrzędne nie posiadające odwołań do innych tabel. Utwórz tabele nadrzędne posiadające klucze obce innych tabel. Określ klucze podstawowe dla poszczególnych tabel. Połącz tabele relacjami tworząc odnośniki: jeden-do-jeden lub jeden-do-wielu. Stwórz formularze do wprowadzania danych. Zaprojektuj przydatne kwerendy do analizy danych. Przygotuj raporty na podstawie kwerend. Jeśli z tabeli ma korzystać wiele użytkowników, podziel bazę na część kliencką i serwerową, określając w wersji klienckiej ścieżkę do części serwerowej, którą dzięki temu możesz umieścić na serwerze.
PROJEKT ZALICZENIOWY BAZY DANYCH Samodzielnie zaprojektuj i stwórz bazę danych wraz z formularzami, kwerendami i raportami na jeden z poniższych tematów: Szkoła (Uczniowie, Nauczyciele, Klasy, Oceny, Przedmioty, …) Pożyczkobiorcy banku (Pożyczkobiorcy, Pracownicy, Oferty, Grupy ryzyka, Żyranci, Rodzaje pożyczkobiorców, Zabezpieczenia, …) Płytoteka (Płyty, Utwory, Wykonawcy, Punkty, Pożyczający, Daty, Terminy, …) Firma (Klienci, Dostawcy, Pracownicy, Towary, Stanowiska, Samochody, Magazyny, …) Inny wg własnego pomysłu uzgodniony z prowadzącym. Każda baza zaliczeniowa powinna mieć przynajmniej kilkanaście obiektów, być znormalizowana do 3. postaci normalnej, umożliwiać edycję przy pomocy formularzy oraz prezentację ważnych danych w postaci raportów.
BAZY DANYCH