Wyniki egzaminu

Informacje o egzaminie:
  • Zawód: Technik informatyk
  • Kwalifikacja: INF.03 - Tworzenie i administrowanie stronami i aplikacjami internetowymi oraz bazami danych
  • Data rozpoczęcia: 21 kwietnia 2026 21:08
  • Data zakończenia: 21 kwietnia 2026 21:39

Egzamin zdany!

Wynik: 37/40 punktów (92,5%)

Wymagane minimum: 20 punktów (50%)

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

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

A. Apache, PHP i MySQL
B. Apache oraz PHP
C. IIS, Perl oraz MySQL
D. PHP oraz MySQL
Aby uruchomić system CMS Joomla!, niezbędne jest środowisko składające się z serwera Apache, języka PHP oraz bazy danych MySQL. Apache jest jednym z najpopularniejszych serwerów WWW, który obsługuje zapytania HTTP i serwuje zawartość stron internetowych. PHP to skryptowy język programowania, który jest powszechnie używany do tworzenia dynamicznych stron internetowych i aplikacji webowych. W kontekście Joomla!, PHP jest odpowiedzialne za przetwarzanie kodu i interakcję z bazą danych. MySQL natomiast to system zarządzania relacyjnymi bazami danych, który przechowuje wszystkie dane potrzebne do działania Joomla!, takie jak informacje o użytkownikach, artykułach i ustawieniach systemowych. Współpraca tych trzech komponentów tworzy stabilne środowisko do działania Joomla!, zapewniając optymalizację wydajności oraz bezpieczeństwo. Warto również zaznaczyć, że Joomla! wymaga minimum wersji PHP 7.2 oraz MySQL 5.5, aby zapewnić pełną funkcjonalność i wsparcie dla nowoczesnych rozwiązań webowych.

Pytanie 2

W SQL, aby usunąć wszystkie rekordy z tabeli, ale zachować jej strukturę, należy użyć polecenia:

A. TRUNCATE
B. DROP TABLE
C. REMOVE
D. DELETE FROM
W SQL, aby usunąć wszystkie rekordy z tabeli, ale zachować jej strukturę, używamy polecenia <code>DELETE FROM</code>. To polecenie jest częścią języka manipulacji danymi (DML) i pozwala na usunięcie danych bez usuwania samej tabeli. Warto zwrócić uwagę, że <code>DELETE FROM</code> może być użyte z klauzulą <code>WHERE</code>, aby usunąć tylko wybrane rekordy, ale bez tej klauzuli usunie wszystkie wiersze z tabeli. Zaletą tego podejścia jest to, że struktura tabeli, jej indeksy i inne atrybuty pozostają nienaruszone. Ponadto, polecenie <code>DELETE FROM</code> jest transakcyjne, co oznacza, że można je wycofać w ramach sesji transakcyjnej, co może być przydatne w przypadku błędów lub zmian w decyzji. Użycie tego polecenia jest zgodne z dobrymi praktykami zarządzania danymi, szczególnie w sytuacjach, gdy chcemy jedynie zresetować zawartość tabeli bez jej usuwania z bazy danych.

Pytanie 3

Jaki typ powinien być zastosowany, aby pole w bazie danych mogło przechowywać liczby zmiennoprzecinkowe?

A. VARCHAR
B. INT
C. FLOAT
D. CHAR
Odpowiedź FLOAT jest poprawna, ponieważ ten typ danych w systemach baz danych jest zaprojektowany do przechowywania liczb zmiennoprzecinkowych, co oznacza, że może reprezentować liczby rzeczywiste z ułamkami. Typ FLOAT jest szczególnie przydatny w aplikacjach wymagających precyzyjnych obliczeń matematycznych, takich jak finanse, nauki przyrodnicze czy inżynieria. W przeciwieństwie do INT, który przechowuje tylko liczby całkowite, FLOAT pozwala na dużą elastyczność w zakresie wartości. Przykładem może być aplikacja bankowa, która potrzebuje przechowywać wartości depozytów oraz wypłat, które mogą być liczone z dokładnością do dwóch miejsc po przecinku. Dobrą praktyką jest także zrozumienie, że FLOAT, w zależności od implementacji, może mieć ograniczenia precyzyjności, dlatego w sytuacjach wymagających ekstremalnej dokładności, takich jak obliczenia naukowe, warto rozważyć użycie typu DOUBLE, który oferuje większą precyzję. W kontekście zarządzania bazą danych, istotne jest również, aby typ danych był zgodny z wymaganiami aplikacji oraz stosowany w odpowiednich konwencjach i standardach branżowych.

Pytanie 4

Na podstawie jakiego parametru oraz z ilu tabel będą zwrócone wiersze w wyniku podanego zapytania?

SELECT * FROM producent, hurtownia, sklep, serwis WHERE
producent.nr_id = hurtownia.nr_id AND
producent.wyrob_id = serwis.wyrob_id AND
hurtownia.nr_id = sklep.nr_id AND
sklep.nr_id = serwis.nr_id AND
producent.nr_id = 1;
A. Na podstawie parametru wyrob_id tylko dla trzech tabel
B. Na podstawie parametru nr_id tylko dla trzech tabel
C. Na podstawie parametru nr_id dla wszystkich tabel
D. Na podstawie parametru wyrob_id tylko dla trzech tabel
Zapytanie SQL w poleceniu jest skonstruowane tak by pobierać dane z czterech tabel: producent hurtownia sklep i serwis W warunku WHERE użyto klauzuli dotyczącej parametru nr_id co powoduje że połączenia między tabelami są realizowane na podstawie tego właśnie parametru Jest to typowe podejście w relacyjnych bazach danych gdzie klucz główny jednej tabeli jest kluczem obcym w innej umożliwiając łączenie danych Parametr nr_id pojawia się wielokrotnie w klauzuli WHERE jako kryterium dla różnych połączeń między tabelami To pozwala na uzyskanie spójnej listy wierszy które spełniają wszystkie zdefiniowane warunki Dzięki temu zapytanie zwraca wiersze dla wszystkich czterech tabel co jest zgodne z odpowiedzią numer 1 Takie podejście umożliwia tworzenie złożonych raportów i analiz danych branżowych Warto także zauważyć że użycie JOIN w taki sposób często optymalizuje wydajność zapytań co jest dobrą praktyką w zarządzaniu bazami danych SQL

Pytanie 5

W języku SQL, aby usunąć wszystkie rekordy z tabeli, nie eliminując jej samej, można skorzystać z polecenia

A. UPDATE
B. TRUNCATE
C. ALTER
D. DROP
Polecenie TRUNCATE w języku SQL jest używane do usunięcia wszystkich danych z tabeli w sposób szybki i efektywny, bez potrzeby usuwania samej tabeli. TRUNCATE działa na poziomie struktury bazy danych, co oznacza, że nie zapisuje informacji o usuniętych rekordach w dzienniku transakcji, co czyni operację znacznie szybszą w porównaniu do innych metod, takich jak DELETE. W praktyce, gdy chcesz zresetować tabelę do stanu pustego, TRUNCATE jest najlepszym wyborem. Przykładem zastosowania może być sytuacja, gdy tabela tymczasowa zawiera dane, które nie są już potrzebne po zakończeniu procesu przetwarzania. W takim przypadku użycie polecenia TRUNCATE pozwala na szybkie usunięcie wszystkich rekordów, a sama struktura tabeli pozostaje nienaruszona do przyszłego użycia. Dobrą praktyką jest również stosowanie TRUNCATE w sytuacjach, gdzie nie potrzebujemy zachować historii operacji na danych, co zwiększa wydajność bazy danych. Zgodnie z zaleceniami standardów SQL, TRUNCATE jest bardziej odpowiednie do operacji na dużych zbiorach danych, gdyż minimalizuje czas operacji i obciążenie systemu.

Pytanie 6

Baza danych szkoły podstawowej dla dzieci w wieku 6 lat obejmuje tabelę szkoła, która zawiera kolumny: imie, nazwisko, klasa. Wszyscy uczniowie w klasach od 1 do 5 przeszli do wyższej klasy. W celu zwiększenia wartości w kolumnie klasa o 1, należy wykonać następujące polecenie

