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: 30 lipca 2026 22:05
  • Data zakończenia: 30 lipca 2026 22:22

Egzamin zdany!

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

W języku CSS określono formatowanie znacznika h1 według poniższego wzoru. Zakładając, że do znacznika h1 nie dodano żadnego innego formatowania, wskaż sposób formatowania tego znacznika.

h1 {
    font-style: oblique;
    font-variant: small-caps;
    text-align: right;
}
Ilustracja do pytania
A. B.
B. A.
C. D.
D. C.
Niestety, Twoja odpowiedź nie jest prawidłowa. Wszystkie odpowiedzi innych niż 'C' nie spełniają kryteriów określonych dla formatowania znacznika h1 w CSS. Formatowanie styli CSS polega na zrozumieniu i zastosowaniu właściwości CSS. W tym przypadku, h1 powinien mieć pochyłą czcionkę ('font-style: oblique'), małe wielkie litery ('font-variant: small-caps') i być wyrównany do prawej ('text-align: right'). Gdybyśmy zastosowali inne właściwości, efekt końcowy niewątpliwie byłby inny. Częstym błędem jest nieuwzględnienie wszystkich właściwości podanych w definicji stylu, co prowadzi do nieprawidłowego renderowania elementu. Inny błąd to mylenie właściwości - na przykład, 'font-style: oblique' nie jest tym samym co 'font-style: italic', chociaż oba skutkują pochyleniem czcionki. Pamiętaj, że precyzyjne zrozumienie i zastosowanie właściwości CSS jest kluczem do tworzenia efektywnych i estetycznych stron internetowych.

Pytanie 2

Tabele Osoby oraz Adresy są ze sobą połączone relacją typu jeden do wielu. Jakie zapytanie SQL powinno być użyte, aby poprawnie wyświetlić nazwiska oraz odpowiadające im miasta?

Ilustracja do pytania
A. SELECT nazwisko, Miasto FROM Osoby JOIN Adresy ON Osoby.Adresy_id=Adresy.id
B. SELECT nazwisko, Miasto FROM Osoby, Adresy WHERE Osoby.id=Adresy.id
C. SELECT nazwisko, Miasto FROM Osoby.Adresy_id=Adresy.id FROM Osoby, Adresy
D. SELECT nazwisko, Miasto FROM Osoby, Adresy
Użycie składni JOIN w zapytaniu SQL to naprawdę dobra decyzja, jeśli chodzi o pokazywanie powiązanych danych z różnych tabel w bazie danych. W odpowiedzi zastosowałeś INNER JOIN, co jest jednym z tych najpopularniejszych sposobów łączenia tabel, zwłaszcza gdy mamy wspólny klucz. W tym przypadku klucz obcy Adresy_id w tabeli Osoby łączy się z kluczem głównym id w tabeli Adresy, co pozwala na wyciągnięcie nazwisk z Osób oraz odpowiadających im miast z Adresów. W praktyce takie użycie JOIN jest zgodne z najlepszymi praktykami, bo ułatwia zarządzanie danymi i sprawia, że wszystko jest czytelniejsze. Gdy pracujesz nad bardziej skomplikowanymi systemami, umiejętność poprawnego łączenia tabel jest kluczowa. Umożliwia to utrzymanie porządku w danych i zmniejszenie ich powtarzalności przez normalizację. I naprawdę, takie zapytania są mega przydatne w analizie danych, generowaniu raportów czy w aplikacjach, które operują na dużych zbiorach, gdzie wydajność i przejrzystość kodu SQL są niezwykle ważne.

Pytanie 3

Który zapis w dokumencie HTML połączy stronę z zewnętrznym arkuszem stylów style.css?

A.
<a href="/style.css">
B.
<link rel="stylesheet' src="/style.css">
C.
<link rel="stylesheet" href="/style.css">
D.
<a src="/style.css">
Zewnętrzny arkusz stylów dołącza się w <head> znacznikiem <link rel="stylesheet" href="/style.css"> - rel określa typ relacji, a href wskazuje plik. Dlatego poprawny jest ten zapis.

Pytanie 4

W jaki sposób funkcjonuje instrukcja do łączenia wyników zapytań INTERSECT w SQL?

A. Zwraca te wiersze, które wystąpiły w wyniku drugiego zapytania, natomiast nie było ich w wyniku pierwszego zapytania
B. Zwraca te wiersze, które wystąpiły w wyniku pierwszego zapytania, jednak nie były obecne w wyniku drugiego zapytania
C. Zwraca zbiór wyników z pierwszego zapytania oraz zbiór wyników z drugiego zapytania, automatycznie eliminując powtarzające się wiersze
D. Zwraca część wspólną wyników dwóch zapytań
Wszystkie niepoprawne odpowiedzi nie oddają istoty działania instrukcji INTERSECT. Opis dotyczący zwracania listy wyników z obu zapytań oraz usuwania powtarzających się wierszy jest mylący, ponieważ INTERSECT nie łączy wyników, lecz filtruje je, ograniczając się tylko do wspólnych wierszy. Ponadto wskazanie, że instrukcja ta zwraca wiersze z pierwszego zapytania, które nie znajdują się w drugim, jest błędne, ponieważ dotyczy to operatora EXCEPT, który działa na zasadzie różnicy zbiorów. Również stwierdzenie, że INTERSECT zwraca wiersze z drugiego zapytania, które nie występują w pierwszym, również jest mylące i nie ma podstaw w rzeczywistości działania tej instrukcji. W rzeczywistości, INTERSECT nie operuje na zasadzie różnic, lecz na zasadzie przecięcia zbiorów, co oznacza, że korzysta z logiki logicznego AND, a nie OR. Podsumowując, kluczowym elementem użycia INTERSECT jest zrozumienie, że jego zadaniem jest wyodrębnienie wspólnych elementów, co czyni go narzędziem do porównywania i analizy danych, a nie do łączenia ich czy analizy różnic.

Pytanie 5

Przykład zapytania SQL przedstawia instrukcję:

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

Pytanie 6

W języku JavaScript zapis w ramce oznacza, że

