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: 8 czerwca 2026 09:28
  • Data zakończenia: 8 czerwca 2026 09:35

Egzamin niezdany

Wynik: 8/40 punktów (20,0%)

Wymagane minimum: 20 punktów (50%)

Nowe
Analiza przebiegu egzaminu- sprawdź jak rozwiązywałeś pytania
Udostępnij swój wynik
Szczegółowe wyniki:
Pytanie 1

Jaką funkcję pełni atrybut name w polu formularza, np. <input type="text" name="login">?

A. ustawia pole jako tylko do odczytu
B. określa nazwę pola, pod którą dane trafiają na serwer
C. ogranicza maksymalną długość pola
D. określa wartość domyślną pola
Pozostałe funkcje pełnią inne atrybuty znacznika <input>. Tryb tylko do odczytu, blokujący edycję pola, włącza readonly. Maksymalną liczbę znaków, jaką można wpisać, ogranicza maxlength. Wartość początkową, widoczną w polu po wczytaniu, ustawia value. Identyfikator pola, pod którym dane trafiają na serwer, podaje name, dlatego to ona jest poprawną odpowiedzią.

Pytanie 2

Jaką rolę pełni kwerenda krzyżowa w MS Access?

A. dołącza rekordy z innej tabeli
B. prezentuje zliczone (zagregowane) wartości w układzie wierszy i kolumn
C. modyfikuje istniejące dane w tabeli
D. usuwa rekordy według kryteriów
Pozostałe operacje wykonują inne kwerendy. Usuwanie rekordów wg kryteriów to kwerenda usuwająca, dołączanie rekordów z innej tabeli - dołączająca, a modyfikacja danych - aktualizująca. Zestawienie zagregowanych danych w wierszach i kolumnach tworzy kwerenda krzyżowa.

Pytanie 3

Która funkcja PHP sortuje tablicę asocjacyjną według KLUCZY?

A.
sort()
B.
asort()
C.
ksort()
D.
rsort()
asort() sortuje po WARTOŚCIACH (zachowując klucze), sort() po wartościach z resetem kluczy, a rsort() to samo malejąco. Po kluczach sortuje ksort().

Pytanie 4

Aby edytować nakładające się na siebie pojedyncze fragmenty grafiki, pozostawiając resztę bez zmian, należy zastosować:

A. histogram
B. kanał alfa
C. kadrowanie
D. warstwy
Warstwy to podstawowy mechanizm edytorów grafiki (np. GIMP, Photoshop): każdy element umieszcza się na osobnej warstwie, niczym na przezroczystej folii, a leżące wyżej zasłaniają niższe. Dzięki temu można edytować, przesuwać lub ukrywać pojedynczy fragment, nie naruszając pozostałych. To właśnie warstwy pozwalają pracować nad nakładającymi się elementami niezależnie - i dlatego są poprawną odpowiedzią.

Pytanie 5

W teorii relacji operacja selekcji polega na

A. wybraniu krotek, które spełniają określone warunki
B. eliminuje krotki z powtarzającymi się polami
C. wybraniu krotek, które nie zawierają wartości NULL
D. pozbywaniu się pustych wierszy
W kontekście algebry relacji, operacja selekcji nie polega na eliminowaniu krotek z powtarzającymi się polami czy też usuwaniu pustych wierszy. Tego rodzaju zrozumienie jest mylące, ponieważ w rzeczywistości selekcja ma na celu wydobycie krotek, które spełniają określone kryteria. Eliminowanie krotek z powtarzającymi się polami odnosi się bardziej do operacji związanych z usuwaniem duplikatów, co jest osobnym zagadnieniem w algebrze relacji. Również wykluczanie pustych wierszy, choć może być istotne w kontekście czyszczenia danych, nie jest bezpośrednio związane z operacją selekcji. Typowym błędem jest nieprawidłowe utożsamianie selekcji z procesem filtrowania danych, który niekoniecznie odnosi się do spełniania określonych warunków. Ważne jest, aby pamiętać, że selekcja jest operacją, która pozwala na wybór tylko tych krotek, które są zgodne z zadaną logiką, co czyni ją niezwykle użyteczną w codziennej pracy z bazami danych. Zrozumienie tej różnicy jest kluczowe dla efektywnego korzystania z baz danych i tworzenia precyzyjnych zapytań, które mogą przyczynić się do lepszego zarządzania informacjami.

Pytanie 6

Funkcję Clean Project środowiska IDE stosuje się do

A. usuwania wyników kompilacji projektu.
B. usuwania całego projektu.
C. kompilowania projektu, gdy pliki źródłowe zostały zmienione.
D. debugowania skompilowanego i uruchomionego projektu.
Funkcja „Clean Project” w środowisku IDE bywa mylona z kilkoma zupełnie innymi operacjami i stąd często biorą się błędne skojarzenia. Warto to sobie dobrze poukładać, bo w pracy z większymi projektami, szczególnie webowymi, znajomość tych różnic mocno ułatwia życie. Po pierwsze, Clean nie służy do usuwania całego projektu. IDE nie kasuje Twoich plików źródłowych, katalogów z kodem, konfiguracji, zasobów graficznych czy plików HTML, CSS, PHP, JS. Gdyby tak było, byłoby to po prostu niebezpieczne i kompletnie sprzeczne z dobrymi praktykami. Usuwanie projektu to zupełnie inna, osobna akcja, zwykle nazwana wprost „Delete project”, „Remove from workspace” itp. Clean ingeruje tylko w to, co zostało wygenerowane automatycznie podczas kompilacji lub procesu buildowania, czyli w artefakty, które w razie czego można bezpiecznie odtworzyć z kodu. Drugi częsty błąd to traktowanie funkcji Clean jako mechanizmu kompilowania projektu po zmianie plików źródłowych. W większości IDE kompilacją zajmują się polecenia typu „Build”, „Rebuild”, „Run”, ewentualnie system automatycznego builda po zapisaniu pliku. Clean sam z siebie nie kompiluje – on przygotowuje pole do ponownego, pełnego builda, usuwając stare binaria. Można to porównać do posprzątania warsztatu przed rozpoczęciem nowej pracy, a nie do samego naprawiania. Trzecie nieporozumienie to łączenie Clean z debugowaniem. Debugowanie polega na uruchamianiu skompilowanego programu z podpiętym debuggerem, stawianiu breakpointów, podglądaniu zmiennych, stosu wywołań itd. Funkcja Clean nie uruchamia aplikacji ani nie wchodzi w tryb debugowania, tylko czyści katalogi z wynikami wcześniejszych kompilacji. Typowy błąd myślowy polega na mieszaniu tych trzech etapów: porządkowania artefaktów (Clean), kompilacji/builda (Build/Run) i analizy działania programu (Debug). W praktyce, poprawna sekwencja przy dziwnych błędach to: Clean, potem pełny Build, a dopiero później ewentualne Debug. Takie rozdzielenie ról narzędzi jest standardem w większości popularnych IDE i systemów buildowania i dobrze jest się do niego przyzwyczaić, bo potem łatwiej przenosić się między różnymi technologiami i środowiskami.

Pytanie 7

Aby zaktualizować maksymalną długość kolumny imie w tabeli klienci do 30 znaków, należy zastosować w języku SQL poniższy kod

