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: 7 grudnia 2025 14:04
  • Data zakończenia: 7 grudnia 2025 14:22

Egzamin zdany!

Wynik: 29/40 punktów (72,5%)

Wymagane minimum: 20 punktów (50%)

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

W sklepie internetowym wykorzystuje się tabelę faktura. W trakcie generowania faktury pole dataPlatnosci nie zawsze jest uzupełnione. Aby to skorygować, pod koniec dnia należy wprowadzić bieżącą datę do wierszy, gdzie to pole jest puste. W tym celu można wykorzystać kwerendę

A. UPDATE faktury SET dataPlatnosci=CURDATE() WHERE dataplatnosci = '0000-00-00'
B. UPDATE faktury SET dataPlatnosci=CURTIME() WHERE dataPlatnosci IS NOT NULL
C. UPDATE faktury SET dataPlatnosci=CURDATE() WHERE dataPlatnosci IS NULL
D. UPDATE faktury SET dataPlatnosci=CURTIME() WHERE id = 3
Poprawna odpowiedź to 'UPDATE faktury SET dataPlatnosci=CURDATE() WHERE dataPlatnosci IS NULL;'. Ta kwerenda jest odpowiednia, ponieważ aktualizuje pole 'dataPlatnosci' w tabeli 'faktury' tylko w tych wierszach, gdzie to pole jest puste (NULL). Użycie funkcji CURDATE() pozwala na wprowadzenie aktualnej daty, co jest praktycznym rozwiązaniem dla problemu niewypełnionych dat płatności. Warto pamiętać, że korzystanie z NULL jest standardem w bazach danych, który oznacza brak wartości. Z perspektywy dobrych praktyk w zarządzaniu danymi, ważne jest, aby dbać o pełność danych, co wpływa na późniejsze analizy i generowanie raportów. Tego rodzaju kwerendy powinny być stosowane regularnie, aby zapewnić integralność i aktualność danych w systemie, co jest kluczowe w kontekście e-commerce, gdzie terminowość transakcji ma istotne znaczenie. Na przykład, w sytuacji, gdy system generuje raporty dotyczące płatności, brak daty płatności może prowadzić do nieprawidłowych wniosków.

Pytanie 2

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

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

Pytanie 3

W aplikacji PHP, która zarządza bazą danych, aby uzyskać numer błędu oraz jego opis po dokonaniu jakiejkolwiek operacji, jakie funkcje powinny być wykorzystane?

A. tylko funkcję mysqli_error
B. funkcje mysqli_error i mysqli_errno
C. funkcje mysqli_error i mysqli_error_number
D. funkcje mysqli_error i mysqli_connect_errno
Odpowiedź zawierająca funkcje mysqli_error i mysqli_errno jest prawidłowa, ponieważ obie te funkcje dostarczają istotnych informacji dotyczących błędów w kontekście operacji na bazie danych w PHP. Funkcja mysqli_error() zwraca opis ostatniego błędu, który wystąpił w kontekście połączenia z bazą danych. Natomiast mysqli_errno() zwraca numer tego błędu, co jest niezwykle przydatne w diagnostyce. Używanie obu funkcji razem pozwala nie tylko zidentyfikować błąd, ale również zrozumieć jego istotę. Na przykład, jeśli próbujemy wykonać zapytanie, które jest błędne syntaktycznie, można użyć tych funkcji do uzyskania zarówno komunikatu o błędzie, jak i jego kodu, co ułatwia debugowanie. W praktyce, stosowanie tych funkcji jest zgodne z najlepszymi praktykami w programowaniu PHP, ponieważ umożliwia skuteczne zarządzanie wyjątkami i błędami, co jest kluczowe w zapewnieniu stabilności aplikacji.

Pytanie 4

W poniższym zapisie CSS kolor zielony zostanie zastosowany do

h2
{
    background-color: green;
}
A. czcionki wszystkich nagłówków na stronie
B. tła całej witryny
C. czcionki nagłówka drugiego poziomu
D. tła tekstu nagłówka drugiego poziomu
Zrozumienie różnicy między background-color a innymi właściwościami CSS jest kluczowe dla poprawnego stylizowania elementów na stronach internetowych. Właściwość background-color nie wpływa na kolor czcionki, lecz jedynie na kolor tła określonego elementu. Dlatego zapis background-color: green; dla selektora h2 ustawia zielone tło dla wszystkich nagłówków drugiego stopnia na stronie. To skutecznie wyklucza możliwość, by dotyczyło to samej czcionki czy całej strony. Idea, że mógłby to być kolor czcionki dla nagłówków bądź całej strony, jest błędna, ponieważ do zmiany koloru czcionki używa się właściwości color, a nie background-color. Mylenie tych właściwości jest częstym błędem, jednak ich prawidłowe rozróżnienie pozwala na precyzyjne sterowanie wyglądem elementów. Przy zastosowaniu właściwych stylów można zyskać nie tylko na atrakcyjności wizualnej, ale także na dostępności i użyteczności. Warto też pamiętać o znaczeniu semantycznym tagów HTML, co w połączeniu z odpowiednim stylizowaniem wspiera lepszą indeksację przez wyszukiwarki internetowe oraz poprawia doświadczenie użytkownika w nawigacji po stronie. Takie zrozumienie pozwala na tworzenie stron zgodnych z aktualnymi standardami webowymi, promując dobre praktyki w projektowaniu interfejsów użytkownika. Zastosowanie zielonego tła dla <h2> jest zgodne z zasadami CSS, co pozwala na dokładne kontrolowanie stylu w nowoczesnych aplikacjach internetowych.

Pytanie 5

Aby zainstalować system CMS Joomla!, potrzebne jest środowisko

A. PHP oraz MySQL
B. Apache oraz PHP
C. Apache, PHP i MySQL
D. IIS, PERL i MySQL
Aby uruchomić system CMS Joomla!, konieczne jest zainstalowanie i skonfigurowanie serwera WWW, interpreter PHP oraz systemu zarządzania bazą danych, którym najczęściej jest MySQL. Apache to najpopularniejszy serwer WWW, który zapewnia środowisko dla aplikacji internetowych, oferując elastyczność i wsparcie dla wielu protokołów. PHP jest językiem skryptowym, który umożliwia dynamiczne generowanie treści na stronach internetowych. MySQL jako system zarządzania bazą danych pozwala na przechowywanie, zarządzanie i pobieranie danych, co jest kluczowe w kontekście zarządzania treścią w Joomla!. Przykładem zastosowania tych technologii może być stworzenie witryny internetowej, która korzysta z bazy danych do przechowywania artykułów, użytkowników oraz innych zasobów, a następnie dynamicznie je wyświetla za pomocą PHP. Warto również pamiętać, że stosowanie tych technologii to standardowa praktyka w branży, co zapewnia kompatybilność oraz wsparcie społeczności deweloperów.

Pytanie 6

W języku JavaScript zdefiniowano funkcję potega. Funkcja ta

function potega(a, b = 2) { ... return wynik; }
A. nie zwraca wartości
B. może być wywołana z jedną wartością
C. nie przyjmuje żadnych argumentów
D. wymaga podania dwóch argumentów przy wywołaniu
Odpowiedź 3 jest poprawna, ponieważ funkcja potega w JavaScript została zdefiniowana z jednym parametrem obowiązkowym (a) oraz jednym parametrem opcjonalnym (b) z domyślną wartością wynoszącą 2. Oznacza to, że można ją wywołać z jednym argumentem, a wtedy drugi argument przyjmie wartość domyślną. Taka konstrukcja jest użyteczna w przypadku, gdy chcemy zapewnić elastyczność wywołania funkcji bez konieczności podawania wszystkich argumentów. W praktyce, użycie wartości domyślnych pozwala na tworzenie bardziej zwięzłego kodu i łatwiejsze utrzymywanie funkcji. Standard ECMAScript 2015 (ES6) wprowadził możliwość definiowania wartości domyślnych dla parametrów funkcji, co jest obecnie powszechną praktyką w JavaScript. Dzięki temu programiści mogą lepiej zarządzać przypadkami, w których nie wszystkie dane wejściowe są dostępne, co pozwala na unikanie błędów związanych z nieokreślonymi wartościami i zwiększa efektywność kodu.