A. SELECT szkoła FROM klasa = klasa + 1 WHERE klasa >=1 AND klasa <= 5
B. UPDATE nazwisko, imie SET klasa = klasa + 1 WHERE klasa>l OR klasa < 5
C. SELECT nazwisko, imie FROM klasa = klasa + 1 WHERE klasa>l OR klasa < 5
D. UPDATE szkoła SET klasa = klasa + 1 WHERE klasa >=1 AND klasa <= 5
Poprawne polecenie to 'UPDATE szkoła SET klasa = klasa + 1 WHERE klasa >=1 AND klasa <= 5;'. To zapytanie aktualizuje wartość w kolumnie 'klasa' dla wszystkich uczniów w tabeli 'szkoła', których aktualny poziom klasy mieści się w zakresie od 1 do 5. Kluczowym elementem jest użycie polecenia UPDATE, które jest standardowym sposobem na modyfikowanie danych w bazach danych SQL. Oznaczenie 'SET klasa = klasa + 1' wskazuje, że chcemy zwiększyć obecną wartość w kolumnie 'klasa' o 1. Warto zwrócić uwagę na warunek WHERE, który filtruje rekordy tak, aby aktualizacja dotyczyła tylko tych uczniów, którzy są w klasach 1-5. Tego rodzaju operacje są powszechnie stosowane w zarządzaniu danymi w aplikacjach edukacyjnych i są zgodne z praktykami bezpieczeństwa i integralności danych, zapewniając, że tylko odpowiednie rekordy są aktualizowane. Przykładem praktycznego zastosowania może być coroczna aktualizacja klas uczniów po zakończeniu roku szkolnego.

Pytanie 7

Polecenie GRANT w języku SQL służy do

A. umieszczania nowych danych w bazie.
B. aktualizacji istniejących danych w bazie.
C. odbierania użytkownikom praw do obiektów.
D. nadawania użytkownikom praw do obiektów.
Poprawnie – polecenie GRANT w SQL służy właśnie do nadawania użytkownikom praw do obiektów w bazie danych. W praktyce GRANT jest jednym z kluczowych narzędzi mechanizmu kontroli dostępu, czyli tzw. autoryzacji. Najpierw ktoś łączy się z bazą (to jest uwierzytelnianie – login/hasło, certyfikat itd.), a dopiero potem baza sprawdza, jakie uprawnienia ma ten użytkownik. I tu wchodzi GRANT. Administrator lub właściciel obiektu może przyznać użytkownikowi np. prawo SELECT do tabeli `klienci`, prawo INSERT do tabeli `zamowienia`, albo prawo EXECUTE do procedury składowanej. Składnia jest dość prosta, np.: `GRANT SELECT, INSERT ON klienci TO jan;`. W większości systemów (np. PostgreSQL, Oracle, MySQL/MariaDB, SQL Server) idea jest podobna, różnią się tylko szczegóły i nazwy ról czy typów uprawnień. W dobrych praktykach bezpieczeństwa nie daje się użytkownikom uprawnień typu „wszystko na wszystkim”, tylko dokładnie to, czego potrzebują (tzw. zasada najmniejszych uprawnień – least privilege). Moim zdaniem warto już na etapie nauki SQL odróżniać polecenia do pracy na danych (SELECT, INSERT, UPDATE, DELETE) od poleceń do zarządzania uprawnieniami, takich jak GRANT i REVOKE. W codziennej pracy administratora baz, programisty backendu czy nawet osoby od DevOps, GRANT pojawia się bardzo często: przy tworzeniu nowych kont aplikacyjnych, przy separacji środowisk (dev/test/prod), przy ograniczaniu dostępu do wrażliwych tabel, np. z danymi osobowymi. Dobre zrozumienie GRANT pomaga też szybko diagnozować błędy typu „permission denied” i świadomie projektować politykę bezpieczeństwa w systemie.

Pytanie 8

Testy aplikacji webowej, mające na celu ocenę wydajności aplikacji oraz bazy danych, a także architektury serwera i konfiguracji, noszą nazwę testów

A. kompatybilności
B. użyteczności
C. bezpieczeństwa
D. funkcjonalnych
Testy kompatybilności to naprawdę ważna część oceny, czy nasza aplikacja www dobrze działa w różnych środowiskach i na różnych systemach. Gdy myślimy o skalowalności aplikacji oraz baz danych, te testy pomagają sprawdzić, jak aplikacja znosi rosnące obciążenia i jak współpracuje z różnymi bazami danych czy serwerami. Przykładowo, możemy przetestować działanie aplikacji na różnych wersjach systemów operacyjnych lub przeglądarek. W branży sporo ludzi korzysta z takich narzędzi jak Selenium czy QUnit, które pomagają w automatyzacji tych testów. Z mojej perspektywy, te testy powinny być częścią cyklu życia oprogramowania, aby użytkownicy mogli cieszyć się spójnym i niezawodnym doświadczeniem. Zrozumienie testów kompatybilności jest kluczowe, nie tylko dla programistów, ale też dla inżynierów jakości, ponieważ ma to bezpośredni wpływ na to, jak użytkownicy odbierają nasz produkt oraz jego sukces na rynku.

Pytanie 9

Dana jest tabela studenci o polach id_albumu, ubezpieczenie. Modyfikacja w kolumnie ubezpieczenie polegająca na zmianie wierszy bez wartości (NULL) na ciąg znaków „brak” zostanie wykonana kwerendą

A. UPDATE studenci SET ubezpieczenie='brak' WHERE ubezpieczenie IS NULL;
B. UPDATE studenci ubezpieczenie IS NULL SET ubezpieczenie='brak';
C. ALTER TABLE studenci MODIFY COLUMN ubezpieczenie='brak' NOT NULL;
D. ALTER TABLE studenci ADD ubezpieczenie='brak' WHERE ubezpieczenie IS NULL;
Prawidłowa kwerenda używa instrukcji UPDATE z klauzulą SET oraz warunkiem w części WHERE: „UPDATE studenci SET ubezpieczenie='brak' WHERE ubezpieczenie IS NULL;”. To dokładnie odpowiada temu, co chcemy zrobić: zaktualizować istniejące rekordy w tabeli, tylko w tych wierszach, gdzie kolumna ubezpieczenie ma wartość NULL. UPDATE służy właśnie do modyfikowania danych w tabeli, a nie do zmiany jej struktury. Kluczowy jest tu warunek WHERE ubezpieczenie IS NULL – bez tego zmienilibyśmy wartość ubezpieczenie na „brak” we wszystkich wierszach, co byłoby poważnym błędem. W SQL porównanie z NULL odbywa się zawsze przez IS NULL lub IS NOT NULL, a nie przez operator =, bo NULL oznacza „brak danych”, a nie konkretną wartość. Moim zdaniem warto zapamiętać ten schemat, bo w praktyce pracy z bazami danych bardzo często trzeba „sprzątać” dane: zastępować wartości NULL jakimiś domyślnymi opisami, np. „nieznany”, „nie dotyczy”, „brak danych”. Przykładowo: UPDATE klienci SET telefon='brak' WHERE telefon IS NULL; albo UPDATE pracownicy SET premia=0 WHERE premia IS NULL;. To jest ten sam wzorzec działania. Dobrą praktyką jest też najpierw wykonać SELECT z tym samym warunkiem WHERE, żeby zobaczyć, które rekordy zostaną zmodyfikowane, zanim puścimy właściwy UPDATE. W projektowaniu baz danych przyjęło się, że UPDATE służy do zmiany zawartości wierszy, a ALTER TABLE do zmiany struktury tabeli (dodawanie kolumn, zmiana typów, kluczy itp.). Mieszanie tych dwóch ról prowadzi potem do dziwnych błędów. W standardowym SQL nie ma możliwości aktualizacji tylko części wierszy poprzez ALTER TABLE, dlatego tutaj jedynym sensownym, poprawnym i zgodnym z dobrymi praktykami rozwiązaniem jest właśnie użycie UPDATE z warunkiem WHERE ubezpieczenie IS NULL.

Pytanie 10

W języku PHP, aby nawiązać połączenie z bazą danych MySQL za pomocą biblioteki mysqli, wykorzystując podany kod, w miejscu parametru 'c' powinno się wpisać