A. CHANGE TABLE klienci MODIFY imie CHAR(30);
B. ALTER TABLE klienci CHANGE imie TEXT;
C. ALTER TABLE klienci MODIFY COLUMN imie VARCHAR(30);
D. CHANGE TABLE klienci TO COLUMN imie SET CHAR(30);
Odpowiedzi, które nie zostały uznane za poprawne, zawierają istotne błędy w składni i logice użycia poleceń SQL. W pierwszym przypadku, użycie 'CHANGE TABLE' oraz 'TO COLUMN' jest niezgodne z syntaksą SQL. W SQL nie istnieje polecenie 'CHANGE TABLE', co czyni tę odpowiedź całkowicie błędną. Dodatkowo, 'SET CHAR(30)' nie jest akceptowaną konstrukcją w kontekście modyfikacji kolumn. W drugim przypadku, użycie 'CHAR(30)' zamiast 'VARCHAR(30)' ogranicza możliwość przechowywania danych do stałej długości 30 znaków, co nie jest optymalne dla pól tekstowych, w których długość danych może się różnić. To może prowadzić do marnotrawienia przestrzeni w bazie danych. Ostatnia odpowiedź, w której proponuje się użycie polecenia 'CHANGE' oraz 'TEXT', jest również błędna, ponieważ 'TEXT' nie jest odpowiednim typem danych w tym kontekście i nie odpowiada wymaganiom dotyczącym długości. Właściwe polecenia powinny być zgodne z zasadami SQL oraz specyfiką danych, które chcemy przechowywać, co w tym przypadku nie zostało spełnione.

Pytanie 8

Linia kodu przedstawiona w PHP ma na celu

Ilustracja do pytania
A. porównać dwa ciągi znaków
B. ustalić wartość dla zmiennej $OSOBA
C. zdefiniować stałą o nazwie OSOBA
D. przypisać wartości do tablicy
W języku PHP funkcja define() służy do definiowania stałych które są wartościami niezmiennymi po zdefiniowaniu. W przykładzie define(OSOBA Anna Kowalska) definiujemy stałą o nazwie OSOBA z przypisaną wartością Anna Kowalska. Stałe są używane gdy potrzebujemy zagwarantować że dana wartość pozostanie niezmienna przez cały czas działania programu co jest kluczowe w zapewnieniu spójności i integralności danych. PHP odróżnia stałe wielkością liter więc zgodnie z konwencją stałe zapisuje się wielkimi literami dla lepszej czytelności. Funkcja ta jest często używana do definiowania wartości konfiguracyjnych takich jak ścieżki do plików czy dane dostępowe które nie powinny być zmieniane podczas wykonywania skryptu. Dzięki funkcji define() unikamy przypadkowego nadpisania istotnych wartości co jest jedną z dobrych praktyk programistycznych. Warto zaznaczyć że od PHP 7 istnieje możliwość definiowania stałych tablicowych co ułatwia organizację bardziej złożonych danych.

Pytanie 9

Co w bazach danych oznacza termin „atrybut”?

A. rekord tabeli z danymi jednego egzemplarza
B. obiekt złożony z cech opisanych kolumnami
C. powiązanie dwóch lub więcej danych związkiem
D. nazwaną kolumnę tabeli opisującą określoną cechę
Pozostałe odpowiedzi mylą pojęcia modelu relacyjnego. „Obiekt złożony z cech” to raczej encja, a nie pojedynczy atrybut. Powiązanie danych związkiem to RELACJA. Rekord z danymi jednego egzemplarza to KROTKA (wiersz). Atrybut to nazwana kolumna opisująca cechę.

Pytanie 10

W języku działającym po stronie serwera tworzysz ankietę, której wynik ma być zapamiętany w postaci małego pliku po stronie użytkownika. Jaki mechanizm wykorzystasz?

A. ciasteczka (cookies)
B. bazę danych SQL
C. sesję
D. tablicę globalną $_FILES
Pozostałe mechanizmy przechowują dane gdzie indziej. Tablica $_FILES dotyczy plików wysłanych przez użytkownika na serwer (upload), a nie zapisu czegokolwiek w jego przeglądarce. Sesja przechowuje dane po stronie serwera - w przeglądarce trzyma jedynie identyfikator sesji, a nie sam wynik. Baza danych SQL również znajduje się na serwerze, więc to nie „mały plik u użytkownika”. Informację zapisywaną lokalnie w przeglądarce przechowuje ciasteczko, dlatego to ono jest poprawne.

Pytanie 11

W bazie danych produkt znajdują się artykuły wyprodukowane po 2000 roku, zawierające pola nazwa oraz rok_produkcji. Klauzula SQL wyświetli zestawienie artykułów wyprodukowanych

SELECT * FROM `produkt` WHERE
SUBSTR(rok_produkcji, 3, 2) = 17;
A. po roku 2017
B. w roku 2017
C. w latach innych niż 2017
D. przed rokiem 2017
To zapytanie SQL, które rozkminiamy, korzysta z funkcji SUBSTR, żeby wyrwać kawałek roku z kolumny rok_produkcji i porównać go z 17. Jasno z tego wynika, że wyciągamy dwie ostatnie cyfry, co odpowiada rokowi 2017. Dlatego odpowiedzi mówiące o innych latach są mylące. Jeśli ktoś myśli, że filtrujemy coś przed 2017, to się myli, bo zapytanie dotyczy końcówki roku, a nie pełnego roku. Są też błędne założenia, że to zapytanie pokazuje lata inne niż 2017. Dlatego warto pamiętać, że SUBSTR jasno mówi, że wybieramy lata kończące się na 17. A jeśli ktoś myśli o latach po 2017, to też jest w błędzie, bo zapytanie nie bierze pod uwagę pełnych lat, a tylko końce. Często ludzie źle interpretują takie zapytania, bo nie uwzględniają funkcji tekstowych, które zmieniają sposób filtrowania danych. Zrozumienie tych niuansów w SQL jest ważne dla przetwarzania i analizy danych. Te błędy mogą się brać z braku dokładnej analizy i zrozumienia użytych funkcji, co zdarza się często nowym użytkownikom SQL. Dobrze jest po prostu testować zapytanie i robić przeglądy kodu w zespole, co wspiera lepsze zrozumienie i użycie zapytań w praktyce.

Pytanie 12

W PHP użyto funkcji is_int(). Które z wymienionych wywołań tej funkcji da wynik TRUE?

A. is_int(135)
B. is_int("135")
C. is_int(NULL)
D. is_int(13.5)
Analizując pozostałe wywołania funkcji is_int(), można zauważyć, że w przypadku is_int("135"), przekazujemy ciąg znaków, a nie liczbę całkowitą. Choć zawiera on liczby, jest on interpretowany jako tekst, co skutkuje zwróceniem wartości FALSE. Warto pamiętać, że PHP rozróżnia różne typy danych i w tym przypadku is_int() nie będzie w stanie zinterpretować ciągu jako liczby całkowitej. Podobnie, is_int(NULL) prowadzi do identycznego wyniku, ponieważ NULL nie jest liczbą i nie spełnia kryteriów is_int(). Dodatkowo, w przypadku wywołania is_int(13.5), przekazujemy wartość zmiennoprzecinkową, co również nie spełnia wymagań funkcji. Typowe błędy myślowe, które mogą prowadzić do takich niepoprawnych wniosków, to mniemanie, że wszystkie liczby w PHP są traktowane tak samo, niezależnie od ich reprezentacji. Ważne jest, aby programiści uważnie sprawdzali typy danych, z którymi pracują, zwłaszcza w kontekście dynamicznego typowania, jakie oferuje PHP. Zrozumienie, że is_int() działa tylko na typie integer, pozwala uniknąć nieprzewidzianych błędów i poprawić jakość kodu, co jest kluczowe w profesjonalnym programowaniu.

Pytanie 13

