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: 24 kwietnia 2026 14:09
  • Data zakończenia: 24 kwietnia 2026 14:11

Egzamin niezdany

Wynik: 4/40 punktów (10,0%)

Wymagane minimum: 20 punktów (50%)

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

Instrukcja w języku SQL ```GRANT ALL PRIVILEGES ON klienci TO pracownik```

A. Przyznaje uprawnienia grupie klienci do tabeli pracownik
B. Przenosi uprawnienia z grupy klienci na użytkownika pracownik
C. Odbiera wszystkie uprawnienia pracownikowi do tabeli klienci
D. Przyznaje wszystkie uprawnienia do tabeli klienci użytkownikowi pracownik
Odpowiedź jest poprawna, ponieważ polecenie GRANT ALL PRIVILEGES ON klienci TO pracownik w języku SQL rzeczywiście nadaje wszystkie dostępne uprawnienia do tabeli klienci użytkownikowi pracownik. To oznacza, że pracownik zyskuje możliwość wykonywania wszelkich operacji na tej tabeli, w tym SELECT, INSERT, UPDATE oraz DELETE. Przykład zastosowania tego polecenia jest istotny w kontekście zarządzania bazami danych, gdzie administratorzy muszą przyznawać różnorodne uprawnienia użytkownikom w zależności od ich roli. Przykładowo, jeśli pracownik jest odpowiedzialny za wprowadzanie i aktualizację danych klientów, to nadanie mu wszystkich uprawnień jest uzasadnione. Ważne jest, aby przyznawać uprawnienia zgodnie z zasadą najmniejszych uprawnień, co oznacza, że użytkownik powinien mieć tylko te uprawnienia, które są niezbędne do realizacji jego zadań. W praktyce, administrator baz danych powinien monitorować przyznane uprawnienia i regularnie je przeglądać, aby zapewnić bezpieczeństwo systemu. Koszty błędów w przyznawaniu uprawnień mogą być znaczne, w tym ryzyko nieautoryzowanego dostępu do danych, dlatego kluczowe jest stosowanie dobrych praktyk w zarządzaniu uprawnieniami.

Pytanie 2

Jak można utworzyć kopię zapasową bazy danych MySQL?

A. eksportowaniem bazy
B. modyfikowaniem danych
C. agregowaniem danych
D. importowaniem bazy
Eksport bazy danych MySQL to proces, który pozwala na tworzenie kopii zapasowych danych znajdujących się w bazie. Narzędzie do eksportu, takie jak mysqldump, umożliwia nie tylko zapisanie danych w formacie SQL, ale także w innych formatach, takich jak CSV czy JSON. Eksport jest kluczowy w przypadku migracji danych pomiędzy różnymi środowiskami baz danych lub w sytuacji, gdy zachodzi potrzeba odzyskania danych po awarii. Proces ten można zautomatyzować, korzystając z harmonogramów zadań (cron), co zapewnia regularne tworzenie kopii zapasowych. Zgodnie z najlepszymi praktykami, zaleca się, aby eksportować bazy danych regularnie oraz przechowywać kopie zapasowe w bezpiecznych lokalizacjach, aby zminimalizować ryzyko utraty danych. Standardy takie jak ISO 27001 podkreślają znaczenie odpowiednich procedur zarządzania danymi, w tym tworzenia kopii zapasowych, co czyni eksportu kluczowym elementem strategii ochrony danych w organizacjach.

Pytanie 3

Jakie zadanie ma funkcja PHP o nazwie mysql_select_db()?

A. nawiązać połączenie między bazą danych a serwerem SQL
B. wyznaczyć tabelę, z której będą pozyskiwane dane
C. wyznaczyć bazę, z której będą pozyskiwane dane
D. uzyskać dane z bazy danych na podstawie zapytania
Funkcja <span>mysql_select_db()</span> w PHP jest naprawdę ważna, bo pozwala nam wybrać konkretną bazę danych, z której chcemy czerpać informacje. Gdy już nawiążemy połączenie z serwerem MySQL przez <span>mysql_connect()</span>, to pierwsze co powinniśmy zrobić, to wybrać bazę danych, na której będziemy działać. To ważny krok, bo w każdej bazie może być sporo tabel, a nasze zapytania muszą iść do odpowiedniej. Na przykład, jeśli mamy bazę danych 'sklep' i potrzebujemy tabeli 'produkty', to musimy wywołać <span>mysql_select_db('sklep')</span>. Dzięki temu MySQL wie, gdzie szukać naszych tabel i informacji. Z mojego doświadczenia, dobrze jest upewnić się, że wybraliśmy odpowiednią bazę danych przed wykonaniem jakichkolwiek zapytań, bo wtedy unikamy różnych problemów z kontekstem danych.

Pytanie 4

W systemie MySQL przyznanie roli o nazwie DBManager umożliwia użytkownikowi wykonywanie

A. wszystkie operacje związane z bazami danych oraz użytkownikami serwera
B. nadzór nad serwerem
C. wszystkie operacje na bazach danych serwera
D. zakładanie użytkowników serwera oraz definiowanie ich haseł
Wybór odpowiedzi, która sugeruje, że rola DBManager przyznaje prawa do monitorowania serwera, tworzenia użytkowników serwera oraz wykonywania wszystkich operacji na bazach danych i użytkownikach, może prowadzić do mylnych wniosków na temat rzeczywistych możliwości tej roli. Monitorowanie serwera jako funkcja nie jest bezpośrednio związane z rolą DBManager. Chociaż monitorowanie jest istotnym aspektem zarządzania bazami danych, odpowiednie uprawnienia związane z tą funkcjonalnością są przyznawane innym rolom lub użytkownikom posiadającym konkretne przywileje, takie jak rola DBMonitor. Tworzenie użytkowników serwera i ustawianie im haseł również wykracza poza standardowe uprawnienia roli DBManager. Zwykle te czynności są przypisane administratorom systemu, którzy mają kontrolę nad bezpieczeństwem całego środowiska bazodanowego. Odpowiedzi sugerujące możliwość wykonywania wszelkich operacji na bazach danych i użytkownikach mogą sugerować, że rola DBManager obejmuje pełne uprawnienia administracyjne, co nie jest zgodne z praktykami bezpieczeństwa, które zalecają ograniczanie uprawnień w oparciu o zasadę najmniejszych uprawnień. Takie zrozumienie jest kluczowe, ponieważ przyznawanie zbyt szerokich uprawnień może prowadzić do luk w zabezpieczeniach i nadużyć, co narusza standardy zarządzania danymi i bezpieczeństwa w organizacjach. Dlatego ważne jest, aby dokładnie rozumieć zakres dostępnych ról i ich odpowiedzialności, aby zapewnić właściwe zarządzanie dostępem i bezpieczeństwem danych.

Pytanie 5

Aby za pomocą instrukcji SELECT uzyskać listę nazwisk osób mieszkających na osiedlu, przy czym nazwiska te nie mogą się powtarzać, należy sformułować zapytanie w następujący sposób

A. SELECT AVG(nazwisko) FROM mieszkancy
B. SELECT nazwisko FROM mieszkancy ORDER BY nazwisko
C. SELECT TOP 10 nazwisko FROM mieszkancy
D. SELECT DISTINCT nazwisko FROM mieszkancy
Odpowiedź "SELECT DISTINCT nazwisko FROM mieszkancy;" jest prawidłowa, ponieważ użycie klauzuli DISTINCT pozwala na wyświetlenie unikalnych wartości z kolumny 'nazwisko', eliminując wszelkie duplikaty. W praktyce jest to niezwykle przydatne, gdyż często zdarza się, że w bazach danych ta sama informacja może być wprowadzana wielokrotnie, co prowadzi do nieczytelnych raportów. Dzięki zastosowaniu klauzuli DISTINCT, możemy uzyskać czysty i zrozumiały zbiór danych, co jest zgodne z najlepszymi praktykami w analizie danych. Na przykład, w sytuacji, gdy chcemy uzyskać listę wszystkich nazwisk mieszkańców danego osiedla, DISTINCT pozwala na oszczędność czasu w późniejszej obróbce danych, eliminując potrzebę ręcznej filtracji wyników. Zastosowanie DISTINCT jest również standardem w wielu zapytaniach SQL, co czyni tę technikę fundamentalną w efektywnym zarządzaniu bazami danych oraz analizy informacji. Warto dodać, że klauzula DISTINCT może być używana z różnymi rodzajami danych, co pozwala na jej wszechstronność.

