Wyniki egzaminu

Informacje o egzaminie:
  • Zawód: Technik informatyk
  • Kwalifikacja: INF.03 - Tworzenie i administrowanie stronami i aplikacjami internetowymi oraz bazami danych
  • Data rozpoczęcia: 21 kwietnia 2026 12:46
  • Data zakończenia: 21 kwietnia 2026 13:29

Egzamin zdany!

Wynik: 26/40 punktów (65,0%)

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

Jakiego znacznika używa się do definiowania listy definicji w kodzie HTML?

A. <abbr>
B. <dl>
C. <label>
D. <td>
Znaczniki <td>, <abbr> i <label> nie są odpowiednie do definiowania list definicyjnych w HTML, ponieważ pełnią zupełnie inne funkcje. Znacznik <td> służy do definiowania komórek w tabelach, stanowiących podstawowy element struktury tabelarycznej. Użycie <td> w kontekście definicji terminów nie jest zasadne, ponieważ nie jest przeznaczony do przedstawiania pary termin-definicja, a jedynie do formatowania danych w tabelach. Z kolei znacznik <abbr> jest używany do oznaczania skrótów oraz akronimów, co pomaga widocznie wskazać ich rozwinięcie, ale nie ma nic wspólnego z tworzeniem list definicyjnych. Zastosowanie <abbr> w kontekście definicji terminów mogłoby wprowadzać w błąd, ponieważ nie spełnia on funkcji opisowej listy. Ostatni z wymienionych znaczników, <label>, służy do powiązania etykiet z elementami formularzy, co jest istotne dla dostępności i użyteczności form, ale także nie ma zastosowania w przypadku definicji. W efekcie, żadna z tych trzech odpowiedzi nie niesie ze sobą funkcji potrzebnej do tworzenia list definicyjnych i może wprowadzać użytkowników w błąd, co do ich rzeczywistego znaczenia oraz zastosowania.

Pytanie 2

W zamieszczonym przykładzie pseudoklasa hover sprawi, że styl pogrubiony będzie przypisany

a:hover { font-weight: bold; }
A. odnośnikowi, w momencie kiedy najechał na niego kursor myszy.
B. każdemu odnośnikowi niezależnie od aktualnego stanu.
C. wszystkim odnośnikom nieodwiedzonym.
D. wszystkim odnośnikom odwiedzonym.
Twoja odpowiedź jest prawidłowa. Pseudoklasa :hover w CSS jest używana do stylizacji elementów, na które najechał kursor myszy. Na przykład, jeżeli użyjemy stylu 'font-weight: bold;' z pseudoklasą :hover, tekst odnośnika stanie się pogrubiony tylko wtedy, kiedy na niego najedziemy kursorem. Jest to bardzo przydatne w interaktywnym designie strony internetowej, gdzie możemy w prosty sposób zasygnalizować użytkownikowi, że dany element jest aktywny lub interaktywny. Pamiętaj, że pseudoklasy w CSS są potężnym narzędziem, które pozwala nam na tworzenie zaawansowanych efektów bez konieczności użycia JavaScriptu. Znajomość i umiejętność wykorzystania pseudoklas jest zatem kluczową umiejętnością każdego front-end developera.

Pytanie 3

W języku HTML, aby uzyskać efekt podobny do tego w przykładzie, trzeba użyć konstrukcji

Ilustracja do pytania
A. <p><big>Duży tekst</p> zwykły tekst
B. <p><big>Duży tekst</big> zwykły tekst</p>
C. <p><strike>Duży tekst zwykły tekst</p>
D. <p><strike>Duży tekst</strike> zwykły tekst</p>
Odpowiedź jest prawidłowa, ponieważ w języku HTML, aby zwiększyć rozmiar czcionki dla części tekstu, można użyć znacznika <big>. Znacznik ten powoduje, że tekst wewnątrz jest wyświetlany w większym rozmiarze niż tekst otaczający. Jest to przydatne w sytuacjach, gdy chcemy wyróżnić część tekstu bez stosowania zaawansowanego stylu CSS. Chociaż <big> jest uznawany za przestarzały w nowoczesnym HTML, dla celów edukacyjnych i zgodności z starszymi dokumentami HTML wciąż może być stosowany. Praktyką zalecaną w aktualnych standardach jest używanie stylów CSS, np. poprzez przypisanie klasy lub bezpośrednie stylowanie in-line. Warto zaznaczyć, że stosowanie <big> nie jest zalecane w nowych projektach, ponieważ CSS oferuje większą elastyczność i kontrolę nad wyglądem tekstu. Niemniej jednak, znajomość takich znaczników jak <big> pomaga w zrozumieniu, jak rozwijał się HTML i jakie są różnice między starszymi a nowoczesnymi metodami formatowania tekstu.

Pytanie 4

Z tabel Klienci oraz Uslugi należy wyodrębnić tylko imiona klientów oraz odpowiadające im nazwy usług, które kosztują więcej niż 10 zł. Kwerenda uzyskująca te informacje ma formę

Ilustracja do pytania
A. SELECT imie, nazwa FROM klienci JOIN uslugi ON uslugi.id = klienci.id
B. SELECT imie, nazwa FROM klienci, uslugi WHERE cena < 10
C. SELECT imie, nazwa FROM klienci JOIN uslugi ON uslugi.id = uslugi_id WHERE cena > 10
D. SELECT imie, nazwa FROM klienci JOIN uslugi ON uslugi.id = uslugi_id
Odpowiedź 4 jest prawidłowa, ponieważ prawidłowo wykorzystuje składnię SQL do połączenia dwóch tabel oraz filtrowania danych na podstawie podanego warunku. Kwerenda używa JOIN, aby połączyć tabele Klienci i Uslugi na podstawie wspólnej kolumny uslugi_id, co jest zgodne z zasadami relacyjnej bazy danych, gdzie klucz obcy w jednej tabeli odnosi się do klucza głównego w innej tabeli. Następnie, kwerenda stosuje filtrację WHERE cena > 10, co pozwala na wybór tylko tych rekordów, gdzie cena usługi przekracza 10 zł. Jest to zgodne z praktyką selektywnego pobierania danych, co jest kluczowe w optymalizacji zapytań i skutecznym zarządzaniu zasobami bazy danych. Zastosowanie takich technik jest standardem w branży, umożliwiając efektywne zarządzanie dużymi zbiorami danych oraz zwiększenie wydajności aplikacji poprzez ograniczenie liczby zwracanych wierszy do tych, które spełniają określone kryteria. Zrozumienie i umiejętność implementacji takich zapytań SQL to podstawowa umiejętność dla specjalistów IT pracujących z bazami danych.

Pytanie 5

Programista stworzył pętlę w języku C++ mającą na celu obliczenie wartości 5! (5! = 1 * 2 * 3 * 4 * 5). Niestety, popełnił błąd logiczny polegający na tym, że

int a = 1;
for (int i = 1; i < 5; i++)
{
    a = a * i;
}
cout << a;
A. parametr i pętli powinien być zmniejszany zamiast zwiększany
B. parametr i pętli powinien być inicjowany wartością 0, a nie 1
C. w drugim warunku pętli powinno być porównanie i < 6 zamiast i < 5
D. zmienna a powinna być ustawiona na 0 zamiast 1
Podczas analizy błędów w pętli for jednym z kluczowych aspektów jest poprawne inicjowanie i aktualizowanie zmiennych sterujących oraz warunków zakończenia pętli. W kontekście obliczania silni 5 trzeba zwrócić uwagę na to, że inicjowanie zmiennej a wartością 0 zamiast 1 spowodowałoby, że wszystkie mnożenia dadzą wynik 0, co jest fundamentalnym błędem w logice obliczeń silni. Zmienna powinna startować od wartości 1, aby mnożenie było poprawne. Zainicjowanie parametru i wartością 0 zamiast 1 również prowadziłoby do niepoprawnych rezultatów, ponieważ mnożyłoby przez 0 w pierwszej iteracji, co skutkowałoby, że cała silnia wynosiłaby 0. To typowy błąd związany z niewłaściwym zakresem iteracji. Natomiast zmiana w kierunku dekrementacji zamiast inkrementacji nie ma sensu w kontekście tego zadania, gdzie celem jest sekwencyjne przemnożenie przez kolejne liczby naturalne do 5. Takie podejście jest błędne, ponieważ nie odwzorowuje poprawnego algorytmu obliczania silni. Rozumienie poprawnych zakresów i logicznych schodków iteracji w pętlach to kluczowy element w zapobieganiu tego typu błędom i osiąganiu zamierzonych wyników w algorytmach obliczeniowych. Warto pamiętać, że dbanie o poprawność warunków iteracyjnych jest nieodzowne w praktyce programistycznej, aby zapewnić niezawodność i poprawność działania kodu w różnych scenariuszach testowych i produkcyjnych.