Fragment dokumentu HTML sugeruje, że

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
A. znaczniki końcowe są wymagane w kodzie HTML, także dla znaczników samozamykających się.
B. kod HTML zapisano w wersji 5 języka.
C. kod HTML zapisano w wersji 4 języka.
D. wszystkie znaczniki w kodzie HTML powinny być zapisywane wielkimi literami.
Deklaracja DOCTYPE wskazuje na to że dokument HTML wykorzystuje standard HTML 4.01 w trybie ścisłym. HTML 4.01 jest jedną z wersji języka HTML wprowadzoną przez World Wide Web Consortium w 1999 roku i zawiera trzy warianty: Strict Transitional i Frameset. Tryb Strict oznacza ścisłe przestrzeganie zasad standardu bez użycia przestarzałych elementów i atrybutów takich jak tagi związane z formatowaniem stron które stały się przestarzałe w miarę rozwoju kaskadowych arkuszy stylów CSS. W kontekście praktycznym oznacza to że projektując stronę zgodną z tą specyfikacją należy unikać znaczników odpowiedzialnych za prezentację które były powszechnie stosowane w poprzednich wersjach HTML. Zamiast tego zaleca się korzystanie z CSS do określania wyglądu strony co nie tylko wspiera separację struktury treści od jej wyglądu ale także ułatwia przenoszenie i aktualizację stylów. Używając deklaracji DOCTYPE HTML 4.01 Strict można zapewnić lepszą zgodność z najnowszymi wersjami przeglądarek oraz ułatwić przyszłe aktualizacje kodu do nowoczesnych standardów takich jak HTML5 który wprowadza dodatkowe funkcjonalności i uproszczenia mające na celu poprawę semantyki i użyteczności stron WWW

Pytanie 14

Który zbiór znaczników, określających projekt strony internetowej w sposób semantyczny, jest zgodny z normą HTML 5?

Ilustracja do pytania
A. Zbiór 4
B. Zbiór 2
C. Zbiór 1
D. Zbiór 3
Wykaz 4 jest zgodny ze standardem HTML 5, ponieważ poprawnie używa semantycznych znaczników do strukturyzacji zawartości strony. <header> jest używany do definiowania nagłówka dokumentu lub sekcji, co jest poprawne dla Bloku 1. Znacznik <main> w Bloku 2 wskazuje na główną treść strony, co jest zgodne z jego przeznaczeniem. <aside> w Bloku 3 jest trafnie używany do treści pobocznych, które są związane, ale niekonieczne dla głównego wątku treści, co odpowiada typowej strukturze witryny, gdzie treści poboczne są często wyświetlane obok głównej treści. Na koniec, <footer> w Bloku 4 jest poprawnie przypisany, gdyż zamyka i podsumowuje zawartość strony. HTML5 kładzie duży nacisk na semantykę, co pomaga w optymalizacji pod kątem SEO oraz ułatwia rozumienie struktury strony zarówno przez ludzi, jak i maszyny. Takie podejście poprawia dostępność, ułatwia stylizowanie za pomocą CSS oraz wspiera lepsze praktyki w zakresie zgodności z przyszłymi standardami.

Pytanie 15

Którą funkcję z menu Kolory programu GIMP użyto, w celu uzyskania efektu przedstawionego w filmie?

A. Inwersja.
B. Progowanie.
C. Barwienie.
D. Krzywe.
Wiele osób myli w GIMP-ie różne narzędzia z menu Kolory, bo na pierwszy rzut oka kilka z nich „mocno zmienia” obraz. Jednak efekt pokazany na filmie, gdzie obraz staje się dwuwartościowy (czarno-biały, bez półtonów), jest typowym działaniem funkcji Progowanie. Kluczowe jest tu zrozumienie, czym różnią się od siebie dostępne operacje. Krzywe służą do zaawansowanej korekcji tonalnej i kontrastu. Można nimi mocno przyciemnić lub rozjaśnić wybrane zakresy jasności, robić tzw. efekt kontrastu „S”, korygować prześwietlenia itd. Ale nawet przy bardzo agresywnych ustawieniach krzywych obraz nadal zawiera półtony – pojawiają się stopniowe przejścia między odcieniami, a nie ostre odcięcie na zasadzie czarne/białe. To świetne narzędzie do retuszu zdjęć, ale nie do uzyskania efektu progowania. Inwersja (Kolory → Inwersja) po prostu odwraca wartości kolorów lub jasności: jasne staje się ciemne, czerwony zmienia się na cyjan, zielony na magentę itd. To jak negatyw fotograficzny. Struktura szczegółów pozostaje identyczna, zmienia się tylko ich „biegun”. Nie pojawia się żadne odcięcie progowe, więc obraz wciąż ma pełne spektrum odcieni. W praktyce inwersja przydaje się np. przy przygotowaniu masek lub pracy z materiałami skanowanymi, ale nie generuje typowego, „plakatowego” efektu czerni i bieli jak progowanie. Barwienie z kolei (Kolory → Barwienie) służy do nadania całemu obrazowi jednolitego odcienia, zwykle po wcześniejszym sprowadzeniu go do skali szarości. Można w ten sposób uzyskać np. sepię, niebieski ton nocny albo dowolny kolorystyczny „filtr”. Jasność i kontrast lokalny pozostają bardzo podobne, zmienia się dominująca barwa. To zupełnie inna kategoria operacji niż progowanie, które pracuje na poziomie progów jasności, a nie na poziomie koloru. Typowym błędem jest patrzenie tylko na to, że „obraz bardzo się zmienił” i przypisywanie tego narzędziom takim jak krzywe czy inwersja. W pracy z grafiką warto zawsze zadać sobie pytanie: czy efekt polega na zmianie rozkładu jasności, na odwróceniu kolorów, czy na twardym podziale na dwa poziomy? Jeśli widzisz brak półtonów i ostre granice, praktycznie zawsze chodzi o progowanie, które zostało wskazane jako poprawna funkcja.

Pytanie 16

Definicja stylu w CSS, którą zaprezentowano, dotyczy odsyłacza, który

a:visited {color: orange;}
A. ma wskaźnik myszy umieszczony nad sobą
B. był wcześniej odwiedzany
C. posiada niepoprawny adres URL
D. jeszcze nigdy nie został odwiedzony
Pseudoklasa :visited w CSS jest używana do stylizowania odsyłaczy, które zostały już odwiedzone przez użytkownika. Oznacza to, że przeglądarka zapisuje informacje o odwiedzonych stronach w historii przeglądania i na tej podstawie zmienia styl odsyłacza. W przykładzie a:visited {color: orange;} zmienia kolor tekstu odwiedzonych linków na pomarańczowy. Jest to powszechna praktyka stosowana w projektowaniu stron internetowych, która pomaga użytkownikom wizualnie odróżniać odwiedzone odsyłacze od nieodwiedzonych, co poprawia ich orientację na stronie. Dobre praktyki projektowania zakładają tworzenie intuicyjnych interfejsów użytkownika i użycie mechanizmu :visited do poprawy użyteczności. Ważne jest, aby unikać stosowania bardziej zaawansowanych stylów w :visited, takich jak zmiana rozmiaru czcionki czy dodawanie obrazów tła, ze względu na ograniczenia bezpieczeństwa przeglądarek, które chronią prywatność użytkowników. Korzystanie z :visited w sposób świadomy i zgodny ze standardami W3C zwiększa efektywność nawigacji i jest istotnym elementem przyjaznego projektowania stron WWW

Pytanie 17

Jaką relację typu uzyskuje się w wyniku powiązania kluczy głównych dwóch tabel?