Pytanie 7

Można przypisać wartości: static, relative, fixed, absolute oraz sticky do właściwości

A. display
B. text-transform
C. position
D. list-style-type
Właściwość CSS 'position' służy do określenia, w jaki sposób element jest pozycjonowany na stronie. Wartości takie jak static, relative, fixed, absolute oraz sticky definiują różne metody pozycjonowania elementów w kontekście innych obiektów oraz w kontekście samego okna przeglądarki. Na przykład, 'static' jest wartością domyślną, co oznacza, że elementy są umieszczane w naturalnym porządku w dokumencie HTML. 'Relative' pozwala na przesunięcie elementu względem jego normalnej pozycji, co daje większą elastyczność w projektowaniu layoutów. 'Absolute' pozycjonuje element względem najbliższego przodka, który również ma ustawioną właściwość 'position' różną od 'static', co umożliwia precyzyjne umiejscowienie elementów. 'Fixed' sprawia, że element pozostaje w tym samym miejscu w oknie przeglądarki, nawet podczas przewijania strony, co jest często wykorzystywane w przypadku nagłówków i stopki. 'Sticky' łączy cechy 'relative' i 'fixed', umożliwiając elementowi bycie na stałe w zasięgu widoku, ale tylko do momentu, gdy nie zostanie przewinięty poza jego kontener. Używanie tych wartości w praktyce pozwala na tworzenie responsywnych i dynamicznych interfejsów użytkownika, które są zgodne z dobrymi praktykami projektowania stron internetowych.

Pytanie 8

Znaczniki HTML <strong> oraz <em>, które mają na celu podkreślenie istotności tekstu, pod względem formatowania odpowiadają znacznikom

A. <u> oraz <sup>
B. <b> oraz <u>
C. <b> oraz <i>
D. <i> oraz <mark>
Wybór błędnych znaczników HTML często wynika z niepełnego zrozumienia różnicy między semantyką a formatowaniem. Znacznik <u> służy do podkreślenia tekstu, co może być mylące w kontekście oznaczania ważności treści. Oznaczanie tekstu w ten sposób nie dostarcza żadnej informacji o jego znaczeniu, co jest kluczowe w tworzeniu dostępnych i zrozumiałych stron internetowych. Użycie <sup> oznacza tekst w indeksie górnym, co również nie ma związku z akcentowaniem ważności. W przypadku <b> i <u>, oba znaczniki służą do formatowania, ale ignorują istotne aspekty semantyki, co może prowadzić do nieporozumień w interpretacji treści przez przeglądarki oraz urządzenia asystujące. Użycie <i> oznacza tekst w kursywie, jednak podobnie jak <b>, jest to czysto wizualne formatowanie bez znaczenia semantycznego. W praktyce, nadmierne poleganie na takich znacznikach bez zrozumienia ich ról w kontekście semantyki prowadzi do tworzenia stron, które są mniej dostępne i mniej przyjazne dla użytkowników. Kluczowym elementem budowy nowoczesnych aplikacji webowych jest stosowanie odpowiednich znaczników, które nie tylko prezentują treść, ale również przekazują jej znaczenie, co jest podstawą dobrego UX oraz SEO.

Pytanie 9

W języku JavaScript, w celu przekształcenia specjalnie przygotowanego tekstu w tablicę, można wykorzystać metodę

A. replace()
B. trim()
C. slice()
D. split()
Użycie metod takich jak trim(), replace() czy slice() w kontekście zamiany tekstu na tablicę jest nieprawidłowe z kilku powodów. Metoda trim() służy do usuwania białych znaków (spacji, tabulatorów itp.) z początku i końca ciągu znaków. Choć jest to przydatne w wielu sytuacjach, nie ma ona żadnego wpływu na strukturę samego tekstu, a tym samym nie może być używana do przekształcania ciągu w tablicę. Z kolei replace() jest metodą, która zastępuje podciąg w łańcuchu, ale nie dzieli go na elementy. Na przykład, użycie replace() na ciągu "Jan,Kasia,Piotr" z celem uzyskania tablicy spowoduje, że nadal będziemy mieć jeden łańcuch, w którym nie będą mogły wystąpić oddzielne elementy. Natomiast metoda slice() służy do wycinania określonej części łańcucha, co również nie prowadzi do generowania tablicy. Powszechnym błędem myślowym jest założenie, że te metody mogą spełniać funkcję podziału tekstu, podczas gdy ich rzeczywiste zastosowanie jest zupełnie inne. W praktyce, stosując metody, które nie są przeznaczone do dzielenia tekstu, programiści mogą napotkać problemy z wydajnością i czytelnością kodu, co jest sprzeczne z zasadami dobrego programowania. Zrozumienie różnicy między tymi metodami oraz ich odpowiednim zastosowaniem jest kluczowe dla efektywnej pracy z danymi tekstowymi i zapewnia, że procesy przetwarzania informacji w aplikacjach są zarówno efektywne, jak i łatwe do utrzymania.

Pytanie 10

Aby cofnąć uprawnienia danemu użytkownikowi, należy użyć polecenia

A. DELETE PRIVILEGES
B. GRANT NO PRIVILEGES
C. REVOKE
D. DELETE
Odpowiedź 'REVOKE' jest rzeczywiście trafna. To standardowe polecenie w systemach baz danych, jak SQL, do odbierania uprawnień użytkownikom. Dzięki temu administracja może lepiej zarządzać dostępem do danych, co jest mega ważne dla ich bezpieczeństwa. Na przykład, jeśli ktoś wcześniej miał prawo do edytowania danych, administrator może użyć 'REVOKE UPDATE ON tabela FROM użytkownik', żeby cofnąć te uprawnienia. W praktyce, stosowanie odpowiednich uprawnień jest kluczowe, żeby utrzymać integralność danych oraz upewnić się, że tylko uprawnione osoby mają do nich dostęp. Użycie 'REVOKE' to dobra praktyka w zarządzaniu dostępem, bo daje możliwość elastycznego dostosowania uprawnień, co może pomóc w uniknięciu nieautoryzowanego dostępu.

Pytanie 11

Zaprezentowano tabelę stworzoną przy użyciu kodu HTML, bez zastosowania stylów CSS. Która część kodu HTML odnosi się do pierwszego wiersza tabeli?

Ilustracja do pytania
A. Rys. D
B. Rys. B
C. Rys. A
D. Rys. C
Pierwszy wiersz tabeli HTML zazwyczaj zawiera nagłówki kolumn i jest oznaczony za pomocą znaczników <th> (table header). Zgodnie z dobrymi praktykami tworzenia tabel w HTML, nagłówki powinny być oddzielone od danych, aby poprawić zarówno estetykę, jak i funkcjonalność tabeli. W odpowiedzi Rys. D użyto znaczników <th> co poprawnie definiuje nagłówki kolumn. W ten sposób przeglądarki potrafią wyróżnić nagłówki, np. poprzez pogrubienie tekstu, co jest domyślnym zachowaniem. Zastosowanie <th> poprawia również dostępność tabel, ponieważ technologie asystujące lepiej interpretują strukturę danych w tabelach, co jest zgodne z wytycznymi WCAG (Web Content Accessibility Guidelines). Korzystając z <th>, można dodatkowo określić atrybut scope, który jeszcze bardziej precyzuje relacje w tabeli, co jest szczególnie przydatne w bardziej złożonych strukturach. W praktyce, kiedy projektujemy strony internetowe, stosowanie prawidłowych znaczników semantycznych jest kluczowe dla tworzenia zrozumiałego i dostępnego interfejsu użytkownika. Dlatego też wybór fragmentu z <th> jako reprezentującego pierwszy wiersz tabeli jest zgodny z zaleceniami i standardami nowoczesnego front-endu.

