Bazy danych w życiu codziennym

Gdyby zatrzymać się na chwilę i przyjrzeć pojedynczym czynnościom wykonywanym przez nas każdego dnia, moglibyśmy zaryzykować stwierdzenie, że punktem wyjścia wielu podejmowanych przez nas akcji są dane. Wypłacając gotówkę z bankomatu, rejestrując się na wizytę do lekarza specjalisty czy rezerwując książkę w bibliotece, korzystamy (my sami lub odsługujące nas systemy) z niezbędnych do przeprowadzenia tych czynności danych, na przykład naszych danych osobowych.

Rozejrzyjmy się zatem wokół nas w poszukiwaniu owych wszechobecnych baz danych.

Przeglądając rodzinne pamiątki, Tomek natrafił w jednym z pożółkłych zeszytów na takie oto zapiski:

R1M88FbnNoqJP

Jest to jedna ze stron zapisanych kiedyś przez babcię Tomka, która skrupulatnie odnotowywała wszystkie domowe wydatki, aby pod koniec miesiąca podsumować je i zestawić z przychodami.

Niedawno na prośbę taty, zapalonego pszczelarza, Tomek przygotował w arkuszu kalkulacyjnym specjalną tabelkętabelatabelkę, dzięki której można było w łatwy sposób prowadzić ewidencję sprzedaży miodu produkowanego w rodzinnej pasiece. Arkusz ten dodatkowo umieścił w chmurze, aby jednocześnie kilka osób obsługujących sprzedaż mogło mieć do niego dostęp z dowolnego komputera czy telefonu.

R1Y8fNcOU6tfq
Źródło: Contentplus.pl Sp. z o.o., licencja: CC BY-SA 3.0.

Na pewno jesteś w stanie podać co najmniej kilka podobnych przykładów, w których różnego rodzaju dane, takie jak daty, kwoty, nazwy czy liczby, porządkuje się w formie tabeli.

Ciekawostka

Pierwsze próby organizowania danych w sposób ułatwiający sprawny do nich dostęp były podejmowane w latach 60. XX wieku. Dotychczasowe przetwarzanie danych, które było oparte na papierowych kartach dziurkowanych oraz taśmach magnetycznych, wymagało szeregowego dostępu do danych, a więc znacznie mniej efektywnego niż w przypadku tzw. dostępu swobodnego.

Tabela, zarówno w arkuszu kalkulacyjnym, jak i ta uproszczona, prowadzona w zeszycie, posiada kolumny nazwane w sposób zwięzły i jednoznaczny (przykładowo: „Data”, „Kwota wydatków”, „Cel”):

RwA2yTg6AAWWM
Źródło: Contentplus.pl Sp. z o.o., licencja: CC BY-SA 3.0.

Wiersze tabeli oznaczają pojedyncze operacje dające się opisać za pomocą konkretnych wartości określonych w nagłówkach kolumn, a więc na przykład kto i kiedy zakupił jaką ilość danego rodzaju miodu:

R1bwz7hdzmyxI
Źródło: Contentplus.pl Sp. z o.o., licencja: CC BY-SA 3.0.

Ustaliliśmy już więc, że baza danych może mieć postać zwykłej tabeli. Teraz sprawdźmy, przy pomocy jakich narzędzi powinniśmy stworzyć bazę, aby można z niej było wygodnie i efektywnie korzystać.

Proces twórczy

Jeśli autor bazy przygotowuje ją na własny użytek, zazwyczaj od razu wie, z jakich kolumn ma się składać jego tabela oraz do jakich służyć celów. Babcia Tomka zdawała sobie sprawę, że aby podliczyć sumę miesięcznych wydatków w domowym budżecie, powinna obok kwoty i nazwy wydatku zapisać datę. Trochę trudniej wygląda to w sytuacji, gdy baza realizowana jest na zamówienie. Wówczas twórca (lub w  przypadku większych baz – cały zespół twórców) musi przeprowadzić pewną analizę, która doprowadzi do stworzenia bazy spełniającej wymagania zamawiającego.

W uproszczeniu proces ten wygląda następująco:

