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

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

Aby baza danych działała poprawnie i konsekwentnie, konieczne jest wprowadzenie w każdej tabeli

A. klucza FOREIGN KEY z wartością NOT NULL
B. klucza obcego z wartością NOT NULL i UNIQUE
C. kluczy PRIMARY KEY i FOREIGN KEY
D. klucza PRIMARY KEY z wartością NOT NULL i UNIQUE
W kontekście baz danych, klucz PRIMARY KEY jest fundamentalnym elementem struktury każdej tabeli, ponieważ zapewnia unikalną identyfikację rekordów. Klucz ten musi spełniać dwie podstawowe zasady: być unikalny oraz nie pozwalać na wartości NULL. Dzięki temu każda linia w tabeli może być jednoznacznie zidentyfikowana, co jest niezbędne do zapewnienia integralności danych oraz efektywności operacji CRUD (tworzenie, odczyt, aktualizacja, usuwanie). Przykładem zastosowania klucza PRIMARY KEY może być tabela 'Użytkownicy', w której kolumna 'ID_Użytkownika' pełni rolę klucza głównego, zapewniając, że każdy użytkownik ma unikalny identyfikator. Wartości NULL w kluczu głównym byłyby problematyczne, ponieważ uniemożliwiałyby identyfikację danego rekordu. Dodatkowo, klucz ten może być użyty w relacjach między tabelami, gdzie klucz FOREIGN KEY w innej tabeli nawiązuje do PRIMARY KEY, tworząc spójną strukturę danych. Ustanawiając klucz PRIMARY KEY, projektanci baz danych mogą również efektywnie korzystać z indeksów, co przyspiesza operacje wyszukiwania oraz zwiększa wydajność bazy danych.

Pytanie 2

Podaj polecenie SQL, które pozwoli na dodanie kolumny miesiacSiewu do tabeli rośliny znajdującej się w bazie danych

A. CREATE TABLE rośliny {miesiacSiewu int};
B. UPDATE rośliny ADD miesiacSiewu int;
C. ALTER TABLE rośliny ADD miesiacSiewu int;
D. INSERT INTO rośliny VALUES (miesiacSiewu int);
Inne odpowiedzi nie są poprawne z paru powodów. Na przykład, 'CREATE TABLE rośliny {miesiacSiewu int};' jest błędne, bo komenda 'CREATE TABLE' służy do tworzenia nowych tabel, nie do zmieniania istniejących. To może wprowadzać w błąd co do podstaw SQL, bo 'CREATE' nie działa w kontekście dodawania kolumn do już istniejącej tabeli. Z kolei 'INSERT INTO rośliny VALUES (miesiacSiewu int);' dotyczy dodawania danych, a nie zmiany struktury. To częsty błąd, gdy ktoś myli dodawanie nowych danych z dodawaniem kolumn, co pokazuje, że nie do końca rozumie różnicę między DDL (Data Definition Language) a DML (Data Manipulation Language). A 'UPDATE rośliny ADD miesiacSiewu int;' też nie ma sensu, bo komenda UPDATE jest do aktualizacji danych, a nie do zmiany struktury tabeli. Takie pomyłki mogą wkurzać i sprawiać problemy z bazami danych, dlatego warto mieć dobrą wiedzę o poleceniach SQL i ich zastosowaniach.

Pytanie 3

Proces przetwarzania sygnału wejściowego w czasie, wykorzystujący zasadę superpozycji, jest związany z filtrem

A. niezmiennym w czasie
B. przyczynowym
C. o skończonej odpowiedzi impulsowej
D. liniowym
Filtr liniowy to taki, który w procesie przetwarzania sygnału spełnia zasadę superpozycji. Oznacza to, że wynik działania filtru na sumie sygnałów wejściowych jest równy sumie wyników działania filtru na poszczególne sygnały. W praktyce, filtry liniowe są powszechnie stosowane w różnych zastosowaniach, takich jak audio, telekomunikacja czy przetwarzanie obrazu, co wynika z ich zdolności do efektywnej analizy sygnałów. Przykładowo, w systemach audio, filtry liniowe mogą być używane do eliminacji szumów czy wzmacniania określonych częstotliwości, co pozwala na uzyskanie lepszej jakości dźwięku. Zgodnie z dobrą praktyką inżynieryjną, projektowanie filtrów liniowych opiera się na zrozumieniu ich charakterystyki częstotliwościowej oraz odpowiedzi impulsowej, co jest kluczowe dla osiągnięcia zamierzonych efektów w przetwarzaniu sygnałów.

Pytanie 4

W języku PHP, przy pracy z bazą MySQL, aby zakończyć sesję z bazą, należy wywołać

A. mysqli_exit()
B. mysqli_close()
C. mysqli_rollback()
D. mysqli_commit()
Odpowiedź mysqli_close() jest prawidłowa, ponieważ ta funkcja jest używana do zamknięcia połączenia z bazą danych MySQL w języku PHP. Po zakończeniu wszystkich operacji na bazie danych, zaleca się wywołanie tej funkcji, aby zwolnić zasoby systemowe oraz zamknąć połączenie, co jest zgodne z dobrymi praktykami programistycznymi. Użycie mysqli_close() jest istotne, ponieważ niezamknięte połączenia mogą prowadzić do wycieków pamięci i wyczerpania dostępnych zasobów, co z kolei może wpłynąć na wydajność aplikacji. W praktyce, jeśli mamy otwarte połączenie z bazą danych, po zakończeniu operacji, takich jak pobieranie lub wstawianie danych, używamy mysqli_close($connection), gdzie $connection to nasza zmienna reprezentująca połączenie. Oprócz tego, pamiętajmy, że dbanie o odpowiednie zarządzanie połączeniami ma kluczowe znaczenie dla bezpieczeństwa i stabilności naszych aplikacji.

Pytanie 5

Obiekt bazy danych, którego głównym przeznaczeniem jest drukowanie lub wyświetlanie zestawień danych, to

A. raport.
B. makro.
C. moduł.
D. formularz.
Poprawna odpowiedź to „raport”, bo właśnie ten obiekt bazy danych jest przeznaczony typowo do estetycznego drukowania lub wyświetlania gotowych zestawień danych. W typowych systemach bazodanowych, takich jak Microsoft Access czy różne narzędzia klasy RAD, formularze służą głównie do wprowadzania i edycji danych, kwerendy do ich wyszukiwania i filtrowania, a raporty do prezentacji wyników w uporządkowanej, czytelnej formie. Raport ma własny projekt układu: nagłówki, stopki, grupowanie po polach (np. po kliencie, dacie, dziale), sumy częściowe i końcowe, numerację stron, a często także pola obliczeniowe. To jest dokładnie to, czego potrzebujemy, gdy chcemy przygotować np. wydruk faktur, miesięczne zestawienie sprzedaży, raport obecności pracowników albo raport kasowy do działu księgowości. Z mojego doświadczenia raport traktuje się jako końcowy produkt pracy z danymi – użytkownika końcowego zwykle nie interesują tabele czy relacje, tylko czy dostanie przejrzysty wydruk lub PDF, który można wysłać dalej. Dobre praktyki mówią, żeby w raportach nie upychać logiki biznesowej ani skomplikowanych obliczeń, tylko oprzeć je na dobrze przygotowanych kwerendach. Raport powinien być możliwie prosty, czytelny i stabilny – tak, żeby zmiana sposobu liczenia odbywała się w warstwie zapytań, a nie w każdym raporcie osobno. W narzędziach BI (np. Power BI, Tableau, ale też klasyczne Crystal Reports) idea jest podobna: raport to warstwa prezentacji, która korzysta z danych z bazy, modelu analitycznego albo widoków SQL. W praktyce w firmach raporty są podstawą podejmowania decyzji, więc poprawne zrozumienie ich roli w bazie danych jest naprawdę kluczowe.

