Wyniki egzaminu

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

Egzamin zdany!

Wynik: 25/40 punktów (62,5%)

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 jest zadanie funkcji agregującej AVG w zapytaniu?

SELECT AVG(cena) FROM uslugi;
A. obliczyć średnią arytmetyczną wartości wszystkich usług
B. sprawdzić, ile usług znajduje się w tabeli
C. określić najwyższą wartość spośród cen usług
D. zliczyć całkowity koszt wszystkich usług
Funkcja AVG w SQL jest jednym z podstawowych narzędzi do analizy danych w bazach danych. Jej głównym celem jest obliczenie średniej arytmetycznej wartości w kolumnie, co jest kluczowe w raportowaniu i analizie danych. W zapytaniu SQL SELECT AVG(cena) FROM uslugi; funkcja AVG jest użyta, aby uzyskać średnią cenę wszystkich usług zapisanych w tabeli uslugi. Taka średnia jest przydatna w wielu kontekstach biznesowych na przykład przy tworzeniu raportów finansowych czy analizie kosztów w celu optymalizacji oferty. Średnia arytmetyczna pozwala zrozumieć przeciętną wartość danego zestawu danych co jest istotne w podejmowaniu decyzji. Standardy branżowe zalecają użycie funkcji AVG wszędzie tam gdzie potrzebna jest szybka i efektywna analiza danych liczbowych. Zrozumienie działania funkcji AVG jest kluczowe w pracy z bazami danych SQL gdyż pozwala na bardziej złożone analizy jak np. porównanie średnich z różnych okresów czasu lub segmentów rynku.

Pytanie 2

Definicja obiektu została zapisana w języku JavaScript jako var osoba={imie:"Anna", nazwisko:"Kowalska", rok_urodzenia:1985}; Jak można odwołać się do właściwości nazwisko?

A. osoba[1]
B. osoba::nazwisko
C. osoba[2]
D. osoba.nazwisko
W języku JavaScript obiekty są kluczowymi strukturami danych, które pozwalają na grupowanie danych w formie par klucz-wartość. W omawianym przypadku mamy obiekt osoba, który zawiera trzy właściwości: imie, nazwisko oraz rok_urodzenia. Aby uzyskać dostęp do właściwości nazwisko, należy użyć notacji kropkowej, co jest standardową metodą w JavaScript. Notacja kropkowa jest czytelna i intuicyjna, co czyni ją preferowanym sposobem odwołania się do właściwości obiektu. Przykładowo, aby wyświetlić nazwisko, możemy użyć polecenia console.log(osoba.nazwisko), co zwróci wartość 'Kowalska'. Inna metoda dostępu do właściwości obiektu to notacja z nawiasami kwadratowymi, na przykład osoba['nazwisko'], która również zadziała, ale jest mniej czytelna, zwłaszcza w przypadku kluczy, które zawierają znaki specjalne. Warto podkreślić, że zgodnie z ECMAScript, standardem, na którym bazuje JavaScript, obiekty są fundamentalnym elementem języka, a umiejętność ich wykorzystania jest kluczowa dla każdego programisty.

Pytanie 3

Na ilustracji pokazano relację jeden do wielu. Łączy ona

Ilustracja do pytania
A. klucz obcy rezyserzy_id tabeli filmy z kluczem obcym id tabeli rezyserzy
B. klucz obcy rezyserzy_id tabeli filmy z kluczem podstawowym id tabeli rezyserzy
C. klucz podstawowy id tabeli filmy z kluczem podstawowym id tabeli rezyserzy
D. klucz podstawowy id tabeli filmy z kluczem obcym rezyserzy_id tabeli rezyserzy
Relacja jeden do wielu w bazach danych często wiąże się z sytuacją, gdzie jeden rekord w tabeli nadrzędnej może być powiązany z wieloma rekordami w tabeli podrzędnej. W tym kontekście tabela nadrzędna to rezyserzy posiadająca klucz podstawowy id, natomiast tabela podrzędna to filmy która odnosi się do tej wartości poprzez klucz obcy rezyserzy_id. Klucz podstawowy to unikalny identyfikator rekordu w tabeli, który pozwala na jednoznaczne rozróżnienie każdego rekordu. Klucz obcy natomiast jest atrybutem w tabeli podrzędnej, który odnosi się do klucza podstawowego w tabeli nadrzędnej. Jest to zgodne z teorią normalizacji baz danych, gdzie relacje jeden do wielu są standardowym podejściem do projektowania struktur danych. Użycie klucza obcego pozwala na utrzymanie integralności referencyjnej, co oznacza że każda wartość klucza obcego musi odpowiadać wartości klucza podstawowego w powiązanej tabeli lub być null, jeśli taka relacja jest dozwolona. Praktyczne zastosowanie tej relacji można zaobserwować w systemach zarządzania treścią, gdzie jeden autor (reżyser) może mieć przypisanych wiele artykułów (filmów), jednak każdy artykuł jest przypisany do jednego autora, co umożliwia na przykład efektywne zarządzanie danymi i generowanie raportów o twórczości danego autora.

Pytanie 4

W jakim bloku powinien być umieszczony warunek pętli?

Ilustracja do pytania
A. Opcja B
B. Opcja D
C. Opcja A
D. Opcja C
Odpowiedź C jest prawidłowa ponieważ blok w kształcie rombu jest powszechnie stosowany w schematach blokowych do przedstawiania warunków decyzyjnych W kontekście pętli programistycznych warunek decyzyjny kontroluje jej wykonanie określając kiedy pętla powinna się zakończyć lub kontynuować Romb jako symbol decyzyjny umożliwia zadanie pytania logicznego którego wynik decyduje o dalszym przebiegu algorytmu Na przykład w pętli while warunek jest oceniany przed każdym wykonaniem bloków kodu w pętli co zapewnia że pętla działa dopóki warunek jest spełniony Podobnie w pętli for warunek kontroluje liczbę iteracji poprzez ocenę wyrażenia logicznego przed każdą iteracją Stosowanie rombu do przedstawiania warunków pętli jest zgodne ze standardami modelowania procesów i zwiększa czytelność oraz zrozumiałość schematów blokowych dla programistów i analityków Właściwe umiejscowienie warunku w rombie w strukturze pętli pokazuje zdolność do logicznego modelowania algorytmów co jest kluczowe dla tworzenia efektywnego i niezawodnego oprogramowania

Pytanie 5

Co wchodzi w skład standardowego frameworka?

A. system uruchamiania i przetwarzania akcji oraz certyfikat http
B. przetwarzanie formularzy oraz wbudowany serwer
C. domena oraz obsługa błędów
D. zarządzanie komunikacją z bazą danych, system uruchamiania i przetwarzania akcji
Wybór odpowiedzi, który nie odnosi się do zarządzania komunikacją z bazą danych oraz mechanizmu uruchamiania i przetwarzania akcji, może prowadzić do mylnych przekonań na temat roli frameworków. Na przykład, odpowiedzi dotyczące certyfikatu HTTP i serwera wbudowanego mogą sugerować, że te elementy są kluczowe dla frameworków, podczas gdy w rzeczywistości to mechanizmy, które są bardziej związane z infrastrukturą sieciową i konfiguracją serwera. Certyfikat HTTP jest istotny dla bezpieczeństwa komunikacji, ale nie jest częścią samego frameworka aplikacyjnego. Podobnie, obsługa formularzy jest funkcją, którą wiele frameworków oferuje, lecz nie jest ona wystarczająca do pełnego operowania w kontekście aplikacji webowych. Ponadto, odpowiedź dotycząca domeny i obsługi błędów może wprowadzać w błąd, ponieważ domena to szerszy termin związany z architekturą aplikacji, a obsługa błędów to mechanizm usprawniający interakcję użytkownika, ale nie definiujący samego frameworka. Właściwe zrozumienie roli zarządzania danymi i mechanizmów przetwarzania akcji jest kluczowe dla efektywnego tworzenia aplikacji, które są skalowalne i łatwe w utrzymaniu.