RVpPkeoU3wreu1
Źródło: Contentplus.pl Sp. z o.o., licencja: CC BY-SA 3.0.

Tomek otrzymał takie właśnie „zamówienie”. Okazało się, że kilku członków koła pszczelarskiego, którym tata przedstawił swój arkusz do rejestrowania sprzedaży miodu, jest bardzo zainteresowanych podobnym rozwiązaniem. Nie były im jednak potrzebne dane o klientach - chcieli tylko rejestrować informacje o tym, kiedy nastąpił zakup, jakiego rodzaju był to miód oraz w jakiej ilości i cenie, a dodatkowo mieć możliwość drukowania okresowych raportów ze sprzedaży. Tomek został zatem poproszony o przygotowanie takiego arkusza. Ponieważ wymagania zostały jasno określone, a kształt bazy miał być niemal identyczny z tabelą utworzoną w już istniejącym arkuszu, można było przejść od razu do fazy implementacji.

Implementacja bazy danych

W celu realizacji zadania, biorąc pod uwagę sposób wykorzystania bazy (jednostanowiskowa instalacja - bez potrzeby jednoczesnego dostępu przez więcej niż jednego użytkownika), Tomek wybrał narzędzie Microsoft Access. System ten posiada wbudowane funkcje ułatwiające generowanie raportów i zestawień spełniających określone kryteria (zamiast MS Access można posłużyć się również darmowym programem do tworzenia baz danych, który jest dostępny w pakiecie LibreOffice).

Ważne!

Gdyby do jednej bazy danych potrzebny był dostęp dla więcej niż jednego użytkownika jednocześnie, należałoby do jej stworzenia wykorzystać narzędzie umożliwiające pracę w trybie klient‑serwer, na przykład MySQL czy Firebird.

Prześledźmy więc krok po kroku proces implementacji takiej bazy danych, jaką zgodnie z zamówieniem miał stworzyć Tomek.

Implementacja w Microsoft Access

Po uruchomieniu MS Access widzimy następujący ekran:

R1dOh3wzU4QJ4
Źródło: Contentplus.pl Sp. z o.o., licencja: CC BY-SA 3.0.

Chcąc utworzyć nową bazę, w sekcji „Nowy” wskazujemy opcję „Pusta baza danych”, ustalamy nazwę pliku bazy i zatwierdzamy przyciskiem „Utwórz”:

RvoB4srjZJBm1
Źródło: Contentplus.pl Sp. z o.o., licencja: CC BY-SA 3.0.

Otworzy nam się okno z automatycznie wygenerowaną tabelą w utworzonej bazie. Tabelę możemy dostosować do własnych potrzeb, wybierając opcję „Widok projektu” na karcie „Narzędzia główne” lub „PolapolePola”:

RIBOTyERN2W3t
Źródło: Contentplus.pl Sp. z o.o., licencja: CC BY-SA 3.0.

Przy okazji ustalamy nazwę tabeli:

R170Ax85hvO1Q
Źródło: Contentplus.pl Sp. z o.o., licencja: CC BY-SA 3.0.

W widoku projektu tabeli „transakcje” zauważymy automatycznie wstawione pole o nazwie „Identyfikator”, któremu został przypisany typ danych „Autonumerowanie”. Pole to pozostawiamy - będzie ono pełniło rolę unikalnego identyfikatora pozwalającego mechanizmom systemu bazodanowego na sprawne zarządzanie bazą.

R1bD4s7kyAHxv
Źródło: Contentplus.pl Sp. z o.o., licencja: CC BY-SA 3.0.

W kolejnym kroku uzupełniamy tabelę o niezbędne pola, takie jak: „Data”, „RodzajMiodu”, „Pojemnosc”, „LiczbaSztuk”, „CenaZaSztuke”. Dla każdego pola wybieramy najbardziej odpowiedni typ danych:

RUDzx0hyUpbZG
Źródło: Contentplus.pl Sp. z o.o., licencja: CC BY-SA 3.0.

Oto dostępne typy danych:

R18CHBw7Ddzzb
Źródło: Contentplus.pl Sp. z o.o., licencja: CC BY-SA 3.0.