Pytanie 6

W tabeli podzespoly należy zaktualizować wartość pola URL na "toshiba.pl" dla wszystkich rekordów, w których pole producent jest równe TOSHIBA. Jak będzie wyglądała ta zmiana w języku SQL?

A. UPDATE podzespoly.producent='TOSHIBA' SET URL = 'toshiba.pl';
B. UPDATE podzespoly SET URL='toshiba.pl' WHERE producent='TOSHIBA';
C. UPDATE producent='TOSHIBA' SET URL = 'toshiba.pl';
D. UPDATE podzespoly SET URL = 'toshiba.pl';
Aby zaktualizować wartość pola URL w tabeli podzespoly na 'toshiba.pl' dla wszystkich rekordów, gdzie pole producent jest równe 'TOSHIBA', należy użyć instrukcji UPDATE w języku SQL. Właściwa składnia tej instrukcji to: UPDATE podzespoly SET URL='toshiba.pl' WHERE producent='TOSHIBA';. W tej instrukcji UPDATE najpierw wskazujemy, której tabeli dotyczy modyfikacja, w tym przypadku 'podzespoly'. Następnie określamy, jakie pole chcemy zaktualizować, czyli 'URL', oraz ustawiamy nową wartość, którą w tym przypadku jest 'toshiba.pl'. Kluczowym elementem tej operacji jest klauzula WHERE, która filtruje rekordy, które mają być zaktualizowane; w tym przypadku tylko te, które mają producenta 'TOSHIBA'. Bez klauzuli WHERE wszystkie rekordy w tabeli zostałyby zmodyfikowane, co mogłoby prowadzić do utraty danych. Przykład ilustruje, jak precyzyjnie można zarządzać danymi w bazie poprzez odpowiednie warunki. Tego typu operacje są zgodne z normami SQL, co zapewnia ich efektywność i bezpieczeństwo w zarządzaniu danymi.

Pytanie 7

Która wartość tekstowa nie pasuje do podanego w ramce wzorca wyrażenia regularnego?

(([A-ZŁŻ][a-ząęóżźćńłś]{2,})(-[A-ZŁŻ][a-ząęóżźćńłś]{2,})?)
A. Kowalski
B. Kasprowicza
C. Jelenia Góra
D. Nowakowska-Kowalska
Wyrażenie regularne, które zostało podane w pytaniu, to [A-ZŁŻ][a-ząęóżźćńłś]{2,}-[A-ZŁŻ][a-ząęóżźćńłś]{2,}. Wyrażenie to jest używane do walidacji polskich nazwisk, gdzie pierwsza litera musi być dużą literą z zakresu A-Z oraz polskimi znakami diakrytycznymi, następnie muszą występować co najmniej dwa znaki małe, również z zestawu polskich liter. Po pierwszej części, która odpowiada za pierwsze nazwisko, mamy opcjonalny fragment, który zaczyna się od znaku '-', co oznacza, że można podać drugie nazwisko, które także musi spełniać te same warunki. Przykład poprawnych wartości to Kowalski oraz Nowakowska-Kowalska. Wartość 'Jelenia Góra' nie pasuje do tego wzorca, ponieważ zawiera spację, która nie jest dozwolona w tym kontekście. Dodatkowo, spację można interpretować jako rozdzielenie dwóch słów, co wykracza poza przyjęty format. W związku z tym, prawidłowa odpowiedź to 'Jelenia Góra'.

Pytanie 8

Aby uzyskać przedstawiony efekt napisu w programie INKSCAPE / COREL, należy

Ilustracja do pytania
A. zastosować opcję sumy z kołem
B. zastosować opcję wykluczenia z kołem
C. skorzystać z opcji gradientu
D. skorzystać z opcji wstaw / dopasuj tekst do ścieżki
Zastosowanie funkcji wykluczenia z kołem nie jest właściwe w kontekście dopasowywania tekstu do ścieżki ponieważ funkcja ta służy do tworzenia efektów wycinania w których elementy jednego obiektu są wykluczane z drugiego. Jest to przydatne w sytuacjach gdzie potrzebujemy stworzyć złożone kształty poprzez odejmowanie jednego obiektu od drugiego. Natomiast zastosowanie funkcji sumy z kołem odnosi się do łączenia kilku obiektów w jeden nowy kształt co jest użyteczne przy tworzeniu złożonych kompozycji graficznych ale nie ma związku z manipulowaniem kształtem tekstu. Funkcja gradientu jest związana z kolorowaniem obiektów przez stopniowe przechodzenie jednego koloru w drugi co nadaje obiektom atrakcyjny efekt wizualny ale nie wpływa na kształtowanie liter wzdłuż ścieżki. Typowym błędem jest myślenie że te funkcje mogą być używane wymiennie z narzędziami do tekstu co wynika z niepełnego zrozumienia ich specyficznych zastosowań i ograniczeń w kontekście projektowania grafiki wektorowej. Zrozumienie różnych funkcji dostępnych w programach do grafiki wektorowej jak Inkscape czy CorelDRAW jest kluczowe dla efektywnego tworzenia projektów które są zarówno estetyczne jak i funkcjonalne. Profesjonalne wykorzystanie tych narzędzi wymaga nie tylko znajomości ich podstawowych funkcji ale także świadomości kontekstu ich użycia oraz możliwości jakie oferują w tworzeniu zaawansowanych projektów graficznych które spełniają określone wymagania wizualne i techniczne.

Pytanie 9

W relacyjnych bazach danych, gdy dwie tabele są ze sobą powiązane przez ich klucze główne, mamy do czynienia z relacją

A. 1 .. 1
B. n .. 1
C. n .. n
D. 1 .. n
Odpowiedź 1 .. 1 jest prawidłowa, ponieważ opisuje relację, w której każdemu rekordowi w jednej tabeli odpowiada dokładnie jeden rekord w drugiej tabeli. Taka relacja jest często wykorzystywana w systemach baz danych, gdzie klucz główny jednej tabeli jest jednocześnie kluczem obcym w drugiej tabeli. Przykładem może być relacja między tabelą 'Użytkownicy' a tabelą 'Profile', gdzie każdy użytkownik ma dokładnie jeden profil, a każdy profil jest przypisany do jednego użytkownika. W kontekście standardów baz danych, relacje 1 .. 1 pomagają w eliminacji redundancji danych i zapewniają integralność danych. Dobrą praktyką jest stosowanie takich relacji w sytuacjach, gdy dane mogą być logicznie podzielone, ale nie powinny być powielane. Inne podejścia, jak relacje 1 .. n czy n .. n, mogą prowadzić do większej złożoności w modelowaniu danych oraz potencjalnych problemów z integralnością danych, dlatego stosowanie relacji 1 .. 1 jest korzystne dla przejrzystości i efektywności struktury bazy danych.

Pytanie 10

Przedstawiony kod źródłowy ma na celu zaprezentowanie

$liczba = 1;
while ($liczba != 0)
{
    $liczba = rand(0,100);
    echo $liczba;
}
A. kolejnych liczb od 1 do 100
B. losowych liczb od 0 do 100 do momentu, aż nie wylosowana zostanie liczba 0
C. liczb wprowadzonych z klawiatury tak długo, aż nie zostanie podana wartość 0
D. wylosowanych liczb od 1 do 99
Analizując inne odpowiedzi, można zauważyć kilka nieporozumień dotyczących działania kodu. Kod nie wyświetla kolejnych liczb od 1 do 100, ponieważ nie zawiera mechanizmu inkrementacji liczby w sposób sekwencyjny. Jest to typowy błąd, który wynika z mylnego zrozumienia działania pętli i przypisywania wartości. Zamiast tego pętla generuje losowe liczby, co jest zupełnie innym procesem. Kod nie wczytuje danych z klawiatury, ponieważ nie zawiera żadnych funkcji wejścia/wyjścia, takich jak scanf czy inne odpowiedniki w języku PHP. Proces wczytywania danych z klawiatury wymaga interakcji z użytkownikiem, co w tym przypadku nie występuje. Istnieje również błędne zrozumienie, że kod wyświetla wylosowane liczby od 1 do 99. Funkcja rand(0,100) generuje liczby z zakresu od 0 do 100, a nie od 1 do 99. Zakres generowanych liczb jest kluczowym aspektem, który powinien być dokładnie rozumiany przez programistów, aby unikać niepoprawnych założeń prowadzących do błędnych wyników. Takie nieporozumienia często wynikają z niedostatecznej znajomości specyfikacji funkcji używanych w programowaniu i mogą prowadzić do błędów logicznych w kodzie, co w praktyce może skutkować nieoczekiwanym zachowaniem aplikacji. Ważne jest dokładne zrozumienie dokumentacji funkcji i ich właściwego zastosowania, co pozwala na poprawne projektowanie i implementację algorytmów w różnych sytuacjach problemowych. Zrozumienie różnic w działaniu funkcji i ich efektów jest kluczowe dla skutecznego programowania i unikania błędów związanych z niepoprawnym przetwarzaniem danych.