$a = new mysqli('b', 'c', 'd', 'e')
A. nazwę bazy danych
B. lokalizację serwera bazy danych
C. nazwę użytkownika
D. hasło użytkownika
W języku PHP funkcja mysqli_connec lub konstruktor klasy mysqli służy do tworzenia połączeń z bazą danych MySQL. Ta funkcja wymaga podania kilku parametrów w określonej kolejności. Pierwszym parametrem jest lokalizacja serwera bazy danych zazwyczaj 'localhost' dla lokalnych serwerów. Drugim parametrem jest nazwa użytkownika. Jest to kluczowy element ponieważ pozwala na autoryzację i określa jakie operacje użytkownik może wykonywać na danej bazie danych. Zazwyczaj nazwa użytkownika to 'root' dla serwerów lokalnych ale na serwerach produkcyjnych często stosuje się inne konto użytkownika ze względów bezpieczeństwa. Trzecim parametrem jest hasło odpowiadające podanemu użytkownikowi zapewniające dodatkowy poziom bezpieczeństwa. Czwartym parametrem jest nazwa bazy danych do której użytkownik chce się połączyć. Dobrą praktyką jest korzystanie z plików konfiguracyjnych do przechowywania tych danych aby łatwo można było zarządzać różnymi środowiskami np. deweloperskim testowym i produkcyjnym bez konieczności modyfikacji kodu źródłowego. Prawidłowe zrozumienie tego mechanizmu jest kluczowe dla tworzenia bezpiecznych i stabilnych aplikacji webowych.

Pytanie 11

Zapytanie z użyciem klauzuli JOIN jest wykorzystywane w celu

A. określenia klucza obcego dla tabeli
B. wywołania funkcji agregującej
C. uzyskania wyników tylko z jednej tabeli
D. pozyskania wyników z dwóch tabel, które są ze sobą powiązane
Kiedy używasz klauzuli JOIN w SQL, to tak naprawdę odblokowujesz potencjał swoich relacyjnych baz danych. Dzięki temu możesz łączyć dane z różnych tabel, co jest mega przydatne, gdy trzeba przeanalizować informacje z wielu źródeł. Na przykład, jeżeli masz dwie tabele – 'Klienci' i 'Zamówienia' – to z pomocą JOIN możesz łatwo stworzyć listę zamówień razem z danymi o klientach. Kluczowe jest to, by wiedzieć, które kolumny chcesz zestawić, bo wtedy otrzymasz jasne i uporządkowane wyniki. Z własnego doświadczenia powiem, że umiejętne korzystanie z JOIN znacznie poprawia szybkość zapytań i ułatwia analizę danych. Tak naprawdę, to dla programistów szansa na pełne wykorzystanie SQL przy tworzeniu różnorodnych raportów. W dzisiejszych czasach, gdy tak dużo danych krąży wokół, znajomość tych technik to must-have.

Pytanie 12

W tabeli o nazwie zadania znajduje się kolumna tekstowa status. Jakie zapytanie należy wykorzystać, aby usunąć te rekordy, w których status to ‘zamknięte’?

A. TRUNCATE TABLE zadania;
B. TRUNCATE TABLE zadania WHERE status = 'zamknięte';
C. DELETE FROM zadania WHERE status = 'zamknięte';
D. DELETE FROM zadania;
Odpowiedź 'DELETE FROM zadania WHERE status = 'zamknięte';' jest poprawna, ponieważ ta kwerenda w sposób precyzyjny usuwa tylko te rekordy z tabeli 'zadania', które mają status 'zamknięte'. Użycie klauzuli WHERE jest kluczowe, ponieważ pozwala na ograniczenie operacji usunięcia do konkretnych wierszy w tabeli, co jest zgodne z najlepszymi praktykami w zarządzaniu bazami danych. Należy unikać bezwarunkowego usuwania wszystkich rekordów, jak w przypadku kwerendy 'DELETE FROM zadania;', co mogłoby spowodować utratę danych, które są nadal potrzebne. Przykłady zastosowania tej kwerendy można znaleźć w wielu systemach zarządzania projektami, gdzie często musimy archiwizować lub usuwać zakończone zadania. Dodatkowo stosowanie klauzuli WHERE jest zgodne z zasadą minimalizacji zmian w bazie danych, co jest istotne dla zapewnienia integralności danych i umożliwienia ich późniejszej analizy.

Pytanie 13

W PHP, przy wykonywaniu działań na bazie danych MySQL, aby zakończyć sesję z bazą, należy użyć

A. mysqli_commit();
B. mysqli_close();
C. mysqli_exit();
D. mysqli_rollback();
Funkcja mysqli_close() jest właściwym sposobem na zakończenie pracy z połączeniem do bazy danych MySQL w języku PHP. Użycie tej funkcji zwalnia zasoby skojarzone z danym połączeniem, co jest kluczowe w kontekście wydajności aplikacji. Po zakończeniu operacji na bazie danych, zwłaszcza w przypadku aplikacji intensywnie korzystających z zasobów, takich jak serwery webowe, ważne jest, aby zamknąć połączenie, aby uniknąć wycieków pamięci oraz ograniczyć liczbę otwartych połączeń. Przykładowo, po wykonaniu zapytań do bazy danych, stosując mysqli_close($connection), gdzie $connection to uchwyt do otwartego połączenia, można skutecznie zakończyć interakcję z bazą. Dobrą praktyką jest zamykanie połączeń w blokach finally, aby upewnić się, że zasoby są zwalniane nawet w przypadku wystąpienia wyjątków. Kiedy zamykasz połączenie, pamiętaj, że nie będziesz w stanie już korzystać z tego uchwytu połączenia, co jest zgodne z filozofią zarządzania zasobami, gdzie każdy otwarty zasób powinien być odpowiednio zamykany po zakończeniu jego użycia.

Pytanie 14

Fragment kodu SQL wskazuje, że klucz obcy

Ilustracja do pytania
A. stanowi odniesienie do siebie samego
B. jest obecny w tabeli obiekty
C. jest ustawiony na kolumnie obiekty
D. wiąże się z kolumną imiona
W przedstawionym fragmencie kodu SQL klucz obcy (foreign key) służy do zapewnienia integralności referencyjnej między dwiema tabelami. W tym przypadku klucz obcy wskazuje, że pole imie w jednej tabeli jest powiązane z polem imiona w tabeli obiekty. Takie podejście pomaga w utrzymaniu spójności danych, ponieważ wymusza istnienie każdej wartości w polu imie w kolumnie imiona tabeli obiekty. W praktyce oznacza to, że nie można dodać wartości do pola imie, jeśli nie istnieje odpowiadająca wartość w kolumnie imiona. Klucze obce są kluczowym elementem w projektowaniu baz danych, wspierając normalizację i redukcję redundancji danych. Prawidłowe wykorzystanie kluczy obcych pozwala na efektywne zarządzanie relacjami pomiędzy danymi, co jest zgodne z najlepszymi praktykami w zakresie projektowania baz danych. Dodatkowo, prawidłowe stosowanie kluczy obcych przyczynia się do poprawy wydajności zapytań, ponieważ umożliwia optymalizację operacji łączenia danych. To podejście jest zgodne ze standardami SQL, a jego zastosowanie jest powszechne w różnych systemach zarządzania bazami danych jak MySQL, PostgreSQL czy Oracle.

Pytanie 15

Relacja wiele-do-wielu w bazach danych występuje pomiędzy tabelami, gdy

A. wielu wierszom z tabeli A przyporządkowane są liczne wiersze z tabeli B
B. jednemu wierszowi z tabeli A odpowiada wiele wierszy z tabeli B
C. jednemu wierszowi z tabeli A przysługuje wyłącznie jeden wiersz z tabeli B
D. wielu wierszom z tabeli A przypisany jest tylko jeden wiersz z tabeli B
Odpowiedź, że wielu wierszom z tabeli A przypada wiele wierszy z tabeli B, jest jak najbardziej na miejscu. Wiesz, relacja wiele-do-wielu w bazach danych pojawia się, gdy jednemu rekordowi w jednej tabeli przypisanych jest kilka rekordów w drugiej. Na przykład w bazie danych uczelni mamy studentów (tabela A), którzy mogą zapisać się na różne kursy (tabela B), a jeden kurs może być realizowany przez różnych studentów. W praktyce, żeby to wszystko działało, tworzymy tabelę pośredniczącą, która łączy oba zestawy danych za pomocą kluczy obcych. Taki sposób daje sporo swobody w zarządzaniu danymi, bo łatwo można dodawać lub usuwać powiązania. Ważne jest też, aby zwrócić uwagę na zasady normalizacji baz danych, które pomagają unikać powielania danych i zapewniają, że wszystko jest spójne. Dobrze przemyślane relacje w bazie danych to podstawa, bo to one wpływają na wydajność i prostotę w zarządzaniu danymi.

