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: 6 kwietnia 2026 13:49
  • Data zakończenia: 6 kwietnia 2026 14:10

Egzamin zdany!

Wynik: 21/40 punktów (52,5%)

Wymagane minimum: 20 punktów (50%)

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

Pole autor w tabeli ksiazka jest:

CREATE TABLE ksiazka (
id INT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY,
tytul VARCHAR(200),
autor SMALLINT UNSIGNED NOT NULL,
CONSTRAINT `dane` FOREIGN KEY (autor) REFERENCES autorzy(id)
);
A. kluczem obcym związanym z tabelą autorzy
B. kluczem podstawowym tabeli ksiazka
C. polem wykorzystanym w relacji z tabelą dane
D. polem typu tekstowego zawierającym informacje o autorze
Pole autor w tabeli ksiazka jest kluczem obcym, co oznacza, że wskazuje na inne pole w innej tabeli - w tym przypadku na pole id w tabeli autorzy. Klucze obce są podstawowym mechanizmem relacyjnych baz danych, który umożliwia tworzenie związków między różnymi tabelami. Dobre praktyki w projektowaniu baz danych sugerują używanie kluczy obcych do zapewnienia integralności referencyjnej, co oznacza, że każde odniesienie do innej tabeli musi wskazywać na istniejący rekord. Dzięki temu unika się problemów z danymi, takich jak tzw. „osierocone” rekordy, które odwołują się do nieistniejących danych. W praktyce, gdy dodajemy nową książkę do tabeli ksiazka, musimy mieć pewność, że istnieje odpowiedni autor w tabeli autorzy. Takie podejście podnosi jakość danych i pozwala na bardziej złożone zapytania SQL, które mogą łączyć informacje z różnych tabel w sposób spójny i logiki. Klucze obce są także kluczowe w kontekście operacji takich jak aktualizacja czy usuwanie danych, ponieważ mogą automatycznie zaktualizować lub usunąć powiązane rekordy, co zapewnia integralność bazy danych.

Pytanie 2

Jaki selektor stylizuje akapity tekstu z klasą tekst oraz element blokowy z identyfikatorem obrazki?

A. p.tekst, div#obrazki
B. p#tekst, div.obrazki
C. p#tekst + div.obrazki
D. p.tekst + div#obrazki
Poprawna odpowiedź to 'p.tekst, div#obrazki', ponieważ selektor 'p.tekst' odnosi się do wszystkich elementów <p>, które mają klasę 'tekst'. To podejście jest zgodne z zasadami CSS, gdzie '.' oznacza klasę. Z kolei 'div#obrazki' to selektor, który odnosi się do elementu <div> o ID 'obrazki'. W tym przypadku '#' jest używane do wskazania unikalnego identyfikatora. Dzięki temu możemy dostosować style do konkretnych elementów w HTML. Przykład zastosowania: jeżeli chcemy, aby akapity z klasą 'tekst' miały określony kolor tła oraz aby element <div> z ID 'obrazki' był wyśrodkowany na stronie, możemy napisać odpowiednie reguły CSS, które zastosują te style tylko do wskazanych elementów. Praktyka ta zwiększa przejrzystość kodu oraz ułatwia jego późniejsze zarządzanie. Zastosowanie odpowiednich selektorów zgodnych z zasadami CSS to klucz do efektywnego stylizowania stron internetowych oraz dobrych praktyk w zakresie tworzenia responsywnych interfejsów użytkownika.

Pytanie 3

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

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

Pytanie 4

W programie napisanym w języku C++ należy wczytać zmienną całkowitą o nazwie liczba i wyświetlić ją tylko w przypadku, gdy przyjmuje trzycyfrowe wartości parzyste. Instrukcja warunkowa, która to sprawdza, powinna być oparta na wyrażeniu logicznym

A. liczba % 2 == 0 || (liczba > 99 && liczba < 999)
B. liczba % 2 == 0 || liczba > 99 || liczba < 999
C. liczba % 2 == 0 && (liczba > 99 || liczba < 999)
D. liczba % 2 == 0 && liczba > 99 && liczba < 999
Wybór odpowiedzi, które nie spełniają wszystkich warunków, prowadzi do sytuacji, w której program nie będzie działał zgodnie z zamierzeniem. W przypadku użycia operatora OR ('||') w odpowiedziach, takich jak 'liczba % 2 == 0 && (liczba > 99 || liczba < 999)', logicznie podchodzimy do problemu w sposób, który nie odzwierciedla wymagań dotyczących liczby trzycyfrowej. Operator OR oznacza, że wystarczy spełnienie jednego z warunków, aby cała instrukcja była prawdziwa, co wprowadza możliwość wyświetlenia liczb, które są parzyste, ale nie mają trzech cyfr. Na przykład liczba 50, która jest parzysta, ale nie jest trzycyfrowa, przejdzie przez tę kontrolę, co jest sprzeczne z założeniem. Podobnie, odpowiedzi opierające się na wyrażeniu 'liczba % 2 == 0 || (liczba > 99 && liczba < 999)' również nie spełniają wymagań, ponieważ pozwalają na wyświetlenie liczb nieparzystych, oraz na liczby, które nie są trzycyfrowe. Często popełnianym błędem w programowaniu jest nieprzemyślenie logicznych warunków, co prowadzi do nieprawidłowego funkcjonowania aplikacji. W programowaniu istotne jest, aby każdy warunek był dokładnie przemyślany i zgodny z wymaganiami funkcjonalnymi, co jest kluczowe dla tworzenia niezawodnych i łatwych w utrzymaniu systemów.

Pytanie 5

Osobistym środkiem ochrony dla oczu i twarzy może być

A. fartuch ochronny
B. sprzęt filtrujący powietrze
C. przyłbica
D. osłona pleksi pomiędzy stanowiskami pracy
Przyłbica jest indywidualnym środkiem ochrony oczu i twarzy, zaprojektowanym w celu ochrony przed szkodliwymi czynnikami mechanicznymi, chemicznymi oraz biologicznymi. Wykorzystanie przyłbic jest szczególnie istotne w środowiskach, gdzie istnieje ryzyko wystawienia pracowników na działanie odprysków, substancji chemicznych lub zagrożeń biologicznych, jak wirusy czy bakterie. Przykładem zastosowania przyłbic jest praca w laboratoriach chemicznych, podczas spawania, bądź w przemyśle drzewnym, gdzie odpryski materiału mogą być niebezpieczne. Dobrze zaprojektowana przyłbica powinna spełniać normy EN 166, które określają wymagania dotyczące ochrony oczu. Warto również zauważyć, że przyłbice mogą być stosowane w połączeniu z innymi środkami ochrony osobistej, takimi jak maski ochronne czy rękawice, co zwiększa poziom bezpieczeństwa pracowników. Dzięki możliwości łatwej dezynfekcji i przejrzystości materiału, przyłbice stanowią wygodny i efektywny sposób na zapewnienie bezpieczeństwa w różnych branżach. W kontekście pandemii COVID-19, ich popularność wzrosła jako dodatkowy środek ochrony zdrowia, co podkreśla ich uniwersalność i znaczenie w nowoczesnym podejściu do BHP.

Pytanie 6

W relacyjnym modelu baz danych, termin krotka odnosi się do

