Wyniki egzaminu

Informacje o egzaminie:
  • Zawód: Technik programista
  • Kwalifikacja: INF.03 - Tworzenie i administrowanie stronami i aplikacjami internetowymi oraz bazami danych
  • Data rozpoczęcia: 13 maja 2026 19:56
  • Data zakończenia: 13 maja 2026 20:13

Egzamin zdany!

Wynik: 22/40 punktów (55,0%)

Wymagane minimum: 20 punktów (50%)

Nowe
Analiza przebiegu egzaminu- sprawdź jak rozwiązywałeś pytania
Pochwal się swoim wynikiem!
Szczegółowe wyniki:
Pytanie 1

Aby wykonać kopię zapasową bazy danych w MySQL, jakie polecenie należy zastosować?

A. mysqlreplicate
B. mysqlslap
C. mysqlcheck
D. mysqldump
Wybór polecenia mysqlslap jako metody do tworzenia kopii zapasowych bazy danych jest nieuzasadniony, ponieważ funkcjonalność tego narzędzia jest całkowicie inna. Mysqlslap jest narzędziem do testowania wydajności MySQL, które symuluje obciążenie bazy danych i umożliwia ocenę jej reakcji na różne zapytania. Zamiast służyć do backupu, jest wykorzystywane do analizy i optymalizacji wydajności systemu, co może prowadzić do błędnych wniosków o jego zastosowaniu w kontekście bezpieczeństwa danych. Podobnie, mysqlcheck jest narzędziem używanym do sprawdzania i naprawy tabel w bazach danych MySQL, co oznacza, że nie ma on zastosowania w kontekście tworzenia kopii zapasowych. Jego główną rolą jest diagnostyka i konserwacja bazy danych, a nie zarządzanie danymi. Z kolei mysqlreplicate, jak sama nazwa wskazuje, odnosi się do replikacji bazy danych, co jest zupełnie inną procedurą, mającą na celu zapewnienie wysokiej dostępności i skalowalności poprzez tworzenie duplikatów danych na różnych serwerach. Typowym błędem jest mylenie narzędzi do zarządzania danymi z narzędziami do ich zabezpieczania. Aby skutecznie zarządzać bazą danych, konieczne jest zrozumienie różnicy między tymi funkcjami oraz właściwe dobieranie narzędzi do konkretnych zadań, co jest kluczowe dla zapewnienia spójności i bezpieczeństwa danych.

Pytanie 2

Delegacja domeny to

A. zmiana nazwy domeny.
B. zmiana rejestratora domeny.
C. umieszczenie informacji o zewnętrznych serwerach, które obsługują stronę.
D. utrata okresu ważności domeny z możliwością odnowienia jej.
W temacie domen bardzo łatwo pomylić kilka pojęć, bo wszystko dzieje się w podobnych panelach administracyjnych i na pierwszy rzut oka wygląda podobnie. Delegacja domeny nie ma jednak nic wspólnego ze zmianą jej nazwy. Zmiana nazwy oznacza po prostu rejestrację zupełnie innej domeny, np. zamiast moja-firma.pl kupujesz moja-firmka.pl. Technicznie to są dwa różne wpisy w rejestrze, a delegacja zawsze dotyczy jednej, konkretnej zarejestrowanej już nazwy i tego, na jakie serwery DNS jest ona „wskazana”. Częsty błąd myślowy to też łączenie delegacji z przeniesieniem domeny do innego rejestratora. Transfer domeny polega na zmianie firmy, która zarządza Twoją usługą domenową (fakturowanie, panel, obsługa klienta). Możesz przenieść domenę do innego rejestratora bez zmiany delegacji, jak i zmienić delegację bez transferu. To są dwie niezależne operacje, choć użytkownicy często je mylą, bo wykonują je w podobnym momencie, np. przy zmianie hostingu. Kolejna rzecz to okres ważności domeny. Utrata ważności oznacza po prostu wygaśnięcie domeny, czasem z okresem ochronnym, w którym można ją jeszcze odnowić. To też nie jest delegacja. To kwestia opłacenia kolejnego okresu rozliczeniowego u rejestratora i statusu domeny w rejestrze (active, expired, redemption itp.). Delegacja natomiast dotyczy warstwy DNS, czyli tego, gdzie świat ma szukać informacji technicznych o domenie. Te błędne skojarzenia biorą się zwykle z tego, że użytkownik widzi w jednym miejscu: datę ważności, przycisk transferu i pola z serwerami DNS, więc wrzuca to wszystko do jednego worka. W rzeczywistości dobra praktyka jest taka, żeby traktować te obszary osobno: osobno zarządzanie własnością i okresem ważności domeny, osobno wybór rejestratora, a osobno właśnie delegację na odpowiednie serwery DNS, które obsługują stronę, pocztę i inne usługi powiązane z nazwą domenową.

Pytanie 3

Kwerenda ALTER TABLE artykuly MODIFY cena float ma na celu wykonanie modyfikacji w tabeli artykuly?

A. wprowadzić kolumnę cena o typie float, o ile jeszcze nie istnieje
B. zmienić nazwę kolumny cena na float
C. zmienić typ na float dla kolumny cena
D. usunąć kolumnę cena, która jest typu float
Kwerenda ALTER TABLE artykuly MODIFY cena float ma na celu zmianę typu kolumny 'cena' w tabeli 'artykuly' na typ float. Typ float jest używany do przechowywania liczb zmiennoprzecinkowych, co jest szczególnie przydatne w przypadku cen, które mogą mieć ułamkowe wartości. Przykładem zastosowania tej kwerendy może być sytuacja, w której początkowo kolumna 'cena' była zdefiniowana jako typ integer, co ograniczałoby możliwość przechowywania wartości takich jak 19.99. Zmiana typu na float pozwala na większą precyzję, co jest zgodne z najlepszymi praktykami w zarządzaniu danymi finansowymi. Ważne jest, aby przed zmianą typu kolumny upewnić się, że wszystkie istniejące dane są zgodne z nowym typem, aby uniknąć błędów konwersji. Ostatecznie, korzystając z tego polecenia, dbamy o integralność danych oraz ich prawidłowe reprezentowanie, co jest kluczowe w każdej aplikacji związanej z zarządzaniem danymi.

Pytanie 4

W PHP konstrukcja foreach stanowi rodzaj

A. warunkową, niezależnie od typu zmiennej
B. wyboru, dla elementów tablicy
C. pętli, niezależnie od typu zmiennej
D. pętli, wyłącznie dla elementów tablicy
Pierwsza niepoprawna odpowiedź myli foreach z instrukcją wyboru, co jest błędne. Foreach nie wybiera elementów, tylko je przetwarza. W PHP nie mamy jakiejś instrukcji wyboru jak if-else, które różnicują zadania w zależności od warunków. Pętla foreach działa na zasadzie przetwarzania wszystkich elementów, a nie ich selekcji. Następnie, ktoś napisał, że foreach jest niezależna od typu zmiennej, co również jest mylące. W prawdziwym życiu foreach wymaga, aby zmienna była tablicą. Jakbyś wrzucił coś innego, co nie jest tablicą, PHP wyrzuci błąd, więc to nie jest uniwersalne dla wszystkich typów. Ostatnia błędna odpowiedź próbuje przypisać foreach do instrukcji warunkowej. Instrukcje warunkowe, jak if czy switch, decydują na podstawie spełniania pewnych warunków, a foreach po prostu wykonuje operację na każdym elemencie tablicy. Ważne jest, żeby zrozumieć tę różnicę, bo każda z tych konstrukcji ma swoje zastosowania, które są istotne, gdy programujemy.

Pytanie 5

W SQL instrukcja INSERT INTO