Pytanie 16

Atrybut NOT NULL kolumny jest konieczny w przypadku

A. klucza podstawowego
B. użycia atrybutu DEFAULT
C. określenia wszystkich pól typu numerycznego
D. określenia wszystkich pól tabeli
Atrybut NOT NULL jest kluczowym elementem w definicji kolumn w bazach danych, szczególnie w kontekście klucza podstawowego. Klucz podstawowy ma na celu unikalne identyfikowanie każdego rekordu w tabeli, co wymaga, aby wszystkie jego kolumny były wypełnione wartościami. Oznaczenie kolumny jako NOT NULL zapewnia, że nie można wprowadzić rekordu bez podania wartości dla tej kolumny, co jest zgodne z zasadą integralności danych. Przykładem może być tabela użytkowników, gdzie kolumna 'ID' jest kluczem podstawowym. Oznaczenie jej jako NOT NULL zapobiega sytuacji, w której mogłoby istnieć kilka rekordów bez unikalnego identyfikatora. Przy projektowaniu baz danych, zgodnie z zasadami normalizacji, klucze podstawowe powinny zawsze mieć atrybut NOT NULL, aby zachować spójność danych oraz ułatwić operacje związane z łączeniem tabel. Dobre praktyki sugerują również, aby każdy klucz podstawowy był prosty i jednoznaczny, co dodatkowo podkreśla potrzebę tego atrybutu.

Pytanie 17

Zdefiniowanie klucza obcego jest niezbędne do utworzenia

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

Pytanie 18

Poniższe zapytanie SQL ma na celu:

UPDATE Uczen SET id_klasy = id_klasy + 1;
A. ustawić wartość pola Uczen na 1
B. zwiększyć o jeden wartość pola Uczen
C. przypisać wartość kolumny id_klasy jako 1 dla wszystkich wpisów w tabeli Uczen
D. zwiększyć o jeden wartość kolumny id_klasy dla wszystkich wpisów w tabeli Uczen
Polecenie SQL "UPDATE Uczen SET id_klasy = id_klasy + 1;" jest poprawne, ponieważ wskazuje na aktualizację kolumny 'id_klasy' w tabeli 'Uczen'. Wartość kolumny dla każdego rekordu w tabeli zostanie zwiększona o jeden. Działanie to jest przydatne w sytuacjach, gdy chcemy zaktualizować dane, na przykład po przesunięciu uczniów do wyższej klasy w systemie edukacyjnym. Przy takim podejściu, wszyscy uczniowie w danym roku szkolnym mogą zostać automatycznie przeniesieni do następnej klasy bez konieczności edytowania rekordów pojedynczo, co zwiększa efektywność i zmniejsza ryzyko błędów. Ta praktyka jest zgodna z zasadami optymalizacji baz danych, gdzie operacje masowe są preferowane dla ich wydajności. Ponadto, dobrym nawykiem jest tworzenie kopii zapasowych przed przeprowadzeniem masowych aktualizacji, aby uniknąć nieodwracalnych zmian w przypadku błędów.

Pytanie 19

Które z poniższych zapytań SQL zwróci wszystkie kolumny z tabeli 'produkty'?

A. SELECT produkty FROM *;
B. SELECT * FROM produkty;
C. FETCH * FROM produkty;
D. GET * FROM produkty;
Zapytanie SQL, które zwraca wszystkie kolumny z tabeli, wykorzystuje składnię SELECT * FROM nazwa_tabeli. Gwiazdka (*) jest symbolem, który oznacza, że chcemy pobrać wszystkie kolumny z danej tabeli. Jest to bardzo przydatne, gdy chcemy szybko uzyskać pełne dane z tabeli bez konieczności wymieniania każdej kolumny z osobna. W praktyce często używa się tej składni w sytuacjach, gdy chcemy wykonać operacje diagnostyczne lub szybkie przeglądanie zawartości tabeli. Jednakże, w środowiskach produkcyjnych, zaleca się raczej precyzyjne określanie potrzebnych kolumn zamiast używania "*", ponieważ pozwala to na optymalizację zapytań i może zmniejszyć obciążenie bazy danych. Niemniej jednak, zapytanie SELECT * FROM produkty; jest poprawne i zgodne z SQL-owym standardem, co czyni je prawidłowym wyborem w tym kontekście.

Pytanie 20

Aby skorzystać z relacji w zapytaniu, trzeba użyć słowa kluczowego

A. UNION
B. JOIN
C. GROUP BY
D. IN
Słowo kluczowe JOIN jest niezbędne do łączenia danych z różnych tabel w bazach danych relacyjnych. Umożliwia ono wykonanie zapytań, które wykorzystują powiązania między tabelami na podstawie wspólnych kolumn. Istnieje kilka rodzajów JOIN, w tym INNER JOIN, LEFT JOIN, RIGHT JOIN oraz FULL JOIN, z których każdy ma swoje specyficzne zastosowanie. Na przykład, używając INNER JOIN, można uzyskać tylko te rekordy, które mają odpowiadające wartości w obu tabelach. To podejście jest zgodne z zasadami normalizacji baz danych, które zalecają przechowywanie danych w sposób zminimalizowany, a relacje między danymi powinny być zarządzane przy użyciu kluczy obcych. Praktyczne zastosowanie JOIN jest kluczowe w analizie danych, gdzie często niezbędne jest zestawienie informacji z różnych źródeł, co pozwala na uzyskanie pełniejszego obrazu analizowanego problemu. Wiedza o tym, jak prawidłowo stosować JOIN, jest fundamentem pracy z bazami danych, a jej znajomość jest również wymagana w standardach branżowych związanych z zarządzaniem danymi.

Pytanie 21

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

A. Zwraca część wspólną wyników dwóch zapytań
B. Zwraca te wiersze, które wystąpiły w wyniku drugiego zapytania, natomiast nie było ich w wyniku pierwszego zapytania
C. Zwraca zbiór wyników z pierwszego zapytania oraz zbiór wyników z drugiego zapytania, automatycznie eliminując powtarzające się wiersze
D. Zwraca te wiersze, które wystąpiły w wyniku pierwszego zapytania, jednak nie były obecne w wyniku drugiego zapytania
Instrukcja INTERSECT w języku SQL jest używana do zwracania wspólnych wyników dwóch lub więcej zapytań SELECT. W praktyce INTERSECT identyfikuje i zwraca jedynie te wiersze, które występują zarówno w pierwszym, jak i w drugim zbiorze wyników. Warto zauważyć, że podczas używania tej instrukcji, domyślnie usuwane są duplikaty, co oznacza, że każde unikalne wystąpienie wspólnych wierszy zostanie zwrócone tylko raz. Na przykład, jeżeli mamy dwa zapytania: pierwsze zwracające klientów z miasta A, a drugie klientów z miasta B, zastosowanie INTERSECT pozwoli nam uzyskać listę klientów, którzy znajdują się w obu zbiorach, co może być istotne w kontekście analizy danych lub segmentacji rynku. W kontekście standardów SQL, INTERSECT jest jednym z operatorów zbiorowych, obok UNION i EXCEPT, co czyni go fundamentalnym narzędziem w pracy z relacyjnymi bazami danych. Użycie INTERSECT może być korzystne w sytuacjach, gdy chcemy uzyskać analizę porównawczą lub zidentyfikować wspólne elementy pomiędzy różnymi zestawami danych, co jest kluczowe w wielu zastosowaniach analitycznych i raportowych.

Pytanie 22

Dostępna jest tabela uczniowie, która zawiera pól id, imie, nazwisko, data_ur (format rrrr-mm-dd). Które zapytanie w SQL wyświetli tylko imiona oraz nazwiska uczniów urodzonych w roku 2001?