Pytanie 6

Jakie zadania programistyczne należy realizować po stronie serwera?

A. Walidacja danych wpisanych w pole tekstowe w czasie rzeczywistym
B. Zapisanie danych pobranych z aplikacji internetowej do bazy danych
C. Ukrywanie oraz odkrywanie elementów strony w zależności od bieżącej pozycji kursora
D. Zmiana stylu HTML na stronie spowodowana ruchem kursora
Zapis danych z aplikacji internetowej w bazie to super ważna sprawa. Ogólnie mówiąc, to serwer się tym zajmuje. To on trzyma i zarządza informacjami, które wysyłamy, jak się rejestrujemy czy wypełniamy jakieś formularze. Kiedy użytkownik coś wpisuje, te dane muszą lecieć do serwera, gdzie są przetwarzane i lądować w bazie danych. Przykładowo, w relacyjnych bazach danych, jak MySQL czy PostgreSQL, używa się zapytań SQL do zarządzania tymi danymi, co ułatwia ich późniejsze szukanie. Warto też pamiętać o bezpieczeństwie – serwer musi robić walidację danych, żeby nie dać się nabrać na ataki typu SQL Injection. No i architektura MVC świetnie pokazuje, jak ważne jest miejsce serwera dla danych. Zapis danych to po prostu kluczowy element w działaniu aplikacji webowych.

Pytanie 7

W formularzu wartość z pola input o typie number została przypisana do zmiennej a, a następnie przetworzona w skrypcie JavaScript w sposób poniższy

var x = parseInt(a);

Jakiego typu jest zmienna x?

A. NaN
B. napisowego.
C. liczbowe, całkowite.
D. zmiennoprzecinkowego.
Wybór odpowiedzi związanej z NaN jest wynikiem nieporozumienia dotyczącego działania funkcji <span>parseInt()</span> oraz podstawowych typów danych w JavaScript. Kiedy wartość wprowadzona do zmiennej <span>a</span> jest liczbą, a funkcja <span>parseInt()</span> jest używana, to jest mało prawdopodobne, aby wynik był <span>NaN</span>. <span>NaN</span> (Not-a-Number) zwracane jest wtedy, gdy próbujemy przekonwertować na liczbę coś, co nie jest liczbowym ciągiem znaków, jak np. tekst. Na przykład, jeśli użytkownik wpisze "abc" do pola <span>input</span>, wówczas <span>parseInt("abc")</span> zwróci <span>NaN</span>, co jest właściwe. Odpowiedzi dotyczące typów napisowych oraz zmiennoprzecinkowych są również błędne, ponieważ <span>parseInt()</span> nigdy nie zwraca wartości napisowej, a jego celem jest zwrócenie liczby całkowitej. W kontekście zmiennoprzecinkowym, używamy funkcji <span>parseFloat()</span>, aby uzyskać liczbę z ułamkiem. Zdarzenia te często prowadzą do błędnego rozumienia typów danych w JavaScript. Warto zatem zwrócić uwagę na to, że typ danych (w tym przypadku liczba całkowita) jest kluczowym elementem programowania, a dobre praktyki wymagają ścisłego przestrzegania typowania i konwersji danych w celu uniknięcia nieoczekiwanych wyników w kodzie.

Pytanie 8

W języku SQL używanym przez bazę danych MySQL atrybut UNIQUE w poleceniu CREATE TABLE

A. jest używany, jeżeli wartości w danej kolumnie nie mogą się powtarzać
B. jest stosowany jedynie w przypadku kolumn liczbowych
C. uniemożliwia wprowadzenie wartości NULL
D. wymusza niepowtarzalne nazwy kolumn tabeli
W pierwszej niepoprawnej odpowiedzi wspomniano o wymogu unikatowości nazw pól tabeli. To stwierdzenie jest błędne, ponieważ atrybut UNIQUE nie dotyczy nazw kolumn, lecz wartości przechowywanych w tych kolumnach. W SQL możemy mieć wiele kolumn w tabeli o tej samej nazwie, o ile są one częścią różnych tabel. Zatem, atrybut UNIQUE nie ma wpływu na nazywanie kolumn, a jego głównym celem jest zapewnienie unikalności danych. Kolejną nieprawidłową informacją jest stwierdzenie, że atrybut UNIQUE blokuje możliwość wpisania wartości NULL. W rzeczywistości, w MySQL atrybut UNIQUE pozwala na wprowadzenie wartości NULL, ponieważ wartość NULL jest traktowana jako brak danych, co oznacza, że różne rekordy mogą mieć NULL jako wartość w kolumnie oznaczonej przez UNIQUE. Wreszcie, twierdzenie, że atrybut UNIQUE jest stosowany tylko w przypadku pól liczbowych, jest również fałszywe. Atrybut UNIQUE można zastosować do dowolnego typu danych, w tym tekstowych, datowych czy liczbowych. W praktyce, atrybut ten może być używany w różnych kontekstach, aby zapewnić unikalność danych w każdej kolumnie, niezależnie od ich typów.

Pytanie 9

W JavaScript metoda getElementById odnosi się do

A. znacznika HTML o podanej nazwie klasy
B. znacznika HTML o wskazanym id
C. zmiennej numerycznej
D. klasy zdefiniowanej w CSS
Metoda getElementById w JavaScript jest kluczowym narzędziem do interakcji z modelowaniem DOM (Document Object Model). Służy do uzyskiwania dostępu do pojedynczego elementu HTML na podstawie jego atrybutu id, co jest zgodne z zasadą unikalności identyfikatorów w dokumencie HTML. Dzięki temu programiści mogą stosunkowo łatwo manipulować pojedynczymi elementami, co jest istotne w dynamicznych aplikacjach internetowych. Przykładem zastosowania tej metody może być zmiana tekstu w elemencie <h1>, gdzie używamy getElementById('myHeader').innerHTML = 'Nowy nagłówek';. Zgodnie z dobrymi praktykami, powinno się unikać używania zduplikowanych id w dokumencie, aby zapewnić, że metoda ta zawsze zwraca jeden, a nie wiele elementów. Warto również pamiętać, że w przypadku braku elementu o podanym id, metoda zwróci null, co powinno być uwzględnione w logice aplikacji, aby uniknąć błędów. Użycie tej metody jest standardem w programowaniu JavaScript i stanowi fundament dla wielu bardziej zaawansowanych technik manipulacji DOM.

Pytanie 10

W MySQL nadanie roli DBManager użytkownikowi pozwala na uzyskanie praw umożliwiających

A. wszystkie działania na bazach danych oraz użytkownikach serwera
B. wszelkie operacje na bazach danych serwera
C. tworzenie kont użytkowników na serwerze oraz przypisywanie im haseł
D. nadzorowanie serwera
Wybór odpowiedzi, która sugeruje, że rola DBManager przyznaje wszystkie operacje na bazach danych i użytkownikach serwera, jest błędny. Chociaż rola ta rzeczywiście daje szerokie uprawnienia do operacji na bazach danych, nie obejmuje ona zarządzania użytkownikami serwera, co jest kluczowe w kontekście bezpieczeństwa i kontroli dostępu. W rzeczywistości w MySQL, operacje związane z tworzeniem użytkowników i nadawaniem im odpowiednich uprawnień są zarezerwowane dla ról administracyjnych, jak np. root. Zrozumienie tego jest fundamentalne dla właściwego zarządzania bezpieczeństwem w systemach bazodanowych, ponieważ umożliwia to precyzyjne określenie, kto ma dostęp do jakich danych oraz jakie operacje może wykonać. Typowym błędem jest mylenie ról i uprawnień. Użytkownicy muszą zrozumieć, że różne role mają różne poziomy dostępu i odpowiedzialności, co można osiągnąć poprzez odpowiednie przypisywanie uprawnień w oparciu o zasady najmniejszych uprawnień. Również, monitorowanie serwera, które zostało wspomniane jako jedna z odpowiedzi, nie jest związane z rolą DBManager, a zamiast tego wymaga osobnych narzędzi i uprawnień, które pozwalają na analizę wydajności i działania systemu.