Pytanie 11

Którą funkcję z menu Kolory programu GIMP użyto, w celu uzyskania efektu przedstawionego w filmie?

A. Barwienie.
B. Progowanie.
C. Krzywe.
D. Inwersja.
Wiele osób myli w GIMP-ie różne narzędzia z menu Kolory, bo na pierwszy rzut oka kilka z nich „mocno zmienia” obraz. Jednak efekt pokazany na filmie, gdzie obraz staje się dwuwartościowy (czarno-biały, bez półtonów), jest typowym działaniem funkcji Progowanie. Kluczowe jest tu zrozumienie, czym różnią się od siebie dostępne operacje. Krzywe służą do zaawansowanej korekcji tonalnej i kontrastu. Można nimi mocno przyciemnić lub rozjaśnić wybrane zakresy jasności, robić tzw. efekt kontrastu „S”, korygować prześwietlenia itd. Ale nawet przy bardzo agresywnych ustawieniach krzywych obraz nadal zawiera półtony – pojawiają się stopniowe przejścia między odcieniami, a nie ostre odcięcie na zasadzie czarne/białe. To świetne narzędzie do retuszu zdjęć, ale nie do uzyskania efektu progowania. Inwersja (Kolory → Inwersja) po prostu odwraca wartości kolorów lub jasności: jasne staje się ciemne, czerwony zmienia się na cyjan, zielony na magentę itd. To jak negatyw fotograficzny. Struktura szczegółów pozostaje identyczna, zmienia się tylko ich „biegun”. Nie pojawia się żadne odcięcie progowe, więc obraz wciąż ma pełne spektrum odcieni. W praktyce inwersja przydaje się np. przy przygotowaniu masek lub pracy z materiałami skanowanymi, ale nie generuje typowego, „plakatowego” efektu czerni i bieli jak progowanie. Barwienie z kolei (Kolory → Barwienie) służy do nadania całemu obrazowi jednolitego odcienia, zwykle po wcześniejszym sprowadzeniu go do skali szarości. Można w ten sposób uzyskać np. sepię, niebieski ton nocny albo dowolny kolorystyczny „filtr”. Jasność i kontrast lokalny pozostają bardzo podobne, zmienia się dominująca barwa. To zupełnie inna kategoria operacji niż progowanie, które pracuje na poziomie progów jasności, a nie na poziomie koloru. Typowym błędem jest patrzenie tylko na to, że „obraz bardzo się zmienił” i przypisywanie tego narzędziom takim jak krzywe czy inwersja. W pracy z grafiką warto zawsze zadać sobie pytanie: czy efekt polega na zmianie rozkładu jasności, na odwróceniu kolorów, czy na twardym podziale na dwa poziomy? Jeśli widzisz brak półtonów i ostre granice, praktycznie zawsze chodzi o progowanie, które zostało wskazane jako poprawna funkcja.

Pytanie 12

Aby przekształcić tekst „ala ma psa” na „ALA MA PSA”, jaka funkcja PHP powinna być zastosowana?

A. strtolower('ala ma psa');
B. strstr ('ala ma psa');
C. strtoupper('ala ma psa');
D. ucfirst ('ala ma psa');
Funkcja strtoupper w PHP jest używana do konwersji wszystkich liter w danym ciągu znaków na wielkie litery. W kontekście modyfikacji tekstu „ala ma psa” na „ALA MA PSA”, zastosowanie funkcji strtoupper('ala ma psa') jest poprawnym podejściem. Funkcja ta jest częścią standardowej biblioteki PHP i jest szeroko stosowana w projektach, gdzie zachowanie wielkich liter jest kluczowe. Przykład użycia funkcji strtoupper jest prosty: wystarczy przekazać do niej ciąg, który ma zostać przekształcony. Przykładem może być zapis: $text = 'ala ma psa'; $uppercaseText = strtoupper($text); echo $uppercaseText; co wygeneruje wynik ALA MA PSA. Warto zauważyć, że funkcja ta nie zmienia oryginalnego ciągu, lecz zwraca nowy ciąg z przekształconymi literami. Zastosowanie funkcji strtoupper jest szczególnie przydatne w aplikacjach webowych, gdzie formatowanie tekstu może być kluczowe dla zapewnienia spójności danych wyjściowych oraz ich estetyki.

Pytanie 13

W systemie baz danych sklepu komputerowego znajduje się tabela o nazwie komputery. Aby stworzyć raport, który wyświetli dane dla konkretnego zestawu informacji z tej tabeli, zawierający tylko te komputery, które mają co najmniej 8 GB pamięci RAM oraz procesor Intel, można wykorzystać zapytanie:

A. SELECT * FROM komputery WHERE procesor= 'Intel' AND pamiec>=8
B. SELECT * FROM komputery WHERE procesor= 'Intel' OR pamiec>=8
C. SELECT * FROM komputery WHERE procesor= 'Intel' AND pamiec<8
D. SELECT * FROM komputery WHERE procesor= 'Intel' OR pamiec<8
Aby stworzyć kwerendę, która wyświetli wszystkie komputery w tabeli 'komputery', spełniające określone warunki, musimy użyć odpowiednich operatorów logicznych oraz porównań. W tym przypadku chcemy uzyskać sprzęt, którego procesor to 'Intel' oraz pamięć RAM wynosi co najmniej 8 GB. Kluczowym elementem jest tutaj użycie operatora 'AND', który zapewnia, że muszą być spełnione oba warunki jednocześnie. Kwerenda 'SELECT * FROM komputery WHERE procesor= 'Intel' AND pamiec>=8;' w pełni odpowiada tym wymaganiom. Operator 'AND' jest istotny, ponieważ bez niego moglibyśmy otrzymać komputery z procesorem Intel, ale z pamięcią RAM mniejszą niż 8 GB, co jest sprzeczne z naszym celem. Tego rodzaju zapytania są powszechne w analizie danych i często wykorzystywane w raportowaniu i wizualizacji danych. Odpowiednia struktura kwerendy zapewnia, że wyniki będą precyzyjne i zgodne z oczekiwaniami użytkowników, co jest kluczowe w zarządzaniu bazami danych oraz w tworzeniu systemów informacyjnych dla sklepów komputerowych.

Pytanie 14

Jakie jest zastosowanie certyfikatu SSL?

A. zapobiegania złośliwemu oprogramowaniu na stronie
B. określenia właściciela domeny
C. odszyfrowywania przesyłanych danych
D. przechowywania informacji o sesjach tworzonych na stronie
Często ludzie mylą, co właściwie robi certyfikat SSL. Na przykład blokowanie złośliwego oprogramowania to zupełnie inna sprawa, która bardziej dotyczy takich rzeczy jak firewalle czy systemy wykrywania intruzów. SSL nie chroni przed atakami hakerskimi, a raczej zabezpiecza dane podczas przesyłania ich między klientem a serwerem. Zapisywanie danych sesji, które są tworzone na stronie, to też inny temat – to bardziej dotyczy zarządzania sesjami, na przykład przez ciasteczka. No i jeśli chodzi o deszyfrację danych, to SSL nie zajmuje się tym bezpośrednio. On tylko zapewnia, że połączenie jest bezpieczne i dane nie wpadną w niepowołane ręce. Dlatego przypisywanie certyfikatom SSL funkcji, które wykonują inne technologie bezpieczeństwa, to spory błąd. Trzeba po prostu zrozumieć, że każdy element zabezpieczeń ma swoją rolę w sieci.

Pytanie 15

W dziedzinie grafiki komputerowej termin kanał alfa odnosi się do

