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: 27 kwietnia 2026 01:32
  • Data zakończenia: 27 kwietnia 2026 01:32

Egzamin niezdany

Wynik: 9/40 punktów (22,5%)

Wymagane minimum: 20 punktów (50%)

Nowe
Analiza przebiegu egzaminu- sprawdź jak rozwiązywałeś pytania
Udostępnij swój wynik
Szczegółowe wyniki:
Pytanie 1

Zgodnie z zasadami ACID, odnoszącymi się do przeprowadzania transakcji, wymóg trwałości (ang. durability) wskazuje, że

A. transakcja może w pewnych okolicznościach być rozdzielona na dwa niezależne etapy
B. w trakcie realizacji transakcji dane mogą być zmieniane przez inne transakcje
C. dane zatwierdzone przez transakcję powinny być dostępne niezależnie od tego, co się wydarzy po jej zakończeniu
D. w sytuacji naruszenia spójności bazy danych transakcja eliminuje tabele z kluczami obcymi
Wszystkie przedstawione alternatywy nie oddają właściwego znaczenia wymogu trwałości w kontekście ACID. Modyfikowanie danych przez inne transakcje w trakcie trwania jednej transakcji narusza zasadę atomowości, co prowadzi do nieprzewidywalnych stanów danych. Właściwa izolacja transakcji jest niezbędna, aby zapewnić, że jedna transakcja nie wpływa na wyniki innej, co jest kluczowym aspektem stabilności systemu. Ponadto, usunięcie tabel z kluczami obcymi w przypadku naruszenia spójności bazy danych nie jest związane z zasadą trwałości. Tego rodzaju działanie może prowadzić do poważnych problemów z integralnością danych, ponieważ usuwanie tabel nie rozwiązuje problemów spójności, lecz je pogłębia. Dodatkowo, podział transakcji na dwa niezależne etapy może wprowadzać niepożądane skutki, takie jak niespójność danych, co jest sprzeczne z zasadą trwałości. Kluczowym elementem, który łączy wszystkie te błędne koncepcje, jest brak zrozumienia, że trwałość gwarantuje, że zatwierdzone zmiany są permanentne i zabezpieczone przed jakimikolwiek nieprzewidzianymi okolicznościami. Korzystanie z solidnych mechanizmów trwałości, takich jak transakcyjne logowanie i backupy, jest niezbędne, aby zrealizować wszystkie aspekty ACID, a tym samym zapewnić odpowiednią jakość i bezpieczeństwo danych w systemach informacyjnych.

Pytanie 2

W HTML-u atrybut shape w znaczniku area, który definiuje kształt obszaru, może przyjąć wartość

A. rect, poly, circle
B. poly, square, circle
C. rect, square, circle
D. rect, triangle, circle
Wybór niewłaściwej odpowiedzi może wynikać z nieporozumień dotyczących atrybutu shape w znaczniku area. Odpowiedzi wskazujące na 'square' lub 'triangle' są błędne, ponieważ te kształty nie są obsługiwane przez standard HTML. W przypadku 'square', mogłoby się wydawać, że jest to po prostu inna forma prostokąta, jednak HTML nie definiuje takiej wartości dla atrybutu shape. Również 'triangle' nie jest uznawany w kontekście standardowych atrybutów; HTML nie pozwala na bezpośrednie definiowanie kształtów trójkątnych w obszarach mapy obrazów. Tego rodzaju zamieszanie może wynikać z niepełnego zrozumienia funkcji atrybutu, który jest jednoznacznie związany z prostokątem, okręgiem oraz wielokątem. Kluczowe jest, aby przyjrzeć się dokumentacji HTML oraz standardom W3C, które jasno określają poprawne wartości dla atrybutu shape. W praktyce, zrozumienie tych różnic jest istotne dla tworzenia efektywnych i dostępnych interfejsów użytkownika, gdzie każdy element jest precyzyjnie zdefiniowany i zrozumiały dla przeglądarek oraz użytkowników. Ponadto, stosowanie niepoprawnych wartości może prowadzić do błędów w renderowaniu strony, co negatywnie wpływa na doświadczenia użytkowników i dostępność serwisu.

Pytanie 3

Kiedy zestawi się relacją kluczy głównych dwie tabele, uzyskuje się relację o typie

A. wiele do jednego
B. jeden do wielu
C. wiele do wielu
D. jeden do jednego
Relacja typu jeden do jednego występuje, gdy dla każdego rekordu w jednej tabeli istnieje dokładnie jeden odpowiadający rekord w drugiej tabeli. Taki związek jest szczególnie przydatny w sytuacjach, gdy chcemy podzielić dane na różne kategorie, ale zachować ścisłą zależność między rekordami. Na przykład, możemy mieć tabelę z informacjami o użytkownikach, a w drugiej tabeli przechowywać szczegółowe dane dotyczące ich profili, gdzie każdy użytkownik ma tylko jeden profil. Takie połączenie nie tylko organizuje dane, ale również zwiększa wydajność zapytań i umożliwia lepszą kontrolę nad danymi. W praktyce, stosowanie relacji jeden do jednego pozwala na implementację złożonych systemów baz danych, które są zgodne z zasadami normalizacji, co jest kluczowe w projektowaniu baz zgodnych z najlepszymi praktykami, takimi jak minimalizacja redundancji i zapewnienie integralności danych.

Pytanie 4

Jakiego znacznika w HTML użyjemy, aby uzyskać tekst wyświetlany czcionką o stałej szerokości znaku, który również uwzględnia dodatkowe spacje, tabulacje oraz znaki końca linii?

A. <blockquote>…</blockquote>
B. <code>…</code>
C. <ins>…</ins>
D. <pre>…</pre>
Znaczniki <code>, <ins> i <blockquote> mają swoje unikalne zastosowania, ale nie nadają się do zachowania formatowania tekstu, jak to robi <pre>. Znacznik <code> jest przeznaczony do oznaczania fragmentów kodu, jednak nie utrzymuje przestrzeni i formatowania. Kiedy używasz <code>, przeglądarka wyświetli tekst w inny sposób, ale nie uwzględni dodatkowych odstępów lub tabulacji, co może prowadzić do nieczytelności w przypadku dłuższych fragmentów kodu. Z kolei znacznik <ins> służy do wskazywania wstawionego tekstu, co ma znaczenie w kontekście edycji lub zmian, ale nie zmienia jego formatowania ani nie zachowuje układów, co ogranicza jego użyteczność w przypadku tekstów wymagających precyzyjnego formatowania. Wreszcie, <blockquote> jest używane do cytowania dłuższych fragmentów tekstu z innego źródła, co również nie związane jest z zachowaniem konkretnego formatowania, a jego celem jest raczej stylistyczne wyróżnienie cytatu. W praktyce, mylenie tych znaczników może prowadzić do frustracji użytkowników, którzy oczekują zachowania konkretnych układów, zwłaszcza w kontekście programowania lub prezentacji danych. Ważne jest, aby zrozumieć, że każdy znacznik ma swoje specyficzne zastosowanie i powinien być używany zgodnie z jego przeznaczeniem, aby zapewnić spójność i czytelność prezentowanych treści.

Pytanie 5

W CSS zastosowano regułę: float:left; dla bloku. Jakie będzie jej zastosowanie?

A. dopasowanie elementów tabeli do lewej krawędzi
B. wyrównanie tekstu do lewej strony
C. umieszczanie bloków jeden pod drugim
D. ustawienie bloku na lewo względem innych
Wybór odpowiedzi dotyczący wyrównania elementów tabeli do lewej strony jest błędny, ponieważ reguła 'float: left;' nie dotyczy bezpośrednio tabel ani ich elementów. Tabele mają swoje własne mechanizmy układowe, które są inne niż te, które kontroluje reguła float. W przypadku wyrównania tekstu do lewej strony, stosuje się regułę 'text-align: left;', która jest odpowiednia dla elementów blokowych, ale nie jest związana z 'float'. Ustawienie bloków jeden pod drugim również nie jest zgodne z działaniem float, ponieważ ta reguła nie prowadzi do takiego układu, lecz wręcz przeciwnie – float powoduje, że elementy są ustawiane obok siebie. Warto zauważyć, że float działa głównie w kontekście obszaru, w którym się znajduje, a jego zastosowanie wymaga ostrożności, by nie wprowadzać problemów z układami, co wielu początkujących web developerów nie dostrzega. Typowym błędem jest mylenie float z flexboxem, który jest bardziej intuicyjny i zapewnia lepszą kontrolę nad układem. Dlatego kluczowe jest zrozumienie, kiedy i w jaki sposób stosować float w kontekście układów CSS, aby unikać nieporozumień i problemów w realizacji projektów.

Pytanie 6