Pytanie 6

Jaki typ powinien być wykorzystany, aby pole danych mogło przyjmować liczby zmiennoprzecinkowe?

A. CHAR
B. INT
C. VARCHAR
D. FLOAT

Brak odpowiedzi na to pytanie.

Wyjaśnienie poprawnej odpowiedzi:
Typ danych FLOAT jest idealnym rozwiązaniem do przechowywania liczb rzeczywistych, ponieważ umożliwia reprezentację wartości z przecinkiem dziesiętnym. W przeciwieństwie do typu INT, który obsługuje jedynie liczby całkowite, FLOAT potrafi przechowywać znacznie szerszy zakres wartości, w tym liczby z miejscami po przecinku. Użycie typu FLOAT jest szczególnie korzystne w aplikacjach wymagających precyzyjnych obliczeń, takich jak kalkulatory, systemy finansowe czy analizy danych. Przykładowo, w systemach baz danych SQL, definiując kolumnę jako FLOAT, możemy przechowywać wartości takie jak 3.14, -0.001 lub 2.71828. Standard SQL określa, że FLOAT może posiadać różne precyzje, co pozwala na dostosowanie pamięci do potrzeb konkretnej aplikacji. W praktyce, FLOAT jest wykorzystywany w złożonych obliczeniach inżynieryjnych, gdzie precyzyjne wartości są kluczowe dla wyników obliczeń.

Pytanie 7

Jakie narzędzie pozwala na zaimportowanie pliku z danymi SQL do bazy danych MySQL?

A. phpMyAdmin
B. FileZilla
C. TotalCommander
D. Symfony 3

Brak odpowiedzi na to pytanie.

Wyjaśnienie poprawnej odpowiedzi:
phpMyAdmin to popularne narzędzie webowe, które umożliwia zarządzanie bazami danych MySQL i MariaDB. Dzięki phpMyAdmin można łatwo importować pliki z danymi SQL do bazy danych. Proces importu jest prosty: wystarczy zalogować się do phpMyAdmin, wybrać odpowiednią bazę danych, a następnie skorzystać z opcji 'Import'. Użytkownik może wskazać plik SQL, który chce zaimportować, a phpMyAdmin zadba o resztę. To narzędzie obsługuje różne formaty plików, w tym .sql, co czyni je wszechstronnym rozwiązaniem. Dodatkowo, phpMyAdmin oferuje funkcje umożliwiające zarządzanie strukturą tabel, przeglądanie danych, a także eksportowanie danych do różnych formatów. Narzędzie to jest zgodne z międzynarodowymi standardami bezpieczeństwa i dostępności, co czyni je popularnym wyborem wśród programistów i administratorów baz danych. Przykładem użycia może być migracja danych z lokalnego środowiska deweloperskiego do produkcyjnego, gdzie import danych SQL jest kluczowym krokiem w procesie wdrożenia.

Pytanie 8

Aby utworzyć relację wiele do wielu pomiędzy tabelami A i B, należy

A. tabela A będzie miała identyczne pola jak tabela B
B. wprowadzić trzecią tabelę zawierającą klucze obce do tabel A i B
C. wiele wpisów z tabeli A zduplikuje się w tabeli B
D. tabelę A połączyć z tabelą B przez utworzenie kluczy obcych

Brak odpowiedzi na to pytanie.

Wyjaśnienie poprawnej odpowiedzi:
Aby stworzyć relację wiele do wielu między dwiema tabelami, w rzeczywistości wymagana jest dodatkowa tabela, nazywana tabelą pośrednią lub łączącą. Tabela ta zawiera klucze obce, które wskazują na klucze główne w tabelach A i B. Dzięki temu możliwe jest powiązanie wielu rekordów z tabeli A z wieloma rekordami z tabeli B. Na przykład, jeśli mamy tabelę 'Studenci' i tabelę 'Kursy', to aby zrealizować relację wiele do wielu, tworzymy tabelę 'Zapisani', która zawiera kolumny 'StudentID' i 'KursID'. W ten sposób możemy zarejestrować, że jeden student może być zapisany na wiele kursów, a jeden kurs może być uczęszczany przez wielu studentów. Taki model danych jest zgodny z zasadami normalizacji bazy danych i pozwala na efektywne zarządzanie danymi oraz unikanie redundancji.

Pytanie 9

Baza danych gromadzi dane multimedialne, co wiąże się z koniecznością przechowywania znacznych ilości danych binarnych. Jakiego typu należy użyć dla takich danych?

A. ENUM
B. BLOB
C. LONGTEXT
D. DOUBLE

Brak odpowiedzi na to pytanie.

Wyjaśnienie poprawnej odpowiedzi:
Typ BLOB (Binary Large Object) jest przeznaczony do przechowywania dużych ilości danych binarnych, takich jak obrazy, wideo czy dźwięki. W kontekście baz danych, BLOB umożliwia przechowywanie danych, które nie są łatwe do reprezentacji w postaci tekstowej. Dzięki zastosowaniu tego typu danych, można efektywnie zarządzać oraz przechowywać multimedia bez obawy o przekroczenie limitów rozmiarowych, które występują przy użyciu standardowych typów danych. Przykład praktycznego zastosowania BLOB można zobaczyć w systemach zarządzania treścią (CMS), gdzie obrazy i pliki wideo są przechowywane w bazie danych, co pozwala na ich łatwe wywoływanie i wyświetlanie na stronach internetowych. Warto zauważyć, że stosując BLOB, należy również brać pod uwagę najlepsze praktyki optymalizacji, takie jak przechowywanie samych plików na zewnętrznych serwerach i trzymanie jedynie ich referencji w bazie danych, co znacząco zwiększa wydajność systemu.

Pytanie 10

Jakie znaczenie ma akronim ACID w kontekście SQL?

A. atomic, consistent, iss, dependable
B. atomic, consistent, isolated, durable
C. atomic, comming, is, do
D. atomic, constaint, isolated, dependable

Brak odpowiedzi na to pytanie.

Wyjaśnienie poprawnej odpowiedzi:
Akronim ACID odnosi się do czterech kluczowych właściwości transakcji w systemach zarządzania bazami danych, które zapewniają ich niezawodność i integralność. Pierwszym elementem jest atomowość (atomic), co oznacza, że transakcje są niepodzielne; albo wszystkie operacje w ramach transakcji są wykonane, albo żadna. Przykładem może być przeniesienie pieniędzy z jednego konta na drugie, gdzie zarówno operacja debetowa, jak i kredytowa muszą być zakończone pomyślnie. Drugą właściwością jest spójność (consistent), co zapewnia, że wszystkie transakcje prowadzą do spójnego stanu bazy danych, przestrzegając wszelkich reguł i ograniczeń. Izolacja (isolated) gwarantuje, że równolegle wykonywane transakcje nie wpływają na siebie nawzajem, co jest kluczowe w przypadku dużych systemów, aby uniknąć konfliktów. Ostatnim aspektem jest trwałość (durable), co oznacza, że po zakończeniu transakcji, wszystkie zmiany są trwale zapisane, nawet w przypadku awarii systemu. Te cztery właściwości są fundamentem dla standardów takich jak SQL, co czyni je kluczowymi dla projektowania i zarządzania bazami danych.