A. pikselizacji
B. przezroczystości
C. barwienia
D. koloryzacji
Kanał alfa jest kluczowym elementem w grafice komputerowej, który odpowiada za reprezentowanie przezroczystości pikseli w obrazie. W praktyce oznacza to, że każdy piksel w obrazie może mieć przypisany poziom przezroczystości, co pozwala na tworzenie efektów takich jak cieniowanie, nakładanie różnych warstw oraz efekty specjalne. Kanał alfa jest zwykle reprezentowany jako dodatkowy kanał w formacie RGBA, gdzie R, G, i B oznaczają odpowiednio kolory czerwony, zielony i niebieski, a A to kanał alfa, który definiuje stopień przezroczystości. Na przykład, w przypadku edytorów graficznych, takich jak Adobe Photoshop, użytkownicy mogą łatwo manipulować przezroczystością warstw, co jest bardzo przydatne w procesie tworzenia złożonych kompozycji. W standardach graficznych, takich jak OpenGL i DirectX, kanał alfa również odgrywa istotną rolę w renderowaniu obiektów 3D, umożliwiając realistyczne efekty wizualne. Zrozumienie działania kanału alfa jest niezbędne dla artystów cyfrowych i projektantów, aby w pełni wykorzystać możliwości, jakie oferuje nowoczesna grafika komputerowa.

Pytanie 16

Aby obliczyć liczbę wszystkich wierszy w tabeli Koty, należy zastosować zapytanie:

A. SELECT COUNT(*) FROM Koty
B. SELECT COUNT(ROWNUM) FROM Koty
C. SELECT ROWNUM() FROM Koty
D. SELECT COUNT(Koty) AS ROWNUM
Poprawna odpowiedź to 'SELECT COUNT(*) FROM Koty', ponieważ to standardowy sposób zliczania wszystkich wierszy w tabeli w SQL. Funkcja COUNT(*) zlicza wszystkie wiersze, niezależnie od tego, czy zawierają wartości NULL, czy nie. Jest to najczęściej używana metoda w praktyce, ponieważ zapewnia dokładny wynik i jest także optymalizowana przez silnik baz danych, co czyni ją efektywną. Na przykład, jeśli mamy tabelę 'Koty' zawierającą różne dane o kotach, użycie tego polecenia zwróci dokładną liczbę kotów zapisanych w tej tabeli. Dobrym zwyczajem jest również korzystanie z aliasów lub konstruowania zapytań z dodatkowymi warunkami, co pozwala na bardziej złożoną analizę danych. Przy pracy z dużymi zbiorami danych, zrozumienie jak działa COUNT(*) i jego zastosowanie w kontekście innych funkcji agregujących jest kluczowe dla optymalizacji zapytań. Warto również pamiętać, że w SQL standardowym zliczanie wierszy bezpośrednio z tabeli jest znacznie bardziej efektywne i czytelne niż inne metody, co czyni tę praktykę najlepszą do stosowania w codziennej pracy z bazami danych.

Pytanie 17

Jak określa się podzbiór strukturalnego języka zapytań, który dotyczy formułowania zapytań do bazy danych przy użyciu polecenia SELECT?

A. SQL DQL (ang. Data Query Language)
B. SQL DML (ang. Data Manipulation Language)
C. SQL DCL (ang. Data Control Language)
D. SQL DDL (ang. Data Definition Language)
SQL DQL (Data Query Language) to podzbiór języka SQL, który koncentruje się na formułowaniu zapytań do baz danych w celu pobierania danych. Jego głównym elementem jest polecenie SELECT, które umożliwia użytkownikom wybieranie specyficznych danych z tabel oraz ich przetwarzanie w różnorodny sposób, w tym filtrowanie, sortowanie i łączenie danych z różnych źródeł. Przykładem zastosowania DQL jest zapytanie typu 'SELECT * FROM employees WHERE department = 'Sales';', które zwraca wszystkich pracowników z działu sprzedaży. DQL jest kluczowym elementem w analizie danych oraz raportowaniu, co sprawia, że znajomość tego podzbioru jest niezbędna dla analityków danych oraz programistów. Zrozumienie i umiejętność korzystania z DQL pozwala na efektywne wykorzystanie baz danych w praktycznych zastosowaniach biznesowych, takich jak generowanie raportów, analiza trendów oraz wspieranie decyzji strategicznych. Standardy SQL określają dobre praktyki związane z tworzeniem zapytań, co pozwala na zachowanie wydajności i czytelności kodu.

Pytanie 18

W HTML-u, aby połączyć w poziomie dwie sąsiednie komórki w danym wierszu tabeli, należy wykorzystać atrybut

A. colspan
B. cellspacing
C. cellpadding
D. rowspan
Atrybut colspan w języku HTML jest kluczowym narzędziem do scalania komórek w tabeli w poziomie. Umożliwia on połączenie dwóch lub więcej sąsiednich komórek w jednym wierszu, co pozwala na bardziej elastyczne i estetyczne układanie danych. Przykładowo, jeśli mamy tabelę z informacjami o produktach, a jeden z produktów ma długą nazwę, możemy użyć atrybutu colspan, aby ta nazwa zajmowała miejsce w dwóch lub więcej komórkach, co poprawia czytelność tabeli. Dobre praktyki w projektowaniu tabel wskazują, że należy unikać nadmiarowych komórek i skomplikowanych układów, gdyż obniża to przejrzystość danych. Zamiast tego, właściwe użycie atrybutów takich jak colspan pozwala na lepsze zorganizowanie informacji. Warto również pamiętać, że poprawne stosowanie atrybutu colspan powinno być zgodne z ogólnymi zasadami projektowania responsywnego, co oznacza, że tabela powinna dobrze się prezentować na różnych urządzeniach. Dodatkowo, atrybut colspan ma swoje zastosowanie także w kontekście dostępności, gdyż odpowiednie użycie tej funkcji pozwala na lepszą nawigację i zrozumienie struktury tabeli przez osoby korzystające z technologii asystujących.

Pytanie 19

Który z poniższych zapisów w HTML określa kodowanie znaków stosowane w dokumencie?

A. <meta encoding="UTF-8">
B. <encoding="UTF-8">
C. <charset="UTF-8">
D. <meta charset="UTF-8">
Zapis <meta charset="UTF-8"> jest prawidłową deklaracją kodowania znaków w dokumencie HTML. Element <meta> jest używany w sekcji <head> dokumentu i pozwala na zdefiniowanie różnych metadanych, w tym kodowania znaków. Użycie "UTF-8" jako wartości dla atrybutu charset oznacza, że dokument będzie używał kodowania Unicode, które jest standardem preferowanym w sieci. Dzięki temu, dokumenty mogą poprawnie wyświetlać znaki z różnych języków, co jest kluczowe w zglobalizowanym świecie internetu. Przykładem zastosowania tego zapisu może być strona internetowa, która zawiera teksty w wielu językach, co wymaga wsparcia dla różnorodnych znaków diakrytycznych i symboli. Warto również podkreślić, że zgodnie z zasadami dobrych praktyk, zawsze powinno się definiować kodowanie znaków w dokumencie HTML, aby uniknąć problemów z wyświetlaniem treści, co może negatywnie wpłynąć na doświadczenia użytkowników oraz SEO strony.

Pytanie 20

Jakie jest poprawne zapisanie tagu HTML?

<a href="#hobby">przejdź</a>
A. jest błędny, w atrybucie href powinien być podany adres URL
B. jest prawidłowy, po kliknięciu w odnośnik otworzy się strona pod adresem "hobby"
C. jest poprawny, po kliknięciu w odnośnik strona zostanie przewinięta do elementu o nazwie "hobby"
D. jest błędny, użyto niewłaściwego znaku # w atrybucie href
Znaczniki HTML są podstawowym narzędziem tworzenia stron internetowych a ich prawidłowe zastosowanie ma kluczowe znaczenie dla funkcjonalności i użyteczności witryny. W omawianym przypadku atrybut href='#hobby' używa tzw. kotwicy która służy do nawigacji wewnętrznej w obrębie jednej strony. Linki wewnętrzne są istotne gdyż pozwalają na szybkie przeskakiwanie do określonych sekcji dokumentu. W odpowiedziach błędnych zauważalne są pewne nieporozumienia. Po pierwsze jeśli w href użyto adresu URL bez znaku hash oznacza to próbę przekierowania na zupełnie inną stronę co jest niepoprawne w kontekście nawigacji wewnętrznej. Podanie pełnego adresu URL jest wymagane jedynie gdy chcemy przejść do innej strony internetowej. Znak hash w tym kontekście jest poprawny gdyż wskazuje na docelowy identyfikator wewnątrz tej samej strony. Jest to zgodne z praktykami tworzenia przejrzystych i funkcjonalnych interfejsów użytkownika. Nieprawidłowe interpretacje mogą wynikać z braku zrozumienia jak działają kotwice w HTML co może prowadzić do błędów w projektowaniu doświadczenia użytkownika oraz kodu o niskiej użyteczności. Edukacja i praktyka w używaniu standardowych znaczników HTML jest niezbędna dla tworzenia profesjonalnych projektów internetowych które są przyjazne dla użytkowników i działają zgodnie z oczekiwaniami. Rozumienie tych zasad pozwala na tworzenie stron zgodnych z najlepszymi praktykami branżowymi co ma kluczowe znaczenie dla współczesnych wymagań projektowych i użytkowych.