Aby zweryfikować konfigurację w pliku php.ini, można uruchomić skrypt PHP, który zawiera zapis

A. <?php ini_set(); ?>
B. <?php echo phpversion(); ?>
C. <?php phpcredits(); ?>
D. <?php phpinfo(); ?>
Wszelkie inne odpowiedzi nie spełniają funkcji dostarczania szczegółowych informacji o konfiguracji PHP w sposób tak kompleksowy jak phpinfo(). Funkcja <?php phpcredits(); ?> dostarcza informacji o autorach PHP oraz licencjach, ale nie ma na celu sprawdzania ustawień konfiguracyjnych. Jest to użyteczne w kontekście edukacyjnym, ale nie w praktyce związanej z konfiguracją. Z kolei <?php ini_set(); ?> jest używana do ustawiania wartości konfiguracyjnych w czasie działania skryptu, a nie do ich podglądania. I choć może być przydatna do dostosowywania środowiska, nie generuje podsumowania obecnych ustawień. Ostatnia odpowiedź, <?php echo phpversion(); ?>, jedynie zwraca wersję PHP, co również jest zbyt ograniczone, aby uzyskać pełny obraz konfiguracyjny. Błędem jest zatem założenie, że wystarczy znać wersję PHP lub autorów, aby prawidłowo skonfigurować środowisko, gdyż kluczowe są szczegóły dotyczące ustawień. Zrozumienie tych różnić jest kluczowe dla efektywnego zarządzania środowiskiem PHP i unikania problemów, które mogą wynikać z nieodpowiednich konfiguracji.

Pytanie 7

Określ rezultat działania podanego kodu PHP, przy założeniu, że zmienna tab jest tablicą.

$tab = explode(",", "jelenie,sarny,dziki,lisy,borsuki"); 
echo $tab[1]." ".$tab[2];
A. jelenie sarny
B. dziki lisy
C. lisy borsuki
D. sarny dziki
Wybór odpowiedzi 'jelenie sarny' wskazuje na brak zrozumienia podstawowych zasad przydzielania indeksów w tablicach w PHP. Elementy tablicy są indeksowane od zera, co oznacza, że $tab[0] odpowiada pierwszemu elementowi, którym jest 'jelenie', a $tab[1] to 'sarny'. Stąd wynika, że kombinacja 'jelenie sarny' nie jest wynikiem wykonania podanego kodu. Podobnie, wybór 'lisy borsuki' także jest błędny, ponieważ $tab[3] to 'lisy', a $tab[4] to 'borsuki', co nie znajduje się w kontekście użycia echo. W przypadku 'dziki lisy', nie uwzględnia on odpowiednich indeksów, ponieważ $tab[2] to 'dziki', a $tab[3] to 'lisy', a więc również nie odpowiada wynikowi zwróconemu przez kod. Takie pomyłki mogą wynikać z nieuwagi lub braku zrozumienia struktury tablic oraz ich indeksowania. Kluczowe jest, aby programista zdawał sobie sprawę, jak funkcje PHP manipulują danymi oraz jak poprawnie odwoływać się do elementów tablicy, co jest fundamentalne dla efektywnego programowania i unikania błędów w aplikacjach.

Pytanie 8

W formularzu dokumentu PHP znajduje się pole <input name="im">. Gdy użytkownik wprowadzi tekst "Janek", aby dodać wartość tego pola do bazy danych, w tablicy $_POST będzie obecny element

A. im o indeksie Janek
B. Janek o indeksie im
C. im z następującym numerem indeksu
D. Janek z następującym numerem indeksu
Odpowiedzi wskazujące na istnienie dodatkowych numerów indeksów lub powiązań między wartością a nazwą pola są błędne, ponieważ nie odzwierciedlają rzeczywistego działania PHP w kontekście formularzy. W przypadku, gdy użytkownik wpisuje "Janek" w polu o nazwie 'im', PHP nie przypisuje tej wartości do jakiegoś indeksu numerowanego. Tablica $_POST operuje na zasadzie klucz-wartość, gdzie klucz jest nazwą pola w formularzu, a wartość to wprowadzone dane. Zatem klucz 'im' w tablicy $_POST zostałby skojarzony bezpośrednio z wartością 'Janek' jako jego wartość. Każda inna koncepcja, taka jak dodawanie numerów indeksów czy zamiana wartości z kluczem, jest myląca. Typowe błędy myślowe związane z tym zagadnieniem obejmują niezrozumienie, że PHP nie tworzy dynamicznych kluczy w tablicach na podstawie wartości, a jedynie przypisuje wartości do zdefiniowanych kluczy. Z tego powodu, żeby skutecznie operować na danych z formularzy, programiści muszą dokładnie rozumieć, jak działa tablica $_POST oraz jak poprawnie przetwarzać dane wejściowe w PHP, unikając przy tym błędnych interpretacji ich struktury.

Pytanie 9

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

A. <charset="UTF-8">
B. <meta encoding="UTF-8">
C. <encoding="UTF-8">
D. <meta charset="UTF-8">
Odpowiedzi <charset="UTF-8">, <encoding="UTF-8"> oraz <meta encoding="UTF-8"> są niepoprawne i wskazują na pewne nieporozumienia w zakresie składni HTML oraz roli metadanych. Pierwszy zapis, <charset="UTF-8">, jest nieprawidłowy, ponieważ nie jest to poprawna konstrukcja HTML. Element <meta> jest niezbędny, aby deklarować kodowanie znaków, a sam atrybut 'charset' musi być jego częścią. Bez elementu <meta> nie będzie można skutecznie ustalić kodowania, co prowadzi do problemów z wyświetlaniem tekstu. Druga odpowiedź, <encoding="UTF-8">, również jest błędna, ponieważ nie istnieje taki atrybut w kontekście elementu <meta>. Elementy HTML muszą przestrzegać określonej składni, a atrybut 'encoding' nie jest uznawany za standard w HTML. Ostatnia odpowiedź, <meta encoding="UTF-8">, jest niepoprawna, ponieważ właściwy atrybut to 'charset', a nie 'encoding'. To typowe błędy, które mogą wynikać z nieznajomości standardów HTML i ich ewolucji. Użycie niewłaściwych atrybutów może prowadzić do frustracji programistycznej oraz problemów z efektywnością strony, dlatego tak istotne jest zrozumienie i przestrzeganie dobrych praktyk w zakresie kodowania stron internetowych.

Pytanie 10

Poniższy fragment kodu PHP funkcjonuje poprawnie i ma na celu wyświetlenie na stronie internetowej informacji pobranych kwerendą z bazy danych. Ile pól zostanie wyświetlonych na stronie?

$ile = mysqli_num_rows($zapytanie);
for ($i = 0; $i < $ile; $i++) 
{
    $wiersz = mysqli_fetch_row($zapytanie); 
    echo "<p>Klient: $wiersz[0] $wiersz[1], adres: $wiersz[2] </p>";
}
A. Z czterech pól
B. Z jednego pola
C. Z trzech pól
D. Z dwóch pól
Kod PHP wyświetla dane z bazy danych przy użyciu funkcji mysqli_fetch_row, która zwraca wiersz danych jako tablicę. W tym przypadku, wiersz zawiera trzy elementy: '$wiersz[0]', '$wiersz[1]' oraz '$wiersz[2]'. Pierwszy element '$wiersz[0]' odpowiada nazwisku klienta, drugi '$wiersz[1]' to imię klienta, a trzeci '$wiersz[2]' to adres. Wyświetlanie danych w formacie HTML (znacznik <p>) wskazuje, że wszystkie trzy elementy są używane do stworzenia czytelnej prezentacji. W praktyce, korzystanie z mysqli_num_rows do określenia liczby zwróconych wierszy pozwala na dynamiczne przetwarzanie danych z bazy danych, co jest zgodne z najlepszymi praktykami programowania PHP. Zastosowanie pętli for umożliwia iterację przez wszystkie wiersze wynikowe i wyświetlenie ich w odpowiedniej formie. Takie podejście jest powszechnie stosowane przy budowaniu aplikacji webowych, gdzie wyświetlanie danych z bazy jest kluczowym elementem interakcji z użytkownikiem.

Pytanie 11

W zaprezentowanym fragmencie algorytmu wykorzystano