Pytanie 11

Jak nazywa się organizacja odpowiedzialna za wyznaczanie standardów dla języka HTML?

A. NASK
B. ISO
C. W3C
D. WYSIWYG
Odpowiedzi ISO, NASK oraz WYSIWYG są niepoprawne w kontekście organizacji zajmującej się ustalaniem standardów dla języka HTML. ISO, czyli Międzynarodowa Organizacja Normalizacyjna, jest globalną organizacją zajmującą się ustalaniem standardów w różnych dziedzinach, takich jak jakości produktów, ale nie koncentruje się na standardach dotyczących technologii webowych. Jej standardy mogą obejmować aspekty techniczne, ale nie są specjalnie ukierunkowane na rozwój języków programowania czy specyfikacji związanych z internetem. NASK, czyli Naukowa i Akademicka Sieć Komputerowa, jest polską organizacją, która skupia się na rozwoju infrastruktury internetowej i usług sieciowych, w tym rejestracji nazw domen, ale nie jest odpowiedzialna za międzynarodowe standardy HTML. Z kolei WYSIWYG, co oznacza 'What You See Is What You Get', to termin odnoszący się do programów edytorskich, które pozwalają na tworzenie treści wizualnych w czasie rzeczywistym, ale nie jest to organizacja ani instytucja zajmująca się standardyzacją języka HTML. W zasadzie WYSIWYG to podejście do edycji treści, a nie struktura organizacyjna. Dlatego żadna z tych odpowiedzi nie odnosi się do kluczowej roli, jaką pełni W3C w kontekście ustalania standardów dla HTML i innych technologii internetowych.

Pytanie 12

W przedstawionym filmie, aby połączyć tekst i wielokąt w jeden obiekt tak, aby operacja ta była odwracalna zastosowano funkcję

A. sumy.
B. grupowania.
C. wykluczenia.
D. części wspólnej.
Prawidłowo – w filmie została użyta funkcja grupowania. W grafice wektorowej, np. w programach typu Inkscape, CorelDRAW czy Illustrator, grupowanie służy właśnie do logicznego połączenia kilku obiektów w jeden „zestaw”, ale bez trwałego mieszania ich geometrii. To znaczy: tekst dalej pozostaje tekstem, wielokąt dalej jest wielokątem, tylko są traktowane jak jeden obiekt przy przesuwaniu, skalowaniu czy obracaniu. Dzięki temu operacja jest w pełni odwracalna – w każdej chwili możesz rozgrupować elementy i edytować każdy osobno. Moim zdaniem to jest podstawowa dobra praktyka w pracy z projektami, które mogą wymagać późniejszych poprawek: podpisy, etykiety, logotypy, schematy techniczne. Jeśli połączysz tekst z kształtem za pomocą operacji boolowskich (suma, część wspólna, wykluczenie), to tekst zwykle zamienia się na krzywe, przestaje być edytowalny jako tekst. To bywa potrzebne przy przygotowaniu do druku czy eksportu do formatu, który nie obsługuje fontów, ale nie wtedy, gdy zależy nam na łatwej edycji. Z mojego doświadczenia: przy projektowaniu interfejsów, ikon, prostych banerów na WWW czy grafik do multimediów, najrozsądniej jest najpierw grupować logicznie elementy (np. ikona + podpis), a dopiero na samym końcu, gdy projekt jest ostateczny, ewentualnie zamieniać tekst na krzywe. Grupowanie pozwala też szybko zaznaczać całe moduły projektu, wyrównywać je względem siebie, duplikować całe zestawy (np. kafelki menu, przyciski z opisami) bez ryzyka, że coś się rozjedzie. W grafice komputerowej to taka podstawowa „organizacja pracy” – mniej destrukcyjna niż różne operacje na kształtach i zdecydowanie bardziej elastyczna przy późniejszych zmianach.

Pytanie 13

Jak brzmi nazwa metody sortowania, która polega na wielokrotnym analizowaniu kolejnych elementów tablicy oraz zamianie miejscami sąsiadujących elementów, aby utrzymać porządek według ustalonej reguły?

A. Sortowanie przez wybór
B. Sortowanie bąbelkowe
C. Sortowanie szybkie
D. Sortowanie kubełkowe
Sortowanie bąbelkowe, znane także jako Bubble Sort, to jedna z najprostszych metod sortowania, która polega na wielokrotnym przechodzeniu przez tablicę i porównywaniu par sąsiadujących elementów. Jeśli dany element jest większy od swojego sąsiada, następuje ich zamiana miejscami. Ta metoda sprawdza tablicę wielokrotnie, aż do momentu, gdy nie są już potrzebne żadne zamiany, co oznacza, że tablica jest posortowana. Przykładem zastosowania sortowania bąbelkowego mogą być sytuacje, gdy mamy do czynienia z niewielkimi zbiorami danych, na przykład w aplikacjach edukacyjnych, które mają na celu naukę podstaw algorytmiki. Warto pamiętać, że mimo swojej prostoty, sortowanie bąbelkowe ma złożoność czasową O(n²), co sprawia, że nie jest efektywne dla dużych zbiorów danych. Mimo to, jego zrozumienie stanowi dobry punkt wyjścia do nauki bardziej zaawansowanych algorytmów sortujących."

Pytanie 14

Jakie zadania programistyczne mogą być realizowane wyłącznie po stronie klienta w przeglądarce?

A. Weryfikacja danych wprowadzanych do pola tekstowego w czasie rzeczywistym
B. Bezpieczne wyświetlenie spersonalizowanej treści strony na podstawie uprawnień użytkownika aplikacji
C. Weryfikacja hasła użytkownika w bazie danych powiązanej z aplikacją internetową
D. Zapis danych z formularza w bazie danych związanej z aplikacją internetową
Wszystkie pozostałe zadania wymagają interakcji z serwerem, co czyni je niewykonalnymi po stronie klienta. Bezpieczne wyświetlenie personalizowanej zawartości strony zgodnie z prawami użytkownika aplikacji wiąże się z koniecznością weryfikacji danych na serwerze. Ta operacja wymaga zrozumienia roli serwera w kontekście bezpieczeństwa i autoryzacji, ponieważ każdy użytkownik może mieć różne uprawnienia do przeglądania zawartości. Zapisanie danych pobranych z formularza w bazie danych również odbywa się po stronie serwera, gdzie następuje walidacja i przetwarzanie danych. Bazy danych są złożonymi systemami, które zapewniają integralność i bezpieczeństwo, a ich użycie wymaga odpowiednich zapytań SQL, które są wykonywane na serwerze. Podobnie, sprawdzenie hasła użytkownika w bazie danych wymaga komunikacji z serwerem, gdzie hasło jest porównywane z zapisanym hasłem w sposób bezpieczny, zazwyczaj poprzez haszowanie. To podejście jest zgodne z najlepszymi praktykami w zakresie bezpieczeństwa aplikacji webowych, a wszelkie operacje dotyczące integralności danych powinny być wykonywane w środowisku serwerowym, aby zapobiec potencjalnym atakom, takim jak SQL Injection. Właściwe zrozumienie rozróżnienia między operacjami po stronie klienta i serwera jest kluczowe dla tworzenia wydajnych, bezpiecznych aplikacji internetowych.

Pytanie 15

Aby stworzyć szablon strony z trzema ustawionymi obok siebie kolumnami, można użyć stylu CSS.

