Wyniki egzaminu

Informacje o egzaminie:
  • Zawód: Technik programista
  • Kwalifikacja: INF.03 - Tworzenie i administrowanie stronami i aplikacjami internetowymi oraz bazami danych
  • Data rozpoczęcia: 10 maja 2026 15:47
  • Data zakończenia: 10 maja 2026 16:16

Egzamin zdany!

Wynik: 25/40 punktów (62,5%)

Wymagane minimum: 20 punktów (50%)

Nowe
Analiza przebiegu egzaminu- sprawdź jak rozwiązywałeś pytania
Pochwal się swoim wynikiem!
Szczegółowe wyniki:
Pytanie 1

Jaką instrukcję pętli stosuje się do przeprowadzenia określonej liczby operacji na obiekcie lub zmiennej, która nie jest tablicą?

A. for
B. if
C. switch
D. foreach
Instrukcja pętli 'for' jest jednym z najczęściej używanych narzędzi programistycznych, które pozwala na wykonywanie określonej liczby operacji na zmiennej. Kluczową cechą pętli 'for' jest jej zdolność do precyzyjnego zdefiniowania liczby iteracji, co czyni ją idealną do zadań, w których liczba powtórzeń jest znana z góry. Na przykład, jeśli chcemy iterować po liczbach od 1 do 10 i wyświetlić każdą z nich, możemy użyć pętli 'for' w następujący sposób: 'for (int i = 1; i <= 10; i++) { System.out.println(i); }'. Takie podejście pozwala na łatwe zarządzanie zmiennymi oraz kontrolowanie mocy obliczeniowej programu. Pętla 'for' jest również bardzo elastyczna i może być stosowana w różnych kontekstach, takich jak przetwarzanie danych w tablicach czy lista elementów. W kontekście najlepszych praktyk, ważne jest, aby używać pętli 'for' tam, gdzie jest to najbardziej odpowiednie, unikając jej stosowania w sytuacjach, gdy mamy do czynienia z kolekcjami obiektów, które mogą wymagać bardziej zaawansowanych technik iteracyjnych. Zrozumienie zastosowania pętli 'for' jest kluczowe dla każdego programisty, który chce efektywnie zarządzać iteracjami w swoich aplikacjach.

Pytanie 2

Które dane z 8 rekordów wpisanych do tabeli zwierzeta zostaną wyświetlone w wyniku podanego poniżej zapytania SQL?

SELECT imie FROM zwierzeta WHERE rodzaj = 2 AND szczepienie = 2016;

idrodzajimiewlascicielszczepienieopis
11FafikAdam Kowalski2016problemy z uszami
21BrutusAnna Wysocka2016zapalenie krtani
41SabaMonika Nowak2015antybiotyk
51AlmaJan KowalewskiNULLantybiotyk
62FigaroAnna KowalskaNULLproblemy z uszami
72DikaKatarzyna Kowal2016operacja
82FuksJan Nowak2016antybiotyk
A. Figaro, Dika, Fuks.
B. Anna Kowalska, Jan Nowak.
C. Fafik, Brutus, Dika, Fuks.
D. Dika, Fuks.
Gratulacje! Twoja odpowiedź była poprawna. Wybrałeś 'Dika, Fuks.', co jest prawidłowym wynikiem dla podanego zapytania SQL. Zapytanie przeszukuje bazę danych zwierząt z podziałem na pewne kryteria - w tym przypadku są to zwierzęta o rodzaju, który odpowiada 2 oraz które były szczepione w 2016 roku. Wśród wszystkich rekordów w tabeli tylko 'Dika' i 'Fuks' spełniają te kryteria, dlatego tylko one są wyświetlane. To pokazuje, jak potężne i elastyczne mogą być zapytania SQL - możemy przeszukiwać ogromne ilości danych, stosując różne warunki, aby otrzymać dokładnie to, czego szukamy. Zrozumienie i umiejętne wykorzystanie takich zapytań jest kluczowe w pracy z bazami danych. Pamiętaj, że SQL pozwala nie tylko na pobieranie danych, ale również na ich modyfikację, usuwanie oraz dodawanie nowych rekordów do bazy. Spróbuj teraz zastosować swoją wiedzę w praktycznych zadaniach!

Pytanie 3

Co zazwyczaj wchodzi w skład Framework'a?

A. obsługa błędów i domena
B. zarządzanie komunikacją z bazą danych, mechanizm uruchamiania i przetwarzania akcji
C. wbudowany serwer i obsługa formularzy
D. certyfikat http oraz mechanizm przetwarzania i uruchamiania akcji
Frameworki to zestawy narzędzi i bibliotek, które ułatwiają rozwój aplikacji webowych, a ich najważniejsze elementy to zarządzanie komunikacją z bazą danych oraz mechanizm uruchamiania i przetwarzania akcji. Zarządzanie komunikacją z bazą danych odnosi się do sposobu, w jaki aplikacja łączy się z systemem zarządzania bazą danych (DBMS), wykonuje zapytania oraz przetwarza wyniki. Przykładem może być użycie ORM (Object-Relational Mapping), które upraszcza interakcję z bazą, eliminując potrzebę pisania skomplikowanych zapytań SQL. Mechanizm uruchamiania i przetwarzania akcji odnosi się do sposobu, w jaki framework zarządza cyklem życia żądania. Obejmuje to odbieranie żądania od użytkownika, przetwarzanie logiki biznesowej oraz generowanie odpowiedzi. Frameworki takie jak Ruby on Rails czy Django stosują wzorzec MVC (Model-View-Controller), co pozwala na rozdzielenie logiki aplikacji od warstwy prezentacji, co zwiększa czytelność i ułatwia zarządzanie kodem. Aby w pełni zrozumieć te mechanizmy, warto zaznajomić się z dokumentacją odpowiedniego frameworka, co dostarczy informacji na temat najlepszych praktyk i standardów.

Pytanie 4

Kod programu wraz z komentarzami oraz opisem algorytmów i metod stanowi dokumentację

A. techniczną.
B. urzędową.
C. audiowizualną.
D. graficzną.
Poprawnie – mówimy tutaj o dokumentacji technicznej. Kod programu razem z komentarzami w kodzie, opisem algorytmów, struktur danych, interfejsów, sposobu działania poszczególnych modułów czy klas to właśnie klasyczny przykład dokumentacji technicznej. W branży IT przyjmuje się, że dokumentacja techniczna jest skierowana głównie do programistów, administratorów, czasem też architektów systemów, czyli osób, które będą rozwijać, utrzymywać lub integrować dany system. Nie jest to materiał marketingowy ani „urzędowy”, tylko coś, co ma pomóc zrozumieć jak system działa od środka. W praktyce dokumentacja techniczna obejmuje na przykład: komentarze w kodzie źródłowym (zgodne z konwencją danego języka, np. PHPDoc, JSDoc), opisy algorytmów w plikach README, wiki projektowe, diagramy UML, schematy przepływu danych, opisy endpointów API, a nawet instrukcje uruchomienia środowiska developerskiego. Moim zdaniem im lepiej zrobiona taka dokumentacja, tym łatwiej jest później komuś „wejść” w projekt bez zadawania dziesiątek pytań. Dobre praktyki mówią, żeby dokumentacja techniczna była aktualna, wersjonowana razem z kodem (np. w Git), a komentarze w kodzie nie powtarzały tego, co oczywiste, tylko wyjaśniały „dlaczego tak”, a nie „co robi ta linijka”. W projektach webowych dokumentacja techniczna opisuje na przykład, jak działa logika logowania użytkownika, jak są zrobione zapytania do bazy, jakie są ograniczenia wydajnościowe. To wszystko pozwala utrzymać spójność systemu i ułatwia debugowanie oraz rozwój nowych funkcji. Dlatego odpowiedź „techniczną” jest jak najbardziej zgodna z tym, jak branża rozumie dokumentację w kontekście programowania i algorytmów.

Pytanie 5

W PHP, przy wykonywaniu działań na bazie danych MySQL, aby zakończyć sesję z bazą, należy użyć