Ilustracja do pytania
A. jedną pętlę
B. trzy bloki operacyjne (procesy)
C. dwie pętle
D. jeden blok decyzyjny
Błędy w odpowiedziach mogą wynikać z mylnego odbioru diagramu. Posiadanie bloku decyzyjnego nie zawsze znaczy, że mamy pętlę, bo pętle potrzebują zarówno warunków, jak i mechanizmu powtarzania. Wydaje się, że są różne bloki, ale w rzeczywistości mamy tu dwa bloki decyzyjne i jeden operacyjny, co nie zgadza się z odpowiedzią. Na diagramie nie da się znaleźć dwóch pętli, co może sugerować, że nie do końca rozumiesz strukturę algorytmu. Często w takich analizach ludzie mylą bloki decyzyjne z pętlami, co jest błędne, bo pętle są bardziej złożonymi strukturami. Jak się programuje, ważne jest, żeby dobrze rozróżniać te elementy, bo to wpływa na jakość algorytmu. Mnie osobiście pomogło to w pisaniu lepszego kodu, dlatego warto poświęcić chwilę na zrozumienie różnic między tymi pojęciami.

Pytanie 12

Który z akapitów został zapisany w wskazanym stylu, zakładając, że pozostałe właściwości akapitu mają wartości domyślne?

Ilustracja do pytania
A. Efekt 3
B. Efekt 4
C. Efekt 1
D. Efekt 2
W analizowanym pytaniu trzy efekty nie spełniają wszystkich warunków zdefiniowanych w stylu CSS dla paragrafu. Pierwszy efekt pokazuje tekst z niebieskim tłem który nie jest zgodny z zadanym stylem ponieważ kolor tła nie został określony w stylizacji. Zastosowanie niebieskiego tła często wynika z chęci wizualnego wyróżnienia elementu ale w tym przypadku styl określa jedynie kolor tekstu na niebieski a nie tła. Drugi efekt charakteryzuje się użyciem kursywy co również nie jest zgodne z deklaracją stylu CSS. Stylizacja paragrafu nie zawiera property font-style co oznacza że tekst powinien być w domyślnej formie czyli zwykły a nie kursywa. Trzeci i czwarty efekt mają niezgodne kolory tekstu i inne elementy które nie pasują do zadanego stylu. Typowym błędem w interpretacji stylów CSS jest niedokładne odczytanie wszystkich zdefiniowanych parametrów co prowadzi do błędnych założeń ostatecznego wyglądu elementu. Poprawne zrozumienie stylów wymaga zwrócenia uwagi na wszystkie atrybuty nawet jeśli nie są one wyraźnie widoczne na pierwszy rzut oka. W związku z tym kluczowe jest dokładne zapoznanie się z każdą definicją w stylu aby prawidłowo dopasować wygląd do specyfikacji.

Pytanie 13

Zastosowanie klauzuli PRIMARY KEY w poleceniu CREATE TABLE sprawi, że dane pole stanie się

A. indeksem unikalnym
B. kluczem podstawowym
C. indeksem klucza
D. kluczem obcym
Niepoprawne odpowiedzi nie odzwierciedlają pełnej definicji klucza podstawowego oraz jego roli w strukturze bazy danych. Klucz obcy to inny typ klucza, który służy do tworzenia relacji między tabelami. Zwykle odwołuje się do kolumny klucza podstawowego w innej tabeli, co pozwala na integrację danych z różnych źródeł. Klucz obcy nie ma wymogu unikalności, co oznacza, że może występować wiele powtórzeń w danej kolumnie. Indeks klucza to termin odnoszący się do mechanizmu, który przyspiesza dostęp do danych w tabeli, ale nie jest tożsamy z kluczem podstawowym. Indeksy mogą być tworzone na różnych kolumnach tabeli, aby optymalizować czas odpowiedzi zapytań, ale nie gwarantują unikalności danych w tych kolumnach. Indeks unikalny to z kolei rodzaj indeksu, który zapewnia, że wartości w danej kolumnie są unikalne, jednak nie pełni on roli klucza głównego, ponieważ nie wymaga braku wartości NULL. W związku z tym, te niepoprawne odpowiedzi mylą pojęcia kluczy i indeksów, co jest istotne dla zrozumienia struktury i integracji danych w relacyjnych bazach danych.

Pytanie 14

Funkcja zapisana w języku PHP wygląda tak patrz ramka): Jej celem jest

Ilustracja do pytania
A. zwrócenie wartości 0, gdy liczba jest parzysta
B. wypisanie liczby parzystej
C. zwrócenie wartości 1, gdy liczba jest parzysta
D. wypisanie liczby nieparzystej
Funkcja w języku PHP opisana na egzaminie służy do sprawdzania czy podana liczba jest parzysta. Wybór zwracanych wartości 1 i 0 jest klasycznym przykładem użycia binarnych wartości logicznych w programowaniu. Niektóre niepoprawne odpowiedzi mogą wynikać z błędnego zrozumienia działania operatora modulo %. Operator ten oblicza resztę z dzielenia i w przypadku operacji liczb całkowitych przydaje się do określania parzystości. Jeśli liczba jest podzielna przez 2 bez reszty czyli modulo zwraca 0 funkcja zwraca 1 co oznacza że liczba jest parzysta. Niektóre odpowiedzi sugerują że funkcja zwraca lub wypisuje liczby parzyste bądź nieparzyste co jest błędnym rozumieniem działania funkcji zwracającej wartości w kontekście operacji logicznych. Kluczowe jest zrozumienie że funkcje zwracają wartości a nie wypisują ich w przypadku takich jak ten gdzie celem jest jedynie sprawdzenie a nie wyświetlenie wartości. Wybór wartości zwracanych 1 i 0 jest także zgodny z konwencjami logicznymi stosowanymi w warunkowych instrukcjach programistycznych co może być mylnie postrzegane jako konieczność wyświetlenia wyniku. Ważne jest aby pamiętać że w programowaniu logiczne zwracanie wartości jest często używane do późniejszego wykorzystania przez inne części aplikacji w celu podejmowania decyzji lub sterowania przepływem programu. Zrozumienie tych podstawowych zasad pozwala uniknąć błędnych interpretacji i wykorzystać pełnię możliwości jakie daje programowanie w językach takich jak PHP.

Pytanie 15

Jakiego polecenia SQL należy użyć, aby usunąć z tabeli artykuly wiersze, które zawierają słowo "sto" w dowolnej lokalizacji pola tresc?

A. DELETE * FROM artykuly WHERE tresc = "%sto%";
B. DELETE FROM artykuly WHERE tresc = "%sto%";
C. DELETE * FROM artykuly WHERE tresc LIKE "%sto%";
D. DELETE FROM artykuly WHERE tresc LIKE "%sto%";
Wszystkie błędne odpowiedzi opierają się na niezrozumieniu podstawowej funkcji operatora DELETE w języku SQL oraz zasad dotyczących dopasowywania wzorców. Przykłady takie jak 'DELETE * FROM artykuly WHERE tresc = "%sto%";' oraz 'DELETE * FROM artykuly WHERE tresc LIKE "%sto%";' zawierają nieprawidłowe użycie składni, które nie jest zgodne z standardem SQL. W SQL nie używa się znaku '*' w poleceniach DELETE, gdyż zapis 'DELETE * FROM' jest poprawny tylko dla zapytań SELECT. W kontekście usuwania danych, należy używać jedynie 'DELETE FROM', co jest wystarczające dla określenia, z jakiej tabeli mają zostać usunięte rekordy. Ponadto, pierwsza błędna odpowiedź zdobija wszystkie potencjalne błędy związane z niepoprawnym użyciem operatora '='. Operator '=' wymaga dokładnego dopasowania, co oznacza, że nie może być stosowany do wyszukiwania wzorców, w przeciwieństwie do operatora LIKE, który umożliwia elastyczne dopasowanie z użyciem znaków wieloznacznych. Typowym błędem jest więc przekonanie, że '=' oraz LIKE mogą być stosowane zamiennie bez uwzględnienia, że '=' nie przyjmuje znaków procentowych. Dlatego kluczowe jest, aby przed użyciem poleceń SQL upewnić się, że rozumie się ich składnię oraz zasady działania, co pozwoli uniknąć wielu pułapek w codziennej pracy z bazami danych.

Pytanie 16

Którą technologię poleca się przy tworzeniu serwisów WWW, tak aby zmiany w treści można było wykonywać bez potrzeby ich kodowania, przez użytkowników bez kompetencji programistycznych?

