Bazy danych - Gimnazjum nr 3 im. Unii Europejskiej w Sieradzu

advertisement
Bazy danych – pojęcia
baza danych – (ang. database) zbiór odpowiednio zorganizowanych danych, np. książka telefoniczna, kartoteki pacjentów w
przychodni lekarskiej
Do obsługi baz danych wykorzystywane jest oprogramowanie zwane Systemem Zarządzania Bazą Danych (SZBD), dzięki
któremu możliwe jest:
 tworzenie bazy
 utrzymanie bazy
 wykonywanie operacji dodawania, usuwania, aktualizacji, filtrowania i sortowania danych w bazie
 tworzenie formularzy i raportów
 udostępnianie bazy
Przykłady SZBD: Microsoft Access, MySQL (najczęściej oferowany przez serwisy hostingowe) , PostgresSQL, Oracle, Sybase.
W pakiecie biurowym OpenOffice program do tworzenia baz danych nosi nazwę Base a plik bazy danych ma rozszerzenie .odb
Plik bazy danych utworzony w MS Access posiada rozszerzenie .mbd lub accdb (od wersji 2007).
Obiektami bazy danych Access są:
- tabele
- kwerendy
- raporty
- formularze
Wszystkie te obiekty utworzone w danej bazie danych zapisywane są w jednym pliku! (pod taką nazwą, jaką nadaliśmy bazie
danych)
Rodzaje baz danych:
 kartotekowe
 relacyjne
 obiektowe
Najczęściej wykorzystywane rodzaje baz danych to relacyjne.
Kartotekowe i relacyjne bazy danych składają się z tabel. Tabela jest podstawową formą organizacji danych w tych bazach.
Tabela powinna posiadać nazwę w liczbie pojedynczej. Nazwa powinna sugerować, co zawiera tabela. Jeśli baza danych składa
się z większej ilości tabel to nazwy tabel nie mogą się w danej bazie powtórzyć!
Tabela składa się z wierszy i kolumn, które w terminologii baz danych nazywane są:
wiersz – rekordem
kolumna – polem
Każda kolumna w tabeli musi mieć niepowtarzalną w tej tabeli nazwę sugerującą, co przechowuje oraz typ i rozmiar.
Najmniejszym elementem bazy danych jest pole. Istnieje ograniczenie do 255 pól w jednej tabeli. Brak ograniczenia co do
ilości rekordów – ograniczeniem jest ilość pamięci przeznaczonej na 1 tabelę (2 GB)
Przykład:
Tworzymy w programie MS Access kartotekową bazę danych ksiazka_telefoniczna.mdb.
Baza ta będzie się składać z 2 tabel: klient_indywidualny oraz klient_firma.
W tabeli klient_indywidualny będą przechowywane informacje: imię, nazwisko, miasto, ulica z numerem domu, numer telefonu
klienta.
W tabeli klient_firma będą przechowywane informacje: nazwa firmy, miasto, ulica z numerem domu, numer telefonu firmy.
W bazie danych te 2 tabele po wpisaniu przykładowych danych będą miały następującą postać:
tabela: klient_indywidualny
Imię
Nazwisko
Miasto
Ulica
Nr telefonu
Jan
Nowak
Sieradz
Warcka 10
043 822 45 09
Wiktor
Kowalski
Łódź
Aleja Struga 13
042 622 45 76
Zaznaczony kolorem czerwonym element bazy to rekord. Każdy rekord przechowuje pełną informację o danym kliencie. W
powyższej tabeli są 2 rekordy.
Tabela klient_firma
Nazwa firmy
miasto
ulica
Nr telefonu
PPHU Nowak
Sieradz
Aleja Pokoju 11
043 822 78 34
Firma transportowa
Łódź
Aleja Politechniki 34
042 622 35 10
Zaznaczony kolorem niebieskim element bazy to pole. Każde pole przechowuje pojedynczy fragment informacji o kliencie.
Powyższe pole ma nazwę nazwa firmy.
W programie MS Access nie można stosować spacji w nazwach kolumn (pól).
Pole jest najmniejszym elementem bazy danych! Obowiązuje zasada, że każde pole powinno przechowywać pojedynczą
informację, tzn. że np. w polu ulica powinna być tylko wprowadzona nazwa ulicy i należałoby utworzyć jeszcze 1 pole nr domu ,
w którym powinien być umieszczony numer domu.
Każde pole musi mieć swój typ, który mówi o rodzaju danych przechowywanych w tym polu. Typy danych w MS Access:
 tekst – do 255 znaków tekst i liczby (wartość pola zapisana w 1 bajcie)
 nota (długi tekst) – do 65 536 znaków (216 – 2 bajty)
 liczba – dane na których wykonywane są obliczenia matematyczne (do 16 bajtów)
 walutowy – do walut aby zapobiec zaokrąglaniu wyników obliczeń (8 bajtów)
 data/godzina ma postać: RRRR-MM-DD (8 bajtów)
 tak/nie (1 bit)
 hiperłącze
 obiekt OLE (max 1 GB)
 autonumerowanie – nadawane automatycznie przez program (4bajty)
 odnośnik
