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: 1 lutego 2026 23:16
  • Data zakończenia: 1 lutego 2026 23:37

Egzamin zdany!

Wynik: 34/40 punktów (85,0%)

Wymagane minimum: 20 punktów (50%)

Pochwal się swoim wynikiem!
Szczegółowe wyniki:
Pytanie 1

Baza danych księgarni ma tabelę ksiazki z polami: id, idAutor, tytul, ileSprzedanych oraz tabelę autorzy z polami: id, imie, nazwisko. Jak utworzyć raport dotyczący sprzedanych książek, który zawiera tytuły oraz nazwiska autorów?

A. stworzyć kwerendę, która wyszukuje tytuły książek
B. Zdefiniować relację 1..n między tabelami ksiazki i autorzy, a następnie stworzyć kwerendę łączącą obie tabele
C. utworzyć dwie oddzielne kwerendy: pierwszą, która wyszuka tytuły książek, a drugą, która pobierze nazwiska autorów
D. Ustalić relację 1..1 pomiędzy tabelami ksiazki i autorzy, a następnie stworzyć kwerendę łączącą obie tabele
Zdefiniowanie relacji 1..n między tabelami 'ksiazki' oraz 'autorzy' jest kluczowe dla prawidłowego modelowania danych w bazach danych. Relacja 1..n oznacza, że jeden autor może mieć wiele książek, co jest w pełni zgodne z rzeczywistością w kontekście księgarni. Aby stworzyć raport sprzedanych książek z tytułami i nazwiskami autorów, konieczne jest, aby obie tabele były połączone w sposób umożliwiający łatwy dostęp do danych. Po utworzeniu relacji można skorzystać z kwerendy SQL, która wykorzystuje złączenie (JOIN) do pobrania informacji z obu tabel. Przykładowe zapytanie może wyglądać następująco: SELECT ksiazki.tytul, autorzy.nazwisko FROM ksiazki JOIN autorzy ON ksiazki.idAutor = autorzy.id. Tego typu podejście jest zgodne z dobrymi praktykami w projektowaniu baz danych, umożliwiając łatwe skalowanie oraz modyfikację w przyszłości.

Pytanie 2

W języku JavaScript, aby zmienić wartość atrybutu elementu HTML, po uzyskaniu obiektu za pomocą metody getElementById, należy zastosować

A. pole innerHTML
B. metodę setAttribute
C. metodę getAttribute
D. pole attribute i podać nazwę atrybutu
Metoda setAttribute w JavaScript jest kluczowym narzędziem do modyfikacji atrybutów elementów DOM. Po uzyskaniu referencji do elementu za pomocą metody getElementById, możemy wykorzystać setAttribute do ustawienia lub zmiany wartości dowolnego atrybutu HTML. Na przykład, aby zmienić atrybut 'src' obrazka, można użyć następującego kodu: const img = document.getElementById('myImage'); img.setAttribute('src', 'newImage.png');. Takie podejście jest zgodne z najlepszymi praktykami, zapewniając elastyczność i kontrolę nad elementami DOM. Metoda ta przyjmuje dwa argumenty: nazwę atrybutu oraz jego nową wartość. Warto pamiętać, że setAttribute działa nie tylko z atrybutami standardowymi, ale również z niestandardowymi i danymi atrybutami, co pozwala na dynamiczne rozszerzanie możliwości HTML. Dobre praktyki zalecają również użycie setAttribute, gdy chcemy zapewnić pełną zgodność z HTML5 i zachować semantykę dokumentu, co jest kluczowe dla dostępności i SEO.

Pytanie 3

W przedstawionym kodzie JavaScript występuje błąd logiczny. Program, zamiast informować, czy liczby są równe, nie działa prawidłowo. Wskaż, która odpowiedź dotyczy tego błędu.

var x = 5;
var y = 3;
if (x = y)
  document.getElementById("demo").innerHTML = "zmienne są równe";
else
  document.getElementById("demo").innerHTML = "zmienne się różnią";
A. Zmienne zostały błędnie zadeklarowane
B. W instrukcji if znajduje się przypisanie zamiast operacji porównania
C. Polecenia w sekcjach if i else powinny zostać zamienione miejscami
D. Przed instrukcją else nie powinno być średnika
W tym przypadku mamy do czynienia z częstym błędem w programowaniu, gdzie zamiast porównania użyto operatora przypisania. W języku JavaScript operator przypisania '=' służy do przypisywania wartości do zmiennej, natomiast do porównania dwóch wartości używa się operatora '==' dla równości lub '===' dla równości i sprawdzania typu. Użycie '=' w warunku if powoduje przypisanie wartości y do x, co zawsze zwróci true, jeśli y jest różne od zera. To prowadzi do nieoczekiwanych rezultatów w logice programu. Poprawnym zapisem w tym kontekście jest if (x == y). Warto pamiętać o dobrych praktykach, które zalecają używanie '===' zamiast '==' dla uzyskania lepszej precyzji i uniknięcia błędów spowodowanych niejawnych konwersji typów. To podejście minimalizuje ryzyko błędów logicznych i poprawia czytelność kodu. Regularne stosowanie takich dobrych praktyk zwiększa jakość kodu i ułatwia jego późniejszą konserwację oraz rozwój.

Pytanie 4

Wynikiem realizacji zamieszczonego kodu PHP jest pokazanie komunikatu

Ilustracja do pytania
A. warunek1
B. warunek4
C. warunek2
D. warunek3
Kod w języku PHP przedstawia warunki logiczne, które oceniają wartości zmiennych $a, $b, $c i $d. Zmienna $a i $c są ustawione na true, natomiast $b i $d na false. Pierwszy warunek sprawdza, czy zarówno $a && $b (czyli true && false, co daje false) lub $c && $d (czyli true && false, co również daje false) jest prawdziwe. Oba wyrażenia są fałszywe, więc warunek if nie zostanie spełniony. Drugi warunek elseif sprawdza, czy $a && $b (false) lub $c || $d (true || false, co daje true) jest prawdziwe. Ponieważ $c || $d jest prawdziwe, cały warunek jest spełniony i zostanie wyświetlony komunikat warunek2. Dobrym przykładem praktycznego zastosowania takich konstrukcji jest walidacja danych w aplikacjach webowych, gdzie można łączyć różne warunki logiczne w celu osiągnięcia wymaganej logiki decyzyjnej. Ważne jest, by rozumieć priorytety operatorów logicznych i zasady działania operatora „OR” (||) i „AND” (&&) w języku PHP, zgodnie z dokumentacją PHP.

Pytanie 5

Która z definicji tablicy asocjacyjnej w PHP jest składniowo poprawna?

A. $wiek = array([Anna, 35], [Ewa, 37], [Oliwia, 43]);
B. $wiek = array("Anna"=35, "Ewa"=37, "Oliwia"=43);
C. $wiek = array("Anna"=>"35", "Ewa"=>"37", "Oliwia"=>"43");
D. $wiek = array({"Anna", "35"}, {"Ewa", "37"}, {"Oliwia", "43"});
Definicja tablicy asocjacyjnej w języku PHP, przedstawiona jako $wiek = array("Anna"=>"35", "Ewa"=>"37", "Oliwia"=>"43");, jest poprawna składniowo. Tablice asocjacyjne to struktury danych, które pozwalają na przechowywanie wartości w parach klucz-wartość. Kluczami mogą być stringi lub liczby, a wartości mogą być różnego typu. Użycie operatora => jest kluczowe, ponieważ wskazuje, że dla danego klucza (np. "Anna") przypisana jest konkretna wartość (np. "35"). W praktyce tablice asocjacyjne są niezwykle użyteczne w wielu sytuacjach, takich jak przetwarzanie danych z formularzy, gdzie klucze odpowiadają nazwom pól, a wartości to wprowadzone przez użytkownika dane. Dzięki tablicom asocjacyjnym można z łatwością uzyskiwać dostęp do wartości, analizować je i manipulować, co czyni je standardowym narzędziem w programowaniu w PHP i praktycznym podejściem w tworzeniu aplikacji webowych.

Pytanie 6