A. liczby rekordów w danej tabeli
B. wszystkich kolumn tabeli, które zawierają atrybuty danego obiektu
C. wierszy tabeli, z wyjątkiem wiersza nagłówkowego, w którym znajdują się nazwy kolumn
D. wszystkich wierszy tabeli łącznie z wierszem nagłówkowym
Pierwsza z niepoprawnych odpowiedzi sugeruje, że krotki to liczba rekordów tabeli. Jednak w rzeczywistości krotki są pojedynczymi wierszami zawierającymi zbiory atrybutów, a nie ich ilość. Liczba rekordów, czyli krotek, jest zmienną miarą, która jest istotna dla analizy danych, ale sama w sobie nie definiuje krotek. Kolejna odpowiedź zakłada, że krotki obejmują wszystkie wiersze tabeli wraz z wierszem nagłówkowym. Wiersz nagłówkowy, który zawiera nazwy kolumn, nie jest częścią krotek, ponieważ krotki reprezentują tylko dane użytkownika. W związku z tym, takie ujęcie błędnie interpretuje strukturę danych w tabeli. Ostatnia niepoprawna odpowiedź sugeruje, że krotki to wszystkie kolumny tabeli zawierające atrybuty obiektu. Kolumny definiują atrybuty i zapewniają strukturę dla danych, ale same w sobie nie są krotkami. Krotka odnosi się do konkretnego zestawu wartości atrybutów w jednym wierszu, a nie do ich zbioru jako całości. Te nieścisłości odzwierciedlają fundamentalne różnice między strukturą relacyjnych baz danych a ich interpretacją w kontekście pojedynczych rekordów.

Pytanie 7

W języku HTML, aby połączyć w pionie dwie sąsiadujące komórki w kolumnie tabeli, należy użyć atrybutu

A. cellspacing
B. cellpadding
C. colspan
D. rowspan
W kontekście scalania komórek w pionie w HTML, inne proponowane atrybuty są nieodpowiednie. Atrybut colspan służy do scalania komórek w poziomie, co oznacza, że pozwala na połączenie kilku komórek w jednym wierszu, co jest zupełnie inną operacją niż scalanie w pionie. Używanie colspan byłoby nieodpowiednie w sytuacji, gdy celem jest połączenie komórek w kolumnie. Atrybut cellpadding dotyczy natomiast przestrzeni wewnętrznej, określającej odstęp pomiędzy zawartością komórki a jej krawędziami. Jego zastosowanie nie wpływa na scalanie komórek, a jedynie na ich wygląd, co sprawia, że jest to zupełnie inny aspekt formatowania tabeli. Podobnie atrybut cellspacing, który jest używany do definiowania odstępów między komórkami tabeli, również nie ma zastosowania w procesie scalania komórek. Obydwa te atrybuty mogą być użyte do poprawy estetyki tabeli, ale nie wpływają na strukturę danych w sposób, który byłby wymagany do osiągnięcia pionowego scalania komórek. Użycie ich zamiast rowspan jest błędne i prowadzi do niepoprawnego zrozumienia struktury HTML oraz sposobu, w jaki tabele powinny być zbudowane.

Pytanie 8

Podstawowym celem korzystania z edytora WYSIWYG jest

A. wykrywanie błędów w bazie danych
B. szybka wizualizacja tworzonej strony
C. automatyzacja odtwarzania plików multimedialnych
D. ściąganie z Internetu pełnych portali WWW
Edytory WYSIWYG (What You See Is What You Get) są narzędziami, które umożliwiają tworzenie i edytowanie treści internetowych w sposób wizualny, co oznacza, że użytkownik widzi na ekranie dokładnie to, co otrzyma po zapisaniu dokumentu. Głównym celem ich stosowania jest przyspieszenie procesu projektowania stron internetowych poprzez natychmiastowe wizualizowanie zmian. Dzięki temu, osoby nieposiadające zaawansowanej wiedzy programistycznej mogą łatwo tworzyć atrakcyjne wizualnie strony, co ma ogromne znaczenie w kontekście szybkiego rozwoju branży webowej. Przykłady zastosowania edytorów WYSIWYG to platformy takie jak WordPress, Wix czy Squarespace, które umożliwiają użytkownikom dodawanie treści, obrazów i multimediów bez potrzeby pisania kodu. Warto również zauważyć, że edytory te wspierają standardy webowe, takie jak HTML5 i CSS3, co pozwala na optymalizację stron pod kątem SEO oraz responsywności. W związku z rosnącą popularnością edytorów WYSIWYG, znajomość ich działania staje się kluczowa dla każdego, kto pragnie efektywnie zarządzać treściami w sieci.

Pytanie 9

Używając komendy BACKUP LOG w MS SQL Server, można

A. odczytać komunikaty generowane podczas tworzenia kopii
B. wykonać kopię zapasową dziennika transakcyjnego
C. zalogować się do kopii zapasowej
D. zrealizować pełną kopię zapasową
Wybór odpowiedzi dotyczący logowania się do kopii bezpieczeństwa wykazuje nieporozumienie dotyczące funkcji, jakie pełnią operacje backupu w MS SQL Server. Proces tworzenia kopii zapasowej dziennika transakcyjnego nie ma nic wspólnego z logowaniem się do wygenerowanej kopii; jest to osobny proces, który polega głównie na archiwizacji danych transakcyjnych. Kolejne stwierdzenie, że możliwe jest przeczytanie komunikatów wygenerowanych podczas tworzenia kopii, zakłada, że operacja backupu dostarcza interaktywnych danych na temat jej przebiegu, co nie jest zgodne z rzeczywistością. MS SQL Server zwykle loguje wyniki operacji do dziennika zdarzeń lub plików logów, ale nie jest to funkcjonalność, na którą można liczyć w codziennym użytkowaniu. Wreszcie, stwierdzenie, że BACKUP LOG pozwala na wykonanie pełnej kopii bezpieczeństwa, jest także błędne. BACKUP LOG dotyczy tylko dziennika transakcyjnego, podczas gdy pełna kopia bezpieczeństwa wykonana jest przy użyciu polecenia BACKUP DATABASE. W praktyce, wiele osób myli te dwa procesy, co prowadzi do nieefektywnego zarządzania danymi i ryzyka utraty informacji. Zrozumienie technicznych aspektów działania tych poleceń jest kluczowe dla prawidłowego administrowania bazami danych.

Pytanie 10

$liczba = 10;
while($liczba<50){
   echo "$liczba";
   $liczba=$liczba+5;
}
Jakie liczby zostaną wyświetlone w wyniku działania tej pętli w języku PHP?

A. 10 15 20 25 30 35 40 45 50
B. 0 5 10 15 20 25 30 35 40 45 50
C. 0 5 10 15 20 25 30 35 40 45
D. 10 15 20 25 30 35 40 45
Wynik działania pętli w języku PHP jest poprawny, ponieważ zaczyna się od wartości 10, a następnie w każdej iteracji zwiększa tę wartość o 5, aż osiągnie 50, które nie jest wliczane do wypisywanych wyników. Wartości wypisywane w trakcie działania pętli to: 10, 15, 20, 25, 30, 35, 40, 45. Wartością graniczną jest 50, która przerywa działanie pętli. Taki mechanizm jest często stosowany w programowaniu, zwłaszcza w sytuacjach, gdzie musimy iteracyjnie przetwarzać dane w określonym zakresie. Dobrą praktyką jest również upewnienie się, że warunki pętli są jasno określone, co zapobiega niepożądanym wynikom, takim jak nieskończone pętle. W PHP używamy pętli takich jak 'while', 'for' i 'foreach', które są kluczowymi elementami w programowaniu i pozwalają na efektywne przetwarzanie danych.