Pytanie 12

Aby utworzyć tabelę w języku SQL, należy użyć polecenia

A. ALTER TABLE
B. CREATE TABLE
C. ADD TABLE
D. INSERT TABLE
Odpowiedź 'CREATE TABLE' jest poprawna, ponieważ w języku SQL to polecenie jest używane do tworzenia nowych tabel w bazie danych. Umożliwia definiowanie struktury tabeli, w tym nazw kolumn, typów danych oraz ograniczeń, takich jak klucze główne czy unikalność. Przykładowe użycie polecenia 'CREATE TABLE' może wyglądać następująco: 'CREATE TABLE pracownicy (id INT PRIMARY KEY, imie VARCHAR(50), nazwisko VARCHAR(50));'. W tym przykładzie tworzymy tabelę 'pracownicy' z trzema kolumnami: 'id', 'imie' oraz 'nazwisko'. Warto zaznaczyć, że zgodnie z najlepszymi praktykami, przed wykonaniem polecenia warto sprawdzić, czy tabela o danej nazwie już istnieje, aby uniknąć błędów związanych z podwójnym tworzeniem. Zapewnienie odpowiedniej struktury bazy danych już na etapie jej tworzenia przekłada się na lepszą wydajność oraz łatwiejsze zarządzanie danymi w przyszłości.

Pytanie 13

Która z komórek tabeli została sformatowana przedstawionym stylem CSS zakładając, że pozostałe własności przyjmują wartości domyślne?

td {
  border: 1px solid black;
  padding: 15px;
  height: 40px;
  vertical-align: bottom;
}
dane w tabeli


dane w tabelidane w tabelidane w tabeli
Komórka 1Komórka 2Komórka 3Komórka 4
A. Komórka 3.
B. Komórka 2.
C. Komórka 1.
D. Komórka 4.
Gratulacje, to jest prawidłowa odpowiedź! Styl CSS, który został podany, określa, że komórka tabeli ma obramowanie o grubości 1px i kolorze czarnym, wewnętrzny margines (padding) o wielkości 15px, wysokość 40px oraz wyrównanie tekstu do dołu (vertical-align: bottom). Komórka 3. jest jedyną, która spełnia te kryteria - tekst jest wyrównany do dołu, a komórka ma widoczne obramowanie i odpowiednią wysokość. Formatowanie CSS jest kluczowym aspektem projektowania stron internetowych, które pozwalają na personalizację wyglądu elementów na stronie. Kiedy formatujesz komórkę tabeli w CSS, musisz zwrócić uwagę na szczegóły, takie jak wysokość, wewnętrzny margines, narożniki i wyrównanie tekstu. Wszystko to wpływa na ostateczny wygląd i doświadczenie użytkownika na stronie. Pamiętaj, że praktyka jest kluczem do zrozumienia, jak te elementy razem pracują, dlatego zawsze warto eksperymentować z różnymi ustawieniami.

Pytanie 14

Który z obrazków ilustruje efekt działania podanego fragmentu kodu HTML?

Ilustracja do pytania
A. Obrazek D
B. Obrazek C
C. Obrazek A
D. Obrazek B
Prawidłowa odpowiedź to C ponieważ atrybut rowspan="2" w komórce oznacza że komórka ta zajmuje miejsce w dwóch wierszach. W kodzie HTML mamy tabelę z dwoma wierszami. W pierwszym wierszu znajdują się dwie komórki pierwsza z tekstem 'pierwszy' ma ustawiony rowspan na 2 co sprawia że zajmuje miejsce w obu wierszach tabeli. Druga komórka w pierwszym wierszu zawiera tekst 'drugi'. W drugim wierszu znajduje się jedna komórka z tekstem 'trzeci'. Taki układ powoduje że komórka z 'pierwszy' rozciąga się na wysokość dwóch wierszy a pozostałe komórki 'drugi' i 'trzeci' są obok siebie w pierwszym i drugim wierszu obok tej rozciągniętej komórki. Zastosowanie atrybutu rowspan to popularna technika w tworzeniu złożonych układów tabeli i pozwala na efektywne wykorzystanie przestrzeni układu. Jest to dobra praktyka stosowana w celu zachowania czytelności danych w tabelach na stronach internetowych a także pomagająca w poprawnym renderowaniu danych w czytnikach ekranu co wspiera dostępność strony WWW.

Pytanie 15

Zawarte polecenie SQL wykonuje

UPDATE Uczen SET id_klasy = id_klasy + 1;
A. ustalić wartość kolumny id_klasy na 1 dla wszystkich rekordów w tabeli Uczen
B. zwiększyć o jeden wartość w kolumnie id_klasy dla wszystkich rekordów tabeli Uczen
C. powiększyć wartość pola Uczen o jeden
D. ustalić wartość pola Uczen na 1
Polecenie SQL, które analizujemy, to: `UPDATE Uczen SET id_klasy = id_klasy + 1;`. Jego celem jest zwiększenie wartości w kolumnie `id_klasy` o jeden dla wszystkich rekordów w tabeli `Uczen`. Wykorzystanie operacji `SET` w poleceniu `UPDATE` umożliwia modyfikację istniejących danych w bazie. W tym przypadku każda wartość w kolumnie `id_klasy` zostaje powiększona o jeden. To technika często stosowana przy aktualizacjach, gdzie potrzebujemy inkrementować wartości, np. w przypadku liczników, numeracji czy przesuwania pozycji. Stosowanie `UPDATE` zgodnie z dobrymi praktykami wymaga ostrożności, zwłaszcza przy operacjach masowych, aby unikać niezamierzonych zmian w danych. Ważne jest, aby przed wykonaniem takich operacji upewnić się, że kopia zapasowa danych jest dostępna, a operacja została przetestowana w środowisku testowym, aby uniknąć potencjalnych problemów w środowisku produkcyjnym.

Pytanie 16

W formularzu HTML wykorzystano znacznik <input>. Wyświetlane pole będzie przeznaczone do wprowadzania maksymalnie

Ilustracja do pytania
A. 20 znaków, które nie są widoczne w polu tekstowym
B. 30 znaków, które są widoczne podczas wpisywania
C. 30 znaków, które nie są widoczne w polu tekstowym
D. 20 znaków, które są widoczne podczas wpisywania
Zrozumienie działania atrybutów size i maxlength w znaczniku <input> jest kluczowe dla prawidłowego projektowania formularzy HTML. Atrybut size określa, ile znaków będzie widocznych w polu tekstowym, jednak to nie ogranicza faktycznej liczby znaków, które można wprowadzić. Działa to bardziej jako wskazówka dla użytkownika, jak szerokie może być pole, aby pomieścić określoną liczbę widocznych znaków. Dlatego odpowiedź, że size determinuje maksymalną ilość wprowadzanych znaków, jest błędna. Natomiast atrybut maxlength rzeczywiście ogranicza liczbę znaków, które można wprowadzić. Dzięki temu atrybutowi możemy kontrolować długość danych wejściowych, co jest często wykorzystywane w aplikacjach wymagających wprowadzania haseł lub innych danych tekstowych o określonej długości. W przypadku inputów typu password, wprowadzone znaki są maskowane, co oznacza, że użytkownik nie widzi tego, co wpisuje, a jego odpowiednik wprowadzenia tekstu typu tekstowego nie działa w ten sam sposób. Odpowiedzi zakładające, że dane są widoczne lub że size wpływa na długość wprowadzanych znaków, wynikają z niepełnego zrozumienia działania poszczególnych atrybutów HTML i ich roli w projektowaniu interfejsów użytkownika. Dobre praktyki projektowania formularzy wymagają jasnego rozróżnienia tych dwóch funkcji, co znacznie zwiększa użyteczność i dostępność aplikacji webowych oraz ułatwia użytkownikom korzystanie z formularzy zgodnie z ich przeznaczeniem.