Instrukcja w języku SQL ```GRANT ALL PRIVILEGES ON klienci TO pracownik```

A. Odbiera wszystkie uprawnienia pracownikowi do tabeli klienci
B. Przyznaje wszystkie uprawnienia do tabeli klienci użytkownikowi pracownik
C. Przenosi uprawnienia z grupy klienci na użytkownika pracownik
D. Przyznaje uprawnienia grupie klienci do tabeli pracownik
Odpowiedź jest poprawna, ponieważ polecenie GRANT ALL PRIVILEGES ON klienci TO pracownik w języku SQL rzeczywiście nadaje wszystkie dostępne uprawnienia do tabeli klienci użytkownikowi pracownik. To oznacza, że pracownik zyskuje możliwość wykonywania wszelkich operacji na tej tabeli, w tym SELECT, INSERT, UPDATE oraz DELETE. Przykład zastosowania tego polecenia jest istotny w kontekście zarządzania bazami danych, gdzie administratorzy muszą przyznawać różnorodne uprawnienia użytkownikom w zależności od ich roli. Przykładowo, jeśli pracownik jest odpowiedzialny za wprowadzanie i aktualizację danych klientów, to nadanie mu wszystkich uprawnień jest uzasadnione. Ważne jest, aby przyznawać uprawnienia zgodnie z zasadą najmniejszych uprawnień, co oznacza, że użytkownik powinien mieć tylko te uprawnienia, które są niezbędne do realizacji jego zadań. W praktyce, administrator baz danych powinien monitorować przyznane uprawnienia i regularnie je przeglądać, aby zapewnić bezpieczeństwo systemu. Koszty błędów w przyznawaniu uprawnień mogą być znaczne, w tym ryzyko nieautoryzowanego dostępu do danych, dlatego kluczowe jest stosowanie dobrych praktyk w zarządzaniu uprawnieniami.

Pytanie 7

Po wykonaniu kodu PHP zostanie wyświetlona aktualna data zawierająca jedynie
echo date("Y");

A. miesiąc i rok
B. dzień
C. rok
D. dzień i miesiąc
Odpowiedź \"rok\" jest prawidłowa, ponieważ funkcja `date()` w PHP, w przypadku użycia formatu \"Y\", zwraca czterocyfrowy rok bieżącej daty. Funkcja ta jest kluczowa w kontekście programowania w PHP, szczególnie gdy chodzi o zarządzanie datami i czasem. W praktyce, używanie tej funkcji jest niezwykle istotne w aplikacjach internetowych, gdzie często jest potrzebne wyświetlenie daty w różnych formach. Na przykład, w systemach zarządzania treścią (CMS) można stosować funkcję `date()` do automatycznego generowania daty publikacji artykułów. Warto również zaznaczyć, że PHP oferuje różne formaty dla dat, a stosowanie standardów, takich jak format ISO 8601, może być przydatne w przypadku wymiany danych z innymi systemami. Używanie `date("Y")` to dobra praktyka, aby uniknąć problemów z lokalizacją i zapewnić spójność w wyświetlaniu daty na stronach internetowych."

Pytanie 8

Wskaż, który zapis należy zastosować w celu wyświetlenia grafiki obrazek.png na stronie WWW w pliku plik.html.  

Ilustracja do pytania
A. <img src="/../katalog_1/katalog_B/obrazek.png">
B. <img src="../../katalog_2/katalog_B/obrazek.png">
C. <img src="/../katalog_2/katalog_B/obrazek.png">
D. <img src="obrazek.png">
Poprawny zapis <img src="../../katalog_2/katalog_B/obrazek.png"> wynika bezpośrednio z położenia pliku HTML i grafiki w strukturze katalogów. plik.html znajduje się w katalogu_1/katalog_A, a obrazek.png w katalogu_2/katalog_B. Żeby przeglądarka mogła odnaleźć plik graficzny, ścieżka względna musi krok po kroku „przejść” po tej strukturze. Najpierw ../../ cofa nas dwa poziomy w górę: z katalog_A do katalog_1, a potem z katalog_1 do katalogu głównego, w którym znajdują się katalog_1 i katalog_2. Następnie wchodzimy do katalog_2, potem do katalog_B i dopiero tam leży obrazek.png. To dokładnie odzwierciedla poprawną, relatywną drogę od pliku HTML do zasobu graficznego. Z mojego doświadczenia w projektach webowych używanie poprawnych ścieżek względnych jest kluczowe, szczególnie gdy serwis ma rozbudowaną strukturę folderów albo jest później przenoszony między środowiskami (np. localhost, serwer testowy, produkcja). Dzięki ścieżkom względnym, takim jak ../../katalog_2/katalog_B/obrazek.png, kod HTML jest bardziej przenośny i nie trzeba modyfikować adresów po każdej zmianie domeny czy katalogu głównego. Warto też pamiętać, że atrybut src w znaczniku <img> zawsze wskazuje na zasób, który przeglądarka ma pobrać – może to być ścieżka względna, bezwzględna w obrębie serwera lub pełny URL z protokołem. W praktyce przy większych projektach dobrze jest utrzymywać spójną konwencję nazewnictwa katalogów (np. img, assets, static) i stosować logiczną strukturę, żeby takie ścieżki były łatwe do ogarnięcia. Moim zdaniem warto też na wczesnym etapie przyzwyczaić się do „ręcznego” analizowania, skąd jest liczona ścieżka – zawsze od lokalizacji aktualnego dokumentu HTML, chyba że używamy ścieżek absolutnych od katalogu głównego serwera.

Pytanie 9

W SQL wykorzystywanym przez system baz danych MySQL atrybut UNIQUE w poleceniu CREATE TABLE

A. Zabrania wprowadzenia wartości NULL
B. Wymusza unikalne nazwy kolumn w tabeli
C. Jest używany, gdy wartości w kolumnie nie mogą się powtarzać
D. Jest stosowany wyłącznie w przypadku kolumn liczbowych
Atrybut UNIQUE w MySQL jest kluczowym elementem definicji tabeli, który zapewnia, że wartości w danej kolumnie są unikalne w obrębie całej tabeli. Oznacza to, że nie może być dwóch wierszy, które mają tę samą wartość w kolumnie oznaczonej jako UNIQUE. Jest to szczególnie istotne w kontekście zarządzania danymi, gdyż pozwala na eliminację duplikatów, co jest zgodne z najlepszymi praktykami projektowania baz danych. Przykładem zastosowania atrybutu UNIQUE może być tabela przechowująca dane użytkowników, gdzie adres e-mail powinien być unikalny dla każdego użytkownika. Dzięki temu, system może zapewnić, że nie dojdzie do przypadkowego utworzenia dwóch kont z tym samym adresem e-mail. Warto dodać, że atrybut UNIQUE może współistnieć z wartościami NULL – w MySQL, wiele wartości NULL jest dozwolonych w kolumnie, która ma zastosowany atrybut UNIQUE. Zrozumienie i prawidłowe wykorzystanie tego atrybutu jest kluczowe dla zachowania integralności danych i efektywności operacji na bazie danych.

Pytanie 10

Aby wykonać kopię zapasową bazy danych w MySQL, jakie polecenie należy zastosować?

A. mysqldump
B. mysqlcheck
C. mysqlslap
D. mysqlreplicate
Polecenie mysqldump jest standardowym narzędziem w systemie MySQL, które służy do tworzenia kopii zapasowych baz danych. Umożliwia on eksportowanie danych oraz struktury wszystkich tabel w postaci pliku tekstowego, co sprawia, że jest niezwykle przydatny przy przeprowadzaniu migracji, aktualizacji lub przywracania danych. Przykładowe użycie mysqldump może wyglądać następująco: 'mysqldump -u użytkownik -p nazwa_bazy_danych > kopia_zapasowa.sql', co tworzy plik o nazwie 'kopia_zapasowa.sql' zawierający wszystkie dane i strukturę wskazanej bazy. Dobrą praktyką jest regularne tworzenie kopii zapasowych, szczególnie przed wprowadzeniem istotnych zmian w schemacie bazy danych lub podczas aktualizacji systemu. Ponadto, mysqldump umożliwia także eksportowanie danych w formacie CSV, co ułatwia ich dalszą analizę lub przeniesienie do innych systemów. Warto także pamiętać, że polecenie to oferuje różnorodne opcje, takie jak --single-transaction, które zapewniają spójność danych podczas tworzenia kopii zapasowej w bazach danych o dużym ruchu.