A. SEO
B. CMS
C. SSL
D. FTP
W tym pytaniu łatwo dać się złapać na skojarzenia z innymi pojęciami webowymi, które brzmią „poważnie technicznie”, ale w ogóle nie rozwiązują wskazanego problemu. Kluczowe jest zrozumienie, że chodzi o możliwość samodzielnej edycji treści przez osoby bez kompetencji programistycznych. To oznacza, że potrzebny jest panel administracyjny, edytor WYSIWYG, system uprawnień i mechanizmy zapisu treści w bazie danych. Tę rolę pełnią właśnie systemy CMS. SEO, czyli Search Engine Optimization, dotyczy pozycjonowania strony w wyszukiwarkach. Owszem, dobre SEO jest ważne, a część narzędzi SEO bywa zintegrowana z CMS-em, ale samo SEO nie jest technologią do zarządzania treścią. To zestaw praktyk i technik: dobór słów kluczowych, optymalizacja tytułów, opisów, struktury nagłówków, linkowania wewnętrznego. Ktoś mógł pomyśleć, że skoro SEO „usprawnia stronę”, to też pomaga ją łatwiej edytować. W rzeczywistości SEO nic nie mówi o tym, kto i jak technicznie zmienia treść. FTP to protokół służący do przesyłania plików na serwer. Używa go się często podczas wdrażania strony: programista wysyła pliki HTML, CSS, PHP, grafiki. Ale dla zwykłego redaktora FTP jest kompletnie niepraktyczny i niebezpieczny. Trzeba znać strukturę katalogów, uważać, żeby nie nadpisać plików, a każda zmiana treści wymaga edycji pliku źródłowego. To dokładne przeciwieństwo idei „edycji bez kodowania”. Typowym błędem myślowym jest przekonanie, że skoro przez FTP „wrzuca się stronę”, to jest to technologia do jej obsługi przez użytkownika. W profesjonalnych wdrożeniach FTP zwykle jest dostępny tylko dla administratorów. SSL z kolei to technologia kryptograficzna, która służy do szyfrowania połączenia między przeglądarką a serwerem (dziś w praktyce mówimy częściej o TLS, ale skrót SSL ciągle funkcjonuje potocznie). Certyfikat SSL zapewnia poufność i integralność danych, co jest standardem przy logowaniu, płatnościach czy formularzach. Jednak nie ma żadnego wpływu na to, czy redaktor potrafi zmienić treść bez znajomości HTML. Można mieć idealnie skonfigurowany SSL i dalej edytować stronę w notatniku, a można mieć rozbudowany CMS bez certyfikatu – jedno nie wynika z drugiego. Podsumowując, SEO, FTP i SSL to ważne elementy ekosystemu webowego, ale dotyczą odpowiednio: widoczności w wyszukiwarkach, transferu plików i bezpieczeństwa transmisji. Żadne z nich nie daje typowego, przyjaznego panelu zarządzania treścią dla nietechnicznych użytkowników. Tę rolę spełniają systemy CMS, które są wręcz standardem branżowym przy tworzeniu serwisów, gdzie treść ma być często aktualizowana przez osoby spoza działu IT.

Pytanie 17

Co można powiedzieć o wyświetlonym przez witrynę tekście "test kolorów"?

<p id="p1" style="color:blue;">test kolorów</p>
<button type="button"
  onclick="document.getElementById('p1').style.color='red'">
  test</button>
A. Zaraz po załadowaniu witryny kolor tekstu jest czerwony.
B. Po wciśnięciu przycisku test kolor tekstu jest niebieski.
C. Wciskanie przycisku test sprawia, że kolor tekstu jest na przemian niebieski i czerwony.
D. Po wciśnięciu przycisku test kolor tekstu jest czerwony.
Zauważyłem, że w kodzie HTML kolor tekstu na początku jest niebieski. Jest to ustawione w atrybucie style dla elementu o id='p1'. Po kliknięciu w przycisk, uruchamia się funkcja JavaScript, która zmienia kolor na czerwony. Ta funkcja jest przypisana w atrybucie onclick. Takie podejście to świetny sposób na interakcję użytkownika z witryną, korzystając ze skryptów JavaScript. Myślę, że to bardzo dobry przykład, który pokazuje, jak można robić interaktywne elementy na stronach. Wiedza na ten temat może pomóc lepiej zrozumieć, jak działają strony internetowe i co można zrobić z JavaScriptem.

Pytanie 18

Aby w HTML uzyskać odpowiednie formatowanie paragrafu dla tekstu:

Tekst może być zaznaczony albo istotny dla autora
A. <p>Tekst może być <mark>wyróżniony albo <em>istotny</em> dla autora</mark></p>
B. <p>Tekst może być <mark>wyróżniony albo <i>istotny</i> dla autora</mark></p>
C. <p>Tekst może być <mark>wyróżniony</mark> albo <em>istotny dla autora</p>
D. <p>Tekst może być <mark>zaznaczony</mark> albo <em>istotny</em> dla autora</p>
W analizie niepoprawnych odpowiedzi zauważamy różne problemy związane z używanymi znacznikami i ich organizacją w kodzie HTML. W pierwszym przypadku zastosowano znacznik <em> w niewłaściwy sposób, ponieważ nie zamknięto go przed zakończeniem akapitu <p>, co prowadzi do potencjalnych błędów w renderowaniu strony. W HTML wszystkie znaczniki muszą być poprawnie zagnieżdżone, aby uniknąć problemów z interpretacją przez przeglądarki. Kolejna odpowiedź pokazuje, że znacznik <mark> zajmuje nieodpowiednią pozycję, przez co obie części zdania są ze sobą złączone, co może wprowadzać w błąd i utrudniać zrozumienie treści. Trzeci problem polega na tym, że znacznik <mark> otacza cały tekst, co nie jest zgodne z przeznaczeniem tego znacznika, który powinien jedynie wyróżniać konkretne fragmenty. Użycie <mark> w taki sposób może powodować zniekształcenie sensu zdania. Wszystkie te niewłaściwe praktyki mogą negatywnie wpływać na dostępność, a także na SEO, ponieważ niepoprawne znaczniki mogą prowadzić do nieprawidłowego przetwarzania strony przez roboty wyszukiwarek, co w rezultacie może obniżyć jej pozycję w wynikach wyszukiwania.

Pytanie 19

Polecenie colspan służy do łączenia komórek tabeli w poziomie, natomiast rowspan w pionie. Którą z tabel wyświetli poniższy fragment kodu napisany w języku HTML?

<table border="1" cellspacing="0" cellpadding="10">
    <tr>
        <td rowspan="2">&nbsp;</td>
        <td>&nbsp;</td>
    </tr>
    <tr>
        <td>&nbsp;</td>
    </tr>
</table>
Ilustracja do pytania
A. B.
B. A.
C. C.
D. D.
Wybrana odpowiedź jest niepoprawna. W pytaniu chodziło o wykorzystanie atrybutów rowspan i colspan w tworzeniu tabel HTML. Atrybuty te służą do łączenia komórek tabeli w pionie i poziomie. W podanym fragmencie kodu HTML widzimy, że pierwsza komórka w pierwszym wierszu ma atrybut rowspan='2', co oznacza, że będzie się rozciągać na dwa wiersze w pionie. Druga komórka w pierwszym wierszu nie ma żadnych specjalnych atrybutów, zatem jest standardową komórką. W drugim wierszu jest tylko jedna komórka, gdyż druga komórka jest połączona z pierwszą komórką pierwszego wiersza przez atrybut rowspan. Opis odpowiada tabeli B, która ma jedną długą komórkę po lewej stronie rozciągającą się na dwa wiersze oraz dwie krótsze komórki po prawej stronie, po jednej w każdym wierszu. Pamiętaj, iż nieprawidłowe użycie atrybutów rowspan i colspan może prowadzić do niezamierzonych rezultatów, takich jak krzywe linie tabeli czy brakujące komórki.

Pytanie 20

Zaprezentowano tabelę stworzoną za pomocą kodu HTML, bez zastosowania stylów CSS. Który z poniższych fragmentów kodu HTML odnosi się do pierwszego wiersza tabeli?

Ilustracja do pytania
A. B
B. C
C. D
D. A
Poprawna odpowiedź to D. W tym kodzie HTML użyto znaczników <th> zamiast <td> do zdefiniowania pierwszego wiersza tabeli co jest zgodne z dobrą praktyką formatowania wierszy nagłówkowych tabel. Znaczniki <th> oznaczają header cells czyli komórki nagłówkowe które z definicji są ustawione jako pogrubione i wyśrodkowane w przeglądarce. Użycie <th> zamiast <td> dla nagłówków tabeli wspiera dostępność ponieważ oprogramowanie wspomagające takie jak czytniki ekranowe rozpoznaje te znaczniki jako nagłówki co ułatwia nawigację osobom z ograniczeniami wzrokowymi. Ponadto standard HTML zaleca użycie <th> dla komórek opisujących dane które znajdują się poniżej w wierszach tabeli co pomaga w semantycznym oznaczeniu struktury dokumentu. Zastosowanie poprawnej semantyki w kodzie HTML nie tylko zwiększa dostępność ale również poprawia SEO oraz ułatwia utrzymanie kodu w przyszłości. Przy projektowaniu tabel w HTML ważne jest również rozważenie stylizacji za pomocą CSS aby zachować czystość i czytelność kodu HTML.