A. wiele do wielu
B. jeden do jednego
C. wiele do jednego
D. jeden do wielu
Odpowiedź „jeden do jednego” jest poprawna, ponieważ relacja typu jeden do jednego oznacza, że każdy rekord w jednej tabeli jest powiązany z dokładnie jednym rekordem w drugiej tabeli. Tego rodzaju relacje są często wykorzystywane w sytuacjach, gdzie istnieje potrzeba rozdzielenia danych w celu zwiększenia organizacji lub wydajności, na przykład w przypadku wrażliwych informacji, które są przechowywane oddzielnie od podstawowych danych użytkowników. Praktycznym przykładem może być relacja między tabelą użytkowników a tabelą profili, gdzie każdy użytkownik ma dokładnie jeden profil. W dobrych praktykach projektowania baz danych, takie relacje są stosowane, aby zapewnić integralność danych oraz umożliwić skuteczne zarządzanie informacjami w systemach. Ponadto, stosowanie relacji jeden do jednego może pomóc w optymalizacji zapytań, ponieważ zminimalizowane jest ryzyko duplikacji danych, co przyczynia się do efektywniejszego przetwarzania operacji w bazach danych.

Pytanie 18

Zdefiniowano poniższą funkcję w PHP:

function policz($Z) {
    while($Z < 5) {
        $Z += 2 * $Z + 1;
    }
    return $Z;
}
Funkcję policz wywołano z wartością argumentu $Z = 1. Jaki rezultat zostanie zwrócony?
A. 1
B. 13
C. 7
D. 4
Niestety, tutaj coś nie zagrało. W pytaniu była funkcja 'policz' w PHP, która iteracyjnie zwiększa wartość zmiennej $Z, aż ta nie przekroczy 5. W każdej iteracji $Z rośnie o 2 * $Z + 1. Jak widać, przy odpowiednim argumencie początkowym wartość $Z rośnie bardzo szybko. W naszym przypadku zaczynamy z $Z równym 1. Po dwóch krokach mamy już 13, co kończy działanie pętli. Zamiast 1, 7 czy 4, funkcja 'policz' zwraca 13. Kluczowe jest zrozumienie, jak działają te iteracje i pętle w PHP.

Pytanie 19

Co oznacza akronim ACID w kontekście transakcji bazodanowych?

A. atomic, constraint, isolated, dependable
B. atomic, consistent, isolated, durable
C. atomic, consistent, iss, dependable
D. atomic, comming, is, do
ACID to cztery właściwości poprawnej transakcji bazodanowej: Atomicity (atomowość - transakcja wykonuje się w całości albo wcale), Consistency (spójność - baza przechodzi z jednego poprawnego stanu w drugi), Isolation (izolacja - równoległe transakcje nie zakłócają się wzajemnie) i Durability (trwałość - zatwierdzone zmiany przetrwają nawet awarię). Dlatego ACID to atomic, consistent, isolated, durable.

Pytanie 20

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

Ilustracja do pytania
A. Czesław, Niemen
B. pusty wynik
C. Czesław
D. Czesław, Czechowski
Odpowiedź 'pusty wynik' jest poprawna, ponieważ zapytanie SQL 'SELECT wykonawca FROM `muzyka` WHERE wykonawca LIKE 'C%w';' poszukuje wykonawców, których imię i nazwisko zaczynają się na literę 'C' i kończą na literę 'w'. Operator LIKE w SQL używany jest do wyszukiwania wzorców w tekstach, gdzie '%' zastępuje dowolną liczbę znaków. W tabeli muzyka nie ma żadnego wykonawcy, którego imię i nazwisko pasowałoby do tego wzorca. Oba wystąpienia 'Czesław Niemen' i 'Mikołaj Czechowski' nie spełniają warunku, ponieważ ich nazwiska nie kończą się na 'w'. SQL jest powszechnie stosowany w zarządzaniu bazami danych, a zrozumienie, jak używać wyrażeń LIKE, jest kluczowe w efektywnej pracy z danymi. Praktyczne zastosowanie tej wiedzy obejmuje filtrowanie danych w raportach, ekstrakcję specyficznych informacji oraz poprawę wydajności zapytań przy użyciu indeksów. Warto zwrócić uwagę na optymalizację zapytań pod kątem wydajności, co jest szczególnie ważne w przypadku dużych zbiorów danych. Operator LIKE może mieć wpływ na wydajność, dlatego zaleca się użycie pełnotekstowych indeksów, jeśli to możliwe, w bardziej złożonych scenariuszach. Umiejętność tworzenia precyzyjnych zapytań SQL jest kluczowa w branży IT, zwłaszcza w analizie danych i administracji bazami danych. Efektywne zastosowanie tej techniki pozwala na szybkie i skuteczne wyszukiwanie informacji w dużych zbiorach danych, co jest nieocenione w wielu zastosowaniach biznesowych i technologicznych.

Pytanie 21

Który typ przechowuje tekst o ZMIENNEJ długości (do zadanego maksimum)?

A.
CHAR
B.
VARCHAR
C.
INT
D.
FLOAT
Pozostałe typy nie pasują. CHAR to tekst o STAŁEJ długości (rezerwuje pełną liczbę znaków). INT przechowuje liczby całkowite, a FLOAT rzeczywiste. Tekst o zmiennej długości to VARCHAR.

Pytanie 22

Funkcja napisana w PHP ma na celu

Ilustracja do pytania
A. pobranie informacji z bazy danych
B. zabezpieczenie bazy danych
C. nawiązanie połączenia z bazą danych
D. ustawienie hasła do bazy danych

Brak odpowiedzi na to pytanie.

Wyjaśnienie poprawnej odpowiedzi:
Funkcja mysql_query z języka PHP jest używana do wykonywania zapytań SQL w bazie danych MySQL. W przedstawionym przykładzie zapytanie SELECT * FROM napisy pobiera wszystkie rekordy z tabeli o nazwie napisy. Jest to klasyczne zapytanie używane do uzyskania danych z bazy danych co czyni je podstawowym narzędziem programisty PHP operującego na bazach danych. Zwrócone dane mogą następnie być przetwarzane wyświetlane lub używane w dalszych operacjach aplikacji. Ważnym aspektem pracy z bazami danych jest ochrona przed atakami SQL Injection co można osiągnąć poprzez stosowanie przygotowanych wyrażeń lub funkcji takich jak mysqli_prepare. Warto też pamiętać że funkcja mysql_query jest przestarzała i niezalecana w nowych projektach a zamiast niej powinno się używać mysqli lub PDO. Obie te biblioteki oferują większe bezpieczeństwo i lepszą obsługę błędów co jest zgodne z aktualnymi standardami w branży. Praca z danymi wymaga nie tylko ich pobierania ale także odpowiedniego zarządzania czym zajmują się bardziej złożone mechanizmy jak ORM-y co upraszcza pracę z bazami danych i zwiększa czytelność kodu.

Pytanie 23

Jakie oznaczenie w języku PHP wskazuje na komentarz wieloliniowy?

A. #
B. /* */
C. <!-- -->
D. //

Brak odpowiedzi na to pytanie.

