
Praca magisterska z informatyki stosowanej rządzi się innymi prawami niż prace humanistyczne albo nawet teoretyczna informatyka. Tu nie wystarczy solidny przegląd literatury i trafne wnioski. Twój promotor będzie chciał zobaczyć działający system, realne wyniki pomiarów i możliwość odtworzenia eksperymentu przez kogoś innego. Jeśli tego nie ma, praca nie przejdzie obrony bez komentarzy.
Ten przewodnik napisałem z myślą o kimś, kto siedzi na czwartym albo piątym roku, wybrał temat związany z bazami danych lub szeroko rozumianą informatyką stosowaną i zastanawia się, od czego zacząć i jak to wszystko poukładać. Przejdziemy przez wybór tematu, metodologię, strukturę rozdziałów i najczęstsze błędy, które widzę w pracach tego typu.
Specyfika kierunku: dlaczego to nie jest zwykła praca naukowa
Informatyka stosowana, a w szczególności systemy baz danych, to obszar, gdzie granica między pracą naukową a projektem inżynierskim jest celowo rozmyta. I to jest zaleta, pod warunkiem, że wiesz, jak z niej korzystać.
Kod jest częścią pracy, nie dodatkiem
W humanistyce załączniki to tabele i wykresy. U ciebie repozytorium z kodem to materiał badawczy. Promotorzy coraz częściej oczekują linku do GitHuba albo GitLaba, a recenzenci sprawdzają, czy implementacja faktycznie odpowiada temu, co opisujesz w tekście.
To oznacza kilka rzeczy praktycznie:
- Kod musi być czytelny i opatrzony komentarzami. Nie piszesz go tylko dla siebie
- Schema bazy danych powinna trafić do pracy (przynajmniej diagram ERD i wybrane DDL).
- Wersjonuj od pierwszego dnia. Commit z datą sprzed obrony to dowód, że system powstał w ramach pisania pracy, nie tydzień przed
Teoria musi uzasadniać decyzje projektowe
Przegląd literatury nie jest ozdobnikiem. Ma odpowiadać na pytanie: dlaczego wybrałem takie podejście, a nie inne? Jeśli piszesz o optymalizacji zapytań, musisz pokazać, co już wiadomo o indeksach, query plannerach i partycjonowaniu, żeby czytelnik rozumiał, skąd wzięły się twoje decyzje projektowe.
Odtwarzalność wyników
To jest punkt, który odróżnia dobry rozdział z testami od przeciętnego. Opisz środowisko: procesor, RAM, wersja silnika bazy, parametry konfiguracyjne. Podaj seed danych testowych. Napisz, ile razy powtórzono każdy test i jak obliczono wartość końcową (mediana? średnia z odrzuceniem outlierów?). Bez tego twoje wyniki są nieweryfikowalne.
Wybór tematu: konkret lepszy niż ambicja
Najczęstszy błąd na tym etapie to temat zbyt szeroki. „Systemy baz danych w chmurze” to materiał na pięć doktoratów. „Porównanie wydajności PostgreSQL i MongoDB przy zapytaniach analitycznych na zbiorze danych 10 GB w konfiguracji lokalnej i kontenerowej” to już coś, nad czym możesz pracować przez rok i uzyskać konkretny wynik.
Kilka tematów, które dobrze sprawdzają się jako punkt wyjścia:
Porównania wydajnościowe SQL vs NoSQL. Wciąż aktualny obszar, bo produkcyjne przypadki użycia są zróżnicowane. Możesz ograniczyć do konkretnego workloadu (np. dane IoT, logi aplikacyjne, dane e-commerce) i konkretnych silników (PostgreSQL, MySQL, MongoDB, Cassandra, Redis). Kluczem jest precyzyjna definicja obciążenia testowego.
Projektowanie hurtowni danych (data warehouse). Modelowanie wymiarowe, schemat gwiazdy vs schemat płatka śniegu, porównanie wydajności w narzędziach takich jak dbt + BigQuery albo Redshift. Temat ma sens zarówno jako praca badawcza (co jest szybsze i dlaczego), jak i czysto projektowa (zaprojektuj hurtownię dla konkretnego działu firmy).
Optymalizacja zapytań. Możesz wziąć konkretny silnik (np. PostgreSQL), zdefiniować zestaw zapytań analitycznych i pokazać, jakie techniki (indeksy B-tree, BRIN, GIN, partial indexes, partycjonowanie tabel, materializowane widoki) i jak bardzo skracają czas wykonania. To lubią recenzenci, bo jest mierzalne.
Rozproszone bazy danych i spójność. Temat CAP theorem, eventual consistency, replikacja master-slave vs multi-master. Możesz zaimplementować prosty scenariusz z CockroachDB lub Cassandra i zmierzyć, jak zachowują się przy symulowanej awarii węzła.
Bazy grafowe do analizy sieci społecznościowych. Tutaj świetnie sprawdza się Neo4j. Weź publiczny zbiór danych (np. sieć cytowań arXiv, dane z konferencji) i pokaż, że zapytania grafowe (znajdowanie najkrótszej ścieżki, wykrywanie społeczności) są szybsze albo wygodniejsze niż podejście relacyjne z wielokrotnymi joinami.
Przy wyborze tematu zawsze zadaj sobie jedno pytanie: co zmierzę i czym to porównam? Jeśli nie potrafisz odpowiedzieć w dwóch zdaniach, temat jest za mglisty.
Metodologia: jak to zbadać porządnie
Przegląd literatury
Nie pisz przeglądu literatury na zasadzie „autorzy X, Y i Z piszą o bazach danych”. Zrób systematyczny przegląd: zdefiniuj pytania badawcze, określ zakres dat (np. 2015-2025), wybierz źródła (IEEE Xplore, ACM Digital Library, Google Scholar, dokumentacja oficjalna silników) i opisz, dlaczego odrzuciłeś pewne prace.
Minimum 20-25 pozycji bibliograficznych to absolutne minimum dla pracy magisterskiej z systemów baz danych. W praktyce przy solidnych porównaniach wydajnościowych zbiera się 40-60 źródeł bez problemu.
Projektowanie systemu
Zanim zaczniesz kodować, opisz architekturę. Diagram komponentów, model danych (ERD lub schemat dokumentów dla NoSQL), uzasadnienie wyboru technologii. To nie jest biurokratyczny wymóg, to zmusza do przemyślenia decyzji projektowych zanim wpadniesz w ślepy zaułek po trzech miesiącach implementacji.
Implementacja
Opisz iteracyjnie, co zbudowałeś i dlaczego tak. Nie tłumacz każdej linii kodu, ale wyjaśnij nieoczywiste decyzje: dlaczego użyłeś konkretnego indexing strategy, dlaczego wybrałeś taki schemat partycjonowania, jak obsługujesz transakcje.
Testy wydajnościowe i benchmarking
Tu jest serce pracy empirycznej. Dwa standardowe frameworki do benchmarkingu baz danych:
- TPC-C – symuluje środowisko OLTP (przetwarzanie transakcji on-line). Mierzy transakcje na minutę (tpmC). Dobry do porównania systemów relacyjnych przy typowych obciążeniach operacyjnych
- YCSB (Yahoo! Cloud Serving Benchmark) – bardziej elastyczny, obsługuje NoSQL i relacyjne. Pozwala definiować własne proporcje operacji (read-heavy, write-heavy, mixed). Lepszy do porównania heterogenicznych systemów
Niezależnie od narzędzia, opisz:
- Sprzęt testowy (CPU, RAM, dysk, sieć)
- Wersje oprogramowania (silnik bazy, OS, sterowniki)
- Rozmiar i charakterystykę danych testowych
- Liczbę powtórzeń każdego testu i metodę agregacji wyników
- Czas rozgrzewki systemu przed pomiarem (warm-up)
Wyniki przedstawiaj w tabelach i na wykresach. Dla każdego porównania policz, czy różnica jest statystycznie istotna (choćby prosty test t-Studenta przy normalnym rozkładzie wyników).
Wyślij fragment tekstu, bezpłatną wycenę otrzymasz w 24 h. Poprawki bez limitu w cenie usługi.
Struktura pracy: co gdzie trafia
Typowa praca z systemów baz danych i informatyki stosowanej ma od 80 do 120 stron. Poniżej propozycja podziału rozdziałów dla pracy empirycznej (implementacja + pomiary):
| Rozdział | Typowa zawartość | Orientacyjna długość |
|---|---|---|
| 1. Wstęp | Cel pracy, pytania badawcze, zakres, struktura | 4-6 stron |
| 2. Przegląd literatury | Stan wiedzy, porównanie istniejących rozwiązań | 20-30 stron |
| 3. Projekt systemu | Architektura, model danych, wybór technologii | 15-20 stron |
| 4. Implementacja | Opis kluczowych modułów, nieoczywiste decyzje | 15-20 stron |
| 5. Eksperymenty i wyniki | Metodyka testów, wyniki, analiza | 20-25 stron |
| 6. Dyskusja | Interpretacja wyników, ograniczenia, kierunki dalszych prac | 8-12 stron |
| 7. Wnioski | Odpowiedź na pytania badawcze, podsumowanie | 3-5 stron |
Kilka uwag do konkretnych rozdziałów:
Wstęp. Napisz go jako ostatni, albo przynajmniej przepisz po skończeniu reszty. Cel pracy musi odpowiadać temu, co faktycznie zrobiłeś, a nie temu, co planowałeś rok temu.
Przegląd literatury. Nie streszczaj każdego artykułu osobno. Pogrupuj według tematów (np. „indeksowanie w bazach kolumnowych”, „replikacja a spójność”) i pokaż, jak poszczególne prace ze sobą korespondują albo się sprzeczają.
Projekt systemu. Daj tu pełny schemat bazy danych. Recenzenci sprawdzają, czy model danych ma sens i czy nie ma oczywistych błędów normalizacji (albo celowej denormalizacji z uzasadnieniem).
Eksperymenty i wyniki. Nie ukrywaj wyników, które nie wyszły zgodnie z hipotezą. Jeśli NoSQL okazał się wolniejszy przy twoim workloadzie niż SQL, napisz to i wyjaśnij dlaczego. To jest nauka, nie reklama technologii.
Dyskusja. Tu pokaż, że rozumiesz ograniczenia swojej pracy: „wyniki dotyczą środowiska jednoserwerowego, nie można ich bezpośrednio przenosić na wdrożenia klastrowe”.
Najczęstsze błędy w pracach z systemów baz danych
Zbudowałeś system, ale go nie zmierzyłeś
Zdarza się, że student poświęca 9 miesięcy na implementację pięknej aplikacji z bazą danych i w rozdziale „wyniki” pisze trzy strony ogólnych opisów bez ani jednego wykresu i pomiaru czasu. To nie jest praca badawcza, to opis projektu. Zaplanuj eksperymenty na początku, nie na końcu.
Brak reprodukowalności
„Wyniki uzyskano na komputerze testowym” to za mało. Jeśli ktoś chciałby powtórzyć twoje eksperymenty, ile by to zajęło? Godzinę? Tydzień? Nigdy? Dodaj instrukcję odtworzenia środowiska (Docker Compose to tu złoty standard) i dostarcz skrypty generowania danych testowych.
Reinventing the wheel bez porównania z state of the art
Napisałeś własny mechanizm cache’owania zapytań albo własny sharding algorithm? Świetnie. Ale porównaj go z istniejącymi rozwiązaniami. „Moje rozwiązanie jest o 15% wolniejsze od Redis, ale zużywa 60% mniej pamięci przy tym workloadzie” to ciekawy wynik. „Moje rozwiązanie działa” to nie wynik naukowy.
Za dużo teorii, za mało eksperymentu
Drugi koniec tego samego błędu: 50 stron przeglądu literatury, 5 stron wyników. Proporcje powinny być odwrotne. Teoria istnieje po to, żeby uzasadnić metodologię, nie żeby wypełnić objętość.
Nieaktualne wersje silników
Bazy danych rozwijają się szybko. PostgreSQL 16 ma inne możliwości optymalizacyjne niż PostgreSQL 12. Jeśli piszesz o konkretnych feature’ach (np. parallel query, JIT compilation), upewnij się, że piszesz o wersji, którą faktycznie używasz, i że ta wersja jest odpowiednio aktualna.
Kilka słów o języku i formie
Praca magisterska z informatyki stosowanej jest dokumentem technicznym, ale nie wewnętrzną dokumentacją projektu. Pisz pełnymi zdaniami, nie punktami w stylu „zaimplementowano moduł X”. Recenzenci oczekują narracji, która prowadzi czytelnika przez twoje myślenie.
Tabele z wynikami formatuj czytelnie: nagłówki kolumn muszą zawierać jednostki (ms, MB/s, tps), liczby powinny być wyrównane do prawej. Wykresy podpisuj dokładnie, oś Y zawsze z jednostką.
Wzory matematyczne (np. definicja throughput, latencja percentylowa p99) pisz w LaTeX, nawet jeśli praca jest w Wordzie. W Wordzie jest edytor równań, który generuje poprawne symbole.
Jeśli chodzi o cytowania, trzymaj się jednego stylu przez całą pracę. W informatyce najczęściej spotykane są styl IEEE (numerowane) lub APA (autor-rok). Sprawdź, czego wymaga twój promotor lub regulamin wydziału. Szczególną uwagę poświęć cytowaniu dokumentacji technicznej i repozytoriów kodu: podawaj wersję dokumentacji, datę dostępu i pełny URL. Strony projektów open source zmieniają się, więc bez daty dostępu cytat traci wartość weryfikacyjną.
FAQ
Jak długa powinna być praca magisterska z informatyki stosowanej?
Uczelnie różnie to regulują, ale typowo 80-120 stron tekstu (bez załączników z kodem). Ważniejsza od objętości jest kompletność: muszą być wszystkie wymagane rozdziały, wyniki muszą być mierzalne i opisane metodologicznie. Prace poniżej 70 stron są zazwyczaj cofane do uzupełnienia, prace powyżej 150 stron to często znak, że student nie oddzielił pracy naukowej od dokumentacji technicznej.
Czy muszę korzystać z benchmarków TPC-C lub YCSB, czy mogę zaprojektować własne testy?
Możesz zaprojektować własne testy, ale musisz to uzasadnić. Standardowe benchmarki mają tę zaletę, że są dobrze opisane w literaturze i pozwalają porównać twoje wyniki z wynikami innych badań. Własne testy są lepsze, gdy twój workload jest specyficzny i nie pasuje do żadnego standardu. W praktyce często łączy się oba podejścia: YCSB do ogólnego porównania, własne scenariusze do testów domenowych.
Mój promotor mówi, że praca jest za bardzo „inżynierska”. Co poprawić?
To znaczy, że za mało analizujesz wyniki w kontekście literatury. Nie wystarczy pokazać, że A jest szybsze od B. Trzeba wyjaśnić, dlaczego tak jest (nawiązując do teorii) i jak twój wynik ma się do wyników opublikowanych przez innych. Dodaj do dyskusji akapit „porównanie z literaturą” przy każdym ważnym rezultacie.
Jak radzić sobie z sytuacją, gdy wyniki nie potwierdzają hipotezy?
Napisz o tym wprost w rozdziale wyników i dyskusji. Niepotwierdzenie hipotezy to wynik naukowy, nie porażka. Wyjaśnij, co mogło wpłynąć na rozbieżność: inne środowisko, inny rozmiar danych, inna charakterystyka workloadu. Recenzenci znacznie wyżej oceniają rzetelność niż „wszystko wyszło zgodnie z planem”.
Czy warto publikować pracę magisterską lub prezentować ją na konferencji?
Jeśli wyniki są oryginalne i metodologia solidna, jak najbardziej. Polskie konferencje studenckie (np. sekcje studenckie przy PTI) przyjmują prace z obszaru systemów baz danych. Zagraniczne warsztopy przy IEEE lub ACM (np. student research competitions) też. Pomaga to w CV i pokazuje, że praca ma wartość poza uczelnią. Rozmowę o tym warto zacząć z promotorem zanim skończysz pisanie, żeby ewentualnie ukierunkować pracę pod wymagania konkretnej konferencji.