A. .kolumny { float: left; width: 40%; }
B. .kolumny { float: left; width: 33%; }
C. .kolumny { float: right; height: 33%; }
D. .kolumny { clear: both; height: 33%; }
Twoja odpowiedź jest prawidłowa. W CSS do tworzenia szablonu strony z trzema kolumnami ustawionymi obok siebie stosuje się właściwość 'float: left;', a dodatkowo ustawia się szerokość każdej kolumny na 'width: 33%;'. Ta technika pozwala na równomierne rozmieszczenie trzech kolumn w poziomie na stronie. Właściwość 'float' służy do opływania elementów strony, a właściwość 'width' umożliwia kontrolę nad szerokością elementów. To są standardy w branży w projektowaniu stron internetowych. W stylach CSS zawsze powinniśmy starać się zapewnić jak najbardziej płynne i spójne doświadczenia dla użytkowników, a ten sposób tworzenia szablonów trzech kolumn jest jednym z niezbędnych narzędzi w naszym arsenale. Pamiętaj, że zrozumienie i umiejętne stosowanie CSS jest kluczowe dla tworzenia estetycznych i funkcjonalnych stron internetowych.

Pytanie 16

W edytorze grafiki wektorowej zbudowano kształt, który składa się z dwóch figur: trójkąta oraz koła. Aby uzyskać ten kształt, po narysowaniu figur i ich odpowiednim ustawieniu, trzeba użyć funkcji

Ilustracja do pytania
A. wykluczenia
B. różnicy
C. sumy
D. rozdzielenia
Funkcja sumy w programach do grafiki wektorowej, takich jak Adobe Illustrator czy CorelDRAW, pozwala na połączenie dwóch lub więcej kształtów w jeden obiekt. To takie sprytne narzędzie! Sumowanie, znane też jako unia lub łączenie ścieżek, integruje geometrię wszystkich wybranych kształtów. Na przykład, jak narysujesz trójkąt i koło, a potem je odpowiednio ustawisz, to używając funkcji sumy, stworzysz nowy kształt, który obejmuje całą powierzchnię obu figur. Często to robi się przy projektowaniu logo, gdzie trzeba uprościć złożone kształty do jednej ścieżki. Taki sposób działania jest przyjęty w branży, bo ułatwia tworzenie czytelnych grafik, które są łatwe do edytowania. A co najważniejsze, połączenie figur w jedną upraszcza późniejsze zmiany i wpisuje się w zasady projektowania minimalistycznego, dzięki czemu można robić przejrzyste kompozycje. Warto mieć na uwadze, że takie podejście też ułatwia drukowanie i wycinanie, co jest mega ważne w produkcji materiałów reklamowych czy wyrobów przemysłowych.

Pytanie 17

Który z poniższych kodów HTML spowoduje taki sam efekt formatowania jak na zaprezentowanym rysunku?

Ilustracja do pytania
A. <p>W tym <i>paragrafie <b>zobaczysz</b> sposoby formatowania </i> tekstu w HTML</p>
B. <p>W tym <i>paragrafie zobaczysz sposoby formatowania</i> tekstu w HTML</p>
C. <p>W tym <i>paragrafie </i><b>zobaczysz</b><i> sposoby formatowania</i> tekstu w HTML</p>
D. <p>W tym <b>paragrafie <i>zobaczysz</i> sposoby formatowania</b> tekstu w HTML</p>
W błędnych odpowiedziach chodzi głównie o to, że znaczników HTML używasz niepoprawnie, przez co efekt wygląda inaczej niż na obrazku. Tag <i> ma być do kursywy, a <b> do pogrubienia. Trzeba zrozumieć, jak te znaczniki współdziałają, żeby uzyskać zamierzony efekt. Często ludzie mylą kolejność lub używają tylko jednego z nich, co psuje całe formatowanie. No i nie zapominaj, że czasem może być trudno zrozumieć, jak znacznik w HTML wpływa na inne. Każdy z nich ma swoją rolę, więc warto wiedzieć, co robi. W kontekście semantycznego HTML, dobrze jest używać odpowiednich znaczników nie tylko dla stylu, ale też dla poprawnej struktury. Chociaż najlepiej jest używać CSS do rozdzielenia stylów od treści, to w niektórych przypadkach, tak jak w tym, proste znaczniki HTML też mają swoje miejsce. Wiedza o tym, jak poprawnie używać znaczników, jest niezbędna do budowania ładnych i uporządkowanych stron oraz aplikacji internetowych.

Pytanie 18

W CSS zapis

a[target="_blank"] {color: yellow;}
spowoduje, że tekst linków przybierze kolor żółty.
A. wszystkich linków.
B. linków, które otwierają się w nowej karcie.
C. treści akapitu.
D. linków, które otwierają się w tej samej karcie.
Odpowiedź 'odnośników, które otwierają się w osobnej karcie' jest poprawna, ponieważ w CSS selektor 'a[target="_blank"]' odnosi się do elementów <a> (odnośników), które mają atrybut 'target' ustawiony na '_blank'. Oznacza to, że te odnośniki są zaprojektowane do otwierania linków w nowej karcie lub oknie przeglądarki. Przykład zastosowania: jeśli tworzymy stronę internetową z odnośnikami do zewnętrznych zasobów, użycie atrybutu 'target="_blank"' pozwala użytkownikom na zachowanie otwartej strony w przeglądarce. W CSS, kolor czcionki tych odnośników został ustawiony na żółty, co jest praktycznym podejściem do wyróżnienia ich w stosunku do innych linków. Warto również zauważyć, że stosowanie kolorów w kontekście dostępności jest istotne, dlatego dobór kolorów powinien być przemyślany, aby nie wpłynąć negatywnie na czytelność. Dobre praktyki obejmują również dodanie wskazówki do odnośnika, na przykład poprzez użycie atrybutu 'title', co jeszcze bardziej ułatwia użytkownikom zrozumienie, czego mogą się spodziewać po kliknięciu w link.

Pytanie 19

W przypadku podanego fragmentu kodu walidator HTML zgłosi błąd, ponieważ <img src="kwiat.jpg alt="kwiat">

A. użyto niewłaściwego znacznika do wyświetlenia obrazu
B. zastosowano nieznany atrybut alt
C. brak obrazu kwiat.jpg
D. nie zamknięto cudzysłowu
W przedstawionym kodzie HTML występuje błąd związany z niedomknięciem cudzysłowu dla atrybutu 'src'. Prawidłowa składnia powinna wyglądać następująco: <img src="kwiat.jpg" alt="kwiat">. Brak cudzysłowu po 'kwiat.jpg' uniemożliwia poprawne zinterpretowanie kodu przez przeglądarki, co skutkuje błędem walidacji. Zasady walidacji kodu HTML są zgodne z wytycznymi W3C, które zalecają, aby każdy atrybut był zamknięty cudzysłowem. Poprawność kodu nie tylko wpływa na jego działanie, ale również na dostępność strony oraz SEO. Użytkownicy, którzy poruszają się po stronach bez pełnej obsługi HTML, mogą napotkać problemy z wyświetlaniem obrazów. W praktyce, zawsze warto stosować dobregi praktyki kodowania, takie jak użycie linterów do sprawdzania poprawności kodu przed jego publikacją, aby uniknąć takich błędów.

Pytanie 20

Semantyczny znacznik sekcji języka HTML 5 przeznaczony do umieszczenia stopki strony WWW to