A. wprowadza dane do tabeli.
B. modyfikuje rekordy przypisaną wartością.
C. wprowadza nową tabelę.
D. dodaje kolumny do istniejącej tabeli.
Odpowiedź 'wprowadza dane do tabeli' jest poprawna, ponieważ polecenie INSERT INTO w języku SQL służy dokładnie do tego celu - do dodawania nowych rekordów (wierszy) do istniejącej tabeli w bazie danych. W praktyce, polecenie to pozwala na wprowadzenie danych zgodnych z określoną strukturą tabeli, co oznacza, że musimy dostarczyć wartości dla odpowiednich pól. Przykład użycia polecenia INSERT INTO: 'INSERT INTO pracownicy (imie, nazwisko, wiek) VALUES ('Jan', 'Kowalski', 30);' W tym przypadku, dodawany jest nowy rekord do tabeli 'pracownicy', wskazując konkretne wartości dla kolumn 'imie', 'nazwisko' oraz 'wiek'. Zgodnie z dobrą praktyką, przed wprowadzeniem danych do tabeli warto upewnić się, że są one zgodne z definicją kolumn, aby uniknąć błędów w czasie wykonywania polecenia. Ponadto, często zaleca się stosowanie transakcji, aby mieć możliwość wycofania wprowadzonych zmian w przypadku wystąpienia błędów. INSERT INTO jest fundamentalną częścią operacji CRUD (Create, Read, Update, Delete), które są podstawą zarządzania danymi w bazach danych, a jego właściwe zrozumienie jest kluczowe dla każdego, kto pracuje z SQL.

Pytanie 6

Zgodnie z zasadami ACID, które odnoszą się do realizacji transakcji, wymóg trwałości (ang. durability) oznacza, że

A. w przypadku naruszenia spójności bazy danych transakcja usuwa tabele z kluczami obcymi
B. dane zatwierdzone przez transakcję powinny być dostępne niezależnie od wydarzeń, które nastąpią po jej zakończeniu
C. transakcja może w pewnych okolicznościach być podzielona na dwa niezależne etapy
D. w trakcie wykonywania transakcji dane mogą być zmieniane przez inne transakcje
Trwałość (czyli durability) w bazach danych to taka cecha, która mówi, że jak już zatwierdzisz transakcję, to wszystkie zmiany zostaną na zawsze w systemie. To znaczy, że niezależnie od tego, co się później wydarzy, jak na przykład awaria, Twoje dane są bezpieczne. To naprawdę ważne, bo pozwala na utrzymanie spójności i pewności, że system działa tak, jak powinien. Weźmy na przykład systemy bankowe. Gdy robisz przelew, musisz być pewien, że pieniądze poszły tam, gdzie miały, nawet jak serwer padnie tuż po zakończeniu transakcji. Dobrze jest mieć też takie mechanizmy, jak zapisywanie dzienników, które pomagają odtworzyć dane, jeśli coś pójdzie nie tak. Trwałość to kluczowa sprawa w projektowaniu baz danych, bo buduje zaufanie użytkowników oraz pozwala spełnić różne normy i regulacje.

Pytanie 7

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

A. aside {float: left; }
B. nav { float: right; }
C. nav { float: right; } section { float: right; }
D. nav { float: left; } aside { float: left; }
W tym zadaniu kluczowe jest zrozumienie, jak naprawdę działa float, a nie tylko samo skojarzenie, że „left to lewo, right to prawo”. Wiele osób myśli, że wystarczy ustawić jeden element na lewo, drugi na prawo i wszystko magicznie się poukłada. W praktyce przeglądarka trzyma się bardzo konkretnych reguł: najpierw liczy kolejność elementów w HTML, potem dopiero stosuje float i układa je możliwie jak najwyżej i jak najbliżej odpowiedniej krawędzi. Jeśli nada się float tylko dla aside albo tylko dla nav, to zmienia się ich pozycja, ale układ trzech bloków nie spełni warunku z zadania: aside i nav nie zamienią się miejscami z pozostawieniem section w środku. Przykładowo, samo float: left na aside niczego nie „zamieni”, bo element i tak pojawia się jako pierwszy w kodzie, więc będzie u góry, tylko że „przyklejony” do lewej. Z kolei ustawienie nav na prawą stronę bez odpowiedniego floatowania section prowadzi do sytuacji, gdzie section nadal zachowuje się jak normalny blok, zwykle ląduje pod elementami pływającymi albo obok nich w sposób mało przewidywalny dla początkującego. Częsty błąd myślowy polega też na tym, że ktoś próbuje wszystkim elementom dać float: left, licząc na to, że przeglądarka „ułoży je po swojemu”. Wtedy jednak wszystkie te bloki ustawiają się w jednym kierunku, w kolejności z HTML, więc nie ma mowy o świadomym „zamienianiu miejsc”. Brak zrozumienia, że float wyjmuje element z normalnego przepływu i wpływa na to, jak kolejne elementy zawijają się wokół niego, prowadzi właśnie do takich błędnych odpowiedzi. Z mojego doświadczenia lepiej jest najpierw narysować sobie prosty schemat: w jakiej kolejności idą znaczniki i które z nich mają pływać w prawo, a które zostać w naturalnym układzie. Dopiero wtedy dobiera się konkretne deklaracje CSS. Takie myślenie przydaje się nie tylko przy float, ale też przy nauce flexboxa czy grida, gdzie kolejność w DOM i własności układu też grają ogromną rolę.

Pytanie 8

<source src="plik.mp4" type="video/mp4">
Aby osadzić plik wideo na stronie WWW, przedstawiony kod HTML5 należy umieścić wewnątrz znaczników:
A. <section> </section>
B. <video> </video>
C. <embed> </embed>
D. <div> </div>
Poprawna odpowiedź to umieszczenie znacznika `<source>` wewnątrz `<video>...</video>`. W HTML5 to właśnie element `<video>` jest kontenerem odpowiedzialnym za osadzanie plików wideo na stronie WWW. Atrybuty takie jak `controls`, `autoplay`, `loop`, `muted`, `width` czy `height` przypisujemy właśnie do `<video>`, a nie do `<source>`. Znacznik `<source>` służy głównie do wskazania konkretnego pliku multimedialnego i jego typu MIME, np.: `<video controls width="640" height="360"><source src="film.mp4" type="video/mp4"><source src="film.webm" type="video/webm">Twoja przeglądarka nie obsługuje elementu video.</video>`. Przeglądarka przechodzi po kolei po elementach `<source>` i wybiera pierwszy format, który potrafi odtworzyć. To jest zgodne ze specyfikacją HTML Living Standard (WHATWG) oraz zaleceniami W3C dotyczącymi multimediów w sieci. W praktyce, w projektach komercyjnych, często dodaje się kilka formatów (np. MP4, WebM), właśnie po to, by zapewnić maksymalną kompatybilność między różnymi przeglądarkami i systemami. Moim zdaniem warto od razu wyrabiać sobie nawyk pisania pełnej, semantycznie poprawnej struktury: `<video>` jako główny element odtwarzacza, w środku jeden lub więcej `<source>` i ewentualnie tekst alternatywny. Dzięki temu kod jest czytelny, łatwiej go stylować w CSS, a także lepiej zachowuje się w kontekście dostępności (np. czytniki ekranu widzą, że to element wideo). Dodatkowo, `<video>` można łatwo obsługiwać z poziomu JavaScript, korzystając z jego API (play, pause, currentTime, volume itd.), co w praktyce daje sporą kontrolę nad odtwarzaniem multimediów na stronie.

Pytanie 9

Aby zmienić wartość atrybutu elementu przy użyciu skryptu JavaScript, należy zastosować następujący zapis