W razie potrzeby możemy doprecyzować sposób prezentowania danych, na przykład „Data krótka” (karta „Ogólne” po wyborze typu danych):

R1TWHxJemFvnt
Źródło: Contentplus.pl Sp. z o.o., licencja: CC BY-SA 3.0.

Po zaprojektowaniu tabeli przechodzimy do arkusza danych:

R1PzWTPjtpeB1
Źródło: Contentplus.pl Sp. z o.o., licencja: CC BY-SA 3.0.

Zapisujemy zmiany wprowadzone do tabeli:

RRfb8aaAJbPLh
Źródło: Contentplus.pl Sp. z o.o., licencja: CC BY-SA 3.0.

W widoku arkusza danych tabeli możemy teraz wprowadzić kilka rekordówrekordrekordów (wierszy danych):

RaTNRP4KBDaQZ
Źródło: Contentplus.pl Sp. z o.o., licencja: CC BY-SA 3.0.

W kolejnym kroku moglibyśmy zaprojektować szczegółowe raporty, które operator bazy mógłby generować, gdyby na przykład potrzebował zestawienia miesięcznej sprzedaży.

Implementacja w LibreOffice Base

Bazę danych możemy zaprojektować również w aplikacji LibreOffice Base.

Film przedstawia kolejne etapy tworzenia bazy:

R1Hxr0L2FXBM7
Film nawiązujący do tworzenia bazy danych w LibreOffice.

W pierwszym kroku kreatora bazy danych LibreOffice zaznaczamy opcję „Utwórz nową bazę danych” i przechodzimy dalej.

W kroku drugim decydujemy, czy baza ma być rejestrowana, dzięki czemu uzyskamy możliwość dostępu do bazy z poziomu innych aplikacji pakietu LibreOffice. Jeśli nam na tym nie zależy, możemy nie rejestrować bazy. Zaznaczamy opcję „Otwórz bazę danych do edycji” i klikamy „Zakończ”.

Wskazujemy miejsce zapisu pliku bazy oraz nadajemy nazwę z rozszerzeniem „.odb”.

Przy zaznaczonej z lewej strony opcji „Tabele” wybieramy pośrodku na liście Zadań „Utwórz projekt tabeli…”. W nowym oknie tworzymy tabelę bazy, określając w pierwszej kolumnie nazwy pól, w drugiej -  typy danych oraz nieco poniżej – właściwości pól.

Pierwsze pole o nazwie „Identyfikator” będzie zawierało generowane automatycznie kolejne liczby całkowite począwszy od zera. Jako typ danych dla tego pola wskazujemy Integer, zaś z listy przy właściwości „Wartość automatyczna” wybieramy „Tak”.

Kolejne pola projektujemy zgodnie z następującym opisem:

Transakcje

Nazwa pola

Typ pola

Właściwości pola

Data

Data

Wpis wymagany: Tak

RodzajMiodu

Tekst

Wpis wymagany: Tak
Długość: 30

Pojemnosc

Dziesiętny

Wpis wymagany: Tak
Długość: 2
Miejsca dziesiętne: 1

LiczbaSztuk

Small Integer

Wpis wymagany: Tak

CenaZaSztuke

Dziesiętny

Wpis wymagany: Tak
Długość: 5
Miejsca dziesiętne: 2

Słownik

SZBD
SZBD

System Zarządzania Bazą Danych - narzędzie/aplikacja do tworzenia bazy danych (np. MySQL, PostgreSQL, Firebird, Oracle, Microsoft Access).

tabela
tabela

podstawowa struktura logiczna relacyjnej bazy danych definiowana jako zestaw pól (kolumn) opisujących  właściwości obiektów, które ma przechowywać

pole
pole

jednostkowa cecha opisująca element (obiekt) tabeli (inaczej: kolumna tabeli), np. pole „Nazwisko”  może być jedną z kolumn tabeli „Uczeń”

rekord
rekord

pojedynczy kompletny zestaw danych dotyczący konkretnego elementu (obiektu) w tabeli (inaczej:  wiersz tabeli lub krotka)