Pytanie 11

Co chce osiągnąć poniższe zapytanie MySQL?

ALTER TABLE ksiazki
MODIFY tytul VARCHAR(100) NOT NULL;
A. Usunąć kolumnę tytul z tabeli ksiazki
B. Zmienić nazwę kolumny w tabeli ksiazki
C. Dodać do tabeli ksiazki kolumnę tytul
D. Zmienić typ kolumny w tabeli ksiazki

Brak odpowiedzi na to pytanie.

Wyjaśnienie poprawnej odpowiedzi:
Polecenie SQL ALTER TABLE ksiazki MODIFY tytul VARCHAR(100) NOT NULL; służy do zmiany typu kolumny tytul w tabeli ksiazki. W tym przypadku typ kolumny jest zmieniany na VARCHAR(100), co oznacza, że będzie przechowywać łańcuchy znaków o maksymalnej długości 100 znaków, a dodatkowo kolumna ta nie może przyjmować wartości NULL. Użycie ALTER TABLE i MODIFY pozwala na dynamiczną modyfikację struktury tabeli bez konieczności jej usuwania i ponownego tworzenia, co jest korzystne w dużych systemach bazodanowych, gdzie minimalizacja czasu przestoju jest kluczowa. Praktyczne zastosowanie polecenia MODIFY jest szerokie i obejmuje sytuacje, w których wymagane są zmiany w przechowalności danych, na przykład aby dostosować się do nowych wymagań biznesowych lub normatywnych. Warto pamiętać o dopasowaniu zmian do istniejących danych i zapewnieniu spójności bazy danych, co jest dobrą praktyką w zarządzaniu bazami danych.

Pytanie 12

Które z poniższych stwierdzeń na temat klucza głównego jest prawdziwe?

A. Składa się wyłącznie z jednego pola
B. Jest unikalny dla danej tabeli
C. W przypadku tabeli z danymi osobowymi może to być pole nazwisko
D. Może przyjmować wyłącznie wartości liczbowe

Brak odpowiedzi na to pytanie.

Wyjaśnienie poprawnej odpowiedzi:
Klucz podstawowy to atrybut (lub zbiór atrybutów) w tabeli, który jednoznacznie identyfikuje każdy wiersz w tej tabeli. Jego unikalność w obrębie tabeli jest kluczowa, ponieważ pozwala na zapobieganie duplikatom i zapewnia integralność danych. Na przykład, w tabeli przechowującej informacje o klientach, kolumna z identyfikatorem klienta (np. ID klienta) powinna być kluczem podstawowym, ponieważ każdy klient musi mieć unikalny identyfikator. Standardy baz danych, takie jak model relacyjny, podkreślają znaczenie kluczy podstawowych w zapewnieniu stabilności i efektywności w przechowywaniu danych. Użycie klucza podstawowego również wpływa na wydajność operacji wyszukiwania i łączenia tabel, dlatego w projektowaniu baz danych należy starannie dobierać atrybuty, które będą pełnić tę rolę, aby spełniały wymagania unikalności oraz wydajności.

Pytanie 13

Jaką rolę odgrywa kwerenda krzyżowa w programie MS Access?

A. Zmienia istniejące dane w tabeli
B. Prezentuje zliczone wartości z pola i układa je w wiersze oraz kolumny
C. Usuwa rekordy z tabel według określonych kryteriów
D. Dodaje do wybranej tabeli rekordy z innej tabeli

Brak odpowiedzi na to pytanie.

Wyjaśnienie poprawnej odpowiedzi:
Kwerenda krzyżowa w bazie danych MS Access pełni kluczową rolę w analizie danych, umożliwiając użytkownikom prezentację zliczonych wartości w formacie tabelarycznym, gdzie wyniki są układane w wiersze i kolumny. To narzędzie jest niezwykle przydatne w przypadku, gdy chcemy zsyntetyzować dane na podstawie dwóch lub więcej kryteriów, co pozwala na szybką analizę zależności i trendów. Na przykład, możemy stworzyć kwerendę krzyżową, która zlicza sprzedaż według miesięcy i kategorii produktów. W rezultacie otrzymujemy czytelny raport, który pozwala na natychmiastowe zrozumienie, które produkty sprzedają się najlepiej w danym okresie. Kwerendy krzyżowe są zgodne z najlepszymi praktykami w zakresie analizy danych, umożliwiając użytkownikom szybkie podejmowanie decyzji na podstawie wizualizacji wyników. Standardy projektowania baz danych zalecają korzystanie z takich kwerend tam, gdzie potrzebne są złożone analizy, a ich struktura jest zgodna z zasadami normalizacji danych, co z kolei ułatwia ich późniejsze przetwarzanie.

Pytanie 14

Głównym celem systemu CMS jest oddzielenie treści portalu informacyjnego od jego wyglądu. Taki efekt osiąga się przez generowanie zawartości

A. z bazy danych oraz wyglądu za pomocą atrybutów HTML
B. ze statycznych plików HTML oraz wyglądu ze zdefiniowanego szablonu
C. ze statycznych plików HTML oraz wyglądu za pomocą technologii FLASH
D. z bazy danych oraz wyglądu ze zdefiniowanego szablonu

Brak odpowiedzi na to pytanie.

Wyjaśnienie poprawnej odpowiedzi:
Podstawowym zadaniem systemu CMS (Content Management System) jest efektywne oddzielenie treści od warstwy prezentacyjnej, co znacząco ułatwia zarządzanie stroną internetową. Systemy CMS wykorzystują bazy danych do przechowywania treści, co pozwala na dynamiczne generowanie stron internetowych na podstawie zdefiniowanych szablonów. Przy pomocy szablonów można łatwo zmieniać wygląd i układ strony, co jest kluczowe w dzisiejszym szybko zmieniającym się środowisku online. Przykładowo, w systemach takich jak WordPress, treści są przechowywane w bazie danych MySQL, a szablony w PHP. Dzięki temu możesz zmieniać motyw i dostosowywać wygląd strony bez konieczności modyfikacji poszczególnych elementów treści. Dobre praktyki branżowe wskazują na konieczność stosowania tego typu rozdzielenia, co nie tylko przyspiesza proces aktualizacji serwisu, ale także poprawia jego bezpieczeństwo i ułatwia utrzymanie. Takie podejście jest również korzystne w kontekście SEO, ponieważ pozwala na optymalizację treści bez ryzyka wprowadzenia błędów w kodzie.

Pytanie 15

W języku PHP przeprowadzono operację przedstawioną w ramce. Jak można postąpić, aby wyświetlić wszystkie wyniki tego zapytania?

$tab = mysqli_query($db, "SELECT imie FROM Osoby WHERE wiek < 18");
A. użyć polecenia mysql_fetch
B. zaindeksować zmienną tab, tab[0] to pierwsze imię
C. pokazać zmienną $db
D. zastosować pętlę z poleceniem mysqli_fetch_row