A. document.getElementById(id).innerHTML = <nowa wartość>
B. document.getElementById(id).<nazwa-atrybutu> = <nowa wartość>
C. document.getElementById(id).<nazwa właściwości> = <nowa wartość>
D. document.getElementById(id).style.<nazwa właściwości> = <nowa wartość>
Sposoby zapisu w pozostałych odpowiedziach nie są odpowiednie dla zmiany cech elementów opisanych w CSS, co może prowadzić do nieporozumień w zakresie manipulacji stylem w JavaScript. Użycie document.getElementById(id).<nazwa-atrybutu> = <nowa wartość>; może sugerować, że próbujemy ustawić atrybuty HTML, jednak nie odnosi się to do stylów CSS. Atrybuty HTML i style CSS to dwa różne obszary, a manipulowanie stylem wymaga bezpośredniego odniesienia do obiektu style. Podobnie, w przypadku document.getElementById(id).<nazwa właściwości> = <nowa wartość>; wygląd elementu nie jest zmieniany, ponieważ nie wskazujemy na obiekt style, lecz na właściwości samego elementu. Użycie document.getElementById(id).innerHTML = <nowa wartość>; również wprowadza w błąd, ponieważ ta metoda służy do zmiany zawartości HTML wewnątrz danego elementu, a nie stylów. Często pojawia się mylne przekonanie, że można manipulować stylem, używając ogólnych atrybutów lub zawartości, co prowadzi do nieefektywnego i błędnego kodu. Istotne jest zrozumienie, że stylizacja elementów wymaga poprawnej interakcji z obiektem style, co zapewnia jednocześnie zgodność z najlepszymi praktykami programowania i pozwala uniknąć błędów w logice aplikacji.

Pytanie 10

W JavaScript poprawnie zdefiniowana zmienna to

A. imię2
B. imie2
C. #imie
D. imię%
Odpowiedź 'imie2' jest prawidłowa, ponieważ spełnia wszystkie zasady dotyczące nazewnictwa zmiennych w języku JavaScript. Zgodnie z tymi zasadami, nazwy zmiennych mogą zaczynać się od litery (a-z, A-Z), znaku podkreślenia (_) lub znaku dolara ($). Następnie, dozwolone są litery, cyfry (0-9), znaki podkreślenia oraz znaki dolara. Nazwa 'imie2' jest zgodna z tymi zasadami, ponieważ zaczyna się od litery, a następnie zawiera cyfrę, co jest akceptowalne. Przykładowo, dobra praktyka w programowaniu polega na nadawaniu zmiennym nazw związanych z ich przeznaczeniem, na przykład 'userAge' dla wieku użytkownika. Warto pamiętać, że unikanie użycia polskich znaków oraz specjalnych symboli w nazwach zmiennych, takich jak znaki procentu czy hashtagi, zwiększa czytelność i przenośność kodu, szczególnie w międzynarodowych projektach. Dobra praktyka sugeruje również używanie camelCase, co ułatwia identyfikację zmiennych w większych projektach.

Pytanie 11

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

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

Pytanie 12

Jaką właściwość należy zastosować w stylu CSS, aby określić krój czcionki?

A. font-style
B. text-family
C. font-family
D. text-style
Odpowiedź 'font-family' jest poprawna, ponieważ w CSS to właśnie ta właściwość służy do określenia rodziny czcionek, które mają być używane w danym elemencie. Właściwość 'font-family' pozwala na zdefiniowanie podstawowych czcionek, a także alternatywnych, które mogą być użyte, jeśli preferowana czcionka nie jest dostępna. Przykładowo, zapisywanie: `font-family: Arial, sans-serif;` wskazuje, że przeglądarka powinna używać czcionki Arial, a w przypadku jej braku - czcionki z rodziny sans-serif. To podejście jest szczególnie ważne w kontekście tworzenia responsywnych i dostępnych interfejsów użytkownika, gdzie różne urządzenia mogą obsługiwać różne czcionki. Dodatkowo, zgodnie z wytycznymi W3C i zasadami projektowania, zaleca się określanie co najmniej dwóch czcionek: głównej i alternatywnej, aby zapewnić odpowiednią estetykę i czytelność tekstu. Znajomość właściwości 'font-family' jest kluczowa dla każdego, kto zajmuje się projektowaniem stron internetowych, pozwalając na lepsze dostosowanie wyglądu i funkcjonalności serwisów oraz aplikacji webowych.

Pytanie 13

W przypadku uszkodzenia serwera bazy danych, aby jak najszybciej przywrócić pełną funkcjonalność bazy danych, należy skorzystać z

A. aktualnej wersji kopii zapasowej.
B. opisów struktur danych w tabelach.
C. kompletnej listy użytkowników serwera.
D. najnowszej wersji instalacyjnej serwera.
Wybór aktualnej wersji kopii zapasowej jako najefektywniejszej metody przywrócenia działania bazy danych po awarii serwera jest zgodny z najlepszymi praktykami w zarządzaniu danymi. Kopie zapasowe stanowią kluczowy element strategii ochrony danych i powinny być regularnie tworzone, aby minimalizować ryzyko utraty informacji. W przypadku uszkodzenia serwera bazy danych, przywrócenie z najnowszej kopii zapasowej, która zawiera wszystkie aktualne dane, jest najskuteczniejszym sposobem odzyskania sprawności systemu. Kopie zapasowe można tworzyć na różne sposoby, w tym pełne, przyrostowe i różnicowe, co pozwala na elastyczność w zarządzaniu danymi. Zgodnie z rekomendacjami takich standardów jak ISO 27001, organizacje powinny wdrażać procedury tworzenia i zarządzania kopiami zapasowymi. Przykładowo, w przypadku awarii, administratorzy mogą szybko przywrócić bazę danych do stanu sprzed awarii, co znacząco ogranicza przestoje i straty finansowe związane z utratą danych.

Pytanie 14

Wykres słupkowy należy zapisać w formacie rastrowym tak, aby jakość jego krawędzi była jak najlepsza, również dla dużego powiększenia, unikając efektu aliasingu. Do tego celu można zastosować format

A. JPEG
B. CDR
C. PNG
D. SVG
Analizując dostępne możliwości, łatwo się pogubić między formatami rastrowymi a wektorowymi, bo w praktyce często mieszają się te pojęcia. Format JPEG mimo swojej popularności w fotografii zupełnie nie nadaje się do wykresów słupkowych – kompresja stratna silnie degraduje jakość ostrych krawędzi i tekstów, przez co nawet lekko powiększony wykres wygląda nieestetycznie, pojawiają się brzydkie artefakty, rozmycia czy wręcz fragmentacja kolorów. To powszechny błąd, że JPEG jest uniwersalny – tak naprawdę sprawdza się tylko przy zdjęciach i obrazach z płynnymi przejściami kolorów. Z kolei SVG to już zupełnie inna liga, bo to format wektorowy. W nim krawędzie są zawsze idealnie ostre nawet przy dowolnym powiększeniu, bo są opisane matematycznie, a nie jako siatka pikseli. Problem w tym, że pytanie dotyczyło formatu rastrowego, więc SVG – choć fantastyczny do wykresów – nie spełnia tego warunku. CDR, czyli CorelDRAW, to natomiast format projektu wektorowego, popularny raczej w poligrafii i druku, a nie w codziennym zapisie wykresów do prezentacji czy publikacji elektronicznych. Pliki CDR są niekompatybilne z większością standardowych przeglądarek czy edytorów graficznych i wymagają specjalistycznego oprogramowania, więc to raczej ślepy zaułek. Wiele osób nie odróżnia również pojęcia aliasingu – czyli poszarpanych krawędzi w grafice rastrowej – od rozmycia czy utraty jakości wynikającej ze złego formatu. PNG jako jedyny z wymienionych formatów rastrowych umożliwia uzyskanie bardzo ostrych krawędzi, a przy zachowaniu wysokiej rozdzielczości pozwala niemal całkowicie uniknąć efektu aliasingu. Moim zdaniem to jeden z tych tematów, gdzie praktyka bardzo szybko weryfikuje teorię i wybierając PNG, po prostu nie ma się później problemów z jakością czy kompatybilnością. Trzeba pamiętać, że dobór formatu ma ogromny wpływ na ostateczną prezentację danych, dlatego nie warto iść na skróty, tylko dobrać narzędzie do konkretnego celu.

Pytanie 15

Aby zoptymalizować operacje na bazie danych, należy stworzyć indeksy dla pól, które są często wyszukiwane lub sortowane?