Wyjaśnienie poprawnej odpowiedzi:
Komentarze wieloliniowe w języku PHP definiuje zapis /* */. Umożliwia on umieszczanie dłuższych opisów lub wyjaśnień w kodzie, które są ignorowane przez interpreter PHP. Użycie tego typu komentarzy jest szczególnie przydatne w sytuacjach, kiedy chcemy opisać złożone fragmenty kodu lub zablokować dużą ilość kodu w czasie testowania. Przykładem może być zasłonięcie sekcji kodu, która nie jest aktualnie potrzebna: /* echo 'To jest test'; */. Warto pamiętać, że komentarze powinny być używane do poprawy czytelności kodu, co jest zgodne z dobrą praktyką programistyczną. Zaleca się również stosowanie komentarzy w sposób przemyślany, aby nie tworzyć nadmiernej ilości niepotrzebnych informacji, co mogłoby wprowadzać chaos w projekcie. W PHP można także łączyć różne typy komentarzy, co pozwala na elastyczne i czytelne dokumentowanie kodu.

Pytanie 24

Co oznacza zapis w obiekcie w języku JavaScript?

x = przedmiot.nazwa();
A. nazwa jest cechą obiektu przedmiot
B. nazwa jest atrybutem klasy przedmiot
C. zmienna x będzie przechowywać wynik działania metody nazwa
D. zmienna x będzie przechowywać rezultat działania funkcji przedmiot

Brak odpowiedzi na to pytanie.

Wyjaśnienie poprawnej odpowiedzi:
W języku JavaScript wyrażenie przedmiot.nazwa() oznacza wywołanie metody nazwa na obiekcie przedmiot. Wynik tego wywołania jest przypisywany do zmiennej x. Metody są funkcjami zdefiniowanymi wewnątrz obiektu które mogą wykorzystywać jego dane. Przy wywołaniu metody używamy operatora kropki do dostępu do konkretnej funkcji w obiekcie. Taki zapis jest powszechnie stosowany w programowaniu obiektowym i pozwala na wykonywanie operacji zdefiniowanych w kontekście danego obiektu. Dobre praktyki zalecają aby nazewnictwo metod było opisowe co ułatwia rozumienie kodu i jego utrzymanie przez innych programistów. Przykładem może być obiekt samochód mający metodę uruchom która po wywołaniu realizuje logikę uruchomienia samochodu. Warto również zwrócić uwagę na aspekt asynchroniczności który w JavaScript ma duże znaczenie zwłaszcza przy operacjach sieciowych gdzie często stosuje się metody zwracające obietnice. Dzięki temu zapis x = przedmiot.nazwa() jest podstawowym przykładem zastosowania programowania obiektowego w praktyce

Pytanie 25

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

A.
colspan
B.
rowspan
C.
cellspacing
D.
cellpadding

Brak odpowiedzi na to pytanie.

Wyjaśnienie poprawnej odpowiedzi:
Komórki tabeli scala się dwoma atrybutami: poziomo <code><span class="code-variable">colspan</span></code>, a pionowo <code><span class="code-variable">rowspan</span></code>. Zapis <code><span class="code-variable">rowspan</span><span class="code-text">=</span><span class="code-string">"2"</span></code> 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 <code><span class="code-variable">rowspan</span></code>.

Pytanie 26

Zdefiniowanie klucza obcego jest niezbędne do utworzenia

A. klucza podstawowego.
B. relacji 1..1.
C. transakcji.
D. relacji 1..n.

Brak odpowiedzi na to pytanie.

Wyjaśnienie poprawnej odpowiedzi:
Poprawnie – klucz obcy definiujemy właśnie po to, żeby utworzyć i wymusić relację między tabelami, najczęściej relację 1..n. W praktyce wygląda to tak, że w tabeli „dziecko” (np. ZAMOWIENIA) umieszczamy kolumnę, która odwołuje się do klucza głównego w tabeli „rodzic” (np. KLIENCI). Ta kolumna jest właśnie kluczem obcym. Dzięki temu każde zamówienie musi być powiązane z istniejącym klientem. To jest klasyczny przykład relacji 1 klient – wiele zamówień (1..n). Moim zdaniem to jest jeden z fundamentów relacyjnych baz danych: klucze obce pilnują integralności referencyjnej. Silnik bazy (MySQL, PostgreSQL, SQL Server itd.) sprawdza, czy wartość w kolumnie z kluczem obcym faktycznie istnieje w tabeli nadrzędnej. Jeżeli spróbujesz wstawić zamówienie z nieistniejącym id_klienta, dostaniesz błąd. To jest dokładnie to, co chcemy w dobrze zaprojektowanym systemie – brak „osieroconych” rekordów. W relacjach 1..n stosuje się standardowo schemat: tabela nadrzędna ma klucz podstawowy (PRIMARY KEY), a tabela podrzędna ma kolumnę z kluczem obcym (FOREIGN KEY), który wskazuje na ten klucz podstawowy. W SQL zapisuje się to np.: `FOREIGN KEY (id_klienta) REFERENCES klienci(id_klienta)`. Dobre praktyki mówią też, żeby na kolumnach kluczy obcych zakładać indeksy, bo to przyspiesza złączenia (JOIN) i operacje kasowania/aktualizacji. Warto też wiedzieć, że klucz obcy może być używany z dodatkowymi opcjami, np. `ON DELETE CASCADE` lub `ON UPDATE RESTRICT`, żeby automatycznie usuwać powiązane rekordy lub blokować operacje łamiące spójność danych. W realnych aplikacjach webowych (np. systemy sklepów internetowych, CRM-y, systemy magazynowe) poprawne zdefiniowanie relacji 1..n przez klucze obce to podstawa stabilności całej bazy – bez tego bardzo szybko robi się bałagan, duplikaty i niespójne dane.

Pytanie 27

Jaką funkcję w języku PHP można wykorzystać do weryfikacji typu zmiennej?

A. var_dump()
B. foreach()
C. switch()
D. strrev()

Brak odpowiedzi na to pytanie.

Wyjaśnienie poprawnej odpowiedzi:
Funkcja var_dump() w języku PHP jest niezwykle przydatna do sprawdzania typu zmiennej, ponieważ wyświetla zarówno wartość zmiennej, jak i jej typ. Dzięki temu programista może szybko zrozumieć, co dokładnie znajduje się w danej zmiennej. Na przykład, jeśli mamy zmienną $a przypisaną do wartości 5, używając var_dump($a), uzyskamy wynik 'int(5)', co wskazuje, że zmienna jest typu całkowitego. Z kolei dla zmiennej $b, która jest tablicą, var_dump($b) pokaże strukturę tablicy oraz jej zawartość. Użycie var_dump() jest zgodne z dobrymi praktykami debugowania w PHP, ponieważ umożliwia identyfikację problemów z typami danych, co jest kluczowe w kontekście typowania dynamicznego, jakie ma miejsce w PHP. Dodatkowo, var_dump() jest często stosowane w sytuacjach, gdy programista chce szybko zweryfikować, co znajduje się w zmiennych podczas rozwoju aplikacji, co przyspiesza proces debugowania i pozwala na łatwiejsze znalezienie błędów w logice aplikacji.

Pytanie 28

Którą kwerendę należy wykonać, aby zaktualizować wszystkim rekordom z tabeli pracownicy wartość w kolumnie plec na K, przyjmując na potrzeby zadania, że każde imię żeńskie kończy się literą a?

A. UPDATE pracownicy SET plec='K' WHERE imie='%a';
B. ALTER TABLE pracownicy SET plec='K' WHERE imie LIKE '%a';
C. ALTER TABLE pracownicy SET plec='K' WHERE imie='%a';
D. UPDATE pracownicy SET plec='K' WHERE imie LIKE '%a';

Brak odpowiedzi na to pytanie.