A. <aside> 
B. <header>
C. <footer>
D. <figcaption>
Poprawna odpowiedź to <footer>, bo właśnie ten znacznik w HTML5 jest semantycznie przeznaczony na stopkę strony lub stopkę sekcji. W specyfikacji HTML5 wyraźnie podkreślono, że <footer> służy do umieszczania informacji końcowych: praw autorskich (copyright), linków do polityki prywatności, kontaktu, autorów, krótkich podsumowań czy nawigacji pomocniczej. Moim zdaniem warto traktować <footer> jak miejsce na „meta‑informacje” o stronie albo o danej części dokumentu. Co ważne, <footer> nie musi występować tylko raz – możesz mieć stopkę całej strony w obrębie <body>, ale też osobne stopki np. dla artykułu (<article>) czy sekcji (<section>). To jest dobra praktyka, bo poprawia strukturę dokumentu i czytelność kodu. W praktyce wygląda to np. tak: <footer><p>© 2026 Firma XYZ</p><nav><a href="/regulamin">Regulamin</a> | <a href="/kontakt">Kontakt</a></nav></footer>. Czytniki ekranowe i roboty wyszukiwarek lepiej rozumieją wtedy, że ta część strony to zakończenie i informacje dodatkowe. To się przekłada na lepszą dostępność (WCAG) i trochę sensowniejsze SEO. Z mojego doświadczenia warto pilnować, żeby nie wrzucać do <footer> całej reszty layoutu, tylko właśnie elementy typowo „stopkowe”. Dobrą praktyką jest też trzymanie się spójnej struktury na wszystkich podstronach, żeby użytkownik intuicyjnie wiedział, że w stopce znajdzie np. link do pliku RODO albo dane firmy. HTML5 mocno stawia na semantykę, więc używanie <footer> zamiast jakiegoś bezsensownego <div id="stopka"> to po prostu nowocześniejsze i zgodne ze standardami podejście.

Pytanie 21

Jaki będzie rezultat po uruchomieniu podanego skryptu?

class Owoc {
    function __construct() {
        echo "test1";
    }
    function __destruct() {
        echo "test2";
    }
}
$gruszka = new Owoc();
A. Pojawi się wyłącznie tekst „test2”
B. Nie pojawi się żaden tekst
C. Pojawi się jedynie tekst „test1”
D. Pojawią się oba teksty: „test1” i „test2”
Wybór błędnych odpowiedzi może wynikać z tego, że nie do końca rozumiesz, jak działają konstruktory i destruktory w programowaniu obiektowym. Nie jest tak, że nie ma żadnego napisu, bo nawet jeżeli nie stworzysz obiektu, to przy końcu skryptu destruktor powinien się uruchomić i wtedy wyświetli się 'test2'. Tak że, gdy mówisz, że tylko 'test1' się pokaże, to nie bierzesz pod uwagę, co się dzieje po zakończeniu skryptu. I to, co napisałeś, że tylko 'test2' się wyświetli, też nie jest prawdą, bo konstruktor musi być wywołany, kiedy robi się obiekt. Zrozumienie tych wszystkich spraw jest naprawdę ważne, by dobrze zarządzać danymi w aplikacjach, zwłaszcza w większych projektach, gdzie jest masa obiektów i różne interakcje między nimi.

Pytanie 22

Zdefiniowano funkcję w języku PHP:

function policz($Z) { 
while($Z < 5) {
$Z += 2 * $Z + 1;
}
return $Z;
}
Funkcja policz została wywołana z parametrem $Z = 1. Jaki rezultat zostanie zwrócony?
A. 7
B. 1
C. 4
D. 13
W przypadku analizy odpowiedzi 7, 4 i 1 można zauważyć, że w każdym z tych przypadków nie uwzględniono pełnych obliczeń zachodzących w pętli while. Odpowiedź 7 może sugerować, że po pierwszej iteracji pętli przyjęto, że $Z przestaje być aktualizowane w kolejnych krokach, co jest nieprawidłowe. W rzeczywistości, wartości $Z są stale aktualizowane w każdej iteracji pętli, co prowadzi do znacznie większych wyników. Z kolei odpowiedź 4 pomija fakt, że po pierwszym obliczeniu $Z wynosi 4, ale nie jest to wartość końcowa, ponieważ pętla nie kończy się, dopóki warunek jest spełniony. Ostatecznie, odpowiedź 1 ignoruje całkowicie logikę funkcji i powtarzanie obliczeń, co prowadzi do błędnych założeń. Często przy takich zadaniach błędy myślowe wynikają z niewłaściwego zrozumienia działania pętli oraz mechanizmu aktualizacji zmiennej. Kluczowe jest, aby dokładnie przeanalizować każdy krok pętli i unikać pośpiechu w obliczeniach. W programowaniu należy zwracać uwagę na każde wyrażenie oraz jego konsekwencje dla dalszego działania algorytmu, aby nie przeoczyć istotnych zmian zachodzących w danych.

Pytanie 23

Jakie dane zostaną wybrane po wykonaniu poniższej kwerendy na pokazanych rekordach?

SELECT id FROM samochody WHERE rocznik LIKE "2%4";

idmarkamodelrocznik
1FiatPunto2016
2FiatPunto2002
3FiatPunto2007
4OpelCorsa2016
5OpelAstra2003
6ToyotaCorolla2016
7ToyotaCorolla2014
8ToyotaYaris2004
A. Tylko id równe 8
B. Brak danych
C. Pole id równe 7 oraz 8
D. Wszystkie id
Odpowiedź jest prawidłowa, ponieważ zapytanie SQL SELECT id FROM samochody WHERE rocznik LIKE '2_4'; filtruje rekordy, które mają w kolumnie rocznik wartość z drugą cyfrą równą '2' i czwartą cyfrą równą '4'. W złożonym zapytaniu SQL zastosowano operator LIKE z użyciem symbolu podkreślenia (_) jako symbolu zastępczego dla pojedynczego znaku. To oznacza, że szukamy dowolnego roku, który zaczyna się od cyfry '2', ma dowolną cyfrę na drugiej pozycji i cyfrę '4' na ostatniej pozycji. Praktycznie oznacza to, że wybierane są identyfikatory pojazdów, które mają rocznik odpowiadający temu wzorcowi. W dostarczonym zbiorze danych tylko rekordy o id 7 i 8 spełniają ten warunek, ponieważ rocznik to 2014 i 2004. Tego rodzaju konstrukcja SQL jest użyteczna w sytuacjach, gdy potrzebujemy selektywnie uzyskać dane na podstawie wzorców. Operator LIKE jest bardzo efektywny w analizie danych tekstowych w bazach danych np. w raportach analitycznych gdzie kluczowe jest wyszukiwanie na podstawie wzorców. Warto zaznaczyć, że takie podejście jest zgodne ze standardami SQL, ułatwiającymi zarządzanie i filtrowanie danych w złożonych systemach bazodanowych.

Pytanie 24

W systemie zarządzania bazami danych MySQL komenda CREATE USER pozwala na

A. zmianę hasła dla już istniejącego użytkownika
B. stworznie nowego użytkownika oraz przydzielenie mu uprawnień do bazy
C. utworzenie użytkownika
D. pokazanie danych o istniejącym użytkowniku
Polecenie CREATE USER w MySQL jest używane do tworzenia nowych użytkowników w systemie baz danych. W kontekście zarządzania bazami danych, kluczowym aspektem jest kontrola dostępu, a odpowiednie zdefiniowanie użytkowników jest niezbędne dla zapewnienia bezpieczeństwa danych. Używając CREATE USER, administrator bazy danych może zdefiniować nazwę użytkownika oraz powiązane z nią hasło, co stanowi pierwszy krok w procesie zarządzania uprawnieniami. Dobrą praktyką jest stosowanie silnych haseł oraz nadawanie użytkownikom tylko tych uprawnień, które są im rzeczywiście potrzebne do wykonania ich zadań. Na przykład, w przypadku aplikacji webowych często tworzy się specjalnych użytkowników z ograniczonymi prawami dostępu, co minimalizuje ryzyko nieautoryzowanego dostępu do wrażliwych danych. Warto pamiętać, że po utworzeniu użytkownika, można wykorzystać polecenia GRANT, aby przyznać mu odpowiednie uprawnienia do konkretnych baz danych lub tabel, co pozwala na precyzyjne zarządzanie dostępem. Ponadto, MySQL pozwala na tworzenie użytkowników z różnymi poziomami dostępu, co jest kluczowe dla organizacji z wieloma działami oraz różnorodnymi potrzebami w zakresie bezpieczeństwa danych.

Pytanie 25

Poniższy fragment kodu PHP służy do zarządzania