Pytanie 6

Wartość atrybutu w tabeli, który pełni rolę klucza głównego

A. musi być unikalna
B. jest używana do szyfrowania zawartości tabeli
C. może przyjmować wartość null (NULL)
D. nigdy nie jest innego typu niż numeryczny

Brak odpowiedzi na to pytanie.

Wyjaśnienie poprawnej odpowiedzi:
Klucz podstawowy w bazach danych to coś, co naprawdę musi być unikalne, żeby każda informacja w tabeli była dobrze zidentyfikowana. Przykładowo, w tabeli 'Klienci' mamy kolumnę 'ID_klienta'. To jest dobry klucz podstawowy, bo każdy klient musi mieć swój własny numer, żeby nie było sytuacji, gdzie dwóch klientów ma ten sam identyfikator. Gdyby klucz podstawowy był taki sam dla różnych rekordów, mogłoby to wywołać spore zamieszanie przy aktualizacjach czy usuwaniu danych. Warto też pamiętać, że są takie rzeczy jak indeksy, które mogą pomóc w zapewnieniu, że klucz podstawowy jest unikalny i przyspiesza wyszukiwanie danych. Można użyć kluczy naturalnych, które mają sens w kontekście danych, albo kluczy syntetycznych, które system tworzy sam, jak na przykład GUID-y. Z mojego doświadczenia, to znajomość tych zasad naprawdę pomaga w lepszym projektowaniu baz danych.

Pytanie 7

Wymień dwa sposoby na zabezpieczenie bazy danych Microsoft Access

A. Zaszyfrowanie pliku bazy danych oraz wiadomości SMS z kodem autoryzacyjnym
B. Funkcje anonimowe oraz ustawienie hasła do otwarcia bazy danych
C. Ustalenie zabezpieczeń na poziomie użytkownika oraz w sesji
D. Ustalanie hasła do otwarcia bazy danych oraz zabezpieczeń na poziomie użytkownika

Brak odpowiedzi na to pytanie.

Wyjaśnienie poprawnej odpowiedzi:
Ustalanie hasła do otwarcia bazy danych oraz zabezpieczeń na poziomie użytkownika to kluczowe elementy ochrony danych w Microsoft Access. Ustalenie hasła otwarcia bazy danych zapewnia podstawowy poziom bezpieczeństwa, uniemożliwiając nieautoryzowanym użytkownikom dostęp do pliku. W praktyce, aby ustawić hasło, wystarczy przejść do opcji 'Informacje' w menu, a następnie wybrać 'Szyfrowanie z hasłem'. Zabezpieczenia na poziomie użytkownika natomiast pozwalają na definiowanie ról i uprawnień dla różnych użytkowników, co jest istotne w sytuacjach, gdzie dostęp do danych powinien być ograniczony do wybranych osób. Implementacja tych rozwiązań jest zgodna z dobrymi praktykami bezpieczeństwa danych, które zalecają stosowanie wielowarstwowych mechanizmów ochrony. Przykładem może być firma, która przechowuje wrażliwe dane klientów, gdzie konieczne jest, aby tylko wyznaczeni pracownicy mieli dostęp do konkretnych informacji, co można zrealizować właśnie poprzez zabezpieczenia na poziomie użytkownika.

Pytanie 8

Jakie będą skutki wykonania podanego zapytania w tabeli?

ALTER TABLE nazwa1 ADD nazwa2 DOUBLE NOT NULL;
A. dodanie kolumny nazwa2 typu zmiennoprzecinkowego
B. zmiana nazwy kolumny z nazwa1 na nazwa2
C. dodanie kolumny nazwa2 z wartością domyślną typu DOUBLE
D. zmiana wartości kolumny nazwa2 na DOUBLE

Brak odpowiedzi na to pytanie.

Wyjaśnienie poprawnej odpowiedzi:
Pytanie dotyczy użycia polecenia SQL ALTER TABLE w celu modyfikacji struktury istniejącej tabeli. W przedstawionym zapytaniu ALTER TABLE nazwa1 ADD nazwa2 DOUBLE NOT NULL; widzimy, że użyto słowa kluczowego ADD co wskazuje na dodanie nowej kolumny do tabeli. Kolumna ta nazywa się nazwa2 i ma typ danych DOUBLE co oznacza, że będzie przechowywać wartości zmiennoprzecinkowe. Specyfikacja NOT NULL oznacza, że żadna wartość w tej kolumnie nie może być NULL co jest częstym wymogiem w bazach danych aby zapewnić spójność i prawidłowość danych. Dodawanie nowych kolumn do tabeli jest typową operacją w zarządzaniu bazami danych umożliwiającą rozbudowę ich struktury w celu spełnienia nowych wymagań biznesowych. Typ DOUBLE jest szczególnie użyteczny w przechowywaniu danych liczbowych wymagających dużej precyzji takich jak wartości finansowe czy pomiary naukowe. Ważne jest aby zawsze po dodaniu nowej kolumny dostosować aplikacje korzystające z bazy danych aby mogły poprawnie obsługiwać nowe dane co jest zgodne z najlepszymi praktykami w branży IT.

Pytanie 9

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

A. zmienić nazwę kolumny cena na float
B. zmienić typ na float dla kolumny cena
C. wprowadzić kolumnę cena o typie float, o ile jeszcze nie istnieje
D. usunąć kolumnę cena, która jest typu float

Brak odpowiedzi na to pytanie.

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

Pytanie 10

Jakie są prawidłowe kroki w kolejności, które należy podjąć, aby nawiązać współpracę między aplikacją internetową działającą na serwerze a bazą SQL?

A. zapytanie do bazy, wybór bazy, wyświetlenie na stronie WWW, zamknięcie połączenia
B. wybór bazy danych, nawiązanie połączenia z serwerem baz danych, zapytanie do bazy, wyświetlenie na stronie WWW, zamknięcie połączenia
C. nawiązanie połączenia z serwerem baz danych, wybór bazy, zapytanie do bazy - wyświetlane na stronie WWW, zamknięcie połączenia
D. wybór bazy, zapytanie do bazy, nawiązanie połączenia z serwerem baz danych, wyświetlenie na stronie WWW, zamknięcie połączenia

Brak odpowiedzi na to pytanie.

Wyjaśnienie poprawnej odpowiedzi:
Wybór odpowiedzi numer 2 jest prawidłowy, ponieważ idealnie odzwierciedla właściwą kolejność działań niezbędnych do nawiązania współpracy między aplikacją webową a bazą danych SQL. Proces zaczyna się od nawiązania połączenia z serwerem baz danych. To kluczowy krok, ponieważ bez aktywnego połączenia z serwerem nie można wykonać żadnych operacji na bazie danych. Następnie następuje wybór bazy, co umożliwia aplikacji określenie, na której bazie danych będzie pracować. Po wybraniu odpowiedniej bazy, można formułować zapytania SQL w celu pobrania lub modyfikacji danych. Ostatnim krokiem jest wyświetlenie wyników na stronie WWW, co pozwala użytkownikowi na interakcję z danymi. Po zakończeniu wszystkich operacji, należy zamknąć połączenie z serwerem bazy danych, co jest standardową praktyką, zapewniającą zwolnienie zasobów i zwiększenie bezpieczeństwa aplikacji. Stosowanie się do tej sekwencji działań jest zgodne z najlepszymi praktykami w programowaniu aplikacji webowych oraz zarządzaniu bazami danych.

Pytanie 11

Formularze do zarządzania bazami danych są tworzone w celu

A. wyszukiwania rekordów spełniających określone kryteria
B. generowania raportów z danych
C. łatwiejszego wprowadzania, edytowania oraz usuwania danych
D. tworzenia powiązań w relacyjnych bazach danych

Brak odpowiedzi na to pytanie.