Wyjaśnienie poprawnej odpowiedzi:
Poprawna jest kwerenda: UPDATE pracownicy SET plec='K' WHERE imie LIKE '%a';. Po pierwsze użyty jest właściwy typ polecenia SQL do modyfikacji danych w tabeli. Do zmiany wartości w istniejących rekordach zawsze używamy instrukcji UPDATE, a nie ALTER TABLE. ALTER TABLE służy do zmiany struktury tabeli (np. dodanie kolumny, zmiana typu danych, usunięcie kolumny), a nie do operowania na danych w wierszach. To jest taki podstawowy podział: DDL (Data Definition Language) – np. ALTER TABLE, CREATE, DROP – do definicji struktury; DML (Data Manipulation Language) – np. SELECT, INSERT, UPDATE, DELETE – do pracy na rekordach. W tym zadaniu ewidentnie potrzebna jest operacja DML. Druga ważna rzecz to warunek WHERE imie LIKE '%a'. Operator LIKE służy do porównywania tekstów z wykorzystaniem wzorców. Symbol % oznacza „dowolny ciąg znaków (również pusty)”, więc wzorzec '%a' oznacza: dowolny ciąg znaków zakończony literą „a”. Dokładnie o to chodzi w zadaniu: przyjmujemy założenie, że każde imię żeńskie kończy się na „a”, więc chcemy zaktualizować wszystkie rekordy, gdzie kolumna imie kończy się na „a”. Gdybyśmy chcieli szukać imion zaczynających się na „A”, używalibyśmy 'A%'. Moim zdaniem warto zapamiętać ten schemat, bo w praktyce bardzo często stosuje się LIKE do prostych filtrów tekstowych: wyszukiwanie użytkowników po fragmencie loginu, znajdowanie produktów po części nazwy, filtrowanie adresów e-mail po domenie itp. Przykład: UPDATE klienci SET status='VIP' WHERE nazwisko LIKE 'Nowak%'; – zaktualizuje wszystkich Nowaków. Albo: UPDATE produkty SET promocja=1 WHERE nazwa LIKE '%kabel%'; – zaznaczy jako promocyjne wszystkie produkty, których nazwa zawiera słowo „kabel”. W dobrych praktykach zaleca się uważać z aktualizacjami bez WHERE, bo wtedy zmieniamy wszystkie rekordy w tabeli. Tutaj warunek LIKE '%a' pełni rolę bezpiecznego filtra. W wielu systemach bazodanowych warto też pamiętać, że domyślnie porównania tekstowe mogą być niewrażliwe na wielkość liter (collation), więc 'a' i 'A' mogą być traktowane tak samo, ale to już zależy od konfiguracji bazy. W kontekście egzaminów zawodowych i pracy z SQL-em takie zadanie to klasyk – łączy poprawne użycie UPDATE z właściwym użyciem LIKE i symbolu % jako wieloznakowego wildcarda.

Pytanie 29

Który sposób utworzenia tablicy w JavaScript jest składniowo NIEPOPRAWNY?

A.
var liczby = [3];
B.
var liczby = new Array[1, 2, 3];
C.
var liczby = new Array(1, 2, 3);
D.
var liczby = [1, 2, 3];

Brak odpowiedzi na to pytanie.

Wyjaśnienie poprawnej odpowiedzi:
Tablicę w JavaScript tworzy się na dwa poprawne sposoby: literałem w nawiasach kwadratowych, np. <code><span class="code-keyword">var</span> <span class="code-variable">liczby</span> <span class="code-text">=</span> <span class="code-text">[</span><span class="code-number">1</span><span class="code-text">,</span> <span class="code-number">2</span><span class="code-text">,</span> <span class="code-number">3</span><span class="code-text">]</span><span class="code-text">;</span></code>, albo konstruktorem z nawiasami OKRĄGŁYMI, np. <code><span class="code-keyword">var</span> <span class="code-variable">liczby</span> <span class="code-text">=</span> <span class="code-keyword">new</span> <span class="code-function">Array</span><span class="code-text">(</span><span class="code-number">1</span><span class="code-text">,</span> <span class="code-number">2</span><span class="code-text">,</span> <span class="code-number">3</span><span class="code-text">)</span><span class="code-text">;</span></code>. Zapis <code><span class="code-keyword">new</span> <span class="code-variable">Array</span><span class="code-text">[</span><span class="code-number">1</span><span class="code-text">,</span> <span class="code-number">2</span><span class="code-text">,</span> <span class="code-number">3</span><span class="code-text">]</span></code> jest błędny – po słowie <code><span class="code-keyword">new</span> <span class="code-variable">Array</span></code> wywołanie konstruktora wymaga nawiasów okrągłych, a kwadratowe oznaczają indeksowanie/literał i tu nie pasują. Dlatego to ten zapis jest niepoprawny.

Pytanie 30

Na ilustracji przedstawiono kompozycję bloków strony www. Który z elementów formatowania strony odpowiada temu układowi? (Dla uproszczenia pominięto właściwości dotyczące koloru tła, wysokości oraz czcionki)

Ilustracja do pytania
A. Odpowiedź 4: D
B. Odpowiedź 3: C
C. Odpowiedź 1: A
D. Odpowiedź 2: B

Brak odpowiedzi na to pytanie.

Wyjaśnienie poprawnej odpowiedzi:
Odpowiedź B jest naprawdę na czasie! Widzisz, użyto tutaj techniki pływającego układu z CSS, czyli float i clear. Pierwszy blok pływa w lewo, ma 30% szerokości, dzięki czemu obok niego mogą stać drugi i trzeci blok, które też pływają w lewo i zajmują 70%. To pozwala na ułożenie elementów w jednej linii, o ile kontener ma wystarczająco miejsca. W sumie, float to klasyka przy układach wielokolumnowych, chociaż obecnie sporo osób korzysta z Flexboxa lub Grid Layout. Zauważ, że blok czwarty ma clear:both, więc zacznie się poniżej wcześniejszych elementów pływających. To ważne, bo dzięki temu unikamy problemów z nałożeniem się treści. Zachowanie porządku w układzie jest kluczowe, szczególnie w responsywnym web designie. Tego typu układy są całkiem popularne na stronach z wieloma kolumnami, gdzie elastyczność szerokości ma duże znaczenie.

Pytanie 31

W języku HTML, aby ustawić tytuł dokumentu na "Moja strona", który będzie widoczny na karcie przeglądarki internetowej, należy użyć zapisu

A. <head>Moja strona</head>
B. <meta title="Moja strona">
C. <title>Moja strona</title>
D. <meta name="title" content="Moja strona">

Brak odpowiedzi na to pytanie.

Wyjaśnienie poprawnej odpowiedzi:
Odpowiedź <title>Moja strona</title> jest poprawna, ponieważ element <title> jest standardowym sposobem definiowania tytułu dokumentu HTML, który jest wyświetlany na pasku tytułowym przeglądarki. Zgodnie z normą HTML, element ten powinien być umieszczony wewnątrz sekcji <head> dokumentu. Przykładowa struktura dokumentu HTML z tytułem wygląda następująco: <html><head><title>Moja strona</title></head><body></body></html>. Tytuł jest istotny nie tylko dla użytkowników, ale również dla wyszukiwarek internetowych, ponieważ wpływa na SEO (Search Engine Optimization). Dobrze dobrany tytuł może zwiększyć klikalność linków w wynikach wyszukiwania. Dodatkowo, element <title> jest ważnym aspektem dostępności, ponieważ osoby korzystające z technologii asystujących polegają na nim, aby zrozumieć zawartość strony. W kontekście dobrych praktyk warto pamiętać, że tytuł powinien być krótki, zwięzły i adekwatny do treści strony. Warto również unikać duplikatów tytułów na różnych stronach tej samej witryny, co może prowadzić do chaosu w nawigacji i negatywnie wpływać na doświadczenia użytkowników oraz SEO.