Brak odpowiedzi na to pytanie.

Wyjaśnienie poprawnej odpowiedzi:
Prawidłowa odpowiedź dotyczy zastosowania pętli z poleceniem mysqli_fetch_row. W języku PHP przy pracy z bazą danych MySQL wykorzystujemy bibliotekę mysqli, która oferuje funkcje pozwalające na manipulację danymi. Funkcja mysqli_query wykonuje zapytanie SQL na połączeniu z bazą danych, zwracając wynik w postaci obiektu typu mysqli_result. Aby pobrać wszystkie wiersze wyników, konieczne jest zastosowanie pętli, która iteruje przez każdy wiersz zwracany przez zapytanie. Funkcja mysqli_fetch_row jest używana do pobrania kolejnego wiersza z wyniku jako tablicy numerycznej. Przykładowy kod mógłby wyglądać następująco while ($row = mysqli_fetch_row($tab)) { echo $row[0]; } co pozwala na wyświetlenie imion wszystkich osób poniżej 18 roku życia. Praktyczne podejście polega na iteracyjnej obsłudze wyników zapytań, co jest zgodne z branżowymi standardami. Takie rozwiązanie umożliwia dynamiczne przetwarzanie danych w czasie rzeczywistym zwiększając elastyczność aplikacji. Dodatkowo warto pamiętać o odpowiednim zarządzaniu zasobami, takim jak zamknięcie połączenia z bazą danych po zakończeniu operacji. To podejście podkreśla znaczenie efektywnego zarządzania danymi w aplikacjach webowych.

Pytanie 16

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

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

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 17

W języku SQL operator arytmetyczny odpowiadający reszcie z dzielenia to

A. ||
B. &
C. %
D. /

Brak odpowiedzi na to pytanie.

Wyjaśnienie poprawnej odpowiedzi:
Operator arytmetyczny modulo, czyli ten %, to coś, co moim zdaniem jest naprawdę przydatne w SQL. Używamy go do obliczania reszty z dzielenia, co pokazuje na przykład taki kod: 'SELECT 10 % 3;', który zwraca 1. Chodzi o to, że 10 dzielone przez 3 to 3, a reszta to właśnie 1. To może być super pomocne, kiedy chcemy sprawdzić, czy liczba jest parzysta czy nie. Na przykład, możemy użyć takiego zapytania: 'SELECT CASE WHEN 5 % 2 = 0 THEN 'Parzysta' ELSE 'Nieparzysta' END;' i dostaniemy 'Nieparzysta'. Operator modulo przydaje się też w programowaniu, na przykład do tworzenia cykli lub rozdzielania danych w algorytmach. Dobrze jest pamiętać, że używając tego operatora w SQL, warto mieć na uwadze czytelność kodu. Szczególnie przy większych bazach danych, gdzie to ma znaczenie.

Pytanie 18

Na rysunku została przedstawiona relacja jeden do wielu. Łączy ona

Ilustracja do pytania
A. klucz obcy reżyserzy_id tabeli filmy z kluczem obcym id tabeli reżyserzy.
B. klucz obcy reżyserzy_id tabeli filmy z kluczem podstawowym id tabeli reżyserzy.
C. klucz podstawowy id tabeli filmy z kluczem podstawowym id tabeli reżyserzy.
D. klucz podstawowy id tabeli filmy z kluczem obcym reżyserzy_id tabeli reżyserzy.

Brak odpowiedzi na to pytanie.

Wyjaśnienie poprawnej odpowiedzi:
Twoja odpowiedź jest prawidłowa. Relacja jeden do wielu na rysunku wskazuje, że jeden rekord z tabeli reżyserzy może być powiązany z wieloma rekordami w tabeli filmy. Klucz obcy (FK - Foreign Key) w tabeli filmy (reżyserzy_id) wskazuje na klucz podstawowy (PK - Primary Key) w tabeli reżyserzy (id). Jest to typowa praktyka przy projektowaniu relacyjnych baz danych, która pozwala na utrzymanie integralności relacji między danymi. Te relacje są kluczowe dla prawidłowego działania systemów bazodanowych, ponieważ umożliwiają efektywne zarządzanie danymi. Poprawnie zdefiniowanie kluczy obcych i podstawowych umożliwia tworzenie skomplikowanych struktur danych, które odzwierciedlają rzeczywiste zależności i czytelnie prezentują powiązania między danymi.

Pytanie 19

Z tabeli mieszkancy trzeba wydobyć unikalne nazwy miast, w tym celu należy użyć wyrażenia SQL zawierającego klauzulę

A. UNIQUE
B. DISTINCT
C. HAVING
D. CHECK

Brak odpowiedzi na to pytanie.

Wyjaśnienie poprawnej odpowiedzi:
Odpowiedź 'DISTINCT' jest prawidłowa, ponieważ klauzula ta w SQL służy do eliminacji duplikatów z wyników zapytania. Gdy chcemy uzyskać unikalne wartości z określonej kolumny, stosujemy 'SELECT DISTINCT nazwa_kolumny FROM nazwa_tabeli'. Na przykład, używając zapytania 'SELECT DISTINCT miasto FROM mieszkancy', otrzymamy jedynie unikalne nazwy miast bez powtórzeń. To podejście jest szczególnie przydatne w analizach, gdzie kluczowe jest posiadanie jedynie jednorazowych wartości, na przykład w raportach marketingowych czy badaniach demograficznych. W praktyce 'DISTINCT' powinno być używane z rozwagą, gdyż jego użycie może wpływać na wydajność zapytania, zwłaszcza w przypadku dużych zbiorów danych. Należy również pamiętać, że 'DISTINCT' dotyczy wszystkich kolumn w zapytaniu – jeśli wybierzemy więcej niż jedną kolumnę, to zduplikowane wiersze będą usuwane tylko wtedy, gdy wszystkie kolumny są identyczne. To sprawia, że 'DISTINCT' jest elastycznym narzędziem w SQL, pozwalającym na efektywne zarządzanie i przetwarzanie danych.

Pytanie 20

Tabele: Studenci, Zapisy, Zajecia są powiązane relacją. Aby wybrać jedynie nazwiska studentów oraz odpowiadające im idZajecia dla studentów z grupy 15, należy wydać kwerendę

Ilustracja do pytania
A. SELECT nazwisko, idZajecia FROM Studenci INNER JOIN Zapisy WHERE grupa= 15;
B. SELECT nazwisko, idZajecia FROM Studenci INNER JOIN Zapisy ON Studenci.id = Zapisy.idStudenta;
C. SELECT nazwisko, idZajecia FROM Studenci JOIN Zapisy ON Studenci.id = Zapisy.idStudenta WHERE grupa = 15;
D. SELECT nazwisko, idZajecia FROM Studenci JOIN Zapisy ON Studenci.id = Zapisy.idZajecia WHERE grupa = 15;

Brak odpowiedzi na to pytanie.