Pytanie 17

GRANT SELECT, INSERT, UPDATE ON klienci TO anna; Przy założeniu, że użytkownik nie miał wcześniej przyznanych żadnych uprawnień, to polecenie SQL przypisuje użytkownikowi anna wyłącznie prawa do

A. wybierania, dodawania kolumn oraz zmiany struktury wszystkich tabel w bazie o nazwie klienci
B. wybierania, wstawiania oraz aktualizacji danych w tabeli o nazwie klienci
C. wybierania, dodawania kolumn oraz zmiany struktury tabeli o nazwie klienci
D. wybierania, wstawiania oraz aktualizacji danych w każdej tabeli w bazie o nazwie klienci
Podane odpowiedzi przedstawiają różne koncepcje związane z przyznawaniem uprawnień, które są jednak nieprawidłowe w kontekście polecenia GRANT przedstawionego w pytaniu. Po pierwsze, odpowiedzi sugerujące, że użytkownik anna ma prawo do dodawania pól lub zmiany struktury tabeli, są błędne. GRANT w tym kontekście nie przyznaje uprawnień do modyfikacji strukturalnych tabeli, takich jak dodawanie kolumn; te operacje wymagają osobnych uprawnień, jak ALTER. Po drugie, koncepcja przyznawania praw do wszystkich tabel w bazie danych jest mylna, ponieważ polecenie odnosi się wyłącznie do konkretnej tabeli o nazwie klienci. W praktyce oznacza to, że nawet jeśli użytkownik ma uprawnienia do jednej tabeli, nie ma automatycznie dostępu do innych tabel w bazie. Często mylnie przyjmuje się, że nadanie praw na poziomie jednej tabeli automatycznie rozszerza te prawa na wszystkie elementy w bazie danych, co jest fundamentalnym błędem w zrozumieniu zarządzania uprawnieniami. Kluczowe w tej problematyce jest zrozumienie, że uprawnienia w systemach baz danych są przyznawane w sposób bardzo precyzyjny i specyficzny, co pozwala na ochronę danych i kontrolę dostępu zgodnie z najlepszymi praktykami w zakresie bezpieczeństwa informacji.

Pytanie 18

W którym z przedstawionych bloków powinien być umieszczony warunek pętli?

Ilustracja do pytania
A. Rys. D
B. Rys. B
C. Rys. A
D. Rys. C
Pozostałe rysunki reprezentują inne elementy diagramu przepływu które nie nadają się do reprezentowania warunku pętli. Rysunek A to prostokąt symbolizujący operację lub proces w przepływie programu. Jest używany do przedstawiania konkretnego kroku algorytmu takiego jak obliczenie czy przypisanie wartości ale nie do wyrażania warunków. Użycie go do reprezentacji warunku pętli wprowadziłoby zamieszanie co do natury tego kroku ponieważ nie oddaje on dwoistości decyzji tak jak romb. Rysunek B przedstawia owal który często jest używany do oznaczania początku lub końca procesu. W kontekście pętli nie jest on odpowiedni ponieważ nie pozwala na wyrażenie logicznego warunku kontrolującego przebieg pętli. Wprowadzenie warunku w owalnym bloku mogłoby sugerować że jest to punkt rozpoczęcia lub zakończenia całego algorytmu co jest mylące. Rysunek D to symbol oznaczający połączenie między różnymi częściami diagramu i nie ma zastosowania przy definiowaniu logiki warunkowej. Role tego symbolu dotyczą bardziej struktury diagramu niż jego logiki. Wprowadzenie warunku w takim bloku mogłoby utrudnić śledzenie przepływu danych i logiczne rozumienie procesu co jest krytyczne dla poprawnego działania pętli. Dlatego stosowanie odpowiednich symboli zgodnych z ich przeznaczeniem jest kluczowe w tworzeniu czytelnych i zrozumiałych diagramów algorytmicznych a wybór rombu do reprezentacji warunku pętli jest zgodny z tymi zasadami i wspiera dobry styl programistyczny poprzez ułatwienie zrozumienia logiki algorytmu.

Pytanie 19

Kod umieszczony w ramce spowoduje wyświetlenie liczb

Ilustracja do pytania
A. 1 3 5 7 9
B. 1 2 3 4 5 6 7 8 9 10
C. 2 4 6 8 10
D. 2 4 6 8
Analizując błędne odpowiedzi można zauważyć że nie uwzględniają one poprawnego działania instrukcji continue w kodzie PHP. Ta instrukcja pomija pozostałe kroki bieżącej iteracji pętli jeśli warunek jest spełniony. Pierwsza odpowiedź 2 4 6 8 nie uwzględnia liczby 10 która także spełnia warunek parzystości i powinna być wypisana co jest błędne w kontekście działania pętli do wartości 10 włącznie. Druga propozycja 1 3 5 7 9 jest wynikiem niepoprawnego zrozumienia działania operatora modułu i instrukcji continue które eliminują liczby nieparzyste z wyjścia. Wyświetlenie tylko nieparzystych liczb oznaczałoby brak zastosowania instrukcji continue lub jej odwrotność co jest sprzeczne z kodem. Ostatnia propozycja 1 2 3 4 5 6 7 8 9 10 zakłada że wszystkie liczby od 1 do 10 są wypisywane co ignoruje kluczowy wpływ instrukcji continue na przebieg pętli. Taki wynik mógłby wskazywać na brak warunku eliminującego liczby nieparzyste co jest błędne w kontekście kodu. Typowym błędem jest tu niepoprawne rozumienie działania instrukcji sterujących jak continue które pełnią kluczową rolę w przepływie sterowania w pętlach programistycznych i powinny być zawsze dokładnie analizowane aby uniknąć błędnych wniosków i nieoczekiwanych wyników w programach. Operator modulo to również istotny element w zrozumieniu działania kodu służący do łatwego sprawdzania podzielności i warunków logicznych co jest powszechnie stosowane w wielu językach programowania do optymalizacji i filtrowania danych. Kod ilustruje również jak za pomocą prostych warunków można efektywnie zarządzać dużymi zbiorami danych w aplikacjach co jest kluczowe w optymalizacji algorytmów i poprawie wydajności systemów informatycznych.

Pytanie 20

Na zaprezentowanej tabeli dotyczącej samochodów wykonano zapytanie SQL SELECT ```SELECT model FROM samochody WHERE rocznik=2016;``` Jakie wartości zostaną zwrócone w wyniku tego zapytania?

Ilustracja do pytania
A. Czerwony, grafitowy
B. Punto, Corsa, Astra, Corolla, Yaris
C. Fiat, Opel, Toyota
D. Punto, Corsa, Corolla
Zapytanie SQL, które podałeś, czyli SELECT model FROM samochody WHERE rocznik=2016, jest zaprojektowane tak, żeby wyciągnąć z tabeli samochody wszystkie modele aut z rocznika 2016. To ogranicza wynik tylko do tych modeli, które spełniają ten właśnie warunek. Patrząc na dostarczoną tabelę, widzimy, że modele z rocznika 2016 to Punto, Corsa i Corolla. Więc z tego zapytania otrzymamy tylko te trzy modele. W realnym świecie, zapytania SQL są mega przydatne przy filtrowaniu danych w bazach. Zrozumienie, jak pisać zapytania SELECT, jest naprawdę ważne, zwłaszcza dla analityków i administratorów. Dobrze jest znać zasady budowania zapytań, żeby były one jasne i precyzyjne, bo to pozwala lepiej zarządzać i analizować dane. Ta wiedza to podstawa w analizie danych, gdzie umiejętność wyciągania odpowiednich informacji jest kluczowa do podejmowania dobrych decyzji biznesowych.