x = przedmiot.nazwa();
A. nazwa jest atrybutem klasy przedmiot
B. zmienna x będzie przechowywać wynik działania funkcji przedmiot
C. nazwa jest cechą obiektu przedmiot
D. zmienna x będzie zawierać wynik działania metody nazwa
Instrukcja x = przedmiot.nazwa(); w JavaScripcie oznacza wywołanie metody nazwa na obiekcie przedmiot, a do zmiennej x zostaje podstawiony zwrócony wynik. Kluczowe są tu dwa elementy: kropka oraz nawiasy okrągłe. Zapis przedmiot.nazwa bez nawiasów odnosiłby się tylko do samej funkcji (referencji do metody), natomiast dodanie () powoduje jej wykonanie i dopiero rezultat tego wywołania trafia do zmiennej.
W praktyce wygląda to tak: jeśli obiekt przedmiot ma zdefiniowaną metodę nazwa, np. const przedmiot = { nazwa() { return "Monitor"; } }; to po instrukcji x = przedmiot.nazwa(); zmienna x będzie równa tekstowi "Monitor". To jest bardzo typowy wzorzec: obiekt.metoda() zwraca jakąś wartość (string, liczbę, obiekt, tablicę, czasem też undefined), a my ją przechwytujemy do zmiennej, żeby dalej z nią pracować. W dobrych praktykach programistycznych rozdziela się metody, które coś zwracają (tzw. query) od metod, które tylko wykonują akcję (np. zmieniają stan obiektu, ale nic nie zwracają). W tym pytaniu zakładamy, że nazwa zwraca wartość, więc przypisanie do x ma sens. Moim zdaniem warto od początku wyrabiać nawyk czytania takiego kodu: po lewej zmienna, po prawej wyrażenie, które jest obliczane. Najpierw wykonywana jest metoda nazwa(), a dopiero potem wynik trafia do x. Taki schemat pojawia się non stop w realnych projektach frontendowych i backendowych w JS, np. const wynik = koszyk.policzSume(); albo const tytul = dokument.getElementById("id").textContent; – w obu przypadkach zmienna przechowuje rezultat działania metody.

Pytanie 7

Którego polecenia użyć, aby włączyć do skryptu zawartość pliku egzamin.php z kodem PHP?

A.
getfile("egzamin.php");
B.
fopen("egzamin.php");
C.
include("egzamin.php");
D.
fgets("egzamin.php");
fopen() tylko OTWIERA plik (zwraca uchwyt), a fgets() czyta wiersz jako tekst - nie wykonują dołączonego kodu PHP. getfile() nie istnieje. Dołączenie i wykonanie pliku daje include("egzamin.php");.

Pytanie 8

Który kod HTML poprawnie tworzy akapit, w którym jedno słowo jest wyróżnione znacznikiem <mark>, a inne oznaczone jako ważne <em>, przy prawidłowym zamknięciu wszystkich znaczników?

A.
<p>Tekst może być <mark>wyróżniony</mark> albo <em>istotny dla autora</p>
B.
<p>Tekst może być <mark>wyróżniony albo <i>istotny</i> dla autora</mark></p>
C.
<p>Tekst może być <mark>wyróżniony albo <em>istotny</em> dla autora</mark></p>
D.
<p>Tekst może być <mark>zaznaczony</mark> albo <em>istotny</em> dla autora</p>
Poprawny kod to
<p>Tekst może być <mark>zaznaczony</mark> albo <em>istotny</em> dla autora</p>
Tu <mark> wyróżnia pojedyncze słowo, <em> oznacza inne jako ważne, a każdy znacznik ma swój znacznik zamykający we właściwym miejscu. Dlatego ta wersja jest prawidłowa.

Pytanie 9

Które zadanie programistyczne powinno być realizowane po stronie serwera?

A. zmiana stylu elementu HTML wywołana ruchem kursora
B. zapisanie danych z aplikacji internetowej w bazie danych
C. sprawdzanie treści pola tekstowego w czasie rzeczywistym
D. pokazywanie i ukrywanie elementów strony zależnie od kursora
Pozostałe zadania wykonuje przeglądarka po stronie KLIENTA, bo dotyczą wyglądu i interakcji. Zmiana stylu elementu przy ruchu kursora, sprawdzanie pola w czasie rzeczywistym oraz pokazywanie i ukrywanie elementów to działania JavaScriptu w przeglądarce. Zapis do bazy należy do serwera.

Pytanie 10

Jakiego typu zmienną tworzy deklaracja var x = "true"; w języku JavaScript?

A. nieokreślonego (undefined)
B. logicznego (boolean)
C. string (ciąg znaków)
D. liczbowego
Pozostałe typy nie pasują. Gdyby napisano var x = true; (bez cudzysłowów), byłby to typ LOGICZNY - ale cudzysłowy zmieniają to w tekst. Typ liczbowy dotyczy liczb, a undefined oznacza zmienną bez przypisanej wartości. "true" w cudzysłowach to string.

Pytanie 11

W SQL, po wykonaniu przedstawionych poleceń GRANT, prawo do edytowania struktury tabeli oraz jej usunięcia zostanie przyznane

GRANT ALL ON firmy TO 'adam'@'localhost';
GRANT ALTER, CREATE, DROP ON firmy TO 'anna'@'localhost';
GRANT SELECT, INSERT, UPDATE ON firmy TO 'tomasz'@'localhost';
A. Tomaszowi i Adamowi
B. tylko Annie
C. Tomaszowi i Annie
D. Adamowi i Annie
SQL jest językiem służącym do zarządzania bazami danych a przydzielanie uprawnień jest kluczowym aspektem utrzymania ich bezpieczeństwa i integralności. W powyższym kontekście niepoprawne odpowiedzi wynikają z błędnego zrozumienia mechanizmu przydzielania uprawnień. W przypadku Tomasza polecenie GRANT SELECT INSERT UPDATE ON firmy odnosi się do uprawnień które nie obejmują zmiany struktury tabeli czy jej usuwania. SELECT INSERT i UPDATE to operacje które dotyczą przetwarzania danych wewnątrz tabeli a nie jej struktury. Podobnie przydzielenie uprawnień tylko Annie nie obejmowałoby pełnego zestawu uprawnień do wszystkich operacji które Adam otrzymuje poprzez GRANT ALL. W praktyce często spotyka się błędne założenie że przydzielenie wszystkich uprawnień jednemu użytkownikowi jest optymalnym rozwiązaniem jednak w rzeczywistości wiąże się to z potencjalnym ryzykiem związanym z bezpieczeństwem dlatego właściwe zarządzanie uprawnieniami wymaga głębokiego zrozumienia i przemyślanej strategii. Dzięki zrozumieniu różnicy między tymi uprawnieniami można lepiej planować bezpieczeństwo i zarządzanie dostępem do bazy danych w organizacji co jest zgodne z najlepszymi praktykami branżowymi.

Pytanie 12

Która praktyka ZWIĘKSZA czytelność kodu źródłowego?

A. nadawanie zmiennym jednoliterowych nazw
B. stosowanie wcięć i opisowych nazw zmiennych
C. pisanie jak najdłuższych linii w jednym wierszu
D. unikanie jakichkolwiek komentarzy
Czytelność kodu najbardziej poprawiają WCIĘCIA (pokazujące strukturę bloków) oraz OPISOWE nazwy zmiennych i funkcji, z których od razu wynika ich rola. Dzięki temu kod łatwiej zrozumieć i utrzymać. Dlatego czytelność zwiększa stosowanie wcięć i opisowych nazw.