Pytanie 11

Tabele Osoby oraz Zainteresowania są połączone relacją jeden do wielu. Jakie zapytanie SQL należy użyć, aby w oparciu o tę relację poprawnie wyświetlić imiona i odpowiadające im hobby?

Ilustracja do pytania
A. SELECT imie, hobby FROM Osoby.Zainteresowania_id = Zainteresowania.id FROM Osoby, Zainteresowania;
B. SELECT imie, hobby FROM Osoby, Zainteresowania;
C. SELECT imie, hobby FROM Osoby, Zainteresowania WHERE Osoby.id = Zainteresowania.id;
D. SELECT imie, hobby FROM Osoby JOIN Zainteresowania ON Osoby.Zainteresowania_id = Zainteresowania.id;
Wiele osób mylnie uważa, że można łączyć tabele w SQL bez wyraźnego określenia relacji między nimi. Jednak takie podejście, jak w odpowiedzi numer 2 i 3, prowadzi do niepoprawnych wyników, ponieważ nie definiujemy, w jaki sposób dane z tych tabel mają być łączone. To może skutkować produkcją tzw. iloczynu kartezjańskiego, gdzie każda kolumna z pierwszej tabeli jest łączona z każdą kolumną z drugiej tabeli. W kontekście dużych baz danych takie podejście nie jest skalowalne i powoduje niepotrzebne obciążenie systemu. Odpowiedź numer 4 zakłada istnienie bezpośredniego połączenia między kolumną Osoby.id a Zainteresowania.id, co jest błędnym założeniem, gdyż w analizowanym przypadku tabele są połączone poprzez kolumny Osoby.Zainteresowania_id i Zainteresowania.id. Niepoprawne rozumienie struktury bazy danych prowadzi do błędnych przekonań o relacjach między danymi. Ważne jest, aby zawsze zwracać uwagę na klucze obce, które definiują rzeczywiste połączenia w modelu danych. Dokładne zrozumienie struktury i logiki relacyjnych baz danych jest kluczowe dla pisania efektywnych i poprawnych zapytań SQL. Umiejętność prawidłowego łączenia tabel stanowi fundament dla tworzenia zaawansowanych zapytań, które są niezbędne w profesjonalnym zarządzaniu bazami danych.

Pytanie 12

W języku JavaScript należy uzyskać dostęp do elementu w pierwszym akapicie podanego kodu HTML. Jak można to zrobić za pomocą funkcji

<p>pierwszy paragraf</p>
<p>drugi paragraf</p>
<p>trzeci paragraf</p>
...
A. getElementByTagName('p')[0];
B. getElementByClassName('p.1')[0];
C. getElement('p');
D. getElementById('p1');
Metoda getElementsByTagName('p')[0] jest prawidłowym sposobem odwołania się do pierwszego elementu <p> w dokumencie HTML. Funkcja getElementsByTagName zwraca kolekcję wszystkich elementów o określonej nazwie tagu. W przypadku użycia tagu 'p', funkcja zwraca tablicę wszystkich paragrafów. Aby uzyskać dostęp do pierwszego paragrafu, korzystamy z indeksu [0], co jest zgodne z konwencją numerowania od zera w językach programowania. Praktyczne zastosowanie tej metody obejmuje manipulację treścią lub stylami pierwszego paragrafu, na przykład zmiana jego tekstu za pomocą innerHTML lub dodanie klasy CSS w celu zmiany jego wyglądu. Stosowanie getElementsByTagName jest zgodne z powszechnymi standardami i dobrymi praktykami w pracy z DOM (Document Object Model) w JavaScript. Ważne jest zrozumienie tego mechanizmu, aby efektywnie operować na elementach HTML oraz tworzyć dynamiczne i interaktywne strony internetowe. Warto również pamiętać, że metoda ta zwraca dynamiczną kolekcję, co oznacza, że zmiany w DOM automatycznie wpływają na zawartość zwróconej kolekcji.

Pytanie 13

Wskaż komendę, która dokonuje aktualizacji danych w tabeli?

A. SELECT
B. CREATE
C. UPDATE
D. ALTER
Odpowiedź "UPDATE" jest jak najbardziej trafna. To takie podstawowe polecenie SQL, które pozwala na aktualizowanie już istniejących danych w tabeli. Możesz dzięki niemu zmienić jeden albo kilka wierszy w tabeli, w zależności od tego, jakie masz kryteria. Na przykład, jeśli mamy tabelę "pracownicy" i chcemy zwiększyć pensję programistów do 6000 zł, wystarczy użyć polecenia: `UPDATE pracownicy SET pensja = 6000 WHERE stanowisko = 'programista';`. To polecenie działa w taki sposób, że modyfikuje dane, ale przy tym dba o integralność, co jest bardzo ważne w pracy z bazami danych. Warto zawsze dodawać klauzulę WHERE, żeby zmiany dotyczyły tylko wybranych wierszy – to pomoże uniknąć sytuacji, w której przypadkiem zmienisz wszystko. Umiejętność korzystania z UPDATE jest naprawdę istotna, jeżeli chcesz efektywnie zarządzać swoimi danymi.

Pytanie 14

Jaki styl CSS umożliwia ustawienie wyrównania tekstu do prawej strony?

A. <p style="align: right"> tekst </p>
B. <p style="positon: right"> tekst </p>
C. <p style="text-align: right"> tekst </p>
D. <p style="font: right"> tekst </p>
Odpowiedź <p style="text-align: right"> tekst </p> jest poprawna, ponieważ właściwość CSS 'text-align' jest standardowym sposobem definiowania wyrównania tekstu w elemencie blokowym, takim jak <p>. Używając 'text-align: right', tekst wewnątrz elementu <p> zostanie wyrównany do prawej strony, co jest szczególnie przydatne w przypadku projektów webowych, gdzie estetyka i układ treści mają kluczowe znaczenie. Dzięki CSS można z łatwością zmieniać wyrównanie tekstu w zależności od wymagań projektu, co pozwala na elastyczne dostosowywanie stylów do różnych urządzeń i rozmiarów ekranów. Warto również wspomnieć, że stosowanie CSS do stylizacji dokumentów HTML jest zgodne z zasadami kaskadowych arkuszy stylów, co zapewnia separację treści od prezentacji i ułatwia zarządzanie stylami w większych projektach. Dobrą praktyką jest stosowanie zewnętrznych lub wewnętrznych arkuszy stylów zamiast inline stylingu, co zwiększa czytelność kodu i ułatwia jego utrzymanie.

Pytanie 15

Funkcja, która wywołuje samą siebie to

A. dziedziczenie
B. iteracja
C. rekurencja
D. hermetyzacja
Rekurencja to technika programistyczna, w której funkcja wywołuje samą siebie w celu rozwiązania problemu. Jest to szczególnie użyteczne w sytuacjach, gdy problem można podzielić na mniejsze, podobne podproblemy. Przykładem rekurencji może być obliczanie silni liczby. Silnia n (n!) jest definiowana jako n * (n-1)!, co oznacza, że obliczenie silni dla n wymaga obliczenia silni dla n-1, aż do osiągnięcia podstawowego przypadku, którym jest 0! = 1. Rekurencja ma zastosowanie w wielu algorytmach, w tym w wyszukiwaniu binarnym, sortowaniu przez scalanie oraz w rozwiązywaniu problemów związanych z drzewami, takich jak przechodzenie przez struktury drzewiaste. Ważne jest, aby prawidłowo zdefiniować warunki zakończenia rekurencji, aby uniknąć nieskończonego wywoływania funkcji, co prowadzi do przekroczenia limitu stosu. Rekurencja jest często stosowana w językach programowania takich jak Python, Java i C++, a jej zrozumienie jest kluczowe dla każdego programisty, który chce efektywnie rozwiązywać złożone problemy.