Pytanie 21

W CSS określono styl dla pola do edycji, które będzie miało tło w kolorze jasnozielonym po aktywacji.

input:focus { background-color: LightGreen; }
A. w każdej sytuacji
B. jeśli zostanie na nie najechane kursorem bez kliknięcia
C. gdy jest to pierwsze użycie tego elementu w dokumencie
D. po kliknięciu myszką w celu wprowadzenia tekstu
Odpowiedź "po kliknięciu myszą w celu zapisania w nim tekstu" jest poprawna, ponieważ reguła CSS `input:focus { background-color: LightGreen; }` definiuje styl, który ma zastosowanie, gdy pole edycyjne (input) jest w stanie "focus". Stan ten jest aktywowany, gdy użytkownik klika na pole, co pozwala na wpisywanie tekstu. To podejście jest zgodne z zasadami dostępności i użyteczności interfejsów, ułatwiając użytkownikom interakcję z formularzami. Przykładowo, w formularzach online, takie wizualne wskazanie na aktywne pole poprawia doświadczenie użytkownika, zwiększa czytelność oraz umożliwia łatwiejsze wprowadzanie danych. Warto również pamiętać, że dobrym standardem jest stosowanie kolorów tła, które są kontrastowe w stosunku do kolorów tekstu, aby zapewnić ich czytelność. Ponadto, w praktyce developerskiej, często wykorzystuje się dodatkowe efekty, takie jak animacje, które mogą poprawić interaktywność i wyrazistość reakcji na działania użytkownika. Właściwe stosowanie stylów CSS w kontekście stanu focus jest więc kluczowe dla tworzenia przyjaznych dla użytkownika interfejsów.

Pytanie 22

Najłatwiejszym i najmniej czasochłonnym sposobem na przetestowanie funkcjonowania strony internetowej w różnych przeglądarkach oraz ich wersjach jest

A. użycie emulatora przeglądarek internetowych, np. Browser Sandbox
B. testowanie strony w programie Internet Explorer, zakładając, że inne przeglądarki będą kompatybilne
C. skorzystanie z narzędzia do walidacji kodu HTML
D. zainstalowanie na kilku maszynach różnych przeglądarek i przeprowadzenie testu witryny
Korzystanie z emulatora przeglądarek internetowych, takiego jak Browser Sandbox, to jedna z najskuteczniejszych metod na testowanie działania witryny w różnych przeglądarkach i ich wersjach. Emulatory umożliwiają symulację różnych środowisk przeglądarkowych bez potrzeby fizycznego instalowania wielu aplikacji na różnych urządzeniach. To znacząco przyspiesza proces testowania i pozwala na łatwe przełączanie się między wersjami przeglądarek. Przykładowo, za pomocą emulatora można szybko sprawdzić, jak strona zachowuje się w Chrome, Firefox czy Safari, co jest kluczowe dla zapewnienia spójnego doświadczenia użytkownika. Ponadto, korzystanie z takich narzędzi pozwala na testowanie z różnych systemów operacyjnych, co jest istotne w kontekście różnorodności urządzeń używanych przez użytkowników. Dobrze skonfigurowany emulator nie tylko pozwala na testowanie responsywności witryny, ale także na analizowanie błędów związanych z CSS czy JavaScript, co przekłada się na wyższą jakość końcowego produktu. Zastosowanie emulatorów jest zgodne z najlepszymi praktykami w zakresie tworzenia aplikacji webowych, które powinny być dostępne i funkcjonalne w różnych przeglądarkach.

Pytanie 23

W języku PHP zmienna $a została przypisana do wartości 1. Wyrażenie $a === $b będzie miało wartość true, gdy zmienna $b będzie ustawiona na wartość

A. "1" lub '1'
B. '1'
C. *1
D. 1 lub '1'
Odpowiedź *1 jest prawidłowa, ponieważ w języku PHP porównanie $a === $b sprawdza zarówno wartość, jak i typ zmiennej. W tym przypadku $a jest zainicjowane jako liczba całkowita z wartością 1, co oznacza, że aby porównanie zwróciło true, zmienna $b musi być również zainicjowana jako liczba całkowita z wartością 1. W PHP, użycie operatora porównania identyczności (===) wymaga, aby obie zmienne były tego samego typu. Jeśli $b byłoby zainicjowane jako '1' (łańcuch znaków) lub "1" (również łańcuch znaków), porównanie zwróciłoby false, ponieważ typy nie są zgodne. W praktyce, stosowanie porównań identyczności jest zalecane, aby uniknąć nieprzewidzianych rezultatów, które mogą wystąpić przy użyciu operatora porównania równości (==), który nie uwzględnia typów. Warto również pamiętać, że w kontekście dobrych praktyk programowania powinno się unikać sytuacji, w których typy zmiennych mogą prowadzić do niejednoznacznych wyników. Zrozumienie różnicy między porównaniami a typami danych jest kluczowe w tworzeniu stabilnych aplikacji w PHP."

Pytanie 24

W PHP, aby przekierować użytkownika na inną stronę internetową, można użyć funkcji

A. header();
B. require();
C. upload();
D. include();
Wybór odpowiedzi wykorzystujących funkcje require(), upload() i include() jest nieprawidłowy z kilku powodów. Funkcja require() służy do dołączania plików do skryptu PHP i jest wykorzystywana głównie do wczytywania zewnętrznych skryptów lub bibliotek, co nie ma nic wspólnego z przekierowaniem użytkownika. W przypadku, gdy plik nie zostanie znaleziony, funkcja ta spowoduje błąd krytyczny, a skrypt zatrzyma działanie, co jest niepożądane w kontekście przekierowań. Podobnie, include() działa na zasadzie dołączania plików, ale w przeciwieństwie do require() nie powoduje krytycznego błędu w przypadku braku pliku; zamiast tego wyświetla ostrzeżenie, co również nie jest odpowiednie w kontekście zarządzania nawigacją użytkownika. Co więcej, funkcja upload() nie istnieje w standardowej bibliotece PHP, co czyni tę odpowiedź całkowicie nieprawidłową. Typowe błędy myślowe prowadzące do takich wniosków mogą obejmować mylenie funkcji związanych z dołączaniem plików z funkcjami zarządzającymi nagłówkami i odpowiedziami HTTP. Ważne jest, aby zrozumieć kontekst użycia każdej funkcji oraz jej przeznaczenie, co wpływa na poprawność techniczną skryptów i działanie aplikacji webowych.

Pytanie 25

W jaki sposób można w języku CSS ustawić takie stylizowanie tabeli, aby wiersz, na którym obecnie znajduje się kursor myszki, zmieniał kolor tła na szary?

A. tr:active { background-color: gray; }
B. tr:hover { color: gray; }
C. tr:active { color: gray; }
D. tr:hover { background-color: gray; }
Odpowiedź tr:hover { background-color: gray; } jest całkiem trafna. Używasz pseudoklasy :hover, co jest super standardowym podejściem do stylizacji elementów, gdy kursor najedzie na nie. W tabeli to tak działa, że cały wiersz zmienia kolor tła na szary, co znacznie poprawia czytelność i jakby cały interfejs staje się bardziej interaktywny. To jest przydatne w aplikacjach webowych, bo użytkownicy szybko rozumieją, na którym wierszu akurat są. Można jeszcze dodać inne efekty, na przykład zmienić kolor tekstu czy dodać jakies cień. Przykład to jakieś interaktywne tabele w systemach do zarządzania danymi, gdzie jak najeżdżasz na wiersze, to wyświetlają się dodatkowe info lub pozwalają je edytować. Pamiętaj też o dostępności – dobrze jest zadbać o kontrasty kolorystyczne, żeby osoby z dysfunkcjami wzroku mogły z tego korzystać.