Pytanie 21

Który z poniższych zapisów CSS zmieni tło bloku na odcień niebieskiego?

A. div {color:blue;}
B. div {border-color:blue;}
C. div {background-color:blue;}
D. div {shadow:blue;}
Zapis 'div {background-color:blue;}' jest jak najbardziej na miejscu. Właściwość 'background-color' jest kluczowa, bo ustawia kolor tła dla elementów blokowych w CSS. Kiedy używasz 'blue' jako wartości, to mówisz, że tło ma być niebieskie. Ta właściwość jest częścią tego całego systemu CSS, który decyduje, jak powinny wyglądać elementy HTML. Ustawienie koloru tła jest ważne, bo wpływa na wygląd strony i to, jak kontrastują ze sobą tekst i tło, co jest istotne, by strona była dostępna dla każdego. Jeśli chciałbyś zmienić kolor tła, możesz korzystać z różnych wartości, takich jak kody HEX (np. #0000FF) albo RGB (np. rgb(0, 0, 255)). Możesz to zobaczyć w praktyce, na przykład: <div style='background-color:blue;'>Treść</div>, co ustawi tło 'diva' na niebieskie.

Pytanie 22

Kod języka CSS można umieścić wewnątrz kodu HTML, posługując się znacznikiem

A. <style>
B. <meta>
C. <head>
D. <body>
Wybór odpowiedzi <head> wydaje się sensowny, ponieważ sekcja ta jest istotnym elementem struktury HTML, jednak nie służy ona do definiowania stylów CSS. Element <head> zawiera metadane, skrypty oraz odnośniki do zewnętrznych zasobów, ale nie może zawierać samej definicji stylów. Zamieszczanie stylów bezpośrednio w <head> jest niemożliwe bez zastosowania dodatkowego znacznika, takiego jak <style>. Z kolei <body> jest sekcją, w której umieszczane są wszystkie widoczne elementy strony, a nie miejsce na definicje stylów. W przypadku <meta>, jego głównym celem jest dostarczanie metadanych o stronie, takich jak opis czy słowa kluczowe, co również nie ma związku z stylizowaniem elementów. Typowym błędem jest mylenie funkcji różnych sekcji HTML oraz niepełne rozumienie, jak CSS współpracuje z dokumentem HTML. Aby poprawnie zastosować CSS, należy zawsze używać znacznika <style> do osadzenia kodu stylu wewnętrznie lub odwołać się do zewnętrznego pliku CSS za pomocą znacznika <link>. To zapewnia zgodność z najlepszymi praktykami w zakresie tworzenia stron internetowych oraz efektywnego zarządzania stylami.

Pytanie 23

Do jakich zadań można wykorzystać program FileZilla?

A. publikacji strony internetowej
B. kompilowania skryptu na stronie
C. sprawdzania poprawności strony internetowej
D. analizowania skryptu na stronie
Walidacja strony internetowej polega na sprawdzaniu poprawności kodu HTML lub CSS, co zapewnia, że witryna jest zgodna z określonymi standardami, takimi jak W3C. Narzędzia do walidacji, takie jak W3C Validator, służą do analizy kodu źródłowego, wskazując błędy, które mogą wpłynąć na wyświetlanie strony w różnych przeglądarkach. W kontekście FileZilla, to oprogramowanie nie jest zaprojektowane do tego celu, a jego użycie w tej roli byłoby mylnym podejściem. Debugowanie skryptu na stronie, na przykład w językach JavaScript czy PHP, wymaga zastosowania narzędzi takich jak debugger w przeglądarkach internetowych lub IDE. FileZilla nie oferuje żadnych funkcji debugowania, co sprawia, że jest to nieodpowiedni wybór dla programistów zajmujących się rozwiązywaniem problemów w kodzie. Podobnie, kompilacja skryptu, jak w przypadku języków programowania, takich jak C++ czy Java, wymaga narzędzi kompilacyjnych, a nie klienta FTP. FileZilla nie przetwarza ani nie kompiluje kodu, więc nie może być użyta w tym kontekście. Typowym błędem myślowym jest mylenie narzędzi używanych do transferu plików z tymi, które są używane do programowania i rozwoju aplikacji webowych. Właściwe zrozumienie ról poszczególnych narzędzi w ekosystemie tworzenia stron internetowych jest kluczowe dla efektywnej pracy i unikania nieporozumień.

Pytanie 24

Do naprawy i optymalizacji bazy danych w MySQL stosuje się polecenie:

A. mysqldump
B. mysqlslap
C. mysqlcheck
D. mysqladmin
W tym pytaniu łatwo się pomylić, bo wszystkie wymienione narzędzia są związane z MySQL, ale pełnią zupełnie inne role. Kluczowe jest rozróżnienie: co służy do testowania, co do backupu, co do administracji, a co do samej naprawy i optymalizacji struktur tabel. Wiele osób z rozpędu wybiera mysqldump, bo kojarzy się z „ratowaniem” bazy, ale mysqldump to typowe narzędzie do wykonywania kopii zapasowej w postaci skryptu SQL. Generuje plik z poleceniami CREATE TABLE i INSERT, który potem można odtworzyć, ale ono nie naprawia ani nie optymalizuje istniejących tabel na serwerze. To jest backup, a nie konserwacja struktury. Podobnie mylące bywa mysqladmin. To narzędzie administracyjne, służy do wykonywania operacji na poziomie serwera: można nim zatrzymać serwer, sprawdzić status, wyczyścić logi, przeładować uprawnienia, zmienić hasło roota i tym podobne rzeczy. Natomiast ono nie wykonuje operacji typu REPAIR TABLE czy OPTIMIZE TABLE na konkretnej bazie czy tabeli. To raczej „panel sterowania” serwerem niż śrubokręt do tabel. mysqlslap z kolei jest jeszcze czymś innym – to narzędzie do testów obciążeniowych. Używa się go do benchmarków, czyli sprawdzania, jak serwer MySQL reaguje na określoną liczbę zapytań, ilu wątków, jakie opóźnienia. Można dzięki niemu ocenić wydajność konfiguracji, ale ono nie dotyka struktury tabel w sensie naprawy czy optymalizacji. Typowy błąd myślowy przy tym pytaniu polega na wrzuceniu wszystkich narzędzi „mysql*” do jednego worka: skoro coś jest do MySQL, to pewnie da się tym wszystko zrobić. W praktyce dobre podejście administracyjne zakłada specjalizację: do backupu używa się mysqldump lub narzędzi typu xtrabackup, do testów wydajności mysqlslap, do ogólnych komend serwerowych mysqladmin, a do naprawy i optymalizacji struktur tabel właśnie mysqlcheck. Świadome rozróżnianie tych narzędzi bardzo ułatwia później diagnozowanie problemów z bazą i planowanie regularnych zadań utrzymaniowych.

Pytanie 25

W tabeli mieszkancy znajdują się dane o osobach z całego kraju. Aby ustalić, ile unikalnych miast występuje w tej tabeli, trzeba zapisać kwerendę

A. SELECT COUNT(miasto) FROM mieszkancy DISTINCT;
B. SELECT COUNT(DISTINCT miasto) FROM mieszkancy;
C. SELECT DISTINCT miasto FROM mieszkancy;
D. SELECT COUNT(miasto) FROM mieszkancy;
Wybór odpowiedzi, która polega na użyciu tylko funkcji COUNT, jak w "SELECT COUNT(miasto) FROM mieszkancy;" nie jest najlepszy. To zapytanie zlicza wszystkie wystąpienia miast, w tym duplikaty, więc dostajesz łączną liczbę wierszy w kolumnie 'miasto', a to nie pokazuje, ile tak naprawdę jest unikalnych miejscowości. Moim zdaniem, ta pomyłka może prowadzić do złych wniosków, bo nie uwzględniasz różnorodności danych. Użycie DISTINCT, na przykład w "SELECT DISTINCT miasto FROM mieszkancy;", też nie daje ci liczby unikalnych miast, tylko listę ich. Niektórzy mogą myśleć, że wystarczy wylistować unikalne wartości, żeby wiedzieć, ile ich jest, ale to błędne podejście do zliczania. A ta odpowiedź "SELECT COUNT(miasto) FROM mieszkancy DISTINCT;" jest też niepoprawna, bo nie możesz używać DISTINCT w takim kontekście. Z doświadczenia wiem, że zrozumienie zasad dotyczących funkcji agregujących i filtrujących w SQL jest naprawdę kluczowe, jeśli chcesz dobrze zarządzać danymi i prowadzić sensowne analizy. Dlatego warto zastanowić się nad tym, jak używasz tych funkcji, żeby uniknąć typowych błędów przy interpretacji wyników zapytań w bazach danych.

Pytanie 26

Zgodnie z zasadami ACID dotyczącymi transakcji, wymóg izolacji (ang. isolation) wskazuje, że

A. gdy wystąpi konflikt z inną transakcją, obie mogą modyfikować te same dane równocześnie
B. po zrealizowaniu transakcji system baz danych będzie w stanie spójności
C. jeśli dwie transakcje są wykonywane równolegle, to zazwyczaj nie zauważają wprowadzanych przez siebie zmian
D. pod określonymi warunkami dane modyfikowane przez transakcję mogą zostać anulowane
Izolacja, jako jedno z kluczowych wymagań standardu ACID w kontekście transakcji baz danych, oznacza, że transakcje wykonywane współbieżnie nie wpływają na siebie nawzajem w sposób widoczny. Gdy dwie transakcje są uruchamiane jednocześnie, każda z nich operuje na swoim zestawie danych, nie widząc zmian dokonanych przez drugą do momentu zakończenia transakcji. Dzięki temu, nawet w środowisku o dużym natężeniu operacji, możliwe jest zapewnienie spójności danych. Na przykład, w systemie bankowym, jeśli jeden użytkownik wykonuje przelew, a inny jednocześnie sprawdza stan konta, to proces sprawdzania nie powinien ujawniać niepotwierdzonych jeszcze operacji przelewu. W praktyce, mechanizmy takie jak blokady, czasowe znaczniki (timestamps) oraz protokoły kontroli współbieżności (np. MVCC - Multi-Version Concurrency Control) są wykorzystywane do zapewnienia tej izolacji, co jest fundamentalne dla zachowania integralności danych i poprawności operacji w wielu aplikacjach bazodanowych.

Pytanie 27

Jakie będzie wynik działania programu napisanego w JavaScript, umieszczonego w ramce, kiedy wprowadzisz wartość 5?

var n, i;
var a = 1;

n = prompt("Podaj n:", "");

for (i=n; i>=2; i--)
    a*=i;

document.write("Wynik ",a);
A. 625
B. 120
C. 125
D. 60
Niepoprawne odpowiedzi wynikają z niezrozumienia działania pętli i operatora *= w języku JavaScript. Program implementuje algorytm obliczający silnię, co oznacza wielokrotne mnożenie kolejnych liczb całkowitych malejących aż do wartości 2. Niezrozumienie, że silnia n to iloczyn n*(n-1)*(n-2)*...*2, prowadzi do błędnych odpowiedzi. Początkowa wartość zmiennej a ustawiona na 1 jest kluczowa, ponieważ działa jako neutralny element mnożenia. Każda iteracja pętli zmniejsza wartość i, a *= i oznacza, że a jest mnożone przez bieżącą wartość i, co jest często źle interpretowane jako dodawanie lub niedokładne mnożenie. To typowy błąd przy próbie szybkiego zrozumienia kodu bez analizy krok po kroku. Kolejnym częstym błędem jest złe zrozumienie zakresu działania pętli for, która w tym przypadku działa od wartości n aż do 2 włącznie, co jest istotne, bo mnożenie przez 1 nie zmienia wyniku, ale jest częścią klasycznej definicji silni. Dla danych wejściowych 5, poprawnym wynikiem jest 5*4*3*2*1, co daje 120, a inne wartości jak 125, 60 czy 625 wskazują na błędne założenia lub niepełne zrozumienie mechanizmu działania pętli i mnożenia w kontekście silni.

Pytanie 28

Pętla w kodzie JavaScript zostanie uruchomiona

Ilustracja do pytania
A. 27 razy
B. 26 razy
C. 2 razy
D. 3 razy
Analizując podane odpowiedzi, warto zrozumieć, jak działa pętla do-while w JavaScript. Pętla ta różni się od tradycyjnych pętli for oraz while tym, że warunek jest sprawdzany na końcu każdej iteracji. Oznacza to, że ciało pętli wykona się przynajmniej raz, niezależnie od tego, czy warunek jest prawdziwy na początku. W analizowanej konstrukcji mamy zmienną x początkowo ustawioną na 1, która w każdej iteracji jest mnożona przez 3, oraz zmienną i zliczającą liczbę iteracji. Pętla kontynuuje, dopóki x nie osiągnie wartości 27. W obliczeniach x przyjmuje wartości 1, 3, 9, i na koniec 27. Dopiero po osiągnięciu 27 warunek x!=27 staje się fałszem, zatrzymując pętlę po trzeciej iteracji. Częstym błędem przy analizie takich pętli jest pomijanie faktu, że wykonają się one przynajmniej raz, co może prowadzić do błędnej oceny liczby iteracji. Rozumienie tej mechaniki jest kluczowe w projektowaniu algorytmów, które muszą zagwarantować wykonanie kodu niezależnie od początkowego stanu zmiennych.

Pytanie 29

Aby wyszukać w tabeli Pracownicy tylko te nazwiska, które kończą się na literę "i", można zastosować kwerendę SQL

A. SELECT nazwisko FROM Pracownicy WHERE nazwisko LIKE "i"
B. SELECT nazwisko FROM Pracownicy WHERE nazwisko LIKE "%i"
C. SELECT nazwisko FROM Pracownicy WHERE nazwisko LIKE "%i%"
D. SELECT nazwisko FROM Pracownicy WHERE nazwisko LIKE "i%"
Te odpowiedzi, które wybrałeś, mają niestety sporo błędów. W pierwszej odpowiedzi 'SELECT nazwisko FROM Pracownicy WHERE nazwisko LIKE "i%";' próbujesz znaleźć nazwiska, które zaczynają się na 'i', a nie kończą. To dość poważny błąd, bo operator LIKE działa różnie, w zależności od wzorca. W drugiej odpowiedzi 'SELECT nazwisko FROM Pracownicy WHERE nazwisko LIKE "%i%";' szukasz nazwisk, gdzie 'i' jest gdziekolwiek, a nie tylko na końcu. To sprawia, że wyniki są znacznie szersze i nie odpowiadają temu, czego szukasz. Ostatnia odpowiedź, czyli 'SELECT nazwisko FROM Pracownicy WHERE nazwisko LIKE "i";', wymaga, żeby nazwisko było dokładnie 'i', co jest bardzo mało prawdopodobne. Często widzę, że ludzie mylą działanie wildcardów w SQL. Ważne jest, aby dobrze zrozumieć, jak używać wzorców, bo to pomaga w tworzeniu skutecznych kwerend.

Pytanie 30

Aby ustanowić relację jeden do wielu, w tabeli reprezentującej stronę "wiele", konieczne jest zdefiniowanie

A. klucza obcego wskazującego na klucz podstawowy tabeli po stronie "jeden"
B. klucza sztucznego odnoszącego się do kluczy podstawowych obydwu tabel
C. klucza obcego odnoszącego się do klucza obcego tabeli po stronie "jeden"
D. klucza podstawowego wskazującego na klucz podstawowy tabeli po stronie "jeden"
Definiowanie relacji w bazach danych to dosyć skomplikowana sprawa. Jakby nie patrzeć, jak zrobisz coś źle z kluczami obcymi czy podstawowymi, to mogą być duże problemy z danymi. Klucz sztuczny, który odnosi się do kluczy podstawowych w obu tabelach, może wydawać się prosty, ale nie rozwiązuje faktycznego problemu, którym jest jasna relacja między danymi. To wprowadza dodatkowe zamieszanie, a to nie jest dobra praktyka. Jak zdefiniujesz klucz obcy, który wskazuje na inny klucz obcy w tabeli po stronie 'jeden', no to może być tylko mętlik, bo ciężko wtedy utrzymać spójność danych. Klucz podstawowy, który wskazuje na klucz podstawowy z tabeli po stronie 'jeden', to również zły wybór, bo klucz podstawowy ma być unikalny dla każdej tabeli. Kluczowe jest, żeby klucze obce były używane w odpowiedni sposób, bo inaczej struktura danych robi się nieczytelna i trudna do zarządzania, a to na pewno nie idzie w parze z dobrym projektowaniem baz danych.

Pytanie 31

Metainformacja "Description" zawarta w pliku HTML powinna zawierać ``` ```

A. opis zawartości strony
B. nazwę aplikacji, w której stworzono stronę
C. informację o autorze strony
D. listę kluczowych fraz używanych przez wyszukiwarki internetowe
Wybór niepoprawnych odpowiedzi wskazuje na nieporozumienie dotyczące funkcji metainformacji 'Description'. Informacja o autorze strony nie jest ujęta w tej sekcji; zamiast tego, powinna być umieszczona w metatagach takich jak 'author', które podają dane o osobie lub organizacji odpowiedzialnej za stronę. Wyszukiwarki nie korzystają z tej informacji przy indeksowaniu treści, co czyni ją nieistotną dla opisu strony. Również wykazy kluczowe, takie jak metatagi 'keywords', stały się przestarzałe w kontekście SEO; dzisiejsze algorytmy wyszukiwarek skupiają się na głębszym zrozumieniu treści, a nie na prostym wskaźniku słów kluczowych. Ostatnią kwestią jest nazwa programu, przy użyciu którego strona została stworzona. Tego rodzaju informacja jest zbędna i nie wpływa na zawartość strony ani jej ocenę w wyszukiwarkach. W praktyce, metainformacja 'Description' powinna jasno przedstawiać, co użytkownik znajdzie na stronie, a nie zawierać danych o autorze, słowach kluczowych czy narzędziach użytych do jej stworzenia.

Pytanie 32

Która z zasad dotyczących użycia semantycznych znaczników sekcji w języku HTML 5 jest poprawna?

A. Znacznik <aside> jest wykorzystywany dla dodatkowej treści strony
B. Znacznik <footer> powinien być umieszczony na górze strony, a <header> na jej końcu
C. Znacznik <nav> jest przypisany do sekcji <article>
D. Znacznik <main> może być użyty tylko raz w danym dokumencie
Każda z pozostałych odpowiedzi zawiera nieprawidłowe założenia dotyczące używania znaczników semantycznych w HTML5. Znacznik <nav> nie jest ograniczony do sekcji <article>, lecz jest przeznaczony do oznaczania linków nawigacyjnych w całym dokumencie, co oznacza, że może występować w różnych miejscach, nie tylko w kontekście artykułów. Z kolei umiejscowienie znaczników <footer> i <header> w odwrotnych pozycjach jest również błędne. Zgodnie z najlepszymi praktykami, <header> powinien znajdować się na górze dokumentu, a <footer> na jego końcu, co jest zgodne z intuicyjnym podejściem do struktury strony. Ostatnia odpowiedź sugerująca, że <aside> jest używane dla głównej treści strony, również nie jest prawdziwa. Znacznik <aside> służy do oznaczania treści pobocznej, która jest związana z główną treścią, ale nie jest jej integralną częścią. Przykłady błędów myślowych związanych z tymi nieprawidłowymi odpowiedziami często wynikają z mylenia funkcjonalności znaczników z ich miejscem w hierarchii dokumentu. Użycie nieprawidłowych znaczników lub niewłaściwe umiejscowienie znaczników semantycznych prowadzi do osłabienia struktury dokumentu oraz negatywnie wpływa na dostępność i SEO strony.

Pytanie 33

Znacznik <pre> </pre> służy do wyświetlania

A. treści czcionką w języku polskim
B. znaku wielokropkowego
C. znaku skreślenia
D. treści czcionką o stałej szerokości
Wybór błędnych odpowiedzi może wynikać z nieporozumienia dotyczącego funkcji znacznika <pre>. Odpowiedzi sugerujące, że służy on do wyświetlania znaku przekreślenia, znaku wielokropka, lub treści polską czcionką nie mają podstaw w rzeczywistej funkcjonalności tego znacznika. Znaki przekreślenia, czy wielokropki są zazwyczaj elementami typografii, które można osiągnąć przez inne znaczniki i style CSS, a nie przez <pre>. Znacznik <pre> nie wpływa na rodzaj czcionki używanej w danym elemencie, lecz przede wszystkim na sposób wyświetlania treści. Przykładem może być tekst umieszczony w tym znaczniku, który wyświetla się w sposób stały, niezależnie od ustawień czcionki w stylach CSS, co czyni go nieodpowiednim do użycia w kontekście wyboru konkretnej czcionki, jak polska czcionka. Zrozumienie, że <pre> dotyczy przede wszystkim zachowania formatowania tekstu, a nie jego typografii, jest kluczowe do poprawnego korzystania z HTML. W przypadku, gdy użytkownik wybiera błędne odpowiedzi, może to wynikać z mylnego założenia, że <pre> jest odpowiedzialny za typografię, co prowadzi do nieprawidłowych wniosków w kontekście inżynierii oprogramowania i projektowania stron internetowych.

Pytanie 34

W której notacji diagramów ER został zapisany model związków encji przedstawiony na ilustracji?

Ilustracja do pytania
A. Chena.
B. Martina.
C. Min-Max.
D. Bachmana.
Na diagramie przedstawiono model w notacji Martina, a nie w żadnej z pozostałych wymienionych. Warto zrozumieć, czym ta notacja różni się od innych, bo w praktyce projektowania baz danych bardzo łatwo je ze sobą pomylić. Notacja Chena to bardziej „akademickie” podejście do ERD. Encje są zwykle rysowane jako prostokąty, ale atrybuty pojawiają się w osobnych elipsach, połączonych liniami z encją. Klucz główny bywa podkreślony, a związki są reprezentowane przez romby z nazwą relacji. Na naszym diagramie nic takiego nie ma – atrybuty są w środku prostokąta, w formie listy, a nie jako osobne kształty, więc to już mocny sygnał, że to nie jest Chen. Z kolei notacja Bachmana historycznie kojarzy się z modelami sieciowymi i specyficznym sposobem prezentowania struktur danych, często z łamanymi liniami i strzałkami, raczej nie przypomina tabel z nagłówkiem i listą pól. W typowych podręcznikach do systemów baz danych Bachman jest pokazywany jako dość stary styl, dziś mało używany przy klasycznym relacyjnym ERD, więc mało prawdopodobne, by tak wyglądał nowoczesny diagram klient–zakup–towar. Odpowiedź Min-Max jest też myląca, bo Min-Max nie jest nazwiskiem autora notacji, tylko sposobem zapisu krotności relacji, np. (0,1), (1,n). Można taki zapis wykorzystać zarówno z notacją Chena, jak i z innymi, ale sam diagram z obrazka nie używa jawnego oznaczenia min/max przy relacjach – widzimy crow’s foot, czyli styl typowy dla Martina. Typowy błąd w tego typu pytaniach polega na tym, że ktoś kojarzy jeden detal, np. gdzieś widział oznaczenia min-max, i automatycznie zakłada, że każda notacja z relacjami i krotnościami to „Min-Max”. Tutaj jednak kluczowe są kształty encji i sposób zapisu atrybutów: prostokąt z nagłówkiem i lista pól jak w tabeli, bez elips i rombów, bez dodatkowych znaczników kluczy – to bardzo klasyczny, praktyczny styl używany przy projektowaniu relacyjnych baz danych, właśnie w notacji Martina. Dobrze jest więc patrzeć na diagram całościowo, a nie tylko na pojedynczy symbol, bo wtedy łatwiej uniknąć takich pomyłek.

Pytanie 35

Jaki jest cel zapisu w języku JavaScript?

var napis1 = new napisy();
A. zainicjowanie zmiennej napis1 oraz wywołanie funkcji, której argumentem jest napis1
B. wykonanie metody obiektu napisy
C. założenie nowej klasy napis1
D. stworzenie obiektu napis1 z klasy napisy
Prawidłowa odpowiedź dotyczy utworzenia obiektu napis1 klasy napisy. W języku JavaScript, aby stworzyć nowy obiekt na podstawie istniejącej klasy lub funkcji konstruktora, używamy słowa kluczowego new. Wyrażenie var napis1 = new napisy() inicjalizuje nowy obiekt napis1, który jest instancją klasy napisy. Taki zapis jest kluczowy w programowaniu obiektowym, które pozwala na tworzenie wielu instancji obiektów z podobnymi właściwościami i metodami. Praktyczne zastosowanie tego podejścia jest szerokie od modelowania danych po tworzenie modularnych i łatwych do zarządzania aplikacji. Dobra praktyka nakazuje, aby klasy były dobrze zdefiniowane z jasno określonymi właściwościami i metodami, co ułatwia ich ponowne wykorzystanie i rozszerzanie. W programowaniu funkcjonalnym JavaScript często wykorzystuje się prototypowe dziedziczenie, które pozwala na zmniejszenie liczby powtarzalnych kodów oraz efektywne zarządzanie pamięcią. Warto także pamiętać, że w nowoczesnych wersjach JavaScript stosowane są klasy ES6, które wprowadzają bardziej zrozumiałą składnię dla tworzenia klas i obiektów co poprawia czytelność i strukturę kodu.

Pytanie 36

Jakie mechanizmy przydzielania zabezpieczeń, umożliwiające przeprowadzanie operacji na bazie danych, są powiązane z zagadnieniami dotyczącymi zarządzania kontami, użytkownikami oraz uprawnieniami?

A. Z regułami
B. Z przywilejami obiektowymi
C. Z atrybutami
D. Z przywilejami systemowymi
Uprawnienia związane z atrybutami i regułami mogą mylnie wydawać się odpowiednie w kontekście zarządzania dostępem, ale ich zrozumienie jest kluczowe, aby uniknąć błędnych wniosków. Atrybuty w kontekście systemów zarządzania bazami danych są często używane do definiowania cech obiektów, takich jak kolumny w tabelach, ale nie są bezpośrednio związane z mechanizmami nadawania uprawnień. Reguły, choć mogą być wykorzystywane do definiowania polityk bezpieczeństwa, nie są tym samym co przywileje systemowe. Przywileje obiektowe, z kolei, dotyczą dostępu do konkretnych obiektów w bazie danych, takich jak tabele czy widoki, a nie ogólnych uprawnień administracyjnych. Często występuje nieporozumienie, że wszystkie te mechanizmy są równoważne, co prowadzi do niewłaściwego stosowania uprawnień w systemach. Kluczowe jest zrozumienie, że przywileje systemowe są tymi, które kontrolują dostęp do całej struktury bazy danych, a nie tylko do jej poszczególnych elementów, co stanowi podstawę dla skutecznego zarządzania bezpieczeństwem w środowiskach IT. W praktyce niepoprawne przypisywanie uprawnień może prowadzić do nieautoryzowanego dostępu do danych, co jest sprzeczne z najlepszymi praktykami ochrony informacji.

Pytanie 37

Na podstawie filmu wskaż, która cecha dodana do stylu CSS zamieni miejscami bloki aside i nav, pozostawiając w środku blok section?

A. nav { float: left; } aside { float: left; }
B. aside {float: left; }
C. nav { float: right; }
D. nav { float: right; } section { float: right; }
W tym zadaniu kluczowe jest zrozumienie, jak naprawdę działa float, a nie tylko samo skojarzenie, że „left to lewo, right to prawo”. Wiele osób myśli, że wystarczy ustawić jeden element na lewo, drugi na prawo i wszystko magicznie się poukłada. W praktyce przeglądarka trzyma się bardzo konkretnych reguł: najpierw liczy kolejność elementów w HTML, potem dopiero stosuje float i układa je możliwie jak najwyżej i jak najbliżej odpowiedniej krawędzi. Jeśli nada się float tylko dla aside albo tylko dla nav, to zmienia się ich pozycja, ale układ trzech bloków nie spełni warunku z zadania: aside i nav nie zamienią się miejscami z pozostawieniem section w środku. Przykładowo, samo float: left na aside niczego nie „zamieni”, bo element i tak pojawia się jako pierwszy w kodzie, więc będzie u góry, tylko że „przyklejony” do lewej. Z kolei ustawienie nav na prawą stronę bez odpowiedniego floatowania section prowadzi do sytuacji, gdzie section nadal zachowuje się jak normalny blok, zwykle ląduje pod elementami pływającymi albo obok nich w sposób mało przewidywalny dla początkującego. Częsty błąd myślowy polega też na tym, że ktoś próbuje wszystkim elementom dać float: left, licząc na to, że przeglądarka „ułoży je po swojemu”. Wtedy jednak wszystkie te bloki ustawiają się w jednym kierunku, w kolejności z HTML, więc nie ma mowy o świadomym „zamienianiu miejsc”. Brak zrozumienia, że float wyjmuje element z normalnego przepływu i wpływa na to, jak kolejne elementy zawijają się wokół niego, prowadzi właśnie do takich błędnych odpowiedzi. Z mojego doświadczenia lepiej jest najpierw narysować sobie prosty schemat: w jakiej kolejności idą znaczniki i które z nich mają pływać w prawo, a które zostać w naturalnym układzie. Dopiero wtedy dobiera się konkretne deklaracje CSS. Takie myślenie przydaje się nie tylko przy float, ale też przy nauce flexboxa czy grida, gdzie kolejność w DOM i własności układu też grają ogromną rolę.

Pytanie 38

Kolorem, który ma odcień niebieski, jest kolor

A. #00EE00
B. #EE0000
C. #EE00EE
D. #0000EE
Odpowiedzi takie jak #EE0000, #00EE00 oraz #EE00EE wskazują na inne kolory, które nie są związane z odcieniem niebieskim. #EE0000 odpowiada czerwieni, co można zrozumieć analizując jego składowe: wysoka wartość czerwonej (EE) w połączeniu z zerowymi wartościami zielonej i niebieskiej. Czerwień jest często używana do przyciągania uwagi, jednak w kontekście pytań o kolor niebieski, jest to nieadekwatny wybór. Z kolei #00EE00 reprezentuje zielony, gdzie składowa zielona ma wysoką intensywność, a czerwona i niebieska są nieobecne, co nie ma związku z poszukiwanym kolorem. Ostatnia odpowiedź, #EE00EE, przedstawia różowy, co wynika z wysokiej wartości zarówno czerwonej, jak i niebieskiej, a braku zielonej. Dobrą praktyką w zakresie wyboru kolorów jest zrozumienie ich znaczenia oraz zastosowania w konkretnej dziedzinie, co ma kluczowe znaczenie w kontekście projektowania graficznego czy brandingowego. Niezrozumienie podstawowych zasad definiowania kolorów w formacie RGB może prowadzić do nieprawidłowych wyborów kolorystycznych, które z kolei mogą wpływać na percepcję marki czy funkcjonalność aplikacji. Dlatego ważne jest, aby zrozumieć, jakie wartości szesnastkowe odpowiadają poszczególnym kolorom oraz jakie są ich praktyczne zastosowania w projektach graficznych.

Pytanie 39

W bazie danych MYSQL znajduje się tabela z programami komputerowymi, która ma pola: nazwa, producent, rokWydania. Jak należy sformułować kwerendę SELECT, aby uzyskać wszystkie nazwy producentów bez powtórzeń?

A. SELECT producent FROM programy WHERE producent NOT DUPLICATE;
B. SELECT DISTINCT producent FROM programy;
C. SELECT UNIQUE producent FROM programy;
D. SELECT producent FROM programy WHERE UNIQUE;
Odpowiedź 'SELECT DISTINCT producent FROM programy;' jest w porządku. To dlatego, że kluczowe słowo DISTINCT działa tak, że zwraca tylko unikalne wartości z kolumny 'producent' w tabeli 'programy'. Jak są duże zbiory danych, to użycie DISTINCT naprawdę się przydaje, bo pozwala pozbyć się duplikatów i to później ułatwia analizę danych. Na przykład, kiedy w tabeli jest mnóstwo rekordów dla tego samego producenta, to DISTINCT zwróci tylko jeden wpis dla każdego z nich. Wiesz, to taka dobra praktyka w SQL, bo im mniej danych musisz przetwarzać, tym lepsza wydajność. I, co ciekawe, użycie DISTINCT nie obniża wydajności zapytania tak bardzo, jak niektórzy mogą myśleć, szczególnie w dobrze zindeksowanych tabelach. Warto to mieć na uwadze.

Pytanie 40

W systemie MySQL trzeba użyć polecenia REVOKE, aby użytkownikowi anna cofnąć możliwość wprowadzania zmian jedynie w definicji struktury bazy danych. Odpowiednia komenda do odebrania tych uprawnień ma postać

A. REVOKE CREATE INSERT DELETE ON tabela1 FROM 'anna'@'localhost'
B. REVOKE CREATE UPDATE DROP ON tabela1 FROM 'anna'@'localhost'
C. REVOKE CREATE ALTER DROP ON tabela1 FROM 'anna'@'localhost'
D. REVOKE ALL ON tabela1 FROM 'anna'@'locaihost'
Polecenie REVOKE w MySQL jest używane do odbierania przydzielonych wcześniej uprawnień użytkownikom. W kontekście pytania, właściwa odpowiedź to 'REVOKE CREATE ALTER DROP ON tabela1 FROM 'anna'@'localhost''. To polecenie wskazuje na odebranie użytkownikowi 'anna' możliwości tworzenia nowych obiektów w bazie danych (CREATE), zmiany struktury istniejących obiektów (ALTER) oraz usuwania obiektów (DROP) w tabeli 'tabela1'. Odbieranie tych praw jest kluczowe w zarządzaniu bezpieczeństwem bazy danych, ponieważ pozwala na precyzyjne kontrolowanie, kto ma dostęp do modyfikacji struktury bazy danych. W praktyce, administratorzy baz danych często muszą ograniczać uprawnienia użytkowników, aby zapobiec nieautoryzowanym zmianom, które mogą wpłynąć na integralność danych. Dobrą praktyką jest regularne przeglądanie i aktualizowanie uprawnień użytkowników, aby dostosować je do zmieniających się potrzeb organizacji oraz zwiększyć poziom bezpieczeństwa systemu.