A. SELECT imie, nazwisko FROM uczniowie WHERE data_ur like "2001-%-%"
B. SELECT id, imie, nazwisko, data_ur FROM uczniowie WHERE data_ur like "2001-*-*"
C. SELECT * FROM uczniowie WHERE data_ur like "2001"
D. SELECT * FROM uczniowie WHERE data_ur == 2001-%-%
Wybrana odpowiedź jest prawidłowa, ponieważ wykorzystuje odpowiednią składnię SQL do wyszukania imion i nazwisk uczniów, których data urodzenia przypada na rok 2001. Użycie klauzuli 'LIKE' wraz z wzorcem '2001-%-%' jest kluczowe – znak '%' w SQL reprezentuje dowolny ciąg znaków (w tym również brak znaków). Oznacza to, że jakiekolwiek miesiące i dni mogą występować po roku '2001', co jest zgodne z formatem daty 'rrrr-mm-dd'. Tego typu zapytania są używane w praktycznych zastosowaniach w bazach danych, na przykład przy tworzeniu raportów dotyczących uczniów, którzy urodzili się w określonym roku. Umożliwia to efektywne zarządzanie danymi i przyspiesza proces analizy, co jest zgodne z dobrymi praktykami w zakresie przetwarzania danych. W kontekście SQL, selekcja konkretnych kolumn, takich jak 'imie' i 'nazwisko', jest bardziej efektywna niż pobieranie wszystkich danych, co może być istotne w przypadku większych zestawów danych. Warto również zwrócić uwagę na znaczenie odpowiedniego formatowania dat, co jest kluczowe dla poprawności zapytań do baz danych.

Pytanie 23

Jakie narzędzie jest używane do organizowania oraz przedstawiania danych z wielu rekordów w celu ich wydruku lub dystrybucji?

A. makropolecenie
B. formularz
C. raport
D. kwerenda
Raport to narzędzie, które umożliwia zgrupowanie i prezentowanie informacji z wielu rekordów, co jest kluczowe w kontekście analizy danych oraz podejmowania decyzji biznesowych. Tworzenie raportów pozwala na syntetyzowanie informacji, co sprawia, że są one bardziej zrozumiałe dla odbiorców. W praktyce raporty mogą być wykorzystywane do monitorowania wyników sprzedaży, analiz finansowych, badań rynkowych czy oceny efektywności działań marketingowych. Dzięki zastosowaniu narzędzi do raportowania, takich jak systemy Business Intelligence, możliwe jest generowanie szczegółowych zestawień oraz wizualizacji, które wspierają decyzje strategiczne. Dobre praktyki w zakresie raportowania obejmują jasne definiowanie celów raportu, dobór odpowiednich wskaźników KPI oraz zastosowanie wizualizacji danych, co pozwala na lepsze zrozumienie przedstawianych informacji. W kontekście standardów branżowych, raporty powinny być tworzone zgodnie z zasadami klarowności, precyzji i adekwatności, aby skutecznie odpowiadały na potrzeby użytkowników.

Pytanie 24

SELECT count(*) FROM Uczniowie WHERE srednia = 5;
Wynikiem uruchomienia przedstawionego zapytania SQL jest:
A. Liczba uczniów, których średnia ocen wynosi 5.
B. Średnia ocen wszystkich uczniów.
C. Suma ocen uczniów, których średnia ocen wynosi 5.
D. Liczba wszystkich uczniów.
To zapytanie bardzo dobrze pokazuje, jak łatwo jest pomylić różne typy operacji w SQL: zliczanie, sumowanie i obliczanie średniej. Wiele osób widząc tabelę Uczniowie i kolumnę srednia automatycznie myśli o obliczaniu średnich albo sum ocen, a tymczasem kluczowe jest tu słowo kluczowe COUNT(*) oraz warunek w klauzuli WHERE. Funkcja COUNT(*) nie oblicza ani średniej, ani sumy wartości liczbowych – ona jedynie zlicza wiersze. Niezależnie od tego, co jest w kolumnach, COUNT(*) po prostu mówi: „ile rekordów przeszło przez filtr WHERE”. Dlatego interpretacja, że wynik to liczba wszystkich uczniów, jest niepoprawna, bo zapytanie nie działa na całej tabeli, tylko na jej podzbiorze określonym przez srednia = 5. Gdyby ktoś chciał policzyć wszystkich uczniów, nie używałby warunku WHERE albo zastosowałby inny warunek, który obejmuje wszystkich. Błędne jest też kojarzenie tego zapytania z obliczaniem średniej ocen wszystkich uczniów. Do tego służyłaby funkcja AVG(srednia) albo AVG(ocena), w zależności od struktury bazy. Tutaj nie ma żadnej funkcji AVG, więc silnik bazy danych nie wykonuje żadnego uśredniania, tylko zwykłe zliczanie rekordów. Podobnie z interpretacją, że wynik to suma ocen uczniów – do sumowania wartości liczbowych wykorzystuje się funkcję SUM(kolumna), a nie COUNT(*). Typowy błąd myślowy polega na tym, że ktoś widzi dane „szkolne” i od razu narzuca im kontekst matematyczny, ignorując faktyczną składnię SQL. Z mojego doświadczenia wynika, że warto patrzeć na zapytania SQL w dwóch krokach: najpierw zrozumieć filtr (czyli WHERE – które rekordy przechodzą dalej), a dopiero potem funkcję agregującą (czyli co robimy z tym zbiorem: liczymy, sumujemy, uśredniamy). W tym zadaniu filtr przepuszcza wyłącznie uczniów z średnią równą 5, a agregacja COUNT(*) liczy ilu ich jest. Wszystkie inne interpretacje pojawiają się zwykle z pośpiechu, braku uwagi do słów kluczowych lub mylenia nazw funkcji agregujących, co w praktycznej pracy z bazami danych potrafi mocno wypaczyć wyniki raportów.

Pytanie 25

W SQL polecenie INSERT INTO służy do

A. zmiany rekordów na wskazaną wartość
B. wprowadzania nowych pól do tabeli
C. tworzenia nowej tabeli
D. dodawania danych do tabeli
Wprowadzenie do polecenia INSERT INTO często prowadzi do nieporozumień, szczególnie w kontekście funkcji, jakie pełni w SQL. Nieodpowiednie rozumienie tego polecenia może skutkować błędami w projektowaniu baz danych oraz w wykonywaniu operacji na danych. Na przykład, stwierdzenie, że INSERT INTO aktualizuje rekordy, jest nieprecyzyjne. W rzeczywistości, do aktualizacji istniejących danych używa się polecenia UPDATE, które zmienia wartości w określonych rekordach na podstawie podanych kryteriów. Ponadto, w SQL nie można dodawać nowych pól do tabeli za pomocą INSERT INTO; do tego służy polecenie ALTER TABLE. To ostatnie jest niezbędne, gdyż pozwala na modyfikację struktury tabeli, co jest kluczowe w przypadku zmieniających się wymagań aplikacji. Podobnie, stwierdzenie, że INSERT INTO dodaje tabelę, jest również błędne, ponieważ do tego używa się polecenia CREATE TABLE. Ważne jest, aby zrozumieć, że różne polecenia SQL mają swoje specyficzne zastosowania i nie można ich ze sobą mylić. Typowe błędy myślowe w tym zakresie mogą wynikać z nieznajomości języka SQL lub z braku zrozumienia różnicy pomiędzy operacjami na danych a operacjami na strukturze bazy danych. Zrozumienie tych podstawowych różnic jest kluczowe dla efektywnego zarządzania danymi oraz dla poprawnego projektowania baz danych.

Pytanie 26

Baza danych 6-letniej szkoły podstawowej zawiera tabelę szkola z polami: imie, nazwisko oraz klasa. Uczniowie z klas 1-5 przeszli do wyższej klasy. Jakie polecenie należy użyć, aby zwiększyć wartość w polu klasa o 1?

A. UPDATE nazwisko, imie SET klasa=klasa+1 WHERE klasa>1 OR klasa<5
B. UPDATE szkola SET klasa=klasa+1 WHERE klasa>=1 AND klasa <=5
C. SELECT nazwisko, imie FROM klasa=klasa+1 WHERE klasa>1 OR klasa <5
D. SELECT szkola FROM klasa=klasa+1 WHERE klasa >=1 AND klasa <=5
Odpowiedź jest prawidłowa, ponieważ polecenie SQL 'UPDATE szkola SET klasa=klasa+1 WHERE klasa>=1 AND klasa <=5;' skutecznie zwiększa wartość w polu 'klasa' dla wszystkich uczniów klas 1-5. W tym kontekście 'UPDATE' jest używane do modyfikowania istniejących danych w tabeli. Wyrażenie 'SET klasa=klasa+1' oznacza, że wartość w polu 'klasa' dla każdego rekordu, który spełnia warunek, zostanie zwiększona o 1. Warunek 'WHERE klasa>=1 AND klasa <=5' zapewnia, że zmiana dotyczy tylko uczniów, którzy są w klasach 1-5, co jest zgodne z założeniem, że wszyscy ci uczniowie zdali do następnej klasy. Praktyczne zastosowanie tego polecenia może być widoczne w sytuacjach, gdy szkoła regularnie aktualizuje dane uczniów na koniec roku szkolnego. Ważne jest, aby zawsze przetestować zapytania aktualizacyjne w środowisku testowym przed ich wdrożeniem w produkcji, aby uniknąć niezamierzonych zmian w danych.