Pytanie 13

W pliku konfiguracyjnym serwera Apache httpd.conf linia kodu Listen 120 oznacza

A. maksymalną liczbę jednoczesnych połączeń z sieci do serwera.
B. numer portu, na którym nasłuchuje serwer.
C. czwarty oktet adresu IP serwera.
D. jeden z numerów kodu błędu odpowiedzi HTTP.
Wpis „Listen 120” w pliku httpd.conf informuje serwer Apache, na jakim porcie ma nasłuchiwać przychodzących połączeń TCP. W praktyce oznacza to: jeżeli ktoś wchodzi na serwer, to ich przeglądarka łączy się z adresem IP serwera właśnie na ten numer portu. Standardowo HTTP działa na porcie 80, HTTPS na 443, ale w konfiguracji można ustawić dowolny inny port, np. 8080, 8000 czy właśnie 120. Dzięki dyrektywie Listen Apache „wiąże się” (binduje) z wybranym portem i zaczyna tam czekać na żądania HTTP. To jest podstawowy element konfiguracji warstwy sieciowej serwera WWW. W środowiskach produkcyjnych najczęściej stosuje się Listen 80 i Listen 443, czasem dodatkowe porty dla paneli administracyjnych, środowisk testowych albo aplikacji działających równolegle. Warto też wiedzieć, że można podać razem adres IP i port, np. Listen 192.168.0.10:80, wtedy Apache nasłuchuje tylko na konkretnym interfejsie sieciowym, co jest dobrą praktyką bezpieczeństwa, bo ogranicza ekspozycję usług. W nowoczesnych konfiguracjach często występuje kilka dyrektyw Listen, gdy serwer obsługuje wiele adresów IP lub protokołów. Z mojego doświadczenia porządek w portach i świadome używanie Listen bardzo ułatwia diagnostykę problemów typu „serwer nie odpowiada” czy konflikty z innymi usługami (np. innym serwerem WWW albo kontenerem Docker) działającymi na tej samej maszynie.

Pytanie 14

W języku SQL, aby dodać atrybut klucza podstawowego do pola id w istniejącej tabeli produkt należy użyć składni

A. ALTER TABLE produkt ADD PRIMARY KEY (id)
B. ALTER TABLE produkt DROP PRIMARY KEY
C. ALTER TABLE produkt ALTER COLUMN id INT
D. ALTER TABLE produkt DROP CONSTRAINT id
Poprawna składnia to ALTER TABLE produkt ADD PRIMARY KEY (id), bo dokładnie to polecenie dodaje do istniejącej tabeli nowy klucz podstawowy oparty na kolumnie id. Instrukcja ALTER TABLE służy do modyfikowania struktury tabeli, a klauzula ADD PRIMARY KEY definiuje ograniczenie (constraint) typu klucz podstawowy dla wskazanej kolumny lub zestawu kolumn. W praktyce oznacza to, że kolumna id musi być unikalna i nie może przyjmować wartości NULL. Silnik bazy danych (np. MySQL, PostgreSQL, SQL Server) zwykle tworzy do tego indeks typu UNIQUE, który przyspiesza wyszukiwanie po kluczu głównym.
Moim zdaniem warto pamiętać, że takie polecenie będzie działać tylko wtedy, gdy dane w kolumnie id już spełniają warunki klucza podstawowego: brak duplikatów i brak wartości pustych. W realnym projekcie często robi się to w dwóch krokach: najpierw uzupełnia się brakujące wartości, usuwa lub poprawia duplikaty, a dopiero potem dodaje PRIMARY KEY. Przykładowo:
ALTER TABLE produkt ADD PRIMARY KEY (id);
W wielu systemach, zwłaszcza w aplikacjach webowych, kolumna id jest też często ustawiana jako AUTO_INCREMENT (MySQL) lub używa sekwencji (PostgreSQL, Oracle). Wtedy definicja tabeli przy tworzeniu może wyglądać np. tak:
CREATE TABLE produkt (id INT PRIMARY KEY AUTO_INCREMENT, nazwa VARCHAR(100));
Jeśli jednak tabela już istnieje i kolumna id była zwykłą kolumną, to właśnie ALTER TABLE ... ADD PRIMARY KEY (id) jest standardowym, poprawnym sposobem nadania jej roli klucza głównego. To rozwiązanie jest zgodne z ogólną składnią SQL i dobrą praktyką modelowania relacyjnych baz danych, gdzie każda tabela powinna mieć jasno zdefiniowany klucz podstawowy, najlepiej prosty, stabilny i jednoznaczny.

Pytanie 15

Do usuwania czego stosuje się w MySQL polecenie TRUNCATE TABLE?

A. baz danych
B. wierszy tabeli
C. tabel
D. kolumn
Polecenie TRUNCATE TABLE usuwa z tabeli WSZYSTKIE wiersze naraz, zostawiając jej strukturę (kolumny, definicję) nienaruszoną. Działa szybciej niż DELETE bez warunku, bo nie kasuje wiersz po wierszu. Dlatego TRUNCATE TABLE usuwa wiersze tabeli.

Pytanie 16

Wszelkie dane, które dostarczają informacji o innych danych, nazywane są

A. metadata.
B. metalanguage.
C. markup language.
D. databus.
Poprawna odpowiedź to „metadata”, czyli po polsku metadane. Metadane to wszystkie dane, które opisują inne dane. Można powiedzieć, że są to „informacje o informacji”. Przykład z życia: plik zdjęcia JPG. Sam obraz to dane, a takie elementy jak data wykonania, model aparatu, rozdzielczość, lokalizacja GPS, autor – to właśnie metadane zapisane np. w formacie EXIF. Podobnie w świecie WWW: w dokumencie HTML mamy sekcję <head>, a w niej znaczniki <meta>. Te znaczniki nie są wyświetlane użytkownikowi jako treść strony, ale przekazują wyszukiwarkom i przeglądarkom informacje o stronie, np. opis, słowa kluczowe, kodowanie znaków, język. To jest klasyczny przykład metadanych w praktyce. W bazach danych metadane to np. definicje tabel, typy kolumn, klucze główne, indeksy, ograniczenia. System zarządzania bazą danych przechowuje je w tzw. katalogach systemowych. Dzięki temu wie, jak interpretować rekordy, jakie są relacje między tabelami, jakie są dopuszczalne wartości. Bez metadanych dane byłyby po prostu chaotycznym zbiorem bitów, z którego niewiele da się wyciągnąć. W standardach branżowych stosuje się różne schematy metadanych, np. Dublin Core dla zasobów cyfrowych, czy schema.org dla stron internetowych, aby wyszukiwarki lepiej rozumiały zawartość. Z mojego doświadczenia warto od początku myśleć o metadanych jako o czymś, co podnosi jakość systemu: ułatwia wyszukiwanie, integrację, automatyczne przetwarzanie danych. Dobra praktyka jest taka, żeby dla ważnych zasobów (pliki, rekordy w bazie, strony WWW, API) zawsze planować strukturę metadanych: kto utworzył, kiedy, jaki typ, wersja, status. To bardzo pomaga przy utrzymaniu aplikacji, debugowaniu i rozwoju systemu.

