RELACYJNE BAZY DANYCH Pomoc dydaktyczna do nauczania Technologii Informacyjnej i Informatyki opracowanie Marta Kramek
I. ELEMENTY TEORII BAZ DANYCH Podstawowe pojęcia związane z bazami danych Struktura tabeli (elementy) Uwagi do projektowania Anomalia przy projektowaniu Normalizacja tabeli NR 2
II. PODSTAWOWE POJĘCIA Baza danych zbiór różnego typu danych (liczbowe, tekstowe, graficzne) powiązanych ze sobą i przechowywanych na urządzeniach pamięciowych Tabela (relacja) obiekt bazy danych przechowujących informacje przeznaczone do przetwarzania (definicja nieformalna) Relacyjna baza danych system powiązanych ze sobą tabel (relacji) NR 3 <<
III. STRUKTURA TABELI struktura (schemat) tabeli zbiór pól i przypisanych im własności pole = atrybut = kolumna rekord = wiersz = krotka Tabela 1: Wypożyczalnia biblioteczna PESEL NAZWISKO IMIONA DATA I MIEJSCE UR. ADRES TYTUŁ AUTOR CENA DATA WYPOŻYCZENIA DATA ZWROTU 1111111111 Kot Ew a, Anna 85-12-01 Radom 26-900 Radom Krótka 125 Chłopi Reymont Stanisław 14,50 zł 02-09-16 02-09-16 Rekord = wiersz Pola = kolumna 1111111111 Kot Ew a, Anna 85-12-01 Radom 26-900 Radom Krótka 125 Opow iadania Orzeszkow a Eliza 12,00 zł 99-08-01 99-08-01 2222222222 Lis Anna 56-02-01 Radom 25-900 Puław y Szara 10/4 Lalka Prus Bolesław 25,00 zł 99-06-01 99-06-01 2222222222 Lis Anna 56-02-01 Radom 25-900 Puław y Szara 10/4 Opow iadania Orzeszkow a Eliza 12,00 zł 95-06-11 95-06-11 3333333333 Pusek Jan 56-12-01 Kielce 36-660 Kielce Zielona 1A Chłopi Reymont Stanisław 14,50 zł 03-09-08 03-09-08 3333333333 Pusek Jan 56-12-01 Kielce 36-660 Kielce Zielona 1A Lalka Prus Bolesław 30,00 zł 00-09-16 00-09-16 4444444444 Kow al Stanisław 84-05-01 Warszaw a 26-500 Opole Biała 100 Opow iadania Orzeszkow a Eliza 12,00 zł 99-06-01 99-06-01 4444444444 Kow al Stanisław 84-05-01 Warszaw a 26-500 Opole Biała 100 Chłopi Reymont Stanisław 14,50 zł 95-06-11 95-06-11 5555555555 Król Anna 70-04-22 Iłża 55-500 Poznań Miła 12/5 Opow iadania Orzeszkow a Eliza 17,00 zł 03-09-08 03-09-08 6666666666 Kot Ew a, Maria 85-12-01 Kielce 36-660 Kielce Puław ska 11 Chłopi Reymont Stanisław 34,50 zł 99-06-01 99-06-01 6666666666 Kot Ew a, Maria 85-12-01 Kielce 36-660 Kielce Puław ska 11 Opow iadania Orzeszkow a Eliza 12,00 zł 95-06-11 95-06-11 1111111111 Kot Ew a, Anna 85-12-01 Radom 26-900 Radom Krótka 125 Lalka Prus Bolesław 25,00 zł 02-09-16 02-09-16 NR 4 <<
IV. UWAGI DO PROJEKTOWANIA Nie ma znaczenia kolejność kolumn w tabeli, Nie ma znaczenia kolejność wierszy (rekordów), Na przecięciu wiersza i kolumny powinna znajdować się, tylko jedna wartość z dziedziny danego atrybutu (pola), Ten sam wiersz nie powinien występować więcej niż jeden raz, Tabela powinna posiadać zbiór atrybutów (pól), jednoznacznie identyfikujących wiersz; tabela musi mieć klucz. NR 5 <<
V. ANOMALIA PRZY PROJEKTOWANIU 1. Redundancja nadmiarowość informacji (niepotrzebne powtarzanie informacji w tabelach, wzrost objętości plików). 2. Anomalia przy aktualizacji rekordów (liczba uaktualnień). 3. Anomalia przy usuwaniu rekordów (liczba usunięć). 4. Anomalia przy wstawianiu rekordów. (konieczność wpisywania wartości do pól tabeli zamiast pobierania danych z tabel pokrewnych). NR 6 <<
VI. NORMALIZACJA TABELI Aby doprowadzić tabelę do odpowiedniej postaci normalnej przeprowadza się proces normalizacji tabeli. Proces normalizacji polega na odpowiednim podziale tabeli na mniejsze w wyższej postaci normalnej. W naszym przykładzie w wyniku ww. procesu otrzymamy cztery tabele: 1. Czytelnicy { PESEL, nazwisko, imię, data_ur, miejsce_ur, nr_dowodu} 2. Adresy czytelników { PESEL, kod, miasto, ulica, telefon } 3. Książki {ID_książki, tytuł, autor, cena, rok_wydania, recenzja} 4. Rejestr wypożyczeń {Nr_op, PESEL, ID_książki, Data_wyp, Data_zwrotu}, NR 7 <<
TABELE BAZY DANY CH ( PO NORMAL IZ A C J I TABELI W YPOŻYCZALNIA) Tabele: Czytelnicy, Adresy Tabela nr 1 Czytelnicy PESEL NAZWISKO IMIĘ I IMIĘ II DATA UR. MIEJCSE UR NR DOWODU 1111111111 Kot Ewa Anna 01-05-1980 Radom AB 2558141 1012602222 Lis Jan Józef 10-12-1960 Kielce DD 2546369 3333333333 Nowak Anna Ada 13-07-1966 Radom BD 2657879 1012604444 Lis Jan Adam 10-12-1960 Kielce DD 3566123 Tabela nr 2 Adresy PESEL KOD MIASTO ULICA TELEFON 1111111111 26-600 Radom Krótka 10/3 (048) 36-251-30 1012602222 30-600 Kielce Biała 12/25 (041) 26-251-30 3333333333 26-606 Radom Miła 123 (048) 66-540-41 1012604444 30-700 Kielce Zielona 11 (041) 80-251-30 NR 8 <<
TABELE BAZY DANY CH ( PO NORMAL IZ A C J I TABELI W YPOŻYCZALNIA) Tabele: Książki, Rejestr wypożyczeń Tabela nr 3 Książki ID KSIĄŻKI TYTUŁ ID_AUTORA CENA ROK_WYD RECENZJA 111111 Lalka 1 25,50 zł 1945 Powieść... 222222 Chłopi 2 45,00 zł 1999 Nagroda Nobla.. 333333 Wiersze 1 30,50 zł 1985 Zbiór wierszy... Tabela nr 4 Rejestr wypożyczeń PESEL ID KSIĄŻKI DATA_WYPOŻYCZENIA DATA ZWROTU 1111111111 111111 01-02-2002 01-08-2002 1111111111 111111 11-12-2003 1012602222 222222 10-11-2003 11-02-2004 1012602222 333333 11-05-2002 25-11-2003 NR 9 <<
VIII.ELEMENTY STRUKTURY TABELI 1. Pola tabeli 2. Typy pól 3. Właściwości pól 4. Klucz - jeden lub kilka pól, które jednoznacznie identyfikują rekord: - Klucz prosty jednoatrybutowy - Klucz złożony wieloatrybutowy W tabeli może istnieć wiele kluczy (indeksów), ale jest tylko jeden klucz główny, podstawowy. NR 10
Uwaga Maksymalny rozmiar pliku bazy danych programu Office Access 2007 to dwa gigabajty. AD.2 TYPY PÓL tekstowe - długość tekstu do 255 znaków Nota - tekst o długości do 65 536 znaków. liczbowe - (całkowite, zmiennoprzecinkowe ) Bajt - od 0 do 255 1 bajt Liczba całkowita - 32.768 do 32.767 2 bajty Liczba całkowita długa -2.147.483.648 do 2.147.483.647 4 bajty Pojedyncza precyzja 3.402823E38 do 1.401298E 45 7 m. po p. 4 bajty Podwójna precyzja data / godzina 1.797 693 134 862 31 E308 4.94065645841247E 324 15 m.p.p 8 bajtów Waluta - 8 bajtów autonumer - unikatowy, kolejny numer nadawany przez program MS Access Tak / Nie - pole logiczne) 1 bit obiekt OLE - obiekty typu: arkusz kalkulacyjny, dokument Word, grafika, dźwięki... Do 1 gagabajta NR 11
AD.3 WŁAŚCIWOŚCI PÓL Właściwości pól zależą od wybranego typu pola. Do podstawowych właściwości należą: wartości domyślne maski wprowadzania formaty wyświetlania reguły poprawności komunikaty o błędach, Wymagane, zerowa długość dozwolona NR 12
AD.3 WŁAŚCIWOŚCI PÓL Wartości domyślne - ustalają dla nowych rekordów wartość dla danego pola Maski wprowadzania NR 13 Maska wymusza na użytkowniku wprowadzenie do pola określonych znaków. Maska może zawierać następujące elementy: 0 - cyfra wymagana, znaki + - niedozwolone 9 - cyfra niewymagana, znaki + - niedozwolone # - cyfra lub spacja niewymagana, znaki + - dozwolone L - litera wymagana? - litera niewymagana \znaki - wyświetla na stałe dane znaki > - zamienia na duże litery < - zamienia na małe litery a A -litera lub cyfra niewymagana -litera lub cyfra wymagana
AD.3 WŁAŚCIWOŚCI PÓL Reguły poprawności NR 14 Wyrażenie wymuszające wprowadzenie poprawnej danej do pola. Typy wyrażeń: tekstowe (argumentami są pola tekstowe oraz operatory tekstowe, np.. & - op. konkatenacji) operator LIKE umożliwia wykorzystanie w wyrażeniach tekstowych znaków zastępczych *,? operatory porównań : >, <, =, <>, <=, >=, BETWEEN And operatory logiczne: OR, AND, NOT Komunikat o błędzie Jeżeli występuje reguła poprawności, a nie ma komunikatu wówczas w sytuacji jej niespełnienia pojawia się standardowo komunikat MS Access. Aby wymusić własny komunikat należy go uwzględnić we właściwościach pola.
AD.3 WŁAŚCIWOŚCI PÓL Wymagane Wszystkie typy danych z wyjątkiem typu Autonumerowanie Wymagane, aby w tym polu w każdym rekordzie znajdowała się wartość. Zerowa długość dozwolona Umożliwienie wprowadzania ciągu o zerowej długości ("") w polu typu Tekst lub Nota przez ustawienie wartości Tak. NR 15
VII. RELACJE Aby powstała relacyjna baza danych musi powstać system powiązań i sprzężeń między tabelami system relacji. Połączenie między tabelami musi być naturalne tzn. w obu tabelach musi istnieć wspólne pole łączące, które będzie: Tego samego typu, Wartości w obu tabelach będą sobie nawzajem odpowiadać NR 16
VIII.TYPY RELACJI 1 1 - jeden do jeden. Każdemu rekordowi w pierwszej tabeli odpowiada tylko 1 rekord z drugiej i każdemu rekordowi z drugiej tabeli odpowiada tylko jeden rekord z pierwszej. 1 - - jeden do wiele. Każdemu rekordowi w tabeli nadrzędnej odpowiada wiele rekordów z tabeli podrzędnej i każdemu rekordowi z tabeli podrzędnej odpowiada tylko 1 rekord z tabeli nadrzędnej. m n wiele do wiele. Każdemu rekordowi w pierwszej tabeli odpowiada wiele rekordów z drugiej i każdemu rekordowi z drugiej tabeli może odpowiadać wiele rekordów z pierwszej tabeli. Musi powstać dodatkowa tabela łącząca, w rzeczywistości powstaną dwie relacje 1 - - jeden do wiele. NR 17
IX. SPRZĘŻENIA MIĘDZY TABELAMI 1. INNER JOIN połączenie wewnętrzne, w wyniku takiego polaczenia otrzymujemy rekordy, które mają odpowiadające sobie wartości w obu tabelach; 2. LEFT OUTER JOIN połączenie zewnętrzne - lewostronne, w wyniku takiego polaczenia otrzymujemy wszystkie rekordy z 1 tabeli (nadrzędnej) i te rekordy z tabeli podrzędnej, które mają odpowiedniki w tabeli nadrzędnej. 3. RIGHT OUTER JOIN połączenie zewnętrzne - prawostronne, w wyniku takiego polaczenia otrzymujemy wszystkie rekordy z tabeli (podrzędnej) i te rekordy z tabeli 1 nadrzędnej, które mają odpowiedniki w tabeli podrzędnej. NR 18
X. KONSEKWENCJE Wymaga się aby w połączeniu między tabelami były wymuszone więzy integralności Konsekwencje: 1. Pole łączące w tabeli nadrzędnej musi być kluczem podstawowym; 2. Nie można dodać rekordu w tabeli podrzędnej, który nie ma odpowiednika w tabeli nadrzędnej 3. Nie można usunąć rekordu z tabeli nadrzędnej jeżeli występują odpowiadające jej rekordy w tabeli podrzędnej, chyba że zaznaczono Kaskadowe usuwanie powiązanych rekordów. 4. Nie można zmienić wartości klucza w tabeli nadrzędnej, jeżeli w podrzędnej występują odpowiadające jej rekordy, chyba że zaznaczono Kaskadowe aktualizacja powiązanych pól. NR 19
XI. USTALANIE RELACJI MIEDZY TABELAMI NR 20
XII.USTALANIE RELACJI MIEDZY TABELAMI Określanie więzów integralności: NR 21
XIII.KWERENDY Kwerendy - narzędzia do wybierania rekordów z jednej lub wielu tabel bądź innych kwerend. Tabele muszą być połączone systemem relacji w sposób naturalny. Połączenie naturalne oznacza, że w obydwu tabelach istnieje pole łączące. Typ pola łączącego musi być ten sam w obydwu tabelach. Wartości pola w tabelach muszą sobie odpowiadać. Inne określenia kwerend to: tabele wirtualne, zapytania, polecenia języka SQL (Structure Query Language) NR 22
XIII.KLASY KWEREND Klasy kwerend: 1. Wybierające wybierają i wyświetlają rekordy z 1 lub wielu tabel 2. Funkcjonalne: a) aktualizujące zmieniają zawartość pól bazy danych (tabel) b) dołączające rekordy dodają rekordy do 1 lub kilku tabel c) usuwające usuwają rekordy z tabel bazy danych d) tworzące nową tabelę Uwaga! Nie można odwrócić działania kwerend funkcjonalnych! NR 23
KWERENDY CD. Budowa kwerendy: 1. Wskazać źródło informacji do kwerendy (tabele lub kwerendy) 2. Wybrać odpowiednie pola do zestawienia i umieścić je w siatce projektowej kwerendy a) określić kryteria do selekcji rekordów (wykorzystanie Konstruktora wyrażeń), b) określić własności pól sortuj i pokaż c) uruchomienie kwerendy ikona d) wybieranie rekordów wg kilku kryteriów operatory logiczne AND oraz OR, własność wiersza lub e) budowa nowych pól kwerendy - Konstruktor wyrażeń! NR 24
NR 25 KWERENDY DEFINIOWANIE KRYTERIÓW
KWERENDY - DODATKOWE FUNKCJE Dodatkowe funkcje i typy kwerend 1. Parametryczne parametr podajemy w wierszu Kryteria jako wyrażenie ujęte w nawiasy kwadratowe, np..: > [Podaj kwotę: ] 2. Podsumowujące tworzą grupy i dla każdej z nich mogą tworzyć i stosować tzw. agregaty. Agregat suma pola, średnia, max, min, zlicz rekordy itp. 3. Krzyżowe tworzą zestawienia rekordów w postaci tablicy dwudzielczej a) wskazać źródło danych b) wskazać pola definiujące nagłówki kolumn c) wskazać pola definiujące nagłówki wierszy d) wybrać pole, które podlega agregacji NR 26
I. KWERENDY PODSUMOWUJĄCE - PRZYKŁAD ikona podsumowanie, dodaje nowy wiersz do siatki projektowej kwerendy; określamy tu pole / pola grupujące oraz pola poddane agregacji tzn. pola na których będą wykonywane obliczenia np.: sumy, średniej, max, min itp.. NR 27
I. KWERENDY KRZYŻOWE - PRZYKŁAD NR 28 Powyższa kwerenda wyznacza liczbę osób na poszczególnych stanowiskach w poszczególnych oddziałach firmy.
FORMULARZE 1. Struktura formularza 5 sekcji a) Sekcja nagłówka strony b) Sekcja nagłówka formularza c) Sekcja szczegółów d) Sekcja stopki strony e) Sekcja stopki formularza 2. Sposoby tworzenia formularzy a) za pomocą Kreatora b) przy pomocy Przybornik NR 29 Pasek Przybornika
XVIII.FORMULARZE - STRUKTURA NR 30
NR 31 I. RAPORTY - BUDOWA