Pytanie 21

Za pomocą stylu CSS zdefiniowano obramowanie pojedyncze o następujących kolorach krawędzi:

border: solid 1px;
border-color: red blue green yellow;
Jakie kolory będą miały poszczególne krawędzie?
A. lewa – czerwona, dolna – niebieska, prawa – zielona, górna – żółta.
B. prawa – czerwona, dolna – niebieska, lewa – zielona, górna – żółta.
C. górna – czerwona, lewa – niebieska, dolna – zielona, prawa – żółta.
D. górna – czerwona, prawa – niebieska, dolna – zielona, lewa – żółta.
W tym pytaniu kluczowe jest zrozumienie skróconej składni własności `border-color` w CSS. Gdy podamy cztery wartości kolorów, przeglądarka interpretuje je zawsze w tej samej kolejności: góra (top), prawa (right), dół (bottom), lewa (left). Dokładnie tak samo działa to jak przy `margin` czy `padding`. Czyli zapis `border-color: red blue green yellow;` oznacza: górna krawędź – czerwona, prawa – niebieska, dolna – zielona, lewa – żółta. Styl `border: solid 1px;` określa tylko typ obramowania (ciągła linia) i grubość (1px), ale bez kolorów. Kolory są dopiero dodane przez `border-color`. W praktyce bardzo często używa się tej skróconej notacji, np. żeby wyróżnić jedną krawędź: `border-color: transparent transparent red transparent;` – daje to efekt podkreślenia tylko od dołu. Z mojego doświadczenia w front‑endzie lepiej zapamiętać prostą zasadę: przy czterech wartościach zawsze idziemy zgodnie z ruchem wskazówek zegara, zaczynając od góry: top → right → bottom → left. To się powtarza przy wielu własnościach CSS. Warto też wiedzieć, że można podać mniej wartości: jedną (wszystkie krawędzie ten sam kolor), dwie (góra/dół i prawa/lewa), trzy (góra, prawa/lewa, dół). Jednak w tym zadaniu są cztery, więc każda krawędź ma osobny kolor. Takie podejście jest zgodne ze specyfikacją CSS (box model) i jest powszechnie stosowane w projektach produkcyjnych do tworzenia np. ramek, strzałek, wyróżnień nagłówków czy kart.

Pytanie 22

Aby zwiększyć wydajność operacji na bazie danych, należy dla pól, które są często wyszukiwane lub sortowane

A. stworzyć osobną tabelę przechowującą tylko te pola
B. utworzyć indeks
C. dodać klucz obcy
D. dodać więzy integralności
Tworzenie indeksu na polach, które często przeszukujesz lub sortujesz, to naprawdę ważna rzecz, jeśli chodzi o wydajność baz danych. Indeksy działają trochę jak spis treści w książkach – pozwalają systemowi szybko znaleźć te dane, których potrzebujesz, bez przeszukiwania całego folderu. Dzięki nim zapytania SELECT mogą iść jak burza, co ma ogromne znaczenie w aplikacjach, gdzie liczy się czas. Przykład? Jeśli zrobisz indeks na kolumnie 'email' w tabeli 'Users', to znacznie szybciej odnajdziesz użytkowników po adresie email. W praktyce warto też regularnie monitorować, jak działają te indeksy i je optymalizować, na przykład usuwając te, które są zbędne, żeby nie przeciążać bazy danych. Dobrze jest pamiętać, że przy dodawaniu lub aktualizowaniu danych, indeksy mogą trochę spowolnić działanie, więc lepiej używać ich z głową.

Pytanie 23

Użytkownik Jan będzie mógł wykonywać

GRANT ALL PRIVILEGES ON dane.* TO 'Jan'@'localhost';
A. wszystkie operacje na tabelach bazy dane.
B. jedynie operacje manipulowania danymi i zmienić jedynie swoje prawa.
C. wszystkie operacje na tabelach bazy dane oraz nadawać prawa innym użytkownikom.
D. jedynie operacje CREATE, ALTER, DROP na tabelach bazy dane.
Prawidłowo zauważyłeś, że użytkownikowi Jan przypisano wszystkie uprawnienia (GRANT ALL PRIVILEGES) na bazie danych o nazwie 'dane.*'. Przyznanie pełnych uprawnień obejmuje możliwość tworzenia, modyfikowania, usuwania tabel, jak również manipulowania danymi w tych tabelach. W praktyce oznacza to, że Jan ma pełną kontrolę nad bazą danych. Jest to możliwe dzięki konstrukcji GRANT, która jest standardem w zarządzaniu uprawnieniami w relacyjnych bazach danych. Pozwala ona na precyzyjne definiowanie, jakie operacje może wykonywać dany użytkownik. Taka granularna kontrola jest kluczowa dla bezpieczeństwa systemów bazodanowych. Pamiętaj, że nadawanie pełnych uprawnień jest odpowiednie jedynie w sytuacjach, gdy użytkownik jest całkowicie zaufany - w innym przypadku, powinno się ograniczyć uprawnienia do tych, które są niezbędne do wykonania pewnych zadań.

Pytanie 24

Jakie polecenie pozwala na zwiększenie wartości o jeden w polu RokStudiów w tabeli Studenci dla tych studentów, którzy są na roku 1÷4?

A. UPDATE Studenci SET RokStudiow WHERE RokStudiow < 5
B. UPDATE Studenci SET RokStudiow = RokStudiow+1 WHERE RokStudiow < 5
C. UPDATE Studenci, RokStudiow+1 WHERE RokStudiow < 5
D. UPDATE RokStudiow SET RokStudiow++ WHERE RokStudiow < 5
Odpowiedzi, które nie są poprawne, zawierają fundamentalne błędy w składni SQL oraz logice operacji aktualizacji. Na przykład, zapis 'UPDATE Studenci, RokStudiow+1 WHERE RokStudiow < 5;' jest nieprawidłowy, ponieważ użycie przecinka w kontekście aktualizacji jest błędne; w SQL nie można zaktualizować kolumny przez dodawanie wartości bezpośrednio w samej instrukcji UPDATE. Z kolei 'UPDATE Studenci SET RokStudiow WHERE RokStudiow < 5;' pomija kluczowy element, jakim jest przypisanie nowej wartości do kolumny RokStudiow; instrukcja ta nie ma sensu, ponieważ nie określa, co ma być ustawione w RokStudiow. W odniesieniu do 'UPDATE RokStudiow SET RokStudiow++ WHERE RokStudiow < 5;' warto zauważyć, że nie można używać operatorów inkrementacji (takich jak '++') w SQL w taki sposób; SQL nie wspiera operatorów inkrementacji, które są typowe dla języków programowania, takich jak C++ czy Java. Kluczowym błędem myślowym jest także niemożność zrozumienia koncepcji aktualizacji danych w tabeli, co prowadzi do niepoprawnego formułowania zapytań. W efekcie, nieposługiwanie się poprawnymi standardami SQL może prowadzić do nieefektywności i problemów z integralnością danych w bazie.

Pytanie 25

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

A. dodawanie danych do tabel
B. aktualizowanie danych w tabelach
C. analizę wybranych danych
D. usuwanie danych z tabel
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 26

Wykonanie zapytania SQL: DELETE FROM mieszkania WHERE status=1; spowoduje usunięcie