Wyjaśnienie poprawnej odpowiedzi:
Formularze do obsługi baz danych są kluczowym narzędziem, które umożliwia użytkownikom łatwe wprowadzanie, edytowanie i usuwanie danych w sposób zorganizowany i efektywny. Głównym celem formularzy jest zapewnienie przyjaznego interfejsu, który upraszcza interakcję z bazą danych, eliminując potrzebę bezpośredniego wprowadzania poleceń SQL czy pracy z tabelami w surowej formie. Dzięki formularzom użytkownicy mogą szybko wprowadzać dane do bazy, a także modyfikować istniejące rekordy, co jest szczególnie istotne w codziennym zarządzaniu danymi. Przykładem zastosowania formularzy jest system CRM, gdzie zespół sprzedażowy może w prosty sposób dodawać nowe informacje o klientach czy aktualizować dane kontaktowe. Dobre praktyki w projektowaniu formularzy obejmują zapewnienie walidacji danych, co pozwala na uniknięcie błędów podczas wprowadzania, oraz stosowanie odpowiednich typów pól, takich jak daty, numery czy listy rozwijane, które zwiększają użyteczność formularza. W skrócie, formularze są nieodłącznym elementem efektywnego zarządzania danymi i poprawiają wydajność pracy z bazami danych.

Pytanie 12

Polecenie DROP w języku SQL ma na celu

A. usunąć istniejący obiekt
B. zmodyfikować parametry obiektu
C. zaktualizować dane obiektu
D. wprowadzić nowy obiekt

Brak odpowiedzi na to pytanie.

Wyjaśnienie poprawnej odpowiedzi:
Instrukcja DROP w języku SQL jest używana do usuwania istniejących obiektów z bazy danych, takich jak tabele, widoki, procedury składowane czy indeksy. Użycie tej komendy powoduje, że wszystkie dane przechowywane w danym obiekcie zostają trwale usunięte, co oznacza, że nie można ich odzyskać, chyba że wcześniej wykonano kopię zapasową. Przykładowa składnia polecenia DROP TABLE nazwa_tabeli usuwa całkowicie tabelę wraz z jej strukturą oraz danymi. W SQL standardowym oraz w jego implementacjach, takich jak MySQL, PostgreSQL czy SQL Server, instrukcja ta jest kluczowym narzędziem dla administratorów baz danych, pozwalającym na efektywne zarządzanie obiektami w bazach. Należy jednak stosować ją ostrożnie, ponieważ skutki wykonania tego polecenia są nieodwracalne. Rekomenduje się również, przed usunięciem obiektu, sprawdzenie, czy nie ma on powiązań z innymi obiektami, aby uniknąć błędów w aplikacjach korzystających z tych danych.

Pytanie 13

Na podstawie jakiego parametru oraz z ilu tabel zostaną zwrócone wiersze w wyniku przedstawionego 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 ze wszystkich tabel
B. Na podstawie parametru nr_id wyłącznie z trzech tabel
C. Na podstawie parametru nr_id ze wszystkich tabel
D. Na podstawie parametru wyrob_id wyłącznie z trzech tabel

Brak odpowiedzi na to pytanie.

Wyjaśnienie poprawnej odpowiedzi:
Zapytanie SQL używa parametru nr_id jako kluczowego elementu łączącego cztery tabele producent hurtownia sklep oraz serwis Dzięki temu zapytanie zwraca wiersze dla wszystkich tych tabel gdzie istnieje wspólna wartość nr_id W praktyce klucz taki jak nr_id jest używany do tworzenia relacji pomiędzy różnymi tabelami co jest podstawą w relacyjnych bazach danych Użycie tego samego klucza w zapytaniu umożliwia efektywne łączenie danych i jest zgodne z zasadami normalizacji danych która zmniejsza redundancję i poprawia integralność danych Praktycznym przykładem może być analiza danych sprzedażowych gdzie nr_id reprezentuje unikalny identyfikator zamówienia łączący dane producenta dystrybutora sklepu i serwisu W ten sposób można uzyskać pełny widok na procesy biznesowe we wszystkich etapach cyklu życia produktu Zachowanie tej struktury relacyjnej pozwala na szybkie i dokładne analizy co jest kluczowe w podejmowaniu decyzji biznesowych

Pytanie 14

Poniżej przedstawiono sposób obsługi:

<?php
if (!isset($_COOKIE[$nazwa]))
    echo "nie ustawiono!";
else
    echo "ustawiono, wartość: " . $_COOKIE[$nazwa];
?>
A. baz danych
B. ciasteczek
C. sesji
D. zmiennych tekstowych

Brak odpowiedzi na to pytanie.

Wyjaśnienie poprawnej odpowiedzi:
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 15

Jakie rozwiązanie powinno być wdrożone w organizacji danych, aby przyspieszyć wykonanie zapytań w bazie danych?

A. Wartości domyślne
B. Reguły
C. Klucze podstawowe
D. Indeksy

Brak odpowiedzi na to pytanie.

Wyjaśnienie poprawnej odpowiedzi:
Indeksy w bazach danych są kluczowym narzędziem przyspieszającym wykonywanie zapytań, ponieważ pozwalają na szybsze odnajdywanie danych. Indeks działa jak spis treści w książce, umożliwiając systemowi zarządzania bazą danych (DBMS) szybkie zlokalizowanie konkretnych wierszy w tabelach. W praktyce, dodanie indeksu do kolumny, po której często są przeprowadzane wyszukiwania, może znacząco poprawić wydajność zapytań SELECT. Na przykład, jeśli mamy dużą tabelę z danymi o klientach i często wyszukujemy klientów według nazwiska, stworzenie indeksu na kolumnie 'nazwisko' pozwoli na zredukowanie czasu potrzebnego na wyszukiwanie z kilku sekund do milisekund. Warto również wspomnieć o dobrych praktykach związanych z używaniem indeksów, takich jak unikanie nadmiernego indeksowania, które może prowadzić do obniżenia wydajności operacji INSERT, UPDATE czy DELETE, ponieważ każdy z tych procesów musi również aktualizować odpowiednie indeksy. Dlatego kluczowe jest staranne planowanie i zastosowanie indeksów tam, gdzie przynoszą największe korzyści.

Pytanie 16

W której notacji diagramów ER został zapisany model związków encji przedstawiony na ilustracji?

Ilustracja do pytania
A. Martina.
B. Bachmana.
C. Min-Max.
D. Chena.

Brak odpowiedzi na to pytanie.

Wyjaśnienie poprawnej odpowiedzi:
Prawidłowa odpowiedź to notacja Martina. Na diagramie widać bardzo charakterystyczne cechy tej notacji: encje są przedstawione jako prostokąty z nagłówkiem wypełnionym innym kolorem (tu: ciemnoszary pasek z nazwą encji KLIENT, ZAKUP, TOWAR), a pod spodem w formie tabelki wypisane są atrybuty, jeden pod drugim. Klucz główny jest po prostu pierwszym atrybutem na liście (ID), bez dodatkowych ozdobników typu podkreślenie czy elipsa, co jest typowe właśnie dla podejścia Martina, zorientowanego na projektowanie relacyjnej bazy danych. Związki między encjami są rysowane liniami z tzw. crow’s foot ("kurzą łapką") po stronie encji wielokrotnej, a po stronie encji pojedynczej mamy prostą kreskę. Na ilustracji dokładnie to widać: ZAKUP jest encją pośredniczącą, a relacje KLIENT–ZAKUP i TOWAR–ZAKUP mają klasyczną symbolikę notacji Martina. W praktyce, w wielu narzędziach CASE (np. w starszych wersjach ERwin, PowerDesigner, Visio z szablonem Database Model Diagram) domyślny styl ERD jest właśnie bardzo zbliżony do notacji Martina. Taki diagram jest od razu „bliski” strukturze fizycznej tabel w SQL, więc łatwo go przełożyć na CREATE TABLE, klucze obce i indeksy. Z mojego doświadczenia w firmach produkcyjnych i w małych software house’ach notacja Martina jest często używana przy projektach, gdzie liczy się szybkie przejście z modelu koncepcyjnego do modelu logicznego i fizycznego, bez zbyt rozbudowanej symboliki teoretycznych ER-ów. Dlatego rozpoznanie tej notacji po wyglądzie encji-tabelek i crow’s foot jest bardzo praktyczną umiejętnością przy pracy z bazami danych.