Pytanie 11

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

A. nav { float: right; } section { float: right; }
B. aside {float: left; }
C. nav { 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 12

W danym środowisku programistycznym, aby uzyskać dostęp do listy błędów składniowych po nieudanej kompilacji, należy użyć kombinacji klawiszy

Ilustracja do pytania
A. Ctrl+W, O
B. Ctrl+W, N
C. Ctrl+W, T
D. Ctrl+W, E
W środowisku Visual Studio, które jest jednym z najpopularniejszych zintegrowanych środowisk programistycznych (IDE) dla języków takich jak C# czy C++, kombinacja klawiszy Ctrl+W, E pozwala na szybkie wyświetlenie listy błędów składniowych i innych problemów związanych z kodem. Lista błędów Error List jest kluczowym narzędziem w codziennej pracy programisty, ponieważ pozwala na szybkie zidentyfikowanie i naprawienie błędów bez konieczności przeszukiwania całego kodu. Dzięki temu programista może skupić się na poprawianiu najważniejszych błędów i optymalizacji kodu. Standardy i dobre praktyki w programowaniu zalecają regularne monitorowanie listy błędów w celu utrzymania wysokiej jakości kodu i minimalizacji ryzyka wystąpienia błędów w działającej aplikacji. To narzędzie jest nieocenione podczas procesu debugowania, gdyż pozwala na szybkie zlokalizowanie i zrozumienie problemów składniowych oraz logicznych wpływających na działanie aplikacji. Używanie skrótów klawiszowych do nawigacji w IDE jest również zalecane jako dobra praktyka, która zwiększa efektywność pracy.

Pytanie 13

Jak nazywa się domyślny plik konfiguracyjny dla serwera Apache?

A. .configuration
B. htaccess.cnf
C. configuration.php
D. .htaccess
.htaccess to plik konfiguracyjny używany przez serwer Apache, który pozwala na lokalne zarządzanie ustawieniami serwera dla konkretnego katalogu. Jego nazwa zaczyna się od kropki, co czyni go ukrytym plikiem w systemach Unix/Linux. Plik .htaccess umożliwia m.in. definiowanie reguł przekierowań, ustawianie zabezpieczeń, zarządzanie dostępem do zasobów czy konfigurację behawioralną modułów serwera. Działa na zasadzie dziedziczenia, co oznacza, że ustawienia w pliku .htaccess mają pierwszeństwo przed globalnymi ustawieniami w pliku httpd.conf. Przykładem użycia .htaccess może być przekierowanie użytkowników z HTTP na HTTPS, co zwiększa bezpieczeństwo strony. Warto również wspomnieć, że odpowiednie wykorzystanie pliku .htaccess może wspierać SEO, na przykład poprzez zarządzanie 404 błędami lub ustalanie kanonikalnych adresów URL, co wpływa na indeksowanie przez wyszukiwarki. Istnieją również standardy, takie jak RFC 2616, które regulują zasady działania serwerów, w tym również Apache, co podkreśla znaczenie pliku .htaccess w kontekście administracji serwerem.

Pytanie 14

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

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

Pytanie 15

W języku SQL do grupy operacji DCL (ang. Data Control Language) należą polecenia:

A. SELECT i INSERT
B. GRANT i REVOKE
C. CREATE i DROP
D. DELETE i UPDATE
W SQL rozróżnienie między DDL, DML i DCL jest kluczowe, bo każdy z tych zestawów poleceń odpowiada za inny obszar pracy z bazą danych. Wiele osób intuicyjnie wrzuca wszystkie komendy „do jednego worka”, a potem trudno jest im zrozumieć, gdzie kończy się manipulacja danymi, a zaczyna zarządzanie uprawnieniami. Data Control Language, czyli DCL, to bardzo wąska, ale ważna grupa poleceń, służąca wyłącznie do kontroli dostępu. W standardowym SQL do DCL zaliczamy praktycznie tylko GRANT i REVOKE. Odpowiedzi typu CREATE i DROP są kuszące, bo też brzmią „administracyjnie”, ale to już inna kategoria – DDL (Data Definition Language). CREATE, ALTER, DROP czy TRUNCATE służą do definiowania i modyfikowania struktury bazy: tworzą tabele, widoki, indeksy, usuwają obiekty. One nie zarządzają prawami użytkowników, tylko tym, jakie obiekty w ogóle istnieją. To, że często wykonuje je administrator, nie znaczy jeszcze, że należą do DCL. Z kolei SELECT, INSERT, UPDATE, DELETE to klasyczne DML (Data Manipulation Language). Te polecenia działają na rekordach: odczytują dane, dodają nowe wiersze, modyfikują istniejące, usuwają je. Typowy błąd myślowy polega na tym, że ktoś myśli: skoro DELETE usuwa dane, to trochę jak „kontrola”, więc może DCL. Niestety nie – DELETE w ogóle nie dotyka uprawnień, ono po prostu kasuje rekordy, o ile użytkownik już ma odpowiednie prawa. Dopiero DCL decyduje, czy użytkownik może wykonać DELETE na danej tabeli. To subtelne, ale bardzo ważne rozróżnienie. Moim zdaniem warto zapamiętać prosty schemat: DDL – struktura, DML – dane, DCL – uprawnienia. Wtedy łatwiej od razu skojarzyć, że tylko GRANT i REVOKE pasują do kategorii Data Control Language, a reszta odpowiedzi dotyczy zupełnie innych warstw pracy z bazą.

Pytanie 16

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

A. //
B. <!-- -->
C. #
D. /* */
Istnieje wiele błędnych przekonań na temat różnych typów komentarzy w PHP, co może prowadzić do nieprawidłowych wniosków. Opcja // definiuje komentarze jednoliniowe, które są używane do dokumentowania pojedynczych linijek kodu i są ignorowane do końca danej linii. Ten typ komentarzy jest przydatny do krótkich notatek, ale nie nadaje się do bardziej skomplikowanych opisów, które wymagają kilku linii. Z kolei <!-- --> jest składnią HTML i nie jest akceptowany w PHP jako sposób definiowania komentarzy. Używanie tej składni w plikach PHP może prowadzić do nieprzewidywalnych błędów, szczególnie jeśli kod jest interpretowany w kontekście serwera. Ostatnia opcja, #, jest również poprawnym sposobem na definiowanie komentarzy jednoliniowych w PHP, ale nie spełnia wymagań dla komentarzy wieloliniowych, które można zdefiniować wyłącznie przy użyciu /* */. Dobrą praktyką jest stosowanie odpowiednich typów komentarzy w zależności od kontekstu, aby zapewnić przejrzystość i zrozumiałość kodu dla innych programistów. Ważne jest zrozumienie, jakie składnie są dozwolone w danym języku programowania, aby unikać potencjalnych błędów w kodzie oraz nieporozumień w zespole projektowym.

Pytanie 17

Badania dotyczące skalowalności oprogramowania mają na celu sprawdzenie, czy aplikacja

A. posiada właściwą funkcjonalność
B. jest w stanie funkcjonować przy przewidzianym oraz większym obciążeniu
C. jest chroniona przed nieautoryzowanymi operacjami, takimi jak dzielenie przez zero
D. jest odpowiednio opisana dokumentacją
Odpowiedź 'potrafi działać przy zakładanym i większym obciążeniu' jest prawidłowa, ponieważ testy skalowalności oprogramowania mają na celu ocenę, jak aplikacja radzi sobie w warunkach wzrastającego obciążenia. Skalowalność odnosi się do zdolności systemu do obsługi większej ilości użytkowników lub danych bez utraty wydajności. Przykładem może być aplikacja internetowa, która musi obsługiwać rosnącą liczbę zapytań w godzinach szczytu. Dobrą praktyką jest przeprowadzanie testów obciążeniowych i stresowych, aby zidentyfikować punkty krytyczne i wąskie gardła w architekturze aplikacji. W standardzie ISO/IEC 25010 definiuje się jakość produktu oprogramowania, gdzie skalowalność jest kluczowym zjawiskiem wpływającym na niezawodność i wydajność systemu. Testy te pozwalają również na ocenę, czy architektura aplikacji jest wystarczająco elastyczna, aby dostosować się do zmieniających się potrzeb użytkowników oraz na potwierdzenie, że infrastruktura serwerowa i sieciowa spełniają wymagania związane z przyszłym wzrostem obciążenia.

Pytanie 18

Tabela faktury w bazie danych zawiera pola: numer, data, id_klienta, wartość oraz status. Każdego dnia tworzony jest raport dotyczący faktur z dnia bieżącego. Zawiera on jedynie numery oraz wartości faktur. Która z poniższych kwerend SQL pozwoli na wygenerowanie tego raportu?

A. SELECT * FROM faktury;
B. SELECT numer, wartość FROM faktury;
C. SELECT numer, wartosc FROM faktury WHERE data=CURRENT_DATE();
D. SELECT * FROM faktury WHERE data=CURRENT_DATE();
Aby wygenerować raport faktur z bieżącego dnia, kluczowe jest zastosowanie odpowiednich filtrów oraz wybranie tylko tych pól, które są istotne w kontekście raportu. Kwerenda SQL, która prawidłowo odpowiada na postawiony problem, to 'SELECT numer, wartosc FROM faktury WHERE data=CURRENT_DATE();'. Dzięki temu zapytaniu, system wyciąga z bazy danych jedynie numery i wartości faktur, które zostały wystawione w dniu dzisiejszym. Użycie funkcji CURRENT_DATE() pozwala na dynamiczne filtrowanie danych według aktualnej daty, co jest niezbędne do stworzenia codziennego raportu. W praktyce, taka kwerenda może być używana w aplikacjach do zarządzania finansami, gdzie użytkownicy chcą szybko uzyskać podsumowanie transakcji z danego dnia. Standardy SQL wymagają precyzyjnego określenia, które kolumny mają być wyświetlane, a także jakiego rodzaju dane mają być filtrowane. W związku z tym, zastosowanie warunku WHERE jest kluczowe, aby ograniczyć wyniki do faktur z dzisiaj, co zwiększa efektywność analizy danych.

Pytanie 19

Język JavaScript wspiera

A. wysyłanie ciastek z identycznymi informacjami do wielu użytkowników strony
B. abstrakcyjne klasy
C. funkcje wirtualne
D. obiekty DOM
Obiekty DOM (Document Object Model) są fundamentalnym aspektem języka JavaScript, umożliwiającym interakcję z dokumentami HTML i XML. Dzięki DOM, programiści mogą dynamicznie manipulować strukturą dokumentu, co pozwala na tworzenie interaktywnych aplikacji webowych. Na przykład, za pomocą JavaScript można zmieniać tekst w elementach HTML, dodawać lub usuwać elementy, a także reagować na zdarzenia użytkownika, takie jak kliknięcia czy ruchy myszy. Przykładowy kod: document.getElementById('example').innerHTML = 'Nowa zawartość'; ilustruje, jak można zmienić zawartość elementu z identyfikatorem 'example'. Zrozumienie i umiejętność pracy z DOM jest kluczowe w nowoczesnym tworzeniu stron internetowych oraz aplikacji w JavaScript, co wpisuje się w najlepsze praktyki rozwoju oprogramowania, takie jak separacja logiki od prezentacji i programowanie obiektowe.

Pytanie 20

Tabele: Firmy oraz Zamówienia są ze sobą powiązane relacją jeden do wielu. Aby uzyskać tylko identyfikatory zamówień wraz z odpowiadającymi im nazwami firm dla przedsiębiorstw, których poziom wynosi 4, należy użyć polecenia

Ilustracja do pytania
A. SELECT Zamówienia.id, nazwa FROM Zamówienia JOIN Firmy WHERE poziom = 4
B. SELECT id, nazwa FROM Zamówienia JOIN Firmy ON Zamówienia.Firmy_id = Firmy.id WHERE poziom = 4
C. SELECT Zamówienia.id, nazwa FROM Zamówienia JOIN Firmy ON Zamówienia.Firmy_id = Firmy.id WHERE poziom = 4
D. SELECT Zamówienia.id, nazwa FROM Zamówienia JOIN Firmy ON Zamówienia.id = Firmy.id WHERE poziom = 4
W kontekście zaproponowanych odpowiedzi, błędne podejścia wynikają głównie z niewłaściwego zastosowania klauzuli JOIN oraz braku zrozumienia relacji między tabelami. Kluczowym błędem jest ignorowanie związku pomiędzy kluczem głównym i kluczem obcym, co prowadzi do niepoprawnych wyników w zapytaniach SQL. Na przykład, próba połączenia tabel bez wyraźnego zdefiniowania relacji poprzez klauzulę ON może skutkować pełnym iloczynem kartezjańskim, co jest nieefektywne i często nieprawidłowe pod względem logicznym. Innym częstym błędem w analizie takich zapytań jest niedostateczne uwzględnienie warunków filtrowania w klauzuli WHERE. Warunki te są niezbędne do ograniczenia zestawu wyników do tych, które są istotne dla bieżącej analizy, zwłaszcza w kontekście zamówień i firm o określonym poziomie. Niepoprawne stosowanie aliasów lub brak ich użycia może także prowadzić do niejasności, zwłaszcza w bardziej złożonych zapytaniach, gdzie precyzyjne odwoływanie się do kolumn jest kluczowe. Ponadto, pomijanie sprawdzenia czy dane kolumny istnieją i są odpowiednio indeksowane może prowadzić do błędów wykonania zapytań lub znacznego spadku wydajności, co ma krytyczne znaczenie w środowisku produkcyjnym. Dbając o unikanie takich błędów, warto zastosować się do zasad projektowania baz danych, które skupiają się na integralności referencyjnej i optymalizacji zapytań, co zwiększa ich efektywność i czytelność w praktycznych zastosowaniach biznesowych. Zachowanie tych zasad pozwala na budowanie solidnych i wydajnych systemów bazodanowych, które wspierają procesy decyzyjne w organizacjach.

Pytanie 21

Zmienna zadeklarowana w C++ jako double x*; to

A. wskaźnik
B. zmienna typu całkowitego
C. zmienna zmiennoprzecinkowa
D. parametr formalny typu zmiennoprzecinkowego
Parametr formalny typu rzeczywistego nie ma zastosowania w kontekście 'double x*;', ponieważ nie jest to definicja dla parametru funkcji, lecz dla wskaźnika na zmienną typu double. Zmienna rzeczywista odnosi się do prostej deklaracji zmiennej, która przechowuje wartość typu double, jednak w tym przypadku mamy do czynienia z wskaźnikiem, a nie ze zmienną przechowującą wartość. Zmienna całkowita z kolei jest typem danych przechowującym liczby całkowite, a więc nie ma związku z typem double, który jest przeznaczony dla liczb zmiennoprzecinkowych. Wskaźniki są bardziej zaawansowanym konceptem w C++, pozwalającym na manipulacje adresami w pamięci oraz umożliwiającym dynamiczne alokacje pamięci. Użycie wskaźników jest kluczowe w przypadku struktur danych oraz programowania obiektowego, gdzie pozwalają one na efektywne przechowywanie i zarządzanie danymi. Zrozumienie różnic między różnymi typami danych w języku C++ oraz ich zastosowań jest niezbędne dla prawidłowego projektowania aplikacji i unikania błędów programistycznych.

Pytanie 22

W języku PHP do zmiennej a przypisano tekst, w którym słowo Kowalski pojawia się wielokrotnie. Aby jednym poleceniem zamienić wszystkie wystąpienia słowa Kowalski na słowo Nowak, trzeba użyć polecenia

A. $a = str_rep('Kowalski','Nowak',$a);
B. $a = str_replace('Kowalski','Nowak',$a);
C. $a = str_replace('Nowak','Kowalski');
D. $a = str_replace('Nowak', 'Kowalski',$a);
Pierwsza odpowiedź jest nieprawidłowa, ponieważ funkcja str_rep nie istnieje w PHP. Wszelkie próby użycia takiego polecenia skutkują błędami, ponieważ PHP nie rozpoznaje tej funkcji. Zrozumienie właściwych nazw funkcji oraz ich składni jest kluczowe w programowaniu, aby uniknąć błędów. W drugiej odpowiedzi, funkcja str_replace została wywołana z niewłaściwymi parametrami, ponieważ brakuje trzeciego argumentu, który jest wymagany do zdefiniowania zmiennej, w której dokonujemy zamiany. Nieprawidłowe podejście do składni funkcji prowadzi do nieefektywnego kodu. Kolejna odpowiedź, w której zamieniamy 'Nowak' na 'Kowalski', także jest błędna, ponieważ nie spełnia celu zamiany wskazanego w pytaniu. Całkowicie odwrotne podejście do problemu może prowadzić do wprowadzenia błędnych danych. Warto zwrócić uwagę, że typowe błędy myślowe, takie jak nieprawidłowe przypisanie argumentów funkcji, mogą wynikać z braku znajomości dokumentacji lub niewłaściwego zrozumienia działania funkcji. Ostatecznie, kluczem do skutecznego programowania jest nie tylko znajomość składni, ale także umiejętność analizy i testowania kodu, co można osiągnąć poprzez praktykę oraz korzystanie z zasobów edukacyjnych.

Pytanie 23

Jaką czynność należy wykonać przed zrobieniem kopii zapasowej danych w MySQL?

A. sprawdzenie, czy baza działa wystarczająco wydajnie
B. zweryfikowanie poprawności tabel w bazie oraz ewentualne naprawienie usterek
C. ustalenie systemu kodowania znaków w bazie
D. przyznanie uprawnień do przeglądania bazy dla Administratora
Zdefiniowanie systemu kodowania znaków w bazie, choć istotne, nie jest kluczowym krokiem przed wykonaniem kopii bezpieczeństwa. Odpowiednie kodowanie znaków wpływa na sposób przechowywania i interpretacji danych, jednak w kontekście backupu danych, jego ustalenie jest mniej istotne. Bardziej krytyczne jest upewnienie się, że istniejące dane są poprawne i integralne. Nadanie uprawnień do przeglądania bazy dla Administratora jest ważne dla kontroli dostępu, ale nie ma bezpośredniego wpływu na jakość kopii zapasowej. W przypadku, gdy uprawnienia są nieodpowiednio skonfigurowane, administrator może nie mieć wystarczających uprawnień do przeprowadzenia niezbędnych operacji, co prowadzi do ryzyka niewykonania pełnego backupu. Sprawdzanie wydajności bazy również nie powinno być priorytetem przed wykonaniem kopii zapasowej; choć wydajność ma znaczenie w codziennym użytkowaniu bazy danych, nie wpływa na jakość danych, które mają być zabezpieczone. Właściwe podejście do tworzenia kopii zapasowych wymaga skoncentrowania się na integralności danych, a nie na ich wydajności czy konfiguracji dostępu.

Pytanie 24

W języku JavaScript zapis w ramce oznacza, że x=przedmiot.nazwa);