Pytanie 17

Którego atrybutu użyć, aby scalić w PIONIE dwie sąsiednie komórki tabeli?

A.
colspan
B.
cellpadding
C.
rowspan
D.
cellspacing
Komórki tabeli scala się dwoma atrybutami: poziomo colspan, a pionowo rowspan. Zapis rowspan="2" sprawia, że komórka rozciąga się na dwa wiersze, „wchłaniając” komórkę poniżej - dzięki temu np. jeden nagłówek może obejmować kilka rzędów tabeli. Dlatego do scalania w pionie służy rowspan.

Pytanie 18

Aby przeanalizować rozkład ilościowy różnych kolorów na zdjęciu, należy skorzystać z

A. balansu kolorów
B. histogramu
C. rozmycia Gaussa
D. desaturacji
Desaturacja to taki proces, który sprawia, że kolory w obrazku są mniej intensywne, co czasem prowadzi do efektu czarno-białego albo po prostu bardziej stonowanej kolorystyki. Moim zdaniem, w niektórych sytuacjach może się to przydać, ale nie daje informacji o tym, jak kolory się rozkładają. Ludzie mogą pomyśleć, że desaturacja pomoże im w analizie kolorów, ale tak naprawdę to tylko zasłania różnice i nie ujawnia, co tak naprawdę jest w obrazie. Balans kolorów to sprawa dostosowywania intensywności poszczególnych kolorów, co zmienia wygląd zdjęcia, ale też nie mówi nic o ich ilościowym rozkładzie. A rozmycie Gaussa to sposób na wygładzanie obrazów, żeby zredukować szumy, a nie do analizy kolorów. Wybierając jedną z tych opcji, można łatwo pomylić się i sądzić, że zyskuje się jakieś dane o rozkładzie kolorów, podczas gdy tak naprawdę żadna z tych metod tego nie robi. Dlatego lepiej trzymać się histogramu, bo on naprawdę pokazuje, co się dzieje z kolorami w obrazach.

Pytanie 19

Grafik pragnie zmienić obraz JPG na format PNG bez utraty jakości, tak aby w obszarach, gdzie pierwotnie był kolor biały, w finalnym obrazie występowała przezroczystość. W tym celu powinien

A. dodać kanał alfa
B. zmniejszyć rozdzielczość obrazu
C. zaimportować obraz do edytora grafiki wektorowej
D. przekształcić obraz w odcienie szarości
Dodanie kanału alfa do obrazu JPG, aby uzyskać przezroczystość w kolorze białym, jest najlepszym podejściem. Kanał alfa to dodatkowa warstwa informacji w pliku graficznym, która definiuje przezroczystość każdego piksela. W formacie PNG, kanał alfa umożliwia tworzenie przezroczystych tła, co jest szczególnie przydatne w projektach, gdzie elementy graficzne muszą być nakładane na różne tła. W praktyce, aby uzyskać pożądany efekt, grafik powinien użyć narzędzi do edycji grafiki, takich jak Adobe Photoshop, GIMP lub Inkscape. Po zaimportowaniu obrazu JPG, użytkownik może użyć funkcji selekcji koloru, aby zaznaczyć obszary białe, a następnie usunąć je, co wprowadzi przezroczystość w tych miejscach. Na końcu, obraz można zapisać jako PNG, co zachowa wprowadzone zmiany. Tego typu operacje są standardem w pracy z grafiką komputerową, szczególnie w projektach związanych z web designem i tworzeniem materiałów reklamowych.

Pytanie 20

W tabeli podzespoly należy zaktualizować wartość pola URL na "toshiba.pl" dla wszystkich wierszy, gdzie producent to TOSHIBA. W SQL zapis tej modyfikacji będzie wyglądać następująco:

A. UPDATE podzespoly SET URL = 'toshiba.pl' WHERE producent = 'TOSHIBA';
B. UPDATE podzespoly SET URL = 'toshiba.pl'
C. UPDATE podzespoly.producent = 'TOSHIBA' SET URL = 'toshiba.pl';
D. UPDATE producent = 'TOSHIBA' SET URL = 'toshiba.pl';
Odpowiedź jest poprawna, ponieważ zawiera właściwą składnię polecenia SQL do aktualizacji wartości w tabeli. W SQL, instrukcja UPDATE jest używana do modyfikacji danych w istniejących rekordach. W tym przypadku, polecenie 'UPDATE podzespoly SET URL = 'toshiba.pl' WHERE producent = 'TOSHIBA';' zmienia wartość pola URL na 'toshiba.pl' tylko dla tych rekordów, gdzie producent jest równy 'TOSHIBA'. To podejście jest zgodne z dobrymi praktykami w zarządzaniu bazami danych, ponieważ pozwala na precyzyjne określenie, które rekordy mają zostać zaktualizowane. W praktyce, przed wykonaniem takiej aktualizacji, zaleca się zawsze wykonać zapytanie SELECT, aby zweryfikować, które rekordy zostaną zmodyfikowane. Zapewnia to dodatkową warstwę kontroli i zabezpiecza przed niezamierzonymi zmianami. Prawidłowe użycie klauzuli WHERE jest kluczowe, aby nie zmienić wszystkich rekordów w tabeli, co mogłoby doprowadzić do utraty danych. Zrozumienie struktury SQL i zasad działania instrukcji jest fundamentem pracy z relacyjnymi bazami danych.

Pytanie 21

Na podstawie filmu wskaż, która cecha dodana do stylu CSS zamieni miejscami bloki aside i nav, pozostawiając w środku blok section?

A. nav { float: left; } aside { float: left; }
B. aside {float: left; }
C. nav { float: right; } section { float: right; }
D. nav { float: right; }
Prawidłowa odpowiedź opiera się na tym, jak działają własności float w CSS i w jakiej kolejności przeglądarka renderuje elementy blokowe. Jeśli w dokumencie HTML kolejność znaczników to np. &lt;aside&gt;, potem &lt;section&gt;, a na końcu &lt;nav&gt;, to bez dodatkowego stylowania wszystkie trzy ustawią się pionowo, jeden pod drugim, w tej właśnie kolejności. Dodanie float zmienia sposób, w jaki elementy „odpływają” od normalnego przepływu dokumentu i jak układają się obok siebie.