Pytanie 17

W tabeli programiści znajdują się kolumny: id, nick, ilosc_kodu, ocena. W kolumnie ilosc_kodu zapisano liczbę linii kodu, które programista napisał w danym miesiącu. Jakie zapytanie umożliwi obliczenie całkowitej liczby linii kodu stworzonych przez wszystkich programistów?

A. SELECT SUM(ilosc_kodu) FROM programisci;
B. SELECT SUM(ocena) FROM ilosc_kodu;
C. SELECT COUNT(programisci) FROM ilosc_kodu;
D. SELECT MAX(ilosc_kodu) FROM programisci

Brak odpowiedzi na to pytanie.

Wyjaśnienie poprawnej odpowiedzi:
Poprawna odpowiedź to 'SELECT SUM(ilosc_kodu) FROM programisci;'. To polecenie wykorzystuje funkcję agregującą SUM, która sumuje wartości w kolumnie 'ilosc_kodu' dla wszystkich wpisów w tabeli 'programisci'. Jest to najbardziej odpowiednia metoda do obliczenia całkowitej liczby linii kodu napisanych przez wszystkich programistów w danym miesiącu. Funkcje agregujące, takie jak SUM, COUNT, AVG, MAX czy MIN, są kluczowe w SQL, ponieważ pozwalają na efektywne przetwarzanie danych i uzyskiwanie podsumowań na podstawie określonych kryteriów. Dobrą praktyką jest również używanie jednoznacznych aliasów w zapytaniach oraz dbanie o czytelność kodu, co ułatwia jego późniejsze modyfikacje oraz utrzymanie. Przykładowo, można rozszerzyć zapytanie o dodatkowe filtry, aby obliczyć sumę linii tylko dla programistów o określonej ocenie, używając klauzuli WHERE. Tego typu umiejętności są niezbędne w codziennej pracy analityka danych, programisty lub administratora baz danych, gdzie przetwarzanie informacji w sposób efektywny i zrozumiały ma kluczowe znaczenie dla podejmowania decyzji biznesowych.

Pytanie 18

Jakie zapytanie SQL należy użyć, aby zmienić strukturę już istniejącej tabeli?

A. INSERT INTO
B. UPDATE
C. CREATE TABLE
D. ALTER TABLE

Brak odpowiedzi na to pytanie.

Wyjaśnienie poprawnej odpowiedzi:
Odpowiedź 'ALTER TABLE' jest poprawna, ponieważ to polecenie SQL służy do modyfikacji struktury istniejącej tabeli w bazie danych. Dzięki 'ALTER TABLE' możemy dodawać nowe kolumny, modyfikować istniejące kolumny (np. zmieniając ich typ danych czy nazwę), a także usuwać kolumny, które nie są już potrzebne. Przykładowe zastosowanie polecenia to dodanie nowej kolumny do tabeli pracowników: 'ALTER TABLE pracownicy ADD COLUMN wiek INT;'. Ponadto, 'ALTER TABLE' pozwala na wprowadzanie ograniczeń, takich jak klucze obce czy unikalności, co jest kluczowe w kontekście integracji danych i zapewnienia ich spójności. W praktyce, odpowiednie zarządzanie strukturą tabel jest fundamentalnym aspektem utrzymania bazy danych w dobrej kondycji. Należy pamiętać, aby stosować te zmiany zgodnie z najlepszymi praktykami, takimi jak testowanie zapytań w środowisku deweloperskim przed ich wdrożeniem w produkcji, co minimalizuje ryzyko błędów i strat danych.

Pytanie 19

Jakie polecenie pozwala na dodanie kolumny zadanie kompletne do tabeli zadania?

A. ALTER TABLE zadania ADD COLUMN zadaniekompletne int
B. INSERT INTO zadania VALUES zadania kompletne
C. ADD COLUMN zadanie kompletne WITH zadania
D. CREATEINDEX zadania ADD COLUMN zadanie_kompletne int

Brak odpowiedzi na to pytanie.

Wyjaśnienie poprawnej odpowiedzi:
Odpowiedź 'ALTER TABLE zadania ADD COLUMN zadaniekompletne int' jest na pewno trafna. To polecenie ALTER TABLE to taki standard do zmiany struktury tabeli w relacyjnych bazach, jak MySQL czy PostgreSQL. Dzięki temu możemy dodać nową kolumnę do tabeli, co w tym przypadku robimy, dodając 'zadaniekompletne' jako kolumnę typu całkowitego (int). To jest super, gdy chcemy przechowywać liczby, na przykład ile zadań zostało już ukończonych. Warto pamiętać, że dobrze jest, żeby nazwy kolumn były jasne i jednoznaczne, bo to potem bardzo ułatwia pracę z danymi. Przykład: jak mamy tabelę 'zadania' i chcemy widzieć, jak sobie radzą użytkownicy, to dodanie kolumny 'zadaniekompletne' pozwoli nam śledzić, ile rzeczy zostało ukończonych, co pomoże w ocenie efektywności działań. Można też pomyśleć, żeby zamiast liczby używać flagi boolowskiej, ale to już zależy od systemu. Jeśli chcesz dalej rozwijać swoje umiejętności, to warto zajrzeć do dokumentacji SQL różnych baz, żeby lepiej złapać różnice w działaniu.

Pytanie 20

Element lub grupa elementów, która w jednoznaczny sposób identyfikuje każdy pojedynczy rekord w tabeli w bazie danych, nazywa się kluczem

A. obcy
B. inkrementacyjny
C. przestawny
D. podstawowy

Brak odpowiedzi na to pytanie.

Wyjaśnienie poprawnej odpowiedzi:
Klucz podstawowy (ang. primary key) to fundamentalny element projektowania baz danych, który jednoznacznie identyfikuje każdy wiersz w tabeli. Jego główną funkcją jest zapewnienie unikalności danych, co oznacza, że żaden z wierszy nie może mieć tej samej wartości klucza podstawowego. W praktyce często wykorzystuje się pole takie jak 'id', które jest autoinkrementowane, dzięki czemu każdy nowy rekord otrzymuje unikalny numer. Klucze podstawowe są kluczowe dla zapewnienia integralności referencyjnej – umożliwiają powiązanie danych z różnych tabel. Na przykład, w tabeli 'Klienci' możemy mieć klucz podstawowy 'KlientID', który jest następnie używany jako klucz obcy w tabeli 'Zamówienia', co pozwala na łatwe śledzenie zamówień przypisanych do konkretnego klienta. Dobrą praktyką jest także stosowanie kluczy podstawowych jako indeksów, co zwiększa wydajność zapytań w bazie danych. Ważne jest, aby klucz podstawowy był jak najbardziej stabilny i niezmienny w czasie, aby uniknąć problemów z integracją danych.

Pytanie 21

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. DELETE FROM zadania WHERE status = 'zamknięte';
B. TRUNCATE TABLE zadania WHERE status = 'zamknięte';
C. TRUNCATE TABLE zadania;
D. DELETE FROM zadania;

Brak odpowiedzi na to pytanie.

Wyjaśnienie poprawnej odpowiedzi:
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 22

Możliwość utworzenia konta użytkownika jan z hasłem janPass można osiągnąć przy pomocy polecenia

A. CREATE USER 'jan'@'localhost' IDENTIFIED BY 'janPass';
B. CREATE USER 'jan'@'localhost';
C. CREATE USER 'jan'@'localhost' PASSWORD EXPIRE;
D. CREATE USER 'jan'@'%localhost' IDENTIFIED VIA mysql_native_password USING 'janPass';

Brak odpowiedzi na to pytanie.