A. zmienna x będzie zawierać wynik działania metody nazwa
B. nazwa jest cechą obiektu przedmiot
C. nazwa jest atrybutem klasy przedmiot
D. zmienna x będzie przechowywać wynik działania funkcji przedmiot
Niepoprawne odpowiedzi wskazują na brak zrozumienia koncepcji obiektów w JavaScript oraz różnic pomiędzy właściwościami a metodami. Stwierdzenie, że 'nazwa jest polem klasy przedmiot', jest mylące, ponieważ w JavaScript nie ma klas w tradycyjnym sensie znanym z innych języków, jak Java czy C#. W JavaScript mamy do czynienia z prototypami, a atrybuty obiektów są nazywane właściwościami, a nie polami klasy. Kolejne stwierdzenie, że 'nazwa jest właściwością obiektu przedmiot', jest częściowo prawdziwe, ale w kontekście zadania nie jest wystarczająco precyzyjne, ponieważ może sugerować, że 'nazwa' jest statyczną wartością, podczas gdy w rzeczywistości może to być metoda, której wynikiem jest dynamiczna wartość. Ostatnia błędna odpowiedź, sugerująca, że 'zmienna x będzie przechowywać wynik działania funkcji przedmiot', również jest niepoprawna, ponieważ 'przedmiot' nie jest funkcją, lecz obiektem. W JavaScript, aby wywołać funkcję, potrzebujemy jej nazwy i odpowiednich nawiasów, co w tym przypadku nie ma miejsca. Zrozumienie tych różnic jest kluczowe dla efektywnego programowania w tym języku oraz korzystania z jego pełnych możliwości.