W MS Access dla typu liczbowego można ustalić format: standardowy, stałoprzecinkowy, procentowy, wykładniczy a dla typu
tekstowego i liczbowego można ustalić rozmiar pola. Domyślnie Access dla tekstu ustala rozmiar na 50 znaków, maksymalnie
może być 255. Określenie rozmiaru wpływa na obszar zajmowanej przez bazę pamięci w komputerze. Dla typu liczbowego
można ustalić zakres i typ liczb (np. liczby całkowite, podwójnej precyzji).
Relacja w terminologii baz danych oznacza związek między kolumnami tabeli.
Jedna tabela też stanowi relacyjną bazę danych (tabela jest relacją)
Pojęciem relacji określa się również powiązania między kolumnami w różnych tabelach! Takie powiązanie jest nazywane
sprzężeniem lub związkiem.
Zmodyfikujmy bazę danych ksiazka_telefoniczna.mbd aby zawierała relację między tabelami.
W celu ułatwienia przetwarzania danych w tej bazie (np. aby zmienić nazwę miasta trzeba byłoby dokonać zmiany we wszystkich
rekordach zawierających nazwę tego miasta a jeśli zapiszemy tą nazwę w oddzielnej tabeli to zmiana nastąpi tylko w jednym
miejscu) nazwy miast zapisać w oddzielnej tabeli miasta, która powinna wówczas zawierać jakiś identyfikator miasta oraz nazwę
miasta, np.
tabela:miasto
Identyfikator_miasta
nazwa_miasta
1
Sieradz
2
Łódź
Wówczas tabelę klient_indywidualny należy również zmodyfikować tak, aby nie zawierała nazwy miasta lecz identyfikator tego
miasta.
Tabela: klient_indywidualny
Imię
Nazwisko
identyfikator_miasta
Ulica
Nr telefonu
Jan
Nowak
1
Warcka 10
043 822 45 09
Wiktor
Kowalski
2
Aleja Struga 13
042 622 45 76
Teraz pomiędzy tabelą miasto i tabelą klient_indywidualny istnieje powiązanie (relacja). Ściślej mówiąc relacja istnieje między
kolumną identyfikator_miasta z tabeli klient_indywidualny a kolumną identyfikator_miasta z tabeli miasto.
Identyfikator_miasta powinien mieć typ: autonumerowanie w MS Access. Wówczas program automatycznie nadaje numerację
w kolejności wstawiania poszczególnych rekordów. Access automatycznie nadaje typ autonumerowanie polu nazwanemu
identyfikator (pole to jest domyślnie wstawiane przez Access w momencie utworzenia nowej tabeli).
Identyfikatory muszą być w danej tabeli niepowtarzalne (dlatego po ustawieniu typu autonumerowanie nie musimy się martwić,
że powtórzy się identyfikator), natomiast mogą się powtarzać w różnych tabelach, tzn. że po wstawieniu do tabeli
klient_indywidualny kolejnego pola identyfikator_klienta, program może nadać im numery 1, 2 itd.
ntyfikator_klienta
Imię
Nazwisko
identyfikator_miasta
Ulica
Nr telefonu
Jan
Nowak
1
Warcka 10
043 822 45 09
Wiktor
Kowalski
2
Aleja Struga 13 042 622 45 76
Jeśli w kolumnie zawarte są niepowtarzalne informacje (np. w polu identyfikator_klienta numery są niepowtarzalne w tej tabeli
poprzez nadanie typu autonumerowanie) to pole takie jest kluczem głównym (podstawowym, unikalnym, primary key).
Kluczem głównym w tabeli miasto jest identyfikator_miasta.
W programie MS Access klucz główny musi być unikalny, program sygnalizuje błąd, gdy chcielibyśmy wprowadzić informację,
która już wystąpiła w tej kolumnie (jeśli ustawimy dla pola klucz główny).
Nie można ustawić np. pola nazwisko kluczem głównym ponieważ nazwiska mogą się powtarzać, możemy natomiast ustawić
jako klucz główny pole pesel (jeśli by takie było), ponieważ pesel człowieka jest niepowtarzalny. Jeżeli okazałoby się, że żadne
pole nie będzie unikatowe można utworzyć klucz podstawowy złożony z kilku pól – jest to klucz złożony.
W tabeli klient_indywidualny oprócz klucza głównego, którym jest identyfikator_klienta zawarte są również identyfikatory z
tabeli miasta. Pole identyfikator_miasta jest w tabeli klient_indywidualny kluczem obcym (pobocznym).
Na podstawie klucza głównego można utworzyć indeks, który zawierał będzie odsyłacze do konkretnych rekordów. Indeks jest
odpowiednikiem skorowidza (katalogu) w bibliotece, np. chcąc wyszukać książkę „Ogniem i mieczem” możemy jej szukać w
katalogu z posortowanymi nazwami książek wg autorów, lub w katalogu z nazwami dziedziny. Wówczas na każdej karteczce
bibliotekarz znajdzie informację, w którym miejscu (nr półki, nr rzędu itd.) znajduje się książka).
Typy relacji między tabelami:
 1:1 (jeden do jednego) – jeśli 1 rekord z pierwszej tabeli odpowiada tylko 1 rekordowi z drugiej tabeli (np. gdyby istniały
tabele klient i adres to jednemu klientowi z pierwszej tabeli odpowiada tylko 1 adres z drugiej tabeli – oznacza to, że
dany klient może posiadać tylko 1 adres
 1:wielu – jeśli 1 rekord z pierwszej tabeli odpowiada wielu rekordom z drugiej tabeli (np. rekord pierwszy z tabeli miasto
może odpowiadać wielu rekordom z tabeli klient_indywidualny, ponieważ wielu klientów może mieszkać w Sieradzu)
 wiele:wielu – jeśli 1 rekord z pierwszej tabeli jest powiązany z wieloma rekordami z drugiej tabeli oraz 1 rekord z drugiej
tabeli jest powiązany z wieloma rekordami z pierwszej tabeli (np. w bazie danych przechowujących informacje o
rodzicach i ich dzieciach każdemu rodzicowi można przypisać wiele dzieci a każde dziecko będzie posiadać więcej niż 1
rodzica).
Podczas ustawiania relacji między tabelami w Access jest możliwość zaznaczenia opcji „wymuszaj więzy integralności”. Oznacza
to, że w polu, które ustawione jest jako klucz obcy nie może być wprowadzona wartość nieistniejąca w polu klucza
podstawowego tabeli, z którą jest połączenie za pomocą relacji. Tzn. że w polu identyfikator_miasta w tabeli
klient_indywidualny nie może być wprowadzona np. wartość 3, bo w tabeli miasto nie ma żadnego miasta o takim
identyfikatorze.
Sortowanie w bazie danych polega na porządkowaniu danych według ustalonego kryterium, np. sortujemy rekordy w tabeli
według nazwiska alfabetycznie w sposób rosnący (od A do Z – znaczek AZ↓).
Filtrowanie w bazie danych oznacza wyświetlenie tylko tych rekordów tabeli, które spełniają określone kryteria, np. imię =”Jan” i
ukrycie pozostałych rekordów.
Formularze w bazie danych to obiekty, które służą do wprowadzania, przeglądania i edytowania danych.
Formularz kolumnowy umożliwia w danej chwili wyświetlenie zawartości tylko 1 rekordu.
Formularz tabelaryczny wyświetla zawartość wszystkich rekordów z tabeli.
Raporty podobnie jak formularze prezentują dane zawarte w bazie, ale w przeciwieństwie do formularzy nie modyfikują danych
w tabeli.
Raport można wykonać dla danych ze wskazanej tabeli lub dla konkretnego zapytania.
Istotą baz danych jest stworzenie możliwości efektywnego wyszukiwania informacji. Do tego celu służą 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 – strukturalny język zapytań)
oraz język QBE (ang. Query By Example – przyjazna dla użytkownika forma tworzenia zapytań bez znajomości języka SQL).
np. kwerenda pobierająca z tabeli klient_indywidualny dane: imię klienta, nazwisko klienta, numer telefonu w języku SQL będzie
miała postać:
SELECT imię, nazwisko, nr telefonu FROM klient_indywidualny
można ustalić warunek, że kwerenda ma pobrać tylko tych klientów, którzy mają na imię Jan
SELECT imię, nazwisko, nr telefonu FROM klient_indywidualny WHERE imię='Jan'
i dodatkowo posortować wg nazwiska
SELECT imię, nazwisko, nr telefonu FROM klient_indywidualny WHERE imię='Jan' ORDER BY nazwisko
Aby dodać rekord do tabeli w SQL należy użyć instrukcji INSERT
Aby usunąć rekordy z tabeli – instrukcja DELETE
Aby zaktualizować dane – UPDATE
Powyższe polecenia (insert, delete…) należą do tzw. zbioru DML (Data Manipulation Language – języka manipulacji danymi)
W bazie danych za pomocą SQL można też dodawać, zmieniać i kasować tabele i bazy danych. Polecenia służące do tego to np.:
CREATE DATABASE (utworzenie bazy), DROP TABLE(usunięcie tabeli) należą do grupy DDL (Data Definition Language).
Do grupy DCL (Data Control Language) należą polecenia służące do nadawania uprawnień użytkownikom bazy danych.
Rodzaje kwerend:
- kwerenda wybierająca – pobiera dane z 1 lub więcej tabel używając podanych kryteriów i wyświetla wybrane dane w
określonym porządku, wśród nich wyróżnia się:
Kwerenda jednotabelowa – oparta na danych z jednej tabeli,
o
Kwerenda wielotabelowa - grupuje i podsumowuje dane, chować lub pokazywać niektóre pola z
tabeli lub kwerendy
o
Kwerenda obliczająca - pozwalają tworzyć obliczenia
o
Kwerenda z wyrażeniem wiążącym - pozwala na połączenie pól
o
Kwerenda parametryczna – umożliwia tworzenie warunku wyboru
o
Kwerenda krzyżowa – pozwalają na grupowanie danych (miesięcznych, kwartalnych) ich
porównywanie sporządzanie podsumowań, ( kto ile zamówił)
- Kwerenda funkcjonalna
o
Kwerenda tworząca tabelę /Make-Table Query– może tworzyć nową tabelę lub duplikat tabeli.
o
Kwerenda aktualizująca/Update Query – pozwala na dokonanie zmian w jednej lub kilku tabelach,
o
Kwerenda dołączająca/dodająca/Append Query - dodaje z jednej lub kilku tabel rekordy do
aktualnej
o
Kwerenda usuwająca/Delete Query– usuwa określone rekordy z jednej lub kilku tabel (osoby, które
nie zamówiły nic w ciągu 5 lat)
Specyficznym rodzajem bazy danych jest hurtownia danych - data warehouse.
Tabele tej bazy tworzone są w taki sposób, aby wyniki z tych tabel dawały odpowiedź na konkretne pytania opracowane przed
zaprojektowaniem bazy.
Do pliku bazy danych można zaimportować dane z arkusza kalkulacyjnego, z dokumentu tekstowego (trzeba zastosować
określone znaki oddzielające między kolejnymi elementami poszczególnych rekordów np. tabulator, spację, średnik, (jest to tzw.
plik tekstu rozdzielanego). Można też dane z bazy danych wyeksportować do pliku arkusza kalkulacyjnego i pliku tekstowego,
oraz wykorzystać dane z bazy danych do korespondencji seryjnej.
Download