Wyjaśnienie poprawnej odpowiedzi:
Ta odpowiedź jest dokładnie tym, czego oczekuje się w praktycznej pracy z relacyjnymi bazami danych. Kluczowe jest tutaj poprawne połączenie tabeli Studenci z tabelą Zapisy na podstawie klucza głównego Studenci.id oraz obcego Zapisy.idStudenta. To klasyczna sytuacja, gdzie chcemy wydobyć informacje z dwóch tabel powiązanych relacją jeden-do-wielu. Dzięki użyciu JOIN oraz warunku ON określającego relację, uzyskujemy możliwość pobrania nazwisk studentów i odpowiadających im identyfikatorów zajęć. Warunek WHERE ogranicza wynik do studentów z konkretnej grupy, co jest bardzo częstym wymaganiem biznesowym np. przy generowaniu list obecności czy analizie frekwencji. Takie podejście jest czytelne, zgodne ze składnią SQL ANSI i pozwala uniknąć nieporozumień przy większych kwerendach. Moim zdaniem warto pamiętać, że stosowanie jawnych JOIN-ów zamiast łączenia 'po przecinku' czy w warunku WHERE, ułatwia późniejszą rozbudowę zapytań oraz ogranicza ryzyko tzw. 'kartesjańskiego koszmaru', czyli niekontrolowanego zwielokrotnienia rekordów. Warto też wiedzieć, że zapis ten jest optymalny wydajnościowo, bo wykorzystuje istniejące klucze i indeksy – a to podstawa dobrych praktyk w pracy z bazami danych. Generalnie, jak się opanuje ten schemat, to potem większość operacji na relacyjnych bazach danych jest dużo łatwiejsza.

Pytanie 21

Który z elementów relacyjnej bazy danych, zapisany w języku SQL, może być wykorzystany w zapytaniach modyfikujących kolumny danych udostępnione jako tabela, niezależnie od tego, czy jest stworzony programowo, czy dynamicznie?

A. Funkcja zdefiniowana
B. Trigger
C. Procedura składowa
D. Zasada

Brak odpowiedzi na to pytanie.