Pytanie 27

Zgodnie z zasadami ACID dotyczącymi transakcji, wymóg izolacji (ang. isolation) wskazuje, że

A. pod określonymi warunkami dane modyfikowane przez transakcję mogą zostać anulowane
B. jeśli dwie transakcje są wykonywane równolegle, to zazwyczaj nie zauważają wprowadzanych przez siebie zmian
C. po zrealizowaniu transakcji system baz danych będzie w stanie spójności
D. gdy wystąpi konflikt z inną transakcją, obie mogą modyfikować te same dane równocześnie
Izolacja, jako jedno z kluczowych wymagań standardu ACID w kontekście transakcji baz danych, oznacza, że transakcje wykonywane współbieżnie nie wpływają na siebie nawzajem w sposób widoczny. Gdy dwie transakcje są uruchamiane jednocześnie, każda z nich operuje na swoim zestawie danych, nie widząc zmian dokonanych przez drugą do momentu zakończenia transakcji. Dzięki temu, nawet w środowisku o dużym natężeniu operacji, możliwe jest zapewnienie spójności danych. Na przykład, w systemie bankowym, jeśli jeden użytkownik wykonuje przelew, a inny jednocześnie sprawdza stan konta, to proces sprawdzania nie powinien ujawniać niepotwierdzonych jeszcze operacji przelewu. W praktyce, mechanizmy takie jak blokady, czasowe znaczniki (timestamps) oraz protokoły kontroli współbieżności (np. MVCC - Multi-Version Concurrency Control) są wykorzystywane do zapewnienia tej izolacji, co jest fundamentalne dla zachowania integralności danych i poprawności operacji w wielu aplikacjach bazodanowych.

Pytanie 28

Na podstawie tabeli Towar wykonano poniższe zapytanie SQL. Jaki będzie rezultat tej operacji?

SELECT nazwa_towaru
FROM`Towar`
WHERE cena_katalogowa<65
ORDER BY waga DESC
IDnazwa_towarucena_katalogowawagakolor
1Papier ksero A4112.3biel
2Zeszyt A54.20.13wielokolorowy
3Zeszyt A5 w linie3.50.12niebieski
4Kredki 24 kolory90.3wielokolorowy
5Plecak szkolny65.51.3zielony
A. Papier ksero A4, Kredki 24 kolory, Zeszyt A5 w linie, Zeszyt A5
B. Papier ksero A4, Kredki 24 kolory, Zeszyt A5, Zeszyt A5 w linie
C. Zeszyt A5 w linie, Zeszyt A5, Kredki 24 kolory, Papier ksero A4
D. Zeszyt A5, Zeszyt A5 w linie, Kredki 24 kolory, Papier ksero A4
Twoja odpowiedź jest trafiona, bo zapytanie SQL jasno pokazuje, jakie warunki muszą być spełnione, żeby dany towar pojawił się w wynikach. Klauzula WHERE filtruje produkty z ceną katalogową poniżej 65. To znaczy, że plecak szkolny za 65.5 nie przechodzi tego kryterium i nie będzie w wynikach. Potem, klauzula ORDER BY sortuje towar według wagi od najcięższego do najlżejszego. Dlatego na liście znajdą się tak jakby Papier ksero A4, Kredki 24 kolory, Zeszyt A5, a potem Zeszyt A5 w linie. To naprawdę fajna struktura zapytania SQL, bo pozwala na szybkie i skuteczne uzyskanie uporządkowanej listy produktów, które spełniają określone warunki. W sumie, to standardowa praktyka w analizie danych i zarządzaniu bazami danych.

Pytanie 29

idnazwiskoimiedata_urubezpieczony
✏️ Edytuj📋 Kopiuj⛔ Usuń1KowalskiJan2005-12-181
✏️ Edytuj📋 Kopiuj⛔ Usuń2NowakAdam2005-10-101
✏️ Edytuj📋 Kopiuj⛔ Usuń3WisniewskiAntoni2005-06-140
✏️ Edytuj📋 Kopiuj⛔ Usuń4LipskaAnna2006-04-121
✏️ Edytuj📋 Kopiuj⛔ Usuń5TomaszewskiPawel2006-07-110
✏️ Edytuj📋 Kopiuj⛔ Usuń6KostarzJulia2006-03-201
✏️ Edytuj📋 Kopiuj⛔ Usuń7BorewiczPatryk2007-06-211
✏️ Edytuj📋 Kopiuj⛔ Usuń8KoperskiBartlomiej2001-09-100
Które zapytanie w języku MySQL usunie z tabeli uczniowie uczniów urodzonych w czerwcu?
A. DELETE FROM `uczniowie` WHERE data_ur LIKE "?-06-?"
B. DROP FROM `uczniowie` WHERE data_ur == #-06-#
C. DELETE FROM `uczniowie` WHERE data_ur LIKE "%-06-%"
D. DROP FROM `uczniowie` WHERE data_ur LIKE "06"
Poprawnie wskazane zapytanie korzysta z instrukcji DELETE oraz operatora LIKE z odpowiednim wzorcem: "%-06-%". W kolumnie data_ur mamy daty zapisane w standardowym formacie ISO: RRRR-MM-DD, np. 2005-06-14. W takim formacie miesiąc zawsze znajduje się na pozycjach 6–7 i jest zapisany jako dwucyfrowa liczba z wiodącym zerem. Wzorzec "%-06-%" oznacza: dowolny ciąg znaków przed, dokładnie „-06-” w środku, oraz dowolny ciąg znaków po. Dzięki temu trafiamy w wszystkie daty, gdzie miesiąc to 06, czyli czerwiec, niezależnie od roku i dnia. To jest bardzo praktyczne podejście, gdy przechowujemy datę w typie DATE i chcemy filtrować po miesiącu bez dodatkowych funkcji. W MySQL operator LIKE działa na wartościach tekstowych, ale typ DATE jest w takim kontekście automatycznie konwertowany do postaci tekstowej w formacie 'YYYY-MM-DD', więc wzorzec z myślnikami jest jak najbardziej poprawny. W realnych projektach częściej stosuje się funkcje DATE_FORMAT albo MONTH(data_ur) = 6, bo to jest czytelniejsze i mniej podatne na pomyłki w zapisie wzorca. Jednak w tym zadaniu celem jest zrozumienie, jak działa LIKE, wildcard „%” oraz jak wygląda rzeczywisty format przechowywania daty. Dobrą praktyką jest też zawsze używanie pojedynczych cudzysłowów w SQL (np. '%-06-%'), choć MySQL akceptuje też podwójne w pewnych konfiguracjach. Moim zdaniem warto zapamiętać ten sposób myślenia: patrzysz na rzeczywisty zapis danych w kolumnie i dopasowujesz wzorzec tak, żeby trafić dokładnie ten fragment, który Cię interesuje (tu: '-06-').

Pytanie 30

Jakie mogą być źródła rekordów dla raportu?

A. inny raport
B. zapytanie GRANT
C. tabela
D. zapytanie INSERT INTO
Tabela jest podstawowym źródłem danych, które może być wykorzystane do generowania raportów w systemach zarządzania bazami danych (DBMS). Raporty są często tworzone w oparciu o zawartość tabel, które przechowują zorganizowane dane w postaci wierszy i kolumn. Przykładowo, w systemach takich jak SQL Server czy MySQL, można użyć zapytań SELECT, aby pobrać dane z tabel i zaprezentować je w formie raportu. Stosowanie tabel jako źródła informacji jest zgodne z zasadami normalizacji danych, co pozwala na minimalizację redundancji i zwiększa integralność danych. Dobre praktyki w tworzeniu raportów zakładają, że dane powinny być pobierane z tabel skonstruowanych zgodnie z zasadami projektowania baz danych, co zapewnia efektywność i łatwość w zarządzaniu informacjami. Oprócz tego, raporty mogą być wzbogacane o różne agregacje i analizy, co czyni je bardziej użytecznymi w podejmowaniu decyzji biznesowych. W praktyce, programiści i analitycy danych często korzystają z narzędzi do wizualizacji, takich jak Tableau czy Power BI, które łączą się z danymi w tabelach, aby generować interaktywne raporty i dashboardy.