if (empty($_POST["name"])) {
    $nameErr = "Name is required";
}
A. formularzami
B. ciasteczkami
C. bazami danych
D. sesjami
Kod PHP obsługujący formularz często bywa mylony z innymi procesami ze względu na podobieństwo składniowe oraz zastosowanie tych samych superglobalnych tablic. Jednakże w przykładzie przedstawionym w pytaniu użycie $_POST jednoznacznie wskazuje na interakcję z danymi przesyłanymi z formularza. Kod nie dotyczy ciasteczek, które używają tablicy $_COOKIE do operacji związanych z przechowywaniem małych ilości danych w przeglądarce klienta. Również nie obejmuje zarządzania sesjami, które w PHP realizowane jest poprzez tablicę $_SESSION oraz funkcje takie jak session_start(), służące do przechowywania danych użytkownika pomiędzy różnymi żądaniami. Bazy danych natomiast operują na zupełnie innych mechanizmach i wymagają specyficznych funkcji oraz rozszerzeń, jak MySQLi czy PDO, do interakcji z systemami zarządzania bazami danych. Częstym błędem jest przypisywanie funkcji walidacyjnych formularzy również do innych komponentów aplikacji, co może prowadzić do mylnych wniosków na temat ich roli i zastosowania. Zrozumienie różnic między tymi elementami jest kluczowe dla poprawnego projektowania i implementacji aplikacji webowych, zapewniając ich bezpieczeństwo i poprawne działanie. Kod PHP powinien być pisany z uwzględnieniem zasad separacji logiki aplikacyjnej, aby każda część systemu była odpowiedzialna za specyficzne zadania, co ułatwia utrzymanie i rozwój aplikacji.

Pytanie 26

W relacyjnych bazach danych dane zapisywane są w

A. wektorach.
B. kolejkach.
C. listach.
D. tabelach.
W relacyjnych bazach danych dane są przechowywane w tabelach, bo cały model relacyjny opiera się właśnie na pojęciu tabeli (relacji). Tabela to po prostu uporządkowany zbiór wierszy i kolumn: kolumny opisują strukturę danych (np. id, imię, nazwisko, email), a wiersze przechowują konkretne rekordy, czyli pojedyncze wpisy. Każda kolumna ma określony typ danych, np. INTEGER, VARCHAR, DATE, co pozwala silnikowi bazy danych kontrolować poprawność zapisów i optymalizować zapytania. Tak to działa w typowych systemach jak MySQL, PostgreSQL, SQL Server czy Oracle – wszędzie podstawową jednostką przechowywania danych użytkownika jest tabela. W praktyce, kiedy projektujesz bazę dla sklepu internetowego, tworzysz tabele takie jak users, products, orders, order_items. Potem za pomocą języka SQL wykonujesz na tych tabelach operacje SELECT, INSERT, UPDATE, DELETE. Klucze główne i obce też odnoszą się do tabel – klucz główny jednoznacznie identyfikuje wiersz w tabeli, a klucz obcy wskazuje na wiersz w innej tabeli, tworząc relację między nimi. To właśnie dzięki tabelom i relacjom możesz łączyć dane z wielu miejsc, np. pobrać zamówienia wraz z danymi klienta jednym zapytaniem. Moim zdaniem warto od początku myśleć o tabeli jak o odpowiedniku arkusza w Excelu, tylko z dużo bardziej rygorystycznymi zasadami i możliwością zaawansowanych zapytań. Standard SQL zakłada, że operujemy na relacjach, a w implementacjach relacja = tabela. Dlatego odpowiedź „tabelach” jest zgodna zarówno z teorią modelu relacyjnego, jak i z praktyką codziennej pracy z bazami danych.

Pytanie 27

Dzięki poleceniu ALTER TABLE można

A. skasować tabelę
B. zmieniać strukturę tabeli
C. zmieniać wartości rekordów
D. usunąć rekord
Polecenie ALTER TABLE jest kluczowym elementem w zarządzaniu bazami danych, umożliwiającym wprowadzanie zmian w strukturze istniejących tabel. Dzięki temu poleceniu możemy dodawać nowe kolumny, zmieniać typy danych istniejących kolumn, usuwać kolumny, a także zmieniać ograniczenia, takie jak klucze główne czy obce. Na przykład, w przypadku potrzeby dodania kolumny 'data_urodzenia' do tabeli 'użytkownicy', można użyć komendy: ALTER TABLE użytkownicy ADD data_urodzenia DATE;. Zmiany strukturalne są niezbędne, aby dostosować bazę danych do ewoluujących potrzeb aplikacji oraz do zapewnienia integralności danych. W praktyce, operacje te są często stosowane przy modernizacji aplikacji lub w odpowiedzi na zmieniające się wymagania biznesowe. Dobre praktyki wskazują, że przed wprowadzeniem zmian w strukturze tabeli warto wykonać kopię zapasową danych oraz przeanalizować wpływ tych zmian na istniejące zapytania i aplikacje, które korzystają z danej tabeli.

Pytanie 28

Przygotowując raport w systemie zarządzania relacyjnymi bazami danych, można uzyskać

A. analizę wybranych danych
B. aktualizowanie danych w tabelach
C. usuwanie danych z tabel
D. dodawanie danych do tabel
W kontekście systemów obsługi relacyjnych baz danych, raportowanie odgrywa kluczową rolę w analizie danych. Wykonywanie raportu umożliwia użytkownikom dostęp do wybranych informacji, co pozwala na podejmowanie świadomych decyzji opartych na danych. Analiza danych to proces przetwarzania informacji w celu wydobycia wartościowych wniosków. Przykłady zastosowania to generowanie raportów sprzedażowych, finansowych czy analizy trendów klientów. W raportach można wykorzystać różne techniki, takie jak filtrowanie, grupowanie czy agregowanie danych, co umożliwia prezentację wyników w przystępnej formie graficznej. Dodatkowo, standardy takie jak SQL (Structured Query Language) są powszechnie używane do wykonywania zapytań w relacyjnych bazach danych, co pozwala na efektywne przeszukiwanie i analizowanie danych. W praktyce, raporty mogą być generowane na podstawie zapytań do bazy danych i mogą obejmować różne parametry, co zwiększa ich użyteczność w podejmowaniu decyzji strategicznych i operacyjnych.

Pytanie 29

Określ na podstawie diagramu, jaką liczebność należy zdefiniować przy związku pomiędzy encjami Podręcznik i Wydawnictwo zakładając, że dane dotyczące różnych podręczników odpowiadają jednemu wydawnictwu.

Ilustracja do pytania
A. N-1 (N przy encji Podręcznik, 1 przy encji Wydawnictwo)
B. 1-N (1 przy encji Podręcznik, N przy encji Wydawnictwo)
C. 1-1 (1 przy encji Podręcznik, 1 przy encji Wydawnictwo)
D. M-N (M przy encji Podręcznik, N przy encji Wydawnictwo)
Opisany w pytaniu związek jasno sugeruje sytuację, w której wiele różnych podręczników jest powiązanych z jednym wydawnictwem. To typowy przypadek relacji N–1, czyli wiele‑do‑jednego z punktu widzenia encji Podręcznik. Błędne odpowiedzi wynikają zwykle z pomylenia kierunku patrzenia na relację albo z prób „uogólnienia” modelu ponad to, co naprawdę wynika z założeń. Relacja 1–1 między Podręcznik a Wydawnictwo oznaczałaby, że każdemu wydawnictwu odpowiada dokładnie jeden podręcznik i odwrotnie. To kompletnie nie pasuje do realnego świata, gdzie wydawnictwa mają całe katalogi książek. W modelowaniu danych 1–1 stosuje się rzadko, raczej do technicznego dzielenia tabeli, a nie do takich typowo biznesowych bytów jak książka i wydawnictwo. Odpowiedź 1–N jest myląca, bo odwraca kierunek: oznaczałaby, że pojedynczy podręcznik jest powiązany z wieloma wydawnictwami. To byłby przypadek, gdzie ten sam egzemplarz podręcznika ma kilku wydawców jednocześnie, co jest sprzeczne z treścią zadania. Czasem ktoś myli tu pojęcie „wiele wydań w różnych wydawnictwach”, ale wtedy relacja i tak jest między wydaniem a wydawnictwem, a nie między jednym podręcznikiem a wieloma wydawnictwami w tym samym modelu. Z kolei M–N (lub M–N/M–N w różnych notacjach) opisuje sytuację, w której wiele podręczników może być powiązanych z wieloma wydawnictwami i wymagałaby dodatkowej tabeli asocjacyjnej. To podejście jest stosowane np. przy relacji Student–Przedmiot, ale tutaj zadanie wyraźnie mówi, że różne podręczniki „odpowiadają jednemu wydawnictwu”, więc nie ma podstaw do wprowadzania związku wiele‑do‑wielu. Typowy błąd myślowy polega na tym, że ktoś próbuje projektować „na zapas” i zakłada wszystkie możliwe warianty, zamiast trzymać się dokładnie specyfikacji i odróżniać kierunek relacji: z perspektywy podręcznika jest jeden wydawca, z perspektywy wydawnictwa jest wiele podręczników, stąd poprawne N–1.

