Ćwiczenia, wprowadzające w świat tworzenia relacyjnego modelu reprezentującego rzeczywistość, umożliwiają naukę tworzenia kwerend wybierających informacje oraz zapytań parametrycznych – przeprowadzimy je na przykładzie bazy danych dziennika szkolnego.

Pliki zawierające rekordy pochodzą z zadania maturalnego z informatyki rozszerzonej.

Zadanie zostało opracowane przez Centralną Komisję Egzaminacyjną i pojawiło się na egzaminie maturalnym z informatyki, w maju 2010 r. (poziom rozszerzony, cz. II). Cały arkusz można znaleźć na stronie internetowej CKE.

W archiwum znajdują się trzy pliki tekstowe:

  • uczniowie.txt – z atrybutami opisującymi uczniów: IDucznia, nazwisko, imie, ulica, dom, IDklasy,

  • oceny.txt – z danymi na temat uzyskanych ocen: IDucznia, Ocena, Data, IDprzedmiotu,

  • przedmioty.txt – z danymi o realizowanych w szkole przedmiotach: IDprzedmiotu, NazwaPrzedmiotu, Nazwisko_naucz, Imie_naucz.

Dane zgromadzone w plikach będą potrzebne do realizacji tego e‑materiału.

RJUy0Dtega3gS

Przycisk do pobrania pliku ZIP z treścią zadania.

Plik ZIP o rozmiarze 72.17 KB w języku polskim

Import danych z plików tekstowych

Przed dokonaniem analizy modelu relacyjnego na przykładzie udostępnionej bazy dziennika szkolnego należy przenieść dane z plików tekstowych do tabel programu MS Access. Proces ten omówiono szczegółowo w filmie:

RbfcqSsZoxqVe
Film nawiązujący do treści materiału: Import danych z pliku tekstowego.

Oprócz przeniesienia rekordów do tabel dokonaliśmy także oznaczenia logicznych powiązań pomiędzy atrybutami obiektów. Ostatecznie struktura bazy danych prezentuje się następująco w widoku relacji:

Rn7QKdhmWdUgE
Źródło: Contentplus.pl Sp. z o.o., licencja: CC BY-SA 3.0.
Ćwiczenie 1

Przedstawmy także import danych z plików tekstowych oraz sposób definiowania relacji w programie LibreOffice Base – w przypadku użytkowania tego narzędzia, kliknij tutaj:

Zanim przygotujemy naszą pierwszą kwerendę wybierającą, przyjrzyjmy się najpierw temu modelowi danych – na ile skutecznie i dokładnie odwzorowuje on codzienne życie szkolnej społeczności.

Analiza istniejącego modelu danych

Na początek przypomnijmy definicję modelu danych – jest to integralny zbiór zasad opisujących stan reprezentowanych obiektów, ich zachowania oraz istniejące powiązania logiczne pomiędzy fragmentami symulowanego świata.

Proces tworzenia modelu reprezentującego konkretną rzeczywistość co do zasady przebiega w trzech teoretycznych etapach:

  • Projektowanie konceptualne – polega na wyodrębnieniu ze świata autonomicznych obiektów (instancji) posiadających własny zestaw atrybutów, który nazywamy klasą lub encją. W przypadku dziennika szkolnego obiektami są np. uczniowie, zaś atrybuty każdego takiego obiektu to m.in.: imię, nazwisko, adres zamieszkania.

Ciekawostka

Zwróćmy uwagę, że obiekty wyróżnione z opisywanej rzeczywistości mogą być zarówno rzeczywiste, czyli posiadające fizyczną reprezentację w świecie (obiekt reprezentujący ucznia szkoły), jak i abstrakcyjne (ocena w dzienniku, która jest z natury jedynie matematyczną informacją).

  • Projektowanie logiczne – do obiektów dających się wyróżnić w symulowanym świecie, które opisaliśmy w projektowaniu konceptualnym, dodajemy logiczne powiązania (relacje) występujące pomiędzy atrybutami. Dokonujemy tego przy użyciu specjalnych atrybutów, które nazywamy kluczami. W analizowanym tu modelu dziennika szkolnego przykładem logicznej relacji jest związek pomiędzy atrybutem obiektu uczeń o nazwie IDucznia (klucz podstawowyKlucz podstawowyklucz podstawowy) oraz atrybutem obiektu ocena o tej samej nazwie (klucz obcyKlucz obcyklucz obcy).

  • Projektowanie fizyczne – poprzednie dwa etapy pracy nad modelem nie uwzględniają decyzji technicznych związanych z implementacją modelu w konkretnym DBMSDatabase Management SystemDBMS. A zatem trzeci, finałowy etap budowy symulacji polega na określeniu przez projektanta nazw tabel i kolumn, przypisaniu atrybutom obiektów właściwych typów danych oraz wszelkich działaniach konfiguracyjnych, specyficznych dla wybranego systemu bazodanowego.