Pytanie 16

Jaki System Zarządzania Bazą Danych jest standardowo używany w pakiecie XAMPP?

A. Oracle
B. PostgreSQL
C. MariaDB
D. Firebird
MariaDB jest systemem zarządzania bazą danych, który jest domyślnie stosowany w pakiecie XAMPP. Jest to otwarty, wieloplatformowy system, będący fork'iem MySQL, co oznacza, że zachowuje wiele z jego funkcjonalności, a jednocześnie wprowadza nowe cechy oraz poprawki. Dzięki temu, MariaDB zyskuje na wydajności i bezpieczeństwie w porównaniu do MySQL. Użytkownicy XAMPP mogą korzystać z MariaDB do lokalnego rozwoju aplikacji webowych, co pozwala na testowanie i debugowanie przed wdrożeniem na serwerze produkcyjnym. Przykładowe zastosowania to budowa dynamicznych stron internetowych, systemów e-commerce czy aplikacji do zarządzania treścią. Standardowe praktyki obejmują tworzenie kopii zapasowych, optymalizację zapytań oraz zapewnienie bezpieczeństwa danych poprzez odpowiednie konfiguracje oraz aktualizacje. MariaDB jest zgodna z SQL, co umożliwia łatwe przejście z MySQL oraz integrację z popularnymi frameworkami i CMS-ami takimi jak WordPress czy Joomla.

Pytanie 17

Które ograniczenie w bazach danych, należy przypisać kolumnie tabeli, aby wartości wpisywane do niej nie powtarzały się?

A. NO REPEAT
B. NOT NULL
C. SINGLE
D. UNIQUE
W bazach danych bardzo łatwo pomylić różne typy ograniczeń, bo wszystkie „coś ograniczają”, ale robią to w zupełnie inny sposób. W tym pytaniu chodzi konkretnie o to, żeby wartości w kolumnie się nie powtarzały – czyli o klasyczną unikalność danych. Do tego służy constraint UNIQUE, który jest standardowym mechanizmem w SQL do wymuszania niepowtarzalnych wartości w obrębie danej kolumny lub kombinacji kolumn. Pojawia się czasem intuicja, że może istnieje coś takiego jak SINGLE albo NO REPEAT, bo nazwa brzmi sensownie po angielsku. W specyfikacji SQL i w popularnych systemach baz danych takie słowa kluczowe jednak po prostu nie występują jako constrainty. SINGLE i NO REPEAT nie są standardowymi ograniczeniami, więc żadna poważna baza danych ich nie zrozumie. To typowy błąd: kierowanie się „ładnie brzmiącą nazwą”, a nie faktycznymi słowami kluczowymi języka SQL. Z kolei NOT NULL jest jak najbardziej prawdziwym ograniczeniem, ale rozwiązuje zupełnie inny problem. NOT NULL mówi tylko tyle, że w danej kolumnie nie wolno przechowywać wartości pustych (NULL). Możesz mieć tabelę, w której kolumna ma NOT NULL i jednocześnie wiele identycznych wartości, np. same zera albo ten sam tekst w każdym wierszu – baza nie będzie protestować, bo nie zabrania powtórek, tylko zabrania braku wartości. To ograniczenie często łączy się z innymi, np. PRIMARY KEY czy UNIQUE, ale samo w sobie nie zapewnia żadnej unikalności. Z mojego doświadczenia przy projektowaniu schematów baz danych najczęstszy błąd myślowy wygląda tak: ktoś zakłada, że skoro pole nie może być puste (NOT NULL), to „jakoś przy okazji” jest traktowane specjalnie i może nawet unikalnie. Niestety tak to nie działa. Dopiero dodanie UNIQUE albo zdefiniowanie PRIMARY KEY wymusza, że dana wartość nie pojawi się drugi raz. Dlatego przy każdej kolumnie, która ma pełnić rolę identyfikatora biznesowego (np. email, numer dokumentu, NIP), trzeba świadomie dobrać właściwy constraint, a nie liczyć na samo NOT NULL czy jakieś „domyślne” zachowanie bazy.

Pytanie 18

Jak nazywa się sposób udostępniania bazy danych w Microsoft Access, który obejmuje wszystkie obiekty bazy znajdujące się na dysku sieciowym i używane jednocześnie przez różne osoby?

A. folderu sieciowego
B. dzielonej bazy danych
C. witryny programu SharePoint
D. serwera bazy danych
Wybór innych opcji, takich jak serwer bazy danych, dzielona baza danych czy witryna programu SharePoint, może prowadzić do nieporozumień na temat tego, jak działają mechanizmy udostępniania w Microsoft Access. Serwer bazy danych, na przykład, odnosi się do systemu zarządzania bazami danych, który obsługuje skomplikowane operacje i dużą ilość danych, ale nie jest tożsamy z lokalizacją danych na dysku sieciowym, co ogranicza jego zastosowanie w prostych zespołowych projektach. Z kolei dzielona baza danych to termin ogólny, który może być mylony z udostępnianiem danych na poziomie lokalnym lub zdalnym, ale nie precyzuje, jak obiekty są współdzielone przez użytkowników. Witryna programu SharePoint z kolei służy do przechowywania dokumentów i zarządzania projektami w chmurze, co jest innym podejściem niż tradycyjne foldery sieciowe. W praktyce, wybierając folder sieciowy, użytkownicy mogą łatwiej współpracować, dzielić się plikami i korzystać z prostoty, jaką zapewnia dostęp bez konieczności zaawansowanego konfigurowania serwerów czy baz danych. Kluczowe jest zrozumienie, że odpowiednie podejście do udostępniania danych powinno być zgodne z potrzebami zespołu i charakterem realizowanych projektów.

Pytanie 19

Wartości, które może przyjąć zmienna typu double, to:

A. "Ala"; 'd'
B. 2.4; 4; 3.2
C. 1979-12-05; 12:33
D. 1,44; 2,55
Zmienna typu double jest typem danych, który jest powszechnie używany w programowaniu, szczególnie w językach takich jak Java, C++ czy Python, do przechowywania liczb zmiennoprzecinkowych o podwójnej precyzji. W przeciwieństwie do typów całkowitych, typ double może reprezentować liczby z częścią dziesiętną, co czyni go idealnym do obliczeń wymagających precyzyjnych wartości, takich jak obliczenia finansowe czy naukowe. Przykłady wartości, które mogą być przechowywane w zmiennej typu double obejmują 2.4, 4, 3.2, gdzie każda z nich jest liczbą zmiennoprzecinkową. Ważne jest, aby stosować ten typ w odpowiednich kontekstach, aby uniknąć błędów związanych z precyzją. Zgodnie z najlepszymi praktykami, podczas definiowania zmiennych należałoby jasno określić ich typ, aby zapewnić przejrzystość kodu oraz jego przyszłą konserwację.

Pytanie 20

Jak należy prawidłowo udokumentować wzorcowanie pola nazwa we fragmencie kodu JavaScript?