Pytanie 32

Który typ danych obsługiwany przez PHP jest przeznaczony do obsługi zmiennych typu logicznego?

A. Integer
B. Boolean
C. String
D. Float

Brak odpowiedzi na to pytanie.

Wyjaśnienie poprawnej odpowiedzi:
Odpowiedź "Boolean" jest prawidłowa, ponieważ jest to typ danych w języku PHP, który jest używany do przechowywania zmiennych logicznych. Zmienne tego typu mogą mieć jedynie dwie wartości: true (prawda) lub false (fałsz). Jest to niezwykle istotne w programowaniu, ponieważ umożliwia podejmowanie decyzji na podstawie warunków. Przykładowo, w konstrukcjach warunkowych, takich jak if, można sprawdzić, czy zmienna logiczna jest prawdziwa, co pozwala na wykonanie określonej akcji. Warto również zauważyć, że w PHP można łatwo konwertować inne typy danych na typ boolean za pomocą operatorów, takich jak ! (negacja) oraz porównań, co jest zgodne z zasadami dobrych praktyk programistycznych. Używanie typów logicznych jest kluczowe w kontekście programowania obiektowego oraz podczas pracy z strukturami danych. Przykład: $isAvailable = true; if ($isAvailable) { echo 'Produkt jest dostępny.'; }.

Pytanie 33

Która reguła CSS pozwala stosować różne style w zależności od szerokości ekranu (kluczowa w RWD)?

A.
@import
B.
@media
C.
@keyframes
D.
@font-face

Brak odpowiedzi na to pytanie.

Wyjaśnienie poprawnej odpowiedzi:
Reguła <code><span class="code-text">@</span><span class="code-variable">media</span></code> (media query) pozwala uzależnić style od warunków urządzenia - najczęściej od szerokości okna. Zapisuje się w niej warunek, np. <code><span class="code-text">@</span><span class="code-function">media</span> <span class="code-text">(</span><span class="code-keyword">max-width</span><span class="code-text">:</span> <span class="code-number">600</span><span class="code-variable">px</span><span class="code-text">)</span> <span class="code-text">{</span> <span class="code-text">.</span><span class="code-text">.</span><span class="code-text">.</span> <span class="code-text">}</span></code>, a style w środku zadziałają tylko, gdy jest on spełniony. To podstawowe narzędzie RWD: dzięki niemu ten sam dokument inaczej wygląda na telefonie i na monitorze. Dlatego kluczowa dla responsywności jest reguła <code><span class="code-text">@</span><span class="code-variable">media</span></code>.

Pytanie 34

<?php
$dane = fread(fopen("plik.txt", "r"), filesize("plik.txt"));
?>
Przedstawiony kod zapisany w języku PHP ma za zadanie
A. zmiennej dane przypisać zawartość pliku plik.txt
B. zapisać do pliku plik.txt wartość zmiennej dane
C. otworzyć plik plik.txt i jako wartość zmiennej dane przypisać rozmiar pliku
D. zmiennej dane przypisać wielkość pliku plik.txt

Brak odpowiedzi na to pytanie.

Wyjaśnienie poprawnej odpowiedzi:
W tym fragmencie kodu PHP wykonywana jest bardzo klasyczna operacja: odczyt całej zawartości pliku tekstowego do zmiennej. Funkcja fopen("plik.txt", "r") otwiera plik w trybie tylko do odczytu (read). Zwraca tzw. uchwyt do pliku, czyli zasób, którego potem używa fread. Następnie filesize("plik.txt") zwraca rozmiar pliku w bajtach. Ten rozmiar jest przekazywany jako drugi argument do fread, więc fread odczytuje dokładnie tyle bajtów z otwartego pliku i zwraca je jako ciąg znaków (string). Wynik trafia do zmiennej $dane. Czyli po wykonaniu tego skryptu w $dane znajduje się pełna zawartość pliku plik.txt. To dokładnie odpowiada treści poprawnej odpowiedzi: zmiennej dane przypisać zawartość pliku plik.txt. Z praktycznego punktu widzenia taki kod przydaje się, gdy chcemy np. przetworzyć plik tekstowy w pamięci: wyszukać w nim jakieś frazy, podmienić tekst, wygenerować podgląd, przesłać jego zawartość dalej przez sieć HTTP itd. W realnych projektach, zwłaszcza przy większych plikach, częściej stosuje się odczyt w kawałkach (pętlą), żeby nie ładować całego pliku naraz do pamięci, ale przy małych plikach podejście z fread + filesize jest jak najbardziej poprawne. Moim zdaniem warto też wiedzieć, że w nowszym PHP w prostszych przypadkach wygodniej użyć funkcji file_get_contents("plik.txt"), która robi praktycznie to samo, tylko krócej i czytelniej. Natomiast rozumienie mechanizmu fopen/fread jest ważne, bo to jest fundament pracy z plikami: otwarcie, odczyt/zapis, zamknięcie. Dobrą praktyką jest również domykanie uchwytu funkcją fclose, choć w tym przykładzie jej nie ma. W środowiskach produkcyjnych dodaje się jeszcze obsługę błędów (sprawdzanie, czy fopen się udało, czy plik istnieje, czy mamy uprawnienia). Mimo to, z punktu widzenia logiki pytania, sedno jest jedno: ten kod odczytuje zawartość pliku i przypisuje ją do zmiennej $dane.

Pytanie 35

W HTML5 semantycznym znacznikiem, który służy do określenia dwóch sekcji widocznych po prawej stronie na rysunku, zawierających wiadomości oraz aktualności, jest

Ilustracja do pytania
A. &lt;article&gt;
B. &lt;main&gt;
C. &lt;nav&gt;
D. &lt;footer&gt;

Brak odpowiedzi na to pytanie.

Wyjaśnienie poprawnej odpowiedzi:
Element <article> w HTML5 został stworzony właśnie do oznaczania niezależnych, samodzielnych treści, które mają sens nawet poza kontekstem strony – czyli takich, które można zamieścić np. w RSS, podlinkować czy udostępnić osobno. W praktyce oznacza to np. pojedyncze wpisy na blogu, wiadomości, ogłoszenia czy aktualności – dokładnie tak jak w tym zadaniu. Dzięki użyciu <article>, osoby korzystające z czytników ekranowych czy wyszukiwarek łatwiej rozpoznają strukturę strony, bo semantyka jest czytelna dla maszyn. Z mojego doświadczenia, stosowanie <article> dla wiadomości i aktualności jest też zgodne z dobrą praktyką tworzenia dostępnych stron – Google nawet sugeruje, by tak wyodrębniać własne, kompletne treści. To ma ogromne znaczenie przy pozycjonowaniu (SEO), bo roboty wyszukiwarek potrafią lepiej rozumieć, co jest główną treścią strony. Dodatkowo, używanie odpowiednich znaczników semantycznych poprawia współpracę z różnymi narzędziami, które analizują układ i zawartość strony, a także ułatwia późniejszą przebudowę lub rozwój projektu. Moim zdaniem, nadanie sekcjom z wiadomościami i aktualnościami znacznika <article> to podstawa nowoczesnego kodowania stron internetowych.

Pytanie 36

Tabela o nazwie naprawy posiada kolumny klient oraz czyNaprawione. W celu usunięcia rekordów, w których wartość pola czyNaprawione wynosi prawda, należy użyć komendy

A. DELETE klient FROM naprawy WHERE czyNaprawione = TRUE;
B. DELETE FROM naprawy;
C. DELETE naprawy WHERE czyNaprawione = TRUE;
D. DELETE FROM naprawy WHERE czyNaprawione = TRUE;