A. mysqli_close();
B. mysqli_exit();
C. mysqli_rollback();
D. mysqli_commit();
Funkcja mysqli_close() jest właściwym sposobem na zakończenie pracy z połączeniem do bazy danych MySQL w języku PHP. Użycie tej funkcji zwalnia zasoby skojarzone z danym połączeniem, co jest kluczowe w kontekście wydajności aplikacji. Po zakończeniu operacji na bazie danych, zwłaszcza w przypadku aplikacji intensywnie korzystających z zasobów, takich jak serwery webowe, ważne jest, aby zamknąć połączenie, aby uniknąć wycieków pamięci oraz ograniczyć liczbę otwartych połączeń. Przykładowo, po wykonaniu zapytań do bazy danych, stosując mysqli_close($connection), gdzie $connection to uchwyt do otwartego połączenia, można skutecznie zakończyć interakcję z bazą. Dobrą praktyką jest zamykanie połączeń w blokach finally, aby upewnić się, że zasoby są zwalniane nawet w przypadku wystąpienia wyjątków. Kiedy zamykasz połączenie, pamiętaj, że nie będziesz w stanie już korzystać z tego uchwytu połączenia, co jest zgodne z filozofią zarządzania zasobami, gdzie każdy otwarty zasób powinien być odpowiednio zamykany po zakończeniu jego użycia.

Pytanie 6

Przedstawione zapytanie SQL przydziela uprawnienie SELECT

GRANT SELECT ON hurtownia.*
TO 'sprzedawca'@'localhost';
A. do wszystkich tabel w bazie hurtownia
B. do wszystkich kolumn w tabeli hurtownia
C. dla użytkownika root na serwerze localhost
D. dla użytkownika root na serwerze sprzedawca
Polecenie GRANT SELECT ON hurtownia.* TO 'sprzedawca'@'localhost'; nie przyznaje praw do użytkownika root ani do serwera localhost, co wyklucza te możliwości. W SQL, użytkownik root zazwyczaj posiada pełne uprawnienia administracyjne, a przypisanie mu dodatkowych specyficznych praw nie jest konieczne ani typowe w kontekście tego typu polecenia. Z kolei wskazanie serwera localhost w tym kontekście dotyczy tylko ograniczenia dostępu użytkownika do tego konkretnego hosta, a nie nadania mu praw selektywnych. Błędne jest również stwierdzenie, że polecenie to nadaje prawa do wszystkich pól w tabeli hurtownia. W rzeczywistości, wyrażenie hurtownia.* w kontekście GRANT odnosi się do wszystkich tabel, a nie do pól, które w SQL nazywane są kolumnami. Właściwe przypisanie uprawnień w systemach bazodanowych wymaga zrozumienia kontekstu, w którym dane polecenie jest stosowane, oraz znajomości specyfiki składni SQL. Wiele błędów wynika z niepełnego zrozumienia różnicy między tabelami a kolumnami oraz ról poszczególnych użytkowników w systemie zarządzania bazą danych. Praktyka i ciągłe doskonalenie wiedzy w zakresie zarządzania bazami danych jest kluczowe dla unikania takich pomyłek oraz dla utrzymania bezpieczeństwa i spójności danych w organizacjach.

Pytanie 7

Jaką rolę odgrywa kwerenda krzyżowa w systemie baz danych MS Access?

A. Dodaje do wskazanej tabeli dane z innej tabeli
B. Eliminuje rekordy z tabel zgodnie z określonymi kryteriami
C. Prezentuje zliczone wartości z określonego pola, organizując je w wiersze oraz kolumny
D. Zmienia już istniejące dane w tabeli
Wybór odpowiedzi, które sugerują modyfikację danych, usuwanie rekordów czy dołączanie ich z innych tabel, świadczy o nieporozumieniu w zakresie funkcji kwerend w MS Access. Modyfikacja danych w tabeli oraz usuwanie rekordów to operacje, które są realizowane przez inne typy kwerend, takie jak kwerendy aktualizujące czy kwerendy usuwające. Kwerenda krzyżowa nie ma na celu zmiany struktury danych ani ich usuwania, ale raczej analizy i agregacji istniejących informacji. Z kolei dołączanie rekordów z innych tabel zazwyczaj realizowane jest przez kwerendy dołączające, które łączą dane z różnych źródeł w celu ich wspólnej analizy. Odpowiedzi te mogą wprowadzać w błąd, zwłaszcza dla osób, które dopiero zaczynają pracę z bazami danych. Warto pamiętać, że kwerendy krzyżowe są narzędziami analitycznymi, które służą do prezentacji danych, a nie do ich przetwarzania. Dlatego kluczowe jest rozumienie, że każda kwerenda w MS Access ma swoją unikalną funkcję, co wymaga znajomości celu, dla którego ma być używana. Niezrozumienie tego może prowadzić do błędnego wnioskowania i nieefektywnego wykorzystania narzędzi dostępnych w MS Access.

Pytanie 8

W języku CSS, aby ustalić wewnętrzny górny margines, czyli przestrzeń pomiędzy elementem a jego otaczającym obramowaniem, należy zastosować komendę

A. outline-top
B. local-top
C. border-top
D. padding-top
W języku CSS, aby zdefiniować wewnętrzny górny margines elementu, należy użyć właściwości padding-top. Marginesy wewnętrzne (padding) to przestrzeń, która znajduje się pomiędzy zawartością elementu a jego obramowaniem, co pozwala na stworzenie efektu oddzielenia treści od krawędzi. Wartości padding-top można ustalać w jednostkach takich jak px, em, rem czy %. Na przykład, kod CSS 'padding-top: 20px;' doda 20 pikseli odstępu od górnej krawędzi obramowania do zawartości elementu. Właściwość ta jest standardowo wspierana we wszystkich nowoczesnych przeglądarkach i jest częścią specyfikacji CSS Box Model, która określa, jak przestrzeń jest zorganizowana w obrębie elementów HTML. Użycie padding-top jest kluczowe, gdy chcemy, aby nasza strona była estetyczna i czytelna, co ma istotne znaczenie w projektowaniu responsywnym, gdzie różne urządzenia mogą wymagać różnych wartości paddingu, aby utrzymać spójność wizualną. Poprawne stosowanie padding-top przyczynia się również do lepszej dostępności strony, co jest istotnym aspektem w nowoczesnym web designie.

Pytanie 9

W tabeli personel znajdują się pola: imię, nazwisko, pensja, staż. Aby obliczyć średnią pensję osób zatrudnionych z doświadczeniem od 10 do 20 lat włącznie, należy przeprowadzić kwerendę:

A. SELECT COUNT(pensja) FROM personel WHERE staz >= 10 AND staz <= 20
B. SELECT COUNT(*) FROM personel WHERE staz >= 10 AND staz <= 20
C. SELECT AVG(pensja) FROM personel WHERE staz >= 10 AND staz <= 20
D. SELECT AVG(*) FROM personel WHERE staz >= 10 AND staz <= 20
Ta odpowiedź jest prawidłowa, ponieważ używa funkcji agregującej AVG, która oblicza średnią wartość z określonego pola, w tym przypadku pensji. Warunek WHERE zapewnia, że tylko pracownicy z stażem od 10 do 20 lat są brani pod uwagę w obliczeniach. Użycie funkcji AVG w kontekście SQL jest standardową praktyką, gdy chcemy uzyskać średnią z danych numerycznych. Na przykład, jeśli w tabeli mamy pracowników z różnymi pensjami, a chcemy zrozumieć, jak wygląda średnia wynagrodzeń w określonym przedziale stażu, to właśnie ta kwerenda dostarcza nam niezbędnej informacji. Dobre praktyki w analizie danych wskazują, że obliczenie średniej pensji jest kluczowe dla zarządzania zasobami ludzkimi i podejmowania decyzji dotyczących polityki wynagrodzeń. Przykładem może być sytuacja, gdy firma decyduje o podwyżkach lub bonusach, a analiza średniej pensji w danej grupie pracowników może znacząco wpłynąć na te decyzje.

Pytanie 10

ALTER TABLE artykuły MODIFY cena float; Ta kwerenda ma na celu wprowadzenie zmian w tabeli artykuły.

A. dodanie kolumny cena o typie float, o ile nie istnieje
B. zmiana typu na float dla kolumny cena
C. zmiana nazwy kolumny cena na float
D. usunięcie kolumny cena o typie float
Odpowiedź była trafna, bo dotyczyła zmiany typu danych w kolumnie w tabeli. Kiedy piszesz 'ALTER TABLE artykuły MODIFY cena float;', to tak naprawdę modyfikujesz kolumnę 'cena', żeby mogła przyjmować liczby zmiennoprzecinkowe. Używanie typu float jest naprawdę przydatne, gdyż ceny często mają wartości z przecinkiem, więc nie ma sensu tego trzymać w innym formacie. Z mojego doświadczenia, takie zmiany są ważne, bo pomagają w dokładnym przechowywaniu danych, co jest kluczowe w przy aplikacjach związanych z finansami czy sprzedażą online. Ale pamiętaj, że warto zawsze mieć kopię zapasową, bo jeśli masz już jakieś dane, które się nie zmieszczą w nowym typie, to może być kłopot. Generalnie, używanie 'ALTER TABLE' to podstawowa rzecz w zarządzaniu bazami danych i dobrze wiedzieć, co się robi.