Pytanie 25

Ile razy wykona się poniższa pętla napisana w języku PHP, przy założeniu, że zmienna kontrolna nie jest zmieniana w jej wnętrzu?

for ($i = 0; $i <= 10; $i+=2) { ... }
A. 5
B. 6
C. 0
D. 10
W przypadku błędnych odpowiedzi, takich jak 10, 5, 0 czy 6, można zauważyć, że wynikają one z nieprawidłowego zrozumienia działania pętli for w PHP. Odpowiedź 10 sugeruje, że użytkownik zakłada, iż pętla wykonuje się do 10, co jest błędne, ponieważ na każdym kroku zmienna $i zwiększa się o 2. Użycie 5 jako odpowiedzi może wskazywać na niepoprawne obliczenie liczby iteracji przy założeniu, że pętla mogłaby wykonać się z tylko pięcioma incrementami, co jest również mylące. Wybór 0 jako odpowiedzi jest konsekwencją mylnego założenia, że pętla mogłaby w ogóle nie działać, co jest sprzeczne z logiką, ponieważ pętla rozpoczyna się od $i = 0 i spełnia warunek kontynuacji. Ważne jest, aby podczas analizy pętli skupić się na warunkach początkowych, zmiennej sterującej oraz modyfikacji tej zmiennej w każdym cyklu. Prawidłowe obliczenie liczby iteracji pętli jest kluczowe w programowaniu, ponieważ ma to bezpośredni wpływ na wydajność i efektywność działania algorytmów.