Wyjaśnienie poprawnej odpowiedzi:
Odpowiedź ta jest poprawna, ponieważ prawidłowo wykorzystuje składnię polecenia SQL do tworzenia użytkownika w bazie danych MySQL. Polecenie 'CREATE USER 'jan'@'localhost' IDENTIFIED BY 'janPass';' tworzy nowego użytkownika o nazwie 'jan' z hasłem 'janPass', które jest wymagane do autoryzacji. Użycie 'IDENTIFIED BY' jest zgodne z najlepszymi praktykami w zakresie bezpieczeństwa, ponieważ pozwala na bezpośrednie zdefiniowanie hasła w momencie tworzenia konta użytkownika. W praktyce, stworzenie użytkownika z odpowiednim hasłem jest kluczowym krokiem w zarządzaniu bazą danych, zwłaszcza w kontekście bezpieczeństwa danych. Umożliwia to ograniczenie dostępu do zasobów bazy danych tylko do autoryzowanych użytkowników. Dodatkowo, w codziennej pracy należy regularnie aktualizować hasła użytkowników oraz stosować złożone hasła, aby zwiększyć poziom bezpieczeństwa. Warto również zaznaczyć, że w nowoczesnych wersjach MySQL możliwe jest użycie dodatkowych opcji, takich jak 'REQUIRE SSL', dla podniesienia poziomu zabezpieczeń przy nawiązywaniu połączeń.

Pytanie 23

Wskaż PRAWIDŁOWE stwierdzenie dotyczące polecenia: CREATE TABLE IF NOT EXISTS ADRES(ulica VARCHAR(70) CHARACTER SET utf8);

A. IF NOT EXISTS jest stosowane opcjonalnie, aby upewnić się, że tabela nie istnieje już w bazie danych
B. Rekordem tabeli nie może być 3 MAJA
C. Klauzula CHARACTER SET utf8 jest wymagana
D. Do tabeli nie można wprowadzać ulic, które zawierają w nazwie polskie znaki

Brak odpowiedzi na to pytanie.

Wyjaśnienie poprawnej odpowiedzi:
Stwierdzenie, że 'IF NOT EXISTS' stosuje się opcjonalnie, aby upewnić się, że brak w bazie danych takiej tabeli, jest jak najbardziej prawdziwe. Klauzula ta jest używana w kontekście tworzenia tabel, aby uniknąć błędu, który wystąpiłby, gdyby tabela o tej samej nazwie już istniała. Dzięki temu programista może mieć pewność, że operacja tworzenia tabeli przebiegnie pomyślnie, bez konieczności wcześniejszego sprawdzania, czy tabela już istnieje. Przykładowo, w praktyce programistycznej, podczas automatyzacji skryptów do zarządzania bazami danych, często wykorzystuje się tę klauzulę, aby zapewnić, że skrypty są odporne na błędy wynikające z istniejących obiektów. Jest to zgodne z dobrymi praktykami w programowaniu baz danych, które koncentrują się na minimalizowaniu ryzyka i poprawie efektywności pracy.

Pytanie 24

ALTER TABLE transport MODIFY COLUMN rok_produkcji INT;
Wykonanie powyższej kwerendy SQL w bazie MySQL spowoduje:
A. usunięcie kolumny rok_produkcji w tabeli transport.
B. utworzenie tabeli transport zawierającej kolumnę rok_produkcji.
C. zmianę typu danych w kolumnie rok_produkcji na INT.
D. dodanie kolumny rok_produkcji typu INT w tabeli transport.

Brak odpowiedzi na to pytanie.

Wyjaśnienie poprawnej odpowiedzi:
Poprawnie – polecenie ALTER TABLE ... MODIFY COLUMN w MySQL służy do modyfikowania istniejącej kolumny, a nie do jej tworzenia czy usuwania. W podanym przykładzie baza danych szuka tabeli o nazwie `transport`, a następnie zmienia definicję kolumny `rok_produkcji` tak, aby jej typ danych był `INT`. Jeśli kolumna już istnieje (a musi istnieć, żeby MODIFY zadziałało), to po wykonaniu polecenia dalej będzie miała tę samą nazwę, ale jej typ i właściwości zostaną nadpisane nową definicją. W MySQL warto pamiętać, że przy MODIFY COLUMN trzeba podać pełną definicję kolumny, nie tylko sam typ. Czyli jeśli wcześniej była np. NOT NULL albo miała domyślną wartość, to dobra praktyka jest napisać coś w stylu: `ALTER TABLE transport MODIFY COLUMN rok_produkcji INT NOT NULL DEFAULT 2000;` – inaczej można przypadkiem zgubić część ustawień. W praktyce takie polecenia stosuje się przy zmianach w projekcie bazy: np. najpierw kolumna jest typu VARCHAR, bo ktoś przechowuje tam rok jako tekst, a potem, zgodnie z lepszymi zasadami projektowania, zmienia się to na typ liczbowy INT, żeby można było łatwo filtrować, sortować, robić warunki typu `WHERE rok_produkcji > 2015`. Z mojego doświadczenia dobrze jest przed taką zmianą sprawdzić, czy wszystkie dane da się bezpiecznie skonwertować na liczbę, bo jeśli w kolumnie są jakieś śmieciowe wartości tekstowe, to MySQL może je obciąć albo zamienić na 0, co później robi bałagan w raportach. W środowiskach produkcyjnych takie ALTER TABLE najlepiej wykonywać po zrobieniu kopii zapasowej i często w oknie serwisowym, bo przy dużych tabelach operacja może chwilowo blokować dostęp do danych.

Pytanie 25

Podano tabelę ksiazki z kolumnami: tytul, autor (w formacie tekstowym), cena (w formacie liczbowym). Aby zapytanie SELECT zwracało jedynie tytuły, dla których cena jest niższa niż 50zł, należy użyć:

A. SELECT * FROM ksiazki WHERE cena < 50
B. SELECT tytul FROM ksiazki WHERE cena > '50 zł'
C. SELECT ksiazki FROM tytul WHERE cena < '50 zł'
D. SELECT tytul FROM ksiazki WHERE cena < 50

Brak odpowiedzi na to pytanie.

Wyjaśnienie poprawnej odpowiedzi:
Odpowiedź 'SELECT tytul FROM ksiazki WHERE cena < 50;' jest poprawna, ponieważ precyzyjnie formułuje zapytanie w języku SQL, które ma na celu wyodrębnienie z tabeli 'ksiazki' tylko tych tytułów, których cena jest niższa niż 50. W tym przypadku użycie operatora porównania '<' skutkuje filtracją danych według określonego kryterium. Jest to zgodne z dobrą praktyką w programowaniu baz danych, ponieważ pozwala uzyskać potrzebne informacje w sposób efektywny i zrozumiały. Przykładem praktycznego zastosowania może być stworzenie raportu dla księgarni, która chce zobaczyć, które książki są w sprzedaży w przystępnej cenie. Zwracając tylko potrzebne kolumny (tytuł), minimalizujesz ilość przesyłanych danych, co jest ważne w kontekście wydajności i szybkości działania aplikacji korzystających z bazy danych. Dodatkowo, unikanie podawania ceny w formacie tekstowym (np. '50 zł') jest zgodne z zasadami dobrego projektowania baz danych, które zalecają stosowanie odpowiednich typów danych, co w tym przypadku oznacza liczbę bez jednostki walutowej.

Pytanie 26

W bazach danych typ DECIMAL jest przeznaczony do przechowywania

A. liczb rzeczywistych stałoprzecinkowych.
B. danych napisowych o określonej długości.
C. liczb zapisanych w systemie binarnym.
D. liczb rzeczywistych zmiennoprzecinkowych.

Brak odpowiedzi na to pytanie.