Pytanie 11

Jakiego elementu musisz użyć, aby rozpocząć nową linię tekstu bez tworzenia akapitu na stronie internetowej?

A. <br>
B. </b>
C. </br>
D. <p>
Znaczniki </br> i </b> są niepoprawne w kontekście wprowadzenia przerwy w tekstach bez tworzenia nowego akapitu. Znak </br> jest błędny, ponieważ nie występuje w standardowym HTML – znacznik <br> jest samodzielny i nie wymaga zamknięcia. Kolejne, </b> służy do pogrubiania tekstu, a nie do wprowadzania przerw. Użycie <b> zamiast <br> może prowadzić do nieporozumień w interpretacji kodu przez przeglądarki, które oczekują zamknięcia tagu, co może skutkować błędnym renderowaniem strony. Tag <p> z kolei, choć poprawny, definiuje nowy akapit i dodaje przestrzeń przed i po nim, co jest niezgodne z celem pytania. Powszechny błąd wynika z niewłaściwego zrozumienia funkcji poszczególnych tagów HTML. Kluczowe jest, aby twórcy stron internetowych byli dobrze zorientowani w semantyce HTML, aby unikać błędów w formatowaniu oraz zapewnić czytelność i estetykę treści. Niewłaściwe użycie znaczników może prowadzić do problemów z dostępnością oraz wpływać na SEO, co jest niekorzystne w kontekście najlepszych praktyk projektowania stron internetowych.

Pytanie 12

W języku PHP pętla umieści liczby w tablicy

$x=0;
for($i=0; $i<10; $i++)
{
    $tab[$i]=$x;
    $x=$x+10;
}
A. 10, 20, 30, 40, 50, 60, 70, 80, 90, 100
B. 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10
C. 0, 1, 2, 3, 4, 5, 6, 7, 8, 9
D. 0, 10, 20, 30, 40, 50, 60, 70, 80, 90
Pętla w języku PHP przedstawiona w kodzie używa zmiennej $x, która początkowo jest ustawiona na 0. Pętla for inicjalizuje zmienną $i na 0 i wykonuje się dopóki $i jest mniejsze od 10, inkrementując $i o 1 przy każdym obiegu. Wewnątrz pętli, do tablicy $tab dla indeksu $i przypisywana jest obecna wartość $x, która następnie jest zwiększana o 10. Dzięki temu w wyniku działania pętli wartości przypisywane do tablicy to 0, 10, 20, 30, 40, 50, 60, 70, 80, 90. To podejście jest zgodne z dobrą praktyką iteracyjnego budowania tablicy w oparciu o logiczną sekwencję wartości. Takie rozwiązanie jest przydatne w sytuacjach, gdzie potrzebujemy stworzyć serię danych np. przy generowaniu serii zdarzeń czasowych czy też w programach finansowych do obliczeń w stałych odstępach. Wykorzystywanie pętli do wypełniania tablicy wartościami sekwencyjnymi w oparciu o ustalony krok jest powszechne w wielu zastosowaniach programistycznych i jest przykładem efektywnego zarządzania danymi w pamięci.

Pytanie 13

Który efekt został zaprezentowany na filmie?

A. Przenikanie zdjęć.
B. Zmiana jasności zdjęć.
C. Zmniejszenie kontrastu zdjęcia.
D. Zwiększenie ostrości zdjęcia.
Poprawnie wskazany efekt to przenikanie zdjęć, często nazywane też płynnym przejściem (ang. crossfade). Polega to na tym, że jedno zdjęcie stopniowo zanika, jednocześnie drugie pojawia się z narastającą widocznością. W praktyce technicznej realizuje się to najczęściej przez zmianę przezroczystości (opacity) dwóch warstw – jedna warstwa z pierwszym obrazem ma zmniejszaną wartość opacity z 1 do 0, a druga z kolejnym zdjęciem zwiększaną z 0 do 1. Na stronach WWW taki efekt robi się zwykle za pomocą CSS (transition, animation, keyframes) albo JavaScriptu, czasem z użyciem bibliotek typu jQuery czy gotowych sliderów. Moim zdaniem to jest jeden z podstawowych efektów, który warto umieć odtworzyć, bo pojawia się w galeriach, sliderach na stronach głównych, prezentacjach produktów czy prostych pokazach slajdów. W materiałach multimedialnych, np. w edycji wideo, dokładnie ten sam efekt nazywa się przejściem typu „cross dissolve” lub „fade”, i zasada działania jest identyczna – płynne nakładanie się dwóch klatek obrazu w czasie. Dobre praktyki mówią, żeby nie przesadzać z czasem trwania przenikania: zwykle 0,5–1,5 sekundy daje przyjemny, profesjonalny wygląd, bez wrażenia „zamulenia” interfejsu. Warto też pilnować spójności – jeśli na stronie używasz przenikania w jednym miejscu, dobrze jest utrzymać podobny styl animacji w innych elementach, żeby całość wyglądała konsekwentnie i nie rozpraszała użytkownika. W kontekście multimediów na WWW przenikanie jest też korzystne wydajnościowo, bo operuje głównie na właściwości opacity i transformacjach, które przeglądarki potrafią optymalizować sprzętowo.

Pytanie 14

W HTML formularzu użyto elementu <input>. Pole, które się pojawi, ma pozwalać na wprowadzenie maksymalnie

<input type="password" size="30" maxlength="20">
A. 20 znaków, które nie będą widoczne w polu tekstowym
B. 30 znaków, które nie będą widoczne w polu tekstowym
C. 20 znaków, które będą widoczne w trakcie wprowadzania
D. 30 znaków, które będą widoczne podczas wpisywania
Jeśli mówimy o znaczniku <input> w HTML, to dobrze jest wiedzieć, jak działają atrybuty typu maxlength i type. Atrybut maxlength pozwala ustawić maksymalną liczbę znaków w polu tekstowym. W polu typu password użytkownik może wpisać max 20 znaków, ale to, co widzisz, może być inne. Często myli się atrybut size z ograniczeniem liczby wprowadzanych znaków, ale tak naprawdę chodzi tylko o to, jak szerokie jest pole, więc nie zmienia jego funkcjonalności. Pole typu password ma na celu ukrycie wpisywanych znaków, co zazwyczaj oznacza, że to, co wpisujesz, zastąpione jest gwiazdkami lub kropkami, by nie było widać tego, co piszesz. Te rzeczy są ważne dla bezpieczeństwa aplikacji webowych. Ostatnio zauważyłem, że niektórzy mają problemy z rozumieniem tych atrybutów, co może prowadzić do błędów w obsłudze danych użytkowników i problemów z bezpieczeństwem.

Pytanie 15

Które z poniższych twierdzeń o definicji funkcji pokazanej w ramce jest prawdziwe?

function czytajImie(){
  var imie=null;
  do {
    imie=prompt("podaj imie: ");
    if (imie.length<3)
    alert("wprowadzony tekst jest niepoprawny");
  } while(imie.length<3);
}
A. Tekst będzie wczytywany do czasu podania liczby większej niż 3
B. Pętla zostanie uruchomiona tylko raz
C. Funkcja zawiera pętlę, która powtarza się 3 razy
D. Wczytanie tekstu zakończy się, gdy tekst będzie miał co najmniej 3 znaki
Funkcja czytajImie zawiera pętlę do-while która działa dopóki długość wprowadzonego ciągu znaków jest mniejsza niż 3 co oznacza że zakończenie pętli nastąpi gdy użytkownik wprowadzi tekst o długości co najmniej 3 znaków W praktyce oznacza to że funkcja wymaga od użytkownika podania imienia które będzie miało przynajmniej trzy znaki co jest powszechną praktyką podczas walidacji danych wejściowych w celu zapewnienia minimalnej ilości informacji Pętla do-while jest szczególnie przydatna w sytuacjach gdy musimy zagwarantować przynajmniej jedno wykonanie bloku kodu co tutaj pozwala na przynajmniej jednorazowe wywołanie okna prompt do wprowadzenia danych Tego typu walidacja jest podstawą podczas programowania interfejsów użytkownika gdzie poprawność i kompletność danych wejściowych jest kluczowa dla dalszego przetwarzania danych Warto również zauważyć że stosowanie tego rodzaju pętli w kontekście walidacji danych zwiększa użyteczność aplikacji poprzez zapewnienie że dane są zgodne z wymaganiami przed ich dalszym przetwarzaniem

Pytanie 16

