KWALIFIKACJA INF3 - STYCZEŃ 2018

PYTANIE NR 24.
Właściwym zestawem kroków według kolejności, które należy wykonać w celu nawiązania współpracy między aplikacją internetową po stronie serwera a bazą SQL, jest
A.
B.
C.
D.
Wyjaśnienie poprawnej odpowiedzi:
Poprawna kolejność zaczyna się od ustanowienia połączenia z serwerem bazy danych, bo dopiero wtedy aplikacja ma dostęp do zasobu. Następnie wybiera się właściwą bazę/schemat, wykonuje zapytanie i wykorzystuje wynik w generowaniu strony WWW. Na końcu należy zamknąć połączenie, aby zwolnić zasoby serwera.

Pełne wyjaśnienie:

W typowej aplikacji internetowej po stronie serwera współpraca z bazą danych ma logiczną kolejność wynikającą z zależności technicznych między krokami. Najpierw trzeba nawiązać połączenie z serwerem baz danych (np. z użyciem odpowiedniego sterownika). Bez aktywnego połączenia aplikacja nie ma "kanału" komunikacji, więc nie może ani wybrać bazy, ani wysłać zapytania.

Kolejny krok to wybór bazy (lub schematu/kontekstu pracy). W wielu środowiskach jest to jawna operacja, a w innych bywa realizowana przez wskazanie bazy w parametrach połączenia. Sens jest ten sam: zapytania muszą być kierowane do właściwego miejsca.

Dopiero potem wykonuje się zapytanie do bazy (np. SELECT), odbiera wynik i wyświetla dane na stronie WWW poprzez wygenerowanie odpowiedzi HTTP (HTML/JSON). Na końcu następuje zamknięcie połączenia (lub zwolnienie uchwytu/zasobu), co ogranicza zużycie pamięci i liczbę jednoczesnych połączeń.

Dlaczego pozostałe sekwencje są błędne?

  • Odpowiedź z "wyborem bazy danych" przed połączeniem jest nielogiczna: nie da się wybrać bazy na serwerze, z którym nie ma się zestawionego połączenia.
  • Odpowiedź, w której zapytanie pojawia się przed połączeniem, odwraca zależność: zapytanie jest komunikatem wysyłanym po ustanowieniu kanału komunikacji.
  • Odpowiedź zaczynająca od zapytania i pomijająca nawiązanie połączenia oraz wybór bazy to przykład "skrótu procedury" – w praktyce taka sekwencja nie zadziała w aplikacji serwerowej.

Wskazówka egzaminacyjna: sprawdź, czy każdy krok ma spełnione warunki wstępne. Jeśli coś wymaga dostępu do serwera, to najpierw musi istnieć połączenie.

Dodatkowe pytania

Dodatkowe pytania (FAQ):
Najczęściej jest to: nawiązanie połączenia z serwerem bazy, wskazanie bazy/schematu, wykonanie zapytania SQL, przetworzenie wyniku w aplikacji (np. HTML/JSON) oraz zamknięcie połączenia. Kolejność wynika z tego, że zapytanie można wysłać dopiero po zestawieniu połączenia.
Zapytanie jest komunikatem wysyłanym do serwera bazy danych. Jeśli aplikacja nie zestawi połączenia (brak sesji/uchwytu), nie ma kanału transmisji ani uwierzytelnienia, więc serwer nie odbierze polecenia. W praktyce kończy się to błędem sterownika lub wyjątkiem.
To ustawienie kontekstu, w którym będą wykonywane zapytania (konkretna baza lub schemat). Czasem robi się to osobną komendą, a czasem przez parametr w połączeniu. Sens egzaminacyjny jest stały: zapytania muszą trafiać do właściwej bazy, a nie "domyślnej".
W wielu technologiach w parametrach połączenia podaje się nazwę bazy/schematu, więc "wybór bazy" dzieje się automatycznie po udanym połączeniu. Na egzaminie nadal obowiązuje logika kroków: najpierw dostęp do serwera (połączenie), potem praca w wybranej bazie i wykonywanie zapytań.
Najczęstsze skutki to wycieki zasobów (zajęte uchwyty), przekroczenie limitu jednoczesnych połączeń na serwerze bazy, spadek wydajności oraz problemy przy dużym ruchu. Nawet gdy środowisko sprząta zasoby automatycznie, dobra praktyka to jawne zwalnianie połączenia.
W aplikacjach internetowych wynik zapytania zwykle służy do wygenerowania odpowiedzi dla użytkownika, ale nie zawsze jest to HTML. Może to być JSON dla API, zapis do pliku logów albo obliczenia po stronie serwera. W pytaniu "wyświetlane na stronie WWW" oznacza praktyczne użycie wyniku w odpowiedzi.
Zwykle potrzebujesz: adresu hosta serwera, portu, nazwy bazy/schematu, nazwy użytkownika i hasła oraz ewentualnie parametrów szyfrowania. W kontekście INF.3 ważne jest też przechowywanie danych dostępowych poza kodem (np. plik konfiguracyjny) i ograniczanie uprawnień konta.
Bo część operacji ma warunki wstępne: bez połączenia nie wybierzesz bazy i nie wykonasz zapytania, a bez wyniku zapytania nie wygenerujesz poprawnej odpowiedzi dla użytkownika. Dobra kolejność zmniejsza też liczbę błędów i ułatwia obsługę wyjątków (np. osobno dla połączenia i dla zapytania).
Połączenie to ustanowienie sesji komunikacyjnej z serwerem bazy (uwierzytelnienie i kanał wymiany danych). Zapytanie to konkretne polecenie SQL wysłane w ramach tego połączenia (np. pobranie rekordów). Na egzaminie łatwo to pomylić, bo oba kroki "dotyczą bazy", ale są różnymi etapami.
Stosuj regułę zależności: sprawdź, co musi istnieć, aby kolejny krok był możliwy. Połączenie jest warunkiem wyboru bazy i wykonania zapytania, a zamknięcie połączenia jest logicznie na końcu. Jeśli jakaś odpowiedź zaczyna się od zapytania lub pomija połączenie, zwykle jest błędna.
info

Około 59% zdających odpowiada poprawnie na to pytanie. średnie

W praktyce zawodowej kluczowe jest to, że poprawna kolejność zaczyna się od ustanowienia połączenia z serwerem bazy danych, bo dopiero wtedy aplikacja ma dostęp do zasobu.

Źródła:

  • PHP Manual: MySQLi — Quickstart: Connections (procedural and OO), https://www.php.net/manual/en/mysqli.quickstart.connections.php - accessed 2026-02-27
  • MySQL 8.0 Reference Manual: Connecting to the MySQL Server, https://dev.mysql.com/doc/refman/8.0/en/connecting.html - accessed 2026-02-27
  • PostgreSQL Documentation: libpq — Database Connection Control Functions, https://www.postgresql.org/docs/current/libpq-connect.html - accessed 2026-02-27

Materiały:

  • Dokumentacja języka/technologii serwerowej używanej na zajęciach (sekcja: łączenie z DB i wykonywanie zapytań)
  • Podstawy SQL: SELECT, WHERE oraz pojęcie bazy/schematu
  • Materiały o architekturze aplikacji webowej: klient–serwer i warstwa danych

Aktualizacja pytania: 31.03.2026



Aktualizacja pytania: 31.03.2026
📡 Brak połączenia internetowego