Wyjaśnienie poprawnej odpowiedzi:
Poprawnie – typ DECIMAL w bazach danych jest przeznaczony do przechowywania liczb rzeczywistych stałoprzecinkowych, czyli takich, gdzie liczba miejsc po przecinku jest z góry określona i zawsze dokładnie reprezentowana. W definicji kolumny podajemy zwykle dwa parametry, np. DECIMAL(10,2), gdzie 10 to całkowita liczba cyfr, a 2 to liczba cyfr po przecinku. Dzięki temu baza wie, że np. wartość 1234,50 będzie przechowywana bez zaokrągleń binarnych, które występują w typach zmiennoprzecinkowych (FLOAT, DOUBLE). To jest kluczowe w zastosowaniach finansowych: kwoty pieniędzy, stawki VAT, kursy walut, limity kredytowe, rozliczenia magazynowe. W takich miejscach nawet jeden grosz różnicy przy dużej liczbie operacji potrafi narobić bałaganu. Moim zdaniem w projektach produkcyjnych dobra praktyka jest taka, że wszystko, co ma sens biznesowy jako „kwota”, „saldo”, „cena jednostkowa”, „rabat procentowy z dokładnością do dwóch lub czterech miejsc” trzymamy właśnie w DECIMAL/NUMERIC, a nie w FLOAT. Standard SQL definiuje typy DECIMAL i NUMERIC jako typy dokładne (exact numeric), co oznacza, że operacje arytmetyczne na nich są przewidywalne i nie generują dziwnych ogonków typu 1.199999999 zamiast 1.2. W wielu silnikach (MySQL, PostgreSQL, SQL Server) DECIMAL jest implementowany wewnętrznie jako zapis dziesiętny, często podobny do „dużej liczby całkowitej” z wirtualnym przecinkiem w określonym miejscu. Dobrą praktyką jest też dobór precyzji z zapasem, np. DECIMAL(18,4) dla kwot w systemach księgowych, żeby uniknąć przepełnień przy większych sumach. W praktyce webowej, gdy aplikacja PHP czy JavaScript komunikuje się z bazą, to właśnie typ DECIMAL pozwala zachować spójność między tym, co widzi użytkownik na formularzu, a tym, co finalnie zapisuje się w tabeli – bez ukrytych błędów zaokrągleń.

Pytanie 27

Wskaż właściwą zasadę odnoszącą się do integralności danych w bazie danych?

A. pole klucza podstawowego nie powinno być puste
B. pole klucza podstawowego musi mieć utworzony indeks
C. pole klucza obcego nie powinno być puste
D. w relacji 1..n pole klucza obcego łączy się z polem klucza podstawowego innej tabeli

Brak odpowiedzi na to pytanie.

Wyjaśnienie poprawnej odpowiedzi:
Pole klucza podstawowego w tabeli bazy danych jest fundamentalnym elementem struktury relacyjnej. Jego główną rolą jest zapewnienie unikalności każdego rekordu w tabeli oraz umożliwienie jednoznacznej identyfikacji. Zgodnie z zasadami spójności danych w bazach danych, pole klucza podstawowego nie może być puste (NULL), ponieważ brak wartości w tym polu uniemożliwi skuteczne i jednoznaczne zidentyfikowanie rekordu. Na przykład, w tabeli 'Klienci', gdzie 'ID_Klienta' jest kluczem podstawowym, każde 'ID_Klienta' musi być unikalne i nie może być puste, aby uniknąć niejednoznaczności podczas wyszukiwania lub modyfikacji danych. Praktyczne zastosowanie tej zasady w projektowaniu baz danych prowadzi do zwiększenia integralności i spójności danych, co jest zgodne z normami, takimi jak ACID (Atomicity, Consistency, Isolation, Durability). Dbałość o poprawność kluczy podstawowych to kluczowy element w tworzeniu wydajnych i niezawodnych systemów baz danych.

Pytanie 28

Tworząc raport w systemie zarządzania relacyjnymi bazami danych, umożliwia się

A. dodawanie danych do tabel
B. aktualizowanie danych w tabelach
C. usuwanie danych z tabel
D. analizę wybranych danych

Brak odpowiedzi na to pytanie.

Wyjaśnienie poprawnej odpowiedzi:
Analiza wybranych danych w systemie obsługi relacyjnych baz danych jest kluczowym aspektem raportowania. Umożliwia to zrozumienie wzorców i trendów, co jest niezbędne dla podejmowania świadomych decyzji biznesowych. Poprzez odpowiednie zapytania SQL, użytkownicy mogą selektywnie wybierać dane, które są dla nich istotne, a następnie przetwarzać je w celu generowania raportów. Przykładem może być analiza sprzedaży w danym okresie czasu, co pozwala na identyfikację najlepiej sprzedających się produktów. Praktyczne zastosowanie raportów obejmuje również monitoring efektywności działań marketingowych, co jest zgodne z najlepszymi praktykami w dziedzinie zarządzania danymi. W kontekście standardów branżowych, raportowanie powinno opierać się na zasadzie przejrzystości, co oznacza, że użytkownicy powinni mieć łatwy dostęp do zrozumiałych i czytelnych wyników analizy. Umożliwia to nie tylko identyfikację problemów, ale również wykorzystanie danych do prognozowania i planowania przyszłych działań.

Pytanie 29

Funkcja agregująca MIN w SQL ma na celu obliczenie

A. liczby wierszy, które zostały zwrócone przez kwerendę
B. wartości najmniejszej w kolumnie wynikowej kwerendy
C. długości tekstu w rekordach zwróconych przez kwerendę
D. średniej wartości różnych pól w rekordzie zwróconym przez zapytanie

Brak odpowiedzi na to pytanie.

Wyjaśnienie poprawnej odpowiedzi:
Funkcja agregująca MIN w języku SQL służy do obliczania wartości minimalnej w kolumnie zwróconej przez kwerendę. Działa ona na zbiorze rekordów i zwraca najmniejszą wartość spośród wartości znalezionych w specyfikowanej kolumnie. Przykładowo, jeśli w naszej bazie danych mamy tabelę 'Pracownicy' z kolumną 'Wynagrodzenie', zapytanie SQL 'SELECT MIN(Wynagrodzenie) FROM Pracownicy;' zwróci najniższe wynagrodzenie wśród wszystkich pracowników. Funkcja ta jest niezwykle przydatna w analizie danych, gdzie często chcemy zidentyfikować najniższe wartości, na przykład w raportach finansowych czy w analizach jakości danych. Dobrze jest też pamiętać, że MIN może być używana w połączeniu z klauzulą GROUP BY, co pozwala na uzyskanie minimalnych wartości w podgrupach danych, co jest standardem w analityce danych w SQL.

Pytanie 30

Które z komend przyznaje najniższy poziom uprawnień dla użytkownika uczen w zakresie modyfikacji danych oraz struktury tabeli?

A. GRANT SELECT ON szkola.przedmioty TO uczen
B. DRANT DROP ON szkola.przedmioty TO uczen
C. GRANT INSERT, DROP ON szkola.przedmioty TO uczen
D. GRANT ALTER, SELECT ON szkola.przedmioty TO uczen

Brak odpowiedzi na to pytanie.

Wyjaśnienie poprawnej odpowiedzi:
W kontekście zarządzania uprawnieniami w systemach baz danych, polecenie GRANT SELECT ON szkola.przedmioty TO uczen przyznaje użytkownikowi uczeń jedynie prawo do odczytu danych z tabeli 'przedmioty' w schemacie 'szkola'. Oznacza to, że uczeń może wykonywać zapytania SELECT, aby uzyskać dostęp do danych, ale nie ma możliwości ich modyfikacji ani wpływania na strukturę tabeli. W praktyce, użytkownicy z takim poziomem uprawnień są ograniczeni do przeglądania zawartości tabeli, co minimalizuje ryzyko przypadkowego (lub celowego) usunięcia, zmiany lub dodania danych. W kontekście standardów zabezpieczeń w bazach danych, nadawanie minimalnych uprawnień zgodnie z zasadą najmniejszych uprawnień jest kluczowe dla ochrony integralności danych. Przykładowo, w systemach edukacyjnych, uczniowie powinni mieć dostęp do swoich ocen, ale nie powinni mieć możliwości ich zmian, co jest realizowane poprzez nadanie uprawnień SELECT. W ten sposób instytucje mogą zapewnić bezpieczeństwo danych, jednocześnie umożliwiając użytkownikom dostęp do informacji, które są im potrzebne.

Pytanie 31

W celu wykonania kopii bazy danych biblioteka w systemie MySQL należy w konsoli użyć polecenia

A. mysqldump -u root biblioteka > kopia.sql
B. mysqlduplicate –u root biblioteka > kopia.sql
C. backupmysql -u root biblioteka kopia.sql
D. copymysql –u root biblioteka kopia.sql

Brak odpowiedzi na to pytanie.