ALTER TABLE transport MODIFY COLUMN rok_produkcji INT;
Wykonanie powyższej kwerendy SQL w bazie MySQL spowoduje:
A. dodanie kolumny rok_produkcji typu INT w tabeli transport.
B. usunięcie kolumny rok_produkcji w tabeli transport.
C. utworzenie tabeli transport zawierającej kolumnę rok_produkcji.
D. zmianę typu danych w kolumnie rok_produkcji na INT.
Zapytanie `ALTER TABLE transport MODIFY COLUMN rok_produkcji INT;` operuje na już istniejącej tabeli i istniejącej kolumnie. Kluczowe są tu dwa słowa: ALTER TABLE oraz MODIFY COLUMN. ALTER TABLE oznacza modyfikację struktury tabeli, a nie jej tworzenie ani usuwanie. To polecenie zakłada, że tabela `transport` już jest w bazie. Dlatego interpretacja, że ta komenda tworzy tabelę, wynika często z mylenia jej z `CREATE TABLE`, które faktycznie służy do zakładania nowych tabel z określoną listą kolumn i ich typów. Podobnie jest z samą kolumną. MODIFY COLUMN nie usuwa kolumny – do tego służy `DROP COLUMN`. Usunięcie kolumny polega na całkowitym pozbyciu się jej definicji i wszystkich przechowywanych tam danych. Tutaj nic takiego się nie dzieje. Kolumna `rok_produkcji` dalej istnieje, tylko jej definicja jest zmieniana. Typowy błąd myślowy polega na tym, że ktoś widzi słowo MODIFY i kojarzy je z „przebudowaniem” kolumny, czasem nawet z jej zamianą na nową. W rzeczywistości MySQL po prostu aktualizuje metadane kolumny w strukturze tabeli, a dane – w miarę możliwości – konwertuje do nowego typu. Kolejna myląca kwestia to dodawanie kolumn. Do tego służy `ADD COLUMN`, np. `ALTER TABLE transport ADD COLUMN rok_produkcji INT;`. Tylko taka forma faktycznie tworzy nową kolumnę w tabeli. W podanym poleceniu nie ma słowa ADD, więc zakładanie, że kolumna zostanie dodana, jest po prostu niezgodne ze składnią SQL. Moim zdaniem te pomyłki biorą się głównie z powierzchownego kojarzenia słów kluczowych, bez dokładnego przeczytania dokumentacji. W pracy z bazami danych warto wyrobić sobie nawyk rozróżniania: CREATE – tworzy, ALTER – zmienia, DROP – usuwa, a wewnątrz ALTER: ADD – dodaje element struktury, MODIFY/ALTER COLUMN – zmienia istniejący element, DROP COLUMN – usuwa go. Takie jasne mapowanie poleceń na ich skutki bardzo ułatwia później bezpieczne modyfikowanie schematu bazy, zwłaszcza na systemach produkcyjnych, gdzie każdy błąd w DDL może mieć realne konsekwencje dla danych.

Pytanie 17

W poniższym kodzie CSS czcionka zmieni kolor na żółty

a[target="_blank"]
{
  color: yellow;
}
A. każdego linku
B. odnośników, które otwierają się w tej samej karcie
C. tekstu akapitu
D. odnośników, które otwierają się w nowej karcie
Rozważając inne odpowiedzi, należy zrozumieć, dlaczego są one niepoprawne w kontekście podanego selektora CSS. Gdy mówimy o odnośnikach otwierających się w tej samej karcie, nie stosuje się atrybutu target="_blank", więc taki selektor jak a[target="_blank"] nie będzie się do nich odnosił. Oznacza to, że koloryzacja na żółto nie dotyczy odnośników otwierających się w tej samej karcie, co jest często typowym zachowaniem, chyba że określono inaczej. W przypadku tekstu paragrafu, selektor użyty w kodzie CSS nie będzie miał żadnego wpływu, ponieważ jest on specyficznie dopasowany do elementów a (odnośników), a nie do tekstu zawieranego w tagach p (paragrafów). CSS operuje na elementach HTML zgodnie z selektorami, dlatego nie można zmieniać stylu niepasujących elementów. Ostatnia możliwość, czyli stylizacja każdego odnośnika bez wyjątku, wymagałaby użycia bardziej ogólnego selektora a, a nie tak szczególnego jak a[target="_blank"]. Błędnym przekonaniem może być założenie, że selektor obejmuje wszystkie odnośniki, jednak atrybut target precyzyjnie wskazuje, które elementy mają być stylizowane. Zrozumienie tych różnic jest kluczowe dla efektywnego stosowania CSS w projektach webowych oraz poprawnego rozumienia specyfiki selektorów, co jest fundamentem efektywnego kodowania wizualnego wyglądu stron.

Pytanie 18

Fragment kodu SQL wskazuje, że klucz obcy

Ilustracja do pytania
A. jest obecny w tabeli obiekty
B. wiąże się z kolumną imiona
C. jest ustawiony na kolumnie obiekty
D. stanowi odniesienie do siebie samego
Klucz obcy w SQL nie umieszcza się w kolumnie obiekty, ani nie jest referencją do samego siebie. Główną funkcją klucza obcego jest zapewnienie, że dane w jednej tabeli są zgodne z danymi w innej tabeli, co jest podstawą utrzymania integralności referencyjnej w bazie danych. Po pierwsze, klucz obcy nie odnosi się do samego siebie, ponieważ jego celem jest wskazywanie na klucze główne lub unikalne kolumny w innej tabeli. Samoistne odniesienie nie miałoby sensu w kontekście zapewniania spójności danych. Po drugie, klucz obcy nie jest fizycznie umieszczony w jakiejkolwiek kolumnie w tabeli obiekty. Zamiast tego, jego definicja w kodzie SQL wskazuje, że istnieje logiczne powiązanie między kolumnami dwóch tabel. Istnieje również mylne założenie, że klucz obcy może być ustawiony na dowolną kolumnę w tabeli, na przykład w tabeli obiekty. W rzeczywistości klucz obcy musi być zdefiniowany w kontekście relacji między dwiema tabelami, a jego zadaniem jest wskazywanie na kolumnę w tabeli docelowej, która powinna zawierać wartości odpowiadające wartościom w kolumnie źródłowej. Takie niejasne rozumienie klucza obcego może prowadzić do błędów w projektowaniu struktury baz danych, co w dłuższej perspektywie może skutkować problemami z integralnością danych i wydajnością zapytań do bazy danych. Zrozumienie poprawnego zastosowania kluczy obcych jest kluczowe dla skutecznego zarządzania relacyjnymi bazami danych, dlatego ważne jest unikanie tych typowych błędów przy ich implementacji.

Pytanie 19

W algebrze relacji działanie selekcji polega na

A. wybór krotek, które spełniają określone warunki
B. wybór krotek, które nie zawierają wartości NULL
C. usunięciu krotek z powtórzonymi polami
D. usunięciu pustych wierszy
Wybieranie krotek niezawierających wartości NULL nie jest operacją selekcji w kontekście algebry relacji, ponieważ selekcja ma na celu filtrację krotek na podstawie określonych warunków, a nie jedynie na podstawie obecności lub braku wartości NULL. W praktyce, aby wykluczyć wartości NULL, można zastosować dodatkowe warunki w operacji selekcji, ale to nie definiuje samej operacji selekcji. Z kolei eliminacja pustych wierszy jest związana z usuwaniem krotek, które nie zawierają żadnych danych, co także nie jest równoznaczne z operacją selekcji. Ta operacja odnosi się bardziej do czyszczenia danych niż do ich wybierania na podstawie określonych kryteriów. Ponadto, eliminacja krotek z powtarzającymi się polami nie jest tożsama z selekcją, ponieważ dotyczy bardziej operacji usuwania duplikatów, które są zazwyczaj realizowane przez operacje takie jak DISTINCT w SQL, a nie przez selekcję, która ma na celu wybór krotek na podstawie warunków logicznych. W algebrze relacji kluczowe jest rozróżnienie między operacjami filtrowania danych a operacjami modyfikacji danych, co jest istotne w kontekście projektowania baz danych oraz w zapewnieniu integralności danych.

Pytanie 20

Istnieje tabela programisci z polami: id, nick, ilosc_kodu, ocena. Wartość w polu ilosc_kodu przedstawia liczbę linii kodu, które dany programista stworzył w określonym miesiącu. Aby obliczyć całkowitą liczbę linii kodu napisanych przez wszystkich programistów, należy zastosować następujące polecenie