Pytanie 26

Który z typów relacji wymaga stworzenia tabeli pośredniej, która łączy klucze główne obu tabel?

A. 1..1
B. 1..n
C. n..1
D. n..m
Relacje 1..n, 1..1 oraz n..1 definiują różne scenariusze, które nie wymagają tworzenia tabeli pośredniej. W relacji 1..1, każdy rekord w jednej tabeli jest powiązany z dokładnie jednym rekordem w drugiej tabeli, co nie stwarza potrzeby tworzenia dodatkowej tabeli. Przykładowo, jeśli mamy tabelę 'Użytkownicy' oraz tabelę 'Profile', gdzie każdy użytkownik ma jeden unikalny profil, relacja 1..1 jest spełniona bez konieczności wprowadzania tabeli pośredniej. Z kolei w relacji 1..n, jeden rekord w tabeli nadrzędnej może być związany z wieloma rekordami w tabeli podrzędnej, ale nadal nie ma potrzeby tworzenia tabeli pośredniej. Przykładem może być relacja między tabelą 'Klienci' a 'Zamówienia', gdzie jeden klient może mieć wiele zamówień, ale każde zamówienie jest powiązane tylko z jednym klientem. W przypadku relacji n..1 sytuacja jest odwrotna, gdzie wiele rekordów w tabeli podrzędnej odnosi się do jednego rekordu w tabeli nadrzędnej, co również nie wymaga wprowadzenia tabeli pośredniej. Kluczowym błędem myślowym, prowadzącym do nieprawidłowych wniosków, jest mylenie relacji jeden do wielu z relacją wiele do wielu oraz założenie, że każda złożona relacja wymaga tabeli pośredniej. W rzeczywistości, odpowiednia struktura baz danych powinna być projektowana z uwzględnieniem charakterystyki i wymagań relacji między danymi.

Pytanie 27

Globalne zmienne do przechowywania informacji o ciasteczkach oraz sesjach: $_COOKIE oraz $_SESSION stanowią część języka

A. C#
B. PHP
C. JavaScript
D. Perl
Odpowiedź PHP jest prawidłowa, ponieważ $_COOKIE i $_SESSION to superglobalne tablice w tym języku, które są wykorzystywane do zarządzania danymi sesyjnymi oraz ciasteczkami. $_COOKIE umożliwia przechowywanie danych na komputerze użytkownika w formie ciasteczek, które mogą być odczytywane przez serwer przy każdym żądaniu. Ciasteczka mogą być używane do identyfikacji użytkownika, zapamiętywania preferencji lub sesji. Przykładowe zastosowanie to np. pamiętanie, czy użytkownik jest zalogowany oraz jakie preferencje dotyczące wyświetlania treści ustawił. Z kolei $_SESSION jest używane do przechowywania danych sesji na serwerze, co zapewnia większe bezpieczeństwo, ponieważ dane nie są również dostępne po stronie klienta. Przykładem zastosowania $_SESSION jest przechowywanie informacji o użytkowniku, takich jak jego identyfikator, które mogą być używane do autoryzacji w różnych częściach aplikacji. W obu przypadkach, przy użyciu tych mechanizmów, programiści muszą pamiętać o optymalizacji wydajności oraz przestrzeganiu zasad ochrony prywatności użytkowników, co jest kluczowe w kontekście aktualnych regulacji dotyczących danych osobowych.

Pytanie 28

Zdarzenie JavaScript, które jest wywoływane po pojedynczym kliknięciu dowolnego elementu na stronie, określa się jako

A. onDblClick
B. onKeyDown
C. onClick
D. onLoad
Zdarzenie onClick w JavaScript jest jednym z najczęściej używanych zdarzeń w interakcji użytkownika z elementami na stronie internetowej. Jego podstawowa funkcjonalność polega na rejestrowaniu pojedynczego kliknięcia na danym elemencie, co pozwala na wykonanie określonej akcji w odpowiedzi na to zdarzenie. Zdarzenie to jest szczególnie istotne w kontekście rozwoju aplikacji webowych, gdzie interaktywność jest kluczowym elementem doświadczenia użytkownika. Aby zaimplementować zdarzenie onClick, można użyć zarówno atrybutu HTML, jak i metod JavaScript, takich jak addEventListener. Przykładowo, dodając do przycisku HTML atrybut onClick, możemy bezpośrednio wywołać funkcję JavaScript, co znacząco upraszcza kod. W kontekście standardów, onClick jest częścią DOM Level 2 Events Specification, co zapewnia kompatybilność z różnymi przeglądarkami. Przykład zastosowania: <button onClick='alert("Hello World!")'>Kliknij mnie</button> wywoła okno alertu po kliknięciu przycisku. Korzystanie z onClick pozwala na tworzenie dynamicznych interfejsów, które dostosowują się do działań użytkownika, co jest kluczowe w nowoczesnym web designie i programowaniu JavaScript.

Pytanie 29

Aby posortować listę uczniów według daty urodzenia w bazie danych, jakie polecenie należy zastosować?

A. SELECT imie,nazwisko,klasa from uczniowie order by rok_urodzenia
B. SELECT imie,nazwisko,klasa from uczniowie where rok_urodzenia = 1994
C. SELECT imie,nazwisko,klasa from uczniowie order by nazwisko
D. SELECT imie,nazwisko,klasa from uczniowie group by rok_urodzenia
Wybór pierwszej odpowiedzi nie jest właściwy, ponieważ ogranicza on wyniki do uczniów, którzy urodzili się w konkretnym roku, czyli 1994. Takie podejście nie pozwala na uzyskanie pełnej listy uczniów w kolejności ich roku urodzenia, a jedynie wyświetla tych z jednego, wybranego roku. Zatem nie spełnia ono wymogu uporządkowania całej listy według roku urodzenia. Kolejna odpowiedź, która sugeruje użycie klauzuli 'GROUP BY' na kolumnie 'rok_urodzenia', również jest niepoprawna. Klauzula ta służy do agregacji danych i grupowania ich na podstawie wartości w danej kolumnie, a nie do sortowania. Może to prowadzić do utraty informacji, gdyż zwraca jedynie jedną pozycję dla każdej unikalnej wartości w kolumnie, co nie umożliwia analizy szczegółowej. Co więcej, ostatnia odpowiedź, która proponuje sortowanie według nazwiska, jest całkowicie nieadekwatna do zadania. Sortowanie uczniów według nazwiska nie odnosi się do roku urodzenia, co było celem pytania. Takie działanie może prowadzić do zamieszania w wynikach, a uczniowie nie będą uporządkowani w sposób, który odpowiada ich wieku. Wszystkie te odpowiedzi nie spełniają zatem wymagań dotyczących sortowania i analizy danych w kontekście roku urodzenia.

