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: 11 kwietnia 2026 22:26
  • Data zakończenia: 11 kwietnia 2026 22:40

Egzamin zdany!

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

Jakie uprawnienia są konieczne do wykonania oraz przywrócenia kopii zapasowej bazy danych Microsoft SQL Server 2005 Express?

A. Administrator systemu
B. Security users
C. Users
D. Użytkownik lokalny
Aby wykonać i odtworzyć kopię zapasową bazy danych Microsoft SQL Server 2005 Express, wymagane jest posiadanie uprawnień administratora systemu. Administratorzy mają pełny dostęp do wszystkich funkcji i zasobów systemu, co jest kluczowe podczas zarządzania kopiami zapasowymi, które są niezbędne dla bezpieczeństwa i integralności danych. W kontekście SQL Server, administratorzy mogą korzystać z różnych narzędzi, takich jak SQL Server Management Studio (SSMS), aby tworzyć kopie zapasowe baz danych oraz przywracać je w razie potrzeby. Dobrą praktyką jest regularne tworzenie kopii zapasowych, co pozwala na minimalizację ryzyka utraty danych wskutek awarii systemu, błędów ludzkich czy ataków złośliwego oprogramowania. Ponadto, znajomość polityk przechowywania kopii zapasowych, takich jak ich rotacja i przechowywanie w bezpiecznych lokalizacjach, stanowi integralną część zarządzania danymi w organizacji. Warto również pamiętać o testowaniu procesów przywracania danych, aby upewnić się, że w sytuacji kryzysowej dostęp do informacji będzie możliwy w sposób szybki i efektywny.

Pytanie 2

Jaką wartość zwróci funkcja napisana w języku C++, gdy jej argumentami są a = 4 i b = 3?

long int fun1(int a, int b) {
    long int wynik = 1;
    for (int i = 0; i < b; i++)
        wynik *= a;
    return wynik;
}
A. 1
B. 64
C. 16
D. 12
Funkcja fun1 jest przykładem implementacji potęgowania w języku C++. Przyjmuje dwa argumenty: a i b, gdzie a to podstawa, a b to wykładnik. W zmiennej wynik początkowo ustalamy wartość 1. W pętli for, która wykonuje się b razy, wartość a jest mnożona przez wynik. W przypadku przekazania a = 4 oraz b = 3, pętla wykonuje się trzy razy. Przy pierwszym przejściu wynik to 1 * 4 = 4, przy drugim 4 * 4 = 16, a przy trzecim 16 * 4 = 64. W rezultacie funkcja zwraca 64, co odpowiada 4^3. Takie podejście jest typowe w programowaniu, gdzie operacje są wykonywane w pętli, co jest zgodne z zasadami efektywności i prostoty kodu. W praktycznych zastosowaniach, takie funkcje są często wykorzystywane w algorytmach matematycznych, w modelowaniu zjawisk fizycznych czy w obliczeniach finansowych, gdzie potęgowanie jest niezbędne. Zrozumienie tego mechanizmu umożliwia kreatywne rozwiązywanie problemów programistycznych oraz pisanie bardziej zaawansowanych aplikacji.

Pytanie 3

Jakim słowem kluczowym można zainicjować zmienną w JavaScript?

A. new
B. var
C. variable
D. instanceof
W języku JavaScript, deklaracja zmiennej przy użyciu słowa kluczowego 'var' jest jednym z podstawowych i fundamentalnych aspektów programowania. Słowo kluczowe 'var' umożliwia tworzenie zmiennych, które mogą przechowywać wartości zarówno typu prymitywnego, jak i obiektowego. Wartością dodaną użycia 'var' jest to, że zmienne zadeklarowane w ten sposób mają zasięg funkcji, co oznacza, że są dostępne w obrębie funkcji, w której zostały zadeklarowane, jak również w zasięgu globalnym, jeśli zostały zdefiniowane poza funkcją. Przykład użycia 'var': var liczba = 10; zmienna 'liczba' jest teraz dostępna w obrębie całej funkcji. Warto również zauważyć, że w nowszych standardach JavaScript, takich jak ECMAScript 6, wprowadzono dodatkowe słowa kluczowe takie jak 'let' i 'const', które oferują bardziej precyzyjny zasięg blokowy i zwiększają bezpieczeństwo kodu. 'Var' pozostaje jednak ważnym elementem do zrozumienia dla każdego programisty JavaScript, ponieważ jest fundamentem, na którym opiera się wiele starszych i nadal używanych skryptów.

Pytanie 4

Która z poniższych funkcji PHP służy do ładowania pliku z serwera?