A. SELECT SUM(ilosc_kodu) FROM programisci;
B. SELECT SUM(ocena) FROM ilosc_kodu;
C. SELECT MAX(ilosc_kodu) FROM programisci;
D. SELECT COUNT(programisci) FROM ilosc_kodu;
Poprawna odpowiedź to "SELECT SUM(ilosc_kodu) FROM programisci;" ponieważ to zapytanie dokładnie ilustruje, jak można obliczyć sumę wszystkich linii kodu napisanych przez programistów. Funkcja agregująca SUM() służy do sumowania wartości w podanym polu, które w tym przypadku jest polem "ilosc_kodu". W kontekście relacyjnych baz danych, stosowanie funkcji agregujących jest kluczowe do analizy danych w sposób statystyczny. W praktyce, takie zapytanie może być przydatne w raportach dotyczących wydajności zespołu programistycznego, gdzie analiza sumy napisanych linii kodu pozwala na ocenę produktywności oraz identyfikację programistów, którzy mogą potrzebować wsparcia w realizacji zadań. Ponadto, zgodnie z najlepszymi praktykami SQL, warto być świadomym kontekstu zapytań, a dobór odpowiednich funkcji agregujących, takich jak SUM(), COUNT(), AVG() itp., jest niezbędny do efektywnego przetwarzania danych.

Pytanie 21

Tworząc raport w systemie zarządzania relacyjnymi bazami danych, umożliwia się

A. analizę wybranych danych
B. dodawanie danych do tabel
C. usuwanie danych z tabel
D. aktualizowanie danych w tabelach
Analiza wybranych danych w systemie obsługi relacyjnych baz danych jest kluczowym aspektem raportowania. Umożliwia to zrozumienie wzorców i trendów, co jest niezbędne dla podejmowania świadomych decyzji biznesowych. Poprzez odpowiednie zapytania SQL, użytkownicy mogą selektywnie wybierać dane, które są dla nich istotne, a następnie przetwarzać je w celu generowania raportów. Przykładem może być analiza sprzedaży w danym okresie czasu, co pozwala na identyfikację najlepiej sprzedających się produktów. Praktyczne zastosowanie raportów obejmuje również monitoring efektywności działań marketingowych, co jest zgodne z najlepszymi praktykami w dziedzinie zarządzania danymi. W kontekście standardów branżowych, raportowanie powinno opierać się na zasadzie przejrzystości, co oznacza, że użytkownicy powinni mieć łatwy dostęp do zrozumiałych i czytelnych wyników analizy. Umożliwia to nie tylko identyfikację problemów, ale również wykorzystanie danych do prognozowania i planowania przyszłych działań.

Pytanie 22

Funkcję Clean Project środowiska IDE stosuje się do

A. debugowania skompilowanego i uruchomionego projektu.
B. usuwania wyników kompilacji projektu.
C. kompilowania projektu, gdy pliki źródłowe zostały zmienione.
D. usuwania całego projektu.
Poprawnie – funkcja „Clean Project” w typowym IDE służy właśnie do usuwania wyników kompilacji, czyli wszystkich plików pośrednich i końcowych wygenerowanych podczas builda. Chodzi o katalogi typu bin, obj, target, build, różne *.class, *.o, *.exe tworzone automatycznie przez kompilator i linker. IDE po wywołaniu „Clean” nie rusza Twoich plików źródłowych, projektów, konfiguracji czy bibliotek w repozytorium – usuwa tylko artefakty budowania. Po co to się robi? Głównie po to, żeby wymusić tzw. „czystą kompilację” (clean build). Przydaje się to, gdy: zmieniłeś konfigurację projektu lub środowiska, dodałeś/zmieniłeś biblioteki, zmieniła się wersja kompilatora lub pluginów, a projekt zaczyna zachowywać się dziwnie, mimo że kod wygląda OK. Z mojego doświadczenia, w dużych projektach webowych (np. aplikacje w PHP z kompilowanym frontendem, czy Java/JavaScript z bundlerami) „Clean” pomaga pozbyć się starych, zcache’owanych plików, które potrafią powodować bardzo mylące błędy: IDE widzi jedno, a uruchamia się coś innego. Dobrą praktyką jest robienie pełnego „Clean & Build” przed wypuszczeniem wersji na produkcję albo przed puszczeniem testów integracyjnych, żeby mieć pewność, że wszystko zostało zbudowane od zera na podstawie aktualnego kodu. W wielu narzędziach CI/CD analogiczną rolę spełnia usuwanie katalogu build/ lub target/ przed kompilacją. W skrócie: Clean nie jest operacją destrukcyjną dla projektu, tylko porządkuje środowisko kompilacji i usuwa „śmieci” po poprzednich buildach, co wpisuje się w standardowe dobre praktyki pracy z kodem.

Pytanie 23

Jakie sformułowanie najlepiej opisuje metodę POST do przesyłania formularzy?

A. Może być zarejestrowana jako zakładka w przeglądarce internetowej
B. Dane są przesyłane przez adres URL, co czyni je widocznymi dla użytkownika
C. Jest zalecana, gdy przesyłane są dane poufne, na przykład hasło, numer telefonu lub numer karty kredytowej
D. Ma dodatkowe ograniczenia związane z długością adresu - maksimum 255 znaków
Metoda POST jest jedną z podstawowych metod przesyłania danych w protokole HTTP, której głównym celem jest umożliwienie przesyłania dużych objętości danych, w tym informacji poufnych. Gdy używamy metody POST do wysyłania formularzy, dane nie są widoczne w adresie URL, co czyni tę metodę bardziej odpowiednią do przesyłania wrażliwych informacji, takich jak hasła, numery kart kredytowych czy dane osobowe. W przeciwieństwie do metody GET, która dodaje dane do adresu URL, metoda POST przesyła je w ciele zapytania, co ogranicza ryzyko przypadkowego ujawnienia informacji. Standardy bezpieczeństwa w branży webowej zalecają użycie metody POST do wszelkich operacji, które zmieniają stan serwera, jak dodawanie użytkowników, logowanie czy przesyłanie informacji finansowych. Przykładem może być formularz logowania, w którym dane użytkownika są przesyłane do serwera w sposób niewidoczny dla osób trzecich, co minimalizuje ryzyko przechwycenia tych informacji przez złośliwe oprogramowanie.

Pytanie 24

Z tabeli mieszkańcy należy uzyskać unikalne nazwy miejscowości, do czego konieczne jest użycie wyrażenia SQL z klauzulą

A. DISTINCT
B. UNIQUE
C. HAVING
D. CHECK
Wybór odpowiedzi CHECK, HAVING lub UNIQUE wskazuje na pewne nieporozumienia dotyczące zastosowania i znaczenia tych klauzul w SQL. Klauzula CHECK jest używana w kontekście definicji tabeli, aby zapewnić, że dane w danym atrybucie spełniają określone warunki, na przykład 'CHECK (wiek >= 0)', co oznacza, że wiek nie może być ujemny. Nie ma jednak zastosowania w kontekście eliminacji duplikatów z wyników zapytania. Klauzula HAVING jest z kolei używana do filtrowania grup z wyniku agregacji, na przykład w zapytaniu z użyciem GROUP BY. Użycie HAVING do eliminacji duplikatów z wyników bez wcześniejszego grupowania danych nie ma sensu. Z kolei UNIQUE to ograniczenie, które można ustawić na kolumnę w tabeli, aby zapewnić, że nie będą w niej występowały powtarzające się wartości. Chociaż jest związane z unikalnością, nie jest klauzulą, którą można wykorzystać w zapytaniach do eliminacji duplikatów z zestawów wyników. Typowym błędem jest mylenie tych koncepcji, co prowadzi do wyboru nieodpowiednich narzędzi w SQL do rozwiązania konkretnego problemu. Warto zatem dobrze zrozumieć różnice między tymi klauzulami, aby umiejętnie stosować je w praktyce i skutecznie zarządzać danymi.

Pytanie 25

Aby umożliwić wybór kilku opcji jednocześnie w rozwijanej liście formularza HTML, należy dodać atrybut do znacznika select

Ilustracja do pytania
A. size
B. value
C. multiple
D. disabled
Atrybut multiple w znaczniku select w HTML to super sprawa, bo dzięki niemu można zaznaczyć więcej niż jedną opcję z listy rozwijalnej. To się przydaje, jak ktoś musi wybrać kilka elementów w formularzu. Jak dodasz atrybut multiple, to przeglądarka pokazuje to jako pole do wyboru, gdzie można klikać na kilka wartości za pomocą klawiszy Ctrl albo Shift. Fajnie, że ten atrybut nie wymaga żadnych dodatkowych wartości, wystarczy, że go wrzucisz do znacznika select. To zgodne z dobrymi praktykami UX, bo pozwala na większą elastyczność i interaktywność formularzy. Co więcej, nie trzeba być programistycznym guru, żeby to wdrożyć, więc każdy może to zrobić. Używa się go w różnych aplikacjach webowych, zwłaszcza tam, gdzie zbieranie danych od użytkowników w prosty i przejrzysty sposób jest ważne.