A. utworzyć indeks.
B. dodać więzy integralności.
C. stworzyć osobną tabelę przechowującą tylko te pola.
D. dodać klucz obcy.
Dodawanie kluczy obcych ma na celu utrzymanie integralności danych oraz relacji między tabelami, co jest niezwykle ważne w przypadku baz danych złożonych z wielu tabel. Klucz obcy wskazuje na rekord w innej tabeli, co umożliwia zachowanie spójności danych, ale nie przyspiesza operacji wyszukiwania ani sortowania w obrębie pojedynczej tabeli. Bezpośrednio nie wpływa to na wydajność zapytań do tabeli, w której te klucze są zdefiniowane, ponieważ wciąż może być konieczne przeszukiwanie całej tabeli w celu znalezienia odpowiednich rekordów. Więzy integralności, takie jak unikalność czy niepustość kolumn, również służą do utrzymania spójności danych, ale nie przyspieszają operacji wyszukiwania. Są one narzędziem do zapewnienia, że dane są zgodne z określonymi regułami, co jest istotne, ale nie wpływa na wydajność zapytań. Stworzenie osobnej tabeli przechowującej tylko te pola mogłoby w pewnych okolicznościach pomóc w organizacji danych, jednak w praktyce wprowadziłoby to dodatkową złożoność w zarządzaniu relacjami oraz zapytaniami. Takie podejście może prowadzić do większej liczby operacji JOIN, co w dłuższym okresie może spowolnić operacje, zamiast je przyspieszyć. W rezultacie, wszystkie te metody mają swoje miejsce w architekturze baz danych, ale nie są odpowiednie w kontekście optymalizacji operacji wyszukiwania i sortowania na danych.

Pytanie 16

Aby przesłać informacje za pomocą funkcji mysqli_query) w skrypcie PHP, który dodaje do bazy danych dane uzyskane z formularza na stronie internetowej, jako jeden z argumentów trzeba użyć kwerendy

A. INSERT INTO
B. SELECT
C. ALTER
D. UPDATE
Odpowiedzi takie jak 'UPDATE', 'SELECT' oraz 'ALTER' nie są odpowiednie w kontekście wstawiania nowych danych do bazy. Kwerenda 'UPDATE' służy do modyfikacji istniejących rekordów, co oznacza, że używając jej, zmieniamy już zapisane dane, a nie dodajemy nowe. Na przykład, użycie 'UPDATE uzytkownicy SET email = '[email protected]' WHERE imie = 'Jan'' zmienia adres e-mail Jana, ale nie wstawia nowych informacji. 'SELECT' z kolei jest używana do pobierania danych z bazy, co oznacza, że nie ma zastosowania w procesie dodawania nowych rekordów. W przypadku 'SELECT' moglibyśmy chcieć wyświetlić wszystkie dane użytkowników, co również nie wpisuje się w kontekst wstawiania. Natomiast 'ALTER' służy do zmiany struktury tabeli, co oznacza, że przy jej użyciu możemy dodawać lub usuwać kolumny, ale nie jest to bezpośrednio związane z wprowadzaniem nowych danych. Często niepoprawne zrozumienie działania kwerend SQL prowadzi do zamieszania, zwłaszcza w kontekście operacji CRUD (Create, Read, Update, Delete), gdzie każdy z tych terminów ma swoje ściśle określone znaczenie. Warto zatem przyswoić sobie podstawowe różnice między tymi kwerendami, aby móc skutecznie zarządzać danymi w bazie danych.

Pytanie 17

Celem testów związanych ze skalowalnością oprogramowania jest ocena, czy aplikacja

A. posiada odpowiednią funkcjonalność
B. potrafi funkcjonować przy założonym i wyższym obciążeniu
C. jest chroniona przed nieautoryzowanymi operacjami, np. dzieleniem przez zero
D. jest właściwie udokumentowana
Twoja odpowiedź o funkcjonalności aplikacji i unikaniu błędów, jak dzielenie przez zero, nie do końca odnosi się do testów skalowalności. Właściwie, kluczowym punktem w testach skalowalności jest to, jak system radzi sobie z większym obciążeniem. Funkcjonalność trochę dotyczy tego, co aplikacja umie, ale to nie to samo co skalowanie. Posiadanie dobrej dokumentacji jest istotne, ale nie wpływa na to, jak aplikacja reaguje na rosnące obciążenie. Owszem, zabezpieczenia są ważnym elementem, żeby system był stabilny, ale to właśnie nie ma wiele wspólnego z zagadnieniem skalowalności. Myślę, że część osób myli różne aspekty, takie jak funkcjonalność z wydajnością i zabezpieczeniami. Ważne, żeby umieć je oddzielać i wiedzieć, jak każdy z tych elementów wpływa na ogólną jakość aplikacji w obliczu zmieniającego się zapotrzebowania.

Pytanie 18

Aby graficznie tworzyć strony internetowe, należy skorzystać z.

A. przeglądarka internetowa
B. program MS Office Picture Manager
C. edytor CSS
D. program typu WYSIWYG
Programy typu WYSIWYG (What You See Is What You Get) są narzędziami, które umożliwiają tworzenie stron internetowych w sposób wizualny, co oznacza, że użytkownik widzi na ekranie efekty swojej pracy w czasie rzeczywistym. Takie oprogramowanie, jak Adobe Dreamweaver czy WordPress, pozwala na łatwe przeciąganie elementów, edytowanie tekstów oraz dodawanie grafik bez konieczności bezpośredniego pisania kodu HTML czy CSS. Dzięki temu, osoby bez zaawansowanej wiedzy programistycznej mogą tworzyć profesjonalnie wyglądające strony internetowe. Programy WYSIWYG wspierają standardy webowe i dobre praktyki, co pomaga w tworzeniu responsywnych i dostępnych serwisów. Używanie tych narzędzi przyspiesza także proces prototypowania oraz umożliwia szybkie wprowadzanie zmian, co jest niezwykle cenne w dynamicznym środowisku projektowym. Oprócz tego, dobrze zaprojektowane programy WYSIWYG oferują funkcje podglądu na różnych urządzeniach, co jest kluczowe w dobie rosnącej liczby rozdzielczości ekranów i urządzeń mobilnych.

Pytanie 19

Jakie jest zadanie funkcji przedstawionej w języku JavaScript?

 function fun1(a, b) {
    if (a % 2 != 0) a++;
    for (n = a; n <= b; n+=2)
        document.write(n);
}
A. wypisanie wszystkich liczb z zakresu od a do b
B. sprawdzenie, czy liczba a jest nieparzysta; w przypadku potwierdzenia, wypisanie jej
C. zwrócenie wartości liczb parzystych od a do b
D. wypisanie liczb parzystych z zakresu od a do b
Odpowiedź "wypisanie liczb parzystych z przedziału od a do b" jest prawidłowa, ponieważ funkcja fun1(a, b) w języku JavaScript ma na celu wyświetlenie wszystkich liczb parzystych w zdefiniowanym zakresie. Funkcja najpierw sprawdza, czy liczba a jest nieparzysta; jeśli tak, to zwiększa ją o 1, co zapewnia, że zaczynamy od najbliższej liczby parzystej. Następnie, za pomocą pętli for, iteruje przez liczby od a do b, zwiększając n o 2 w każdej iteracji. Dzięki temu wypisujemy tylko liczby parzyste. Przykładowo, jeśli a = 3 i b = 9, to funkcja zacznie od 4 i wypisze 4, 6, i 8. Tego typu funkcje są przydatne w różnych kontekstach programistycznych, takich jak generowanie sekwencji liczb dla algorytmów matematycznych, generowanie danych testowych czy też przy pracy z interfejsami użytkownika, gdzie występują interwały liczbowe. Dobrą praktyką jest zawsze jasno określać zakres przetwarzanych danych, co ta funkcja realizuje, zapewniając, że wyniki są zgodne z oczekiwaniami użytkownika.

Pytanie 20