Wyjaśnienie poprawnej odpowiedzi:
Poprawne polecenie do wykonania kopii bazy danych MySQL to „mysqldump -u root biblioteka > kopia.sql”. Narzędzie mysqldump jest oficjalnym, standardowym programem dostarczanym razem z serwerem MySQL i właśnie ono służy do tworzenia logicznych kopii zapasowych baz danych. Działa tak, że łączy się z serwerem MySQL, odczytuje strukturę tabel oraz dane, a następnie generuje plik tekstowy zawierający instrukcje SQL typu CREATE TABLE i INSERT. Taki plik można potem w prosty sposób wgrać z powrotem, np. poleceniem „mysql -u root biblioteka < kopia.sql”. To jest bardzo wygodne w praktyce, bo backup jest przenośny między serwerami, wersjami MySQL, a nawet można go edytować ręcznie w razie potrzeby. W tym poleceniu „-u root” oznacza użytkownika bazy danych, czyli logujemy się jako użytkownik root. W realnym środowisku produkcyjnym zwykle używa się konta z mniejszymi uprawnieniami i dodatkowo opcji „-p”, żeby podać hasło (np. „mysqldump -u backup_user -p biblioteka > kopia.sql”). Nazwa „biblioteka” to nazwa bazy, którą archiwizujemy. Znak „>” to przekierowanie powłoki systemowej (bash, cmd itp.), które zapisuje wynik działania programu mysqldump do pliku „kopia.sql” zamiast wypisywać go na ekran. To przekierowanie nie jest częścią MySQL, tylko mechanizmem systemu operacyjnego, co czasem bywa mylące dla początkujących. Moim zdaniem warto od razu wyrabiać sobie dobre nawyki: używać mysqldump regularnie, najlepiej w skryptach cron (Linux) lub Harmonogramie zadań (Windows), trzymać kopie na innym serwerze i testować odtwarzanie. W praktyce administracji serwerami i bezpieczeństwa danych takie kopie logiczne są podstawą procedur disaster recovery. W dokumentacji MySQL mysqldump jest wymieniony jako jedno z głównych narzędzi do backupu i migracji baz danych, więc znajomość dokładnie tego polecenia to absolutna podstawa pracy z MySQL w środowiskach webowych i nie tylko.

Pytanie 32

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 id, imie, nazwisko, data_ur FROM uczniowie WHERE data_ur like "2001-*-*"
B. SELECT * FROM uczniowie WHERE data_ur like "2001"
C. SELECT imie, nazwisko FROM uczniowie WHERE data_ur like "2001-%-%"
D. SELECT * FROM uczniowie WHERE data_ur == 2001-%-%

Brak odpowiedzi na to pytanie.

Wyjaśnienie poprawnej odpowiedzi:
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 33

Poziom izolacji transakcji Repeatable Read (tryb powtarzalnego odczytu) używany przez MS SQL jest związany z problemem

A. niepowtarzalnych odczytów
B. utraty aktualizacji
C. brudnych odczytów
D. odczytów widm

Brak odpowiedzi na to pytanie.

Wyjaśnienie poprawnej odpowiedzi:
Odpowiedź 'odczytów widm' jest właściwa, ponieważ poziom izolacji transakcji Repeatable Read zapobiega brudnym odczytom i niepowtarzalnym odczytom, ale nie rozwiązuje problemu odczytów widm. Odczyty widmowe występują, gdy w czasie trwania transakcji inne transakcje mogą dodać nowe wiersze, które spełniają kryteria zapytania tej transakcji, co prowadzi do sytuacji, w której transakcja widzi różne dane w kolejnych odczytach. W praktyce, implementując poziom izolacji Repeatable Read, aplikacje muszą być świadome tego, że mogą wystąpić takie sytuacje, co może prowadzić do nieprzewidywalnych wyników. Przykładowo, jeśli jedna transakcja odczytuje zestaw danych, a inna transakcja w międzyczasie dodaje nowe rekordy, to podczas kolejnego odczytu pierwsza transakcja może zobaczyć te nowe rekordy, co jest problemem. Z tego powodu standardy i dobre praktyki w projektowaniu aplikacji bazodanowych zalecają używanie bardziej ścisłych poziomów izolacji, takich jak Serializable, kiedy to konieczne, aby uniknąć takich problemów. Warto zwrócić uwagę, że stosowanie odpowiednich poziomów izolacji jest kluczowe dla zapewnienia spójności i integralności danych, co jest niezbędne w większości nowoczesnych aplikacji bazodanowych.

Pytanie 34

Jakie polecenie wydane z terminala systemu operacyjnego, które zawiera opcję --repair, pozwala na naprawę bazy danych?

A. truncate
B. mysqldump
C. mysqlcheck
D. create

Brak odpowiedzi na to pytanie.

Wyjaśnienie poprawnej odpowiedzi:
Polecenie mysqlcheck jest narzędziem dostarczanym przez system zarządzania bazami danych MySQL, które służy do sprawdzania, naprawiania i optymalizowania tabel w bazach danych. Opcja --repair w tym kontekście umożliwia automatyczne naprawienie uszkodzonych tabel, co jest istotne dla zachowania integralności danych. Użytkownicy mogą zastosować to polecenie w sytuacjach, gdy występują problemy z danymi, na przykład po awarii systemu lub nieprawidłowym zamknięciu serwera. Przykład użycia to: 'mysqlcheck --repair --databases nazwa_bazy', co sprawia, że narzędzie automatycznie przeszuka wszystkie tabele w danej bazie i podejmie próby ich naprawy. Warto również zauważyć, że mysqlcheck pozwala na optymalizację tabel, co może przyspieszyć działanie bazy danych. W kontekście standardów, MySQL jako jeden z najpopularniejszych systemów bazodanowych jest szeroko stosowany w różnych aplikacjach, co czyni to narzędzie niezbędnym dla administratorów baz danych.

Pytanie 35

Podane w ramce polecenie SQL ma za zadanie

UPDATE Uczen SET id_klasy = id_klasy + 1;
A. zwiększyć o jeden wartość w kolumnie id_klasy dla wszystkich rekordów tabeli Uczen
B. ustawić wartość pola id_klasy na 1 dla wszystkich rekordów tabeli Uczen
C. zwiększyć o jeden wartość pola id_klasy w jednym rekordzie tabeli Uczen
D. ustawić wartość w kolumnie id_klasy na 1 dla wszystkich rekordów tabeli Uczen

Brak odpowiedzi na to pytanie.

Wyjaśnienie poprawnej odpowiedzi:
Polecenie SQL UPDATE Uczen SET id_klasy = id_klasy + 1; modyfikuje wszystkie rekordy w tabeli Uczen, bo nie ma w nim klauzuli WHERE. To jest kluczowa rzecz: brak WHERE oznacza, że polecenie dotyczy całej tabeli, a nie pojedynczego wiersza. Wyrażenie id_klasy = id_klasy + 1 oznacza aktualizację kolumny na podstawie jej dotychczasowej wartości – po prostu dodajemy 1 do obecnej wartości w każdej krotce. Nie ustawiamy stałej wartości, tylko wykonujemy operację arytmetyczną na kolumnie. W praktyce taki zapis stosuje się np. gdy chcemy przesunąć identyfikatory klas, zmienić numerację poziomów, podnieść wszystkim uczniom numer semestru albo zaktualizować jakiś licznik. W SQL to bardzo typowy wzorzec: UPDATE tabela SET kolumna = kolumna + wartość WHERE warunek; i w dobrych praktykach zawsze pilnuje się, żeby świadomie używać lub pomijać WHERE. Administratorzy baz danych zwykle wręcz powtarzają zasadę: przed uruchomieniem UPDATE bez WHERE zastanów się dwa razy, czy na pewno chcesz zmienić wszystkie wiersze. Moim zdaniem warto zapamiętać dwie rzeczy: po pierwsze, UPDATE bez WHERE = aktualizacja wszystkich rekordów; po drugie, po lewej stronie znaku równości zawsze jest nazwa kolumny, którą zmieniamy, a po prawej – wyrażenie, z którego zostanie policzona nowa wartość. To wyrażenie może używać starej wartości tej samej kolumny, tak jak tutaj. W wielu systemach bazodanowych (np. MySQL, PostgreSQL, SQL Server) ta konstrukcja działa identycznie, więc to taki uniwersalny, standardowy zapis, zgodny z ogólnymi zasadami języka SQL.

