1 WIADOMOŚCI OGÓLNE O BAZACH DANYCH BAZA DANYCH (data base) Uporządkowany zbiór danych o określonej strukturze, przechowywany na nośniku informacji w komputerze. System bazy danych można zdefiniować jako bazę danych wraz z oprogramowaniem umożliwiającym operowanie tymi danymi. RELACYJNA BAZA DANYCH Baza danych, która umożliwia przechowywanie i wyszukiwanie informacji zgodnie z relacjami zdefiniowanymi przez użytkownika. Najpopularniejsze bazy danych: Oracle (Oracle Corporation), Progress (Progress Software), Access (Microsoft), Visual FoxPro (Microsoft), Visual dBase (Borland International – Inprise), Informix (Informix Software Inc.), Adabas (software AG). ACCESS Jest jednym z najpopularniejszych narzędzi do tworzenia relacyjnych baz danych w środowisku Windows. Jest typowym programem do tworzenia bazy danych, przez zapewnienie użytkownikowi niezbędnych narzędzi i metod. Dodatkowo posiada cały szereg kreatorów: tabel, formularzy, kwerend i raportów. Ponadto Access umożliwia tworzenie rozbudowanego i zautomatyzowanego interfejsu graficznego za pomocą języka programowania Visual Basic for Aplication. OBIEKTY BAZY DANYCH: TABELA (tabele) jest to kolekcja powiązanych ze sobą informacji, przedstawiona zwykle jako układ poziomych wierszy (rekordów) i pionowych kolumn (pól), ZAPYTANIE (kwerenda) jest narzędziem służącym do wyszukiwania i wykonywania analizy oraz modyfikacji danych w bazie, FORMULARZ jest obiektem systemu baz danych, który umożliwia przeglądanie, wprowadzanie oraz modyfikowanie danych w bazie, RAPORT jest obiektem systemu bazy danych, umożliwiający pobieranie danych z bazy, najczęściej w celu wygenerowania go na ekranie monitora lub wydrukowania na drukarce, MAKRA są procedurami, które można tworzyć aby zautomatyzować czynności, które potencjalnie wymagają dłuższej serii kroków, MODUŁY są zbiorem deklaracji procedur języka Visual Basic for Applications. TABELA (tabele) Kolekcja powiązanych ze sobą informacji, przedstawiona zwykle jako układ poziomych wierszy (rekordów) i pionowych kolumn (pól) REKORD (record) Zestaw informacji o pojedynczym elemencie w tabeli bazy danych. Rekordy składają się z pojedynczych pól, w każdym polu zawarta może być informacja określonego typu. (Wszystkie 1 2 rekordy wchodzące w skład danej tabeli posiadają taką samą liczbę pól. Liczba pól rekordu oraz typ przechowywanych w polu danych są określane na etapie projektowania tabeli bazy danych ) ODNOŚNIK jest to specjalnie skonstruowany, niezmienny adres odnoszący się do konkretnego zasobu. TYPY DANYCH: TYP ZNAKOWY - nazywany także w niektórych systemach typem tekstowym. Umożliwia przechowywanie danych tekstowych, np. nazw, nazwisk, imion lub numerów telefonów. TYP NUMERYCZNY - nazywany w niektórych systemach typem liczbowym. Umożliwia przechowywanie danych liczbowych, na których będą wykonywane działania matematyczne, np. ilość sztuk, procent sprzedaży. TYP DATY - pozwala na przechowywanie danych związanych z datami, np. data urodzin, data wpłaty, itp. Format danych zależy w tym przypadku od ustawień obowiązujących w systemie operacyjnym komputera. TYP LOGICZNY - umożliwia przechowywanie danych o wartości Prawda (1) lub Fałsz (0), np. posiada, nie posiada. TYP MEMO - umożliwia przechowywanie informacji typu tekstowego do 64000 znaków, np. dodatkowe informacje o pracowniku. FILTR jest to zestaw ograniczeń nakładanych na rekordy w bazie danych, który pozwala je selekcjonować. Filtry nie zmieniają danych, a jedynie umożliwiają przeglądanie informacji, których potrzebujemy. SORTOWANIE jest to proces polegający na odpowiednim ułożeniu rekordów w pamięci operacyjnej komputera lub na dysku, według zadanej kolejności zadanego sposobu, np. według kolumny (Nazwisko, rosnąco). Klucze w relacyjnych bazach danych - są to pola lub zestaw pól jednoznacznie identyfikujący każdy rekord przeznaczony do szybkiego wyszukiwania i łączenia informacji przechowywanych w tabelach. Pole kluczowe nie może przechowywać powtarzających się danych. Korzystając z kluczy podstawowych i złożonych unikamy możliwości powtarzania się rekordu w tabeli. Indeksowanie – polega na tworzeniu informacji o tym w jakiej kolejności powinny być podawane rekordy, aby spełniały kryterium uporządkowania. Indeksowanie może odbywać się według jednego lub kilku pól w bazie danych. Nazwisko I imię Golisz Marian Krynik Piotr Małek Wiktor Golisz Marian Nowak Jan Kowal Adam Krynik Piotr Kod i miejscowość 40-710 Katowice 40-712 Katowice 40-686 Katowice 40-710 Katowice 40-680 Katowice 40-687 Katowice 40-712 Katowice Ulica i numer domu Ogrodowa 20 Mazurska 6 Żurawia 61/2 Ogrodowa 20 Filemona 2B Miodowa 4/5 Mazurska 6 Tytuł „Access 97” „Rykoszet” „Algorytmy” „Krzyk ciszy” „Windows” „Word 97” „ Excel 97” Data Wypoż. 99-09-10 99-09-10 99-09-11 99-09-12 99-09-14 99-09-14 99-09-16 Data zwrotu 99-11-10 99-11-10 99-11-11 99-11-12 99-11-14 99-11-14 99-11-16 Uwagi 1. Pewne informacje powtarzają się w bazie (Jeśli czytelnik wypożyczał kilka książek, to w każdym rekordzie dotyczącym wypożyczenia przez niego książek powtarzają się jego dane) Powtarzanie się pewnych informacji w bazie nazywamy ZJAWISKIEM REDUNDANCJI 2 3 2. Gdy wybrany czytelnik zmieni swój adres zamieszkania, należy dokonać zmian w każdym rekordzie, w którym on występuje (jest to niewykonalne przy większej liczbie rekordów dla tego klienta). Są to ANOMALIE AKTUALIZACJI BAZ DANYCH. 3. Gdy czytelnik zwraca książkę, następuje usunięcie odpowiedniego rekordu z bazy. Zwrot wszystkich wypożyczonych pozycji przez jednego czytelnika spowoduje usunięcie wszystkich rekordów z bazy. Tym samym zostaną usunięte informacje o samym czytelniku. Z kolei przy jego ponownej wizycie w bibliotece należy od nowa wpisać jego dane oraz adres. Problemy tego typu określane są jako ANOMALIE PRZY USUWANIU Relacje (relation) jest to związek (powiązanie) pomiędzy różnymi tabelami w bazie danych za pomocą połączonych pól. Uwaga Utworzenie relacji pomiędzy polami tabel w bazie danych jest możliwe tylko i wyłącznie w tedy, gdy łączone pola tych tabel zawierają ten sam typ danych. Typy relacji w bazie danych: 1 do 1 – typ relacji polegający na tym, że jednemu rekordowi jednej tabeli odpowiada jeden rekord w drugiej tabeli. 1 do n – typ relacji polegający na tym, że jednemu rekordowi pierwszej tabeli odpowiada wiele rekordów w innych tabelach, ale każdemu rekordowi z tych tabel odpowiada tylko jeden rekord w pierwszej tabeli n do 1 – typ relacji polegający na tym, że wiele rekordów z różnych tabel jest powiązanych tylko z jednym rekordem w danej tabeli n do n – typ relacji polegający na tym, że wiele rekordów jednej tabeli jest powiązanych z wieloma rekordami w innych tabelach. ZAPYTANIE (query) – nazywane także kwerendą jest narzędziem służącym do wyszukiwania i wykonywania analizy oraz modyfikacji danych w bazie. FORMULARZ – obiekt systemu bazy danych, który umożliwia przeglądanie, wprowadzanie oraz modyfikowanie danych w bazie. Przedstawiany w przyjaznej dla użytkownika formie, np. kart. RAPORT – obiekt systemu bazy danych, umożliwiający pobieranie danych z bazy, w celu wygenerowania na ekranie monitora lub wydrukowania na drukarce. Najpopularniejsze bazy danych: Oracle (Oracle Corporation) Progress (Progress Software) Access (Microsoft) Visual FoxPro (Microsoft) Visual dBase (Borland International – Inprise) Informix (Informix Software Inc.) Adabas (software AG). 3 4 1. 2. 3. 4. 5. 6. 7. ETAPY TWORZENIA BAZY DANYCH Określenie celu, któremu ma służyć baza danych Określenie tabel, które znajdą się w bazie danych Określenie pól, które znajdą się w tabelach Przypisanie polom jednoznacznych wartości Określenie relacji między tabelami Wprowadzenie danych i utworzenie innych obiektów bazy danych Zastosowanie narzędzi analizy programu Microsoft Access 1. Określenie celu, któremu ma służyć baza danych Pierwszym krokiem projektowania bazy danych programu Microsoft Access jest określenie celu, któremu ma służyć baza i sposobu jej używania. Konieczne jest określenie jakich informacji ma dostarczyć baza danych. Na tej podstawie można określić, jakie zagadnienia będą analizowane w bazie danych (tabele) i jakie informacje mają określać każde zagadnienie (pola w tabelach). 2. Określenie tabel, które znajdą się w bazie danych Określenie tabel może być najtrudniejszym etapem procesu projektowania bazy danych. Powodem tego jest fakt, że wyniki, których ma dostarczyć baza danych - raporty gotowe do wydrukowania, formularze przeznaczone do wykorzystania, pytania, na które trzeba odpowiedzieć - nie zawsze zawierają bezpośrednie wskazówki o strukturze tworzących je tabel. 3. Określenie pól, które znajdą się w tabelach Każda tabela zawiera informacje na temat jednego zagadnienia, a każde pole w tabeli zawiera jedną daną dotyczącą tego zagadnienia, któremu poświęcona jest tabela. Na przykład, tabela poświęcona klientom może zawierać pola z nazwą firmy, adresem, miastem, krajem i numerem telefonu. Zabierając się do projektowania pól w tabelach dobrze jest pamiętać o następujących wskazówkach: Należy powiązać każde pole bezpośrednio z zagadnieniem, którego dotyczy tabela. Nie należy wprowadzać danych pośrednich lub obliczonych (danych, które są wynikiem wyrażenia). Należy uwzględnić wszystkie potrzebne informacje. Informacje należy przechowywać w możliwie najmniejszych jednostkach logicznych (na przykład Imię oraz Nazwisko, a nie Dane personalne). 4. Przypisanie polom jednoznacznych wartości Aby program Microsoft Access mógł powiązać informacje przechowywane w różnych tabelach. Na przykład, aby powiązać klienta ze wszystkimi jego zamówieniami każda tabela w bazie danych musi zawierać pole lub zbiór pól, które jednoznacznie określają każdy rekord. Takie pole lub zbiór pól nazywany jest kluczem podstawowym. 5. Określenie relacji między tabelami Po podzieleniu danych na tabele i zdefiniowaniu pól kluczy podstawowych trzeba wprowadzić do programu Microsoft Access informacje na temat sposobu poprawnego łączenia powiązanych danych w logiczną całość. W tym celu definiuje się relacje między tabelami. 6. Wprowadzenie danych i utworzenie innych obiektów bazy danych 4 5 Kiedy okaże się, że struktura tabel spełnia opisane powyżej kryteria, można wprowadzić wszystkie dane do tabel i utworzyć dowolne kwerendy, formularze, raporty, makra i moduły. 7. Zastosowanie narzędzi analizy programu Microsoft Access Program Microsoft Access jest wyposażony w dwa narzędzia, które pomagają udoskonalić projekt bazy danych. Kreator analizy tabel potrafi sprawdzić projekt przeglądając jednorazowo jedną tabelę, zaproponować nową strukturę tabeli i - jeśli to ma sens - zamienić tabelę w kilka tabel połączonych relacjami. Analizator wydajności potrafi przeprowadzić analizę całej bazy danych, sformułować zalecenia i propozycje dotyczące wprowadzenia ulepszeń. Analizator wydajności może też wprowadzić te zalecenia i propozycje. BAZA DANYCH ACCESS TABELE Tabele są obiektami Accessa używanymi do przechowywania danych. Każda tabela składa się z pól, które zawierają określone informacje (takie jak nazwisko osoby lub miasto w którym mieszka), oraz rekordów. Rekord jest kompletnym zestawem informacji o określonej jednostce. Tabele można otwierać w: Widok Projekt który pozwala na dowolne zmiany w strukturze tabeli, można dodawać pola, dołączać komentarze na temat każdego pola lub zmienić typ informacji przechowywanych w każdym polu (na przykład: liczba, tekst, data, idt.). Widok Arkusz danych który wyświetla dane zawarte w tabeli. Każda kolumna w siatce danych przedstawia pole, każdy rząd przedstawia rekord. 5 6 SKRÓTY SKRÓT Tab Lub strzałka w prawo Shift + Tab lub strzałka w lewo Strzałka w dół Strzałka w górę Ctrl + Home Ctrl + End ZNACZENIE Przejdź o jedną komórkę w prawo Przejdź o jedną komórkę w lewo Przejdź o jedną komórkę w dół Przejdź o jedną komórkę w górę Przejdź do pierwszego pola pierwszego rekordu Przejdź do ostatniego pola ostatniego rekordu OKREŚLENIE NAZWY, TYPU I WŁAŚCIWOŚCI POLA Każde pole musi mieć ustalony typ. Standardowym typem jest Tekst. Tekst - stosuje się do przechowania tekstów lub kombinacji tekstowo-liczbowych (na przykład nazw ulic z numerami domów i mieszkań), jak również liczb nie wykorzystywanych w obliczeniach (na przykład numerów telefonów, kodów pocztowych, itp.). Pole o typie Tekst może przechowywać do 255 znaków. Memo - stosuje się do przechowywania długich tekstów, jak notatki czy komentarze. Pole o typie memo może przechowywać ciągi o maksymalnej długości 64000 znaków. Liczba - stosuje się do przechowywania liczb, na których będą wykonywane działania matematyczne, z wyjątkiem obliczeń finansowych. Data/Godzina - stosuje się do przechowywania daty i czasu. Walutowy - stosuje się do wartości walutowych w celu zapobieżenia zaokrągleniom podczas obliczeń. Dokładność liczby wynosi 15 cyfr dla części całkowitej i cztery cyfry dla części dziesiętnej liczby. Autonumer - stosuje się do generowania unikalnych dla każdego rekordu liczb kolejnych (od 1 wzwyż) lub losowych. Autonumer jest wpisywany do arkusza danych tabeli automatycznie przy wprowadzaniu rekordu. Tak/Nie - stosuje się do określenia prawdy lub fałszu (istnienia bądź braku określonego elementu), za pomocą tego typu można ustalić odpowiedź na pytanie czy pracownik jest ubezpieczony czy też nie. Obiekt OLE - stosuje się do przechowywania obiektów w rodzaju dokumentu programu Microsoft Word, arkusza kalkulacyjnego programu Microsoft Exel, rysunków, itp. Hiperłącze - stosuje się do przechowywania hiperłączy (na przykład odnośników do stron internetowych). Kreator odnośników - tworzy pole kombi pozwalające wybierać wartości z innej tabeli lub z wprowadzonej listy wartości. Wybranie tej opcji uruchamia kreatora definiującego powiązanie z tabelą źródłową. Opis - nie jest obowiązkowym parametrem pola, jednak pozwala na wyjaśnienie, jakiego rodzaju dane będą przechowywane w polu. 6 7 OKREŚLENIE WŁAŚCIWOŚCI POLA Rozmiar pola określa rozmiar i typ wartości (standardowo właściwość ta ustala maksymalną liczbę znaków, która można wprowadzić do pola jednak nie więcej niż 255) Typ danych – określa, jakiego rodzaju dane będą znajdować się w danym polu. Określenie Zakres liczbowy Bajt 0 do 255 Liczba całkowita -32 768 do 32 767 Liczba całkowita długa - 2 147 483 648 do 2 147 483 647 Pojedyncza precyzja -3,402823E38 do 3,402823E38 7 Podwójna precyzja -1.79769313486232 E308 do 1.79769313486232 E308 15 ID replikacji Identyfikator unikatowy globalnie N/A Miejsc dziesiętnych Nowe wartości określa czy kolejne numery maja przyrastać o 1, czy mają być generowane losowo. Format określa sposób wyświetlania wszystkich danych w polu po zakończeniu ich wprowadzania (na przykład, to czy dana ma być pisana dużymi literami alfabetu). Tytuł określa nazwę pola wyświetlania w arkuszu danych tabeli podczas ich oglądania (jeśli komórka zostanie pusta, to obowiązuje nazwa pola wprowadzona w górnej części okna projektowego). Indeksowanie ustala odpowiedź na pytanie, czy dane z pola mają być indeksowane (indeksowanie ułatwia sortowanie i wyszukiwanie danych, zaś opcja Tak Bez powtórzeń gwarantuje unikatowość identyfikatora kategorii towaru). Maska wprowadzania ustala wzorzec wprowadzania wszystkich danych w polu, tzn. sposób, w jaki są one wyświetlane podczas wprowadzania. Maskę wprowadzania można ustalić tyko dla typu Tekst lub Data/Godz. Wartość domyślna ustala wartość wpisywaną automatycznie w nowym rekordzie. Reguła poprawności określa warunek, który musi być spełniony, aby dana wprowadzana do pola została zaakceptowana. Komunikat o błędzie to tekst wyświetlany w przypadku próby wprowadzenia w polu danej, która nie spełnia reguły poprawności. Wymagane ustala odpowiedź na pytanie, czy pole musi być obowiązkowo wypełnione czy też nie. Zerowa długość dozwolona ustala odpowiedź na pytanie, czy dopuścić umieszczenie w polu ciągu znaków o zerowej długości (ciągiem znaków o zerowej długości jest ciąg złożony z dwóch cudzysłowów ’’’’) 7 8 Symbol 0 9 # L ? A a & C < > ! \ WYKORZYSTANIE MASEK WPROWADZANIA Interpretacja Cyfra (od 0 do 9, pozycja wymagana; znaki plus [+] i minus [-] nie są dozwolone Cyfra lub spacja (pozycja nie wymagana; znaki plus [+] i minus [-] nie są dozwolone) Cyfra lub spacja (pozycja nie wymagana; puste miejsca konwertowane na spacje, znaki plus i minus dozwolone) Litera (od A do Z, pozycja wymagana) Litera (od A do Z, pozycja opcjonalna) Litera lub cyfra (pozycja wymagana) Litera lub cyfra (pozycja opcjonalna) Dowolny znak lub spacja (pozycja wymagana) Dowolny znak lub spacja (pozycja opcjonalna) Powoduje, że wszystkie następujące po nim znaki są konwertowane na małe Powoduje, że wszystkie następujące po nim znaki są konwertowane na duże Powoduje, że maska wprowadzania wyświetla znaki od prawej do lewej zamiast od lewej do prawej, przy czym znaki wpisywane w masce wprowadzania zawsze wypełniają ją od lewej do prawej; znak wykrzyknika można użyć w dowolnym miejscu zapisu maski wprowadzania. Powoduje, że wszystkie następujące po nim znaki są wyświetlane jako znaki literałowe; używany do wyświetlania znaków przedstawionych w tej tabeli jako znaków literałowych. ( przykładowo: \A jest wyświetlany jako A). Password Dowolny znak wpisany w tym polu jest przechowywany jako znak ale wyświetlany jest jako gwiazdka (*) PRZYKŁADOWE MASKI WPROWADZANIA Definicja maski (0 – 00) 000 – 00 – 00 (999) 999 – 9999! >L<?????????????? (000) AAA – AAAAA #999 >L????L?000L0 KOD 0 - &&&&&&&&& - 0 Przykładowe wartości (602) 123 – 02 – 48 (501) 723 – 0248 ( ) 555 - 0248 Kowalski (555) 765 – ASTRA -23 2510 APTEKAX339M3 DOM R 452B7 KOD 1 – 55615 – 507 – 7 Przykład (999) 000-0000!;0;” ”. I sekcja zawiera definicję samej maski wprowadzania II sekcja oznacza czy mają być przechowywane znaki literałowe (takie jak spacje, kropki, kreski ,nawiasy). 8 9 0 – zaleca przechowanie znaków wraz z wprowadzonymi wartościami, 1 – zaleca przechowywanie wprowadzanych znaków. III sekcja definiuje znak wyświetlany zamiast pustego miejsca w masce wprowadzania. Jeśli trzecia sekcja pozostanie pusta, domyślnie zostanie użyty znak kreski poziomej( _ ). RELACJE Relacje łączą tabele za pomocą pól klucza podstawowego. Pola te w tabelach w oknie relacji są zaznaczone czcionką pogrubioną. Najczęściej pola powiązane relacją mają w obu tabelach taką samą nazwę. Zastosowanie tej zasady znacznie ułatwiają analizę relacji, jednak nie przeszkadza to, jeśli połączone pola mają różne nazwy. Jednakże, aby relacja funkcjonowała poprawnie połączone muszą pola muszą mieć ten sam typ. Wyjątek stanowi przypadek pola typu Autonumer, które musi być powiązane z polem typu Liczba całkowita długa. Relacja jeden do jednego W relacji jeden do jednego każdy rekord w pierwszej tabeli może mieć tylko jeden odpowiadający mu rekord w drugiej tabeli. Jednocześnie każdemu rekordowi w drugiej tabeli odpowiada tylko jeden w pierwszej tabeli. Relacje jeden do wielu Relacja jeden do wielu jest najbardziej powszechnym typem relacji. W takiej relacji rekord w pierwszej tabeli może mieć wiele pasujących do niego rekordów w drugiej tabeli, ale każdy 9 10 rekord w drugiej tabeli ma tylko jeden odpowiadający mu rekord w tabeli pierwszej. Na przykład jeden klient może dokonać wielu zamówień, ale konkretne zamówienie jest przypisane do jednego klienta. Relacje wiele do wielu Relacja wiele do wielu w rzeczywistości składa się z dwóch relacji jeden do wielu z trzecią tabelą nazwaną tabela łącza. FORMULARZE Formularze można używać w celu przedstawienia zawartych w bazie danych informacji w czytelny i przejrzysty sposób. Formularze mogą być przeglądane wyłącznie w formie arkusza danych, pozwalają użytkownikowi na dołączenie wyjaśnień dając więcej informacji niż same nazwy pól. Formularze można otwierać w trzech widokach: Formularz który wyświetla formularz oraz aktywny rekord. Projekt w którym można modyfikować wygląd graficzny oraz dane wyświetlanie w formularzu Arkusz danych przedstawia dane z formularza w arkuszu danych. ZAPYTANIA (KWERENDY) Zapytania (kwerendy) są obiektami bazy danych, których można używać w celu odnalezienia w bazie określonej informacji. Kwerendy można otwierać w: Widok Arkusz danych wyświetla dane odnajdywane przez kwerendę Widok Projekt wyświetla pola dołączone do kwerendy, obliczenia dokonywane na wynikach oraz widok SQL. Kwerendy dzielą się na dwie zasadnicze kategorie: 10 11 kwerendy wybierające, które umożliwiają wydzielenie z bazy danych zbioru rekordów spełniających pewne kryteria; kwerendy funkcjonalne, będące poleceniem wykonania pewnej operacji na zbiorze rekordów spełniających określone kryteria. Możliwe jest też tworzenie tzw. kwerend parametrycznych, które po uruchomieniu proszą użytkownika o podanie wartości parametrów przyjętych jako kryteria. Rodzaje kwerend: 1. Kwerenda wybierająca - podstawowy rodzaj kwerend. Odnajduje i wyświetla żądane dane. 2. Kwerenda parametryczna - zbliżona do kwerendy wybierającej, jednak podczas wyszukiwania danych żąda podania kryteriów (parametrów). 3. Kwerenda krzyżowa - efekt działania przypomina arkusz kalkulacyjny oparty na danych z trzech lub więcej pól. 4. Kwerenda usuwająca - odnajduje i usuwa rekordy. 5. Kwerenda aktualizująca - odnajduje rekordy i zmienia jedną lub kilka wartości. 6. Kwerenda dołączająca - pobiera rekordy z jednej lub kilku tabel i dołącza je na końcu innej tabeli. 7. Kwerenda tworząca tabelę - zaznacza grupę rekordów i tworzy z nich tabelę. 8. Kwerenda wyszukująca duplikaty - odnajduje w tabeli rekordy posiadające te same wartości w jednym lub więcej polach. 9. Kwerenda wyszukująca niedopasowane dane - odnajduje w jednej tabeli rekordy, które nie odpowiadają żadnemu rekordowi z drugiej tabeli. DEFINIOWANIE ZAPYTAŃ (KWEREND) Istotą baz danych jest stworzenie możliwości efektywnego wyszukiwania informacji. Do tego celu służą zapytania (kwerendy) (ang.query), są one obok tabel zawierających dane podstawowymi obiektami definiującymi schematy wyszukiwania pożądanej informacji. W MS Access istnieją dwa języki definiowania kwerend, język SQL (ang. Structured Query Language) oraz język QBE (ang. Query By Example). Kwerendy pozwalają odpowiedzieć na pytania na temat danych w celu uzyskania określonych informacji z tabel i różnorodnego zmieniania wybranych tabel. Właściwie możliwości przeprowadzania zapytań są głównym powodem posługiwania się aplikacjami zarządzającymi bazą danych. Zapytania umożliwiają oglądania danych we właściwej kolejności. Umożliwiają również przeprowadzanie obliczeń na podstawie zebranych danych w celu tworzenia źródła danych dla formularzy, raportów i innych kwerend i aby wprowadzić zmiany globalne w tabelach i tworzyć nowe tabele. Przy uruchamianiu większości kwerend lub stosowaniu filtrów, Access zbiera w zestawieniu dane, o które pytamy. Chociaż to zestawienie wygląda i działa jak tabela, jest teraz dynamicznym, "żywym" widokiem jednej lub więcej tabel. 1. Kwerendy wybierające Najczęściej używane. Umożliwiają wybieranie rekordów, tworzenie nowych pól obliczeniowych i podsumowywanie danych. Kwerendy tego typu są podobne do filtrów, jednak umożliwiają również: Przeprowadzanie zapytań w więcej niż jednej tabeli Tworzenie nowych pól obliczeniowych Podsumowywanie i grupowanie danych Wyznaczanie pól do ukrycia lub pokazania 2. Kwerendy modyfikujące 11 12 Kwerendy modyfikujące pozwalają na wprowadzanie zmian w wielu rekordach. Istnieją cztery rodzaje kwerend modyfikujących: usuwająca, aktualizująca, dołączajca i tworząca tabele. 2.1. Kwerenda usuwająca Usuwa grupę rekordów z jednej lub kilku tabel. Kwerenda usuwająca może być użyta na przykład do usunięcia produktów, które zostały wycofane z oferty i na które nie ma zamówień. Użycie kwerendy usuwającej powoduje usunięcie całych rekordów, nie zaś wybranych pól w rekordach. 2.2. Kwerenda aktualizująca Dokonuje globalnych zmian w grupie rekordów w tabeli lub kilku tabelach. Na przykład można podwyższyć o 10% ceny wszystkich produktów mlecznych lub dać pięcioprocentową podwyżkę wszystkim pracownikom należącym do określonej kategorii zawodowej. Za pomocą kwerend aktualizujących można zmieniać dane w istniejących tabelach. 2.3. Kwerenda dołączająca Dodaje grupę rekordów z tabeli lub tabel na końcu innej tabeli lub tabel. Na przykład jeśli firmie przybywają nowi klienci, których dane znajdują się w osobnej bazie danych, aby uniknąć wpisywania wszystkich tych informacji, można dołączyć je do tabeli "Klienci". Kwerendy dołączające są również przydatne w następujących sytuacjach: Dołączanie pól wybranych na podstawie kryteriów. Na przykład można dołączyć tylko nazwy i adresy klientów o największych zamówieniach. Dołączanie rekordów w sytuacji, gdy część pól jednej tabeli nie ma swoich odpowiedników w drugiej tabeli. Na przykład tabela "Klienci" w przykładowej bazie danych Northwind ma 11 pól. Jeśli do tej tabeli chcemy dołączyć rekordy z tabeli, w której 9 z 11 pól jest takich samych, jak w tabeli "Klienci", kwerenda dołączająca uwzględni tylko dane w dopasowanych polach, pozostałe zaś będą zignorowane. 2.3. Kwerenda tworząca tabelę Tworzy nową tabelę z wszystkich lub części danych znajdujących się w jednej lub kilku tabelach. Kwerendy tworzące tabele są przydatne w następujących sytuacjach: Tworzenie tabel, które mają być eksportowane do innych baz danych programu Microsoft Access. Na przykład można utworzyć tabelę zawierającą część pól z tabeli "Pracownicy", a następnie wyeksportować ją do bazy danych używanej przez dział kadr. Tworzenie raportów zawierających dane od określonego momentu. Na przykład jeśli dnia 15 maja 1996 należy napisać raport, który przedstawiałby kwartalną sprzedaż od godziny 9:00 dnia 1 kwietnia 1996, w wypadku zastosowania raportu utworzonego na podstawie kwerendy lub instrukcji SQL, zostałyby wybrane wartości najnowsze, nie zaś te, które odpowiadają określonym ramom czasowym. Aby zachować dane dokładnie w takiej postaci, w jakiej znajdowały się 1 kwietnia 1996 o godzinie 9:00, należy utworzyć kwerendę tworzącą tabelę, która znajdzie potrzebne rekordy i zachowa je w oddzielnej tabeli. Ta tabela, a nie kwerenda, powinna następnie stanowić podstawę do tworzenia raportów. Tworzenie kopii zapasowej tabeli. Tworzenie tabeli archiwalnej, zawierającej nieaktualne rekordy. Na przykład można utworzyć tabelę, w której byłyby zapisywane wszystkie zrealizowane zamówienia przed usunięciem ich z tabeli bieżących zamówień ("Zamówienia"). Poprawianie sprawności działania formularzy i raportów utworzonych na podstawie kwerend korzystających z danych z wielu tabel lub instrukcji SQL. Na przykład jeśli trzeba 12 13 wydrukować kilka raportów utworzonych na podstawie kwerendy wykorzystującej dane z pięciu tabel i zawierającej podliczenia, proces tworzenia raportów może być przyśpieszony, jeśli uprzednio zostanie utworzona kwerenda tworząca tabelę, która znajdzie odpowiednie rekordy i umieści je w jednej tabeli. Następnie na podstawie tej tabeli można tworzyć raporty. Tabela ta może również być określona w instrukcji SQL jako źródło rekordów dla formularza lub raportu. Dzięki temu nie trzeba wykonywać kwerendy przy tworzeniu każdego z raportów. Należy jednak pamiętać, że podczas wykonywania kwerendy tworzącej tabelę, dane w tabeli podstawowej nie ulegają zmianie. 4. Kwerendy krzyżowe Kwerendy dają możliwość gromadzenia danych lub wykonywania akcji na danych z kilku tabel lub kwerend. Na przykład można obejrzeć informacje o klientach wraz z zamówieniami, które zostały przez nich złożone. Aby obejrzeć te informacje, potrzebne są dane z tabel "Klienci" i "Zamówienia". Jeśli tabele w kwerendzie nie są ze sobą sprzężone program Microsoft Access nie wie, które rekordy są ze sobą skojarzone, wyświetla więc każdą kombinację rekordów (tak zwany "iloczyn krzyżowy" lub "kartezjański") obu tabel. Jeśli każda tabela zawiera 10 rekordów, w wynikach kwerendy znajdzie się 100 rekordów (10X10). RAPORTY Raporty wyświetlają dane z tabel i kwerend, danych tych nie można zmieniać. Raport można przeglądać w: Widok Projekt w którym można zmieniać układ graficzny raportu Podgląd Wydruku pokazuje jak będzie wyglądał wydrukowany raport MAKRA Makra są procedurami, które można pisać aby zautomatyzować czynności, które potencjalnie wymagają dłuższej serii kroków. Do tworzenia makr Access posiada interfejs, pozwalający wybierać czynności, które makro ma wykonać, a także ustalić kolejność Aby napisać makro należy: 1. Otworzyć bazę danych i wybrać z listy w oknie Obiekty pozycję Makra. 2. Kliknąć przycisk Nowy 3. Kliknąć pierwszą komórkę w kolumnie Akcja i wybrać typ czynności, jaki makro ma wykonywać [Otwórz Formularz]. 4. Wybrać argument akcji, aby ją zakończyć. W tym przypadku kliknąć pole tekstowe Nazwa formularza, a następnie z rozwijanej listy wybrać określony formularz. 5. Wpisać komentarz w polu Komentarz. 6. Wybrać opcję Plik Zapisz. Moduły Moduł jest zbiorem deklaracji i procedur języka Visual Basic for Applications przechowywanych razem jako jedna całość. Istnieją dwa podstawowe typy modułów: moduły klasy moduły standardowe. Każda procedura w module może być procedurą typu Function lub procedurą typu Sub. Moduły klasy 13 14 Moduły formularzy i moduły raportów są modułami klasy związanymi z określonym formularzem lub raportem. Moduły formularza i raportu często zawierają procedury zdarzeń, które są uruchamiane w odpowiedzi na zdarzenie formularza lub raportu. Procedur zdarzeń można używać do sterowania działaniem formularzy i raportów oraz ich odpowiedziami na akcje użytkownika, takie jak np. kliknięcie przycisku polecenia. Moduły standardowe Moduły standardowe zawierają ogólne procedury, które nie są związane z żadnym innym obiektem, oraz często używane procedury, które można uruchamiać z dowolnego miejsca w bazie danych Procedura jest jednostką kodu języka Visual Basic for Applications. Procedura zawiera szereg instrukcji i metod, które wykonują określone operacje lub służą do obliczania wartości. Na przykład następująca procedura zdarzenia używa metody OpenForm do otwarcia formularza Private Sub OpenOrders_Click() DoCmd.OpenForm "Zamowienia" End Sub Istnieją dwa rodzaje procedur: Procedury typu Sub wykonują operację lub serię operacji, lecz nie zwracają żadnej wartości. Można tworzyć własne procedury Sub lub wykorzystywać szablony procedur zdarzeń zdefiniowane w programie Microsoft Access. Procedury typu Function (często zwane po prostu funkcjami) są to takie procedury, które zwracają jakąś wartość, na przykład wynik obliczenia. Język Visual Basic zawiera wiele wbudowanych funkcji. Na przykład funkcja Now zwraca bieżącą datę i godzinę. Istnieje również możliwość tworzenia własnych funkcji niestandardowych. Ponieważ funkcje zwracają wartości, są używane w wyrażeniach. Wyrażenia zawierające funkcje są często wykorzystywane w programie Microsoft Access, na przykład w instrukcjach i metodach języka Visual Basic, w wielu ustawieniach właściwości czy w wyrażeniach kryteriów w filtrach i kwerendach. Przykładowa procedura typu Function, FirstOfNextMonth, która zwraca datę pierwszego dnia kolejnego miesiąca (po dacie bieżącej): Function FirstOfNextMonth() FirstOfNextMonth = DateSerial(Year(Now), Month(Now) + 1, 1) End Function Ta funkcja niestandardowa składa się z jednej instrukcji przypisującej wyniki wyrażenia (po prawej stronie znaku równości [=]) nawie funkcji FirstOfNextMonth (po lewej stronie znaku równości). Wynik jest obliczany za pomocą wbudowanych funkcji języka Visual Basic: DateSerial, Year, Now i Month. 14