A. rekordów, gdzie pole status ma wartość 1, z tabeli mieszkania
B. pola o nazwie status w tabeli mieszkania
C. tabel, w których pole status ma wartość 1, z bazy danych mieszkania
D. tabeli mieszkania w bazie danych
Wiele osób błędnie interpretuje znaczenie polecenia DELETE w SQL, co prowadzi do mylnych wniosków. Na przykład, stwierdzenie, że polecenie to usunie tabelę mieszkania z bazy danych, jest niewłaściwe. W rzeczywistości kwerenda DELETE jest stosowana do usuwania konkretnych rekordów z tabeli, a nie samej tabeli. Aby usunąć całą tabelę, stosuje się polecenie DROP TABLE, które ma zupełnie inną funkcję i konsekwencje. Ponadto, twierdzenie, że polecenie usunie pole o nazwie status, jest również błędne. W SQL pole DELETE działa na poziomie rekordów, a nie kolumn, co oznacza, że można usunąć tylko dane wierszy, a nie struktury tabeli. Innym nieporozumieniem jest sugestia, że cała baza danych mieszkań zostanie zmodyfikowana. Każda tabela w bazie danych jest niezależna, a operacje na jednej tabeli nie mają wpływu na inne, chyba że są powiązane kluczami obcymi. Właściwe zrozumienie działania kwerendy DELETE oraz zasad przeprowadzania operacji na bazach danych jest kluczowe w programowaniu i administracji bazami danych, aby unikać niezamierzonych skutków i zapewnić integralność danych.

Pytanie 27

Badania dotyczące skalowalności oprogramowania mają na celu sprawdzenie, czy aplikacja

A. jest w stanie funkcjonować przy przewidzianym oraz większym obciążeniu
B. posiada właściwą funkcjonalność
C. jest chroniona przed nieautoryzowanymi operacjami, takimi jak dzielenie przez zero
D. jest odpowiednio opisana dokumentacją
Odpowiedź 'potrafi działać przy zakładanym i większym obciążeniu' jest prawidłowa, ponieważ testy skalowalności oprogramowania mają na celu ocenę, jak aplikacja radzi sobie w warunkach wzrastającego obciążenia. Skalowalność odnosi się do zdolności systemu do obsługi większej ilości użytkowników lub danych bez utraty wydajności. Przykładem może być aplikacja internetowa, która musi obsługiwać rosnącą liczbę zapytań w godzinach szczytu. Dobrą praktyką jest przeprowadzanie testów obciążeniowych i stresowych, aby zidentyfikować punkty krytyczne i wąskie gardła w architekturze aplikacji. W standardzie ISO/IEC 25010 definiuje się jakość produktu oprogramowania, gdzie skalowalność jest kluczowym zjawiskiem wpływającym na niezawodność i wydajność systemu. Testy te pozwalają również na ocenę, czy architektura aplikacji jest wystarczająco elastyczna, aby dostosować się do zmieniających się potrzeb użytkowników oraz na potwierdzenie, że infrastruktura serwerowa i sieciowa spełniają wymagania związane z przyszłym wzrostem obciążenia.

Pytanie 28

Kolor zaprezentowany na ilustracji, zapisany w modelu RGB, w formacie szesnastkowym będzie określony w następujący sposób

Ilustracja do pytania
A. 77A0C1
B. 77A1C1
C. 71A0B2
D. 76A3C1
Błędne odpowiedzi wynikają z niepoprawnej konwersji wartości RGB na zapis szesnastkowy. Przy konwersji kolorów z modelu RGB na system szesnastkowy kluczowe jest poprawne przeliczenie każdej z trzech składowych: czerwonego zielonego i niebieskiego. Wartości te w modelu RGB wahają się od 0 do 255 co w systemie szesnastkowym odpowiada wartościom od 00 do FF. Niewłaściwe zrozumienie tego procesu prowadzi do błędnych wyników. W przykładzie wartość 119 dla czerwonego należy przeliczyć na 77 w systemie szesnastkowym. Podobnie 160 dla zielonego konwertuje się na A0 a 193 dla niebieskiego na C1. Powszechny błąd polega na pomyleniu wartości dziesiętnych z ich odpowiednikami szesnastkowymi bądź na niepoprawnym zaokrąglaniu podczas konwersji. Innym częstym błędem jest niepoprawne zrozumienie znaczenia kolejności zapisu gdzie każda para znaków odpowiada jednej składowej RGB. Aby uniknąć takich błędów warto korzystać z kalkulatorów konwersji lub narzędzi graficznych które automatycznie dokonują prawidłowej zamiany co jest zgodne z dobrymi praktykami projektowymi. Znajomość tych zasad jest kluczowa w pracy z grafiką komputerową i web designem gdzie precyzja w odwzorowaniu kolorów ma ogromne znaczenie dla ostatecznego wyglądu projektu.

Pytanie 29

Zgodnie z zasadami ACID, które odnoszą się do realizacji transakcji, wymóg trwałości (ang. durability) oznacza, że

A. transakcja może w pewnych okolicznościach być podzielona na dwa niezależne etapy
B. w przypadku naruszenia spójności bazy danych transakcja usuwa tabele z kluczami obcymi
C. dane zatwierdzone przez transakcję powinny być dostępne niezależnie od wydarzeń, które nastąpią po jej zakończeniu
D. w trakcie wykonywania transakcji dane mogą być zmieniane przez inne transakcje
Trwałość (czyli durability) w bazach danych to taka cecha, która mówi, że jak już zatwierdzisz transakcję, to wszystkie zmiany zostaną na zawsze w systemie. To znaczy, że niezależnie od tego, co się później wydarzy, jak na przykład awaria, Twoje dane są bezpieczne. To naprawdę ważne, bo pozwala na utrzymanie spójności i pewności, że system działa tak, jak powinien. Weźmy na przykład systemy bankowe. Gdy robisz przelew, musisz być pewien, że pieniądze poszły tam, gdzie miały, nawet jak serwer padnie tuż po zakończeniu transakcji. Dobrze jest mieć też takie mechanizmy, jak zapisywanie dzienników, które pomagają odtworzyć dane, jeśli coś pójdzie nie tak. Trwałość to kluczowa sprawa w projektowaniu baz danych, bo buduje zaufanie użytkowników oraz pozwala spełnić różne normy i regulacje.

Pytanie 30

W języku SQL, aby dodać atrybut klucza podstawowego do pola id w istniejącej tabeli produkt należy użyć składni

A. ALTER TABLE produkt ADD PRIMARY KEY (id)
B. ALTER TABLE produkt DROP PRIMARY KEY
C. ALTER TABLE produkt DROP CONSTRAINT id
D. ALTER TABLE produkt ALTER COLUMN id INT
Poprawna składnia to ALTER TABLE produkt ADD PRIMARY KEY (id), bo dokładnie to polecenie dodaje do istniejącej tabeli nowy klucz podstawowy oparty na kolumnie id. Instrukcja ALTER TABLE służy do modyfikowania struktury tabeli, a klauzula ADD PRIMARY KEY definiuje ograniczenie (constraint) typu klucz podstawowy dla wskazanej kolumny lub zestawu kolumn. W praktyce oznacza to, że kolumna id musi być unikalna i nie może przyjmować wartości NULL. Silnik bazy danych (np. MySQL, PostgreSQL, SQL Server) zwykle tworzy do tego indeks typu UNIQUE, który przyspiesza wyszukiwanie po kluczu głównym. Moim zdaniem warto pamiętać, że takie polecenie będzie działać tylko wtedy, gdy dane w kolumnie id już spełniają warunki klucza podstawowego: brak duplikatów i brak wartości pustych. W realnym projekcie często robi się to w dwóch krokach: najpierw uzupełnia się brakujące wartości, usuwa lub poprawia duplikaty, a dopiero potem dodaje PRIMARY KEY. Przykładowo: ALTER TABLE produkt ADD PRIMARY KEY (id); W wielu systemach, zwłaszcza w aplikacjach webowych, kolumna id jest też często ustawiana jako AUTO_INCREMENT (MySQL) lub używa sekwencji (PostgreSQL, Oracle). Wtedy definicja tabeli przy tworzeniu może wyglądać np. tak: CREATE TABLE produkt (id INT PRIMARY KEY AUTO_INCREMENT, nazwa VARCHAR(100)); Jeśli jednak tabela już istnieje i kolumna id była zwykłą kolumną, to właśnie ALTER TABLE ... ADD PRIMARY KEY (id) jest standardowym, poprawnym sposobem nadania jej roli klucza głównego. To rozwiązanie jest zgodne z ogólną składnią SQL i dobrą praktyką modelowania relacyjnych baz danych, gdzie każda tabela powinna mieć jasno zdefiniowany klucz podstawowy, najlepiej prosty, stabilny i jednoznaczny.

Pytanie 31