Pytanie 30

W systemie zarządzania bazą danych MySQL, aby uzyskać listę wszystkich przywilejów przyznanych użytkownikowi anna, można użyć polecenia

A. SHOW GRANTS FOR anna;
B. GRANT * TO anna;
C. SELECT GRANTS FOR anna;
D. REVOKE GRANTS FROM anna;
Odpowiedź 'SHOW GRANTS FOR anna;' jest trafna. To polecenie w MySQL to coś jak standard do wyświetlania przydzielonych uprawnień dla konkretnego użytkownika. Dzięki temu administrator bazy danych może szybko zobaczyć, co użytkownik o imieniu 'anna' może zrobić. Na przykład, jeśli chcemy wiedzieć, jakie operacje są dozwolone dla tego użytkownika, to właśnie to polecenie będzie na to najlepsze. Przydaje się to zwłaszcza przy audytach czy rozwiązywaniu problemów z dostępem. Warto też dodać, że w MySQL można przypisywać różnorodne uprawnienia, na przykład SELECT, INSERT, UPDATE, czy DELETE, a także konkretnym bazom danych czy tabelom. Regularne sprawdzanie uprawnień to dobra praktyka, bo pomaga utrzymać bezpieczeństwo danych i zminimalizować ryzyko nieautoryzowanego dostępu. Znajomość polecenia 'SHOW GRANTS' jest naprawdę ważna, zwłaszcza w większych systemach, gdzie kontrola dostępu odgrywa istotną rolę.

Pytanie 31

Atrybut autor w tabeli ksiazka oznacza

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

Pytanie 32

Który z poniższych języków jest zazwyczaj używany do programowania front-endowego (wykonywanego po stronie klienta)?

A. Node.js
B. PHP
C. CSS
D. Perl
Node.js, Perl i PHP to języki programowania, które najczęściej służą do tworzenia logiki aplikacji po stronie serwera, a nie po stronie klienta. Node.js jest platformą opartą na JavaScript, która umożliwia uruchamianie kodu JavaScript na serwerze, co sprawia, że jest to środowisko do tworzenia aplikacji webowych, ale nie jest językiem front-endowym per se. Perl to język skryptowy, tradycyjnie używany do przetwarzania danych i automatyzacji, który również działa na serwerze, a nie w przeglądarkach. PHP, podobnie jak Perl, jest językiem skryptowym zaprojektowanym do generowania dynamicznych treści na stronach internetowych po stronie serwera. Typowy błąd myślowy polega na myleniu środowisk uruchomieniowych z rolą języka w architekturze aplikacji webowych. W rzeczywistości, języki front-endowe, takie jak CSS i JavaScript, są odzwierciedleniem interakcji użytkownika w przeglądarkach, podczas gdy Node.js, Perl i PHP pełnią inne funkcje, skupiając się na logice aplikacji, zarządzaniu danymi oraz komunikacji z bazami danych. Zrozumienie różnic między tymi podejściami jest kluczowe dla efektywnego projektowania aplikacji webowych i wykorzystania odpowiednich narzędzi w odpowiednich kontekstach.

Pytanie 33

Aby przekształcić tekst "ala ma psa" na "ALA MA PSA", konieczne jest zastosowanie funkcji w PHP

A. ucfirst('ala ma psa')
B. strstr('ala ma psa')
C. strtolower('ala ma psa')
D. strtoupper('ala ma psa')
Funkcja strtoupper() w PHP jest naprawdę przydatna do zamiany wszystkich liter w danym ciągu znaków na wielkie litery. Na przykład, kiedy mamy tekst 'ala ma psa' i użyjemy strtoupper('ala ma psa'), to dostaniemy 'ALA MA PSA'. To bardzo fajny trik, zwłaszcza gdy musimy ujednolicić format tekstu, na przykład jak ktoś wprowadza dane w różny sposób. Moim zdaniem, to jest ważne, bo różnice w wielkości liter mogą zepsuć nasze porównania. Weźmy pod uwagę sytuację, gdy użytkownik wpisuje różne rzeczy i chcemy, żeby wszystko było w jednym formacie przed dalszym przetwarzaniem, np. w bazach danych. To dobra funkcja, bo działa z różnymi zestawami znaków, więc jest świetnym narzędziem w PHP, nie tylko w aplikacjach webowych, ale też przy przetwarzaniu tekstów.

Pytanie 34

Algorytm porządkowania tablicy, który polega na wielokrotnym porównywaniu ze sobą par sąsiednich elementów oraz ich zamianie, gdy warunek jest spełniony, nosi nazwę sortowania

A. bąbelkowym
B. przez wybór
C. przez scalanie
D. szybkim
Odpowiedzi, które nie wskazują na sortowanie bąbelkowe, opierają się na innych algorytmach sortujących, które działają na zupełnie innych zasadach. Sortowanie przez wybór (selection sort) polega na iteracyjnym wybieraniu najmniejszego elementu z niesortowanej części tablicy i umieszczaniu go na początku. Chociaż wynik końcowy może być podobny, technika ta nie bazuje na porównywaniu dwóch sąsiadujących elementów jak w przypadku sortowania bąbelkowego. Co więcej, złożoność czasowa sortowania przez wybór również wynosi O(n^2), lecz jego działanie jest istotnie inne, co prowadzi do często mylnych interpretacji. Sortowanie szybkie (quick sort) to bardziej zaawansowana metoda, która dzieli tablicę na podtablice, a następnie sortuje je rekurencyjnie. Używa techniki dziel i rządź, dostarczając znacznie lepszej wydajności z przeciętną złożonością czasową O(n log n). W końcu, sortowanie przez scalanie (merge sort) również operuje na zasadzie dzielenia tablicy na mniejsze części, ale charakteryzuje się stabilnością i złożonością czasową O(n log n). Każdy z tych algorytmów ma swoje specyficzne zastosowania i wydajność, co jest kluczowe w kontekście wyboru odpowiedniej metody w zależności od wymagań projektu. Zrozumienie różnic między tymi algorytmami jest niezbędne, aby uniknąć błędnych wyborów w praktycznych zastosowaniach programistycznych.

Pytanie 35

Aby zwiększyć wydajność operacji w bazie danych, należy skupić się na polach, które są często wyszukiwane lub sortowane