Pytanie 26

Aby ustanowić połączenie z serwerem bazy danych w języku PHP, należy użyć funkcji

A. mysqli_autocommit()
B. mysqli_fetch_row()
C. mysqli_get_connection_stats()
D. mysqli_connect()
Funkcja mysqli_connect() to taka podstawa w PHP, która pomaga połączyć się z bazą danych MySQL. Musisz jej użyć z czterema argumentami: nazwą hosta, użytkownika, hasłem i nazwą bazy danych. Dzięki mysqli_connect() Twoja aplikacja będzie działać sprawniej i bezpieczniej, co jest mega ważne. Na przykład, żeby połączyć się z bazą, możesz użyć takiego kodu: $conn = mysqli_connect('localhost', 'username', 'password', 'database_name');. Jak już masz połączenie, to później możesz robić różne zapytania SQL i manipulować danymi. To też jest zgodne z zasadą separacji, bo oddziela logikę od zarządzania danymi. No i pamiętaj, że warto zadbać o obsługę błędów przy łączeniu, najlepiej sprawdzić to przy pomocy prostego warunku: if (!$conn) { die('Connection failed: ' . mysqli_connect_error()); } Moim zdaniem, to bardzo przydatne podejście.

Pytanie 27

Aby przyznać użytkownikowi prawa do tabel w bazie danych, powinno się użyć polecenia

A. CREATE
B. SELECT
C. GRANT
D. REVOKE
Polecenie GRANT jest kluczowym elementem zarządzania uprawnieniami w systemach baz danych, takich jak MySQL, PostgreSQL czy Oracle. Umożliwia ono administratorom nadawanie określonych uprawnień użytkownikom lub rolom, co jest niezbędne do zapewnienia bezpieczeństwa danych oraz kontroli dostępu. Przykładowo, aby umożliwić użytkownikowi o nazwie 'Jan' dostęp do tabeli 'Klienci', można użyć polecenia: GRANT SELECT ON Klienci TO Jan; co przyznaje użytkownikowi prawo do odczytu danych z tej tabeli. Z perspektywy dobrych praktyk, zaleca się stosowanie minimalnych uprawnień, co oznacza, że użytkownik powinien mieć przyznane tylko te uprawnienia, które są mu niezbędne do wykonywania swoich zadań. Dzięki temu można zredukować ryzyko nieautoryzowanego dostępu do wrażliwych informacji. Dodatkowo, operacja GRANT może być stosowana w połączeniu z innymi poleceniami, takimi jak REVOKE, które służy do odbierania wcześniej nadanych uprawnień, co stanowi integralną część zarządzania bezpieczeństwem w bazach danych.

Pytanie 28

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

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

Pytanie 29

Jakie polecenie wydane z terminala systemu operacyjnego, które zawiera opcję --repair, pozwala na naprawę bazy danych?

A. mysqlcheck
B. mysqldump
C. create
D. truncate
Polecenie mysqlcheck jest narzędziem dostarczanym przez system zarządzania bazami danych MySQL, które służy do sprawdzania, naprawiania i optymalizowania tabel w bazach danych. Opcja --repair w tym kontekście umożliwia automatyczne naprawienie uszkodzonych tabel, co jest istotne dla zachowania integralności danych. Użytkownicy mogą zastosować to polecenie w sytuacjach, gdy występują problemy z danymi, na przykład po awarii systemu lub nieprawidłowym zamknięciu serwera. Przykład użycia to: 'mysqlcheck --repair --databases nazwa_bazy', co sprawia, że narzędzie automatycznie przeszuka wszystkie tabele w danej bazie i podejmie próby ich naprawy. Warto również zauważyć, że mysqlcheck pozwala na optymalizację tabel, co może przyspieszyć działanie bazy danych. W kontekście standardów, MySQL jako jeden z najpopularniejszych systemów bazodanowych jest szeroko stosowany w różnych aplikacjach, co czyni to narzędzie niezbędnym dla administratorów baz danych.

Pytanie 30

Tabele: Studenci, Zapisy, Zajecia są powiązane relacją. Aby wybrać jedynie nazwiska studentów oraz odpowiadające im idZajecia dla studentów z grupy 15, należy wydać kwerendę

Ilustracja do pytania
A. SELECT nazwisko, idZajecia FROM Studenci JOIN Zapisy ON Studenci.id = Zapisy.idStudenta WHERE grupa = 15;
B. SELECT nazwisko, idZajecia FROM Studenci INNER JOIN Zapisy WHERE grupa= 15;
C. SELECT nazwisko, idZajecia FROM Studenci INNER JOIN Zapisy ON Studenci.id = Zapisy.idStudenta;
D. SELECT nazwisko, idZajecia FROM Studenci JOIN Zapisy ON Studenci.id = Zapisy.idZajecia WHERE grupa = 15;
Wśród proponowanych rozwiązań pojawiają się charakterystyczne błędy, często spotykane przy pierwszych próbach pracy z relacyjnymi bazami danych. Bardzo łatwo jest pomylić się na etapie łączenia tabel, zwłaszcza gdy nie do końca rozumie się, jak działa klucz główny i obcy w praktyce. Jeden z typowych problemów polega na pominięciu warunku określającego, w jaki sposób tabele mają być połączone – wtedy system bazodanowy tworzy tzw. iloczyn kartezjański, czyli paruje każdy rekord z jednej tabeli z każdym z drugiej, co zwykle daje absurdalnie dużo wyników i nie ma nic wspólnego z rzeczywistością. Popularny błąd to też użycie niewłaściwych pól do łączenia – np. próba połączenia idStudenta z idZajecia, które są ze sobą kompletnie niepowiązane, bo reprezentują dwa różne byty. Z mojego doświadczenia wynika, że często myli się pole id w tabeli Studenci z polem idZajecia w tabeli Zapisy – to są zupełnie inne klucze i nie mają prawa się zgadzać. Inna pułapka pojawia się, gdy zapomni się o warunku WHERE filtrującym po konkretnej grupie, przez co wynik zawiera dane wszystkich studentów, a nie tylko tych z interesującej nas grupy. Trzeba też pamiętać, że poprawna kolejność oraz jawne stosowanie JOIN z warunkiem ON to nie tylko kwestia składni, ale i wydajności oraz czytelności kodu. Warto mocno utrwalić sobie, że łączenie przez JOIN i jasno określony warunek ON to podstawa dobrej praktyki i niemal zawsze sprawdza się przy pracy z większymi, złożonymi bazami danych – zupełnie inaczej niż domyślne, niejawne łączenia czy łączenie po złych polach.

Pytanie 31

Wskaż najefektywniejszą metodę wyczyszczenia wszystkich danych z tabeli adresy, nie wpływając na jej strukturę

A. DELETE * FROM adresy;
B. TRUNCATE TABLE adresy;
C. DELETE TABLE adresy;
D. DROP TABLE adresy;
TRUNCATE TABLE adresy; jest najszybszym sposobem na usunięcie wszystkich rekordów z tabeli bez usuwania jej struktury. Operacja TRUNCATE działa na poziomie strony, co oznacza, że nie przetwarza pojedynczych wierszy, jak ma to miejsce w przypadku DELETE. Dzięki temu, TRUNCATE jest znacznie wydajniejszy, szczególnie w przypadku dużych zbiorów danych. W praktyce, użycie TRUNCATE TABLE jest zalecane, gdy chcemy szybko oczyścić tabelę z danych, a następnie wprowadzić nowe rekordy. Warto jednak pamiętać, że TRUNCATE nie wywołuje kaskadowych usunięć w tabelach powiązanych z kluczami obcymi, co może być istotne w projektowaniu bazy danych. Użycie TRUNCATE może również przywrócić licznik identyfikatorów (np. AUTO_INCREMENT w MySQL) do wartości początkowej, co jest ważnym aspektem, jeśli zależy nam na tym, by nowe dane zaczynały się od określonej wartości. Praktyka wykorzystania TRUNCATE powinna być jednak stosowana ostrożnie, szczególnie w kontekście transakcji, ponieważ operacja ta nie jest odwracalna w przypadku dużych zbiorów danych, co skontrastować należy z DELETE, które można wykorzystać w ramach transakcji i przywrócić dane, jeśli zajdzie taka potrzeba. Dlatego, TRUNCATE TABLE jest zalecaną metodą w odpowiednich scenariuszach, ale jej użycie wymaga pełnego zrozumienia kontekstu bazy danych oraz powiązań między tabelami.