Użycie znacznika <b> do pogrubienia tekstu może być również osiągnięte poprzez zastosowanie reguły CSS

A. text-weight
B. font-size
C. font-weight
D. text-size
Właściwość CSS 'font-weight' to naprawdę ważne narzędzie, które pozwala nam kontrolować grubość tekstu na stronie. Dzięki niemu możemy nie tylko pogrubić tekst, ale też ustawić różne inne wartości, jak 'normal', 'bold', 'bolder' oraz liczby od 100 do 900. To daje nam fajne możliwości w zakresie typografii. Na przykład, jak użyjesz zapisu CSS 'p { font-weight: bold; }', to wszystkie akapity na stronie będą się wyświetlały pogrubioną czcionką. Dobrze jest pamiętać, że korzystanie z 'font-weight' jest zgodne z najlepszymi praktykami, bo odseparowuje treść od stylizacji. Moim zdaniem dobrze jest ograniczać użycie znaczników HTML, takich jak <b>, do sytuacji, kiedy zależy nam na podkreśleniu ważności jakiejś treści. Projektując strony, musimy myśleć też o tym, jak strony będą odbierane przez użytkowników i jak będą dostępne. Dobre style mogą bardzo poprawić czytelność tekstu.

Pytanie 21

Która z list jest interpretacją podanego kodu?

Ilustracja do pytania
A. Rys. A
B. Rys. D
C. Rys. C
D. Rys. B
Kod HTML zawiera uporządkowaną listę ol z dwoma głównymi elementami muzyka i filmy Każdy z tych elementów ma zagnieżdżoną listę nieuporządkowaną ul z odpowiednimi wpisami W HTML użycie listy ol oznacza że elementy główne będą numerowane Kolejność elementów w kodzie muzyka a następnie filmy jest zgodna z ilustracją C gdzie każdy element nadrzędny zawiera swoją własną zagnieżdżoną listę nieuporządkowaną ul Prawidłowe zagnieżdżanie list jest kluczowe dla struktury semantycznej dokumentu HTML co ma znaczenie dla SEO i dostępności Dobrym przykładem praktyki jest używanie odpowiednich znaczników aby zachować logiczną hierarchię Użycie ol i ul w odpowiednich miejscach pozwala na lepsze zrozumienie i interpretację treści przez przeglądarki i czytniki ekranowe Zapewnienie poprawnej struktury list pomaga również w utrzymaniu porządku w kodzie i lepszym zarządzaniu stylem za pomocą CSS

Pytanie 22

W SQL przy użyciu kwerendy ALTER można

A. zmienić strukturę tabeli
B. dodać dane do tabeli
C. stworzyć tabelę
D. zlikwidować tabelę
Kwerenda SQL <i>ALTER</i> jest kluczowym narzędziem do modyfikacji istniejących struktur tabel w bazach danych. Umożliwia programistom dostosowanie tabel do zmieniających się wymagań aplikacji lub organizacji. Przykładowo, za pomocą polecenia <i>ALTER TABLE</i> możemy dodać nową kolumnę, usunąć istniejącą, zmienić typ danych kolumny czy również ustawić nowe ograniczenia, takie jak klucze obce. W praktyce, gdy firma rozwija swoje usługi, często zachodzi potrzeba dostosowania struktury bazy danych, co może być realizowane przez odpowiednie kwerendy <i>ALTER</i>. Dobrą praktyką jest również regularne przeglądanie i aktualizowanie struktury bazy danych, aby zapewnić optymalizację wydajności oraz zgodność z wymaganiami biznesowymi. Standard SQL, który definiuje te operacje, jest szeroko używany i uznawany za fundamentalny w pracy z relacyjnymi bazami danych. Znajomość kwerendy <i>ALTER</i> jest zatem niezbędna dla wszystkich, którzy zajmują się administracją baz danych i programowaniem aplikacji opartych na danych.

Pytanie 23

Zapis w CSS `h2 {background-color: green;}` spowoduje, że kolor zielony będzie dotyczył

A. tła tekstu nagłówka drugiego poziomu
B. tła całej witryny
C. czcionki wszystkich nagłówków na stronie
D. czcionki nagłówków drugiego poziomu
Zapis CSS 'h2 {background-color: green;}' ustawia styl dla nagłówków drugiego stopnia. Dzięki właściwości 'background-color' tło nagłówka zrobi się zielone, co oznacza, że obszar za tekstem tego nagłówka będzie miał kolor zielony. Ważne, żeby pamiętać, że to działa tylko na tło samego nagłówka, a nie na całą stronę. Na przykład, jeśli w elemencie h2 jest tekst 'Witamy na naszej stronie', to tło tego nagłówka dostaje zielony kolor. To podejście jest zgodne z CSS, które pozwala na precyzyjne stylizowanie różnych elementów w dokumencie. Można też używać różnych trybów kolorów jak RGB, HEX czy HSL, co daje jeszcze większe możliwości w projektowaniu.

Pytanie 24

Jak nazywa się platforma wspierająca rozwój oprogramowania w technologii .NET?

A. db2
B. framework
C. middleware
D. eclipse
Wybór db2, eclipse oraz middleware jako odpowiedzi na pytanie o platformę wspierającą programowanie w technologii .NET jest niepoprawny z kilku powodów. Db2 to system zarządzania bazami danych, który jest używany do przechowywania i zarządzania danymi w aplikacjach, ale sam w sobie nie dostarcza środowiska ani narzędzi do programowania. Jest to technologia związana z bazami danych, a nie z frameworkami do tworzenia aplikacji. Eclipse to środowisko zintegrowane (IDE), które obsługuje różne języki programowania, ale jego głównym celem jest umożliwienie programistom pisania kodu, a nie dostarczanie specyficznych bibliotek czy narzędzi dla platformy .NET. Chociaż Eclipse może być używane do pracy z technologią .NET poprzez odpowiednie wtyczki, to nie jest to platforma natywna dla .NET, jakim jest .NET Framework. Middleware to termin odnoszący się do oprogramowania, które działa pomiędzy różnymi aplikacjami lub systemami, umożliwiając komunikację i zarządzanie danymi. Nie jest to jednak framework do programowania, a raczej kategoria oprogramowania, która wspiera interakcje między aplikacjami. Dlatego wszystkie te odpowiedzi są błędne w kontekście pytania o platformę wspierającą programowanie w technologii .NET.

Pytanie 25

W jakim typie pliku powinno się zapisać zdjęcie, aby mogło być wyświetlane na stronie WWW z zachowaniem efektu przezroczystości?

A. PNG
B. JPG
C. CDR
D. BMP
Format PNG (Portable Network Graphics) jest idealnym wyborem do przechowywania obrazów z przezroczystością, ponieważ obsługuje kanał alfa, który pozwala na reprezentację przezroczystości w obrazach. Ta cecha jest szczególnie cenna w projektowaniu stron internetowych, gdzie grafiki muszą być dopasowane do różnych tła bez widocznych krawędzi. Przykładowo, logo firmy zapisane w formacie PNG może być umieszczone na stronie o różnych kolorach tła, zachowując estetyczny wygląd i nie zaburzając kompozycji. Ponadto, PNG jest formatem bezstratnym, co oznacza, że zachowuje jakość oryginalnego obrazu podczas kompresji, co jest ważne, gdy zależy nam na zachowaniu szczegółów i kolorów. W praktyce, wiele przeglądarek internetowych i edytorów graficznych obsługuje ten format, co czyni go standardem w branży. Dlatego dla grafik z przezroczystością PNG jest najczęściej zalecanym formatem, zgodnym z aktualnymi standardami i najlepszymi praktykami w dziedzinie projektowania stron internetowych.

Pytanie 26

Jak zdefiniować formatowanie tabeli w języku CSS, aby wyróżnić wiersz, na który aktualnie najeżdża kursor myszy, korzystając z innego koloru?