W stylu nav { float: right; } section { float: right; } sprawiamy, że zarówno nav, jak i section są przesuwane do prawej krawędzi kontenera, natomiast aside (bez float) pozostaje w normalnym przepływie, czyli z lewej strony. Ponieważ przeglądarka układa elementy w kolejności występowania w kodzie, najpierw wyrenderuje aside po lewej, potem section „odpłynie” w prawo, a na końcu nav też „odpłynie” w prawo, ustawiając się po prawej stronie, ale dalej od góry niż section. Efekt wizualny jest taki, że po lewej mamy aside, po prawej nav, a section ląduje między nimi, dokładnie tak jak było pokazane na filmie.

Moim zdaniem to zadanie dobrze pokazuje, że przy floatach zawsze trzeba myśleć o trzech rzeczach naraz: kolejności elementów w HTML, kierunku „pływania” (left/right) oraz o tym, które elementy pozostawiamy w normalnym przepływie. W praktyce w nowoczesnych projektach częściej używa się flexboxa albo CSS Grid do takich układów, bo są czytelniejsze i mniej problematyczne. Przykładowo, zamiast kombinować z float, można by użyć display: flex; na kontenerze i ustawić order dla aside i nav. Float nadal jednak pojawia się w starszych layoutach i w zadaniach egzaminacyjnych, więc warto dobrze rozumieć jego zachowanie, choćby po to, żeby poprawnie modyfikować istniejące style lub naprawiać „rozjechane” układy w starszych projektach.

Pytanie 22

DOM oferuje metody oraz właściwości, które w języku JavaScript umożliwiają

A. przesyłanie danych formularzy bezpośrednio do bazy danych
B. manipulację łańcuchami zdefiniowanymi w kodzie
C. pobieranie i zmianę elementów strony, która jest wyświetlana przez przeglądarkę
D. przeprowadzanie operacji na zmiennych zawierających liczby
No cóż, odpowiedzi, które mówisz o manipulacji łańcuchami, wysyłaniu formularzy do baz czy operacjach na liczbach, nie są związane z tym, co oferuje DOM. Manipulacja łańcuchami dotyczy zmiennych w JavaScript, a nie interakcji z elementami na stronie. Wysyłanie formularzy do bazy danych to temat dla innych technologii, jak AJAX, a nie coś, co robi DOM. Operacje na liczbach też są częścią samego JavaScript, ale nie mają nic wspólnego z elementami HTML. Często można usłyszeć, że DOM to wszystko, co związane z JavaScript, ale tak nie jest. DOM to narzędzie do zmiany struktury strony, a nie do obliczeń. Warto to rozróżnić, żeby nie popełniać błędów w projektowaniu aplikacji webowych, bo to może przysporzyć problemów.

Pytanie 23

W tabeli mieszkancy, która zawiera pola id, imie, nazwisko, ulica, numer oraz czynsz (kwota całkowita), należy uzyskać informacje o osobach zamieszkujących ulicę Mickiewicza pod numerami 71, 72, 80, których czynsz nie przekracza 1000 zł. Klauzula WHERE w zapytaniu powinna wyglądać następująco

A. WHERE ulica = 'Mickiewicza' AND numer IN (71, 72, 80) OR czynsz < 1000
B. WHERE ulica = 'Mickiewicza' AND numer IN (71, 72, 80) AND czynsz < 1000
C. WHERE ulica = 'Mickiewicza' AND numer > 70 AND numer < 81 OR czynsz < 1000
D. WHERE ulica = 'Mickiewicza' OR numer IN (71, 72, 80) OR czynsz < 1000
Kiedy piszemy zapytanie SQL, klauzula WHERE powinna wyglądać tak: 'WHERE ulica = 'Mickiewicza' AND numer IN (71, 72, 80) AND czynsz < 1000'. Dlaczego to działa? Bo ta klauzula jasno określa, że interesują nas tylko mieszkańcy z ulicy Mickiewicza, mający numery 71, 72 lub 80, i którzy płacą czynsz mniejszy niż 1000 zł. Użycie AND sprawia, że wszystkie te warunki muszą być spełnione naraz, co jest naprawdę ważne. Możemy to sobie wyobrazić w kontekście zarządzania nieruchomościami, gdzie chcemy pokazać tylko wybraną grupę mieszkańców, na przykład do analizy ich sytuacji finansowej. I tak na marginesie – w SQL lepiej unikać OR, gdy chcemy dostąpić do jasno określonych danych, ponieważ może to dać nam za dużo wyników lub takie, których nie chcemy.

Pytanie 24

Na przedstawionym diagramie ER zapis FK1 oznacza

Ilustracja do pytania
A. relację 1:1.
B. klucz obcy.
C. relację 1:N.
D. klucz podstawowy.
Skrót FK1 na diagramie ER oznacza klucz obcy (ang. foreign key) i jest to dokładnie to, co powinno łączyć tabelę Zamówienia z tabelą Klienci. W relacyjnych bazach danych klucz obcy to atrybut lub zestaw atrybutów, który wskazuje na klucz podstawowy w innej tabeli. Dzięki temu baza danych wie, że konkretne zamówienie należy do konkretnego klienta. W twoim diagramie pole NR_klienta w tabeli Zamówienia jest oznaczone jako FK1, czyli jest kluczem obcym odwołującym się do NR_klienta będącego kluczem podstawowym (PK) w tabeli Klienci. To jest klasyczny przykład relacji 1:N – jeden klient może mieć wiele zamówień, a każde zamówienie jest powiązane z dokładnie jednym klientem. W praktyce, w SQL, taka relacja jest definiowana mniej więcej tak: `FOREIGN KEY (NR_klienta) REFERENCES Klienci(NR_klienta)`. Taka definicja pozwala silnikowi bazy danych pilnować spójności referencyjnej, czyli np. nie pozwoli wstawić zamówienia z numerem klienta, który nie istnieje w tabeli Klienci, ani usunąć klienta, do którego wciąż istnieją zamówienia (chyba że jawnie zdefiniujemy CASCADE). Z mojego doświadczenia poprawne używanie kluczy obcych bardzo upraszcza później raportowanie, łączenie tabel w zapytaniach JOIN i ogólnie utrzymanie porządku w bazie. W modelowaniu ER oznaczenie FK wraz z numerem (FK1, FK2 itd.) to po prostu sposób na jednoznaczne nazwanie konkretnych kluczy obcych, gdy w systemie jest ich więcej. W dobrze zaprojektowanych bazach danych zawsze warto jawnie definiować foreign key, zamiast tylko „ufać”, że aplikacja będzie podawała poprawne dane – to jest po prostu dobra praktyka i standard w profesjonalnych projektach.