Pytanie 30

Jakim słowem kluczowym można zestawić wyniki dwóch zapytań SELECT, które operują na różnych tabelach, aby utworzyć jeden zbiór danych?

A. JOIN
B. UNION
C. DISTINCT
D. AS
Odpowiedzi takie jak JOIN, DISTINCT i AS są niepoprawne w kontekście łączenia wyników kwerend SELECT z różnych tabel w jeden zbiór. JOIN jest używane do łączenia rekordów z dwóch tabel na podstawie powiązania między nimi, co oznacza, że wymaga istnienia relacji między danymi, co nie jest przypadkiem w każdym scenariuszu, w którym chcemy połączyć wyniki. INCLUDES, które może być naturalnym skojarzeniem z łączeniem danych, nie pasuje do sytuacji, gdy kwerendy SELECT są niezależne od siebie. DISTINCT natomiast jest używane do eliminowania duplikatów z wyników jednej kwerendy, ale nie służy do łączenia wyników z różnych źródeł. Wreszcie, AS jest używane głównie do nadawania aliasów kolumnom lub tabelom, co nie ma zastosowania w kontekście łączenia wyników kwerend. Typowym błędem myślowym jest zakładanie, że każde słowo kluczowe związane z SELECT może być użyte do łączenia wyników, podczas gdy każde z nich ma swoje specyficzne zastosowanie i ograniczenia. Zrozumienie tych różnic jest kluczowe dla prawidłowego stosowania SQL w praktyce i tworzenia efektywnych zapytań, które zwracają oczekiwane wyniki.

Pytanie 31

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

A. zwraca rekord o numerze podanym w argumencie funkcji
B. numeruje rekordy w bazie danych
C. zwraca ilość wierszy znajdujących się w rezultacie zapytania
D. zwraca następny rekord z wynikami zapytania
Funkcja mysql_num_rows() jest fundamentalnym narzędziem w interakcji z bazami danych w PHP, służącym do zwrócenia liczby wierszy w zestawie wyników zapytania. W kontekście programowania, jej zastosowanie jest kluczowe, gdy chcemy ocenić, czy zapytanie zwróciło jakiekolwiek dane. Przykładowo, jeśli wykonujemy zapytanie do bazy danych w celu pobrania listy użytkowników i chcemy sprawdzić, czy tabela zawiera jakiekolwiek rekordy, użycie mysql_num_rows() pozwala na łatwą i efektywną weryfikację. W praktyce, często łączy się tę funkcję z innymi, takimi jak mysql_query() w celu uzyskania wyników zapytania, a następnie sprawdzenia ich liczby. W związku z tym, dobre praktyki sugerują, aby po każdym zapytaniu, które może zwrócić wiele wyników, stosować tę funkcję do walidacji wyniku. Należy pamiętać, że mysql_num_rows() działa tylko na wynikach zapytań SELECT i nie jest użyteczna w przypadku innych typów operacji na bazach danych.

Pytanie 32

W poleceniu CREATE TABLE zastosowanie klauzuli PRIMARY KEY przy definiowaniu kolumny tabeli spowoduje, że ta kolumna stanie się

A. kluczem podstawowym
B. indeksem klucza
C. kluczem obcym
D. indeksem unikalnym
Użycie klauzuli PRIMARY KEY w instrukcji CREATE TABLE pozwala na zdefiniowanie unikalnego identyfikatora dla każdego rekordu w tabeli. Klucz podstawowy zapewnia, że żadne dwa wiersze nie mogą mieć tej samej wartości w kolumnie, co jest kluczowe dla zachowania integralności danych. Przykładem praktycznym może być stworzenie tabeli użytkowników, gdzie 'id_użytkownika' jest kluczem podstawowym. Taki klucz może być typu INTEGER z automatycznym inkrementowaniem, co oznacza, że dla każdego nowego użytkownika wartość 'id_użytkownika' wzrasta automatycznie. Standardy branżowe zalecają definiowanie klucza podstawowego dla każdej tabeli, aby upewnić się, że rekordy można w sposób jednoznaczny zidentyfikować, co jest niezbędne dla relacyjnych baz danych. Dodatkowo, klucz podstawowy automatycznie tworzy indeks na tej kolumnie, co przyspiesza operacje wyszukiwania. Ważne jest, aby klucz podstawowy był dobrze przemyślany, ponieważ jego zmiana w przyszłości może wiązać się z dużymi komplikacjami w bazie danych.

Pytanie 33

Przed przystąpieniem do tworzenia kopii zapasowej bazy danych, aby była ona poprawna i zdatna do późniejszego przywrócenia, konieczne jest sprawdzenie

A. uprawnień dostępu do serwera bazy danych
B. spójności bazy danych
C. poprawności składni zapytań
D. opcji udostępnienia bazy danych
Spójność bazy danych to kluczowy aspekt, który należy sprawdzić przed wykonaniem kopii bezpieczeństwa. Oznacza to, że wszystkie dane w bazie muszą być zgodne z ustalonymi regułami i zapewniać prawidłowe relacje między różnymi tabelami oraz rekordami. Na przykład, jeżeli w bazie danych znajdują się relacje między tabelami, to każda referencja musi wskazywać na istniejący rekord. W praktyce, przed wykonaniem kopii zapasowej, administratorzy często przeprowadzają operacje takie jak walidacja danych, aby upewnić się, że nie ma błędów, które mogłyby prowadzić do nieprawidłowych wyników po przywróceniu danych. Dobre praktyki w zarządzaniu bazami danych, takie jak regularne wykonywanie kontroli spójności oraz audytów danych, pomagają zminimalizować ryzyko problemów z danymi. Warto również korzystać z narzędzi automatyzacyjnych, które mogą wykrywać niezgodności w danych, co znacznie ułatwia proces przed wykonaniem kopii zapasowej.

Pytanie 34

Który z typów formatów oferuje największą kompresję pliku dźwiękowego?

A. PCM
B. CD-Audio
C. WAV
D. MP3
Format MP3 jest algorytmem kompresji stratnej, który umożliwia znaczną redukcję rozmiaru plików dźwiękowych przy zachowaniu akceptowalnej jakości dźwięku. W przeciwieństwie do formatów takich jak WAV, PCM czy CD-Audio, które są formatami bezstratnymi, MP3 wykorzystuje techniki psychoakustyczne do eliminacji dźwięków, które są mniej słyszalne dla ludzkiego ucha. Dzięki temu, pliki MP3 mogą być nawet dziesięciokrotnie mniejsze od swoich odpowiedników bezstratnych, co czyni je idealnymi do zastosowań w streamingach, pobierania muzyki oraz na urządzenia mobilne. Użytkownicy mogą z łatwością przechowywać większe ilości muzyki na swoich urządzeniach, co wpływa na komfort korzystania z technologii audio. Warto również zaznaczyć, że standard MP3 stał się de facto normą w branży muzycznej, co potwierdzają liczne platformy dystrybucji muzyki, które preferują ten format. Dobrą praktyką jest dostosowywanie bitrate'u przy kompresji do potrzeb użytkownika, aby równoważyć rozmiar pliku z jakością audio.