Czego nie należy robić, aby zabezpieczyć serwer bazy danych przed atakami hakerów?

A. defragmentacja dysków.
B. używanie skomplikowanych haseł do bazy.
C. aktywacja zapory.
D. blokowanie portów związanych z bazą danych.
Włączenie zapory sieciowej jest istotnym krokiem w zabezpieczaniu serwera bazy danych. Zapora działa jako filtr, który kontroluje ruch przychodzący i wychodzący, blokując potencjalnie szkodliwe połączenia, co jest kluczowe w kontekście ochrony przed atakami DDoS oraz nieautoryzowanym dostępem. Ponadto stosowanie złożonych haseł jest fundamentalnym elementem bezpieczeństwa, jako że proste hasła mogą być łatwo złamane przez ataki typu brute-force. Wdrożenie polityki silnych haseł, które zawierają kombinacje liter, cyfr oraz symboli, znacząco zwiększa poziom ochrony dostępu do bazy danych. Blokowanie portów to kolejna ważna praktyka; poprzez zamykanie portów, które nie są używane przez serwer bazy danych, znacznie ograniczamy możliwości ataków, ponieważ wiele złośliwych działań opiera się na próbie skanowania otwartych portów w celu znalezienia luk w zabezpieczeniach. Zrozumienie tych aspektów jest kluczowe dla wszystkich administratorów baz danych, którzy muszą dbać o integralność i bezpieczeństwo danych. Ignorowanie tych praktyk w imię nieistotnych działań, takich jak defragmentacja, może prowadzić do poważnych naruszeń bezpieczeństwa, co podkreśla znaczenie stosowania znanych i sprawdzonych metod ochrony w środowisku IT.

Pytanie 32

W tabeli pracownicy utworzono klucz główny typu INTEGER z atrybutami NOT NULL oraz AUTO-INCREMENT. Dodatkowo zdefiniowano pola imie oraz nazwisko. W przypadku użycia przedstawionej w ramce kwerendy SQL wprowadzającej dane, gdzie pominięto pole klucza, w bazie danych MySQL dojdzie do

Ilustracja do pytania
A. zignorowania polecenia, tabela nie ulegnie zmianie
B. błędu związane z nieprawidłową liczbą pól
C. wprowadzenia rekordu do tabeli, dla klucza głównego zostanie przypisana wartość NULL
D. wprowadzenia rekordu do tabeli, dla klucza głównego zostanie przypisana kolejna wartość naturalna
W przypadku bazy danych MySQL, klucz główny zdefiniowany z atrybutem AUTO-INCREMENT pełni ważną funkcję automatycznego przydzielania unikalnych wartości liczbowych dla każdego nowego rekordu. Jest to szczególnie przydatne w dużych bazach danych, gdzie ręczne przypisywanie wartości klucza mogłoby prowadzić do błędów czy konfliktów. W przedstawionym przypadku, query SQL typu INSERT INTO pracownicy (imie, nazwisko) VALUES ('Anna', 'Nowak'); pomija pole klucza głównego. Dzięki zastosowaniu AUTO-INCREMENT, MySQL automatycznie przydzieli nową wartość klucza głównego, która będzie kolejną w sekwencji, zapewniając integralność danych. Tego rodzaju mechanizm jest standardem w zarządzaniu relacyjną bazą danych, co pozwala na efektywne i bezpieczne operowanie danymi bez ryzyka wystąpienia błędów związanych z ręcznym zarządzaniem kluczami. Dobre praktyki sugerują, aby w takich przypadkach polegać na funkcji AUTO-INCREMENT, co nie tylko ułatwia pracę z bazą danych, ale również minimalizuje możliwość wystąpienia duplikatów czy niespójności w danych. To podejście jest szeroko stosowane w branży IT, szczególnie w przypadkach systemów wymagających dużego wolumenu danych.

Pytanie 33

Podczas walidacji strony napotkano błąd. Co to oznacza?

Ilustracja do pytania
A. w atrybucie charset dopuszczalna jest wyłącznie wartość "utf-8"
B. oznaczenie ISO-8859-2 jest nieprawidłowe
C. określenie kodowania znaków musi być zapisane bez użycia myślników
D. znacznik meta nie zawiera atrybutu charset
Odpowiedź jest poprawna ponieważ współczesne standardy tworzenia stron internetowych wymagają kodowania znaków w formacie UTF-8. Specyfikacja HTML5 zaleca używanie UTF-8 jako domyślnego kodowania ze względu na jego wszechstronność i szerokie wsparcie dla różnych znaków i symboli. UTF-8 jest kompatybilny z wieloma językami i zapewnia, że strony internetowe będą prawidłowo wyświetlane na różnych urządzeniach i przeglądarkach. Korzystanie z UTF-8 eliminuje również problemy związane z niepoprawnym wyświetlaniem znaków specjalnych co jest częstym problemem w kodowaniach takich jak ISO-8859-2. W praktyce oznacza to że wszystkie nowe projekty stron internetowych powinny deklarować kodowanie UTF-8 w znaczniku meta. Na przykład poprawnie zdefiniowany znacznik wyglądałby następująco meta charset="utf-8". Dobrym podejściem jest również upewnienie się że zarówno pliki HTML jak i serwer są zgodne z tym ustawieniem co zapobiega potencjalnym konfliktom Użycie UTF-8 zgodne jest z najlepszymi praktykami branżowymi wspierającymi tworzenie dostępnych i zróżnicowanych treści internetowych.

Pytanie 34

W przedstawionym kodzie PHP przeprowadzono operację na bazie danych. Jaką funkcję należy wywołać, aby uzyskać liczbę wierszy, które zostały zmienione w tabeli?

$zapytanie="UPDATE kadra SET stanowisko='Programista' WHERE id < 10"; mysqli_query($db, $zapytanie);
A. mysqli_num_rows()
B. mysqli_use_result()
C. mysqli_affected_rows()
D. mysqli_field_count()
Funkcja mysqli_affected_rows() jest używana w kontekście zapytań modyfikujących dane w bazie danych, takich jak INSERT, UPDATE, DELETE. Po wykonaniu zapytania, które zmienia dane, funkcja ta zwraca liczbę wierszy, które zostały zmodyfikowane w wyniku wykonania tego zapytania. W przypadku podanego zapytania, zmieniającego stanowisko w tabeli 'kadra' dla rekordów z identyfikatorem mniejszym niż 10, użycie mysqli_affected_rows() pozwoli na uzyskanie informacji o tym, ile wierszy zostało zaktualizowanych. Jest to niezwykle przydatne w sytuacjach, gdy programista chce mieć kontrolę nad tym, które operacje modyfikujące dane przyniosły zamierzony efekt. Przykładowo, jeśli po wykonaniu zapytania chcemy zaktualizować interfejs użytkownika lub wykonać dodatkowe operacje tylko wtedy, gdy zmiany zostały wprowadzone, użycie tej funkcji jest kluczowe. Dobrą praktyką jest również uwzględnienie obsługi błędów, aby upewnić się, że operacje na bazie danych są poprawnie wykonane, co można osiągnąć za pomocą funkcji mysqli_error() w przypadku błędów zapytań.

Pytanie 35

Jaką rozdzielczość przyjmuje standard HDTV?

A. 720x480 px
B. 1280x1024 px
C. 1920x1080 px
D. 704x576 px
Rozdzielczości 704x576 px oraz 720x480 px są standardami stosowanymi w systemie SD (Standard Definition), który oferuje znacznie niższą jakość obrazu w porównaniu do HDTV. Rozdzielczość 704x576 px, znana z systemu PAL, charakteryzuje się niskim poziomem detali, co ogranicza jakość wizualną obrazów, zwłaszcza na większych ekranach. Z kolei 720x480 px, stosowane głównie w systemie NTSC, również nie osiąga standardów jakości HDTV. Te rozdzielczości są odpowiednie dla starszych technologii telewizyjnych, ale w erze rozwoju technologii HD i 4K, ich zastosowanie staje się coraz bardziej ograniczone i nie jest zgodne z oczekiwaniami użytkowników nowoczesnych urządzeń. Dodatkowo, rozdzielczość 1280x1024 px, która jest typowa dla monitorów komputerowych o proporcjach 5:4, również nie spełnia standardów HDTV. Mimo że ta rozdzielczość zapewnia poprawną jakość obrazu na komputerach, nie jest uznawana za standard telewizyjny, przez co nie jest zgodna z obowiązującymi normami dla obrazu HD. W związku z tym, zarówno 704x576 px, 720x480 px, jak i 1280x1024 px nie są odpowiednie dla standardu HDTV.