Brak odpowiedzi na to pytanie.

Wyjaśnienie poprawnej odpowiedzi:
Odpowiedź "DELETE FROM naprawy WHERE czyNaprawione = TRUE;" jest poprawna, ponieważ wykorzystuje właściwą składnię SQL do usunięcia rekordów z tabeli. Komenda DELETE jest używana do usuwania danych z bazy danych, a klauzula WHERE precyzuje, które rekordy mają być usunięte na podstawie określonych warunków. W tym przypadku, usuwane są tylko te rekordy, które mają wartość TRUE w polu czyNaprawione. Zastosowanie klauzuli WHERE jest kluczowe, ponieważ umożliwia precyzyjne wybranie danych do usunięcia, co zapobiega przypadkowemu skasowaniu wszystkich rekordów w tabeli. W praktyce, taką komendę można wykorzystać w różnych aplikacjach związanych z zarządzaniem danymi, np. w systemach informatycznych do obsługi klienta, gdzie zachodzi potrzeba bieżącego zarządzania statusami napraw. Dobre praktyki w programowaniu baz danych nakazują zawsze stosować klauzulę WHERE przy usuwaniu danych, aby uniknąć niezamierzonych skutków. Warto również przetestować zapytania w środowisku testowym przed ich zastosowaniem w produkcji, co zwiększa bezpieczeństwo operacji na danych.

Pytanie 37

Którym poleceniem w MySQL wyświetli się listę uprawnień nadanych użytkownikowi anna?

A.
REVOKE GRANTS FROM anna;
B.
SHOW GRANTS FOR anna;
C.
GRANT * TO anna;
D.
SELECT GRANTS FOR anna;

Brak odpowiedzi na to pytanie.

Wyjaśnienie poprawnej odpowiedzi:
Listę uprawnień nadanych użytkownikowi wyświetla w MySQL polecenie <code><span class="code-variable">SHOW</span> <span class="code-variable">GRANTS</span> <span class="code-variable">FOR</span> <span class="code-variable">anna</span><span class="code-text">;</span></code> - zwraca zestaw poleceń <code><span class="code-keyword">GRANT</span></code> opisujących jego prawa. Używa się go np. do audytu, kto i co może robić w bazie. Dlatego poprawne jest <code><span class="code-variable">SHOW</span> <span class="code-variable">GRANTS</span> <span class="code-variable">FOR</span> <span class="code-variable">anna</span><span class="code-text">;</span></code>.

Pytanie 38

Jakie tabele będą weryfikowane przez podane polecenie?

CHECK TABLE pracownicy CHANGED;
A. Tylko tabele, które nie zostały prawidłowo zamknięte.
B. Tabele, które uległy zmianie od ostatniego sprawdzenia lub nie zostały prawidłowo zamknięte.
C. Tabele, które zmieniły się w bieżącej sesji.
D. Jedynie tabele referencyjne.

Brak odpowiedzi na to pytanie.

Wyjaśnienie poprawnej odpowiedzi:
Odpowiedź, że polecenie CHECK TABLE sprawdzi tabele, które zmieniły się od ostatniej kontroli lub nie zostały poprawnie zamknięte, jest poprawna. Polecenie to jest wykorzystywane w systemach zarządzania bazami danych, takich jak MySQL, do diagnozowania i naprawy problemów związanych z integralnością danych. Kiedy tabele są zmieniane lub nie zostały poprawnie zamknięte, mogą wystąpić uszkodzenia, które mogą prowadzić do błędów przy odczycie lub zapisie danych. W praktyce, administratorzy baz danych regularnie wykonują polecenie CHECK TABLE, aby upewnić się, że struktura tabeli jest nienaruszona i że system operacyjny poprawnie zarządza danymi. Użycie CHECK TABLE w kontekście tabel, które zmieniły się od ostatniej kontroli, jest kluczowe, gdyż pozwala na szybką lokalizację problemów. Warto również zauważyć, że w przypadku dużych baz danych wykonanie tego polecenia może być czasochłonne, dlatego dobrze jest zintegrować jego użycie z harmonogramem regularnych kontroli integralności danych, co jest zgodne z najlepszymi praktykami w zarządzaniu bazami danych.

Pytanie 39

Na podstawie przydzielenia wartości do zmiennych w języku PHP można zauważyć, że

$zmienna1 = 15;
$zmienna2 = "15";
$zmienna3 = (string) $zmienna1;
A. zmienna1 i zmienna3 mają ten sam typ.
B. zmienna2 i zmienna3 mają ten sam typ.
C. zmienna1 i zmienna2 mają ten sam typ.
D. wszystkie zmienne mają ten sam typ.

Brak odpowiedzi na to pytanie.

Wyjaśnienie poprawnej odpowiedzi:
Dobrze widzisz, że $zmienna2 i $zmienna3 mają ten sam typ. Obie przechowują wartości jako stringi, co jest spoko. $zmienna2 to łańcuch z "15", a $zmienna3 to wynik rzutowania $zmienna1 (która jest liczbą całkowitą) na string. W PHP takie rzutowanie to normalna sprawa i nie zmienia wartości, tylko jej format. W praktyce, jeżeli dobrze rozumiesz typy danych, to ułatwia Ci to życie w programowaniu. Różne typy mogą wpływać na to, jak działają operacje i jak dane są przechowywane. Warto więc pamiętać, żeby w kodzie jasno definiować typy zmiennych i używać rzutowania tam, gdzie trzeba, bo to pomaga unikać błędów. Jak się w to wczujesz, to łatwiej będzie Ci ogarniać pamięć i optymalizować kod, zwłaszcza w większych projektach.

Pytanie 40

Jakie jest odstępstwo pomiędzy poleceniem DROP TABLE a TRUNCATE TABLE?

A. DROP TABLE usuwa tabelę, natomiast TRUNCATE TABLE modyfikuje dane w niej spełniające określony warunek
B. Obydwa polecenia usuwają tabelę wraz z jej zawartością, jednak tylko TRUNCATE TABLE można cofnąć
C. DROP TABLE usuwa tabelę, a TRUNCATE TABLE eliminuje wszystkie dane, zostawiając pustą tabelę
D. Obydwa polecenia usuwają tylko zawartość tabeli, ale tylko DROP TABLE może być przywrócone

Brak odpowiedzi na to pytanie.

Wyjaśnienie poprawnej odpowiedzi:
Odpowiedź jest prawidłowa, ponieważ polecenie DROP TABLE całkowicie usuwa tabelę z bazy danych, łącznie z jej strukturą i danymi. Nie można jej później przywrócić, co oznacza, że wszelkie dane w niej zawarte zostaną na stałe utracone. Z kolei TRUNCATE TABLE jest poleceniem, które usuwa jedynie dane wewnątrz tabeli, ale sama tabela i jej struktura pozostają nienaruszone. Po wykonaniu TRUNCATE TABLE tabela staje się pusta, a jej definicja oraz wszystkie indeksy pozostają w bazie danych. Przykładowo, jeśli mamy tabelę 'Klienci' z danymi klientów, wykonanie TRUNCATE TABLE Klienci spowoduje, że tabela pozostanie, ale wszystkie rekordy zostaną usunięte. Wywołanie tych poleceń ma różne zastosowanie w praktyce; DROP TABLE można wykorzystać, gdy nie potrzebujemy tabeli, natomiast TRUNCATE TABLE jest przydatne, gdy chcemy szybko usunąć wszystkie dane z tabeli, zachowując jej strukturę dla przyszłych operacji.