Pytanie 31

Poniżej przedstawiono sposób obsługi:

<?php
if (!isset($_COOKIE[$nazwa]))
    echo "nie ustawiono!";
else
    echo "ustawiono, wartość: " . $_COOKIE[$nazwa];
?>
A. ciasteczek
B. sesji
C. baz danych
D. zmiennych tekstowych
Kod PHP przedstawiony w pytaniu ilustruje użycie mechanizmu ciasteczek w przeglądarce. Ciasteczka to małe pliki tekstowe, które serwer umieszcza na komputerze użytkownika, aby przechowywać informacje między sesjami HTTP. W tym przypadku kod sprawdza, czy zmienna o nazwie $nazwa jest ustawiona w tablicy superglobalnej $_COOKIE. Jeśli ciasteczko o danej nazwie nie zostało ustawione, skrypt zwraca komunikat 'nie ustawiono!'. Gdy ciasteczko istnieje, wyświetlana jest jego wartość. Ciasteczka są powszechnie stosowane do śledzenia sesji użytkowników, przechowywania preferencji czy zachowania stanu zalogowania. Ważnym aspektem jest zrozumienie, że ciasteczka działają po stronie klienta i mogą być modyfikowane przez użytkownika, dlatego powinny być używane z ostrożnością i w połączeniu z innymi mechanizmami zabezpieczeń. Warto pamiętać, że ciasteczka mają ograniczenia co do wielkości i liczby, które mogą być przechowywane przez przeglądarkę. Implementacja ciasteczek powinna być zgodna z regulacjami dotyczącymi prywatności, takimi jak RODO, które nakładają obowiązek informowania użytkowników o ich używaniu oraz uzyskiwania zgody.

Pytanie 32

Instrukcja ```REVOKE SELECT ON nazwa1 FROM nazwa2``` w SQL pozwala na

A. przyznawanie dostępu do tabeli
B. przyznawanie uprawnień zgodnie z określonym schematem
C. odbieranie przyznanych uprawnień użytkownikowi
D. usunięcie użytkownika z bazy danych
Polecenie REVOKE SELECT ON nazwa1 FROM nazwa2 w języku SQL jest używane do odbierania uprawnień użytkownikowi, co jest kluczowym aspektem zarządzania bezpieczeństwem w bazach danych. Umożliwia to administratorom kontrolowanie dostępu do danych, co jest istotne w kontekście ochrony informacji oraz zgodności z regulacjami prawnymi. Przykładowo, jeśli użytkownik 'nazwa2' miał wcześniej przyznane uprawnienia do wykonywania zapytań SELECT na tabeli 'nazwa1', użycie polecenia REVOKE pozwoli na ich cofnięcie. W praktyce, administratorzy baz danych często stosują to polecenie, aby ograniczyć dostęp do wrażliwych informacji, na przykład po zakończeniu projektu, w którym dany użytkownik nie powinien już mieć dostępu do danych. Takie działania są zgodne z najlepszymi praktykami w zakresie zabezpieczeń, które zalecają minimalizowanie uprawnień użytkowników do tylko tych niezbędnych do wykonywania ich obowiązków. Dodatkowo, warto również stosować audyty dostępu, aby na bieżąco monitorować, które uprawnienia są przyznawane i odbierane, co pozwala na lepsze zarządzanie bezpieczeństwem systemu.

Pytanie 33

W poniższym zapytaniu SQL, co oznacza symbol gwiazdki w jego wyniku?

SELECT * FROM mieszkancy WHERE imie = 'Anna';
A. wyświetlenie wszystkich kolumn z tabeli mieszkancy
B. wyświetlenie wszystkich rekordów z tabeli mieszkancy
C. pokazanie pola o nazwie '*' (gwiazdka)
D. zignorowanie warunku dotyczącego imienia
W zapytaniu SQL znak gwiazdki (*) nie oznacza wyświetlenia wszystkich rekordów w tabeli, lecz wskazuje, że w wyniku zapytania mamy otrzymać wszystkie kolumny. To ważne rozróżnienie, ponieważ mylenie tych pojęć prowadzi do nieporozumień dotyczących struktury wyników. Każde zapytanie z gwiazdką ograniczone jest jedynie kolumnami nie rekordami. W tym przypadku część WHERE imie = 'Anna' dodatkowo sie mplementuje ograniczenie do konkretnych rekordów co należy do odrębnej części logiki zapytania. Z kolei interpretacja gwiazdki jako pola o nazwie '*' jest błędnym założeniem ponieważ w standardzie SQL nie istnieje możliwość nadania pola o takiej nazwie poprzez użycie gwiazdki. Gdybyśmy chcieli wyświetlić pole o konkretnej nazwie musielibyśmy użyć jego dokładnej nazwy a nie gwiazdki. Interpretacja gwiazdki jako zignorowania warunku WHERE również jest niepoprawna ponieważ WHERE jest integralną częścią zapytania SQL określającą kryteria filtrowania rekordów i działa niezależnie od gwiazdki. Zrozumienie różnic między wyborem kolumn a wyborem rekordów jest kluczowe dla prawidłowego konstruowania zapytań SQL i optymalizacji ich działania w praktycznych zastosowaniach.

Pytanie 34

Polecenie w języku SQL w formie ALTER TABLE 'miasta' ADD 'kod' text?

A. wprowadza do tabeli nową kolumnę o nazwie kod typu text
B. w tabeli miasta modyfikuje nazwę kolumny kod na text
C. dodaje do tabeli dwie kolumny o nazwach: kod i text
D. zmienia nazwę tabeli miasta na kod
Polecenie ALTER TABLE w języku SQL jest używane do modyfikacji istniejących tabel w bazie danych. W tym przypadku, zapytanie ALTER TABLE 'miasta' ADD 'kod' text; dodaje nową kolumnę o nazwie 'kod' typu tekstowego do tabeli 'miasta'. Typ 'text' w SQL jest używany do przechowywania dużych łańcuchów tekstowych, co czyni go idealnym wyborem, gdy dane w tej kolumnie mogą być różnej długości. Poprawne użycie znaków apostrofu w tym kontekście (zamiast cudzysłowów) jest istotne, ponieważ w niektórych systemach baz danych, takich jak MySQL, apostrofy są używane do definiowania nazw tabel i kolumn. Przy dodawaniu kolumn warto również pamiętać o możliwościach modyfikacji, takich jak określenie wartości domyślnych lub ograniczeń dla nowej kolumny. W praktyce, po wykonaniu tego polecenia, każda istniejąca linia w tabeli 'miasta' będzie miała nową kolumnę 'kod', w której wartości będą domyślnie NULL, dopóki nie zostaną one uzupełnione. Ważne jest, aby przed wykonaniem takich operacji zawsze robić kopie zapasowe danych, aby uniknąć ich utraty.

Pytanie 35

W programie Microsoft Access metodą zabezpieczającą dostęp do danych związanych z tabelą oraz kwerendą jest

A. nałożenie limitów przestrzeni dyskowej
B. użycie makr
C. przydzielenie uprawnień
D. ustalanie przestrzeni tabel
Przypisanie uprawnień w programie Microsoft Access jest kluczowym mechanizmem zabezpieczającym dostęp do danych w tabelach i kwerendach. Uprawnienia definiują, kto ma dostęp do jakich zasobów oraz jakie operacje mogą być na nich wykonywane, co jest istotne w kontekście ochrony danych przed nieautoryzowanym dostępem. W Microsoft Access uprawnienia można przydzielać na poziomie użytkownika lub grupy użytkowników, co umożliwia granularne zarządzanie dostępem. Przykładem może być sytuacja, w której administrator przydziela uprawnienia do odczytu, edycji lub usuwania danych tylko wybranym użytkownikom, co jest niezbędne w środowiskach, gdzie dane są wrażliwe i wymagają ochrony. Przypisanie uprawnień opiera się na standardzie modelu kontroli dostępu, który definiuje zasady dotyczące uprawnień oraz poziomów dostępu. W praktyce, proces ten obejmuje tworzenie ról użytkowników oraz przypisywanie im odpowiednich uprawnień, co wspiera zgodność z regulacjami prawnymi dotyczącymi ochrony danych osobowych, takimi jak RODO.