Wyjaśnienie poprawnej odpowiedzi:
Funkcja zdefiniowana przez użytkownika (UDF) w języku SQL jest obiektem bazy danych, który może być wykorzystywany w zapytaniach, w tym w zapytaniach modyfikujących kolumny danych. UDF mogą przyjmować argumenty, wykonywać operacje na tych danych i zwracać wynik, co czyni je wszechstronnym narzędziem w programowaniu baz danych. Użycie funkcji zdefiniowanej zwiększa modularność kodu oraz umożliwia ponowne wykorzystanie logiki biznesowej, co jest zgodne z zasadami DRY (Don't Repeat Yourself). Przykładem zastosowania może być funkcja, która oblicza rabat na podstawie ceny i procentu rabatu, co można wywołać w zapytaniach aktualizujących ceny produktów. Warto również zauważyć, że UDF mogą być używane w kontekście różnych zapytań, a ich wyniki mogą być przetwarzane jak każda inna kolumna w wynikach zapytań. Dzięki temu programiści mogą łatwo implementować bardziej złożoną logikę bezpośrednio w zapytaniach SQL, co jest zgodne z najlepszymi praktykami w zakresie zarządzania danymi.

Pytanie 22

Jaką funkcję SQL można uznać za nieprzyjmującą argumentów?

A. now
B. year
C. len
D. upper

Brak odpowiedzi na to pytanie.

Wyjaśnienie poprawnej odpowiedzi:
Funkcja 'now' w SQL jest funkcją systemową, która nie wymaga żadnych argumentów, a jej zadaniem jest zwracanie aktualnej daty i godziny w formacie, który jest zgodny z ustawieniami serwera baz danych. Użycie tej funkcji jest szczególnie przydatne w zadaniach związanych z rejestrowaniem daty utworzenia lub ostatniej modyfikacji rekordów w bazie danych. Przykładem zastosowania może być kwerenda, która wstawia nowy rekord do tabeli, a data utworzenia jest automatycznie ustawiana na bieżący czas: 'INSERT INTO tabela (nazwa, data_utworzenia) VALUES ('Przykład', now());'. Ponadto, w wielu systemach baz danych, takich jak MySQL czy PostgreSQL, funkcje takie jak 'now()' są standardem, co oznacza ich szerokie zastosowanie i zgodność w różnych aplikacjach. Dbanie o automatyczne aktualizowanie znaczników czasowych w bazach danych przy użyciu tej funkcji jest zgodne z najlepszymi praktykami w zakresie zarządzania danymi.

Pytanie 23

Lokalny System Zarządzania Bazą Danych (SZBD) oferuje bazę danych

A. jako usługę serwerową w sieci.
B. w chmurze obliczeniowej.
C. wyłącznie na jednym, wyznaczonym komputerze.
D. w formie serwera w sieci.

Brak odpowiedzi na to pytanie.

Wyjaśnienie poprawnej odpowiedzi:
Lokalny System Zarządzania Bazą Danych (SZBD) jest zazwyczaj zainstalowany na jednym, określonym komputerze, co oznacza, że jest używany w trybie lokalnym. Taki system zarządzania bazą danych, jak na przykład MySQL czy SQLite, umożliwia użytkownikom przechowywanie, modyfikowanie i zarządzanie danymi bez potrzeby połączenia z zewnętrznymi serwerami. Praktycznym przykładem jest sytuacja, gdy deweloperzy tworzą aplikacje desktopowe, które korzystają z lokalnych baz danych do przechowywania danych użytkowników lub do obsługi aplikacji offline. W kontekście najlepszych praktyk, lokalne bazy danych są często wykorzystywane w małych projektach, gdzie dostępność i wydajność są kluczowe, a złożoność architektury sieciowej nie jest wymagana. Przykładem zastosowania jest aplikacja do zarządzania finansami osobistymi, która lokalnie przechowuje dane o wydatkach użytkownika, zapewniając jednocześnie szybki dostęp do informacji bez potrzeby korzystania z zasobów chmurowych.

Pytanie 24

W tabeli psy znajdują się kolumny: imię, rasa, telefon_właściciela, rok_szczepienia. Jakie polecenie SQL należy zastosować, aby znaleźć numery telefonów właścicieli psów, które zostały zaszczepione przed 2015 rokiem?

A. SELECT psy FROM rok_szczepienia < 2015
B. SELECT imię, rasa FROM psy WHERE rok_szczepienia > 2015
C. SELECT telefon_właściciela FROM psy WHERE rok_szczepienia < 2015
D. SELECT telefon_właściciela FROM psy WHERE rok_szczepienia > 2015

Brak odpowiedzi na to pytanie.

Wyjaśnienie poprawnej odpowiedzi:
Wybrana odpowiedź jest poprawna, ponieważ precyzyjnie określa, jak za pomocą języka SQL można uzyskać telefony właścicieli psów, których szczepienia miały miejsce przed rokiem 2015. W poleceniu SQL używamy klauzuli SELECT, aby wybrać konkretne kolumny z tabeli. W tym przypadku interesuje nas kolumna 'telefon_wlasciciela'. Klauzula WHERE służy do filtrowania danych, co pozwala na zastosowanie warunku, który musi być spełniony, aby rekordy zostały zwrócone. Warunek 'rok_szczepienia < 2015' jest logiczny i zgodny z wymaganiami pytania. Taka konstrukcja zapytania jest zgodna z najlepszymi praktykami, ponieważ jasno określa, co chcemy uzyskać oraz jakie kryteria muszą zostać spełnione. Przykładowe zastosowanie tego typu zapytania może obejmować analizę danych dotyczących zdrowia psów, co jest istotne dla weterynarzy, hodowców czy właścicieli zwierząt. Umożliwia to podejmowanie świadomych decyzji dotyczących opieki zdrowotnej zwierząt.

Pytanie 25

Aby ułatwić wprowadzanie oraz modyfikację danych w tabeli, konieczne jest zdefiniowanie

A. raportu
B. kwerendy SELECT
C. formularza
D. filtra

Brak odpowiedzi na to pytanie.

Wyjaśnienie poprawnej odpowiedzi:
Formularz to narzędzie, które pozwala na łatwe i intuicyjne wprowadzanie oraz edytowanie danych w bazie danych. W przeciwieństwie do kwerend, które są używane głównie do selekcji danych, formularze zapewniają interfejs użytkownika, który ułatwia zbieranie danych od użytkowników. Dzięki formularzom można zaprojektować przyjazny dla użytkownika interfejs, który może zawierać różne elementy, takie jak pola tekstowe, listy rozwijane, przyciski radiowe i przyciski akcji. Praktycznym zastosowaniem formularzy jest wprowadzanie danych do systemów zarządzania treścią, takich jak bazy danych dla aplikacji webowych czy systemów CRM. Dobrą praktyką jest stosowanie walidacji danych w formularzach, aby upewnić się, że wprowadzane informacje są zgodne z wymaganym formatem i nie zawierają błędów. Ponadto formularze mogą być zintegrowane z procesami automatyzacji, co znacznie zwiększa efektywność wprowadzania danych i minimalizuje ryzyko wystąpienia błędów.

Pytanie 26

W wyniku przedstawionego polecenia w tabeli zostanie ```ALTER TABLE nazwa1 ADD nazwa2 DOUBLE NOT NULL;```

A. zmieniona kolumna z nazwa1 na nazwa2
B. zmieniony typ kolumny nazwa2 na DOUBLE
C. dodana kolumna nazwa2 z wymuszoną wartością DOUBLE
D. dodana kolumna nazwa2 o typie zmiennoprzecinkowym

Brak odpowiedzi na to pytanie.

Wyjaśnienie poprawnej odpowiedzi:
Odpowiedź numer 3 jest prawidłowa, ponieważ zapytanie SQL "ALTER TABLE nazwa1 ADD nazwa2 DOUBLE NOT NULL;" definiuje dodanie nowej kolumny o nazwie "nazwa2" do istniejącej tabeli "nazwa1". Typ danych DOUBLE oznacza, że kolumna ta będzie mogła przechowywać liczby zmiennoprzecinkowe, co jest przydatne w przypadku danych wymagających wysokiej precyzji, takich jak wartości finansowe czy pomiary naukowe. Oprócz tego, klauzula "NOT NULL" oznacza, że w kolumnie nie mogą znajdować się żadne wartości NULL, co jest istotne dla zapewnienia integralności danych. W praktyce, dodawanie kolumn w bazach danych jest często używane do wzbogacania istniejących struktur danych, aby dostosować je do zmieniających się wymagań aplikacji. Dobrą praktyką jest również odpowiednie indeksowanie nowych kolumn, aby zwiększyć wydajność zapytań, które będą z nich korzystały. W kontekście standardów, ważne jest, aby zmiany w strukturze tabeli były wprowadzane w sposób, który nie wpływa negatywnie na istniejące dane i aplikacje.

Pytanie 27

Na tabeli muzyka, przedstawionej na rysunku, zostało wykonane następujące zapytanie SQL. Jaki wynik zwróci ta kwerenda?

SELECT wykonawca FROM `muzyka` WHERE wykonawca LIKE 'C%w';
IDtytul_plytywykonawcarok_nagraniaopis
1Czas jak rzekaCzeslaw Niemen2005Przyjdz W Taka Noc itd.
2IkonaStan Borys2014
3AerolitCzeslaw Niemen2017Winylowa reedycja płyty „Aerolit”.
4JourneyMikolaj Czechowski2013
A. pusty wynik
B. Czeslaw, Czechowski
C. Czeslaw
D. Czeslaw, Niemen

Brak odpowiedzi na to pytanie.

Wyjaśnienie poprawnej odpowiedzi:
Dobrze, wybrałeś prawidłową odpowiedź. Zapytanie SQL, które widzimy w tym pytaniu, zostało sformułowane w taki sposób, że wyszukuje ono wszystkich wykonawców (kolumna 'wykonawca' w tabeli 'muzyka'), których nazwy zaczynają się na literę 'C' i kończą na literę 'w'. Składnia LIKE 'C%w' w warunku WHERE zapytania SQL jest używane do dopasowania wzorca, gdzie '%' oznacza dowolny ciąg znaków, a 'C' i 'w' to konkretne litery na początku i końcu nazwy. Jednak w tabeli 'muzyka' nie ma żadnego wykonawcy, który spełniałby ten warunek. Dlatego wynik zapytania jest pusty. Jest to dobra praktyka, aby zrozumieć, jak używać operatora LIKE w zapytaniach SQL, ponieważ pozwala na elastyczne wyszukiwanie danych w bazie danych.

Pytanie 28

ALTER TABLE transport MODIFY COLUMN rok_produkcji INT;
Wykonanie powyższej kwerendy SQL w bazie MySQL spowoduje:
A. utworzenie tabeli transport zawierającej kolumnę rok_produkcji.
B. usunięcie kolumny rok_produkcji w tabeli transport.
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 29

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

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

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 30

Integralność referencyjna w relacyjnych bazach danych oznacza, że

A. każdemu kluczowi głównemu przyporządkowany jest dokładnie jeden klucz obcy w powiązanych tabelach
B. wartość klucza obcego w danej tabeli musi być albo równa wartości klucza głównego w związanej z nią tabeli albo równa wartości NULL
C. klucz główny lub klucz obcy nie mogą zawierać wartości NULL
D. wartość klucza głównego oraz klucza obcego nie może być pusta

Brak odpowiedzi na to pytanie.

Wyjaśnienie poprawnej odpowiedzi:
Integralność referencyjna jest kluczowym pojęciem w modelu relacyjnych baz danych, które zapewnia spójność i wiarygodność danych. Odpowiedź dotycząca wartości klucza obcego w danej tabeli, która musi być równa wartości klucza głównego w powiązanej tabeli lub NULL, jest zgodna z zasadami projektowania baz danych. Klucz obcy stanowi odniesienie do klucza głównego w innej tabeli, co umożliwia utrzymanie relacji między danymi. Na przykład, w bazie danych dotyczącej szkoły, tabela 'Uczniowie' może mieć kolumnę 'KlasaID', która jest kluczem obcym odnoszącym się do 'KlasaID' w tabeli 'Klasy'. Integralność referencyjna zapewnia, że każdy uczeń jest przypisany do istniejącej klasy, a jeśli uczeń nie jest przypisany do żadnej klasy, wartość ta może być NULL. Praktyczne zastosowanie tej zasady pozwala uniknąć błędów, takich jak pozostawienie ucznia bez przypisania do klasy, co mogłoby prowadzić do nieporozumień w analizach danych. Zgodnie z dobrymi praktykami, integralność referencyjna powinna być implementowana na poziomie bazy danych, aby automatycznie wymuszać te zasady, co zwiększa jakość i spójność gromadzonych danych.

Pytanie 31

Z przedstawionych tabel Klienci i Uslugi należy wybrać jedynie imiona klientów oraz odpowiadające im nazwy usług, które są droższe niż 10 zł. Kwerenda wybierająca te dane ma postać

Ilustracja do pytania
A. SELECT imie, nazwa FROM klienci JOIN uslugi ON uslugi.id = klienci.id;
B. SELECT imie, nazwa FROM klienci, uslugi WHERE cena < 10;
C. SELECT imie, nazwa FROM klienci JOIN uslugi ON uslugi.id = uslugi_id;
D. SELECT imie, nazwa FROM klienci JOIN uslugi ON uslugi.id = uslugi_id WHERE cena > 10;

Brak odpowiedzi na to pytanie.

Wyjaśnienie poprawnej odpowiedzi:
Dobra robota, wybrałeś sprawdzoną odpowiedź! To zapytanie SQL, które zaznaczyłeś, łączy tabele 'Klienci' i 'Usługi' przy pomocy klucza obcego 'uslugi_id'. To, co robią takie JOINy, to po prostu łączenie tabel na podstawie wspólnych elementów. W tym przypadku 'uslugi_id' to ten wspólny element, który pozwala na powiązanie obu tabel. A ten warunek 'WHERE cena > 10'? To świetny sposób na to, żeby z ograniczać wyniki do tych, które są droższe niż 10 zł. Fajnie jest mieć pod ręką tylko te informacje, które są dla nas najistotniejsze, szczególnie w większych bazach danych. Pamiętaj, że umiejętność pisania zapytań SQL, jak to, jest naprawdę przydatna, gdy pracujemy z relacyjnymi bazami danych.

Pytanie 32

System baz danych gromadzi multimedia, co wiąże się z przechowywaniem znacznych ilości danych binarnych. Jakiego typu danych należy użyć w tym przypadku?

A. LONGTEXT
B. BLOB
C. ENUM
D. DOUBLE

Brak odpowiedzi na to pytanie.

Wyjaśnienie poprawnej odpowiedzi:
Typ BLOB (Binary Large Object) służy do przechowywania dużych ilości danych binarnych, takich jak obrazy, dźwięki, filmy czy inne multimedia. BLOBy są niezwykle przydatne w aplikacjach, które wymagają zarządzania danymi o dużych rozmiarach, ponieważ pozwalają na efektywne przechowywanie i manipulowanie tymi danymi w bazie danych. Przykładem zastosowania BLOBów może być system zarządzania treścią (CMS), w którym użytkownicy mogą przesyłać zdjęcia i filmy. BLOBy umożliwiają przechowywanie tych plików w bazie, co ułatwia ich późniejsze pobieranie i wyświetlanie. W praktyce, stosując BLOBy, należy pamiętać o odpowiednich indeksach oraz optymalizacji zapytań, aby zminimalizować czas dostępu do danych. Warto również rozważyć zastosowanie systemów zarządzania bazami danych, które są dostosowane do pracy z danymi multimedialnymi, takich jak PostgreSQL czy MySQL, które obsługują typy BLOB i inne odpowiednie struktury danych. Standardy SQL definiują BLOB jako typ danych, co sprawia, że jego użycie jest zgodne z najlepszymi praktykami programowania baz danych.

Pytanie 33

Jaki zapis jest używany do definiowania klucza obcego w MySQL?

A. PRIMARY KEY(ID)
B. AUTO_INCREMENT(ID)
C. FOREIGN KEY(ID)
D. UNIQUE KEY(ID)

Brak odpowiedzi na to pytanie.

Wyjaśnienie poprawnej odpowiedzi:
Odpowiedź FOREIGN KEY(ID) jest poprawna, ponieważ klucz obcy (foreign key) jest używany w bazach danych do ustanowienia i wymuszenia relacji pomiędzy dwiema tabelami. Klucz obcy w tabeli A wskazuje na klucz podstawowy (primary key) w tabeli B, co pozwala na utrzymanie integralności referencyjnej danych. Na przykład, jeżeli mamy tabelę 'Zamówienia', w której zapisujemy informacje o zamówieniach, i tabelę 'Klienci', w której mamy dane o klientach, możemy zastosować klucz obcy w tabeli 'Zamówienia', aby wskazywał na ID klienta w tabeli 'Klienci'. Dzięki temu, nie będzie możliwości dodania zamówienia dla nieistniejącego klienta, co zapewnia spójność i integralność bazy danych. Używanie kluczy obcych jest zgodne z najlepszymi praktykami projektowania baz danych, ponieważ pozwala na łatwiejsze zarządzanie danymi i ogranicza możliwość wystąpienia błędów. Warto również zauważyć, że klucze obce mogą być używane w kontekście kaskadowej aktualizacji lub usuwania, co dodatkowo ułatwia zarządzanie relacjami między tabelami.

Pytanie 34

Angielskim tłumaczeniem słowa "zapytanie", używanym w bazach danych SQL jest

A. query.
B. keyword.
C. select.
D. asterisk.

Brak odpowiedzi na to pytanie.

Wyjaśnienie poprawnej odpowiedzi:
Poprawnie – w kontekście baz danych SQL angielskim odpowiednikiem słowa „zapytanie” jest „query”. W całym ekosystemie bazodanowym, zarówno w dokumentacji technicznej, jak i w praktyce zawodowej, przyjęło się, że query to właśnie żądanie skierowane do silnika bazy danych o zwrócenie, modyfikację lub analizę danych. Może to być zarówno proste zapytanie SELECT, jak i bardziej złożone polecenia typu INSERT, UPDATE, DELETE czy nawet zagnieżdżone podzapytania. Mówiąc, że „piszemy query do bazy”, mamy na myśli kompletne zapytanie SQL, które serwer interpretuje i wykonuje. W praktyce, w narzędziach takich jak phpMyAdmin, SQL Server Management Studio, pgAdmin czy nawet w ORM-ach (np. w Laravelu, Django), wszędzie pojawia się pojęcie „query builder”, „query log”, „query optimization”. To wszystko odnosi się właśnie do zapytań. Warto też kojarzyć, że w literaturze i kursach często rozróżnia się pojęcie „query” (czyli konkretne zapytanie) od „statement” (instrukcja, polecenie w języku SQL), ale w mowie potocznej programistów często się to miesza. Dobrą praktyką jest używanie słowa „query” zawsze wtedy, gdy mówimy o operacji odczytu lub ogólnie o wysłaniu zapytania SQL do bazy, a nie np. o nazwie słowa kluczowego czy znaku specjalnym. W projektach komercyjnych, logach aplikacji, monitoringu wydajności, wszędzie będzie pojawiać się termin „slow queries”, „expensive queries” – i to zawsze oznacza wolno działające zapytania. Moim zdaniem warto się szybko przyzwyczaić do tego terminu, bo jest absolutnie podstawowy w pracy z bazami danych.

Pytanie 35

Funkcja agregująca MIN w języku SQL ma na celu określenie

A. liczby znaków w rekordach zwróconych przez kwerendę
B. liczby wierszy zwróconych przez kwerendę
C. średniej wartości kolumny obserwowanej w wyniku zapytania
D. wartości minimalnej z kolumny zwróconej przez kwerendę

Brak odpowiedzi na to pytanie.

Wyjaśnienie poprawnej odpowiedzi:
Funkcja agregująca MIN w języku SQL służy do wyznaczania wartości minimalnej w zadanej kolumnie, co jest kluczowym aspektem analizy danych w bazach danych. Przykładowo, gdy korzystasz z zapytania SELECT MIN(wiek) FROM pracownicy, otrzymasz najniższy wiek pracownika w tabeli. To narzędzie jest niezwykle przydatne w raportowaniu oraz przy podejmowaniu decyzji opartych na danych, gdyż pozwala na szybkie określenie najniższych wartości w zestawieniach, takich jak najstarszy pracownik w firmie, najniższa cena produktu, czy najkrótszy czas realizacji zamówienia. W praktyce, używanie funkcji MIN pomaga organizacjom w identyfikacji problemów oraz w optymalizacji procesów. Stosowanie funkcji agregujących, takich jak MIN, jest zgodne z najlepszymi praktykami w zakresie analizy danych, ponieważ umożliwia efektywne przetwarzanie dużych zbiorów informacji i wyciąganie z nich wartościowych wniosków, co jest kluczowe w zarządzaniu danymi i tworzeniu raportów analitycznych.

Pytanie 36

Jakie polecenie należy zastosować, aby wysłać dane przy pomocy funkcji mysqli_query() w skrypcie PHP, który dodaje informacje z formularza umieszczonego na stronie internetowej do bazy danych?

A. UPDATE
B. INSERT INTO
C. ALTER
D. SELECT

Brak odpowiedzi na to pytanie.

Wyjaśnienie poprawnej odpowiedzi:
Odpowiedź 'INSERT INTO' jest poprawna, ponieważ jest to standardowa kwerenda SQL używana do wstawiania nowych rekordów do tabel w bazie danych. W kontekście PHP i funkcji mysqli_query(), wstawianie danych z formularza zazwyczaj obejmuje przygotowanie kwerendy, która zawiera instrukcję INSERT INTO wraz z nazwą tabeli oraz danymi, które mają zostać dodane. Na przykład, jeśli mamy formularz z polami 'imie' i 'nazwisko', kwerenda mogłaby wyglądać następująco: 'INSERT INTO uzytkownicy (imie, nazwisko) VALUES (?, ?)'. Użycie znaków zapytania (?) jest zgodne z najlepszymi praktykami, ponieważ pozwala na bezpieczne wprowadzenie danych, chroniąc aplikację przed atakami SQL Injection. Dobrą praktyką jest również używanie PDO lub MySQLi z przygotowanymi zapytaniami, co zwiększa bezpieczeństwo oraz efektywność kodu. W ten sposób można skutecznie wstawiać dane do bazy danych, zachowując przy tym standardy programistyczne.

Pytanie 37

Zgodnie z zasadami ACID, odnoszącymi się do przeprowadzania transakcji, wymóg trwałości (ang. durability) wskazuje, że

A. w trakcie realizacji transakcji dane mogą być zmieniane przez inne transakcje
B. w sytuacji naruszenia spójności bazy danych transakcja eliminuje tabele z kluczami obcymi
C. dane zatwierdzone przez transakcję powinny być dostępne niezależnie od tego, co się wydarzy po jej zakończeniu
D. transakcja może w pewnych okolicznościach być rozdzielona na dwa niezależne etapy

Brak odpowiedzi na to pytanie.

Wyjaśnienie poprawnej odpowiedzi:
Wymóg trwałości (durability) w kontekście właściwości ACID oznacza, że po zatwierdzeniu transakcji, wszystkie zmiany dokonane na danych muszą być utrwalone w trwałym magazynie danych, a ich dostępność nie może być zagrożona przez awarie systemu, takie jak utrata zasilania czy awarie oprogramowania. Przykładem może być system bankowy, gdzie po wykonaniu operacji przelewu, saldo konta musi być natychmiastowo zaktualizowane i dostępne w systemie, niezależnie od tego, co wydarzy się później. W praktyce, wiele systemów zarządzania bazami danych, takich jak PostgreSQL czy MySQL, wykorzystuje mechanizmy logowania transakcji oraz techniki replikacji, aby zapewnić, że dane pozostaną spójne i dostępne nawet w obliczu kryzysów. Zgodność z zasadą trwałości jest kluczowa dla utrzymania zaufania użytkowników i stabilności operacyjnej systemów informacyjnych, co jest wspierane przez standardy takie jak ISO/IEC 27001 dotyczące zarządzania bezpieczeństwem informacji.

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. CSS
C. XHTML
D. PHP

Brak odpowiedzi na to pytanie.

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

SELECT miasto, AVG(pensja) FROM pracownicy GROUP BY miasto;
Podane zapytanie wybierze:
A. nazwy miast z powtórzeniami oraz średnią pensję dla każdego z nich.
B. nazwy miast bez powtórzeń oraz średnią pensję dla każdego z nich.
C. nazwy miast z powtórzeniami oraz sumę pensji dla każdego z nich.
D. nazwy miast bez powtórzeń oraz sumę pensji dla każdego z nich.

Brak odpowiedzi na to pytanie.

Wyjaśnienie poprawnej odpowiedzi:
Poprawnie – w tym zapytaniu kluczowe są dwie rzeczy: funkcja agregująca AVG(pensja) oraz klauzula GROUP BY miasto. Funkcja AVG oblicza średnią arytmetyczną z wartości w danej kolumnie, a nie sumę. To znaczy, że dla każdego miasta baza danych zbierze wszystkie rekordy pracowników z tym miastem, policzy z ich pensji średnią i zwróci jeden wiersz z wynikiem. GROUP BY powoduje, że kolumna miasto staje się kolumną grupującą, więc w wyniku każde miasto pojawi się tylko raz – bez powtórzeń, niezależnie od tego, ilu pracowników z danego miasta jest w tabeli. W praktyce takie zapytanie jest bardzo często używane w raportach i analizach: można w ten sposób sprawdzić, w którym mieście średnia pensja jest najwyższa, porównać poziomy wynagrodzeń między oddziałami firmy, czy przygotować zestawienie dla działu HR albo zarządu. Dobrą praktyką jest nadawanie aliasów kolumnom z funkcjami agregującymi, np.: SELECT miasto, AVG(pensja) AS srednia_pensja FROM pracownicy GROUP BY miasto; Dzięki temu wynik jest czytelniejszy, zwłaszcza gdy dane eksportuje się dalej, np. do Excela lub do aplikacji webowej. Warto też pamiętać, że w standardowym SQL w części SELECT przy użyciu GROUP BY można umieszczać tylko kolumny, po których grupujemy, oraz funkcje agregujące (AVG, SUM, COUNT, MIN, MAX itd.). Jeżeli spróbujemy dodać tam inną zwykłą kolumnę bez agregacji, większość silników bazodanowych zgłosi błąd albo zwróci nieprzewidywalne wartości. Z mojego doświadczenia znajomość takich prostych konstrukcji jak GROUP BY + AVG to absolutna podstawa przy projektowaniu raportów i aplikacji, które polegają na danych biznesowych.

Pytanie 40

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

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

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ń.