Pytanie 26

Który z poniższych kodów HTML odpowiada opisanej tabeli? (W celu uproszczenia zrezygnowano z zapisu stylu obramowania tabeli oraz komórek)

Ilustracja do pytania
A. Odpowiedź A
B. Odpowiedź D
C. Odpowiedź C
D. Odpowiedź B
W koncepcji struktury tabeli HTML, zrozumienie atrybutów rowspan i colspan jest kluczowe dla poprawnego tworzenia układu danych. W analizie dostępnych odpowiedzi, niektóre z nich błędnie stosują te atrybuty lub ich nie używają, co prowadzi do niepoprawnego renderowania tabeli. Na przykład, w niektórych przypadkach, gdy użycie colspan lub rowspan jest niepotrzebne, może to prowadzić do nieporządku wizualnego i semantycznego. W odpowiedziach, w których zaniedbano atrybut rowspan, nie osiągnięto prawidłowego połączenia wierszy w kolumnie, co powoduje, że dane są wyświetlane w sposób nieczytelny. Typowym błędem myślowym jest zakładanie, że zagnieżdżenie danych w kolejnych komórkach wystarczy do ich poprawnej prezentacji, jednak w praktyce to prowadzi do rozbicia logicznej ciągłości informacji. Takie podejście może zaburzać użytkownikom interakcję z danymi, zwłaszcza gdy przeglądają oni tabele na urządzeniach mobilnych, gdzie przestrzeń jest ograniczona. Właściwe użycie rowspan zapewnia jednolitą prezentację, poprawiając zarówno estetykę, jak i funkcjonalność tabeli, zgodnie z dobrymi praktykami projektowania interfejsów użytkownika.

Pytanie 27

Zdarzenie JavaScript onmousedown występuje, gdy

A. wskaźnik myszy komputerowej znalazł się w obrębie obiektu.
B. został wciśnięty dowolny klawisz myszy komputerowej na danym elemencie.
C. został naciśnięty dwa razy klawisz myszy komputerowej.
D. wskaźnik myszy komputerowej wyszedł poza obręb obiektu.
W tym pytaniu wszystkie niepoprawne odpowiedzi kręcą się wokół podobnego nieporozumienia: pomieszania różnych zdarzeń myszy dostępnych w JavaScript. Przeglądarka rozróżnia bardzo precyzyjnie momenty, kiedy kursor wchodzi w obszar elementu, kiedy go opuszcza, kiedy przycisk jest naciskany, kiedy jest puszczany i kiedy nastąpiło faktyczne kliknięcie lub podwójne kliknięcie. Każda z tych sytuacji ma swój osobny event i warto to mieć poukładane w głowie, bo inaczej łatwo dobrać złe zdarzenie do danego efektu na stronie. Pojawienie się kursora myszy w obrębie elementu nie ma nic wspólnego z onmousedown. Do tego służą zdarzenia onmouseover i onmouseenter, a do opuszczenia obszaru onmouseout lub onmouseleave. Typowy błąd to myślenie w stylu „skoro coś się dzieje z myszą nad elementem, to pewnie onmousedown”, ale specyfikacja DOM Events bardzo jasno definiuje, że mousedown dotyczy tylko fizycznego naciśnięcia przycisku, a nie samego ruchu wskaźnika. Równie mylące bywa utożsamianie onmousedown z podwójnym kliknięciem. Podwójne kliknięcie ma własne zdarzenie ondblclick i jest generowane dopiero, gdy przeglądarka wykryje dwa szybkie kliknięcia pod rząd w krótkim odstępie czasu. Owszem, technicznie przy podwójnym kliknięciu pojawią się dwa mousedown i dwa mouseup, ale to nie znaczy, że mousedown „oznacza” podwójne kliknięcie. To tylko jeden z niższopoziomowych eventów, na podstawie których przeglądarka składa wyższy poziom interakcji. Koncepcja, że onmousedown występuje w momencie wyjścia kursora poza element, też wynika z pomieszania pojęć – za takie sytuacje odpowiadają właśnie zdarzenia typu mouseout, a nie mousedown. Z mojego doświadczenia takie błędy biorą się z patrzenia na zdarzenia bardziej „intuicyjnie” niż zgodnie ze specyfikacją. Dlatego dobrą praktyką jest zapamiętanie prostego schematu: mousedown – fizyczne naciśnięcie przycisku na elemencie, mouseup – puszczenie, click – pełne kliknięcie, dblclick – dwa kliknięcia, mouseover/mouseout – wejście i wyjście kursora. Dopiero mając to w głowie, można świadomie dobierać właściwe zdarzenie do działania, którego potrzebujesz na stronie.

Pytanie 28

W zaprezentowanym schemacie bazy danych o nazwie biblioteka, składniki: czytelnik, wypożyczenie oraz książka są

Ilustracja do pytania
A. polami
B. atrybutami
C. krotkami
D. encjami
W kontekście modelowania danych w relacyjnych bazach danych istotne jest rozróżnienie między encjami a innymi pojęciami. Pola w bazach danych zazwyczaj odnoszą się do pojedynczych jednostek danych w obrębie kolumn tabeli reprezentujących atrybuty encji. Atrybuty to cechy opisujące encje takie jak imię czy nazwisko w przypadku encji czytelnik. Natomiast krotki często określają pojedynczy rekord czyli wiersz w tabeli który jest instancją encji. Błędne jest przypisywanie czytelnik wypozyczenie i ksiazka do kategorii pól ponieważ w modelowaniu danych pola są najmniejszymi jednostkami danych które nie reprezentują obiektów realnego świata lecz ich właściwości. Podobnie błędem jest klasyfikowanie ich jako atrybuty ponieważ atrybuty opisują encje a nie są nimi. Traktowanie tych elementów jako krotek również jest nieprawidłowe gdyż krotki to konkretne instancje danych a nie typy obiektów które chcemy modelować. Typowy błąd myślowy polega na myleniu poziomu abstrakcji czyli traktowaniu encji które są wysokopoziomowymi konceptami jak atrybuty czy krotki które są bardziej szczegółowymi jednostkami w strukturze danych. Zrozumienie tych różnic jest kluczowe dla efektywnego projektowania i implementacji baz danych oraz uniknięcia problemów związanych z redundancją czy nieefektywnością w przetwarzaniu informacji

Pytanie 29

Aby przywrócić bazę danych o nazwie Sklep z pliku towary.sql, należy w miejsce gwiazdek wpisać nazwę użytkownika. Polecenie wygląda następująco:

mysql -u ******* -p Sklep < towary.sql
A. liczbę importowanych obiektów bazy.
B. nazwę użytkownika.
C. nazwę odzyskiwanej tabeli.
D. adres IP bazy danych.
W tym poleceniu kluczowy jest fragment „-u *******”. Przełącznik -u w kliencie mysql zawsze oznacza nazwę użytkownika bazy danych, pod której kontem chcemy się połączyć z serwerem MySQL/MariaDB. Dlatego w miejsce gwiazdek wpisujemy konkretną nazwę użytkownika, np. root, admin, albo konto utworzone specjalnie do obsługi danej aplikacji, np. sklep_user. To jest standardowa składnia narzędzia wiersza poleceń mysql: mysql -u NAZWA_UŻYTKOWNIKA -p NAZWA_BAZY < plik.sql. Opcja -p mówi, że program ma poprosić o hasło dla tego użytkownika (nie podajemy hasła wprost w poleceniu, ze względów bezpieczeństwa). Nazwa bazy danych, do której importujemy dane, pojawia się dalej, w tym przykładzie jest to Sklep. Z kolei po znaku < podajemy plik z kopią bazy, czyli skryptem SQL zawierającym instrukcje CREATE TABLE, INSERT i inne potrzebne do odtworzenia struktury i danych. W praktyce przy przywracaniu baz danych zawsze łączymy się jako użytkownik, który ma odpowiednie uprawnienia: przynajmniej do tworzenia tabel i wstawiania danych w tej bazie (INSERT, CREATE, ALTER, czasem DROP). W środowiskach produkcyjnych dobrą praktyką jest nie używać konta root, tylko dedykowanego użytkownika z ograniczonymi uprawnieniami. Moim zdaniem warto też pamiętać, że adres IP serwera bazy (opcjonalnie podawany przez -h) i port (-P) to zupełnie inne parametry niż -u. One określają, z jakim serwerem się łączymy, a -u i -p – kim się logujemy. To rozróżnienie jest bardzo ważne przy codziennej administracji i automatyzacji backupów oraz importów.

Pytanie 30

W języku JavaScript funkcja getElementById odnosi się do