Pytanie 36

Kwerenda umożliwiająca modyfikację wielu rekordów lub przeniesienie ich przy pomocy jednego działania, określana jest jako kwerenda

A. wybierająca
B. krzyżowej
C. parametrycznej
D. funkcjonalnej

Brak odpowiedzi na to pytanie.

Wyjaśnienie poprawnej odpowiedzi:
Kwerenda funkcjonalna to naprawdę przydatne narzędzie w bazach danych, które pozwala na wprowadzanie zmian w wielu rekordach na raz. To świetnie działa, jeśli masz dużo danych do przetworzenia, bo oszczędza czas i zasoby. Przykładem, który przychodzi mi do głowy, jest aktualizacja statusu zamówień w sklepie online. Można na przykład zmienić wszystkie zamówienia z "oczekujące" na "zrealizowane" jednym kliknięciem. To jest zgodne z dobrymi praktykami zarządzania danymi, bo utrzymuje porządek i spójność. A jeśli mówimy o standardach, kwerendy funkcjonalne są zgodne z SQL i jego różnymi rozszerzeniami, co ułatwia integrację z innymi systemami. Ważne jest tylko, żeby dobrze zabezpieczać dane, by przypadkiem nie usunąć lub nie zmienić czegoś ważnego. W branży często podkreśla się, że trzeba testować i walidować operacje na bazach, żeby wszystko działało jak należy.

Pytanie 37

Przedstawione zapytanie SQL przydziela uprawnienie SELECT

GRANT SELECT ON hurtownia.*
TO 'sprzedawca'@'localhost';
A. dla użytkownika root na serwerze sprzedawca
B. do wszystkich tabel w bazie hurtownia
C. do wszystkich kolumn w tabeli hurtownia
D. dla użytkownika root na serwerze localhost

Brak odpowiedzi na to pytanie.

Wyjaśnienie poprawnej odpowiedzi:
Polecenie GRANT SELECT ON hurtownia.* pozwala na przyznanie prawa do wykonywania operacji SELECT na wszystkich tabelach w bazie danych hurtownia. Użycie symbolu * po nazwie bazy danych wskazuje na wszystkie tabele w tej konkretnej bazie. Jest to standardowe podejście w systemach zarządzania bazami danych takich jak MySQL, gdzie specyfikacja bazy danych z symbolem * oznacza pełny zakres tabel. Praktycznie oznacza to, że użytkownik ma możliwość przeglądania danych ze wszystkich tabel bez możliwości modyfikacji czy usuwania danych. Takie rozwiązanie stosowane jest często w przypadku ról użytkowników, którzy potrzebują jedynie dostępu do raportowania i analizy danych. Dobre praktyki w zakresie zarządzania uprawnieniami zalecają przydzielanie dokładnie takich praw, jakie są potrzebne do wykonania określonych zadań, co ogranicza ryzyko niepożądanych zmian w bazie danych. Warto zaznaczyć, że precyzyjne zarządzanie prawami dostępu jest kluczowe dla bezpieczeństwa danych w każdej organizacji.

Pytanie 38

Które z poniższych poleceń przyznaje użytkownikowi uczen najniższy poziom uprawnień w zakresie zmiany danych i struktury tabel?

A. GRANT INSERT, DROP ON szkola.przedmioty TO uczen;
B. GRANT ALTER, SELECT ON szkola.przedmioty TO uczen;
C. GRANT SELECT ON szkola.przedmioty TO uczen;
D. GRANT DROP ON szkola.przedmioty TO uczen;

Brak odpowiedzi na to pytanie.

Wyjaśnienie poprawnej odpowiedzi:
Odpowiedź GRANT SELECT ON szkola.przedmioty TO uczen jest poprawna, ponieważ przyznaje użytkownikowi 'uczen' jedynie uprawnienia do odczytu danych w tabeli 'przedmioty' w bazie danych 'szkola'. Uprawnienia SELECT pozwalają na przeglądanie danych, co jest istotne w kontekście nauki czy oceny przedmiotów, ale nie zezwalają na modyfikację danych ani na zmiany w strukturze tabeli. To podejście jest zgodne z zasadą minimalnych uprawnień, co oznacza, że użytkownik powinien mieć tylko te uprawnienia, które są niezbędne do wykonania swoich zadań. W praktyce, przyznawanie tylko uprawnień SELECT jest szczególnie ważne w środowiskach edukacyjnych, gdzie chcemy zapewnić uczniom dostęp do informacji, ale jednocześnie chronić integralność danych. W kontekście dobrych praktyk, ograniczenie dostępu do danych wrażliwych jest kluczowe, a nadawanie zbyt szerokich uprawnień może prowadzić do nieautoryzowanych zmian lub utraty danych.

Pytanie 39

Jakie są wyniki wykonania zapytania SQL?

SELECT count(*) FROM Uczniowie WHERE srednia=5;
A. suma ocen uczniów z średnią 5
B. średnia wszystkich ocen uczniów
C. ilość uczniów, których średnia ocen wynosi 5
D. łączna liczba uczniów

Brak odpowiedzi na to pytanie.

Wyjaśnienie poprawnej odpowiedzi:
Zapytanie SQL używa funkcji COUNT aby policzyć liczbę rekordów w tabeli Uczniowie spełniających warunek srednia=5 Klauzula WHERE ogranicza zestaw zliczanych rekordów do tych gdzie średnia ocen ucznia wynosi dokładnie 5 W efekcie wynik zapytania odpowiada liczbie uczniów mających średnią ocen równą 5 Takie podejście jest powszechnie stosowane w analizie danych gdzie wymagane jest określenie liczby jednostek spełniających konkretne kryteria Zastosowanie COUNT w połączeniu z WHERE umożliwia precyzyjną kontrolę nad analizowanym zbiorem danych co jest standardem w wielu systemach bazodanowych Praktyczne zastosowanie tej techniki można spotkać w raportowaniu wyników nauczania generowaniu statystyk czy w analizach biznesowych gdzie kluczowe jest zrozumienie struktury i charakterystyki danych Zapytanie to ilustruje dobrą praktykę pracy z bazami danych polegającą na efektywnym i precyzyjnym formułowaniu zapytań w celu uzyskania wartościowych i precyzyjnych informacji

Pytanie 40

Istnieje tabela programisci z polami: id, nick, ilosc_kodu, ocena. Wartość w polu ilosc_kodu przedstawia liczbę linii kodu, które dany programista stworzył w określonym miesiącu. Aby obliczyć całkowitą liczbę linii kodu napisanych przez wszystkich programistów, należy zastosować następujące polecenie

A. SELECT COUNT(programisci) FROM ilosc_kodu;
B. SELECT SUM(ocena) FROM ilosc_kodu;
C. SELECT SUM(ilosc_kodu) FROM programisci;
D. SELECT MAX(ilosc_kodu) FROM programisci;

Brak odpowiedzi na to pytanie.

Wyjaśnienie poprawnej odpowiedzi:
Poprawna odpowiedź to "SELECT SUM(ilosc_kodu) FROM programisci;" ponieważ to zapytanie dokładnie ilustruje, jak można obliczyć sumę wszystkich linii kodu napisanych przez programistów. Funkcja agregująca SUM() służy do sumowania wartości w podanym polu, które w tym przypadku jest polem "ilosc_kodu". W kontekście relacyjnych baz danych, stosowanie funkcji agregujących jest kluczowe do analizy danych w sposób statystyczny. W praktyce, takie zapytanie może być przydatne w raportach dotyczących wydajności zespołu programistycznego, gdzie analiza sumy napisanych linii kodu pozwala na ocenę produktywności oraz identyfikację programistów, którzy mogą potrzebować wsparcia w realizacji zadań. Ponadto, zgodnie z najlepszymi praktykami SQL, warto być świadomym kontekstu zapytań, a dobór odpowiednich funkcji agregujących, takich jak SUM(), COUNT(), AVG() itp., jest niezbędny do efektywnego przetwarzania danych.