function validateForm(Form)
{
reg=/^\[1-9\]*[A-ZŻŹĘĄĆŚÓŁŃ]{1}[a-zżźćńółęąś]{2,}$/;
wyn = Form.nazwa.value.match(reg);
if (wyn == null) {
    alert("Proszę podać poprawną nazwę");
    return false;
}
return true;
}
A. /* Pole nazwa powinno składać się w kolejności: z ciągu cyfr (z wyłączeniem 0), następnie dużej litery i ciągu małych liter. */
B. /* Pole nazwa może składać się z dowolnego ciągu cyfr (z wyłączeniem 0), małych i dużych liter. */
C. /* Pole nazwa może zawierać dowolny ciąg cyfr (z wyłączeniem 0), następnie musi zawierać dużą literę i ciąg minimum dwóch małych liter. */
D. /* Pole nazwa musi składać się w kolejności: z ciągu cyfr (z wyłączeniem 0), następnie dużej litery i dwóch małych liter. */
Weryfikacja pola nazwa przy użyciu wyrażeń regularnych w aplikacji JavaScript jest kluczowym elementem zapewnienia integralności danych wejściowych. Niektóre przedstawione opcje zawierają błędne założenia na temat porządku i wymogów składniowych wzorca. Przykładowo, nieprawidłowe jest założenie, że jedynie dowolny ciąg cyfr (bez zer) wystarczy, ponieważ kod wyraźnie wymaga, aby po cyfrach nastąpiła jedna duża litera, a następnie minimum dwie małe litery. Niezrozumienie tego może prowadzić do błędnych założeń dotyczących logiki walidacji. Niedokładne opisy wzorca mogą prowadzić do błędów w implementacji, co może skutkować działaniem niezgodnym z oczekiwaniami. Ponadto, dobre praktyki programistyczne zawsze sugerują, aby dokumentacja była dokładna i odzwierciedlała rzeczywiste wymagania kodu, co w tym przypadku oznacza precyzyjne określenie kolejności i wymogów dotyczących znaków. Niewłaściwe rozumienie wyrażeń regularnych może również prowadzić do błędów bezpieczeństwa, takich jak podatność na wstrzykiwanie danych, dlatego kluczowe jest poprawne udokumentowanie wzorca, aby zapewnić bezpieczne przetwarzanie danych użytkowników.

Pytanie 21

Podano tabelę ksiazki z kolumnami: tytul, autor (w formacie tekstowym), cena (w formacie liczbowym). Aby zapytanie SELECT zwracało jedynie tytuły, dla których cena jest niższa niż 50zł, należy użyć:

A. SELECT * FROM ksiazki WHERE cena < 50
B. SELECT ksiazki FROM tytul WHERE cena < '50 zł'
C. SELECT tytul FROM ksiazki WHERE cena > '50 zł'
D. SELECT tytul FROM ksiazki WHERE cena < 50
Odpowiedź 'SELECT tytul FROM ksiazki WHERE cena < 50;' jest poprawna, ponieważ precyzyjnie formułuje zapytanie w języku SQL, które ma na celu wyodrębnienie z tabeli 'ksiazki' tylko tych tytułów, których cena jest niższa niż 50. W tym przypadku użycie operatora porównania '<' skutkuje filtracją danych według określonego kryterium. Jest to zgodne z dobrą praktyką w programowaniu baz danych, ponieważ pozwala uzyskać potrzebne informacje w sposób efektywny i zrozumiały. Przykładem praktycznego zastosowania może być stworzenie raportu dla księgarni, która chce zobaczyć, które książki są w sprzedaży w przystępnej cenie. Zwracając tylko potrzebne kolumny (tytuł), minimalizujesz ilość przesyłanych danych, co jest ważne w kontekście wydajności i szybkości działania aplikacji korzystających z bazy danych. Dodatkowo, unikanie podawania ceny w formacie tekstowym (np. '50 zł') jest zgodne z zasadami dobrego projektowania baz danych, które zalecają stosowanie odpowiednich typów danych, co w tym przypadku oznacza liczbę bez jednostki walutowej.

Pytanie 22

W modelu kolorów RGB kolor żółty powstaje z połączenia zielonego i czerwonego. Który kod szesnastkowy przedstawia kolor żółty?

A. #F0F0F0
B. #FFFF00
C. #FF00FF
D. #00FFFF
Kolor żółty w modelu RGB jest uzyskiwany poprzez połączenie pełnej intensywności koloru czerwonego oraz zielonego, przy zerowej intensywności koloru niebieskiego. W zapisie szesnastkowym, który jest powszechnie używany w programowaniu i projektowaniu grafiki komputerowej, kolor żółty reprezentowany jest przez kod #FFFF00. W tym kodzie pierwsze dwie cyfry 'FF' odpowiadają wartości intensywności czerwonego koloru, następne dwie 'FF' odpowiadają intensywności zielonego, a ostatnie dwie '00' oznaczają brak niebieskiego. Przykładem zastosowania koloru żółtego mogą być interfejsy użytkownika, gdzie często wykorzystuje się go do przyciągania uwagi, jak w przypadku znaków ostrzegawczych czy przycisków akcji. Kolor żółty jest również częścią różnych standardów kolorów, takich jak sRGB, który jest powszechnie używany w aplikacjach internetowych i mobilnych. Warto również zauważyć, że krzyżowanie się skali RGB z innymi modelami kolorów, takimi jak CMYK, pokazuje, jak różne systemy reprezentują kolory, co jest istotne w druku i cyfrowym projektowaniu.

Pytanie 23

Jakie jest zastosowanie programu debugger?

A. tłumaczenia kodu napisanego w języku wyższego poziomu na język maszynowy
B. badania kodu źródłowego w celu znalezienia błędów składniowych
C. analizy wykonywanego programu w celu lokalizacji błędów
D. interpretacji kodu w wirtualnej maszynie Java
Program debugger to narzędzie, które umożliwia programistom analizę wykonywanego programu w celu lokalizacji błędów, co jest kluczowym elementem procesu tworzenia oprogramowania. Debuggery pozwalają na zatrzymywanie wykonania programu w określonych momentach, co pozwala na inspekcję stanu zmiennych oraz wywołań funkcji w danym momencie. Dodatkowo, wiele debuggerów oferuje możliwość krokowego przechodzenia przez kod, co ułatwia zrozumienie logiki programu i identyfikację błędów. Przykładem może być użycie debuggera w IDE, takich jak Visual Studio czy Eclipse, gdzie można ustawić punkty przerwania i obserwować zmiany w czasie rzeczywistym. Zastosowanie debuggera jest zgodne z najlepszymi praktykami branżowymi, które zalecają regularne testowanie i debugowanie kodu w trakcie jego pisania, co znacząco zwiększa jakość oprogramowania oraz przyspiesza proces developmentu. Warto również zaznaczyć, że dobra znajomość narzędzi debugujących jest niezbędna dla każdego programisty, aby efektywnie rozwiązywać problemy i dostarczać stabilne aplikacje.

Pytanie 24

W JavaScript metoda Math.random() ma na celu

A. zaokrąglić liczbę do najbliższej większej liczby całkowitej
B. zwrócić liczbę pseudolosową
C. zwrócić liczbę po zaokrągleniu
D. porównać dwie sekwencje znaków
Metoda Math.random() w języku JavaScript jest kluczowym narzędziem do generowania liczb pseudolosowych w zakresie od 0 (włącznie) do 1 (wyłącznie). Oznacza to, że każdorazowe wywołanie tej metody zwraca nową, losową wartość zmiennoprzecinkową, co jest przydatne w wielu zastosowaniach, takich jak tworzenie gier, symulacje, a także w algorytmach generujących dane testowe. Ważne jest, aby pamiętać, że Math.random() nie generuje liczb losowych w sensie statystycznym, lecz wykorzystuje algorytmy deterministyczne do produkcji wartości, co oznacza, że są one przewidywalne, jeśli znany jest stan początkowy. W praktyce, aby uzyskać liczbę losową w określonym zakresie, można zastosować następujący wzór: Math.floor(Math.random() * (max - min + 1)) + min, gdzie 'min' i 'max' to odpowiednio dolna i górna granica zakresu. To podejście jest zgodne z dobrymi praktykami w programowaniu, gdyż pozwala na elastyczne wykorzystanie losowości w aplikacjach.

Pytanie 25

Który z akapitów został sformatowany według podanego stylu, przy założeniu, że pozostałe właściwości akapitu mają wartości domyślne?