Pytanie 32

Na przedstawionej grafice widać fragment bazy danych. Jakie kwerendę należy zastosować, aby uzyskać nazwy produktów zakupionych przez klienta o id = 1?

Ilustracja do pytania
A. SELECT nazwa FROM produkty JOIN transakcje_produkty JOIN transakcje WHERE nr_klienta = 1
B. SELECT nazwa FROM produkty JOIN transakcje_produkty USING(nr_produktu) WHERE nr_klienta = 1
C. SELECT nazwa FROM produkty JOIN transakcje ON nr_produktu = nr_klienta WHERE nr_klienta = 1
D. SELECT nazwa FROM produkty JOIN transakcje_produkty USING(nr_produktu) JOIN transakcje USING(nr_transakcji) WHERE nr_klienta = 1
Prawidłowa odpowiedź używa właściwego połączenia tabel baz danych aby otrzymać nazwy produktów zakupionych przez klienta o konkretnym identyfikatorze. W SQL kwerenda z JOIN umożliwia łączenie danych z więcej niż jednej tabeli na podstawie wspólnego pola. W tym przypadku tabela produkty jest połączona z transakcje_produkty przez pole nr_produktu oraz tabela transakcje jest połączona z transakcje_produkty przez pole nr_transakcji. Dzięki temu możliwe jest uzyskanie pełnego obrazu transakcji dla klienta o id = 1. Zastosowanie USING(nr_produktu) i USING(nr_transakcji) upraszcza kwerendę eliminując konieczność jawnego określania kolumn po obu stronach klauzuli ON. Praktyczne zastosowanie takich kwerend jest podstawą w analizie danych sprzedażowych gdzie analiza historii zakupów klientów może dostarczyć cennych informacji dla działów marketingu oraz logistyki. Dobre praktyki obejmują również optymalizację zapytań SQL aby były jak najbardziej efektywne co jest kluczowe przy pracy z dużymi zbiorami danych.

Pytanie 33

Hermetyzacja to zasada programowania obiektowego, która wskazuje, że

A. klasy i obiekty mogą dzielić się funkcjonalnością.
B. typy pól w klasach i obiektach mogą być zmieniane dynamicznie w zależności od przypisywanych danych.
C. klasy i obiekty mogą mieć zdefiniowane metody wirtualne, które są realizowane w klasach lub obiektach pochodnych.
D. pola oraz metody, które są używane wyłącznie przez daną klasę lub obiekt, są ograniczane zasięgiem private lub protected.
Hermetyzacja (ang. encapsulation) to kluczowa zasada programowania obiektowego, która polega na ukrywaniu wewnętrznej logiki obiektów oraz ograniczaniu dostępu do ich wewnętrznych danych. Dzięki hermetyzacji, pola i metody, które są używane tylko przez daną klasę lub obiekt, mogą być oznaczone jako private lub protected. Oznaczenie private sprawia, że dany element jest dostępny tylko w obrębie klasy, w której został zdefiniowany, natomiast protected pozwala na dostęp do niego również w klasach potomnych. Przykładowo, w języku Java można zdefiniować klasę 'Samochod', w której pole 'numerRejestracyjny' jest oznaczone jako private. Oznacza to, że inne klasy nie mogą bezpośrednio modyfikować tego pola, co zwiększa bezpieczeństwo danych i zmniejsza ryzyko błędów. Hermetyzacja wspiera również zasadę pojedynczej odpowiedzialności, ograniczając zasięg zmian w kodzie do konkretnej klasy. Standardy programowania obiektowego, takie jak SOLID, również podkreślają znaczenie hermetyzacji jako sposobu na osiągnięcie lepszej organizacji kodu i jego większej elastyczności. W praktyce, hermetyzacja pozwala programistom tworzyć bardziej spójne i łatwiejsze w utrzymaniu systemy, gdzie komponenty są od siebie odseparowane, a interakcje między nimi są dobrze zdefiniowane.

Pytanie 34

Jakie z wymienionych par znaczników HTML działają w ten sam sposób na stronie internetowej, jeżeli żadne style CSS nie zostały określone?

A. <meta> oraz <title>
B. <b> oraz <big>
C. <p> oraz <h2>
D. <b> oraz <strong>
Odpowiedź <b> i <strong> jest poprawna, ponieważ oba znaczniki służą do podkreślania ważności tekstu, aczkolwiek ich semantyka różni się nieco. Znacznik <b> jest używany do pogrubienia tekstu bez dodatkowego znaczenia semantycznego, natomiast <strong> nie tylko pogrubia tekst, ale dodatkowo wskazuje, że dany fragment jest istotny w kontekście treści. To rozróżnienie jest ważne w kontekście dostępności i SEO, ponieważ wyszukiwarki oraz technologie asystujące mogą traktować tekst oznaczony jako <strong> jako bardziej znaczący. Przykładem zastosowania może być nagłówek artykułu, w którym ważne informacje są wyróżnione znacznikiem <strong>, a nie tylko wizualnie poprzez <b>. Standardy W3C promują stosowanie znaczników z odpowiednią semantyką, co wspiera lepszą strukturę dokumentu HTML oraz jego interpretację przez różne urządzenia. Dlatego zaleca się stosowanie <strong> tam, gdzie chcemy przekazać znaczenie, zamiast używać <b> bez głębszego sensu.

Pytanie 35

W nagłówku dokumentu HTML umieszczono ```Strona miłośników psów``` Tekst ten pojawi się

A. na pasku tytułowym przeglądarki
B. w zawartości strony, w pierwszym widocznym nagłówku
C. w zawartości strony, na banerze
D. w polu adresowym, przy podanym adresie URL
Tag <title> w HTML to naprawdę istotny element dla każdej strony internetowej. Jest to coś, co pomaga ludziom szybko zorientować się, o co chodzi na danej stronie, zwłaszcza gdy mamy otwartych kilka kart w przeglądarce. Dobry tytuł nie tylko ułatwia nawigację, ale także ma spory wpływ na to, jak strona wypada w wyszukiwarkach. Z własnego doświadczenia mogę powiedzieć, że jeśli tytuł jest konkretny i zawiera ważne słowa kluczowe, to zwiększa szanse na przyciągnięcie użytkowników. Na przykład, jeśli strona jest dla miłośników psów, to warto w tytule umieścić słowa takie jak 'psy' czy 'opiekunowie psów'. Taki przykład mógłby wyglądać tak: <title>Miłośnicy psów - Porady, opieka, zdrowie</title>. Dobrze zrobiony tytuł może też poprawić CTR, czyli współczynnik klikalności, co jest ważne, żeby przyciągnąć więcej odwiedzających.

Pytanie 36

Która metoda obiektu location w języku JavaScript pozwala na zamianę aktualnego dokumentu na dokument z adresu podanego w parametrze metody?