Pytanie 36

W języku PHP instrukcja foreach jest rodzajem

A. instrukcji wyboru, dla elementów tablicy
B. pętli, przeznaczonej wyłącznie dla elementów tablicy
C. instrukcji warunkowej, niezależnie od typu zmiennej
D. pętli, niezależnie od rodzaju zmiennej
Instrukcja <i>foreach</i> w PHP to naprawdę super sprawa, jeśli chodzi o przechodzenie przez elementy tablicy. Dzięki niej można bardzo prosto iterować po wszystkich wartościach, co sprawia, że kod staje się bardziej przejrzysty i zwięzły. Nie trzeba wtedy się martwić o ręczne zarządzanie wskaźnikami tablicy. A dostęp do kluczy i wartości? Proszę bardzo! Na przykład, mając tablicę $fruits = ['jabłko', 'banan', 'czereśnia'], można użyć <i>foreach</i> tak: <code>foreach ($fruits as $fruit) { echo $fruit; }</code>. To wydrukuje nam wszystkie owoce na ekranie. No i warto mieć na uwadze, że <i>foreach</i> działa też z tablicami asocjacyjnymi, co pozwala na przechodzenie przez pary klucz-wartość. Korzystając z tej instrukcji, można pisać lepszy, bardziej zrozumiały kod, a to szczególnie ma znaczenie w większych projektach, gdzie czytelność jest kluczowa dla późniejszego rozwoju i utrzymania kodu.

Pytanie 37

W znaczniku (w sekcji ) strony internetowej nie zamieszcza się informacji odnoszących się do

A. automatycznego przeładowania
B. autora
C. rodzaju dokumentu
D. kodowania
Możesz pomyśleć, że odpowiedź o automatycznym odświeżaniu, kodowaniu czy autorze ma sens, bo te info są faktycznie w znaczniku <meta>. Ale są tu pewne niuanse, które mogą wprowadzać w błąd. Znacznik <meta> dostarcza nam metadanych, ale nie mówi nic o typie dokumentu. Typ dokumentu jest bardzo ważny dla przeglądarek, bo informuje je o tym, w jakim standardzie jest stworzona strona. To rolę pełni deklaracja DOCTYPE, która pojawia się na początku dokumentu HTML. Warto więc ogarnąć różnicę pomiędzy metadanymi a typem dokumentu, bo to częsty błąd. Znacznik <meta> zajmuje się informacjami, które mogą poprawić SEO i doświadczenia użytkownika, natomiast typ dokumentu to bardziej techniczna kwestia, która zapewnia, że strona działa jak należy. Dobrze jest pamiętać, że odpowiednie stosowanie zarówno znaczników <meta>, jak i DOCTYPE jest kluczowe, jeśli chcemy, by nasza strona działała sprawnie.

Pytanie 38

Które z poniższych poleceń przywróci funkcjonalność uszkodzonej tabeli w SQL?

A. REPAIR TABLE tbl_name
B. REGENERATE TABLE tbl_name
C. OPTIMIZE TABLE tbl_name
D. ANALYZE TABLE tbl_name
Polecenie REPAIR TABLE tbl_name jest używane w systemach zarządzania bazami danych, takich jak MySQL, do naprawy uszkodzonych tabel. Kiedy tabela ulega uszkodzeniu, na przykład z powodu błędów podczas zapisu danych, utraty zasilania lub problemów z dyskiem, REPAIR TABLE analizuje strukturę tabeli i podejmuje próby przywrócenia jej do stanu operacyjnego. Działanie to jest szczególnie przydatne w przypadku tabel typu MyISAM, które mogą być bardziej podatne na uszkodzenia niż inne silniki, takie jak InnoDB. Użycie tego polecenia jest stosunkowo proste: wystarczy wykonać zapytanie w formacie REPAIR TABLE nazwa_tabeli. W praktyce, aby zwiększyć bezpieczeństwo danych, zaleca się regularne wykonywanie kopii zapasowych oraz monitorowanie logów serwera bazy danych, co pozwala na wczesne wykrywanie problemów i minimalizowanie ryzyka utraty danych. Dodatkowo, dokumentacja MySQL podkreśla znaczenie tego polecenia jako narzędzia do utrzymania integralności baz danych, co czyni go nieocenionym w pracy administratora baz danych.

Pytanie 39

Który typ danych SQL należy użyć, jako optymalny, do zapisania numeru PESEL?

A. CHAR(11)
B. FLOAT(11)
C. TINYINT
D. BLOB
W przypadku numeru PESEL kluczowe jest zrozumienie, że mamy do czynienia z identyfikatorem, a nie z liczbą, na której będziemy wykonywać obliczenia. To rozróżnienie jest bardzo ważne w projektowaniu baz danych, bo prowadzi do innego doboru typów danych. Częsty błąd polega na tym, że skoro PESEL składa się tylko z cyfr, to „na logikę” powinien być przechowywany jako typ liczbowy. W praktyce to podejście generuje więcej problemów niż pożytku. Typ TINYINT jest zdecydowanie zbyt mały – w większości systemów pozwala przechować zakres od 0 do 255 lub podobny, a PESEL ma 11 cyfr, więc nawet nie ma fizycznej możliwości, żeby taki typ pomieścił pełną wartość. To jest po prostu zupełnie nieadekwatny zakres. Z kolei użycie typu zmiennoprzecinkowego, takiego jak FLOAT(11), jest jeszcze gorszym pomysłem. Typ FLOAT służy do przybliżonego zapisu liczb rzeczywistych i może wprowadzać błędy zaokrągleń. W przypadku identyfikatora, który musi być zapisany dokładnie co do cyfry, jakikolwiek błąd reprezentacji jest niedopuszczalny. Dodatkowo typy zmiennoprzecinkowe nie gwarantują zachowania wszystkich cyfr w sposób bezstratny przy dużych wartościach, a PESEL ma ich 11. Można też natknąć się na problem utraty zer wiodących, bo liczby w SQL nie „pamiętają” formatu, tylko samą wartość liczbową. BLOB natomiast służy do przechowywania danych binarnych: plików, obrazów, dokumentów, zaszyfrowanych bloków danych. Używanie BLOB‑a do trzymania prostego tekstowego identyfikatora jest sprzeczne z dobrymi praktykami projektowania. Utrudnia to indeksowanie, wyszukiwanie, sortowanie i walidację, a do tego zużywa niepotrzebnie więcej zasobów. W profesjonalnych projektach baz danych przyjmuje się zasadę: dane tekstowe o znanej długości przechowujemy w typach znakowych (CHAR/VARCHAR), liczby do obliczeń w typach numerycznych, a typy binarne zostawiamy na pliki i dane nieustrukturyzowane. Błędne odpowiedzi wynikają zwykle z automatycznego kojarzenia „cyfry = liczba” i z braku rozróżnienia między wartością liczbową a identyfikatorem, który tylko składa się z cyfr, ale nie jest przeznaczony do liczenia. Właśnie dlatego optymalnym i zgodnym z dobrymi praktykami wyborem dla PESEL jest typ znakowy o stałej długości, czyli CHAR(11).

Pytanie 40

Aby stworzyć stronę internetową, która będzie odpowiadać załączonej ilustracji, konieczne jest użycie semantycznych znaczników sekcji w języku HTML5. Jakim znacznikiem należy określić sekcję menu?

A. div
B. nav
C. header
D. aside
Znacznik <nav> w HTML5 jest przeznaczony do definiowania sekcji nawigacyjnych na stronie internetowej, takich jak menu. Użycie semantycznego znacznika <nav> jest zgodne z dobrą praktyką projektowania stron, ponieważ pomaga przeglądarkom i technologiom wspomagającym, takim jak czytniki ekranowe, lepiej zrozumieć strukturę dokumentu. Dzięki zastosowaniu <nav>, silniki wyszukiwarek mogą również bardziej efektywnie indeksować zawartość strony. Przykład użycia <nav> w praktyce: html <nav> <ul> <li><a href='#'>Strona główna</a></li> <li><a href='#'>O nas</a></li> <li><a href='#'>Kontakt</a></li> </ul> </nav>. Ten znacznik powinien być używany wszędzie tam, gdzie mamy do czynienia z głównymi elementami nawigacyjnymi strony. Semantyczne tagi w HTML5, takie jak <nav>, ułatwiają utrzymanie i obsługę kodu oraz wspierają dostępność stron internetowych zgodnie ze standardami WCAG.