Pytanie 25

Jak nazywa się czynność wykrywania i usuwania błędów w kodzie źródłowym programu?

A. debugowanie
B. standaryzacja
C. normalizacja
D. kompilowanie
Czynność wykrywania i usuwania błędów w kodzie źródłowym nazywa się debugowaniem (od ang. debugging) - programista lokalizuje usterkę i poprawia kod. Dlatego ta czynność to debugowanie.

Pytanie 26

Zadanie przedstawione w ramce polecenia SQL ma na celu

Ilustracja do pytania
A. zwiększyć wartość kolumny id_klasy o jeden dla wszystkich wpisów tabeli Uczen
B. ustawić wartość kolumny id_klasy na 1 dla wszystkich wpisów w tabeli Uczen
C. ustawić wartość pola Uczen na 1
D. powiększyć wartość pola Uczen o jeden
Polecenie SQL UPDATE Uczen SET id_klasy = id_klasy + 1 ma na celu zwiększenie wartości kolumny id_klasy o jeden dla każdego rekordu w tabeli Uczen Jest to typowa operacja w bazach danych gdy chcemy przeprowadzić masową aktualizację wartości w konkretnym polu W tym przypadku kolumna id_klasy jest modyfikowana tak aby każda jej wartość została zwiększona o jeden Jest to szczególnie przydatne w scenariuszach gdzie wartości identyfikatorów czy indeksów muszą być zwiększone ze względu na zmiany struktury danych lub w celu dostosowania do nowych wymagań Możliwość masowej aktualizacji danych jest jednym z głównych powodów dla których SQL jest tak potężnym narzędziem w zarządzaniu bazami danych Operacje tego typu wymagają jednak ostrożności aby uniknąć niepożądanych zmian które mogą wpływać na integralność danych Dlatego też dobre praktyki branżowe zalecają zawsze wykonywanie kopii zapasowych danych przed przeprowadzeniem tego typu operacji oraz dokładne sprawdzenie logiki biznesowej która za nimi stoi Zwrócenie uwagi na wydajność oraz potencjalne blokady przy jednoczesnym dostępie do bazy to również kluczowe aspekty o których należy pamiętać w środowiskach produkcyjnych

Pytanie 27

W kodzie HTML stworzono formularz, który wysyła informacje do pliku formularz.php. Po naciśnięciu przycisku typu submit, przeglądarka zostaje przekierowana na wskazany adres. Na podstawie podanego adresu /formularz.php?imie=Anna&nazwisko=Kowalska można stwierdzić, że dane do pliku formularz.php zostały wysłane za pomocą metody:

A. SESSION
B. GET
C. COOKIE
D. POST
Niepoprawne odpowiedzi sugerują użycie metod POST, SESSION i COOKIE do przesyłania danych do pliku formularz.php. Metoda POST, podobnie jak GET, jest podstawową metodą przesyłania danych w protokole HTTP, jednak różni się od GET tym, że dane są przesyłane w ciele żądania, a nie w adresie URL. Dlatego, jeżeli widzimy dane w adresie URL, to nie mogą one pochodzić z metody POST. Z kolei metody SESSION i COOKIE nie są w ogóle metodami przesyłania danych. SESSION to mechanizm, który pozwala na przechowywanie danych między różnymi żądaniami w sesji użytkownika, a COOKIE to małe pliki tekstowe przechowywane na komputerze użytkownika, które mogą być używane do przechowywania danych między żądaniami. Żadna z tych metod nie przesyła jednak danych poprzez adres URL, co jest kluczowe dla odpowiedzi na to pytanie. Błędne odpowiedzi mogą wynikać z niezrozumienia różnic między tymi metodami i jak są one używane do przesyłania danych w aplikacjach internetowych.

Pytanie 28

Aby w MySQL nadać użytkownikowi prawo do nadawania i modyfikowania uprawnień innym użytkownikom, należy użyć klauzuli:

A.
TRIGGER
B.
GRANT OPTION
C.
FLUSH PRIVILEGES
D.
ALL PRIVILEGES
Klauzula WITH GRANT OPTION dodana do polecenia GRANT daje użytkownikowi prawo przekazywania innym tych uprawnień, które sam otrzymał. Np. GRANT SELECT ON baza.* TO jan WITH GRANT OPTION pozwala Janowi nadawać SELECT kolejnym osobom. Dlatego do delegowania uprawnień służy GRANT OPTION.

Pytanie 29

Od czego zależy WYSOKOŚĆ dźwięku?

A. od siły wzbudzenia drgań
B. od czasu trwania drgań
C. od sposobu pobudzenia drgań
D. od częstotliwości drgań fali akustycznej
Pozostałe cechy wpływają na co innego. Siła i sposób wzbudzenia drgań przekładają się na głośność i barwę dźwięku, a czas trwania drgań - na długość dźwięku. Wysokość zależy od częstotliwości drgań fali.

Pytanie 30

Która zasada dotyczy integralności danych w bazie?

A. pole klucza obcego nie może być puste
B. klucz podstawowy musi mieć osobny indeks
C. pole klucza podstawowego nie może być puste
D. w relacji 1..n klucz obcy łączy się z kluczem obcym innej tabeli
Jedną z zasad integralności jest to, że pole klucza PODSTAWOWEGO nie może być puste (NULL) - skoro identyfikuje rekord, musi mieć wartość w każdym wierszu. Dlatego klucz podstawowy nie może być pusty.

Pytanie 31

W języku C++ stworzono zmienną char zm1[10]; Czym jest ta zmienna?

A. tablicą łańcuchów
B. znakiem
C. tablicą znaków
D. liczbą
Odpowiedzi sugerujące, że zmienna char zm1[10] jest liczbą, tablicą łańcuchów, czy też pojedynczym znakiem, są nieprawidłowe z punktu widzenia definicji i zastosowania zmiennych w języku C++. Zmienna char zm1[10] jest tablicą znaków, co oznacza, że jej przeznaczeniem jest przechowywanie wielu znaków, a nie tylko jednego lub zestawu łańcuchów. Liczby w C++ są definiowane jako zmienne typu int, float, double itp., które mają odmienną reprezentację w pamięci i służą do wykonywania operacji matematycznych. Tablica łańcuchów, która jest bardziej złożoną strukturą, wymagałaby bardziej rozbudowanej definicji, najczęściej jako tablica wskaźników do zmiennych typu char, a nie jako tablicy znaków. Pojedynczy znak również nie oddaje pełnej funkcjonalności zm1, ponieważ zmienna ta została stworzona do przechowywania sekwencji znaków. Typowe błędy myślowe, które mogą prowadzić do błędnych odpowiedzi, obejmują mylenie pojęć i niepełne zrozumienie struktury danych. Ważne jest, aby podczas nauki programowania zrozumieć różnice między typami zmiennych oraz ich zastosowaniem w kodzie. Praktyczna znajomość tablic znaków i ich zarządzania jest kluczowa w każdej aplikacji, która operuje na danych tekstowych.