A. pseudoklasę :hover
B. pseudoelement ::first-line
C. pseudoelement ::marker
D. pseudoklasę :visited
Prawidłową odpowiedzią jest użycie pseudoklasy :hover, która jest standardowym rozwiązaniem w CSS do stylizacji elementów, gdy użytkownik na nie najedzie kursorem myszy. Pseudoklasa :hover pozwala na dynamiczną modyfikację wyglądu elementów, co jest szczególnie użyteczne w kontekście interaktywności stron internetowych. Na przykład, można zastosować tę pseudoklasę do wierszy tabeli, aby zmienić ich kolor tła na inny, co podnosi czytelność i estetykę interfejsu użytkownika. Implementacja może wyglądać następująco: table tr:hover { background-color: #f2f2f2; } - dzięki temu, gdy użytkownik najedzie myszką na wiersz tabeli, jego tło zmieni się na jasno szare, co zwraca uwagę na ten wiersz. Użycie :hover jest zgodne z dobrymi praktykami w projektowaniu UI, gdyż poprawia doświadczenia użytkownika oraz umożliwia intuicyjne korzystanie z interakcji na stronie. Pseudoklasa :hover wspiera również responsywność, ponieważ wpływa na sposób, w jaki użytkownicy wchodzą w interakcje z elementami, co jest kluczowe w nowoczesnym projektowaniu stron.

Pytanie 27

Co uzyskujemy po wykonaniu zapytania SQL?

Ilustracja do pytania
A. całkowitą liczbę uczniów
B. liczbę uczniów, których średnia ocen wynosi 5
C. średnią wszystkich ocen uczniów
D. suma ocen uczniów, których średnia ocen wynosi 5
Analizując błędne koncepcje w tym pytaniu warto zwrócić uwagę na mechanizmy działania zapytań SQL które często są mylnie interpretowane. Zapytanie SELECT count(*) nie zwraca liczby wszystkich uczniów lecz tylko tych którzy spełniają określone warunki tutaj średnia ocen wynosi 5. Wybór SELECT count(*) jest kluczowy ponieważ w odróżnieniu od funkcji takich jak AVG() czy SUM() nastawiony jest na zliczanie wierszy a nie na obliczanie wartości średnich czy sum. Mylnym przekonaniem może być że tak skonstruowane zapytanie zwraca średnią ocen wszystkich uczniów; do tego celu służyłaby funkcja AVG(). Podobnie błędne byłoby oczekiwanie że zwróci sumę ocen studentów z daną średnią. Suma wymagałaby użycia funkcji SUM() i odpowiednich modyfikacji zapytania. Często popełnianym błędem jest także niedostrzeżenie że zapytanie z klauzulą WHERE ogranicza wyniki do podzbioru danych co jest kluczowe dla jego poprawnej interpretacji. Zrozumienie tych różnic jest istotne dla efektywnego wykorzystania SQL w praktyce zawodowej i unikania błędów analitycznych.

Pytanie 28

Która funkcja edytora grafiki wektorowej spowoduje przekształcenie z przedstawionych po lewej stronie figur koła i prostokąta do figury półkola widocznej po prawej stronie?

Ilustracja do pytania
A. Wykluczenie.
B. Część wspólna.
C. Podział.
D. Różnica.
W grafice wektorowej operacje na kształtach, takie jak Różnica, Podział, Wykluczenie czy Część wspólna, to tzw. operacje boole’owskie. One nie są losowe – każda z nich ma bardzo konkretne, matematyczne znaczenie. Typowy błąd polega na tym, że patrzymy tylko na „intuicyjną” nazwę funkcji, a nie na to, co faktycznie dzieje się z obszarami wypełnienia. Różnica (ang. Subtract / Difference) polega na tym, że jedna figura „wycina” fragment z drugiej. Gdyby w naszym przykładzie użyć różnicy, to z jednej figury zostałby usunięty fragment zajmowany przez drugą. W efekcie dostalibyśmy kształt przypominający np. prostokąt z zaokrąglonym wycięciem, a nie pełne półkole. To przydaje się np. do robienia otworów, ramek, ikon z „dziurą”, ale nie do budowy półkola. Podział (ang. Divide / Fragment) dzieli obszar wszędzie tam, gdzie kształty się przecinają, na kilka osobnych obiektów. Wizualnie może to chwilowo wyglądać podobnie, ale końcowy efekt to kilka fragmentów, które trzeba ręcznie usuwać lub scalać. W testowym zadaniu chodzi o jedną, gotową figurę półkola, bez dodatkowego sprzątania, więc to nie jest optymalna operacja. Wykluczenie (ang. Exclude / XOR) działa odwrotnie do części wspólnej – usuwa obszar nakładania się, a zostawia tylko to, co jest „na zewnątrz” przecięcia. Gdyby użyć wykluczenia na kole i prostokącie, środek, czyli miejsce ich wspólnego nakładania, zniknie, a zostaną dwa osobne dziwne kształty po bokach. To dobra funkcja do tworzenia bardziej dekoracyjnych, ażurowych form, ale kompletnie nie nadaje się do uzyskania klasycznego półkola. W tym zadaniu kluczowe jest zrozumienie, że półkole jest dokładnie tym obszarem, gdzie koło i prostokąt się pokrywają. Stąd jedynie „Część wspólna” daje czysty, poprawny efekt bez dodatkowej obróbki. Warto przy takich pytaniach wyobrażać sobie, które fragmenty zostaną, a które zostaną usunięte, zamiast sugerować się tylko nazwą funkcji w menu programu.

Pytanie 29

Instrukcja zapisana w SQL, przedstawiona poniżej, ilustruje kwerendę:

UPDATE katalog SET katalog.cena = [cena]*1.1;
A. usuwającej
B. aktualizującej
C. dołączającej
D. krzyżowej
Odpowiedź "aktualizującej" jest prawidłowa, ponieważ instrukcja SQL, którą przedstawiono, służy do modyfikacji istniejących danych w tabeli. Kwerenda ta używa polecenia UPDATE, które jest standardowym poleceniem w SQL do zmiany wartości w jednej lub wielu kolumnach w wybranych wierszach tabeli. W tym przypadku, kwerenda zwiększa wartość ceny o 10% dla wszystkich rekordów w tabeli 'katalog'. Takie operacje są powszechnie stosowane w zarządzaniu bazami danych, szczególnie w kontekście aktualizacji cen produktów, co jest kluczowe w handlu elektronicznym i zarządzaniu zapasami. Ważne jest również, aby przy każdej aktualizacji danych uwzględnić warunki, jeśli zmiana ma dotyczyć tylko określonych wierszy, co można osiągnąć poprzez dodanie klauzuli WHERE. Ponadto, dobrym nawykiem jest zawsze tworzenie kopii zapasowych danych przed przeprowadzeniem masowych aktualizacji, aby zminimalizować ryzyko utraty informacji.

Pytanie 30

W CSS wartości: underline, overline, line-through oraz blink odnoszą się do właściwości

A. text-align
B. text-decoration
C. font-style
D. font-decoration
Właściwość font-style służy do definiowania stylu czcionki, takiego jak normal, italic lub oblique, ale nie odnosi się do dekoracji tekstu. Styl czcionki nie zmienia sposobu, w jaki tekst jest podkreślany, nadkreślany czy przekreślany. Z kolei text-align to właściwość CSS odpowiedzialna za wyrównanie tekstu w elemencie. Możliwe wartości tej właściwości to left, right, center oraz justify, a jej zadaniem jest kontrolowanie, w jaki sposób tekst jest rozmieszczony w obrębie swojego kontenera, ale nie ma wpływu na stylizację samego tekstu, taką jak podkreślenie czy przekreślenie. Ostatecznie, font-decoration nie jest rzeczywistą właściwością w standardzie CSS. Programiści mogą mylić terminy, jednak właściwa terminologia to text-decoration. Font-decoration nie jest uznawane przez przeglądarki, co czyni je niewłaściwym dla stylizacji tekstu. Zrozumienie tych różnic jest kluczowe dla efektywnego wykorzystania CSS w projektach webowych, ponieważ każda z tych właściwości ma swoje specyficzne zastosowania, które są fundamentalne dla tworzenia responsywnych i estetycznych stron internetowych.

Pytanie 31

Który składnik języka HTML jest niezbędny, aby uniknąć błędu w walidacji HTML5?

A. prologu <!DOCTYPE html>
B. <body>
C. przynajmniej jednego <h1>
D. <meta name="author" content="....">
Prolog <!DOCTYPE html> jest kluczowym elementem każdego dokumentu HTML5, który definiuje typ dokumentu i jego wersję. Jego obecność umożliwia przeglądarkom internetowym prawidłowe interpretowanie i renderowanie treści strony. Bez tego prologu przeglądarka nie ma informacji o tym, że strona powinna być interpretowana jako dokument HTML5, co może prowadzić do nieprzewidywalnych wyników w renderowaniu i działaniu strony. W praktyce, dodanie <!DOCTYPE html> na początku dokumentu HTML jest fundamentalnym krokiem, który powinien być zawsze przestrzegany. Standardy W3C jasno określają, że prolog jest niezbędny, aby zapewnić zgodność z HTML5 i uniknąć błędów walidacji. Na przykład, jeśli zapomnimy o tym elemencie, nasza strona może nie wyświetlać się poprawnie w różnych przeglądarkach, co z kolei wpłynie na doświadczenia użytkowników oraz pozycjonowanie strony w wyszukiwarkach. Dlatego każdy programista powinien traktować <!DOCTYPE html> jako nieodłączny element kodu HTML, zapewniając tym samym stabilność i spójność prezentowanej treści.

Pytanie 32

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

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

Pytanie 33

<?php
function silnia($liczba)
{
    if($liczba < 2)
        return 1;
    else
        return $liczba * silnia($liczba - 1);
}
?>
Funkcja silnia jest funkcją
A. rekurencyjną.
B. abstrakcyjną.
C. nie zwracającą wyniku.
D. bezparametrową.
Kod przedstawia funkcję `silnia($liczba)` w PHP, która oblicza silnię liczby naturalnej. Kluczową cechą tej funkcji jest to, że wewnątrz swojego ciała wywołuje samą siebie: `silnia($liczba - 1)`. To właśnie sprawia, że jest to funkcja rekurencyjna, a nie żadna z pozostałych podanych opcji. Warto zrozumieć, skąd mogą brać się błędne skojarzenia. Niektórzy patrzą na definicję i myślą, że skoro funkcja ma prostą postać, to może jest „bezparametrowa”. Tymczasem funkcja bezparametrowa to taka, która nie przyjmuje żadnych argumentów, np. `function test(){ ... }`. Tutaj mamy wyraźnie zdefiniowany parametr `$liczba`, który jest używany w warunku `if($liczba < 2)` oraz w obliczeniach, więc nie ma mowy o braku parametrów. Pojawia się też czasem mylne przekonanie, że skoro funkcja „coś robi”, to może nie musi zwracać wyniku. W tym przykładzie jasno widać słowo kluczowe `return` użyte w obu gałęziach instrukcji warunkowej: najpierw `return 1;`, a potem `return $liczba * silnia($liczba - 1);`. To jest funkcja, która zwraca konkretną wartość liczbową – wynik obliczenia silni – a nie funkcja typu „procedura”, która tylko wykonuje efekt uboczny. W PHP dobra praktyka jest taka, żeby funkcje obliczeniowe zawsze coś zwracały, zamiast np. tylko wypisywać dane na ekran. Opcja „abstrakcyjna” również nie pasuje do tego przykładu. Pojęcie funkcji abstrakcyjnej wiąże się z programowaniem obiektowym, klasami abstrakcyjnymi i interfejsami, gdzie definiujemy metodę bez implementacji (w PHP np. `abstract public function foo();`). Tutaj mamy zwykłą, w pełni zaimplementowaną funkcję globalną, bez słowa kluczowego `abstract` i bez kontekstu klasy. Z mojego doświadczenia często problem bierze się z mieszania pojęć: ktoś kojarzy abstrakcję z „czystą matematyką” silni i automatycznie myśli „abstrakcyjna funkcja”, ale w terminologii PHP to zupełnie coś innego. Poprawne rozpoznanie rekurencji wymaga zwrócenia uwagi tylko na jedną rzecz: czy funkcja wywołuje samą siebie i czy ma warunek końca. Tutaj oba te elementy są obecne, więc jedynym poprawnym opisem jest właśnie funkcja rekurencyjna.

Pytanie 34

Przy użyciu polecenia ALTER TABLE można

A. tworzyć nową tabelę
B. zmieniać strukturę tabeli
C. zmieniać wartości zapisane w rekordach tabeli
D. usuwać tabelę
Polecenie ALTER TABLE jest kluczowym narzędziem w zarządzaniu bazami danych, pozwalającym na modyfikację struktury istniejących tabel. Umożliwia m.in. dodawanie, usuwanie lub modyfikowanie kolumn, a także zmianę ich typów danych. Na przykład, aby dodać nową kolumnę do tabeli, można użyć polecenia: ALTER TABLE nazwa_tabeli ADD nowa_kolumna typ_danych. W praktyce, ALTER TABLE jest niezbędne w przypadku zmiany wymagań aplikacji, które mogą wymagać dostosowania struktury bazy danych. Zmiany strukturalne powinny być przeprowadzane zgodnie z zasadami normalizacji, co zapewnia optymalizację bazy danych oraz zapobiega redundancji danych. Kluczowe jest również testowanie wprowadzonych zmian w środowisku testowym przed ich wdrożeniem w produkcji, co jest zgodne z najlepszymi praktykami w inżynierii oprogramowania. Warto również pamiętać, że podczas modyfikacji struktury tabeli, odpowiednie zrozumienie relacji między tabelami jest istotne dla zachowania integralności danych.

Pytanie 35

W programowaniu istnieje tylko jeden typ danych, który może przyjąć tylko dwie wartości. Jak nazywa się ten typ?

A. znakowy
B. tablicowy
C. ciągowy
D. logiczy
Typ logiczny, znany również jako typ boolean, jest jedynym typem danych w językach programowania, który przyjmuje wyłącznie dwie wartości: prawda (true) i fałsz (false). To podstawowe założenie czyni go niezwykle ważnym w kontekście programowania, zwłaszcza w logice warunkowej oraz w kontrolowaniu przepływu programu. W praktyce typ logiczny jest szeroko stosowany w instrukcjach warunkowych, takich jak 'if', 'while' czy 'for', gdzie pozwala na podejmowanie decyzji na podstawie spełnienia określonych warunków. Na przykład w języku Python możemy sprawdzić, czy zmienna jest większa od zera, a wynik tej operacji będzie wartością typu logicznego, co pozwoli na podjęcie dalszych działań w programie. Ponadto, typ logiczny odgrywa kluczową rolę w strukturach danych, takich jak listy i słowniki, które mogą przechowywać warunki logiczne jako klucze. Zgodnie z dobrymi praktykami programistycznymi, zaleca się używanie typu logicznego w sytuacjach, gdzie wynik operacji powinien być jednoznaczny, co prowadzi do poprawy czytelności i utrzymywalności kodu.

Pytanie 36

Prostokątne zniekształcenia obrazu, które występują przy zapisie pliku graficznego, są typowe dla formatu

Ilustracja do pytania
A. BMP bez kompresji
B. JPEG z dużym stopniem kompresji stratnej
C. GIF z kompresją bezstratną LZW
D. PNG z kompresją bezstratną LZ77
BMP jest formatem, który przechowuje obrazy bez kompresji, co oznacza, że każdy piksel jest zapisywany indywidualnie. Zapewnia to wysoką jakość obrazu bez zniekształceń wynikających z kompresji, ale skutkuje bardzo dużymi rozmiarami plików. BMP jest zatem nieefektywny w kontekście przechowywania i przesyłania dużych ilości danych graficznych. Format GIF natomiast używa kompresji bezstratnej LZW, która pozwala zachować pełną integralność danych graficznych. GIF jest ograniczony do 256 kolorów, co czyni go nieodpowiednim dla złożonych obrazów fotograficznych, a sam format nie generuje prostokątnych zniekształceń widocznych w obrazie. PNG, podobnie jak GIF, korzysta z kompresji bezstratnej, w tym przypadku LZ77, i jest często wykorzystywany do grafik internetowych ze względu na wsparcie dla przezroczystości i szerokiej gamy kolorystycznej. PNG, dzięki zachowaniu pełnych danych, nie wykazuje charakterystycznych dla JPEG efektów zniekształcenia blokowego. Częstym błędem jest zakładanie, że wszystkie formaty kompresji wpływają na jakość obrazu w ten sam sposób, podczas gdy różne algorytmy mają swoje unikalne właściwości i zastosowania. Wybór formatu powinien być oparty na konkretnych potrzebach i zastosowaniach, z uwzględnieniem kompromisu między jakością, a rozmiarem pliku, co ma kluczowe znaczenie w różnych branżach zajmujących się grafiką i fotografią cyfrową.

Pytanie 37

Jakie polecenie wydane w terminalu systemu operacyjnego, które zawiera w swojej składni opcję --repair, pozwala na naprawę bazy danych?

A. create
B. mysqldump
C. mysqlcheck
D. truncate
Truncate to polecenie, które służy do szybkiego usuwania wszystkich wierszy z tabeli, a nie do naprawy bazy danych. Często mylone jest z usuwaniem danych, jednak nie wykonuje ono operacji naprawczych ani nie zdejmuje blokad związanych z integralnością danych. Mysqldump to z kolei narzędzie do tworzenia kopii zapasowych baz danych, które eksportuje dane do postaci pliku, ale również nie ma możliwości naprawy istniejących błędów w danych czy strukturze tabel. Create to komenda używana do tworzenia nowych tabel lub baz danych, jednak nie ma zastosowania w kontekście naprawy już istniejących obiektów. Typowym błędem myślowym jest przypisywanie funkcji, które są dedykowane do zarządzania danymi, do operacji naprawczych, co może prowadzić do utraty danych lub niewłaściwego postępowania z bazą. Kluczowym aspektem w zarządzaniu bazami danych jest znajomość właściwych narzędzi i ich zastosowań, co pozwala na skuteczne i bezpieczne zarządzanie danymi. Użycie niewłaściwych poleceń w kontekście zarządzania bazami danych może prowadzić do problemów z dostępnością, a nawet do uszkodzenia danych, dlatego istotne jest, aby dobrze rozumieć funkcje narzędzi, które się wykorzystuje.

Pytanie 38

Jak wykonanie zapytania SQL przedstawionego poniżej wpłynie na tabelę pracownicy?

ALTER TABLE pracownicy MODIFY plec char(9);
A. Utworzy kolumnę plec o typie znakowym o stałej długości 9.
B. Utworzy kolumnę plec o typie znakowym o zmiennej długości 9.
C. Zmieni typ danych kolumny plec na znakowy o stałej długości 9.
D. Zmieni typ danych kolumny plec na znakowy o zmiennej długości 9.
Odpowiedź jest poprawna, ponieważ polecenie ALTER TABLE zmienia istniejącą kolumnę w tabeli pracownicy. W szczególności, polecenie MODIFY plec char(9) modyfikuje typ danych kolumny plec na znakowy o stałej długości 9. Oznacza to, że każda wartość przechowywana w tej kolumnie będzie miała dokładnie 9 znaków (wypełnionych np. spacjami, jeśli wartość będzie krótsza). W praktyce zapewnia to jednolitą długość dla przechowywanych danych, co może być korzystne w przypadku, gdy wymagane jest zachowanie spójności długości, na przykład przy przechowywaniu kodów pocztowych lub identyfikatorów. Standardy projektowania baz danych zalecają używanie odpowiednich typów danych, aby zminimalizować przestrzeń dyskową oraz przyspieszyć operacje na danych. Warto zauważyć, że w przypadku kolumny char(9) nie można wprowadzić wartości dłuższej niż 9 znaków, co zapobiega niezgodnościom danych.

Pytanie 39

W języku JavaScript zapisano kod, którego wynikiem działania jest?
var osoba=prompt("Podaj imię", "Adam");

A. uzyskanie z formularza wyświetlonego na stronie HTML imienia "Adam"
B. wyświetlenie okna z polem do edycji, w którym domyślnie znajduje się tekst "Adam"
C. pokazanie okna z pustym polem do edycji
D. bezpośrednie przypisanie do zmiennej osoba wartości "Adam"
Pierwsza odpowiedź sugeruje, że po uruchomieniu kodu wyświetli się okno z pustym polem edycyjnym. Jest to niepoprawne, ponieważ kod zawiera drugi argument funkcji prompt, który ustawia domyślną wartość w polu edycyjnym na 'Adam'. Dlatego użytkownik od razu widzi tę wartość, a nie pustą przestrzeń do wypełnienia. Kolejna błędna odpowiedź sugeruje, że wartość 'Adam' zostaje bezpośrednio przypisana do zmiennej 'osoba'. W rzeczywistości, wartość ta zostanie przypisana tylko po interakcji użytkownika z oknem dialogowym. Jeśli użytkownik zdecyduje się wprowadzić inne imię lub anulować, zmienna 'osoba' przyjmie inną wartość lub null, co nie jest równoznaczne z bezpośrednim przypisaniem. Ostatnia mylna odpowiedź odnosi się do pobrania imienia z formularza wyświetlonego na stronie HTML. Funkcja prompt nie jest związana z formularzami HTML; jest niezależnym oknem dialogowym, które nie współdziała z elementami formularzy. Umożliwia ona użytkownikowi wprowadzenie danych, niezależnie od formatu czy zawartości formularza, co czyni tę odpowiedź również błędną.

Pytanie 40

Jakiego typu mechanizm zabezpieczeń aplikacji jest zawarty w środowisku uruchomieniowym platformy .NET Framework?

A. Mechanizm uruchamiania aplikacji dla bibliotek klas
B. Mechanizm uruchamiania aplikacji oparty na uprawnieniach kodu (CAS - Code Access Security) i na rolach (RBS - Role-Based Security)
C. Mechanizm uruchamiania aplikacji realizowany przez funkcję Windows API (Application Programming Interface)
D. Mechanizm uruchamiania aplikacji zrealizowany przez frameworki aplikacji webowych (ASP.NET)
Odpowiedzi sugerujące, że mechanizmy bezpieczeństwa w .NET Framework są realizowane przez bibliotekę klas, frameworki aplikacji internetowych (ASP.NET) oraz przez funkcje Windows API, są niepoprawne. Mechanizm wykonywania aplikacji dla bibliotek klas nie jest samodzielnym systemem kontroli bezpieczeństwa; oferują one zestaw funkcji i klas, które mogą być używane do rozwoju, ale nie zawierają w sobie wbudowanych zabezpieczeń. Również frameworki aplikacji internetowych, takie jak ASP.NET, wykorzystują różne techniki i standardy do zapewnienia bezpieczeństwa, ale same w sobie nie stanowią całościowego mechanizmu kontroli dostępu. Funkcje Windows API (Application Programming Interface) dostarczają niskopoziomowe interfejsy do interakcji z systemem operacyjnym, jednak ich rola w kontekście bezpieczeństwa aplikacji .NET jest ograniczona i nie odpowiada za zarządzanie uprawnieniami kodu. W rzeczywistości CAS i RBS są odpowiedzialne za zarządzanie dostępem do zasobów w .NET Framework, co czyni te mechanizmy kluczowymi dla zapewnienia bezpieczeństwa, podczas gdy pozostałe wymienione mechanizmy są bardziej złożonymi elementami większej architektury aplikacji i same w sobie nie oferują pełnej funkcjonalności ochrony przed nieautoryzowanym dostępem.