A. echo()
B. include()
C. mysqli_connect()
D. parse_str()
Funkcja <code>include()</code> w PHP jest używana do ładowania i wstawiania zawartości jednego pliku PHP do innego. Jest to niezwykle przydatne, gdy pracujemy z wieloma modułami w aplikacji i chcemy zorganizować kod w bardziej zrozumiały sposób. Korzystanie z <code>include()</code> pozwala na ponowne użycie tego samego kodu w wielu miejscach, co jest zgodne z zasadą DRY (Don't Repeat Yourself). Dzięki temu, jeśli mamy wspólną część kodu, jak np. nagłówek strony, możemy umieścić ją w osobnym pliku i dołączyć tam, gdzie jest to potrzebne. To nie tylko oszczędza czas, ale także ułatwia utrzymanie kodu. W przypadku błędów, <code>include()</code> generuje ostrzeżenie, ale nie zatrzymuje wykonywania skryptu, co może być przydatne w niektórych sytuacjach. Z mojego doświadczenia wynika, że jest to jedna z podstawowych funkcji, z którą warto się zapoznać na początku nauki PHP.

Pytanie 5

Na tabeli muzyka, przedstawionej na schemacie, wykonano następującą kwerendę SQL. Co zostanie zwrócone przez tę zapytanie? SELECT wykonawca FROM `muzyka` WHERE wykonawca LIKE 'C%w';

Ilustracja do pytania
A. Czesław, Czechowski
B. Czesław, Niemen
C. pusty wynik
D. Czesław
Analiza błędnych odpowiedzi prowadzi do zrozumienia, dlaczego nie można ich uznać za poprawne w kontekście przedstawionego zapytania SQL. Odpowiedź 'Czesław' sugeruje, że zapytanie zwróci wykonawcę o takim imieniu. W rzeczywistości zapytanie SQL używa wzorca 'C%w', co oznacza, że szuka wykonawców, których imię i nazwisko zaczynają się na 'C' i kończą na 'w'. W tabeli nie ma wykonawcy spełniającego ten warunek. 'Czesław Niemen' mimo poprawnego początku nazwy, nie kończy się na 'w', co wyklucza tę odpowiedź. Podobnie, odpowiedzi sugerujące parę wykonawców, takie jak 'Czesław, Niemen' czy 'Czesław, Czechowski', również nie spełniają kryteriów wzorca, ponieważ żadne z nazwisk nie kończy się na 'w'. Typowym błędem myślowym przy takich zadaniach jest nieuwzględnienie pełnego warunku wzorca i skupienie się tylko na jego części początkowej. Użycie operatora LIKE z symbolem '%' wymaga zrozumienia, że jest to znak wieloznaczny, który pozwala na dowolną liczbę znaków między określonymi literami. Zlekceważenie tego aspektu prowadzi do błędnych wniosków. W praktyce, umiejętność poprawnego formułowania zapytań SQL i zrozumienie działania operatorów takich jak LIKE ma zasadnicze znaczenie dla pracy z bazami danych, szczególnie w kontekście wyszukiwania i filtrowania danych według określonych kryteriów. Prawidłowe wykorzystanie tych umiejętności pozwala na efektywną obsługę dużych zbiorów danych i jest kluczowym elementem skutecznego zarządzania informacją w przedsiębiorstwach i organizacjach.

Pytanie 6

W systemie baz danych hurtowni utworzono tabelę sprzedaz z polami: id, kontrahent, grupa_cenowa, obrot. Jakie polecenie należy zastosować, aby znaleźć jedynie kontrahentów z drugiej grupy cenowej, których obrót przekracza 4000zł?

A. SELECT kontrahent FROM sprzedaz WHERE grupa_cenowa = 2 OR obrot > 4000
B. SELECT kontrahent FROM sprzedaz WHERE grupa_cenowa = 2 AND obrot > 4000
C. SELECT sprzedaz FROM kontrahent WHERE grupa_cenowa = 2 AND obrot > 4000
D. SELECT sprzedaz FROM kontrahent WHERE obrot > 4000
Poprawna odpowiedź to 'SELECT kontrahent FROM sprzedaz WHERE grupa_cenowa = 2 AND obrot > 4000;'. To polecenie SQL precyzyjnie spełnia wymagania postawione w pytaniu, ponieważ korzysta z operatora AND do jednoczesnego filtrowania kontrahentów w drugiej grupie cenowej oraz tych, których obrót przekracza 4000 zł. W praktyce, takie zapytanie jest niezwykle użyteczne w analizie danych w hurtowniach, umożliwiając wyodrębnienie tylko tych kontrahentów, którzy spełniają oba warunki, co jest kluczowe w procesach selekcji kontrahentów do dalszych działań marketingowych czy analizy rentowności. Warto zauważyć, że dobrym nawykiem jest dokładne określenie, które pola chcemy wyświetlić, a w tym przypadku 'kontrahent' wskazuje na konkretne dane, które są istotne dla analizy. Dodatkowo, stosowanie odpowiednich warunków w zapytaniach SQL jest zgodne z najlepszymi praktykami w zakresie optymalizacji wydajności bazy danych, ponieważ pozwala na minimalizację ilości przetwarzanych danych oraz zwiększa przejrzystość wyników.

Pytanie 7

W której superglobalnej tablicy w PHP należy przechowywać informacje dotyczące logowania użytkownika w sposób gwarantujący ich bezpieczeństwo?

A. $_FILES
B. $_SERVER
C. $_COOKIE
D. $_SESSION
Wybór $_COOKIE do przechowywania danych logowania to kiepski pomysł z kilku powodów. Ciasteczka są trzymane po stronie klienta, co znaczy, że mogą być łatwo dostępne dla innych, a to stwarza poważne zagrożenie dla bezpieczeństwa. Na przykład, hakerzy mogą wykraść ciasteczka przez różne techniki, takie jak XSS, co mogłoby prowadzić do nieautoryzowanego dostępu do kont. Poza tym, ciasteczka mają ograniczoną pojemność i użytkownik może je modyfikować, co czyni je nieodpowiednim miejscem na wrażliwe dane. Używanie $_FILES także jest nietrafione, bo ta tablica służy do obsługi plików przesyłanych przez użytkowników, a nie zarządzania sesjami. $_SERVER to z kolei tablica, która ma informacje o serwerze oraz zapytaniach, ale nie nadaje się do trzymania danych użytkowników. Typowym błędem przy wyborze $_COOKIE czy $_SERVER jest to, że nie rozumie się ich funkcji, co może prowadzić do niebezpiecznych sytuacji. Żeby dobrze zabezpieczyć dane logowania, najlepiej korzystać z sesji, bo są zaprojektowane właśnie do tego i oferują znacznie lepszą ochronę.

Pytanie 8

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. liczby wprowadzane z klawiatury do momentu, gdy wczytana zostanie wartość 0
C. wylosowane liczby od 1 do 99
D. losowe liczby od 0 do 100 aż do momentu, gdy wylosowana zostanie wartość 0
Odpowiedź "losowe liczby od 0 do 100 tak długo, aż nie zostanie wylosowana wartość 0" jest poprawna, ponieważ kod źródłowy wykorzystuje funkcję rand(), która generuje losowe liczby z zadanego zakresu, w tym przypadku od 0 do 100. Pętla while działa w taki sposób, że kontynuuje swoje działanie, dopóki zmienna $liczba nie przyjmie wartości 0. Oznacza to, że wszystkie wylosowane liczby, niezależnie od tego, czy są to liczby parzyste, nieparzyste, czy wartości graniczne, będą wyświetlane na ekranie do momentu, aż wylosowana zostanie wartość 0, która przerwie działanie pętli. Przykładem zastosowania tego typu kodu może być generowanie próbki danych w celu testowania algorytmów lub symulacji. Praktyka ta jest zgodna z dobrymi standardami programowania, gdzie często wykorzystuje się losowe dane do różnych celów, takich jak testowanie, analizy statystyczne lub gry. Ponadto, rozumienie jak działa generowanie liczb losowych i kontrola pętli jest podstawową umiejętnością w programowaniu, która pomaga w rozwoju bardziej zaawansowanych aplikacji.

Pytanie 9

W języku Javascript obiekt typu array służy do przechowywania

A. wielu wartości tylko liczbowych
B. wielu wartości lub funkcji
C. wielu wartości tylko tekstowych
D. wielu wartości różnego rodzaju
Obiekt typu array w języku JavaScript jest niezwykle elastycznym narzędziem, które pozwala na przechowywanie wielu wartości dowolnego typu. Arrays mogą zawierać liczby, stringi, obiekty, a nawet inne tablice, w ramach jednego zbioru. Taka struktura danych jest bardzo przydatna w programowaniu, szczególnie w kontekście pracy z danymi, gdyż umożliwia tworzenie kolekcji o zmiennej długości, które można łatwo przetwarzać. Na przykład, w aplikacjach webowych można wykorzystać tablice do grupowania danych z formularzy lub przechowywania wyników zapytań do bazy danych. Dzięki metody takim jak .push(), .pop() czy .map(), programiści mogą łatwo manipulować danymi w tablicach. Ważnym aspektem jest również to, że tablice są obiektami w JavaScript, co oznacza, że można do nich przypisywać dodatkowe właściwości i metody, zwiększając ich funkcjonalność. Przykładem zaawansowanego zastosowania tablic jest wykorzystanie ich do implementacji algorytmów, takich jak sortowanie czy przeszukiwanie danych. Zgodnie z dokumentacją MDN, tablice w JavaScript są dynamiczne, co oznacza, że ich rozmiar może być dostosowywany w czasie działania programu, co czyni je bardzo wszechstronnym narzędziem w pracy programisty.

Pytanie 10

Reguła CSS, która ustawia tekst paragrafu w pionie na środku, to:

A. text-align: center
B. align: middle
C. vertical-align: middle
D. vertical-align: center
Reguła CSS 'vertical-align: middle' jest używana do wyśrodkowywania elementów w obrębie kontenera. Jednak należy zaznaczyć, że 'vertical-align' działa tylko na elementy inline lub inline-block oraz w kontekście komórek tabeli. W przypadku bloków, dla których 'vertical-align' nie ma zastosowania, należy użyć innych metod, takich jak flexbox lub grid. Przykładowo, jeśli mamy tabelę, a w niej komórki z treścią, zastosowanie 'vertical-align: middle' umożliwi wyśrodkowanie tekstu w pionie w obrębie komórek. W praktyce, jeśli mamy następujący HTML: <td style='vertical-align: middle;'>Treść</td>, tekst 'Treść' zostanie wyśrodkowany w pionie wewnątrz komórki. Standardy CSS, takie jak CSS3, definiują to zachowanie, a jego właściwe stosowanie zapewnia lepszą dostępność i estetykę interfejsów użytkownika. Warto również pamiętać, by nie mylić tej reguły z innymi sposobami centrowania, co jest kluczowe dla właściwego formatowania stron internetowych.

Pytanie 11

Tabela gory zawiera dane o polskich wzniesieniach oraz łańcuchach górskich, w których te wzniesienia się znajdują. Aby uzyskać Koronę Gór Polskich, czyli najwyższe wzniesienie w każdym z łańcuchów górskich, należy wykonać kwerendę

A. SELECT pasmo, szczyt, wysokosc FROM gory
B. SELECT pasmo, szczyt, MAX(wysokosc) FROM gory
C. SELECT pasmo, szczyt FROM gory GROUP BY wysokosc
D. SELECT pasmo, szczyt, MAX(wysokosc) FROM gory GROUP BY pasmo
Odpowiedź SELECT pasmo, szczyt, MAX(wysokosc) FROM gory GROUP BY pasmo; jest poprawna, ponieważ wykorzystuje funkcję agregującą MAX, która pozwala na wybranie najwyższego szczytu w każdym paśmie górskim. Grupa pasm górskich jest tworzona za pomocą klauzuli GROUP BY, co jest kluczowe w tym kontekście, ponieważ chcemy uzyskać najwyższy szczyt dla każdej grupy, a nie tylko globalny najwyższy szczyt. W praktyce, takie podejście jest niezwykle użyteczne w analizach geograficznych i tworzeniu raportów, gdzie grupowanie danych według określonych kryteriów pozwala na lepsze zrozumienie struktury danych. W kontekście baz danych, stosowanie funkcji agregujących w połączeniu z klauzulą GROUP BY jest standardową praktyką, co zwiększa efektywność zapytań oraz pozwala na uzyskanie bardziej precyzyjnych wyników. Przykładowo, podobne zapytania mogą być używane w analizach sprzedażowych, gdzie chcemy zobaczyć maksymalną sprzedaż w każdym regionie, co również wymaga grupowania danych według regionów.

Pytanie 12

Głównym celem systemu CMS jest oddzielenie treści portalu informacyjnego od jego wyglądu. Taki efekt osiąga się przez generowanie zawartości

A. ze statycznych plików HTML oraz wyglądu ze zdefiniowanego szablonu
B. z bazy danych oraz wyglądu za pomocą atrybutów HTML
C. z bazy danych oraz wyglądu ze zdefiniowanego szablonu
D. ze statycznych plików HTML oraz wyglądu za pomocą technologii FLASH
Wybór błędnych odpowiedzi wskazuje na niepełne zrozumienie architektury systemów zarządzania treścią. Odpowiedzi sugerujące generowanie zawartości z 'statycznych plików HTML' nie uwzględniają kluczowej zasady, jaką jest elastyczność i efektywność dynamicznego zarządzania treścią. Statyczne pliki HTML są trudne do aktualizacji, co powoduje, że zmiany w treści są czasochłonne i zwiększają ryzyko błędów. Przykładowo, w przypadku wprowadzenia istotnych zmian w treści, takich jak aktualizacje informacji o produktach, każda zmiana wymagałaby ręcznej edycji wielu plików, co jest niepraktyczne i nieefektywne. Ponadto, wykorzystanie technologii FLASH do generowania wyglądu jest przestarzałym podejściem, które nie jest już wspierane przez większość nowoczesnych przeglądarek internetowych. FLASH nie tylko ogranicza dostępność treści na urządzeniach mobilnych, ale także stwarza zagrożenia związane z bezpieczeństwem. Ostatecznie, podejścia te nie są zgodne z najlepszymi praktykami branżowymi, które kładą nacisk na wykorzystanie responsywnych, łatwych w zarządzaniu szablonów i dynamicznych baz danych, co jest kluczowe dla sukcesu nowoczesnych aplikacji internetowych.

Pytanie 13

Fragment kodu powyżej został napisany w języku JavaScript. Co należy umieścić w miejsce kropek, aby program przypisywał wartość 1 co trzeciemu elementowi w tablicy?

for (i = 0; i < T.length; ...)
{
    T[i] = 1;
}
A. i = 3
B. i ++ 3
C. i =+ 3
D. i += 3
Prawidłowa odpowiedź to i += 3 ponieważ w języku JavaScript operator += służy do zwiększania wartości zmiennej o zadany krok. W kontekście pętli for oznacza to że po każdej iteracji zmienna i zostanie zwiększona o 3 co pozwala na przypisanie wartości 1 co trzeciemu elementowi w tablicy. Jest to standardowa praktyka przy iteracji co kilka elementów w tablicy. Użycie += jest preferowane ze względu na jego zwięzłość i czytelność co jest zgodne z dobrymi praktykami programistycznymi. W przypadku tablicy T użycie poprawnego inkrementu i += 3 umożliwi przypisanie wartości tylko do tych elementów które są indeksowane przez wielokrotności liczby 3. Dzięki temu kod jest bardziej czytelny i zgodny z zasadami DRY (Don't Repeat Yourself) pozwalając na efektywne operacje na strukturach danych. Przykładowo jeśli mamy tablicę o długości 9 to po wykonaniu pętli elementy o indeksach 0 3 i 6 zostaną ustawione na wartość 1 co pozwala na efektywne zarządzanie pamięcią i czasem obliczeniowym. Tego typu konstrukcje są podstawą wielu algorytmów iteracyjnych.

Pytanie 14

Określ wynik wykonania poniższego fragmentu kodu JavaScript.

var akapit = document.createElement("p");
document.body.appendChild(akapit);
A. Usunięcie akapitu z treści strony
B. Wyświetlenie okna dialogowego z komunikatem "akapit"
C. Dodanie akapitu na samym końcu strony
D. Wstawienie akapitu na początku strony
Kod JavaScript, który tutaj widzisz, tworzy nowy element paragrafu (p) przy użyciu metody createElement. Potem ten nowy element dodaje się do dokumentu na końcu, przez appendChild do body. To wszystko dotyczy manipulacji DOM, co jest kluczowe w JavaScript. Zrozumienie tych operacji to naprawdę ważna sprawa, bo pozwala na tworzenie dynamicznych, interaktywnych stron internetowych. Dzięki createElement można w czasie rzeczywistym generować nowe elementy HTML, a appendChild pozwala je umieścić w wybranym miejscu na stronie. To są praktyki, które są standardem w dobrym kodowaniu i często wykorzystuje się je w nowoczesnych aplikacjach webowych. Manipulacja DOM to podstawowy temat w technologiach front-endowych i pozwala na zmiany w treści stron bez ich przeładowywania. Kiedy dobrze rozumiesz te techniki, możesz budować bardziej responsywne aplikacje, co teraz jest normą w branży.

Pytanie 15

Jakie będzie efektem zastosowanego formatowania CSS dla nagłówka trzeciego stopnia

<style> h3 { background-color: grey; } </style>

<h3 style="background-color: orange;">Rozdział 1.2.2.</h3>

A. tło nagłówka będzie w odcieniu szarości
B. tło nagłówka będzie pomarańczowe
C. kolor tekstu będzie szary
D. kolor tekstu będzie pomarańczowy
Odpowiedź, że tło będzie pomarańczowe, jest jak najbardziej trafna. W kodzie HTML użyto atrybutu "style" w tagu <h3>, który ma wyższy priorytet niż to, co jest zapisane w sekcji <style>. Wartość background-color to "orange", więc tło nagłówka trzeciego stopnia naprawdę będzie pomarańczowe. Znamy zasady kaskadowych arkuszy stylów, które mówią, że style bezpośrednio przypisane do elementów HTML mają pierwszeństwo. Kiedy chcemy, aby nagłówki miały różne kolory w zależności od tego, gdzie są użyte, inline styles są bardzo przydatne – zwłaszcza w prototypach. Ale z drugiej strony, z mojego doświadczenia, nadmiar inline styles może skomplikować późniejsze zarządzanie kodem, dlatego lepiej trzymać się klas CSS, żeby wszystko było bardziej uporządkowane.

Pytanie 16

W bazie danych znajdują się dwie tabele, które są ze sobą połączone relacją 1..n. Jakiej klauzuli SQL należy użyć, aby uzyskać odpowiadające sobie dane z obu tabel?

A. OUTER LINK
B. AND
C. INNER LINK
D. JOIN
Klauzula JOIN w SQL służy do łączenia tabel w bazie danych, pozwalając na pobranie powiązanych danych z różnych tabel. W przypadku relacji 1..n, przy której jedna tabela (nazwa tabeli `A`) może mieć wiele powiązanych rekordów w drugiej tabeli (nazwa tabeli `B`), klauzula JOIN jest idealna do uzyskania korespondujących wartości z obu tabel. Przykład zastosowania to: SELECT A.*, B.* FROM A JOIN B ON A.id = B.a_id; W powyższym zapytaniu `A.id` to klucz główny tabeli `A`, a `B.a_id` to klucz obcy w tabeli `B`, który odnosi się do `A`. Klauzula JOIN może przyjmować różne formy, takie jak INNER JOIN, LEFT JOIN, RIGHT JOIN, i FULL JOIN, które różnią się sposobem łączenia danych i wynikami. JOIN jest standardem SQL, co oznacza, że jest wspierany przez większość systemów zarządzania bazami danych, takich jak MySQL, PostgreSQL, Oracle, czy Microsoft SQL Server. Użycie klauzuli JOIN jest kluczowe w relacyjnych bazach danych, gdzie dane są rozdzielone w różnych tabelach, ale muszą być analizowane łącznie.

Pytanie 17

Do tabeli pracownicy wpisano rekordy. Co zostanie wyświetlone po uruchomieniu kwerendy SQL SELECT podanej poniżej?

SELECT SUM(pensja) FROM pracownicy WHERE pensja > 4000;
idimienazwiskopensja
1AnnaKowalska3400
2MonikaNowak1300
3EwelinaNowakowska2600
4AnnaPrzybylska4600
5MariaKowal2200
6EwaNowacka5400
A. Wartość 5400, czyli najwyższa pensja pracownika.
B. Wartość 19500, czyli suma wszystkich pensji pracowników.
C. Wartość 10000, czyli suma pensji pracownika o id=4 oraz o id=6.
D. Dwie wartości: 4600 i 5400, jako pensje pracowników wyższe niż 4000.
Gratulacje, twoja odpowiedź jest poprawna. Kwerenda SQL 'SELECT SUM(pensja) FROM pracownicy WHERE pensja > 4000;' jest zapytaniem, które agreguje (suma) wartości kolumny 'pensja' dla tych wierszy, gdzie pensja przekracza 4000. SQL jest językiem, który pozwala na manipulację i odzyskiwanie danych przechowywanych w relacyjnej bazie danych. Funkcja SUM() jest jednym z podstawowych operatorów agregujących w SQL, który zwraca sumę wartości numerycznych. W tym konkretnym przypadku, zgodnie z pytaniem, suma pensji pracowników, którzy zarabiają więcej niż 4000 wynosi 10000. To pokazuje, jak potężne mogą być kwerendy SQL, umożliwiając szybkie wykonanie złożonych obliczeń na dużych zestawach danych. Podejście to jest często stosowane w analizie danych i raportowaniu, gdzie potrzebna jest agregacja danych na różnych poziomach.

Pytanie 18

Przed przystąpieniem do tworzenia kopii zapasowej bazy danych, aby była ona poprawna i zdatna do późniejszego przywrócenia, konieczne jest sprawdzenie

A. uprawnień dostępu do serwera bazy danych
B. opcji udostępnienia bazy danych
C. spójności bazy danych
D. poprawności składni zapytań
Spójność bazy danych to kluczowy aspekt, który należy sprawdzić przed wykonaniem kopii bezpieczeństwa. Oznacza to, że wszystkie dane w bazie muszą być zgodne z ustalonymi regułami i zapewniać prawidłowe relacje między różnymi tabelami oraz rekordami. Na przykład, jeżeli w bazie danych znajdują się relacje między tabelami, to każda referencja musi wskazywać na istniejący rekord. W praktyce, przed wykonaniem kopii zapasowej, administratorzy często przeprowadzają operacje takie jak walidacja danych, aby upewnić się, że nie ma błędów, które mogłyby prowadzić do nieprawidłowych wyników po przywróceniu danych. Dobre praktyki w zarządzaniu bazami danych, takie jak regularne wykonywanie kontroli spójności oraz audytów danych, pomagają zminimalizować ryzyko problemów z danymi. Warto również korzystać z narzędzi automatyzacyjnych, które mogą wykrywać niezgodności w danych, co znacznie ułatwia proces przed wykonaniem kopii zapasowej.

Pytanie 19

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

Ilustracja do pytania
A. Dika, Fuks
B. Anna Kowalska, Jan Nowak
C. Fafik, Brutus, Dika, Fuks
D. Figaro, 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 20

Podaj właściwą sekwencję przy tworzeniu bazy danych?

A. Zdefiniowanie celu, stworzenie tabel, utworzenie relacji, normalizacja
B. Zdefiniowanie celu, utworzenie relacji, stworzenie tabel, normalizacja
C. Zdefiniowanie celu, normalizacja, utworzenie relacji, stworzenie tabel
D. Zdefiniowanie celu, normalizacja, utworzenie tabel, stworzenie relacji
Prawidłowa odpowiedź wskazuje, że pierwszym krokiem w procesie tworzenia bazy danych jest określenie celu, co jest kluczowe dla zrozumienia, jakie dane będą gromadzone i w jaki sposób będą one używane. Następnie, stworzenie tabel to fundament, na którym opiera się cała baza danych. Tabele definiują struktury danych, które będą przechowywane, a ich projektowanie powinno uwzględniać normalizację, czyli proces eliminowania redundancji danych i zapewniania ich integralności. Utworzenie relacji między tabelami jest kolejnym krokiem, który pozwala na efektywne łączenie danych w różnych tabelach, co z kolei umożliwia bardziej złożone zapytania. Normalizacja, będąca ostatnim krokiem, pozwala na optymalizację struktury bazy, co zwiększa wydajność operacji. Przykład zastosowania tej kolejności można zobaczyć w projektowaniu systemów zarządzania bazami danych w przedsiębiorstwach, gdzie dokładne określenie potrzeb biznesowych wpływa na przyszłe modele danych i ich relacje.

Pytanie 21

W formularzu HTML użyto znacznika <input>. Pole to będzie służyło do wprowadzania maksymalnie

<input type="password" size="30" maxlength="20">
A. 20 znaków, które nie są widoczne w polu tekstowym
B. 30 znaków, które są widoczne w trakcie wprowadzania
C. 20 znaków, które są widoczne w trakcie wprowadzania
D. 30 znaków, które nie są widoczne w polu tekstowym
Poprawna odpowiedź to 20 znaków, które nie są widoczne w polu tekstowym. Znacznik <input type="password"> w HTML jest używany do tworzenia pól wprowadzania, w których hasła lub inne wrażliwe dane są maskowane, co oznacza, że wpisywane znaki są pokazywane jako symbole, zwykle kropki. W atrybucie 'maxlength' określa się maksymalną liczbę znaków, które użytkownik może wprowadzić. W tym przypadku, atrybut 'maxlength="20"' oznacza, że użytkownik może wprowadzić maksymalnie 20 znaków, ale nie będą one widoczne w polu tekstowym, co zwiększa bezpieczeństwo. Dobrym przykładem zastosowania tego typu pola jest logowanie do systemów, gdzie ochrona danych użytkownika jest kluczowa. Stosowanie pól typu 'password' jest zgodne z zasadami ochrony prywatności i dobrymi praktykami w zakresie projektowania interfejsów użytkownika, które wymagają maskowania danych w celu minimalizacji ryzyka ich ujawnienia.

Pytanie 22

W stylach CSS, aby ustalić styl linii obramowania jako linię kreskową, należy zastosować wartość

A. groove
B. dotted
C. dashed
D. solid
W stylach CSS, właściwość 'border-style' pozwala na określenie stylu obramowania elementu. Aby ustawić obramowanie jako linię kreskową, stosuje się wartość 'dashed'. Linia kreskowa jest jedną z opcji, które pozwalają na wizualne odróżnienie elementów na stronie internetowej. Wartość 'dashed' generuje obramowanie składające się z przerywanych linii, co czyni go idealnym do wyróżniania elementów, które wymagają uwagi lub są w pewien sposób odrębne. Przykład zastosowania: 'border: 2px dashed black;' tworzy obramowanie o grubości 2 pikseli, w kolorze czarnym, składające się z przerywanej linii. Wartości 'solid', 'dotted', oraz 'groove' oferują inne style obramowania, ale nie generują efektu linii kreskowej. 'Solid' tworzy jednolitą linię, 'dotted' składa się z kropek, a 'groove' daje efekt trójwymiarowego wgłębienia. Standardy CSS, w tym CSS3, precyzują te style, umożliwiając projektantom elastyczność w dostosowywaniu wyglądu stron internetowych, co jest kluczowe dla UX i UI designu.

Pytanie 23

Do czego służy funkcja PHP o nazwie mysql_num_rows?

A. przyporządkować numery rekordom w bazie danych
B. podawać liczbę wierszy, które są w wynikach zapytania
C. oddawać następny rekord z wyników zapytania
D. zwracać rekord, którego numer został przekazany jako parametr funkcji
Funkcja mysql_num_rows w PHP jest kluczowym narzędziem do interakcji z bazami danych MySQL, umożliwiając programistom efektywne zarządzanie danymi. Jej głównym zadaniem jest zwrócenie liczby wierszy, które zostały zwrócone w wyniku zapytania SQL. Jest to niezwykle przydatne w sytuacjach, gdy chcemy ocenić, ile rekordów spełnia określone kryteria, co może być istotne na przykład w przypadku paginacji wyników lub dynamicznego dostosowywania interfejsu użytkownika w zależności od liczby dostępnych danych. Użycie tej funkcji polega na przesłaniu do niej wskaźnika na wynik zapytania, co pozwala na bezpośrednie uzyskanie liczby wierszy bez konieczności przeszukiwania danych. Przykładowo, po wykonaniu zapytania SELECT, aby uzyskać liczbę wierszy, wystarczy użyć: $result = mysql_query('SELECT * FROM tabela'); $liczba_wierszy = mysql_num_rows($result);. Funkcja ta jest zgodna z wytycznymi dotyczącymi standardów SQL i jest szeroko stosowana w aplikacjach webowych, które wymagają efektywnego przetwarzania danych. Należy jednak pamiętać, że mysql_num_rows jest częścią przestarzałego rozszerzenia MySQL, a programiści powinni rozważyć użycie mysqli lub PDO, które oferują lepszą obsługę i bezpieczeństwo.

Pytanie 24

Na serwerze MySQL do odebrania praw użytkownikowi służy polecenie

A. GRANT
B. REVOKE
C. RENAME
D. CREATE
Poprawna komenda do odebrania uprawnień użytkownikowi w MySQL to REVOKE i warto ją sobie dobrze zakodować w głowie, bo w administracji bazą używa się jej naprawdę często. Składnia w najprostszym wariancie wygląda np. tak: REVOKE SELECT, INSERT ON baza.tabela FROM 'user'@'localhost'; – tutaj odbierasz konkretne prawa (SELECT, INSERT) do wskazanej tabeli danemu użytkownikowi. Można też odebrać wszystkie uprawnienia: REVOKE ALL PRIVILEGES, GRANT OPTION FROM 'user'@'localhost';, co jest przydatne, gdy chcesz „odciąć” konto od bazy, ale jeszcze go nie usuwać. Z mojego doświadczenia lepiej jest właśnie ograniczać i porządkować uprawnienia, niż od razu kasować użytkowników, bo często wracasz do tych kont np. w środowisku testowym. W MySQL cały mechanizm praw opiera się na parze GRANT/REVOKE: GRANT nadaje uprawnienia, REVOKE je odbiera. To jest zgodne z dobrymi praktykami bezpieczeństwa – minimalny dostęp, tylko tyle, ile jest faktycznie potrzebne (zasada least privilege). W realnych projektach webowych np. aplikacja PHP powinna mieć konto w MySQL z ściśle ograniczonym zakresem operacji, a gdy zmienia się rola aplikacji, zamiast tworzyć nowe konto „na pałę”, lepiej doprecyzować lub cofnąć stare uprawnienia właśnie przez REVOKE. Warto też pamiętać, że po większych zmianach praw dobrze jest wykonać FLUSH PRIVILEGES w starszych wersjach MySQL lub po modyfikacjach bezpośrednio w tabelach systemowych, chociaż standardowo przy GRANT/REVOKE nie jest to już konieczne. Moim zdaniem opanowanie REVOKE to podstawa świadomej administracji serwerem bazodanowym, szczególnie gdy mówimy o środowiskach produkcyjnych, gdzie każdy nadmiarowy przywilej może być potencjalnym zagrożeniem.

Pytanie 25

Jakiego elementu HTML należy użyć, aby uzyskać tekst z czcionką o stałej szerokości znaku, w którym uwzględnione są dodatkowe spacje, tabulacje oraz znaki końca linii?

A. <code> ... </code>
B. <pre> ... </pre>
C. <blockquote> ... </blockquote>
D. <ins> ... </ins>
Znacznik <pre> w HTML jest używany do wyświetlania tekstu w formacie preformatowanym. Oznacza to, że w tym przypadku przeglądarka internetowa zachowuje wszystkie wprowadzone spacje, tabulacje i znaki końca linii, co jest kluczowe dla prezentacji kodu źródłowego lub tekstu, który wymaga zachowania dokładnej struktury. Element <pre> wyświetla tekst czcionką o stałej szerokości, co ułatwia czytelność, zwłaszcza w kontekście programowania. Na przykład, jeśli chcemy pokazać fragment kodu w HTML, możemy użyć znacznika <pre>, aby zachować wcięcia i dokładną formę kodu. Przykładowy kod HTML może wyglądać tak: <pre>function helloWorld() { console.log('Hello, World!'); }</pre>. Zgodnie z wytycznymi W3C, element <pre> powinien być używany z umiarem, ponieważ może prowadzić do problemów z dostępnością, jeśli jest stosowany w kontekście, w którym nie jest potrzebny. Należy również zwrócić uwagę, że tekst w <pre> nie jest automatycznie dostosowywany do szerokości kontenera, co może być istotne w projektowaniu responsywnym.

Pytanie 26

Jakie wartości powinny mieć zmienne w funkcji z biblioteki mysqli, by ustanowić połączenie z serwerem i bazą danych?

mysqli_connect($a, $b, $c, $d) or die('Brak połączenia z serwerem MySQL.');
A. adres serwera - $a, nazwa bazy danych - $b, login - $c, hasło - $d
B. adres serwera - $c, nazwa bazy danych - $d, login - $a, hasło - $b
C. adres serwera - $c, nazwa bazy danych - $d, login - $b, hasło - $a
D. adres serwera - $a, nazwa bazy danych - $d, login - $b, hasło - $c
Funkcja mysqli_connect w PHP to coś, co trzeba znać, gdy pracuje się z bazami danych MySQL. Wiesz, że musisz podać parametry w odpowiedniej kolejności: najpierw adres serwera, potem nazwę użytkownika, hasło i na końcu nazwę bazy danych. W twoim zadaniu odpowiednie zmienne to: adres serwera jako $a, nazwa bazy jako $d, login jako $b, a hasło jako $c, co pasuje do czwartej opcji. Dobrze to rozumiesz, bo tę funkcję trzeba wywołać w dokładnie takiej kolejności, żeby połączenie z bazą działało. Przykład: gdy korzystasz z lokalnego serwera, to używasz localhost jako $a, użytkownik to root, a hasło powiedzmy, że password, a baza to test_db. W takim razie wyglądałoby to tak: mysqli_connect('localhost', 'root', 'password', 'test_db'). Dobrze przyporządkowane zmienne są kluczowe, bo jak coś pomylisz, połączenie się nie uda i mogą się pojawić błędy. Warto zrozumieć, jak to działa, żeby dobrze programować w PHP z MySQL.

Pytanie 27

Jak wygląda instrukcja przypisania wartości do elementu tablicy w języku JavaScript względem tablicy? ```Tablica['technik'] = 'informatyk';```

A. numerycznej
B. wielowymiarowej
C. asocjacyjnej
D. statycznej
W języku JavaScript tablice mogą być traktowane jako obiekty, a więc wykazują cechy struktur asocjacyjnych. Przypisując wartość do tablicy za pomocą notacji z nawiasami kwadratowymi, jak w przykładzie 'Tablica[\'technik\'] = \'informatyk\';', tworzymy nowy element o kluczu 'technik', co jest charakterystyczne dla obiektów asocjacyjnych. W JavaScript tablice są dynamiczne, co oznacza, że możemy dodawać elementy w dowolny sposób, a ich rozmiar nie jest ustalony z góry. Standard ECMAScript definiuje tablice jako obiekty, gdzie klucze są indeksami liczb całkowitych, ale można również używać stringów jako kluczy, co czyni tablice asocjacyjnymi. Przykładem może być obiekt, który przechowuje różne informacje, a elementy są dostępne zarówno za pomocą indeksów numerycznych, jak i stringów. Warto zaznaczyć, że użycie tablicy jako obiektu asocjacyjnego może być praktyczne w wielu zastosowaniach, np. w przechowywaniu konfiguracji czy zestawów danych. Dobrą praktyką jest jednak ograniczać użycie takich technik dla przejrzystości kodu."

Pytanie 28

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

Ilustracja do pytania
A. encjami
B. polami
C. atrybutami
D. krotkami
W modelowaniu relacyjnych baz danych encje są kluczowymi elementami, które reprezentują obiekty rzeczywistego świata, wokół których zbudowana jest struktura bazy. W przedstawionym diagramie bazy danych biblioteki encjami są czytelnik wypozyczenie i ksiazka. Każda z tych encji posiada swoje własne atrybuty, które opisują jej właściwości na przykład encja czytelnik ma takie atrybuty jak imię nazwisko i adres. W kontekście praktycznym encje są odwzorowywane na tabele w bazie danych gdzie wiersze tabeli reprezentują poszczególne instancje encji a kolumny reprezentują atrybuty. Rozumienie różnicy między encjami a atrybutami jest istotne dla efektywnego projektowania baz danych zgodnie z dobrymi praktykami takimi jak normalizacja, która pomaga unikać redundancji danych. W związku z tym prawidłowe zrozumienie i identyfikacja encji ma kluczowe znaczenie w budowaniu skalowalnych i wydajnych baz danych. W praktyce analizy danych encje są podstawą do tworzenia modeli relacyjnych które umożliwiają generowanie raportów i analizowanie danych w sposób zorganizowany i logiczny

Pytanie 29

W środowisku PHP pobrano z bazy danych rezultat działania zapytania przy użyciu komendy mysql_query. W celu uzyskania z otrzymanej kwerendy jednego wiersza danych, konieczne jest użycie polecenia

A. mysql_field_len
B. mysql_fetch_lengths
C. mysql_list_fields
D. mysql_fetch_row
Odpowiedź 'mysql_fetch_row' jest prawidłowa, ponieważ to funkcja w PHP, która pobiera jeden wiersz danych jako tablicę numeryczną z wyników zapytania SQL. Jest to kluczowy element do pracy z danymi zwróconymi przez bazę danych, gdyż umożliwia nam iterację przez wyniki zapytania. Przykładowo, po wykonaniu kwerendy za pomocą 'mysql_query', używamy 'mysql_fetch_row', aby uzyskać pierwszy wiersz wyników: $row = mysql_fetch_row($result);. W praktyce, korzystając z tej funkcji, możemy odnosić się do poszczególnych kolumn, używając indeksów, co jest efektywne, zwłaszcza przy pracy z dużymi zbiorami danych. Warto pamiętać, że 'mysql_fetch_row' jest jedną z podstawowych funkcji w pracy z bazami danych w PHP, jednak w najnowszych projektach zaleca się korzystanie z rozszerzenia PDO lub MySQLi, które oferują lepsze zabezpieczenia oraz wsparcie dla obiektowego podejścia programowania. To także zgodne z najlepszymi praktykami w zakresie bezpieczeństwa i wydajności aplikacji webowych.

Pytanie 30

Wskaż właściwy zapis polecenia napisanego w języku JavaScript?

A. document.write("Liczba ? z dokładnością do 2 miejsc po przecinku ? " + 3.14 )
B. document.write("Liczba ? z dokładnością do 2 miejsc po przecinku ? " . 3.14 )
C. document.write("Liczba ? z dokładnością do 2 miejsc po przecinku ? " 3.14 )
D. document.write("Liczba ? z dokładnością do 2 miejsc po przecinku ? " ; 3.14 )
Odpowiedź ta jest poprawna, ponieważ używa operatora konkatenacji (+) do połączenia tekstu oraz wartości liczbowej 3.14 w jednej instrukcji document.write. Funkcja document.write jest metodą w Javascript, która umożliwia dynamiczne wstawianie treści HTML do dokumentu. W przykładzie, ciąg tekstowy "Liczba ? z dokładnością do 2 miejsc po przecinku ? " jest poprawnie połączony z wartością liczbową, co skutkuje wyświetleniem na stronie rezultatu, który jest czytelny i zrozumiały dla użytkownika. Warto również zauważyć, że w takich sytuacjach stosuje się również metody formatowania liczb, takie jak toFixed() dla uzyskania precyzyjnych wyników, np. (3.14).toFixed(2) zwróci '3.14'. Zgodność z ECMAScript oraz standardami W3C sprawia, że ta konstrukcja jest zarówno praktyczna, jak i zgodna z najlepszymi praktykami programowania w JavaScript.

Pytanie 31

Efekt przedstawiony w filmie powinien być zdefiniowany w selektorze

A. tr:active { background-color: Pink; }
B. tr { background-color: Pink; }
C. tr:hover { background-color: Pink; }
D. td, th { 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 32

W języku JavaScript funkcja document.getElementById() ma na celu

A. zwrócić odnośnik do pierwszego elementu HTML o określonym id
B. umieścić tekst o treści 'id' na stronie internetowej
C. pobrać dane z pola formularza i zapisać je do zmiennej id
D. sprawdzić poprawność formularza z identyfikatorem id
Metoda document.getElementById() jest jedną z kluczowych funkcji w JavaScript, używaną do interakcji z elementami HTML w dokumentach DOM (Document Object Model). Jej głównym zadaniem jest zwrócenie odniesienia do pierwszego elementu w dokumencie HTML, który posiada określony atrybut id. Atrybut ten powinien być unikalny w obrębie dokumentu, co pozwala na jednoznaczną identyfikację elementu. Przykładowo, jeśli mamy element <div id='myElement'>Witaj świecie</div>, to użycie document.getElementById('myElement') zwróci nam ten konkretny element. Można następnie manipulować tym elementem, zmieniając jego zawartość, styl lub atrybuty, co jest nieocenione w tworzeniu dynamicznych aplikacji webowych. Warto zaznaczyć, że ta metoda jest częścią specyfikacji DOM Level 1 i jest szeroko wspierana przez wszystkie nowoczesne przeglądarki. W kontekście optymalizacji wydajności, uzyskiwanie dostępu do elementów za pomocą ich id jest znacznie szybsze i bardziej efektywne niż stosowanie selektorów CSS. W praktyce, użycie tej metody w kodzie JavaScript jest kluczowe dla wielu operacji DOM, co sprawia, że jest to fundament, na którym opiera się wiele aplikacji webowych.

Pytanie 33

Które wyrażenie należy wstawić w miejsce ??? w pętli zapisanej w języku C++, aby zostały wyświetlone jedynie elementy tablicy tab

int tab[6];
for (int i = 0; ???; i++)
cout << tab[i];
A. i > 6
B. i >= 6
C. i < 6
D. i <= 6
Odpowiedź 'i < 6' jest super, bo w kontekście pętli for w C++ oznacza, że ta pętla będzie działać tak długo, jak zmienna i jest mniejsza od 6. Dzięki temu uda się wyświetlić wszystkie elementy tablicy tab, które są od 0 do 5, czyli w sumie mamy sześć elementów. W praktyce pętle for są bardzo przydatne do przetwarzania tablic, bo ułatwiają przechodzenie przez wszystkie ich elementy. Jak używamy tej konstrukcji, to programista ma pewność, że nie przekroczy granic tablicy, co jest mega ważne dla stabilności apki. Dobrze jest stosować warunki, które jasno określają, do jakiego miejsca pętla ma działać, żeby kod był bardziej czytelny i bezpieczny. W bardziej rozbudowanych programach można pomyśleć o użyciu kontenerów STL, jak std::vector, które same ogarniają rozmiar i iterację.

Pytanie 34

Aby ułatwić wprowadzanie oraz modyfikację danych w tabeli, konieczne jest zdefiniowanie

A. kwerendy SELECT
B. filtra
C. raportu
D. formularza
Odpowiedzi, które nie obejmują formularza, wskazują na pewne nieporozumienia dotyczące sposobu, w jaki użytkownicy wchodzą w interakcje z danymi w bazie danych. Kwerenda SELECT, mimo że jest fundamentalnym narzędziem do pobierania informacji, nie jest odpowiednia do wprowadzania czy edytowania danych. Kwerendy są stosowane głównie do filtrowania i prezentowania danych istniejących, a nie do ich wprowadzania. W kontekście zarządzania danymi, kwerendy powinny być używane w celu analizy danych, a nie ich modyfikacji. Z kolei filtry są narzędziami, które umożliwiają użytkownikom przeszukiwanie i wyświetlanie określonych zestawów danych, ale również nie są przeznaczone do edytowania danych. Filtry są bardziej funkcjonalne w kontekście przeglądania już wprowadzonych informacji, co nie spełnia wymogu prostoty wprowadzania danych. Raporty natomiast są używane do generowania zestawień i podsumowań danych, co jest zupełnie innym procesem niż ich wprowadzanie. Powszechnym błędem jest zrozumienie tych narzędzi jako równoważnych formularzom, co jest mylne. Właściwe podejście do zarządzania danymi w bazach danych wymaga zrozumienia ról różnych narzędzi i ich zastosowań w praktyce, co jest kluczowe dla efektywnego zbierania i zarządzania informacjami.

Pytanie 35

W języku JavaScript funkcja getElementById odnosi się do

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

Pytanie 36

Przedstawione zapytanie SQL przydziela uprawnienie SELECT

GRANT SELECT ON hurtownia.*
TO 'sprzedawca'@'localhost';
A. dla użytkownika root na serwerze sprzedawca
B. do wszystkich kolumn w tabeli hurtownia
C. do wszystkich tabel w bazie hurtownia
D. dla użytkownika root na serwerze localhost
Polecenie GRANT SELECT ON hurtownia.* pozwala na przyznanie prawa do wykonywania operacji SELECT na wszystkich tabelach w bazie danych hurtownia. Użycie symbolu * po nazwie bazy danych wskazuje na wszystkie tabele w tej konkretnej bazie. Jest to standardowe podejście w systemach zarządzania bazami danych takich jak MySQL, gdzie specyfikacja bazy danych z symbolem * oznacza pełny zakres tabel. Praktycznie oznacza to, że użytkownik ma możliwość przeglądania danych ze wszystkich tabel bez możliwości modyfikacji czy usuwania danych. Takie rozwiązanie stosowane jest często w przypadku ról użytkowników, którzy potrzebują jedynie dostępu do raportowania i analizy danych. Dobre praktyki w zakresie zarządzania uprawnieniami zalecają przydzielanie dokładnie takich praw, jakie są potrzebne do wykonania określonych zadań, co ogranicza ryzyko niepożądanych zmian w bazie danych. Warto zaznaczyć, że precyzyjne zarządzanie prawami dostępu jest kluczowe dla bezpieczeństwa danych w każdej organizacji.

Pytanie 37

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

GRANT ALL PRIVILEGES ON klienci TO jan;
REVOKE SELECT, INSERT, UPDATE, DELETE ON klienci FROM jan;
A. Będzie mógł dodawać rekordy do tabeli klienci
B. Będzie mógł zmieniać strukturę tabeli klienci
C. Będzie mógł usuwać rekordy z tabeli klienci
D. Będzie mógł przeszukiwać dane w tabeli klienci
Rozważając inne opcje dostępne w pytaniu warto zwrócić uwagę na zakres uprawnień jakie są zazwyczaj przyznawane użytkownikom baz danych. Uprawnienia takie jak INSERT pozwalają na dodawanie nowych rekordów do tabeli co jest istotne w aplikacjach wymagających częstego aktualizowania danych użytkowników. Jednak w przedstawionym scenariuszu uprawnienia te zostały usunięte poleceniem REVOKE co oznacza że jan nie może wstawiać nowych rekordów do tabeli klienci co zdaje się być częstym nieporozumieniem w interpretacji uprawnień. Podobnie DELETE pozwala na usuwanie rekordów co jest kluczowe w zarządzaniu przestrzenią i utrzymywaniu danych aktualnymi. Jednakże po ponownym rozważeniu zaproponowanego scenariusza widzimy że jan nie ma już tych uprawnień. SELECT z kolei służy do przeszukiwania i wyświetlania danych co jest podstawowym działaniem w analizie danych. Brak tego uprawnienia oznacza brak możliwości przeglądania danych co może być ograniczeniem w pracy z bazą danych. Często mylnie zakłada się że użytkownik posiada wszystkie podstawowe uprawnienia co wynika z niewłaściwego zrozumienia poleceń GRANT i REVOKE. W praktyce administratorzy baz danych muszą precyzyjnie zarządzać uprawnieniami aby zapewnić bezpieczeństwo integralność i wydajność danych co oznacza dokładne zrozumienie i stosowanie poleceń DCL (Data Control Language).

Pytanie 38

W jaki sposób należy ustawić monitor, aby były spełnione zasady ergonomicznej pracy przy stanowisku komputerowym?

A. Monitor powinien stać ekranem do okna w celu ograniczenia odblasków i refleksów świetlnych.
B. Górna krawędź ekranu powinna znajdować się nieco poniżej poziomu oczu użytkownika.
C. Dla osób praworęcznych monitor powinien stać z prawej strony, a dla leworęcznych z lewej strony stanowiska komputerowego. 
D. Monitor powinien być tak ustawiony, by kąt między płaszczyzną monitora, a linią patrzenia na jego środek mieścił się w granicy 80° ÷ 90°.
W ergonomii stanowiska komputerowego łatwo skupić się na pojedynczych intuicyjnych pomysłach, które na pierwszy rzut oka brzmią sensownie, ale po dokładniejszej analizie okazują się po prostu niezgodne z dobrą praktyką. Typowy przykład to ustawianie monitora ekranem do okna „żeby nie było odblasków”. W realnych warunkach takie ustawienie zwykle kończy się tym, że na ekran pada silne światło dzienne, pojawiają się kontrasty, odbicia i refleksy, a użytkownik instynktownie zwiększa jasność monitora do maksimum. Oczy wtedy szybciej się męczą, trudniej odczytać drobny tekst, a po dłuższej pracy pojawia się uczucie „piasku pod powiekami”. Standardy BHP zalecają raczej, by okno znajdowało się z boku stanowiska pracy, a nie bezpośrednio za monitorem ani przed nim. Inne nieporozumienie to pomysł, że ustawienie monitora zależy od tego, czy ktoś jest prawo-, czy leworęczny. Z ergonomicznego punktu widzenia monitor powinien być ustawiony centralnie przed użytkownikiem, tak aby linia patrzenia biegła prosto, bez konieczności ciągłego skręcania szyi. Ręczność ma znaczenie przy ustawieniu myszy, klawiatury czy dokumentów papierowych, ale nie przy położeniu ekranu. Jeżeli monitor stoi wyraźnie z boku, kark jest stale skręcony, co po kilku godzinach pracy dziennie przez miesiące czy lata bardzo niekorzystnie wpływa na kręgosłup szyjny. Pojawia się też czasem przekonanie, że ekran powinien być niemal prostopadły do linii patrzenia, czyli że kąt między płaszczyzną monitora a kierunkiem wzroku ma być bliski 90°. W praktyce człowiek patrzy lekko w dół, a monitor bywa delikatnie odchylony do tyłu, żeby poprawić czytelność obrazu i zmniejszyć odbicia. Sztywne trzymanie się wartości 80–90° ignoruje naturalną pozycję ciała i zalecenia ergonomiczne, które mówią raczej o dopasowaniu ekranu do użytkownika, a nie odwrotnie. Typowy błąd myślowy polega tu na potraktowaniu prostych kątów jako „idealnych” tylko dlatego, że są matematycznie ładne, a nie dlatego, że odpowiadają fizjologii człowieka. Podsumowując, prawidłowe ustawienie monitora opiera się na naturalnej pozycji oczu i kręgosłupa: ekran na wprost, górna krawędź nieco poniżej poziomu oczu, brak bezpośredniego światła z okna na ekran i odległość dopasowana do wielkości monitora. Reszta „magicznych zasad” zwykle wynika z uproszczeń albo z prób rozwiązania jednego problemu kosztem stworzenia kilku kolejnych.

Pytanie 39

Tabele Klienci oraz Zgłoszenia są ze sobą połączone relacją jeden do wielu. W celu uzyskania jedynie opisu zgłoszenia oraz odpowiadającego mu nazwiska klienta dla zgłoszenia o numerze 5, należy wykonać polecenie

Ilustracja do pytania
A. SELECT opis, nazwisko FROM Zgłoszenia JOIN Klienci WHERE Klienci.id = 5
B. SELECT opis, nazwisko FROM Zgłoszenia JOIN Klienci ON Klienci.id = Zgłoszenia.Klienci_id WHERE Zgłoszenia.id = 5
C. SELECT opis, nazwisko FROM Zgłoszenia JOIN Klienci ON Klienci.id = Zgłoszenia.id WHERE Zgłoszenia.id = 5
D. SELECT opis, nazwisko FROM Zgłoszenia JOIN Klienci ON Klienci.id = Zgłoszenia.Klienci_id WHERE Klienci.id = 5
Odpowiedź jest poprawna, ponieważ uwzględnia właściwe połączenie między tabelami Klienci i Zgłoszenia za pomocą klucza obcego Klienci_id w tabeli Zgłoszenia. W relacyjnych bazach danych, gdy chcemy pobrać dane z dwóch tabel powiązanych relacją klucz główny-klucz obcy, używamy klauzuli JOIN. W tym przypadku Klienci_id w tabeli Zgłoszenia odnosi się do kolumny id w tabeli Klienci. Zapytanie SELECT opis, nazwisko FROM Zgłoszenia JOIN Klienci ON Klienci.id = Zgłoszenia.Klienci_id WHERE Zgłoszenia.id = 5; precyzyjnie pobiera kolumny opis i nazwisko z odpowiednich tabel, filtrując wyniki, aby dotyczyły jedynie zgłoszenia o id równym 5. Takie podejście jest zgodne z dobrymi praktykami projektowania relacyjnych baz danych, gdzie separacja danych na tabele pozwala na efektywne zarządzanie związkami między danymi. Korzystając z JOIN, integrujemy te dane w logiczny sposób, co jest fundamentem wydajnych i skalowalnych systemów bazodanowych. Praktyczne zastosowanie tego podejścia można znaleźć w projektowaniu systemów CRM, gdzie dane o klientach i ich zgłoszeniach są regularnie łączone w celu analizy i raportowania.

Pytanie 40

Jaką właściwość należy zastosować w kodzie CSS, aby ustawić czcionkę Verdana?

A. font-style: Verdana;
B. font-name: Verdana;
C. font-weight: Verdana;
D. font-family: Verdana;
Aby ustawić czcionkę Verdana w CSS, musisz użyć właściwości 'font-family'. To taka właściwość, która pozwala na określenie czcionek stosowanych w twoim dokumencie. W tym przypadku, chodzi o 'Verdana'. Jak przeglądarka znajdzie tę czcionkę w systemie użytkownika, to ją użyje. Na przykład, taki kod CSS może wyglądać tak: 'body { font-family: Verdana; }'. Warto pamiętać, że dobrze jest podać też inne czcionki na wypadek, gdyby Verdana nie była dostępna. Można to zrobić, wpisując alternatywy, jak w 'font-family: Verdana, Arial, sans-serif;'. Wtedy, jeżeli 'Verdana' nie jest dostępna, przeglądarka przejdzie do 'Arial', a jak ta też nie, to sięgnie po jakąś standardową czcionkę bezszeryfową. Z moich doświadczeń wynika, że stosowanie właściwości 'font-family' jest kluczowe dla stylu strony, bo poprawia to czytelność i jej ogólny wygląd.