Pytanie 32

Wynikiem działania pętli będzie wypisanie liczb

for ($i = 0; $i <= 20; $i += 4)
echo $i . ', ';
A. 0,1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20,
B. 0, 4, 8, 12, 16,
C. 0,1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19,
D. 0, 4, 8, 12, 16, 20,
Twoja odpowiedź jest prawidłowa. Pętla for w języku PHP jest strukturą kontrolną, która pozwala na wielokrotne wykonanie określonej sekwencji instrukcji. W tym konkretnym przypadku, pętla zaczyna od wartości 0 i zwiększa wartość $i o 4 przy każdej iteracji, aż osiągnie lub przekroczy wartość 20. W wyniku tego, wartości, które otrzymujemy i zostają wypisane, to 0, 4, 8, 12, 16, 20. Pętle są niezwykle użyteczne i wszechstronne w programowaniu, pozwalając na automatyzację i usprawnienie wielu zadań. Pętla for, którą tu widzimy, jest przykładem zastosowania tej struktury do generowania sekwencji liczb, co ma wiele zastosowań, na przykład w tworzeniu tablic, sterowaniu kolejnością wykonywania operacji lub generowaniu dynamicznych treści na stronach internetowych.

Pytanie 33

1       <script>
2       const liczba = 1;
3       let gora = 10, dol = 1;
4       let podaj = parseInt(prompt("Podaj liczbę całkowitą z zakresu <1-10>"));
5       liczba = Math.random() * ( gora - dol + 1 ) + dol;
6       liczba = parseInt(liczba);
7       if (liczba == podaj) {
8           document.write("Liczba została odgadnięta");
9       } else {
10          document.write("Niestety nie tym razem");
11      }
12      </script>
Przedstawiony fragment kodu JavaScript powinien wylosować liczbę całkowitą z zakresu <1 , 10> i porównać ją z liczbą podaną przez użytkownika w oknie dialogowym. Skrypt po uruchomieniu generuje błąd, którego przyczyną jest
A. błędna składnia instrukcji warunkowej if ... else.
B. przypisanie wartości do stałej liczba w piątej linii skryptu .
C. niepotrzebne użycie konwersji z funkcji prompt do liczby całkowitej.
D. błędna składnia deklaracji zmiennych gora i dol w drugiej linii skryptu.
W tym zadaniu łatwo skupić się na szczegółach, które wyglądają podejrzanie, ale w rzeczywistości są poprawne. Wiele osób patrzy najpierw na deklarację zmiennych `gora` i `dol` w trzeciej linii, bo mamy tam dwa identyfikatory zadeklarowane w jednym wierszu: `let gora = 10, dol = 1;`. Taka składnia w JavaScript jest całkowicie poprawna i bardzo często spotykana w kodzie produkcyjnym. Standard ECMAScript dopuszcza deklarację wielu zmiennych w jednym instrukcie `let`, `const` czy `var`, oddzielonych przecinkami. To nie ma żadnego wpływu na poprawność działania skryptu, jest tylko kwestią stylu kodowania. Niektórzy lintersi zalecają jedną zmienną na linię, ale to jest wyłącznie konwencja, nie błąd.

Podobnie z instrukcją warunkową `if ... else`. Konstrukcja `if (liczba == podaj) { ... } else { ... }` jest jak najbardziej poprawna składniowo. Nawet użycie operatora `==` (zamiast bardziej restrykcyjnego `===`) nie powoduje tu błędu wykonania, najwyżej może być dyskusyjne ze względu na dobre praktyki, bo `===` nie robi konwersji typów. Jednak w tym konkretnym kodzie obie wartości są konwertowane do liczb, więc porównanie zadziała logicznie. Błąd wykonania nie ma więc źródła w warunku.

Czasem pojawia się też myśl, że problemem może być `parseInt(prompt(...))`, bo prompt zwraca tekst. Tymczasem właśnie dlatego używamy `parseInt`, żeby zamienić łańcuch znaków na liczbę całkowitą. Bez tej konwersji porównywalibyśmy liczbę z tekstem, co mogłoby dawać dziwne wyniki logiczne. Konwersja jest tu więc nie tylko „nie niepotrzebna”, ale wręcz wskazana. W nowoczesnym kodzie można by użyć np. `Number(prompt(...))` albo dodatkowo sprawdzić, czy użytkownik faktycznie podał liczbę, ale sam `parseInt` jest jak najbardziej OK.

Sednem problemu nie są więc ani deklaracje `gora` i `dol`, ani składnia `if ... else`, ani konwersja wartości z prompta, tylko próba nadpisania stałej. Z mojego doświadczenia wynika, że to bardzo typowy błąd przy nauce `const` i `let`: mylenie stałych z „zwykłymi” zmiennymi. Warto zawsze zadać sobie pytanie: czy ta wartość ma się zmieniać w czasie działania skryptu? Jeśli tak, używamy `let`. Jeśli nie, wtedy dopiero `const`. To prosta zasada, która pozwala uniknąć takich błędów logicznych i runtime'owych.

Pytanie 34

Użytkownik Jan będzie miał możliwość realizacji

GRANT ALL PRIVILEGES ON dane.* TO 'Jan'@'localhost';
A. wszystkie operacje na tabelach w bazie dane
B. tylko operacje manipulacji danymi oraz zmienić jedynie swoje uprawnienia
C. wyłącznie operacje CREATE, ALTER, DROP na tabelach w bazie dane
D. wszystkie operacje na tabelach bazy dane oraz przekazywać prawa innym użytkownikom
Odpowiedź jest prawidłowa, ponieważ polecenie GRANT ALL PRIVILEGES ON dane.* TO 'Jan'@'localhost'; przyznaje użytkownikowi Jan wszelkie uprawnienia na wszystkich tabelach w bazie danych o nazwie 'dane'. Oznacza to, że Jan może wykonywać wszystkie operacje, takie jak SELECT, INSERT, UPDATE, DELETE, CREATE, ALTER, DROP i inne, które są związane z zarządzaniem danymi oraz strukturą bazy. W praktyce oznacza to, że Jan ma pełną kontrolę nad bazą danych, co może być przydatne w scenariuszach, gdzie administratorzy chcą umożliwić użytkownikom elastyczność w zarządzaniu danymi. Warto jednak pamiętać, że przyznawanie ALL PRIVILEGES powinno być stosowane ostrożnie, aby uniknąć nieautoryzowanego dostępu do informacji. Dobrym rozwiązaniem jest stosowanie polityki minimalnych uprawnień, która ogranicza możliwości użytkowników do tylko tych, które są niezbędne do ich codziennych obowiązków.