A. elementu HTML z podanym id
B. zmiennej numerycznej
C. elementu HTML z określoną nazwą klasy
D. klasy zdefiniowanej w CSS
Metoda getElementById w języku JavaScript jest kluczowym narzędziem do manipulacji DOM (Document Object Model), które pozwala deweloperom na łatwe odwoływanie się do konkretnych elementów HTML za pomocą ich atrybutu id. Dzięki temu, możemy dynamicznie zmieniać treść, style lub atrybuty tych elementów, co jest niezwykle przydatne w tworzeniu interaktywnych stron internetowych. Na przykład, jeśli mamy element HTML z atrybutem id='header', możemy użyć `document.getElementById('header')` do uzyskania do niego dostępu. To podejście jest zgodne z zasadami poprawnej struktury HTML, gdzie atrybut id powinien być unikalny w obrębie dokumentu. Rekomendowane jest, aby id było zrozumiałe i jasno określało zawartość elementu, co ułatwia późniejszą nawigację i skrypty, a także poprawia dostępność strony. W praktyce, korzystając z getElementById, możemy na przykład zmieniać tekst nagłówka: `document.getElementById('header').innerText = 'Nowy nagłówek';`.

Pytanie 31

Plik cookie utworzony przedstawionym poleceniem PHP:

setcookie("osoba", "Anna Kowalska", time() + (3600 * 24));
A. wygaśnie po jednej dobie od jego utworzenia.
B. wygaśnie po jednej godzinie od jego utworzenia.
C. będzie przechowywany na serwerze przez jedną dobę.
D. będzie przechowywany na serwerze przez jedną godzinę.
W tym poleceniu PHP funkcja setcookie() dostaje jako trzeci parametr czas wygaśnięcia ciasteczka w postaci znacznika czasu UNIX (timestamp). Wyrażenie time() + (3600 * 24) oznacza: aktualny czas serwera (time()) powiększony o 3600 sekund (czyli jedną godzinę) razy 24, co razem daje 86400 sekund, czyli dokładnie jedną dobę. Przeglądarka zapisuje to jako tzw. cookie trwałe (persistent cookie) i będzie je przechowywać do momentu osiągnięcia tego czasu. Po upływie doby od utworzenia, przeglądarka automatycznie przestanie wysyłać to cookie w nagłówkach HTTP do serwera. To jest ważne: cookie jest przechowywane po stronie klienta, czyli w przeglądarce użytkownika, a nie na serwerze. Serwer tylko wysyła nagłówek Set-Cookie w odpowiedzi HTTP. W praktyce takie ustawienie przydaje się np. do zapamiętania imienia użytkownika, preferencji językowych, koszyka w prostym sklepie albo ustawień wyglądu strony na krótki czas, np. na jedną dobę. Moim zdaniem warto zapamiętać, że brak trzeciego parametru w setcookie() oznacza cookie sesyjne (kasowane po zamknięciu przeglądarki), a podanie konkretnego timestampu tworzy cookie, które ma określoną datę wygaśnięcia. Dobrą praktyką jest zawsze świadomie dobierać czas życia ciasteczek: dane wrażliwe powinny mieć raczej krótki czas ważności, a informacje czysto techniczne lub preferencje interfejsu mogą być przechowywane dłużej. W nowoczesnych aplikacjach webowych łączy się to też z innymi atrybutami cookie (Secure, HttpOnly, SameSite), ale sam mechanizm czasu wygaśnięcia pozostaje taki sam – jest to po prostu liczba sekund od epoki UNIX, kiedy cookie przestanie być uznawane za ważne.

Pytanie 32

Który model barw opisuje kolor za pomocą stożka przestrzeni barw?

A. CMYK
B. CIE
C. HSV
D. CMY
Model barw HSV (Hue, Saturation, Value) jest jednym z najbardziej znanych modeli opisujących kolory w przestrzeni barwnej, który można graficznie przedstawić w formie stożka. W modelu tym kolor definiowany jest przez trzy parametry: odcień (Hue), nasycenie (Saturation) i jasność (Value). Odcień określa kolor, nasycenie odnosi się do intensywności koloru, a jasność wskazuje na jego jasność. Przykładem zastosowania modelu HSV może być grafika komputerowa, gdzie użytkownicy często korzystają z suwaków do wyboru koloru; suwak odcienia pozwala na wybór koloru bazowego, suwak nasycenia modyfikuje jego intensywność, a suwak jasności pozwala na kontrolowanie poziomu jasności koloru. Model HSV jest szeroko używany w oprogramowaniu do edycji zdjęć oraz w programowaniu gier, co sprawia, że jest niezwykle praktyczny w zastosowaniach cyfrowych. Jest zgodny z wieloma standardami, takimi jak sRGB czy Adobe RGB, co czyni go uniwersalnym narzędziem w pracy z kolorami.

Pytanie 33

Jaką wartość zwróci poniższa instrukcja w JavaScript?

document.write(5==='5');
A. true
B. 0
C. false
D. 1
W przypadku użycia operatora porównania w JavaScript ważne jest zrozumienie różnic między operatorem podwójnego równości == a potrójnego równości ===. Operator == porównuje wartości po niejawnej konwersji typów danych co prowadzi do błędów gdy nie są one jednoznaczne. Przykładowo liczba 5 porównana z ciągiem '5' używając == może dać wartość true ponieważ konwertuje typy do jednego wspólnego formatu przed porównaniem. Jednak takie podejście jest ryzykowne i niezalecane w profesjonalnym programowaniu gdyż nie zapewnia pełnej zgodności typów. Operator === przeciwnie sprawdza zarówno typ danych jak i wartość co eliminuje problemy z nieoczekiwanymi konwersjami. W przedstawionym przykładzie porównanie liczby 5 z ciągiem '5' za pomocą === zwraca false ponieważ typy danych nie są zgodne. Niepoprawne zrozumienie tego mechanizmu może prowadzić do błędnych wniosków takich jak wyświetlenie wartości true lub 1 co jest nieprawidłowe. Zrozumienie różnic w działaniu tych operatorów jest kluczowe dla każdego programisty JavaScript aby unikać typowych błędów związanych z niejawnością konwersji typów i zapewniać większą przewidywalność i niezawodność kodu produkcyjnego. Takie podejście jest zgodne z dobrymi praktykami w branży co przyczynia się do poprawy jakości kodu i jego długoterminowej konserwacji. Użycie === jest rekomendowane w celu zapewnienia pełnej zgodności typów i wartości co jest kluczowe w profesjonalnym środowisku programowania webowego. Przyzwyczajenie się do stosowania potrójnego równości zmniejsza ryzyko błędów logicznych i wspiera dobre praktyki programistyczne.

Pytanie 34

Jakie polecenie wydane w terminalu systemu operacyjnego, które zawiera w swojej składni opcję --repair, pozwala na naprawę bazy danych?

A. mysqlcheck
B. mysqldump
C. create
D. truncate
Truncate to polecenie, które służy do szybkiego usuwania wszystkich wierszy z tabeli, a nie do naprawy bazy danych. Często mylone jest z usuwaniem danych, jednak nie wykonuje ono operacji naprawczych ani nie zdejmuje blokad związanych z integralnością danych. Mysqldump to z kolei narzędzie do tworzenia kopii zapasowych baz danych, które eksportuje dane do postaci pliku, ale również nie ma możliwości naprawy istniejących błędów w danych czy strukturze tabel. Create to komenda używana do tworzenia nowych tabel lub baz danych, jednak nie ma zastosowania w kontekście naprawy już istniejących obiektów. Typowym błędem myślowym jest przypisywanie funkcji, które są dedykowane do zarządzania danymi, do operacji naprawczych, co może prowadzić do utraty danych lub niewłaściwego postępowania z bazą. Kluczowym aspektem w zarządzaniu bazami danych jest znajomość właściwych narzędzi i ich zastosowań, co pozwala na skuteczne i bezpieczne zarządzanie danymi. Użycie niewłaściwych poleceń w kontekście zarządzania bazami danych może prowadzić do problemów z dostępnością, a nawet do uszkodzenia danych, dlatego istotne jest, aby dobrze rozumieć funkcje narzędzi, które się wykorzystuje.

Pytanie 35

Na podstawie przypisania wartości do zmiennych zapisanych w języku PHP można stwierdzić, że