Ilustracja do pytania
A. Efekt 3
B. Efekt 2
C. Efekt 4
D. Efekt 1
Efekt 3 jest poprawny ponieważ formatowanie CSS zawiera ustawienie padding 20px co oznacza że wokół tekstu znajduje się przestrzeń o szerokości 20 pikseli Dodatkowo kolor tekstu jest niebieski zgodnie z ustawieniem color blue Także font-weight 900 wskazuje że tekst powinien być pogrubiony w najwyższym stopniu co jest widoczne w trzecim efekcie Obramowanie ma szerokość 1 piksel i jest solidne co oznacza że jest to ciągła linia wokół tekstu Efekt 3 dokładnie odzwierciedla te właściwości Formatowanie takie jest użyteczne w tworzeniu przyciągających uwagę nagłówków lub wyróżnień w treści strony internetowej W praktyce taki styl można zastosować do elementów interfejsu użytkownika które wymagają większej czytelności lub estetycznego oddzielenia od reszty treści Ważne jest aby odpowiednio zrozumieć i wykorzystać właściwości CSS dla uzyskania maksymalnej efektywności w projektowaniu stron internetowych Dobre praktyki obejmują także testowanie stylów na różnych urządzeniach aby upewnić się że wygląd spełnia zamierzone cele we wszystkich kontekstach

Pytanie 26

Efekt przedstawiony w filmie powinien być zdefiniowany w selektorze

A. tr { background-color: Pink; }
B. tr:active { background-color: Pink; }
C. td, th { background-color: Pink; }
D. tr:hover { background-color: Pink; }
Poprawny selektor to tr:hover { background-color: Pink; }, bo dokładnie opisuje sytuację pokazaną na filmie: efekt pojawia się dopiero po najechaniu kursorem na cały wiersz tabeli. Pseudo-klasa :hover w CSS służy właśnie do definiowania stylów w momencie, gdy użytkownik „najeżdża” myszką na dany element. Jeśli więc chcemy, żeby podświetlał się cały rząd tabeli, logiczne i zgodne z dobrymi praktykami jest przypięcie efektu do znacznika tr, a nie do pojedynczych komórek. W praktyce taki zapis stosuje się bardzo często w interfejsach webowych: w panelach administracyjnych, listach zamówień, tabelach z uczniami, produktami, logami systemowymi itd. Dzięki temu użytkownik łatwiej śledzi, który wiersz właśnie ogląda. To niby detal, ale z punktu widzenia UX robi sporą różnicę. Z mojego doświadczenia to jeden z tych prostych trików CSS, które od razu poprawiają „odczuwalną” jakość strony. Ważne jest też to, że :hover jest częścią standardu CSS (opisane m.in. w specyfikacji CSS Selectors Level 3/4) i działa w praktycznie wszystkich współczesnych przeglądarkach. Nie trzeba do tego żadnego JavaScriptu, żadnych skomplikowanych skryptów – czysty CSS. Dobrą praktyką jest również używanie bardziej stonowanych kolorów niż Pink w prawdziwych projektach, np. #f5f5f5 albo lekki odcień niebieskiego, tak żeby kontrast był czytelny i nie męczył wzroku. Warto też pamiętać, że podobny mechanizm możesz zastosować na innych elementach: np. a:hover dla linków, button:hover dla przycisków czy nawet div:hover dla całych kafelków w layoutach. Kluczowe jest to, żeby pseudo-klasa :hover była przypięta dokładnie do tego elementu, który ma reagować na interakcję użytkownika.

Pytanie 27

Instrukcja w języku SQL GRANT ALL PRIVILEGES ON klienci TO pracownik

A. przyznaje uprawnienie grupie klienci dla tabeli pracownik
B. przyznaje wszystkie uprawnienia do tabeli klienci użytkownikowi pracownik
C. przeniesie uprawnienia z grupy klienci do użytkownika pracownik
D. cofa wszystkie uprawnienia pracownikowi do tabeli klienci
Polecenie SQL "GRANT ALL PRIVILEGES ON klienci TO pracownik" jest używane do nadawania pełnych uprawnień do określonej tabeli, w tym przypadku do tabeli "klienci", użytkownikowi o nazwie "pracownik". To polecenie jest kluczowe w zarządzaniu dostępem w bazach danych, ponieważ pozwala administratorom na precyzyjne kontrolowanie, kto i w jakim zakresie może modyfikować dane. W praktyce, nadawanie uprawnień za pomocą komendy GRANT jest standardową praktyką w zarządzaniu bazami danych, pozwalającą na delegowanie odpowiedzialności oraz przydzielanie ról, co zwiększa bezpieczeństwo danych. Warto również zauważyć, że standardową praktyką jest ograniczanie uprawnień do niezbędnego minimum, stosując zasady najmniejszych uprawnień (principle of least privilege). Przykładowo, zamiast nadawania pełnych uprawnień, można przyznać użytkownikowi jedynie prawo do odczytu, co ogranicza ryzyko nieautoryzowanych zmian w danych.

Pytanie 28

Które z poniższych stwierdzeń o językach programowania jest fałszywe?

A. SQL jest językiem programowania strukturalnego
B. JavaScript to język skryptowy
C. PHP służy do tworzenia stron w czasie rzeczywistym
D. C++ jest językiem obiektowym
SQL, czyli Structured Query Language, to język zapytań, który jest używany do zarządzania danymi w relacyjnych bazach danych. Jest to język deklaratywny, a nie strukturalny, co oznacza, że użytkownik nie definiuje w nim kroków przetwarzania danych, lecz opisuje, jakie dane chce uzyskać. SQL pozwala na wykonywanie operacji takich jak wybieranie danych, wstawianie, aktualizowanie i usuwanie rekordów w bazie danych. Przykładowe zapytanie w SQL może wyglądać następująco: SELECT * FROM users WHERE age > 18; co zwróci wszystkie rekordy użytkowników powyżej osiemnastego roku życia. Warto również zauważyć, że SQL jest standardem ISO, co oznacza, że jego składnia i funkcjonalności są szeroko uznawane i stosowane w różnych systemach zarządzania bazami danych, takich jak MySQL, PostgreSQL czy Oracle. To czyni SQL niezwykle ważnym narzędziem dla każdego programisty, analityka danych czy specjalisty ds. baz danych.

Pytanie 29

Aby odzyskać bazę danych z kopii zapasowej na serwerze MSSQL, należy użyć polecenia

A. EXPORT DATABASE
B. RESTORE DATABASE
C. UNBACKUP DATABASE
D. BACKUP DATABASE
Aby przywrócić bazę danych z kopii zapasowej na serwerze MSSQL, trzeba użyć polecenia RESTORE DATABASE. To bardzo ważna komenda, bo pozwala nam na odzyskanie danych do stanu sprzed jakiejś awarii czy utraty informacji. Można to robić w różnych sytuacjach, na przykład przywracając bazę z pełnej kopii zapasowej albo jakiejś różnicowej. Przykład użycia wygląda tak: RESTORE DATABASE [NazwaBazyDanych] FROM DISK = 'C:\Backup\KopiaZap.pdf' WITH REPLACE; co zastąpi starą bazę nową. Fajnie też wspomnieć, że standardy jak ISO 27001 pokazują, jak ważne są regularne kopie zapasowe, żeby zachować integralność danych i ciągłość działania. A tak przy okazji, przed przywracaniem warto zablokować dostęp do bazy, żeby nie było żadnych konfliktów.

Pytanie 30

Na zaprezentowanym schemacie bazy danych biblioteka, elementy takie jak: czytelnik, wypożyczenie oraz książka stanowią

Ilustracja do pytania
A. encje
B. pola
C. krotki
D. atrybuty
Prawidłowo – na takim schemacie bazy danych „czytelnik”, „wypożyczenie” i „książka” to encje. W modelowaniu danych najpierw identyfikujemy obiekty świata rzeczywistego, które chcemy odwzorować w systemie. W przypadku biblioteki naturalnymi obiektami są właśnie czytelnik, książka i konkretne wypożyczenie. W notacji ERD (Entity‑Relationship Diagram) każdy z tych obiektów opisujemy jako encję, a potem dopiero dodajemy jej atrybuty oraz relacje z innymi encjami. Na schemacie widzisz trzy prostokąty – to są właśnie encje. Każda encja ma zestaw atrybutów: dla encji „czytelnik” są to np. imię, nazwisko, ulica, miejscowość; dla encji „książka” – tytuł, autor, rok wydania; dla encji „wypożyczenie” – daty wypożyczenia i zwrotu, klucze obce do czytelnika i książki. W relacyjnej bazie danych te encje są potem najczęściej odwzorowane jako tabele: tabela CZYTELNIK, WYPOZYCZENIE, KSIAZKA. To jest dokładnie zgodne z dobrymi praktykami projektowania: najpierw model koncepcyjny (encje i relacje), dopiero później model logiczny (tabele, klucze, typy danych). Z mojego doświadczenia przy każdym poważniejszym projekcie bazodanowym analitycy najpierw rysują diagram encji, bo to pomaga zrozumieć domenę biznesową. Dzięki poprawnemu rozróżnieniu encji od atrybutów można uniknąć błędów typu powtarzanie tych samych danych w wielu miejscach czy trudności z raportowaniem. W bibliotece na przykład wypożyczenie musi być osobną encją, bo opisuje zdarzenie w czasie, ma własne atrybuty (daty) i łączy dwie inne encje relacjami. Taki sposób modelowania jest zgodny z klasycznymi podręcznikami baz danych (model encja‑związek) oraz z zasadami normalizacji.

