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: 10 czerwca 2026 18:34
  • Data zakończenia: 10 czerwca 2026 19:07

Egzamin zdany!

Wynik: 24/40 punktów (60,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

W tabeli artykuly przeprowadzono poniższe operacje związane z uprawnieniami użytkownika jan.

GRANT ALL PRIVILEGES ON artykuły TO jan
REVOKE SELECT, UPDATE ON artykuly FROM jan

Jakie będą uprawnienia użytkownika jan po wykonaniu tych operacji?

A. aktualizowania informacji oraz przeglądania tabeli
B. tworzenia tabeli oraz aktualizowania danych w niej
C. przeglądania tabeli
D. tworzenia tabel oraz ich zapełniania danymi
Wybór odpowiedzi dotyczącej "aktualizowania danych i przeglądania tabeli" nie jest poprawny, ponieważ po wykonaniu polecenia REVOKE SELECT, UPDATE ON artykuly FROM jan, jan traci te konkretne uprawnienia. Warto zauważyć, że polecenie GRANT ALL PRIVILEGES przyznaje użytkownikowi szereg uprawnień, ale ich zakres można ograniczyć innymi poleceniami, jak REVOKE. Z tego powodu jan nie ma już możliwości przeglądania tabeli ani jej aktualizowania, co czyni tę odpowiedź nieaktualną. Często w praktyce zawodowej zdarza się, że nadawane są szerokie uprawnienia, a następnie w miarę potrzeby są one ograniczane, co może prowadzić do nieporozumień, jeśli nie zrozumie się działania tych poleceń. Kolejna niepoprawna odpowiedź, która sugeruje "przeglądanie tabeli", również jest błędna z tego samego powodu - jan nie ma takich uprawnień po REVOKE. Ostatnia z odpowiedzi, mówiąca o "tworzeniu tabeli i aktualizowaniu w niej danych", jest niepoprawna, ponieważ użytkownik jan nie ma już prawa aktualizacji danych po wycofaniu tych uprawnień. Zrozumienie mechanizmów zarządzania uprawnieniami jest kluczowe w pracy z bazami danych, aby uniknąć przypisania użytkownikom większych niż potrzebne przywilejów, co mogłoby prowadzić do nieautoryzowanego dostępu lub usunięcia danych.

Pytanie 2

Jakie polecenie przywróci do działania uszkodzoną tabelę w SQL?

A. REGENERATE TABLE tbl_name
B. OPTIMIZE TABLE tbl_name
C. REPAIR TABLE tblname
D. ANALYZE TABLE tbl_name
Wybór komend OPTIMIZE TABLE, ANALYZE TABLE oraz REGENERATE TABLE jako metod naprawy uszkodzonych tabel w SQL jest nieprawidłowy, ponieważ każda z tych operacji ma inne cele i nie służy do bezpośredniej naprawy uszkodzeń. OPTIMIZE TABLE jest używane do reorganizacji danych w tabeli, co może poprawić jej wydajność, ale nie rozwiązuje problemów z uszkodzeniem. Użytkownicy często mylą potrzebę optymalizacji z koniecznością naprawy, co może prowadzić do nieprawidłowego stosowania tej komendy, zwłaszcza w sytuacjach kryzysowych, gdy tabela może być już uszkodzona. ANALYZE TABLE jest narzędziem do zbierania statystyk o rozkładzie danych w tabelach, co pomaga optymalizatorowi zapytań w ustaleniu najlepszych strategii dostępu do danych, ale nie ma żadnej funkcji naprawczej. Użytkownicy mogą błędnie zakładać, że zbieranie statystyk w przypadku uszkodzonej tabeli rozwiąże problemy z dostępnością danych. REGENERATE TABLE natomiast nie jest standardowym poleceniem w SQL, co może wprowadzać w błąd. Brak znajomości różnic między tymi komendami a REPAIR TABLE może prowadzić do przekonania, że można je stosować wymiennie, co nie jest zgodne z dobrą praktyką w zarządzaniu bazami danych. W przypadku uszkodzeń zawsze należy sięgać po odpowiednie narzędzia diagnostyczne i naprawcze, aby skutecznie zarządzać integralnością danych.

Pytanie 3

Przedstawione zapytanie SQL przydziela uprawnienie SELECT

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

Pytanie 4

Funkcja
fun1(a,b) {
  if(a % 2 != 0) a++;
  for(let n = a; n <= b; n+=2) document.write(n);
}
ma na celu

A. wypisanie wszystkich liczb w przedziale od a do b
B. wypisanie liczb parzystych w zakresie od a do b
C. sprawdzenie, czy liczba a jest nieparzysta; w przypadku pozytywnej odpowiedzi, jej wypisanie
D. zwrócenie parzystych wartości liczb od a do b
W przypadku pierwszej błędnej odpowiedzi, najważniejszy błąd to myślenie, że funkcja zwraca wartości parzyste jak zwykły wynik. W rzeczywistości funkcja wypisuje te liczby na stronie za pomocą document.write(), więc to jest kluczowy szczegół. Druga niepoprawna odpowiedź jest na dobrej drodze, ale myli się w interpretacji 'wypisania liczb parzystych z przedziału od a do b'. Funkcja nie tylko wypisuje liczby parzyste, ale też sprawdza, czy a jest nieparzyste, i wtedy zmienia tę wartość. Co do trzeciej błędnej odpowiedzi, sugeruje ona, że funkcja wypisuje wszystkie liczby między a a b, co jest zupełnie błędne, bo pętla for zwiększa n o 2, więc tylko parzyste liczby się pojawią. Rozumienie jak działa pętla for oraz operator modulo jest kluczowe, żeby dobrze zrozumieć tę funkcję. Jeśli nie ogarniasz tych podstaw, ciężko będzie analizować kod w JavaScript i pisać lepsze programy.

Pytanie 5

W języku JavaScript obiekt typu array jest wykorzystywany do przechowywania

A. wielu wartości wyłącznie tekstowych.
B. wielu wartości wyłącznie liczbowych.
C. wielu wartości lub funkcji.
D. wielu wartości dowolnego typu.
Wybierając odpowiedzi, które ograniczają typy danych do tylko jednej kategorii, można zauważyć, że są one niepoprawne. Obiekty typu array w JavaScript mogą przechowywać wartości dowolnego rodzaju, co wyklucza te odpowiedzi. Niepoprawna jest idea przechowywania tylko wielu wartości lub funkcji, ponieważ tablice są znacznie bardziej wszechstronne. Funkcje mogą być jedynie jednym z elementów tablicy, ale nie definiują jej głównej funkcji. Przechowywanie tylko wielu wartości wyłącznie liczbowych jest również błędne, ponieważ tablica może zawierać różnorodne typy danych, nie tylko liczby. Tak samo, ograniczenie do wartości wyłącznie tekstowych jest mylące, gdyż tablica może przechowywać obiekty, inne tablice oraz liczby. Przykładowo, w tablicy można mieć mieszankę różnych typów danych takich jak: let mixedArray = [1, 'tekst', true, {key: 'value'}, [5, 6, 7]]; co pokazuje, że tablice są zdolne do przechowywania różnorodnych informacji. W związku z tym, ograniczenie do pojedynczych typów danych nie oddaje w pełni potencjału, jaki oferują tablice w JavaScript, co jest kluczowe dla ich użyteczności w programowaniu.

Pytanie 6

Do stworzenia stron internetowych w sposób graficzny należy zastosować

A. program do przeglądania stron
B. oprogramowanie MS Office Picture Manager
C. aplikację typu WYSIWYG
D. narzędzie do edycji CSS
Programy typu WYSIWYG (What You See Is What You Get) to narzędzia, które umożliwiają użytkownikom tworzenie stron internetowych w sposób wizualny, bez konieczności pisania kodu HTML czy CSS. Użytkownik może przeciągać i upuszczać elementy, takie jak tekst, obrazy czy formularze, a program automatycznie generuje odpowiedni kod. Przykładami popularnych programów WYSIWYG są Adobe Dreamweaver oraz Webflow, które posiadają zaawansowane funkcje, takie jak responsywność oraz integrację z systemami zarządzania treścią. W kontekście standardów webowych, programy WYSIWYG często oferują zgodność z aktualnymi wytycznymi, takimi jak HTML5 i CSS3, co pozwala na tworzenie nowoczesnych, atrakcyjnych wizualnie stron internetowych. Dla osób, które nie mają doświadczenia w programowaniu, takie narzędzia są szczególnie cenne, ponieważ umożliwiają łatwe tworzenie profesjonalnych witryn, które mogą być optymalizowane pod kątem SEO, co jest kluczowe w dzisiejszym świecie online. Dzięki programom WYSIWYG, także osoby z ograniczonymi umiejętnościami technicznymi mogą skutecznie tworzyć i edytować swoje strony, co znacznie przyspiesza proces projektowania.

Pytanie 7

W celu uzyskania efektu widocznego na rysunku, w kodzie HTML, należy umieścić znacznik skrótu <abbr> z atrybutem

Ilustracja do pytania
A. alt
B. dfn
C. name
D. title
Wybrałeś niepoprawną odpowiedź. Przeanalizujmy inne opcje. 'alt' to atrybut używany w znacznikach obrazów (&lt;img&gt;) w HTML, służy do dostarczania tekstu alternatywnego, który jest wyświetlany, gdy obraz nie może być załadowany. 'dfn' to znacznik HTML używany do zdefiniowania terminu, ale nie ma on żadnej roli w określaniu skrótów. 'name' to atrybut używany w różnych znacznikach HTML, takich jak &lt;input&gt;, &lt;form&gt;, &lt;map&gt;, &lt;meta&gt;, &lt;param&gt; oraz &lt;button&gt;, ale nie jest związany ze znacznikami skrótów. W HTML, atrybutem używanym wraz ze znacznikiem skrótu &lt;abbr&gt; jest 'title', który dostarcza pełną formę skrótu. Proszę pamiętać o tej informacji na przyszłość.

Pytanie 8

Zademonstrowano fragment kodu JavaScript. Po jego uruchomieniu zmienna str2 otrzyma wartość. ```var str1 = "JavaScript"; var str2 = str1.substring(2, 6);```

A. vaScri
B. vaSc
C. avaScr
D. avaS
W przedstawionym fragmencie kodu JavaScript mamy do czynienia z metodą substring, która jest wykorzystywana do wyodrębnienia części łańcucha tekstowego. Wartością str1 jest 'JavaScript', a błędnie zapisany fragment 'str1.substring2,6)' wskazuje na próbę użycia metody substring, przy czym prawidłowy zapis to 'str1.substring(2, 6)'. Metoda substring przyjmuje dwa argumenty: indeks początkowy oraz indeks końcowy. W przypadku 'JavaScript', indeks 2 wskazuje na literę 'v', a indeks 6 na literę 'S'. Zatem metoda substring wyodrębni znaki od indeksu 2 do 5 (indeks 6 nie jest włączony), co daje wynik 'vaSc'. Warto również podkreślić, że metody pracy z łańcuchami tekstowymi są podstawą programowania w JavaScript, umożliwiając manipulację danymi tekstowymi i są zgodne z ECMAScript, co czyni je standardowymi dla tego języka. Dobrą praktyką jest zawsze zwracanie uwagi na poprawne użycie nawiasów oraz argumentów w metodach, co ma kluczowe znaczenie dla poprawności kodu. Przykład użycia: str1.substring(2, 6) zwróci 'vaSc', a str1.substring(0, 4) zwróci 'Java'.

Pytanie 9

Podany kod źródłowy ma na celu pokazanie:

$liczba = 1;
while ($liczba != 0)
{
  $liczba = rand(0, 100);
  echo $liczba;
}
A. kolejne liczby od 1 do 100
B. wylosowane liczby od 1 do 99
C. liczby wprowadzane z klawiatury do momentu, gdy wczytana zostanie wartość 0
D. losowe liczby od 0 do 100 aż do momentu, gdy wylosowana zostanie wartość 0
Odpowiedzi, które sugerują, że kod generuje kolejne liczby od 1 do 100, wylosowane liczby od 1 do 99, czy też wczytane z klawiatury liczby, zawierają fundamentalne błędy w interpretacji logiki działania przedstawionego kodu. Po pierwsze, pętla while w kodzie analizowanym opiera się na losowym generowaniu liczb z wykorzystaniem funkcji rand(), a nie na sekwencyjnym przydzielaniu wartości. Kod nie generuje przyrostu numerycznego, jak sugeruje odpowiedź sugerująca liczby od 1 do 100. Ponadto, nie ma żadnej logiki, która wprowadzałaby wartości do programu z klawiatury, co całkowicie wyklucza odpowiedzi sugerujące wczytywanie liczb. Ważne jest, aby zrozumieć, że w kontekście programowania różnica pomiędzy losowym generowaniem a sekwencyjnym przydzielaniem wartości ma kluczowe znaczenie. Niepoprawne koncepcje pochodzą często z mylenia pojęć losowości i deterministycznych sekwencji, co prowadzi do błędnych wniosków. Każdy programista musi być świadomy tych różnic, aby unikać nieporozumień w kodzie, co jest istotne zarówno w codziennej praktyce programistycznej, jak i w bardziej złożonych projektach, gdzie precyzyjne działanie kodu jest kluczowe dla uzyskania oczekiwanych wyników.

Pytanie 10

W programowaniu zmienna typu integer jest wykorzystywana do przechowywania

A. wartości logicznej
B. liczby rzeczywistej
C. znaku
D. liczby całkowitej
Zmienna typu integer w programowaniu to taki typ, który służy do przechowywania liczb całkowitych. Oznacza to, że nie ma tam żadnych przecinków ani części dziesiętnych, tylko całe liczby. W wielu językach, jak C, C++, czy Python, typ integer jest naprawdę podstawowym narzędziem. Warto zaznaczyć, że te liczby mogą mieć różny zakres w zależności od języka i platformy, ale najczęściej w systemach 32-bitowych zmieszczą się w granicach od -2,147,483,648 do 2,147,483,647. Co więcej, operacje na zmiennych typu integer są zazwyczaj szybsze niż na float czy double, co w praktyce oznacza, że lepiej nadają się do obliczeń, zwłaszcza tych prostych. Na przykład, możemy stworzyć program, który zlicza wszystkie liczby całkowite w jakiejś liście. Warto też wiedzieć, że w standardzie ISO C99 mówimy, że typ int powinien mieć przynajmniej 16 bitów, co pokazuje, jak ważny jest ten typ w programowaniu. Dlatego znajomość zmiennych typu integer jest naprawdę kluczowa dla każdego programisty, który chce pisać szybkie i efektywne aplikacje.

Pytanie 11

Która funkcja edytora grafiki wektorowej spowoduje przekształcenie z przedstawionych po lewej stronie figur koła i prostokąta do figury półkola widocznej po prawej stronie?

Ilustracja do pytania
A. Podział.
B. Część wspólna.
C. Wykluczenie.
D. Różnica.
W grafice wektorowej operacje na kształtach, takie jak Różnica, Podział, Wykluczenie czy Część wspólna, to tzw. operacje boole’owskie. One nie są losowe – każda z nich ma bardzo konkretne, matematyczne znaczenie. Typowy błąd polega na tym, że patrzymy tylko na „intuicyjną” nazwę funkcji, a nie na to, co faktycznie dzieje się z obszarami wypełnienia. Różnica (ang. Subtract / Difference) polega na tym, że jedna figura „wycina” fragment z drugiej. Gdyby w naszym przykładzie użyć różnicy, to z jednej figury zostałby usunięty fragment zajmowany przez drugą. W efekcie dostalibyśmy kształt przypominający np. prostokąt z zaokrąglonym wycięciem, a nie pełne półkole. To przydaje się np. do robienia otworów, ramek, ikon z „dziurą”, ale nie do budowy półkola. Podział (ang. Divide / Fragment) dzieli obszar wszędzie tam, gdzie kształty się przecinają, na kilka osobnych obiektów. Wizualnie może to chwilowo wyglądać podobnie, ale końcowy efekt to kilka fragmentów, które trzeba ręcznie usuwać lub scalać. W testowym zadaniu chodzi o jedną, gotową figurę półkola, bez dodatkowego sprzątania, więc to nie jest optymalna operacja. Wykluczenie (ang. Exclude / XOR) działa odwrotnie do części wspólnej – usuwa obszar nakładania się, a zostawia tylko to, co jest „na zewnątrz” przecięcia. Gdyby użyć wykluczenia na kole i prostokącie, środek, czyli miejsce ich wspólnego nakładania, zniknie, a zostaną dwa osobne dziwne kształty po bokach. To dobra funkcja do tworzenia bardziej dekoracyjnych, ażurowych form, ale kompletnie nie nadaje się do uzyskania klasycznego półkola. W tym zadaniu kluczowe jest zrozumienie, że półkole jest dokładnie tym obszarem, gdzie koło i prostokąt się pokrywają. Stąd jedynie „Część wspólna” daje czysty, poprawny efekt bez dodatkowej obróbki. Warto przy takich pytaniach wyobrażać sobie, które fragmenty zostaną, a które zostaną usunięte, zamiast sugerować się tylko nazwą funkcji w menu programu.

Pytanie 12

Co zazwyczaj wchodzi w skład Framework'a?

A. obsługa błędów i domena
B. zarządzanie komunikacją z bazą danych, mechanizm uruchamiania i przetwarzania akcji
C. wbudowany serwer i obsługa formularzy
D. certyfikat http oraz mechanizm przetwarzania i uruchamiania akcji
Pierwsza odpowiedź wskazuje na elementy, które są często obecne w aplikacjach webowych, jednak nie są kluczowymi składnikami frameworków. Domeny i obsługa błędów to ważne aspekty ogólnie dotyczące programowania, ale same w sobie nie definiują funkcjonalności frameworka. Obsługa formularzy oraz wbudowany serwer to funkcje, które mogą być dostarczane przez frameworki, jednak nie stanowią one ich podstawowych komponentów. Obsługa formularzy dotyczy głównie interakcji użytkownika z aplikacją, a wbudowany serwer to jedynie narzędzie do lokalnego testowania, które nie jest kluczowe dla samego frameworka. Natomiast certyfikat http jest istotny dla zapewnienia bezpieczeństwa podczas przesyłania danych, lecz nie jest on związany z architekturą czy funkcjonalnością frameworków. Dlatego też, choć wszystkie z wymienionych elementów są ważne w kontekście tworzenia aplikacji webowych, to nie stanowią one rdzenia frameworków, które koncentrują się na ułatwieniu komunikacji z bazą danych oraz zarządzaniu cyklem życia żądań.

Pytanie 13

W języku HTML, aby ustawić tytuł dokumentu na "Moja strona", który będzie widoczny na karcie przeglądarki internetowej, należy użyć zapisu

A. <head>Moja strona</head>
B. <meta title="Moja strona">
C. <meta name="title" content="Moja strona">
D. <title>Moja strona</title>
Odpowiedź <title>Moja strona</title> jest poprawna, ponieważ element <title> jest standardowym sposobem definiowania tytułu dokumentu HTML, który jest wyświetlany na pasku tytułowym przeglądarki. Zgodnie z normą HTML, element ten powinien być umieszczony wewnątrz sekcji <head> dokumentu. Przykładowa struktura dokumentu HTML z tytułem wygląda następująco: <html><head><title>Moja strona</title></head><body></body></html>. Tytuł jest istotny nie tylko dla użytkowników, ale również dla wyszukiwarek internetowych, ponieważ wpływa na SEO (Search Engine Optimization). Dobrze dobrany tytuł może zwiększyć klikalność linków w wynikach wyszukiwania. Dodatkowo, element <title> jest ważnym aspektem dostępności, ponieważ osoby korzystające z technologii asystujących polegają na nim, aby zrozumieć zawartość strony. W kontekście dobrych praktyk warto pamiętać, że tytuł powinien być krótki, zwięzły i adekwatny do treści strony. Warto również unikać duplikatów tytułów na różnych stronach tej samej witryny, co może prowadzić do chaosu w nawigacji i negatywnie wpływać na doświadczenia użytkowników oraz SEO.

Pytanie 14

Wskaż fragment kodu CSS, który odpowiada układowi bloków 2 - 5, zakładając, że są one oparte na poniższym kodzie HTML.

Ilustracja do pytania
A. B
B. C
C. A
D. D
Niepoprawne odpowiedzi często wynikają z błędnego zrozumienia działania właściwości float oraz szerokości elementów w układzie blokowym. Float jest potężnym narzędziem które pozwala na pływające rozmieszczenie elementów ale wymaga precyzyjnego planowania aby uniknąć niepożądanych efektów takich jak elementy wychodzące poza przewidywane miejsca. Przy wyborze błędnych odpowiedzi można zauważyć że nieodpowiednie użycie float może prowadzić do nieprawidłowego wyświetlania bloków. Na przykład brak odpowiedniego ustawienia float left lub right dla niektórych bloków może skutkować ich przesunięciem poza zamierzony układ. Dodatkowo nieprawidłowe zarządzanie szerokością bloków może spowodować że układ przekroczy dostępny obszar wyświetlania co szczególnie jest problematyczne w responsywnym projektowaniu stron. Typowym błędem jest również brak uwzględnienia clearfix co może prowadzić do nieprawidłowego przepływu kolejnych elementów w układzie. Zrozumienie jak float wpływa na otaczające elementy oraz jak kontrolować szerokość i przepływ elementów jest kluczowe w tworzeniu stabilnych i przewidywalnych układów stron internetowych. Poprawne zastosowanie tych zasad jest kluczowe dla zgodnego z dobrymi praktykami projektowania stron które są nie tylko estetyczne ale i funkcjonalne w różnych kontekstach urządzeń i środowisk użytkownika.

Pytanie 15

Atrybut autor w tabeli ksiazka oznacza

CREATE TABLE ksiazka (
  id INT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY,
  tytul VARCHAR(200),
  autor SMALLINT UNSIGNED NOT NULL,
  CONSTRAINT `dane` FOREIGN KEY (autor) REFERENCES autorzy(id)
);
A. atrybut typu tekstowego zawierający informacje o autorze
B. kluczem podstawowym tabeli ksiazka
C. atrybut używany w relacji z tabelą dane
D. kluczem obcym powiązanym z tabelą autorzy
Pole autor w tabeli ksiazka jest zdefiniowane jako klucz obcy co oznacza że tworzy relację z inną tabelą w bazie danych w tym przypadku z tabelą autorzy która zawiera id autorów W relacyjnych bazach danych klucz obcy jest mechanizmem który pozwala na utrzymanie integralności danych pomiędzy powiązanymi tabelami Jest to szczególnie ważne w kontekście modelowania rzeczywistości gdzie różne encje takie jak książki i autorzy są zależne od siebie W powyższym przykładzie pole autor odwołuje się do pola id w tabeli autorzy umożliwiając przypisanie konkretnego autora do danej książki Taka konstrukcja bazy danych jest zgodna z zasadami normalizacji które dążą do minimalizacji redundancji danych i zapewnienia ich spójności Klucze obce są powszechnie stosowaną praktyką w projektowaniu baz danych dzięki której złożone relacje mogą być reprezentowane i zarządzane w sposób efektywny Umożliwiają one implementację mechanizmu kaskadowego aktualizowania lub usuwania danych co pomaga w zachowaniu spójności w całej bazie danych

Pytanie 16

Wskaż zapytanie, które z tabeli klienci wybierze wyłącznie nazwiska trzech najlepszych klientów, czyli takich, którzy posiadają najwięcej punktów na swoim koncie (pole całkowite punkty)?

A. SELECT nazwisko FROM klienci ORDER BY punkty DESC LIMIT 3
B. SELECT nazwisko FROM klienci ORDER BY nazwisko DESC LIMIT 3
C. SELECT LIMIT 3 nazwisko FROM klienci ORDER BY nazwisko DESC
D. SELECT nazwisko FROM klienci LIMIT 3
Wybór odpowiedzi 'SELECT nazwisko FROM klienci ORDER BY punkty DESC LIMIT 3;' jest poprawny, ponieważ zapytanie to precyzyjnie spełnia wymagania przedstawione w pytaniu. Kluczowym elementem jest użycie klauzuli 'ORDER BY punkty DESC', która sortuje klientów w porządku malejącym według ich punktów. Dzięki temu, na górze wyników znajdą się ci klienci, którzy mają ich najwięcej. Następnie zastosowanie 'LIMIT 3' ogranicza wynik do trzech pierwszych rekordów, co odpowiada na potrzebę zidentyfikowania trzech najlepszych klientów. W praktycznych zastosowaniach, takich jak systemy CRM czy programy lojalnościowe, tego typu kwerendy są niezwykle przydatne do analizy klientów oraz do przyznawania nagród lub promocji. Dobre praktyki w zakresie pisania zapytań SQL sugerują, aby zawsze zwracać uwagę na kolejność sortowania oraz ograniczenie wyników, aby zwiększyć efektywność bazy danych oraz uniknąć zbędnych obliczeń.

Pytanie 17

Do zdefiniowania listy nienumerowanej w języku HTML, jaki znacznik należy zastosować?

A. <ol>
B. <dd>
C. <dt>
D. <ul>
Znaczniki <dd> i <dt> są używane w kontekście definicji terminów w listach definicyjnych. <dd> oznacza definicję, a <dt> służy do oznaczania terminu, który jest definiowany. Te znaczniki są częścią struktury definicyjnej <dl> (definition list), która nie jest odpowiednia do tworzenia list nienumerowanych. Użycie tych znaczników w kontekście list nienumerowanych może prowadzić do niejasności w interpretacji treści przez przeglądarki oraz narzędzia SEO, które analizują strukturę dokumentu. Z kolei znacznik <ol> oznacza listę uporządkowaną, gdzie elementy są numerowane w określonej kolejności. Użycie <ol> w miejsce <ul> byłoby błędne, gdyż nie spełniałoby celu stworzenia listy nienumerowanej. Każdy z tych znaczników pełni wyspecjalizowaną funkcję w HTML i ich użycie w niewłaściwym kontekście może prowadzić do problemów z dostępnością, a także negatywnie wpłynąć na pozycję strony w wynikach wyszukiwania.

Pytanie 18

Zdarzenie JavaScript, które jest wywoływane po pojedynczym kliknięciu dowolnego elementu na stronie, określa się jako

A. onDblClick
B. onLoad
C. onKeyDown
D. onClick
Zdarzenie onClick w JavaScript jest jednym z najczęściej używanych zdarzeń w interakcji użytkownika z elementami na stronie internetowej. Jego podstawowa funkcjonalność polega na rejestrowaniu pojedynczego kliknięcia na danym elemencie, co pozwala na wykonanie określonej akcji w odpowiedzi na to zdarzenie. Zdarzenie to jest szczególnie istotne w kontekście rozwoju aplikacji webowych, gdzie interaktywność jest kluczowym elementem doświadczenia użytkownika. Aby zaimplementować zdarzenie onClick, można użyć zarówno atrybutu HTML, jak i metod JavaScript, takich jak addEventListener. Przykładowo, dodając do przycisku HTML atrybut onClick, możemy bezpośrednio wywołać funkcję JavaScript, co znacząco upraszcza kod. W kontekście standardów, onClick jest częścią DOM Level 2 Events Specification, co zapewnia kompatybilność z różnymi przeglądarkami. Przykład zastosowania: <button onClick='alert("Hello World!")'>Kliknij mnie</button> wywoła okno alertu po kliknięciu przycisku. Korzystanie z onClick pozwala na tworzenie dynamicznych interfejsów, które dostosowują się do działań użytkownika, co jest kluczowe w nowoczesnym web designie i programowaniu JavaScript.

Pytanie 19

Funkcja agregująca AVG wykorzystana w zapytaniu

SELECT AVG(cena) FROM uslugi;
ma na celu
A. obliczenie liczby dostępnych usług w tabeli
B. zsumowanie wszystkich kosztów usług
C. znalezienie najwyższej ceny za usługi
D. wyliczenie średniej arytmetycznej cen wszystkich usług
Funkcja agregująca AVG w języku SQL oblicza średnią arytmetyczną wartości w określonej kolumnie, w tym przypadku w kolumnie 'cena' tabeli 'uslugi'. W kontekście baz danych, obliczanie średniej jest kluczowym narzędziem analitycznym, które pozwala na uzyskanie ogólnego obrazu wartości danej kolumny. W praktyce, analiza średnich cen usług może być użyteczna dla menedżerów chcących dostosować strategię cenową lub dla działów finansowych oceniających wydajność sprzedaży. Przykładowo, jeżeli średnia cena usług wynosi 100 zł, a kolejny miesiąc przynosi spadek do 80 zł, jest to sygnał do analizy powodów obniżenia przychodów. Stosowanie funkcji AVG jest zgodne z najlepszymi praktykami w zakresie analizy danych, gdyż pozwala na podejmowanie decyzji opartych na faktach i liczbach. Warto również zauważyć, że do obliczeń średnich często używa się danych z różnych grup, co może pomóc w zrozumieniu trendów oraz wzorców w zachowaniach klientów na rynku.

Pytanie 20

W CSS określono styl paragrafu, który nada mu następujące właściwości:

background-color: red;
color: blue;
margin: 40px;
A. tło niebieskie, kolor tekstu czerwony, marginesy zewnętrzne na poziomie 40 px
B. tło czerwone, kolor tekstu niebieski, marginesy zewnętrzne na poziomie 40 px
C. tło czerwone, kolor tekstu niebieski, marginesy wewnętrzne na poziomie 40 px
D. tło niebieskie, kolor tekstu czerwony, marginesy wewnętrzne na poziomie 40 px
Poprawna odpowiedź wskazuje na tło czerwone, kolor tekstu niebieski oraz marginesy zewnętrzne ustawione na 40 px. W deklaracji CSS, przypisanie 'background-color: red;' skutkuje czerwonym tłem dla elementu, co jest zgodne z zasadami oznaczania kolorów w CSS, które pozwalają na zastosowanie nazw kolorów, kodów hex czy rgb. 'color: blue;' ustawia kolor tekstu na niebieski, co pozwala na lepszą czytelność tekstu na czerwonym tle. Z kolei 'margin: 40px;' definiuje marginesy zewnętrzne, co oznacza, że odległość od innych elementów na stronie wynosi 40 px. Takie praktyki są zgodne z dobrymi standardami projektowania, które sugerują stosowanie kontrastujących kolorów dla poprawy dostępności oraz przestrzeni między elementami dla lepszej struktury layoutu. Warto pamiętać, że marginesy zewnętrzne różnią się od marginesów wewnętrznych (padding), co często jest źródłem nieporozumień.

Pytanie 21

Instrukcja użytkownika aplikacji nie powinna zawierać

A. opisu instalacji programu.
B. wymagań sprzętowych.
C. opisu zastosowanych algorytmów.
D. sposobu działania poszczególnych komponentów.
Poprawnie – instrukcja użytkownika aplikacji nie powinna zawierać opisu zastosowanych algorytmów. Dokument „dla użytkownika” ma jedno główne zadanie: w prosty sposób pokazać, jak korzystać z programu, a nie jak jest on zbudowany w środku. Algorytmy, struktury danych, złożoność obliczeniowa, szczegóły implementacyjne – to jest domena dokumentacji technicznej, przeznaczonej dla programistów, architektów systemów czy osób rozwijających oprogramowanie. Z punktu widzenia zwykłego użytkownika ważne jest raczej: na jakim sprzęcie aplikacja pójdzie, jak ją zainstalować, jak uruchomić konkretną funkcję i co zrobić, gdy coś nie działa. Moim zdaniem wrzucanie do instrukcji opisów algorytmów szkodzi na dwóch poziomach. Po pierwsze, zaciemnia obraz – użytkownik musi przebijać się przez techniczne treści, których i tak nie wykorzysta, zamiast skupić się na krokach „kliknij tu, wybierz to, zapisz”. Po drugie, z punktu widzenia bezpieczeństwa i ochrony własności intelektualnej firmy, zbyt szczegółowe ujawnianie algorytmów w publicznej instrukcji nie jest najlepszą praktyką. Standardem branżowym jest rozdzielenie dokumentacji na: user guide (instrukcja użytkownika), admin guide (dla administratorów), developer/technical documentation (dla twórców i integratorów). W user guide opisujemy np. wymagania sprzętowe (system operacyjny, ilość RAM, miejsce na dysku), sposób instalacji (krok po kroku, zrzuty ekranu), oraz działanie funkcji z punktu widzenia użytkownika („ten przycisk eksportuje dane do PDF”). Natomiast algorytmy sortowania, szyfrowania, kompresji czy przetwarzania danych trafiają do dokumentów technicznych, specyfikacji lub repozytorium kodu. W praktyce, jeśli użytkownik musi znać algorytm, żeby użyć programu, to znaczy, że interfejs jest po prostu źle zaprojektowany.

Pytanie 22

Jakie technologie są konieczne do uruchomienia systemu CMS Joomla!?

A. IIS, PERL i MySQL
B. PHP oraz MySQL
C. Apache oraz PHP
D. Apache, PHP i MySQL
Joomla! jest systemem zarządzania treścią, który wymaga specyficznych technologii do prawidłowego działania. Do uruchomienia Joomla! niezbędne jest środowisko, które obejmuje serwer WWW Apache, język skryptowy PHP oraz bazę danych MySQL. Apache jest najpopularniejszym serwerem WWW, który obsługuje wiele funkcji, takich jak obsługa dynamicznych treści oraz zarządzanie dużymi ilościami ruchu. PHP jest językiem skryptowym, który pozwala na interakcję z bazą danych oraz generowanie treści w czasie rzeczywistym, co jest kluczowe dla działania CMS-a. MySQL natomiast jest systemem zarządzania bazą danych, który przechowuje wszystkie dane dotyczące witryny, takie jak artykuły, ustawienia i użytkownicy. Przykładem zastosowania tych technologii może być stworzenie strony internetowej dla lokalnej organizacji non-profit, gdzie Joomla! umożliwia łatwe zarządzanie treścią przez osoby nieposiadające zaawansowanej wiedzy technicznej. Dobre praktyki w branży zalecają stosowanie najnowszych wersji tych technologii, aby zapewnić bezpieczeństwo oraz wydajność witryny.

Pytanie 23

Zastosowana w dokumencie HTML definicja multimediów sprawi, że na stronie:

<video controls>
    <source src="video1.mp4" type="video/mp4">
    <source src="video1.ogg" type="video/ogg">
    Komunikat dotyczący video
</video>
A. zostaną wyświetlone obok siebie dwa filmy z plików: video1.mp4 oraz video1.ogg.
B. zostanie wyświetlony film z pliku video1.mp4 lub, w przypadku nierozpoznania formatu MPEG-4, film z pliku video1.ogg.
C. wyświetlony film zostanie automatycznie uruchomiony zaraz po załadowaniu strony internetowej.
D. pod wyświetlanym filmem zostanie wyświetlony napis „Komunikat dotyczący video”.
Niestety, twoja odpowiedź nie jest prawidłowa. Kod HTML, który analizowaliśmy, nie sugeruje, że pod wyświetlanym filmem zostanie wyświetlony napis 'Komunikat dotyczący video' ani że zostaną wyświetlone obok siebie dwa filmy. Takie zachowanie strony wymagałoby dodatkowego kodu HTML i CSS. Także automatyczne uruchomienie filmu po załadowaniu strony nie jest domyślnym zachowaniem elementu video. Warto zauważyć, że takie automatyczne odtwarzanie może być uciążliwe dla użytkowników i jest często uważane za niezgodne z dobrymi praktykami projektowania stron internetowych. Również, aby film automatycznie się odtwarzał, w elemencie video powinien być umieszczony atrybut 'autoplay'. Zrozumienie, jak działa element video HTML i jakie ma atrybuty, jest kluczowe do tworzenia efektywnych i użytecznych stron internetowych.

Pytanie 24

Jakim poleceniem SQL można zlikwidować 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 LIKE "%sto%"
C. DELETE FROM artykuly WHERE tresc = "%sto%"
D. DELETE FROM artykuly WHERE tresc LIKE "%sto%"
Wybór odpowiedzi "DELETE * FROM artykuly WHERE tresc = '%sto%';" jest po prostu zły z paru powodów. Po pierwsze, w SQL nie używamy znaku '*' przy DELETE. Jak chcemy usunąć wiersze, to piszemy tylko "DELETE FROM nazwa_tabeli". To '*' sugeruje, że chcesz usunąć jakieś konkretne kolumny, a to w SQL się nie sprawdzi. Druga sprawa to operator '=' zamiast 'LIKE'. '=' używamy do porównania wartości, nie do wyszukiwania wzorców, a tu właśnie szukamy wystąpienia słowa 'sto' w dłuższym tekście. Dlatego operator LIKE z wildcardami jest tu konieczny, by znaleźć i usunąć te wiersze, które mają 'sto' gdziekolwiek. Często ludzie mylą te operatory w SQL, co prowadzi do problemów i nieefektywnego wyszukiwania.

Pytanie 25

Logo platformy CMS noszącej nazwę Joomla! to

Ilustracja do pytania
A. C
B. B
C. D
D. A
Logo Joomla! jest charakterystyczne z uwagi na swoją kolorystykę i kształt symbolizujący współpracę oraz integrację. Zawiera cztery kolorowe elementy splecione w formie kwiatka lub wiru co często jest interpretowane jako symbol integracji społeczności i otwartości na różnorodność. Joomla! to system zarządzania treścią (CMS) napisany w PHP który wykorzystywany jest do tworzenia stron internetowych blogów i aplikacji internetowych. Jest jednym z najpopularniejszych CMS na świecie dzięki swojej elastyczności modułom oraz dużej społeczności wspierającej rozwój. Joomla! jest wykorzystywany zarówno przez małe przedsiębiorstwa jak i duże organizacje dzięki swojej możliwości skalowania i dostosowywania do indywidualnych potrzeb. Dodatkowo jego open-source'owy charakter pozwala na szerokie dostosowanie kodu do specyficznych wymagań co jest cenione przez programistów i deweloperów. Dobry wybór Joomla! jako CMS może znacząco przyspieszyć proces tworzenia i zarządzania treścią na stronie internetowej oferując jednocześnie wsparcie licznych rozszerzeń i szablonów

Pytanie 26

Pole autor w tabeli ksiazka jest:

CREATE TABLE ksiazka (
id INT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY,
tytul VARCHAR(200),
autor SMALLINT UNSIGNED NOT NULL,
CONSTRAINT `dane` FOREIGN KEY (autor) REFERENCES autorzy(id)
);
A. kluczem podstawowym tabeli ksiazka
B. polem wykorzystanym w relacji z tabelą dane
C. kluczem obcym związanym z tabelą autorzy
D. polem typu tekstowego zawierającym informacje o autorze
Pole autor w tabeli ksiazka jest kluczem obcym, co oznacza, że wskazuje na inne pole w innej tabeli - w tym przypadku na pole id w tabeli autorzy. Klucze obce są podstawowym mechanizmem relacyjnych baz danych, który umożliwia tworzenie związków między różnymi tabelami. Dobre praktyki w projektowaniu baz danych sugerują używanie kluczy obcych do zapewnienia integralności referencyjnej, co oznacza, że każde odniesienie do innej tabeli musi wskazywać na istniejący rekord. Dzięki temu unika się problemów z danymi, takich jak tzw. „osierocone” rekordy, które odwołują się do nieistniejących danych. W praktyce, gdy dodajemy nową książkę do tabeli ksiazka, musimy mieć pewność, że istnieje odpowiedni autor w tabeli autorzy. Takie podejście podnosi jakość danych i pozwala na bardziej złożone zapytania SQL, które mogą łączyć informacje z różnych tabel w sposób spójny i logiki. Klucze obce są także kluczowe w kontekście operacji takich jak aktualizacja czy usuwanie danych, ponieważ mogą automatycznie zaktualizować lub usunąć powiązane rekordy, co zapewnia integralność bazy danych.

Pytanie 27

Do uruchomienia systemu CMS Joomla!, dla domyślnej konfiguracji, wymagane jest środowisko

A. Python i MySQL
B. C++ i MySQL
C. IIS, PERL i MySQL
D. Apache, PHP i MySQL
Poprawnie – Joomla! w swojej domyślnej, typowej instalacji działa w klasycznym stosie LAMP/WAMP, czyli serwer HTTP Apache, interpreter PHP oraz baza danych MySQL (obecnie często MariaDB, ale w praktyce nadal mówi się „MySQL”). Joomla! to system CMS napisany w PHP, więc potrzebuje środowiska, które potrafi wykonywać kod PHP po stronie serwera. Apache jest jednym z najpopularniejszych serwerów WWW, świetnie współpracuje z PHP poprzez moduł mod_php albo PHP-FPM i jest standardowo wspierany w dokumentacji Joomla!. Baza MySQL służy do przechowywania wszystkich treści: artykułów, użytkowników, menu, modułów, konfiguracji. Podczas instalacji Joomla! tworzy tabele w MySQL, zapisuje tam dane konfiguracyjne i później przy każdym wyświetleniu strony pobiera je zapytaniami SQL. W praktyce, jeśli stawiasz Joomla! na hostingu współdzielonym, dostajesz właśnie taki zestaw: Apache + PHP + MySQL, często z panelem typu cPanel lub DirectAdmin. To jest zgodne z dobrymi praktykami w branży webowej – prosty, sprawdzony stos, łatwy w administracji i dobrze udokumentowany. Moim zdaniem to też wygodne na etapie nauki: możesz lokalnie postawić XAMPP, WAMP lub Laragon i bez kombinowania odpalić Joomla! na swoim komputerze. W świecie produkcyjnym coraz częściej używa się też Nginx zamiast Apache, ale w treści pytania jest mowa o domyślnej, typowej konfiguracji, a tutaj dalej króluje Apache z PHP i MySQL jako standardowe, rekomendowane środowisko.

Pytanie 28

Jakie informacje z ośmiu wpisanych rekordów w tabeli zwierzęta zostaną przedstawione w wyniku wykonania wskazanej instrukcji SQL?

Ilustracja do pytania
A. Figaro, Dika, Fuks
B. Anna Kowalska, Jan Nowak
C. Dika, Fuks
D. Fafik, Brutus, Dika, Fuks
Zapytanie SQL SELECT imie FROM zwierzeta WHERE rodzaj = 2 AND szczepienie = 2016; filtruje wyniki według dwóch kryteriów: rodzaj musi być równy 2 i rok szczepienia musi być 2016. W danych mamy kilka zwierząt, ale tylko Dika i Fuks spełniają oba te warunki. Dika i Fuks mają rodzaj równy 2 oraz rok szczepienia 2016, co czyni je jedynymi zwierzętami w tabeli spełniającymi te kryteria. Zrozumienie tego typu zapytań wymaga znajomości składni SQL oraz logiki warunkowej. W praktyce stosowanie filtrów WHERE to jedna z podstawowych technik selekcji danych umożliwiająca precyzyjne wyciąganie rekordów z dużych zbiorów danych. Warto również zaznaczyć, że poprawne używanie takich zapytań w pracy zawodowej jest niezbędne dla zapewnienia jakości i wydajności procesów związanych z bazami danych. Wiedza ta jest kluczowa w wielu branżach, w których przetwarzanie dużych ilości danych jest codziennością.

Pytanie 29

W programie do grafiki wektorowej stworzono zaprezentowany kształt, który został uzyskany z dwóch figur: trójkąta oraz koła. Aby utworzyć ten kształt, po narysowaniu figur i ich odpowiednim umiejscowieniu, należy zastosować funkcję

Ilustracja do pytania
A. różnicy
B. rozdzielenia
C. sumy
D. wykluczenia
Funkcja sumy w edytorach grafiki wektorowej, takich jak Adobe Illustrator czy CorelDRAW, pozwala na łączenie kilku figur wektorowych w jedną całość. W tym przypadku użycie funkcji sumy jest odpowiednie, ponieważ łączy trójkąt i koło w jeden spójny kształt. Ten proces jest powszechnie określany jako operacja boolean i jest kluczowy w projektowaniu wektorowym, gdzie wymagana jest precyzyjna kontrola nad kształtami. Użycie sumy jest standardem w branży, gdy celem jest połączenie kształtów bez utraty ich integralności, co jest często stosowane w projektowaniu logo czy ikon. Operacja ta zapewnia płynne przejścia między figurami, co jest niezbędne w profesjonalnych projektach graficznych. Dodatkowo, sumowanie kształtów pozwala na optymalizację projektu pod kątem druku i wyświetlania, ponieważ zmniejsza liczbę niezależnych obiektów wektorowych, co jest praktyką zalecaną dla wydajnej pracy z dużymi plikami. Zrozumienie i umiejętność stosowania funkcji sumy to fundamentalna umiejętność dla każdego grafika pracującego z grafiką wektorową.

Pytanie 30

Aby osiągnąć efekt przedstawiony na ilustracji, w kodzie HTML należy zastosować znacznik skrótu <abbr> z atrybutem

Ilustracja do pytania
A. title
B. name
C. alt
D. dfn
Znacznik <abbr> w HTML służy do opisywania skrótów i akronimów. Atrybut title jest kluczowy, ponieważ dostarcza rozwinięcie skrótu jako podpowiedź tekstową, która pojawia się, gdy użytkownik najedzie kursorem na element. Jest to zgodne z dobrymi praktykami dostępności, umożliwiając użytkownikom lepsze zrozumienie treści. Przykładowo, kod <abbr title='inżynier'>inz.</abbr> spowoduje, że po najechaniu kursorem na skrót 'inz.', pojawi się rozwinięcie 'inżynier'. Takie podejście jest szczególnie istotne w przypadku dokumentów technicznych czy naukowych, gdzie użycie skrótów jest powszechne a pełne rozwinięcie może być niezbędne dla pełnego zrozumienia treści. Atrybut title jest również używany w innych znacznikach HTML, np. <img> do opisania obrazów, co wzbogaca semantykę strony. Zastosowanie <abbr> z atrybutem title wspiera również działanie technologii wspomagających, takich jak czytniki ekranowe, które mogą odczytać pełne rozwinięcie skrótu, podnosząc poziom dostępności strony.

Pytanie 31

Aby obraz umieszczony za pomocą kodu HTML mógł być rozpoznawany przez programy wspierające osoby niewidome, konieczne jest określenie atrybutu

A. sizes
B. alt
C. border
D. src
Atrybut 'alt' (alternatywny tekst) jest kluczowym elementem w kontekście dostępności stron internetowych, szczególnie dla osób niewidzących. Jego głównym celem jest dostarczenie opisowej informacji o obrazie, który nie może być bezpośrednio widziany. W przypadku obrazów, które nie są widoczne z różnych powodów (np. uszkodzenie pliku, brak połączenia internetowego lub korzystanie z czytników ekranu), tekst alternatywny pomaga zrozumieć kontekst i znaczenie danego obrazu. Przykład zastosowania: dla obrazka przedstawiającego logo firmy, można użyć atrybutu alt w następujący sposób: <img src='logo.png' alt='Logo firmy XYZ'>. W ten sposób, jeśli obrazek nie załadowałby się, użytkownik korzystający z czytnika ekranu otrzyma informację o tym, co ten obraz przedstawia. Definiowanie atrybutu 'alt' jest zgodne z wytycznymi WCAG (Web Content Accessibility Guidelines), które zalecają, aby wszystkie obrazki, które pełnią funkcję informacyjną, były opisane w taki sposób, aby zapewnić pełny dostęp do treści wszystkim użytkownikom. W praktyce takie podejście nie tylko poprawia dostępność, ale również pozytywnie wpływa na SEO, ponieważ wyszukiwarki również analizują ten atrybut.

Pytanie 32

Przykład zapytania SQL przedstawia instrukcję:

UPDATE katalog SET katalog.cena = [cena]*1.1;
A. aktualizującej
B. usuwającej
C. krzyżowej
D. dołączającej
Instrukcja SQL przedstawiona w pytaniu używa słowa kluczowego UPDATE co jest charakterystyczne dla kwerend aktualizujących. Komenda ta modyfikuje istniejące dane w tabeli poprawiając je zgodnie z podanymi kryteriami. W tym przykładzie wszystkie wartości w kolumnie cena tabeli katalog są zwiększane o 10 procent co jest typowym zastosowaniem instrukcji aktualizującej. W praktyce takie zmiany są niezbędne w przypadku modyfikacji cen produktów lub aktualizacji informacji biznesowych. Stosowanie kwerend aktualizujących wymaga zachowania szczególnej ostrożności aby nie naruszyć integralności danych. Dobre praktyki obejmują przygotowanie backupu danych przed wykonaniem operacji oraz przetestowanie kwerendy na mniejszym zbiorze danych w celu uniknięcia błędów. Aktualizacja danych to jedna z najczęstszych operacji w systemach bazodanowych dlatego zrozumienie mechanizmu działania kwerend SQL tego typu jest kluczowe dla efektywnego zarządzania danymi w każdej organizacji. SQL jako język deklaratywny umożliwia łatwe definiowanie co chcemy osiągnąć bez konieczności szczegółowego opisywania jak to zrobić co ułatwia pracę z dużymi i złożonymi zbiorami danych.

Pytanie 33

W tabeli zwierzeta znajdują się pola: nazwa, gatunek, gromada, cechy oraz dlugosc_zycia. Aby uzyskać listę nazw zwierząt, które dożywają przynajmniej 20 lat i są ssakami, należy wykonać zapytanie:

A. SELECT nazwa FROM zwierzeta WHERE dlugosc_zycia >=20 AND gromada = 'ssak';
B. SELECT nazwa FROM zwierzeta WHERE gromada = 'ssak';
C. SELECT nazwa FROM zwierzeta WHERE dlugosc_zycia >=20 OR gromada = 'ssak';
D. SELECT nazwa FROM zwierzeta WHERE dlugosc_zycia >=20;
Twoja odpowiedź jest jak najbardziej na miejscu, bo spełnia te dwa ważne wymagania z pytania: pokazuje nazwy zwierząt, które żyją przynajmniej 20 lat i są ssakami. Użycie AND w klauzuli WHERE sprawia, że w wynikach są tylko te zwierzęta, które pasują do obu kryteriów. To zapytanie ma swoje zastosowanie, na przykład w analizach zoologicznych, gdzie długość życia niektórych gatunków ssaków może być kluczowa, zwłaszcza w kontekście ochrony i badań nad ich ekologią. Z osobistego doświadczenia mogę powiedzieć, że dobrze jest stosować takie zapytania w bazach danych, bo to zapewnia lepszą efektywność i wydajność w przetwarzaniu danych. Generalnie w tworzeniu zapytań SQL warto zawsze ustalać konkretne warunki w klauzuli WHERE, żeby uniknąć niechcianych wyników i zmniejszyć obciążenie bazy danych.

Pytanie 34

Poziom izolacji transakcji Repeatable Read (tryb powtarzalnego odczytu) używany przez MS SQL jest związany z problemem

A. odczytów widm
B. niepowtarzalnych odczytów
C. brudnych odczytów
D. utraty aktualizacji
Wszystkie pozostałe odpowiedzi dotyczą problemów, które nie są bezpośrednio związane z poziomem izolacji Repeatable Read. Utrata aktualizacji występuje, gdy dwie transakcje odczytują ten sam wiersz i obie próbują go zaktualizować. Problem ten jest bardziej związany z poziomem izolacji Read Committed, gdzie jedno z odczytów może nadpisać zmiany dokonane przez drugie, co prowadzi do utraty ważnych informacji. Brudne odczyty z kolei występują, gdy transakcja odczytuje dane zmienione przez inną transakcję, która jeszcze nie została zatwierdzona. Ten problem jest charakterystyczny dla najniższego poziomu izolacji, czyli Read Uncommitted, gdzie brak jakiejkolwiek kontroli nad odczytem danych skutkuje niebezpieczeństwem uzyskania nieaktualnych lub niepoprawnych informacji. Niepowtarzalne odczyty natomiast to sytuacje, w których iż dane mogą zmieniać się pomiędzy dwoma odczytami w tej samej transakcji. Problem ten występuje w poziomie Read Committed, gdzie zmiany dokonane przez inne transakcje mogą być widoczne dla aktualnej transakcji, co prowadzi do niespójności w wynikach. Tak więc, choć wszystkie wymienione zjawiska są ważnymi problemami w zarządzaniu transakcjami, tylko odczyty widm są specyficznie związane z poziomem izolacji Repeatable Read.

Pytanie 35

Deklaracja typu dokumentu HTML: <!DOCTYPE HTML> wskazuje, że kod został stworzony w wersji

A. 7
B. 6
C. 5
D. 4
Gdy widzisz deklarację <!DOCTYPE HTML>, to znaczy, że mówimy o wersji HTML5. To obecny standard, który wprowadza naprawdę sporo nowych funkcji w porównaniu do wcześniejszych wersji. Na przykład, HTML5 pozwala na osadzanie audio i wideo bez potrzeby dodatkowych wtyczek, co jest super wygodne. Mamy też fajne semantyczne elementy jak <article>, <section> czy <nav>, które sprawiają, że łatwiej zorganizować treści na stronie. Ważne jest, żeby zawsze na początku dokumentu umieszczać tę deklarację, bo to pozwala przeglądarkom na prawidłowe wyświetlanie strony. Dzięki temu unikamy problemów z interpretacją kodu, co z doświadczenia mówię, jest naprawdę istotne.

Pytanie 36

Który kod jest alternatywny do kodu zamieszczonego w ramce?

<?php
for($x = 1; $x <= 55; $x++)
{
  if($x % 2 != 0) continue;
  echo $x . " ";
}
?>
A. for($x = 1; $x <= 55; $x += 1) {echo $x." ";}
B. for($x = 1; $x <= 55; $x++) {echo $x." ";}
C. for($x = 2; $x <= 54; $x += 2) {echo $x." ";}
D. for($x = 2; $x <= 56; $x += 2) {echo $x." ";}
Niestety, wybrałeś błędną odpowiedź. Wszystkie opcje oprócz odpowiedzi A nie są alternatywą dla kodu zawartego w ramce. Cechą wspólną dla niepoprawnych odpowiedzi jest fakt, że nie uwzględniają one aspektu parzystości liczb, na którym operują. Kod w ramce pomija liczby parzyste za pomocą instrukcji 'continue', która jest wywoływana, gdy reszta z dzielenia przez 2 jest równa 0. W odpowiedzi A, pętla jest zaprojektowana tak, że wykonuje operacje tylko na liczbach parzystych (zaczyna od 2 i zwiększa wartość o 2 za każdą iterację). Błędne odpowiedzi nie uwzględniają takiego podziału na liczby parzyste i nieparzyste, co jest kluczowym aspektem funkcjonowania kodu w ramce. Pamiętaj, że podczas analizy kodu, zwracaj uwagę na wszystkie jego aspekty, takie jak warunki, instrukcje sterujące czy operacje wykonywane na danych.

Pytanie 37

W tabeli zadania znajduje się pole tekstowe status. Jakie zapytanie należy użyć, aby usunąć te zadania, które mają status 'zamknięte'?

A. TRUNCATE TABLE zadania WHERE status = 'zamknięte';
B. DELETE FROM zadania;
C. TRUNCATE TABLE zadania;
D. DELETE FROM zadania WHERE status = 'zamknięte';
Odpowiedź DELETE FROM zadania WHERE status = 'zamknięte' jest poprawna, ponieważ wykorzystuje standardową składnię SQL do usuwania rekordów z tabeli na podstawie zadanych warunków. W tym przypadku, kwerenda ta usuwa tylko te wiersze, które mają wartość 'zamknięte' w polu status. Jest to podejście zgodne z dobrymi praktykami, ponieważ pozwala na precyzyjne określenie, które dane mają zostać usunięte, co minimalizuje ryzyko przypadkowego usunięcia innych rekordów. Na przykład, w systemie zarządzania projektami, możemy mieć wiele zadań z różnymi statusami, takimi jak 'otwarte', 'w trakcie', czy 'zamknięte'. Użycie tej kwerendy pozwala na oczyszczenie bazy danych z nieaktualnych zadań, co jest kluczowe dla utrzymania porządku i efektywności w zarządzaniu projektami. Ponadto, stosując tę metodę, możemy w przyszłości łatwo modyfikować warunki usuwania, na przykład zmieniając status na 'wstrzymane', zachowując elastyczność w zarządzaniu danymi.

Pytanie 38

W bazie danych produkt znajdują się artykuły wyprodukowane po 2000 roku, zawierające pola nazwa oraz rok_produkcji. Klauzula SQL wyświetli zestawienie artykułów wyprodukowanych

SELECT * FROM `produkt` WHERE
SUBSTR(rok_produkcji, 3, 2) = 17;
A. przed rokiem 2017
B. w roku 2017
C. w latach innych niż 2017
D. po roku 2017
W tej klauzuli SQL, co widzimy, filtrujemy dane z tabeli produkt. Użycie funkcji SUBSTR(rok_produkcji, 2) pozwala nam wyciągnąć dwie ostatnie cyfry z roku produkcji. To jest super przydatne, bo dzięki temu możemy uzyskać rok w formacie dwu-cyfrowym. Jak porównujemy to z 17, to znaczy, że szukamy rekordów, których rok produkcji kończy się na 17, co odpowiada pełnemu roku, czyli 2017. Takie podejście ma sens, gdy chcemy szybko przeszukać dane dotyczące konkretnego roku, nie bawiąc się w cały numer. Umiejętność korzystania z funkcji tekstowych w SQL, jak SUBSTR, jest naprawdę istotna w analizie danych, szczególnie gdy struktura tabeli nie pozwala na łatwe użycie wartości liczbowych. Ludzie pracujący z bazami danych powinni znać te sztuczki, bo to pozwala na lepsze dopasowanie filtracji danych do potrzeb. Fajne jest też dokumentowanie takich zapytań, żeby inni mogli zrozumieć, o co chodzi.

Pytanie 39

Który efekt został zaprezentowany na filmie?

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

Pytanie 40

W JavaScript, aby wyodrębnić fragment tekstu pomiędzy wskazanymi indeksami, powinno się zastosować metodę

A. slice()
B. concat()
C. trim()
D. replace()
Wybór innych metod do manipulacji ciągami tekstowymi sugeruje niezrozumienie ich właściwości. Metoda trim() służy do usuwania białych znaków z początku i końca napisu, co nie ma nic wspólnego z wydobywaniem fragmentów. Użytkownicy mogą mylnie sądzić, że trim() jest przydatna do ekstrakcji, jednak jej zastosowanie jest zupełnie inne i polega na oczyszczaniu danych. Metoda concat() łączy dwa lub więcej ciągów tekstowych, co również nie odpowiada na potrzebę wydobywania podciągu. Zrozumienie, że concat() nie jest odpowiedzią na pytanie o wydobycie fragmentu, jest kluczowe dla efektywnego korzystania z języka JavaScript. Z kolei replace() służy do zamiany określonego fragmentu tekstu na inny, co może wprowadzać w błąd, gdyż nie wydobywa fragmentów, lecz je modyfikuje. Użytkownicy mogą mylić te metody, nie dostrzegając różnic między modyfikacją a wydobywaniem, co jest istotne w kontekście manipulacji danymi. Ważne jest, aby rozumieć specyfikę każdej metody oraz jej zastosowanie w codziennym programowaniu, co pozwala na efektywniejsze i bardziej precyzyjne pisanie kodu w JavaScript.