$zmienna1 = 15;
$zmienna2 = "15";
$zmienna3 = (string) $zmienna1;
A. zmienna2 i zmienna3 są tego samego typu.
B. zmienna1 i zmienna3 są tego samego typu.
C. Wszystkie zmienne są tego samego typu.
D. zmienna1 i zmienna2 są tego samego typu.
Niestety, twoja odpowiedź była nieprawidłowa. Wydaje się, że mogła wynikać z niezrozumienia typów zmiennych w języku PHP. W tym pytaniu zmienna1 była typu int (liczba całkowita), zmienna2 była typu string (ciąg znaków), natomiast zmienna3 była wynikiem rzutowania zmiennej1 na typ string. Stąd wynika, że zmienna2 i zmienna3 są obie typu string. Natomiast zmienna1, pomimo że miała taką samą wartość jak zmienna2 i zmienna3 (15), nie była tego samego typu. W językach programowania typ danych jest ważny, szczególnie przy operacjach porównania czy połączenia różnych typów danych. PHP jest językiem o dynamicznych typach, co oznacza, że typ zmiennej może ulec zmianie w trakcie wykonania skryptu, ale mimo to warto zawsze świadomie operować na typach zmiennych.

Pytanie 36

Jakie prawa będzie miał użytkownik jan po wykonaniu poniższych poleceń na bazie danych?

GRANT ALL PRIVILEGES ON klienci TO jan;
REVOKE SELECT, INSERT, UPDATE, DELETE ON klienci FROM jan;
A. Będzie mógł dodawać rekordy do tabeli klienci
B. Będzie mógł usuwać rekordy z tabeli klienci
C. Będzie mógł zmieniać strukturę tabeli klienci
D. Będzie mógł przeszukiwać dane w tabeli klienci
Polecenie GRANT ALL PRIVILEGES ON klienci TO jan pozwala użytkownikowi jan na wykonywanie wszystkich operacji na tabeli klienci. Obejmuje to działania takie jak SELECT INSERT UPDATE DELETE oraz inne operacje strukturalne jak ALTER czy DROP. Następnie polecenie REVOKE SELECT INSERT UPDATE DELETE ON klienci FROM jan usuwa część tych uprawnień. Po wykonaniu tych poleceń jan zachowuje uprawnienia do zmiany struktury tabeli klienci czyli może wykonywać operacje takie jak ALTER. ALTER TABLE jest kluczowe w zarządzaniu bazą danych pozwalając na dodawanie lub usuwanie kolumn oraz modyfikację typów danych. W praktyce oznacza to że jan może np. dostosować strukturę danych do nowych wymagań biznesowych co jest ważnym aspektem elastycznego zarządzania bazą danych. Umiejętność zarządzania strukturą tabel jest ważną częścią administracji baz danych i powinna być wykonywana zgodnie z najlepszymi praktykami aby zapewnić integralność danych i wydajność systemu. Użytkownik powinien regularnie przeglądać i aktualizować dokumentację techniczną aby śledzić wszelkie zmiany w strukturze bazy danych

Pytanie 37

Aby usunąć tabelę, trzeba użyć kwerendy

A. DELETE
B. DROP TABLE
C. TRUNCATE TABLE
D. UNIQUE
Odpowiedź 'DROP TABLE' jest poprawna, ponieważ jest to standardowe polecenie SQL służące do usunięcia całej tabeli z bazy danych. Użycie tego polecenia oznacza, że wszystkie dane przechowywane w tabeli zostaną trwale usunięte, a sama struktura tabeli również zostanie skasowana. Przykład zastosowania: jeśli mamy tabelę 'klienci' i chcemy usunąć ją z bazy danych, stosujemy polecenie 'DROP TABLE klienci;'. Ważne jest, aby przed wykonaniem tego polecenia upewnić się, że nie ma już odniesień do tej tabeli w innych obiektach bazy danych, takich jak klucze obce. Usunięcie tabeli jest procesem nieodwracalnym, dlatego zaleca się wykonanie kopii zapasowej danych przed podjęciem takiej decyzji. W praktyce, ten operator jest często używany w sytuacjach, gdy dane są zbędne, a struktura bazy danych wymaga reorganizacji lub uproszczenia, co jest zgodne z najlepszymi praktykami w zarządzaniu bazami danych.

Pytanie 38

Mamy tabelę firm, która zawiera takie kolumny jak: nazwa, adres, NIP, obrot (obrót w ostatnim miesiącu), rozliczenie, status. Wykonanie zapytania SQL SELECT spowoduje wyświetlenie

SELECT nazwa, NIP FROM firmy WHERE obrot < 4000;
A. wszystkie informacje o firmach, które w minionym miesiącu osiągnęły obrót poniżej 4000 zł
B. wszystkie dane o firmach, które w ostatnim miesiącu miały obrót na poziomie co najmniej 4000 zł
C. tylko nazwę i numer NIP przedsiębiorstw, które w ostatnim miesiącu miały obrót mniejszy niż 4000 zł
D. tylko nazwę i numer NIP przedsiębiorstw, które w poprzednim miesiącu miały obrót wynoszący przynajmniej 4000 zł
Prawidłowa odpowiedź odwołuje się do kwerendy SQL SELECT która wybiera jedynie kolumny nazwa oraz NIP z tabeli firmy pod warunkiem że kolumna obrot jest mniejsza niż 4000 Kwerenda ta jest przykład zastosowania filtracji danych w celu wyodrębnienia specyficznych informacji z bazy danych co jest kluczowe w analizie biznesowej Dzięki tej operacji można uzyskać listę firm które w ostatnim miesiącu osiągnęły niski obrót co może być istotne dla działów finansowych i marketingowych w celu identyfikacji klientów wymagających dodatkowego wsparcia Tego rodzaju selektywne przetwarzanie danych jest częścią codziennej pracy analityków danych oraz specjalistów od zarządzania relacjami z klientami W praktyce w infrastrukturze bazodanowej tego typu zapytania mogą być stosowane do generowania raportów okresowych lub alertów biznesowych Przy projektowaniu kwerend SQL ważne jest aby precyzyjnie określać które kolumny i wiersze danych są interesujące co nie tylko zwiększa efektywność zapytań ale także pozwala na lepsze zarządzanie zasobami serwera Dobra praktyka polega na optymalizacji zapytań w celu minimalizacji czasów odpowiedzi oraz obciążenia systemów bazodanowych co jest kluczowe dla utrzymania wydajności i niezawodności w dużych systemach informatycznych

Pytanie 39

W edytorze grafiki wektorowej stworzono przedstawiony kształt, który powstał z dwóch figur: trójkąta i koła. W celu stworzenia tego kształtu, po narysowaniu figur i odpowiednim ich ustawieniu, należy skorzystać z funkcji

Ilustracja do pytania
A. różnicy.
B. wykluczenia.
C. rozdzielenia.
D. sumy.
Dobrze, że wybrałeś odpowiedź 'Sumy'. W rzeczywistości, aby uzyskać efekt przedstawiony na zdjęciu w edytorze grafiki wektorowej, trzeba skorzystać z opcji 'Sumy'. Ta funkcja łączy dwie różne figury w jedną, co pozwala na tworzenie złożonych kształtów. W praktyce, po rysowaniu i odpowiednim ustawieniu figurek, funkcja 'Sumy' jest używana do ich połączenia, tworząc unikalny obiekt. Taka metoda jest często stosowana w przemyśle graficznym, zwłaszcza w projektowaniu logo, gdzie unikalne kształty są istotne. Jest to zgodne ze standardami i dobrymi praktykami w branży graficznej, które zalecają efektywne wykorzystanie narzędzi edytora grafiki wektorowej do tworzenia złożonych kształtów.

Pytanie 40

Podczas testowania skryptu JavaScript można w konsoli wyświetlać obecnie przechowywane wartości zmiennych przy użyciu funkcji

A. console.log()
B. console.warn()
C. console.count()
D. console.error()
Funkcja console.log() jest najczęściej używaną metodą do wyświetlania informacji w konsoli JavaScript. Umożliwia ona programistom monitorowanie wartości zmiennych w czasie rzeczywistym, co jest niezwykle pomocne podczas debugowania aplikacji. Używając console.log(), można łatwo wprowadzić komunikaty do konsoli, co pozwala na śledzenie zachowań aplikacji oraz identyfikację potencjalnych problemów. Przykładowo, jeśli mamy zmienną 'x' i chcemy zobaczyć jej wartość, wystarczy wpisać console.log(x). Dobre praktyki inżynierii oprogramowania sugerują, aby używać tego narzędzia do logowania istotnych informacji, w tym danych wejściowych oraz wyników operacji, co ułatwia późniejszą analizę i utrzymanie kodu. Ponadto, console.log() jest częścią standardu Web API, co potwierdza jego znaczenie i powszechność w branży. Warto też pamiętać, że nadmierne logowanie może prowadzić do zagracenia konsoli, dlatego kluczowe jest stosowanie tej funkcji w umiarkowany sposób, szczególnie w środowisku produkcyjnym.