Pytanie 31

W języku JavaScript przedstawiona poniżej definicja jest definicją
var imiona=["Anna", "Jakub", "Iwona", "Krzysztof"];

A. tablicy.
B. klasy.
C. obiektu.
D. kolekcji.
W języku JavaScript definicja var imiona=["Anna", "Jakub", "Iwona", "Krzysztof"]; przedstawia tablicę, która jest jednym z fundamentalnych typów danych w tym języku. Tablice są używane do przechowywania zbiorów danych w sposób uporządkowany. W tym przypadku tablica imiona przechowuje cztery stringi, każdy reprezentujący imię. Wartością dodaną tablicy jest możliwość dostępu do poszczególnych elementów za pomocą indeksów, które zaczynają się od zera. Na przykład, imiona[0] zwróci \"Anna\", a imiona[1] zwróci \"Jakub\". W praktyce tablice są niezwykle przydatne w programowaniu, ponieważ pozwalają na łatwe zarządzanie i manipulację danymi. Dobrą praktyką jest używanie tablic do przechowywania związków danych, co umożliwia ich efektywne przetwarzanie i iterację za pomocą pętli, co zwiększa czytelność i organizację kodu. Warto również zaznaczyć, że tablice w JavaScript są obiektami, co daje dodatkowe możliwości manipulacji, takie jak metody tablicowe (np. push, pop, map, filter) do operacji na zbiorach danych. Poznanie i zrozumienie tablic jest kluczowe dla każdego programisty, ponieważ są one podstawą wielu algorytmów i struktur danych."

Pytanie 32

Wskaż system do zarządzania treściami.

A. Joomla!
B. Apache
C. MariaDB
D. phpMyAdmin
Wybór odpowiedzi innych niż Joomla! ukazuje istotne nieporozumienia dotyczące roli różnych technologii w kontekście zarządzania treścią. Apache to serwer HTTP, który obsługuje żądania użytkowników w Internecie, ale nie jest systemem zarządzania treścią. Jego funkcją jest dostarczanie plików z serwera do przeglądarki internetowej, co jest kluczowe, ale nie dotyczy bezpośredniego zarządzania treścią witryny. PhpMyAdmin to narzędzie do zarządzania bazami danych MySQL, które umożliwia użytkownikom wykonywanie operacji na bazach danych w interfejsie webowym, jednak nie pełni funkcji CMS. Jego głównym celem jest umożliwienie użytkownikom łatwego zarządzania danymi, a nie tworzenia i publikowania treści na stronach internetowych. MariaDB jest systemem zarządzania relacyjnymi bazami danych, będącym rozwidleniem MySQL, który również nie jest CMS-em. Jest używany do przechowywania danych, ale nie oferuje funkcji do zarządzania treścią w kontekście tworzenia i edycji stron. Kluczowym błędem myślowym, który prowadzi do takich odpowiedzi, jest mylenie różnych technologii webowych i ich funkcji. W rzeczywistości system zarządzania treścią, taki jak Joomla!, łączy w sobie zarówno zarządzanie danymi, jak i interfejs do tworzenia treści, co czyni go bardziej kompleksowym rozwiązaniem dla użytkowników pragnących budować i utrzymywać witryny internetowe.

Pytanie 33

W relacyjnym modelu danych, krotki definiuje się jako

A. wszystkie wiersze w tabeli łącznie z wierszem nagłówkowym
B. wiersze tabeli wyłączając wiersz nagłówkowy, w którym znajdują się nazwy kolumn
C. liczbę rekordów w tabeli
D. wszystkie kolumny tabeli, które reprezentują atrybuty obiektu
Krotka to taki ważny element w relacyjnych bazach danych, który odnosi się do konkretnych rekordów w tabeli. Każda krotka to jakby zestaw informacji, który dotyczy jednej jednostki, na przykład pojedynczego użytkownika w tabeli 'Użytkownicy'. Zawiera wartości atrybutów, które są przypisane do kolumn w tabeli. Te wartości są przechowywane w wierszach, a nagłówek z nazwami kolumn nie wchodzi w grę, jeśli chodzi o definicję krotek. Na przykład, w tabeli dotyczącej studentów, każdy wiersz mógłby zawierać dane jednego studenta, takie jak imię, nazwisko, wiek czy kierunek studiów. Myślę, że zrozumienie, czym jest krotka, jest kluczowe, żeby dobrze projektować bazy danych i używać SQL, bo w nim operacje na krotkach to podstawa większości zapytań. W praktyce, krotki pomagają również tworzyć relacje między tabelami w bazie danych, gdzie można je wykorzystać do przedstawiania powiązań między różnymi obiektami, na przykład 'Studenci' i 'Kursy'.

Pytanie 34

Która z funkcji SQL nie wymaga żadnych argumentów?

A. year
B. upper
C. len
D. now
Funkcja SQL 'now()' jest jedną z funkcji, które nie wymagają argumentów, a jej głównym zadaniem jest zwracanie bieżącej daty i godziny systemowej w formacie odpowiednim dla bazy danych. Użycie tej funkcji jest niezwykle przydatne w kontekście rejestrowania momentu wykonania operacji w bazie danych, na przykład przy dodawaniu nowych rekordów do tabeli. Przykładowe zastosowanie tej funkcji można zobaczyć w poniższym zapytaniu SQL: 'INSERT INTO wydarzenia (nazwa, data_utworzenia) VALUES ('Nowe Wydarzenie', now());'. Takie podejście nie tylko automatyzuje proces rejestrowania czasu, ale także zapewnia spójność danych, eliminując ryzyko błędów związanych z ręcznym wprowadzaniem daty. W praktyce, stosowanie funkcji, które nie wymagają argumentów, jest często zgodne z zasadami dobrych praktyk programistycznych, które promują czytelność i prostotę kodu.

Pytanie 35

Wskaż właściwą zasadę związaną z integralnością danych w bazie danych?

A. pole klucza podstawowego nie może pozostawać puste
B. pole klucza obcego nie może być puste
C. pole klucza podstawowego musi mieć utworzony indeks
D. w relacji 1..n pole klucza obcego łączy się z polem klucza obcego innej tabeli
Pole klucza podstawowego, definiujące unikalność wierszy w tabeli, nie może być puste. Jest to fundamentalna zasada normalizacji baz danych, która zapewnia integralność danych oraz ich jednoznaczność. W praktyce oznacza to, że każda tabela w relacyjnej bazie danych musi mieć przynajmniej jeden klucz podstawowy, który nie dopuszcza do pojawienia się dwóch identycznych rekordów. Na przykład, w bazie danych klientów, numer identyfikacyjny klienta (np. PESEL lub ID) powinien być kluczem podstawowym. Dzięki temu można jednoznacznie identyfikować każdy rekord, co jest kluczowe dla operacji takich jak aktualizacja lub usunięcie danych. Dobrą praktyką jest także zapewnienie, aby klucz podstawowy był prosty w użyciu, zrozumiały dla użytkowników oraz, w miarę możliwości, niemożliwy do zmiany, co zmniejsza ryzyko błędów przy zarządzaniu danymi. Dodatkowo, klucz podstawowy powinien być indeksowany, co przyspiesza operacje wyszukiwania, ale jego podstawową cechą pozostaje unikalność i obowiązek posiadania wartości.