Pytanie 35

Przy założeniu, że nie istnieją inne definicje, jakie skutki będzie miało poniższe formatowanie CSS?

<style> td {padding: 30px; } </style>

<td style="padding: 10px;">Anna</td>
<td>Ewa</td>
A. margines wewnętrzny komórki z napisem Anna wyniesie 30 px, a z napisem Ewa – 10 px
B. margines wewnętrzny komórki z napisem Anna wyniesie 10 px, a z napisem Ewa – 30 px
C. marginesy wewnętrzne wszystkich komórek wyniosą 30 px
D. marginesy wewnętrzne wszystkich komórek wyniosą 10 px
Odpowiedź jest poprawna, ponieważ w kodzie HTML zastosowano bezpośrednie nadpisanie stylu dla komórki z napisem Anna. Chociaż w sekcji style zdefiniowano, że wszystkie komórki td mają padding 30px, to w przypadku komórki Anna zastosowano style inline, które mają wyższy priorytet i nadpisują ustalone wcześniej wartości. W rezultacie padding dla komórki Anna wynosi 10px. Natomiast dla pozostałych komórek, w tym komórki z napisem Ewa, obowiązuje reguła zdefiniowana globalnie w sekcji style, czyli padding wynosi 30px. Jest to przykład specyficzności w CSS, gdzie style inline są bardziej specyficzne niż style w sekcji style. W praktyce ważne jest, aby rozumieć hierarchię i specyficzność CSS, ponieważ pozwala to na skuteczne zarządzanie stylami i unikanie niezamierzonych zmian w wyglądzie strony. Dobra praktyka nakazuje unikać styli inline na rzecz zewnętrznych arkuszy stylów, co ułatwia zarządzanie kodem i czyni go bardziej czytelnym oraz łatwiejszym w utrzymaniu. Warto też stosować metodologie takie jak BEM, które pomagają w organizacji kodu CSS.

Pytanie 36

Wskaż, na czym polega błąd w kodzie napisanym w języku C++.

char str1[30] = 'Ala ma kota'; printf("%s", str1);
A. W funkcji printf nie można używać formatowania %s.
B. Do funkcji printf przekazano zbyt mało argumentów.
C. Napis powinien mieć dokładnie 30 znaków.
D. Napis powinien być umieszczony w cudzysłowach.
Podawanie błędnych informacji na temat inicjalizacji łańcucha znaków w C++ może prowadzić do poważnych nieporozumień. Wskazanie, że napis powinien mieć dokładnie 30 znaków, nie jest zasadniczo poprawne, ponieważ tablice w C++ mogą mieć zmienną długość. Ważne jest, aby łańcuch znaków był odpowiednio długi, jednak nie istnieje wymóg, aby dokładnie wypełniał całą tablicę. Mówiąc o długości, istotniejsze jest, aby nie przekraczać rozmiaru tablicy, aby uniknąć błędów pamięci. Poza tym, stwierdzenie, że do funkcji printf przekazano zbyt mało argumentów, jest mylące; w tym przypadku argumenty są poprawne, ponieważ przekazujemy jedynie jeden wskaźnik do łańcucha, co jest zgodne z formatem funkcji printf. Dodatkowo, twierdzenie, że w printf nie można stosować formatowania %s, jest całkowicie błędne. Format %s jest standardowym sposobem na wyświetlanie łańcuchów znaków w C++, co jest zgodne z dokumentacją i najlepszymi praktykami w programowaniu. Stosowanie tego formatu jest kluczowe w przypadku pracy z tekstem, a zrozumienie tej zasady jest fundamentem w nauce języka C++. Warto zatem pamiętać o właściwej inicjalizacji łańcuchów oraz o tym, jak korzystać z funkcji wejścia/wyjścia, aby unikać typowych błędów w kodzie.

Pytanie 37

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

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

Pytanie 38

W CSS, aby ustawić wcięcie pierwszej linii akapitu na 30 pikseli, należy użyć następującego zapisu

A. p { text-spacing: 30px; }
B. p { line-height: 30px; }
C. p { line-indent: 30px; }
D. p { text-indent: 30px; }
Analizując inne opcje, można zauważyć, że zapisy takie jak line-indent, line-height, czy text-spacing nie są poprawne w kontekście wcięcia pierwszej linii akapitu w CSS. Właściwość line-indent nie istnieje w specyfikacji CSS, co czyni tę odpowiedź zupełnie niewłaściwą. Użytkownicy mogą mylić terminologię, sądząc, że line-indent odnosi się do wcięcia, jednak nie jest to termin rozpoznawany przez standardy CSS. Bardziej odpowiednią właściwością do modyfikacji wysokości linii jest line-height, która jednak nie ma związku z wcięciem tekstu, lecz z odstępem pomiędzy poszczególnymi liniami tekstu w akapicie. Użycie line-height do uzyskania wcięcia prowadzi do nieporozumień i niepożądanych efektów wizualnych. Z kolei text-spacing, będący inną niepoprawną odpowiedzią, nie jest uznaną właściwością CSS i nie wpływa na wcięcia. Dobre praktyki w projektowaniu stron internetowych wymagają znajomości standardów CSS i ich zastosowania w praktyce. Ważne jest, aby przyzwyczaić się do stosowania właściwości, które są uznawane przez wiodące przeglądarki i standardy webowe, aby uniknąć takich błędów i uzyskać zamierzony efekt wizualny. Zapewnienie, że używamy odpowiednich właściwości, jest kluczowe dla poprawności i jakości kodu CSS, który ma bezpośredni wpływ na końcowy rezultat, czyli wygląd i funkcjonalność stron internetowych.

Pytanie 39

W HTML-u, aby umieścić animację FLASH w formacie .swf na stronie internetowej, należy skorzystać ze znacznika

A. <object>
B. <audio>
C. <img>
D. <video>
Wybór innych znaczników, takich jak <img>, <audio> i <video>, jest niepoprawny w kontekście osadzania animacji FLASH. Znacznik <img> jest przeznaczony wyłącznie do wyświetlania obrazów i nie obsługuje plików .swf, co oznacza, że nie może wyświetlić animacji ani interakcji. Podobnie, <audio> jest dedykowany do obsługi dźwięku i nie ma możliwości wyświetlania animacji czy jakichkolwiek innych mediów wizualnych. Jego funkcjonalność ogranicza się do plików audio, a więc nie ma zastosowania w kontekście animacji FLASH. Z kolei <video> jest przeznaczony do osadzania filmów, ale również nie obsługuje formatu .swf, który jest specyficzny dla technologii FLASH. Wspierane typy mediów dla <video> ograniczają się do standardowych formatów, takich jak MP4, WebM czy Ogg. W związku z tym, wybierając te znaczniki, nie można osiągnąć zamierzonego celu, jakim jest poprawne wyświetlenie animacji FLASH na stronie, co sprawia, że <object> pozostaje jedynym słusznym rozwiązaniem w tym przypadku.

Pytanie 40

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

A. program typu WYSIWYG
B. przeglądarka internetowa
C. program MS Office Picture Manager
D. edytor CSS
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.