A. dodać klucz obcy
B. dodać więzy integralności
C. stworzyć oddzielną tabelę przechowującą wyłącznie te pola
D. utworzyć indeks
Dodawanie kluczy obcych nie jest bezpośrednią metodą na przyspieszenie operacji na bazie danych. Klucze obce są używane do zapewnienia integralności referencyjnej, co oznacza, że ich celem jest zapewnienie spójności danych w relacjach pomiędzy tabelami. Choć klucze obce mogą wpłynąć na wydajność w kontekście zapytań, nie przyspieszają one ani nie optymalizują wyszukiwania w obrębie pojedynczych tabel. Tworzenie osobnych tabel przechowujących tylko te pola również nie jest metodą optymalizacji efektywności wyszukiwania. Tego rodzaju podejście może prowadzić do komplikacji w zarządzaniu danymi oraz zmniejszenia wydajności przy łączeniu tabel w zapytaniach. Dodanie więzów integralności, które zapewniają, że dane w tabelach są poprawne i zgodne z określonymi zasadami, jest również istotne, ale nie wpływa bezpośrednio na szybkość operacji na bazie danych. Takie podejścia mogą prowadzić do błędnych przekonań, że poprawa wydajności bazy danych można osiągnąć poprzez wprowadzenie dodatkowych ograniczeń lub zmian w strukturze danych, co w rzeczywistości może generować dodatkowe koszty obliczeniowe przy wykonywaniu podstawowych operacji. Kluczowe jest stosowanie odpowiednich technik indeksacji, które są powszechnie uznawane za najlepszą praktykę w kontekście optymalizacji zasobów bazy danych.

Pytanie 36

Jakie jest zastosowanie zapytania z klauzulą JOIN?

A. uzyskać wynik tylko z jednej tabeli
B. określić klucz obcy dla tabeli
C. pozyskać dane z dwóch tabel, które są ze sobą powiązane
D. wywołać funkcję agregującą
Zapytania z klauzulą JOIN są fundamentalnym narzędziem w relacyjnych bazach danych, umożliwiającym łączenie danych z różnych tabel na podstawie określonych warunków. Klauzula JOIN pozwala na uzyskanie wyników, które są wynikiem relacji między tabelami, co jest kluczowe w przypadku, gdy dane są rozproszone w różnych miejscach. Na przykład, w przypadku bazy danych e-commerce, możemy mieć jedną tabelę z informacjami o klientach i inną z zamówieniami. Używając JOIN, możemy połączyć te dwie tabele, aby uzyskać pełen obraz zamówień dokonanych przez konkretnego klienta. W praktyce, korzystanie z JOIN jest zgodne z zasadami normalizacji bazy danych, co przyczynia się do efektywnego zarządzania danymi i minimalizowania redundancji. Przy właściwym zastosowaniu, JOIN może również poprawić wydajność zapytań, limitując ilość danych do przesłania, kiedy to tylko niezbędne informacje są łączone w jeden wynik. To podejście jest zgodne z najlepszymi praktykami w inżynierii oprogramowania oraz zarządzaniu danymi.

Pytanie 37

SELECT ocena FROM oceny WHERE ocena>2 ORDER BY ocena;
Dana jest tabela oceny o polach id, nazwisko, imie, ocena. Przedstawione zapytanie jest przykładem:
A. sumowania
B. łączenia
C. projekcji
D. selekcji
Zapytanie SQL, które przedstawiłeś, jest naprawdę świetnym przykładem selekcji. Dzięki niemu można wyciągnąć konkretne dane z tabeli 'oceny'. Selekcja to nic innego jak filtracja danych według ustalonych kryteriów, a w tym przypadku chodzi o to, że 'ocena' musi być większa niż 2. Użycie klauzuli WHERE w SQL pozwala na efektywne wyodrębnienie danych spełniających te wymagania. A jak dodasz do tego klauzulę ORDER BY, to możesz posortować wyniki według wybranej kolejności, co jest naprawdę przydatne w różnych analizach. Takie operacje są kluczowe w pracy z bazami danych, bo dzięki nim zdobywasz konkretną wiedzę bez przeszukiwania całej bazy. W praktyce widać to w raportach, gdzie często potrzebne są tylko konkretne dane, przykładowo żeby sprawdzić, którzy studenci osiągnęli określony poziom ocen. Selekcja daje ci możliwość efektywnego zarządzania danymi, a to według mnie bardzo ważne, zwłaszcza w analizach.

Pytanie 38

Ile razy należy użyć instrukcji warunkowej, aby wdrożyć w danym języku programowania przedstawiony algorytm?

Ilustracja do pytania
A. Trzykrotnie
B. Jednokrotnie
C. Czterokrotnie
D. Dwukrotnie
W programowaniu, liczba użytych instrukcji warunkowych często odpowiada liczbie punktów decyzyjnych w algorytmie. Diagram przedstawiony w pytaniu zawiera dwie decyzje, co oznacza, że potrzebne są dwie instrukcje warunkowe. Wybór jednego razu świadczyłby o niezrozumieniu, że pojedyncza instrukcja nie wystarczy do pokrycia dwóch odrębnych ścieżek logicznych. Trzy lub cztery instrukcje byłyby zbędne i mogłyby prowadzić do nadmiernej komplikacji kodu. Często popełnianym błędem jest też zbyt częste używanie instrukcji warunkowych dla prostych problemów, co negatywnie wpływa na czytelność i wydajność kodu. Dobre praktyki programowania, jak te opisane w 'Clean Code' Roberta C. Martina, zalecają minimalizację złożoności kodu poprzez używanie tylko niezbędnej ilości instrukcji warunkowych. Warto również zwrócić uwagę na to, aby każda instrukcja warunkowa była dobrze przemyślana i adekwatna do danego problemu, co pozwala na uniknięcie błędów logicznych i ułatwia przyszłe modyfikacje kodu.

Pytanie 39

Jakie imiona spełniają warunki klauzuli LIKE w zapytaniu?

SELECT imie FROM mieszkancy WHERE imie LIKE '_r%';
A. Gerald, Jarosław, Marek, Tamara
B. Krzysztof, Krystyna, Romuald
C. Arleta, Krzysztof, Krystyna, Tristan
D. Rafał, Rebeka, Renata, Roksana
Zapytanie SQL wykorzystuje klauzulę LIKE, która pozwala na wyszukiwanie wzorców w danych tekstowych. W tym przypadku wzór '_r%' oznacza, że szukamy imion, które mają na drugiej pozycji literę 'r' i mogą mieć dowolne znaki po tej literze. W analizowanych imionach, Arleta, Krzysztof, Krystyna oraz Tristan spełniają ten warunek, ponieważ: Arleta ma 'r' na drugiej pozycji, Krzysztof również, Krystyna także, a Tristan ma 'r' na drugiej pozycji. Przykład użycia klauzuli LIKE jest szczególnie przydatny w systemach, gdzie często zachodzi potrzeba filtrowania danych tekstowych na podstawie określonych wzorców. W praktyce, stosowanie klauzuli LIKE w zapytaniach SQL powinno być zgodne z najlepszymi praktykami, takimi jak optymalizacja indeksów i unikanie nadmiernego używania znaków wieloznacznych, które mogą prowadzić do spadku wydajności. Warto również pamiętać, że w wielu systemach baz danych klauzula LIKE jest czuła na wielkość liter, co może wpływać na wyniki zapytań.

Pytanie 40

W przedstawionej definicji stylu CSS, powtarzanie dotyczy

body {
  background-image: url("rysunek.gif");
  background-repeat: repeat-y;
}
A. tła każdego ze znaczników akapitu.
B. rysunku umieszczonego w tle strony w poziomie.
C. rysunku umieszczonego w tle strony w pionie.
D. rysunku umieszczonego znacznikiem img.
Twoja odpowiedź jest na miejscu. To, co mówi 'background-repeat: repeat-y;' w CSS, oznacza, że tło będzie się powtarzać w pionie. Super sprawa, jeśli chcesz, by obraz w tle pokrywał całą wysokość elementu, niezależnie od tego, jak duży on jest. Używa się tego często w projektowaniu stron, żeby stworzyć fajne efekty wizualne, jak na przykład tło, które działa w pasku nawigacyjnym. Warto pamiętać, że powtarzanie tła to zaledwie jedna z wielu opcji, jakie mamy w CSS. Możesz również ustawiać pozycję tła czy jego rozmiar, żeby wszystko wyglądało tak, jak chcesz.