Pytanie 36

Przygotowano fragment kodu PHP z zadeklarowaną zmienną tablicową. Jaki wynik zostanie wyświetlony jako imię po wykonaniu tego kodu?

$imiona = array('Anna', 'Tomasz', 'Krzysztof', 'Aleksandra');
echo $imiona[2];
A. Krzysztof
B. Anna
C. Tomasz
D. Aleksandra
Odpowiedź Krzysztofa jest całkiem trafna, bo w PHP zaczynamy liczenie od zera. Czyli mamy pierwszy element na pozycji 0, drugi na 1, a trzeci na 2. W tym przypadku zmienna imiona to tablica z czterema elementami: 'Anna', 'Tomasz', 'Krzysztof' oraz 'Aleksandra'. Gdy używamy echo $imiona[2], to tak naprawdę sięgamy po trzeci element, czyli 'Krzysztofa'. Zasada indeksowania od zera jest właściwie standardem w wielu językach programowania, jak C, JavaScript czy Python. Dzięki temu PHP staje się bardziej spójne z innymi językami. To pozwala lepiej zarządzać danymi w kodzie, bo każdy element ma swój unikalny indeks. Ważne jest, żeby to zapamiętać, bo dzięki temu można unikać błędów, które wynikają z niewłaściwego dostępu do elementów tablic. No i lepiej wiedzieć, że wykraczający indeks może prowadzić do różnych problemów, więc warto zrozumieć to zagadnienie.

Pytanie 37

W bazie danych znajduje się tabela artykuły z kolumnami: nazwa, typ, producent, cena. Jakie polecenie należy użyć, aby wyświetlić wszystkie nazwy artykułów tylko o typie pralka, których cena mieści się w przedziale od 1000 PLN do 1500 PLN?

A. SELECT nazwa FROM artykuły WHERE typ='pralka' AND cena FROM 1000 TO 1500
B. SELECT nazwa FROM artykuły WHERE typ='pralka' OR cena BETWEEN 1000 OR 1500
C. SELECT nazwa FROM artykuły WHERE typ='pralka' OR cena BETWEEN 1000 AND 1500
D. SELECT nazwa FROM artykuły WHERE typ='pralka' AND cena BETWEEN 1000 AND 1500
Jak chcesz wyciągnąć nazwy artykułów tylko dla pralek, które kosztują między 1000 a 1500 PLN, to musisz użyć polecenia SELECT z dobrymi warunkami. W SQL klauzula WHERE jest właśnie do tego, żeby określić, jakie dane chcesz wyciągnąć z tabeli. Ważne, żeby użyć operatora AND, bo musisz połączyć dwa warunki: typ musi być 'pralka', a cena musi mieścić się w tym przedziale. W tym wypadku operator BETWEEN będzie najlepszy, bo pozwala łatwo ustawić zakres wartości bez zawirowań z innymi operatorami. Takie zapytanie: SELECT nazwa FROM artykuły WHERE typ='pralka' AND cena BETWEEN 1000 AND 1500, zwróci wszystkie nazwy, które spełniają te kryteria. Dzięki BETWEEN masz pewność, że dolna i górna granica też są uwzględniane, co jest zgodne z zasadami SQL, a to z kolei sprawia, że przeszukiwanie danych jest efektywne. Dzięki temu zapytaniu dostajesz dokładne wyniki, co w zarządzaniu bazą danych jest mega ważne.

Pytanie 38

Jakie polecenie w CSS umożliwia dodanie zewnętrznego arkusza stylów?

A. include
B. import
C. open
D. require
Polecenie 'import' w CSS służy do załączenia zewnętrznego arkusza stylów, co jest kluczowe dla organizacji i modularności kodu CSS. Użycie '@import' pozwala na ładowanie stylów z innych plików CSS na początku arkusza stylów, co ułatwia zarządzanie dużymi projektami. Na przykład, jeśli mamy plik 'style.css' i chcemy zaimportować 'reset.css', możemy użyć następującej składni: '@import 'reset.css';'. Dzięki temu możemy utrzymać rozdzielenie różnych stylów, co sprzyja lepszej organizacji kodu oraz jego ponownemu użyciu w przyszłości. Warto również zaznaczyć, że standardy CSS sugerują, aby używać '@import' z rozwagą, gdyż każde zaimportowanie pliku powoduje dodatkowe żądanie HTTP, co może wpłynąć na czas ładowania strony. Z tego powodu, dla większych projektów, często lepiej jest łączyć wszystkie style w jeden plik podczas produkcji, co można osiągnąć za pomocą narzędzi do kompresji CSS. Użycie '@import' jest zatem zgodne z dobrymi praktykami, szczególnie w fazie rozwoju, gdzie modularność i łatwość w zarządzaniu kodem są priorytetowe.

Pytanie 39

Portal internetowy dysponuje bardzo złożonym systemem stylów, który obejmuje style zewnętrzne, wewnętrzne oraz lokalne. Jak można zagwarantować, że określona cecha zdefiniowana w zewnętrznym stylu jest zawsze stosowana do elementu HTML, niezależnie od bardziej priorytetowych stylów?

A. jako pseudoklasę :active
B. przy pomocy pseudoelementu ::after
C. jako selektor potomka
D. przy pomocy reguły !important
Zdefiniowanie cechy za pomocą selektora potomka, pseudoklasy :active lub pseudoelementu ::after to podejścia, które nie spełniają wymaganego celu w kontekście priorytetyzacji stylów CSS. Selektor potomka odnosi się do elementów, które są zagnieżdżone wewnątrz innych elementów i nie zapewnia on wyższego priorytetu. Na przykład, jeśli mamy regułę `div p { color: blue; }`, a później w innym miejscu `p { color: red; }`, kolor tekstu w elemencie <p> będzie czerwony, niezależnie od tego, że jest on dzieckiem <div>. Pseudoklasa :active dotyczy stanu interakcji z elementem, jak naciśnięcie przycisku. Nie można jej używać do stawiania stylów jako domyślnych, ponieważ działa tylko w momencie aktywacji, co nie spełnia wymogu stałego przypisania stylu. Pseudoelement ::after służy do dodawania treści po elemencie, ale również nie wpływa na priorytet wyświetlania stylów. Użycie tych metod w kontekście prób ustalenia stałych cech stylów może prowadzić do nieporozumień i błędów w kodzie, ponieważ nie zapewniają one odpowiedniej kontroli nad priorytetami, co jest kluczowe w projektowaniu stylów CSS. W praktyce, aby uniknąć konfliktów i nieprzewidywalnych rezultatów, zaleca się odpowiednie planowanie struktury styli oraz przejrzystość w używaniu reguły !important tylko tam, gdzie to absolutnie konieczne.

Pytanie 40

Program FileZilla może być użyty do

A. walidacji strony internetowej
B. publikacji strony internetowej na serwerze
C. zarządzania bazami danych strony internetowej
D. zmiany domyślnych ustawień hostingu dla strony internetowej
Program FileZilla jest popularnym klientem FTP, który umożliwia przesyłanie plików na serwery internetowe, co jest kluczowe przy publikacji stron internetowych. Użytkownicy mogą korzystać z FileZilla do łatwego zarządzania plikami na serwerze, co pozwala na przesyłanie wszystkich niezbędnych plików HTML, CSS, JavaScript oraz multimediów do katalogu głównego serwera. Przykładowo, po zakończeniu prac nad stroną lokalnie, użytkownik może użyć FileZilla do przesłania plików na serwer, co sprawia, że strona staje się dostępna dla internautów. Program wspiera różne protokoły transferu plików, takie jak FTP, FTPS czy SFTP, co zwiększa bezpieczeństwo przesyłania danych, zgodnie z dzisiejszymi standardami. Używając FileZilla, użytkownicy mogą również zarządzać strukturą katalogów na serwerze, co jest zgodne z dobrymi praktykami w zakresie organizacji plików. Poznanie tego narzędzia i jego funkcji jest niezwykle istotne dla każdego, kto planuje publikować treści w internecie.