A. open();
B. close();
C. replace();
D. reaload();
Metoda replace() obiektu location w JavaScript jest kluczowym narzędziem umożliwiającym zastąpienie bieżącego dokumentu nowym dokumentem wskazywanym przez zdefiniowany adres URL. Kiedy używamy location.replace(url), przeglądarka ładuje nowy dokument z podanego adresu, a bieżąca strona nie pozostaje w historii przeglądania, co oznacza, że użytkownik nie może wrócić do niej za pomocą przycisku "wstecz". Jest to szczególnie użyteczne w scenariuszach, gdy chcemy uniknąć zbędnego gromadzenia historii, na przykład w aplikacjach jednoskalowych (SPA), gdzie nawigacja pomiędzy różnymi widokami powinna być płynna. Przykładowo, po zalogowaniu użytkownika, można przekierować go na stronę główną aplikacji, używając location.replace('/home'). Warto również wspomnieć, że stosowanie tej metody jest zgodne z najlepszymi praktykami w zakresie UX, gdyż pozwala na lepsze zarządzanie historią przeglądarki, co może poprawić doświadczenia użytkownika.

Pytanie 37

Podaj nazwę Systemu Zarządzania Treścią, którego logo jest pokazane na dołączonym rysunku?

Ilustracja do pytania
A. WordPress
B. Drupal
C. Joomla!
D. MediaWiki
Odpowiedź Joomla! jest poprawna ponieważ logo przedstawione na rysunku jest oficjalnym znakiem identyfikacyjnym tego systemu zarządzania treścią CMS. Joomla! to jeden z najpopularniejszych systemów CMS używany do tworzenia stron internetowych oraz aplikacji. Dzięki swojej elastyczności i dużej liczbie dostępnych rozszerzeń Joomla! pozwala na tworzenie zarówno prostych stron wizytówkowych jak i zaawansowanych serwisów e-commerce. Główne zalety Joomla! to intuicyjny interfejs użytkownika który ułatwia zarządzanie treściami oraz silna społeczność użytkowników zapewniająca wsparcie techniczne i rozwój oprogramowania. Joomla! jest zgodna z wieloma standardami webowymi co czyni ją wszechstronnym narzędziem do wdrażania profesjonalnych projektów internetowych. Korzystanie z Joomla! umożliwia szybkie i efektywne tworzenie responsywnych stron które dobrze współdziałają na różnych urządzeniach mobilnych. Praktyczne zastosowanie Joomla! obejmuje tworzenie stron korporacyjnych portali społecznościowych oraz serwisów informacyjnych. Dzięki modulowej architekturze użytkownicy mogą łatwo dostosowywać funkcjonalność swoich stron do specyficznych potrzeb branżowych co jest zgodne z dobrymi praktykami projektowania zorientowanego na użytkownika. Platforma Joomla! obsługuje także wielojęzyczność i różne metody uwierzytelniania co czyni ją idealnym rozwiązaniem dla międzynarodowych projektów.

Pytanie 38

Technika projektowania algorytmów, która polega na dzieleniu problemu na dwa lub więcej mniejszych podproblemów, aż do momentu gdy fragmenty staną się na tyle proste, że można je rozwiązać bezpośrednio, to

A. sito Eratostenesa
B. słowa Fibonacciego
C. dziel i zwyciężaj
D. sortowanie przez wybór
Wybór innych odpowiedzi, takich jak sito Eratostenesa, sortowanie przez wybór czy słowa Fibonacciego, wskazuje na pewne nieporozumienia dotyczące technik projektowania algorytmów. Sito Eratostenesa jest klasycznym algorytmem służącym do znajdowania liczb pierwszych w określonym zakresie, wykorzystując podejście oznaczania wielokrotności, a więc nie ma nic wspólnego z podziałem problemu. Z kolei sortowanie przez wybór to prosty algorytm sortowania, który realizuje sortowanie poprzez wielokrotne wybieranie najmniejszego elementu i umieszczanie go na początku. Ten algorytm nie wykorzystuje strategii dzielenia problemu, ponieważ działa na zasadzie iteracyjnego przeszukiwania danych. Słowa Fibonacciego dotyczą zasady generowania ciągu liczb, która również nie ma związku z metodą dziel i zwyciężaj. Typowym błędem jest mylenie tych koncepcji z bardziej złożonymi schematami rozwiązywania problemów. Przykładem może być niewłaściwe zastosowanie prostych algorytmów, które nie są w stanie efektywnie rozwiązywać bardziej złożonych problemów, co prowadzi do nieoptymalnych wyników. Ważne jest zrozumienie, że odpowiednie zastosowanie odpowiednich metod algorytmicznych jest kluczowe w informatyce oraz inżynierii oprogramowania.

Pytanie 39

Możliwość utworzenia konta użytkownika jan z hasłem janPass można osiągnąć przy pomocy polecenia

A. CREATE USER 'jan'@'%localhost' IDENTIFIED VIA mysql_native_password USING 'janPass';
B. CREATE USER 'jan'@'localhost' PASSWORD EXPIRE;
C. CREATE USER 'jan'@'localhost';
D. CREATE USER 'jan'@'localhost' IDENTIFIED BY 'janPass';
Odpowiedź ta jest poprawna, ponieważ prawidłowo wykorzystuje składnię polecenia SQL do tworzenia użytkownika w bazie danych MySQL. Polecenie 'CREATE USER 'jan'@'localhost' IDENTIFIED BY 'janPass';' tworzy nowego użytkownika o nazwie 'jan' z hasłem 'janPass', które jest wymagane do autoryzacji. Użycie 'IDENTIFIED BY' jest zgodne z najlepszymi praktykami w zakresie bezpieczeństwa, ponieważ pozwala na bezpośrednie zdefiniowanie hasła w momencie tworzenia konta użytkownika. W praktyce, stworzenie użytkownika z odpowiednim hasłem jest kluczowym krokiem w zarządzaniu bazą danych, zwłaszcza w kontekście bezpieczeństwa danych. Umożliwia to ograniczenie dostępu do zasobów bazy danych tylko do autoryzowanych użytkowników. Dodatkowo, w codziennej pracy należy regularnie aktualizować hasła użytkowników oraz stosować złożone hasła, aby zwiększyć poziom bezpieczeństwa. Warto również zaznaczyć, że w nowoczesnych wersjach MySQL możliwe jest użycie dodatkowych opcji, takich jak 'REQUIRE SSL', dla podniesienia poziomu zabezpieczeń przy nawiązywaniu połączeń.

Pytanie 40

Jakie zapytanie SQL umożliwi wyszukanie z podanej tabeli tylko imion i nazwisk pacjentów, którzy przyszli na świat przed rokiem 2002?

Ilustracja do pytania
A. SELECT imie, nazwisko FROM Pacjenci WHERE rok_urodzenia < 2002
B. SELECT * FROM Pacjenci WHERE rok_urodzenia LIKE 2002
C. SELECT * FROM Pacjenci WHERE rok_urodzenia <= 2002
D. SELECT imie, nazwisko FROM Pacjenci WHERE data_ostatniej_wizyty < 2002
To zapytanie SQL, które napisałeś, czyli SELECT imie, nazwisko FROM Pacjenci WHERE rok_urodzenia < 2002, jest całkiem trafione. Po pierwsze, używasz operatora SELECT, żeby wskazać, jakie kolumny chcesz zwrócić - czyli imię i nazwisko. To jest dokładnie to, co było potrzebne. Po drugie, warunek WHERE z rokiem urodzenia zapewnia, że do wyników dostają się tylko pacjenci, którzy przyszli na świat przed 2002 rokiem. No i to jest ważne, bo masz tutaj operator mniejszości <, który wyklucza sam rok 2002. Takie podejście jest super przydatne w bazach danych, bo pozwala na filtrowanie informacji w oparciu o lata, co często wykorzystuje się w raportach i analizach. Generalnie, dobre praktyki w SQL mówią, że warto precyzyjnie określać, jakie kolumny chcesz uwzględnić, bo to pomaga odciążyć system i zrobione zapytanie będzie działać wydajniej. Twoje zapytanie nie tylko spełnia wymagania, ale także jest optymalne, co jest naprawdę istotne w pracy z bazami danych.