Pytanie 35

Aby umieścić reguły CSS bezpośrednio w dokumencie HTML (wewnętrzny arkusz stylów), w sekcji <head> stosuje się znacznik:

A.
<style>
B.
<css>
C.
<link>
D.
<script>
Pozostałe znaczniki nie nadają się do osadzenia stylów w dokumencie. <css> w ogóle nie istnieje w języku HTML - to wymyślona nazwa. <link> rzeczywiście dotyczy stylów, ale dołącza arkusz ZEWNĘTRZNY zapisany w osobnym pliku, a pytanie dotyczy stylów umieszczonych wprost w dokumencie. <script> służy do osadzania kodu JavaScript, a nie reguł CSS. Wewnętrzny arkusz stylów zapisuje się w znaczniku <style> w sekcji <head>.

Pytanie 36

Co według zasad ACID oznacza wymóg TRWAŁOŚCI (durability) transakcji?

A. w trakcie transakcji dane mogą zmieniać inne transakcje
B. dane zatwierdzone przez transakcję pozostają dostępne mimo późniejszych zdarzeń
C. transakcję można podzielić na dwa niezależne etapy
D. przy naruszeniu spójności transakcja usuwa tabele z kluczami obcymi
Trwałość (durability) z reguł ACID gwarantuje, że dane raz ZATWIERDZONE (commit) przez transakcję pozostaną w bazie na stałe - nawet jeśli zaraz potem nastąpi awaria zasilania czy restart serwera. System osiąga to, zapisując zmiany w sposób przetrwający awarię, np. w dzienniku transakcji. Dlatego trwałość oznacza, że zatwierdzone dane pozostają dostępne mimo późniejszych awarii.

Pytanie 37

Narzędziem do zarządzania bazą danych wbudowanym w pakiet XAMPP jest

A. phpMyAdmin
B. SQLite
C. MySQL Workbench
D. pgAdmin
phpMyAdmin to popularne narzędzie webowe, które jest częścią pakietu XAMPP, służące do zarządzania bazami danych MySQL. Umożliwia użytkownikom interakcję z bazą danych poprzez intuicyjny interfejs graficzny, co znacznie upraszcza wykonanie operacji takich jak tworzenie, edytowanie i usuwanie baz danych oraz tabel. Dzięki phpMyAdmin można z łatwością zarządzać uprawnieniami użytkowników, importować i eksportować dane, a także wykonywać zapytania SQL bez konieczności korzystania z linii poleceń. To narzędzie jest szczególnie przydatne dla osób, które nie mają doświadczenia w pracy z bazami danych, a jego dostępność w XAMPP czyni go idealnym rozwiązaniem dla programistów webowych i administratorów systemów. W praktyce, phpMyAdmin wspiera wiele standardów, takich jak UTF-8, co zapewnia poprawne przetwarzanie danych w różnych językach. Warto zaznaczyć, że korzystanie z phpMyAdmin jest zgodne z najlepszymi praktykami w zakresie zarządzania bazami danych, ponieważ umożliwia skuteczne monitorowanie i optymalizację wydajności bazy danych.

Pytanie 38

W której części dokumentu HTML umieszcza się wewnętrzny arkusz stylów (znacznik <style>)?

A. wewnątrz znacznika, którego dotyczy
B. w treści strony (<body>)
C. w sekcji nagłówkowej (<head>)
D. w skrypcie dołączonym do strony
Wewnętrzny arkusz stylów, czyli reguły CSS zapisane w znaczniku <style>, umieszcza się w sekcji nagłówkowej dokumentu, między <head> a </head>. Dzięki temu style są wczytywane, zanim przeglądarka wyrenderuje treść. Dlatego <style> umieszcza się w sekcji <head>.

Pytanie 39

Jaką rolę pełni funkcja PHP o nazwie mysql_select_db()?

A. pobrać dane z bazy danych na podstawie zapytania
B. określić tabelę, z której będą pobierane informacje
C. określić bazę, z której będą pobierane dane
D. nawiązać połączenie bazy danych z serwerem SQL
Funkcja mysql_select_db() służy do określenia, która baza danych będzie używana w kontekście bieżącego połączenia z serwerem MySQL. W momencie, gdy nawiązuje się połączenie z serwerem za pomocą funkcji mysql_connect(), należy jasno zdefiniować, w której bazie danych będą wykonywane zapytania. Właściwe ustawienie aktualnej bazy danych jest kluczowe, ponieważ wszelkie operacje związane z pobieraniem lub modyfikowaniem danych będą odnosiły się tylko do tej wskazanej bazy. Przykładowo, jeżeli mamy bazę danych 'sklep' i chcemy pobrać dane o produktach, najpierw musimy wywołać mysql_select_db('sklep'). Dobrą praktyką jest również sprawdzenie, czy operacja wyboru bazy danych zakończyła się sukcesem, co można zrobić, sprawdzając zwracany wynik. Należy pamiętać, że funkcja mysql_select_db() jest częścią starzejącego się interfejsu MySQL, a w nowoczesnych aplikacjach rekomendowane są bardziej aktualne rozszerzenia, takie jak MySQLi lub PDO, które oferują lepsze możliwości obsługi błędów oraz bezpieczeństwo.

Pytanie 40

Który znacznik lub grupa znaczników nie są stosowane do definiowania struktury strony HTML?

A. <div>
B. <header>, <footer>
C. <section>
D. <i>, <b>, <u>
Znacznik <i>, <b>, <u> jest stosowany głównie do celów prezentacyjnych, a nie do definiowania struktury dokumentu HTML. <i> oznacza tekst kursywą, <b> tekst pogrubiony, a <u> tekst podkreślony. Te znaczniki są częścią HTML, ale ich główną funkcją jest wzbogacenie wizualne treści, co nie ma związku z logiczną strukturą strony. W kontekście dobrych praktyk webowych, zaleca się stosowanie znaczników semantycznych, które dostarczają bardziej zrozumiałych informacji o treści strony wyszukiwarkom i asystentom technologicznym. Przykładowo, zamiast używać <b> dla podkreślenia znaczenia tekstu, warto skorzystać z <strong>, który również pogrubia tekst, ale dodatkowo wskazuje, że jest on istotny. Dobre praktyki sugerują, aby struktura strony była wyraźna i zrozumiała, co ułatwia nawigację oraz dostępność. Właściwe użycie znaczników takich jak <header>, <footer> czy <section> pomaga w tworzeniu jasnej i logicznej hierarchii dokumentu.