Pytanie 36

Na tabeli Pracownicy, której wiersze są przedstawione na załączonym obrazie, została zrealizowana podana kwerenda SELECT. Jakie dane zostaną zwrócone?

SELECT imie FROM pracownicy WHERE nazwisko = 'Kowal' OR stanowisko > 2;
idimienazwiskostanowisko
1AnnaKowalska1
2MonikaNowak2
3EwelinaNowakowska2
4AnnaPrzybylska3
5MariaKowal3
6EwaNowacka4
A. Wyłącznie Anna
B. Monika, Ewelina, Maria
C. Wyłącznie Maria
D. Anna, Maria, Ewa
Kwerenda SQL SELECT imie FROM pracownicy WHERE nazwisko = 'Kowal' OR stanowisko > 2 ma na celu wybranie imion pracowników, którzy spełniają przynajmniej jeden z dwóch warunków. Pierwszy warunek to nazwisko równe Kowal. Drugi warunek dotyczy stanowiska większego niż 2. W analizowanej tabeli mamy trzy osoby spełniające te kryteria: Maria, która ma nazwisko Kowal oraz Anna i Ewa, które mają stanowiska odpowiednio 3 i 4. Dobrą praktyką w pisaniu zapytań SQL jest jasne formułowanie warunków w klauzuli WHERE, aby zoptymalizować działanie bazy danych i uniknąć niepotrzebnych wyników. Zrozumienie działania operatora OR jest kluczowe, ponieważ umożliwia filtrowanie rekordów według wielu kryteriów. W rzeczywistych scenariuszach biznesowych umiejętność tworzenia takich złożonych zapytań pozwala na efektywne zarządzanie danymi i wyciąganie istotnych informacji, co jest podstawą podejmowania decyzji opartych na danych. Dodatkowo, znajomość struktury tabeli oraz typów danych ułatwia formułowanie zapytań, co jest kluczowe w profesjonalnym używaniu SQL.

Pytanie 37

Została stworzona baza danych z tabelą podzespoły, która zawiera pola: model, producent, typ, cena. Aby uzyskać listę wszystkich modeli pamięci RAM od firmy Kingston uporządkowanych od najniższej do najwyższej ceny, należałoby użyć kwerendy:

A. SELECT model FROM podzespoły WHERE typ='RAM' AND producent='Kingston' ORDER BY cena ASC
B. SELECT model FROM podzespoły WHERE typ='RAM' OR producent='Kingston' ORDER BY cena DESC
C. SELECT model FROM podzespoły WHERE typ='RAM' AND producent='Kingston' ORDER BY cena DESC
D. SELECT model FROM producent WHERE typ='RAM' OR producent='Kingston' ORDER BY podzespoły ASC
Wybrana kwerenda jest poprawna, ponieważ dokładnie spełnia wymagania zadania. Użycie klauzuli SELECT do wyboru pola 'model' z tabeli 'podzespoły' pozwala na uzyskanie właściwych informacji. Warunek WHERE ogranicza wyniki do tych, które dotyczą pamięci RAM (typ='RAM') oraz producenta Kingston (producent='Kingston'). Kluczowym elementem tej kwerendy jest zastosowanie ORDER BY cena ASC, które sortuje wyniki według ceny w porządku rosnącym, co jest zgodne z wymaganiem wyświetlenia modeli od najtańszej do najdroższej. Przykłady zastosowania takiej kwerendy mogą obejmować systemy zarządzania zapasami, gdzie klienci poszukują najlepszych ofert, czy aplikacje e-commerce, które chcą dostarczyć użytkownikom najbardziej korzystne opcje zakupowe. Stosowanie jasnych i precyzyjnych kwerend SQL, według dobrych praktyk branżowych, jest kluczowe dla wydajności i przejrzystości danych.

Pytanie 38

Jakiego języka można użyć do nawiązania połączenia z bazą MySQL w trakcie tworzenia aplikacji internetowej?

A. HTML
B. XHTML
C. PHP
D. CSS
PHP to naprawdę fajny język skryptowy, który świetnie sprawdza się w tworzeniu dynamicznych aplikacji internetowych. Jest super efektywny, kiedy trzeba połączyć się z bazami danych, takimi jak MySQL. Jako język serwerowy, daje programistom narzędzia do robienia różnych rzeczy z danymi, jak dodawanie, edytowanie czy usuwanie rekordów w bazie. Na przykład, gdy tworzysz aplikację do zarządzania użytkownikami, możesz użyć PHP do obsługi formularza rejestracyjnego, który zbiera dane od użytkowników i następnie łączy się z MySQL, by je zapisać. Do łączenia z bazą danych używa się funkcji, jak mysqli_connect() lub PDO (PHP Data Objects), co pozwala na bezpieczne i sprawne zarządzanie połączeniami oraz zapytaniami SQL. Co ważne, PHP zachęca do dobrych praktyk, jak stosowanie przygotowanych zapytań, co mocno zwiększa bezpieczeństwo aplikacji, chroniąc przed różnymi atakami, jak SQL injection.

Pytanie 39

Jakie zadania programistyczne należy wykonać na serwerze?

A. Weryfikacja danych wprowadzonych do pola tekstowego na bieżąco
B. Ukrywanie i wyświetlanie elementów strony w zależności od aktualnej pozycji kursora
C. Zmiana stylu HTML na stronie spowodowana ruchem kursora
D. Zapisanie danych pozyskanych z aplikacji internetowej w bazie danych
Zapisanie danych pobranych z aplikacji internetowej w bazie danych to zadanie, które powinno być wykonywane po stronie serwera ze względów bezpieczeństwa, integralności danych oraz zarządzania zasobami. Serwer jest odpowiedzialny za przechowywanie informacji, które mogą być wykorzystywane przez wielu użytkowników, co wymaga centralizacji ich przetwarzania. W przypadku aplikacji internetowych, dane są często przesyłane z klienta (przeglądarki) do serwera, gdzie są walidowane oraz zapisywane w bazach danych. Na przykład, gdy użytkownik rejestruje się w aplikacji, jego dane osobowe są wysyłane do serwera, który sprawdza poprawność tych informacji i zapisuje je w bazie danych. Właściwe implementacje powinny stosować bezpieczne połączenia (np. HTTPS), a także techniki, takie jak sanitizacja danych, aby unikać ataków typu SQL Injection. Dobrą praktyką jest także stosowanie ORM (Object-Relational Mapping), co umożliwia łatwiejsze zarządzanie danymi i ich relacjami. Przechowywanie danych po stronie serwera pozwala na efektywne zarządzanie zasobami i umożliwia późniejsze przetwarzanie informacji w sposób zorganizowany i bezpieczny.

Pytanie 40

W tabeli psy znajdują się kolumny: imie, rasa, telefon_wlasciciela, rok_szczepienia. Jakie polecenie SQL należy zastosować, aby uzyskać numery telefonów właścicieli psów, które były szczepione przed rokiem 2015?

A. SELECT imie, rasa FROM psy WHERE rok_szczepienia > 2015
B. SELECT telefon_wlasciciela FROM psy WHERE rok_szczepienia > 2015
C. SELECT telefon_wlasciciela FROM psy WHERE rok_szczepienia < 2015
D. SELECT psy FROM rok_szczepienia < 2015
Wybór odpowiedzi 'SELECT telefon_wlasciciela FROM psy WHERE rok_szczepienia < 2015' jest poprawny, ponieważ spełnia wszystkie kryteria zawarte w pytaniu. Kluczowym elementem jest zastosowanie klauzuli WHERE, która filtruje wyniki do tych, gdzie rok szczepienia jest mniejszy niż 2015. Używając SELECT, wybieramy tylko kolumnę 'telefon_wlasciciela', co odpowiada na konkretną potrzebę, jaką jest uzyskanie numerów telefonów właścicieli psów, które były szczepione przed określoną datą. W praktyce, takie zapytanie może być użyteczne w sytuacjach np. przypominania właścicielom o konieczności szczepień, co wpisuje się w szerszy kontekst zarządzania zdrowiem zwierząt. Dobre praktyki w SQL obejmują również staranność przy określaniu warunków filtracji, aby zminimalizować ryzyko błędnych wyników. Warto także pamiętać o indeksowaniu kolumn w bazie danych, co może przyspieszyć wykonywanie takich zapytań, zwłaszcza w dużych zbiorach danych.