Wprawne i skuteczne modelowanie rzeczywistości w systemach bazodanowych to trudne zadanie, wymagające praktycznego doświadczenia. Dlatego też naukę modelowania baz danych w początkowym etapie najlepiej rozpocząć od analizy już istniejących przykładowych struktur, zamiast od syntezy w pełni kompletnej symulacji. Przyjrzyjmy się zatem udostępnionemu w zadaniu modelowi dziennika szkolnego:

RLUMrHTOUh7aW
Film nawiązujący do treści materiału: Analiza struktury modelu relacyjnego.

Reasumując, w projektowaniu konceptualno‑logicznym dokonaliśmy analizy rzeczywistości szkolnej pod kątem istnienia:

  • dających się wyróżnić obiektów (tworząc rekordy, czyli wiersze w tabelach),

  • niezbędnych atrybutów tych obiektów (zestaw takich cech to klasa lub encja),

  • występujących powiązań logicznych (relacji) pomiędzy atrybutami obiektów (stosując klucze podstawowe oraz klucze obce).

Wspomniane działania prowadzą jednak zawsze do ostatniego etapu pracy, który nazywamy projektowaniem logicznym – jest to ogół działań specyficznych dla używanego przez projektanta DBMSDatabase Management SystemDBMS.

W przypadku MS Access należało dokonać operacji importu danych ze szczególną dbałością o poprawne określenie typów danych dla kolumn – tak, aby symulacja mogła wiernie reprezentować opisywaną rzeczywistość.

Przeprowadzona przez nas analiza ujawniła także istniejące w modelu tzw. anomalie – czyli okoliczności, w których może dojść do utraty spójności (integralności) danych. W takim wypadku przechowywane informacje nie będą już zgodne ze stanem faktycznym występującym w symulowanym świecie.

Przykładem anomalii jest sytuacja wystąpienia redundancji w tabeli Uczniowie – informacja o nazwie klasy (atrybut IDklasy) powtarza się w wielu wierszach. W związku z tym dokonanie modyfikacji wartości tego atrybutu okazało się działaniem obarczonym ryzykiem wystąpienia anomalii.

W praktyce anomalie najłatwiej wykryć w analizie modelu, dokonując operacji: wstawiania, modyfikowania oraz usuwania danych. Natomiast ogół działań projektowych, prowadzących do zapobiegania utracie integralności danych, to tzw. normalizacja modelu.

Kwerendy wybierające i parametryczne

Pora na utworzenie pierwszych kwerend, czyli napisanych w języku SQLSQLjęzyku SQL zapytań skierowanych do bazy danych, które zwracają wartości atrybutów w rekordach spełniających zadane kryteria.

Oczywiście kwerendy w bazach danych nie służą jedynie do wyszukiwania informacji, lecz także wstawiają, modyfikują oraz usuwają dane. Ponadto, mogą mieć wpływ na elementy struktury modelu (konfiguracja tabel, kolumn, typów danych, kluczy podstawowych i obcych).

Swoją przygodę z bazami danych zdecydowana większość osób rozpoczyna jednak od poznania dwóch klasycznych rodzajów zapytań:

  • kwerendy wybierające – zwracają informacje spełniające określone kryteria zdefiniowane w treści zapytania,

  • kwerendy parametryczne – działają identycznie jak wybierające, z tą jednak różnicą, że poszukiwaną wartość kryterium można wprowadzić dopiero po uruchomieniu zapytania.

Ciekawostka

Słowo parametr oznacza wprowadzoną przez nas wartość argumentu – tak jak w funkcjach w matematyce w zapisie: f(x) parametrem funkcji jest x. A zatem zwracana wartość funkcji zależy wprost od podanego parametru, tak samo jak wyniki zwrócone przez kwerendę parametryczną zależą od podanego kryterium.

Słownik

Database Management System
Database Management System

system zarządzania bazą danych, czyli oprogramowanie umożliwiające tworzenie, modyfikację i zarządzanie bazami danych; przykładowe współczesne systemy DBMS to m.in.: MySQL, MariaDB, PostgreSQL, FireBird, MS SQL, MS Access, LibreOffice Base

klucz obcy
klucz obcy

(ang. foreign key) pole tabeli, które tworzy relację (związek) z inną tabelą, czyli przechowuje wartości klucza głównego z innej tabeli; typ danych klucza obcego musi być taki sam jak typ danych klucza głównego

klucz podstawowy
klucz podstawowy

zwany też kluczem głównym (ang. primary key) – jedno lub więcej pól (atrybutów), których wartość jednoznacznie identyfikuje każdy rekord w tabeli; taka cecha klucza nazywana jest unikatowością (unikalnością); klucz podstawowy służy do powiązania rekordów jednej tabeli z rekordami w innej tabeli

SQL
SQL

(od ang. Structured Query Language) – strukturalny język zapytań, który stanowi standard komunikacji ze współczesnymi, relacyjnymi bazami danych