Wyniki egzaminu

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

Egzamin zdany!

Wynik: 38/40 punktów (95,0%)

Wymagane minimum: 20 punktów (50%)

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

Jakie imiona spełniają warunek klauzuli LIKE w zapytaniu

SELECT imie FROM mieszkancy WHERE imie LIKE 'o_%_a';
?
A. Oksana, Ola, Olga
B. Oktawia, Oktawian, Olga
C. Oksana, Oktawia, Olga
D. Oda, Oksana, Oktawia
Odpowiedź Oksana, Oktawia, Olga jest poprawna, ponieważ wszystkie te imiona spełniają warunki klauzuli LIKE w zapytaniu SQL. Klauzula LIKE 'o_%_a' wskazuje na to, że imię musi zaczynać się na literę 'o', mieć co najmniej jeden dowolny znak po 'o' (reprezentowany przez znak podkreślenia '_'), a następnie musi kończyć się na literę 'a'. Przykłady imion: Oksana zaczyna się na 'O', ma 'ks' jako drugi znak i kończy się na 'a'; Oktawia również dostosowuje się do tego wzoru, zaś Olga zaczyna się na 'O', ma 'lg' jako drugi i trzeci znak oraz kończy na 'a'. W praktyce, umiejętność korzystania z klauzuli LIKE jest kluczowa w SQL przy wyszukiwaniu danych według wzorców, co pozwala na bardziej elastyczne i precyzyjne zapytania. Poprawne użycie LIKE zwiększa efektywność filtrowania danych, co jest istotnym aspektem w zarządzaniu bazami danych oraz analizie danych, zgodnie z najlepszymi praktykami w branży.

Pytanie 2

Z bazy danych trzeba uzyskać zapytaniem SQL nazwiska pracowników, którzy sprawują funkcję kierownika, a ich wynagrodzenie mieści się w jednostronnie domkniętym przedziale (3000, 4000>. Która klauzula weryfikuje ten warunek?

A. WHERE kierownik = true AND pensja => 3000 OR pensja < 4000
B. WHERE kierownik = true OR pensja > 3000 OR pensja <= 4000
C. WHERE kierownik = true AND pensja => 3000 AND pensja <= 4000
D. WHERE kierownik = true AND pensja > 3000 AND pensja <= 4000
Poprawna odpowiedź to 'WHERE kierownik = true AND pensja > 3000 AND pensja <= 4000;'. Ta klauzula w SQL jest zgodna z wymaganiami, ponieważ precyzyjnie określa, że zwracane będą tylko te rekordy, gdzie pracownik jest kierownikiem oraz jego pensja jest większa niż 3000 i jednocześnie mniejsza lub równa 4000. Zastosowanie operatorów logicznych AND w tym kontekście jest kluczowe, ponieważ pozwala na jednoczesne spełnienie obu warunków. W praktyce, aby uzyskać wyniki zgodne z tymi kryteriami, ważne jest, aby zrozumieć różnicę między operatorami porównawczymi, a także ich zastosowanie w kontekście warunków. Przykładowo, jeśli dla dużej bazy danych chcemy filtrować pracowników w oparciu o ich pozycje oraz wynagrodzenie, stosowanie precyzyjnych klauzul WHERE pozwala na optymalizację zapytań i lepsze zarządzanie danymi. Dobre praktyki w SQL podkreślają znaczenie klarowności i dokładności w definiowaniu warunków, co bezpośrednio przekłada się na efektywność operacji na bazach danych.

Pytanie 3

Funkcja agregująca MIN w języku SQL ma na celu obliczenie

A. liczby wierszy, które zwraca kwerenda
B. minimalnej wartości kolumny, która jest wynikiem kwerendy
C. średniej wartości różnych pól w rekordu zwróconego przez zapytanie
D. ilości znaków w rekordach zwróconych przez kwerendę
Funkcja agregująca MIN w języku SQL jest kluczowym narzędziem do analizy danych, której głównym celem jest zwracanie najmniejszej wartości z kolumny wynikowej zapytania. Jej zastosowanie jest szczególnie przydatne w kontekście analizy danych numerycznych, gdzie można chcieć określić najniższą wartość, na przykład w przypadku cen produktów, ocen studentów czy dat. Funkcja ta może być używana w klauzulach SELECT z instrukcją GROUP BY, co pozwala na obliczanie minimalnych wartości w różnych grupach danych. Przykładowo, zapytanie SELECT kategoria, MIN(cena) FROM produkty GROUP BY kategoria; zwróci najniższą cenę w każdej kategorii produktów. Warto także dodać, że zgodnie z standardem SQL, funkcja MIN działa na różnych typach danych, w tym liczbach całkowitych, zmiennoprzecinkowych i datach, co czyni ją niezwykle wszechstronnym narzędziem w codziennej pracy z bazami danych. Zrozumienie działania funkcji MIN i jej zastosowań pozwala na efektywne przetwarzanie danych oraz podejmowanie lepszych decyzji biznesowych opartych na analizie statystycznej.

Pytanie 4

Na przedstawionej grafice widać fragment bazy danych. Jakie kwerendę należy zastosować, aby uzyskać nazwy produktów zakupionych przez klienta o id = 1?

Ilustracja do pytania
A. SELECT nazwa FROM produkty JOIN transakcje_produkty USING(nr_produktu) JOIN transakcje USING(nr_transakcji) WHERE nr_klienta = 1
B. SELECT nazwa FROM produkty JOIN transakcje_produkty JOIN transakcje WHERE nr_klienta = 1
C. SELECT nazwa FROM produkty JOIN transakcje_produkty USING(nr_produktu) WHERE nr_klienta = 1
D. SELECT nazwa FROM produkty JOIN transakcje ON nr_produktu = nr_klienta WHERE nr_klienta = 1
Prawidłowa odpowiedź używa właściwego połączenia tabel baz danych aby otrzymać nazwy produktów zakupionych przez klienta o konkretnym identyfikatorze. W SQL kwerenda z JOIN umożliwia łączenie danych z więcej niż jednej tabeli na podstawie wspólnego pola. W tym przypadku tabela produkty jest połączona z transakcje_produkty przez pole nr_produktu oraz tabela transakcje jest połączona z transakcje_produkty przez pole nr_transakcji. Dzięki temu możliwe jest uzyskanie pełnego obrazu transakcji dla klienta o id = 1. Zastosowanie USING(nr_produktu) i USING(nr_transakcji) upraszcza kwerendę eliminując konieczność jawnego określania kolumn po obu stronach klauzuli ON. Praktyczne zastosowanie takich kwerend jest podstawą w analizie danych sprzedażowych gdzie analiza historii zakupów klientów może dostarczyć cennych informacji dla działów marketingu oraz logistyki. Dobre praktyki obejmują również optymalizację zapytań SQL aby były jak najbardziej efektywne co jest kluczowe przy pracy z dużymi zbiorami danych.

Pytanie 5

Jakie są określenia typowych komend języka SQL, które dotyczą przeprowadzania operacji na danych SQL DML (np.: dodawanie danych do bazy, usuwanie, modyfikowanie danych)?

A. ALTER, CREATE, DROP
B. DELETE, INSERT, UPDATE
C. SELECT, SELECT INTO
D. DENY, GRANT, REVOKE
Odpowiedź DELETE, INSERT, UPDATE jest prawidłowa, ponieważ te polecenia stanowią podstawowe instrukcje języka SQL DML (Data Manipulation Language), które są wykorzystywane do manipulacji danymi w bazie danych. DELETE służy do usuwania rekordów z tabel, co jest niezbędne w sytuacjach, gdy dane są już nieaktualne lub niepotrzebne. INSERT umożliwia dodawanie nowych rekordów, co jest kluczowe w procesie wprowadzania danych, na przykład dodawania nowych klientów do bazy danych. Z kolei UPDATE pozwala na modyfikację już istniejących danych, co jest istotne w przypadku zmiany informacji, takich jak aktualizacja adresu klienta. W praktyce te operacje są niezwykle ważne dla utrzymania spójności i aktualności danych w systemach zarządzania bazami danych. Warto również zauważyć, że stosowanie tych poleceń zgodnie z dobrymi praktykami, takimi jak transakcje, pozwala na zabezpieczenie integralności danych oraz umożliwia łatwe wycofywanie zmian w przypadku błędów.

Pytanie 6

Jak określa się podzbiór strukturalnego języka zapytań, który dotyczy formułowania zapytań do bazy danych przy użyciu polecenia SELECT?

A. SQL DML (ang. Data Manipulation Language)
B. SQL DQL (ang. Data Query Language)
C. SQL DDL (ang. Data Definition Language)
D. SQL DCL (ang. Data Control Language)
SQL DQL, czyli Data Query Language, to podzbiór języka SQL, który służy do formułowania zapytań do baz danych. Jego główną funkcją jest umożliwienie użytkownikom pobierania danych z tabel w bazie danych przy użyciu polecenia SELECT. Dzięki DQL możliwe jest nie tylko wybieranie konkretnych danych, ale również ich filtrowanie, sortowanie oraz agregowanie. Przykładowo, zapytanie SELECT * FROM pracownicy WHERE dział='IT' zwraca wszystkie dane pracowników z działu IT. DQL jest kluczowym elementem w pracy z bazami danych, ponieważ pozwala na wykorzystanie danych w aplikacjach i systemach informatycznych. Wiedza o DQL jest niezbędna dla każdego, kto zajmuje się analizą danych oraz ich przetwarzaniem. Dobrze skonstruowane zapytania DQL mogą znacznie poprawić wydajność systemów bazodanowych, dlatego warto stosować najlepsze praktyki, takie jak optymalizacja zapytań oraz używanie indeksów, aby zminimalizować czas odpowiedzi i obciążenie serwera.

Pytanie 7

Polecenie DBCC CHECKDB ('sklepAGD', Repair_fast) w systemie MS SQL Server

A. zweryfikuje spójność danej tabeli
B. sprawdzi spójność bazy danych i naprawi uszkodzone indeksy
C. sprawdzi spójność konkretnej tabeli i naprawi uszkodzone dane
D. przeprowadzi kontrolę spójności bazy danych i wykona kopię zapasową
Polecenie DBCC CHECKDB jest kluczowym narzędziem w MS SQL Server do monitorowania integralności bazy danych. Użycie opcji Repair_fast sprawia, że system nie tylko sprawdza spójność bazy danych, ale także podejmuje działania naprawcze w przypadku wykrycia uszkodzonych indeksów. Uszkodzone indeksy mogą znacząco wpływać na wydajność zapytań oraz ogólną stabilność bazy danych. Przykładem zastosowania CHECKDB z Repair_fast może być sytuacja, w której administrator zauważa spowolnienie działania aplikacji. W takim przypadku, uruchomienie tego polecenia pozwala na szybką diagnozę i naprawę ewentualnych problemów z indeksami, co przywraca optymalną wydajność. W praktyce zaleca się regularne wykonywanie tego polecenia w celu zapobiegania problemom oraz zapewnienia zdrowia bazy danych. Standardy branżowe sugerują także, aby przed wykonaniem jakiejkolwiek naprawy, w tym Repair_fast, zawsze tworzyć kopię zapasową bazy danych, co pozwala na minimalizację ryzyka utraty danych.

Pytanie 8

W języku SQL używanym przez bazę danych MySQL atrybut UNIQUE w poleceniu CREATE TABLE

A. jest używany, jeżeli wartości w danej kolumnie nie mogą się powtarzać
B. wymusza niepowtarzalne nazwy kolumn tabeli
C. uniemożliwia wprowadzenie wartości NULL
D. jest stosowany jedynie w przypadku kolumn liczbowych
Atrybut UNIQUE w poleceniu CREATE TABLE w języku SQL dla bazy danych MySQL jest kluczowym elementem, który zapewnia, że wartości w danej kolumnie są unikalne dla każdego rekordu w tabeli. Oznacza to, że nie może istnieć więcej niż jeden rekord z taką samą wartością w kolumnie oznaczonej tym atrybutem. Dzięki temu, gdy projektujemy bazę danych, możemy zagwarantować integralność danych oraz ich spójność, co jest szczególnie istotne w przypadku kluczowych informacji, jak identyfikatory użytkowników czy numery seryjne produktów. Na przykład, jeżeli mamy tabelę użytkowników z kolumną 'email', możemy zastosować atrybut UNIQUE, aby upewnić się, że każdy użytkownik ma unikalny adres e-mail. W praktyce, jeżeli spróbujemy wprowadzić dwa rekordy z tym samym adresem e-mail, baza danych zgłosi błąd. Warto zauważyć, że atrybut UNIQUE pozwala na wprowadzenie wartości NULL, o ile nie ma innych wartości w danej kolumnie. Zgodnie z zasadami normalizacji danych, stosowanie atrybutu UNIQUE jest standardowym podejściem do zapewnienia jakości danych i ich unikalności w systemach zarządzania bazami danych.

Pytanie 9

Normalizacja tabel to proces, którego celem jest

A. dodanie danych do bazy
B. wyłącznie stworzenie tabel oraz relacji w bazie
C. wizualizacja bazy
D. sprawdzenie i optymalizację bazy danych
Podejście, które koncentruje się na dodawaniu rekordów do bazy, błędnie interpretuje cel normalizacji. W rzeczywistości, normalizacja nie dotyczy bezpośrednio procesu wprowadzania nowych danych, ale raczej organizacji i struktury istniejących danych. Wiele osób myli normalizację z innymi operacjami związanymi z bazami danych, co może prowadzić do nieporozumień. Przedstawienie graficzne bazy danych również nie jest celem normalizacji. Choć wizualizacja relacji między tabelami jest istotna, to nie jest to sedno normalizacji. Kolejnym powszechnym błędem jest przekonanie, że normalizacja ogranicza się jedynie do tworzenia tabel i relacji. W rzeczywistości, prawdziwym celem normalizacji jest zminimalizowanie redundancji oraz poprawa integralności danych, co jest osiągane poprzez szereg kroków, takich jak eliminowanie zależności funkcyjnych. Dodatkowo, nie jest to proces jedynie techniczny; wymaga również zrozumienia kontekstu biznesowego i specyfikacji wymagań, aby skutecznie zorganizować dane. Ostatecznie, zrozumienie podstaw normalizacji pozwala uniknąć typowych pułapek w projektowaniu baz danych, takich jak nieefektywne zapytania czy niespójności w danych.

Pytanie 10

Dana jest tabela ksiazki z polami: tytul, autor, cena (typu liczbowego). Aby kwerenda SELECT wybrała tylko tytuły, dla których cena jest mniejsza od 50 zł, należy zapisać

A. SELECT ksiazki FROM tytul WHERE cena < '50 zł';
B. SELECT * FROM ksiazki WHERE cena < 50;
C. SELECT tytul FROM ksiazki WHERE cena > '50 zł';
D. SELECT tytul FROM ksiazki WHERE cena < 50;
Prawidłowa odpowiedź wybiera dokładnie to, o co chodzi w treści zadania: tylko kolumnę tytul z tabeli ksiazki, ale tylko dla tych rekordów, gdzie cena jest mniejsza niż 50. Składnia SELECT tytul FROM ksiazki WHERE cena < 50; jest zgodna ze standardowym SQL i pokazuje dobrą praktykę – pobieramy tylko te dane, które są nam potrzebne, zamiast używać SELECT *. Dzięki temu zapytanie jest lżejsze, szybsze i czytelniejsze, co w większych projektach ma naprawdę duże znaczenie. Moim zdaniem warto zwrócić uwagę na kilka elementów. Po pierwsze, w klauzuli SELECT podajemy konkretne nazwy kolumn (tu: tytul), nie nazwę tabeli. Po drugie, w FROM podajemy dokładnie nazwę tabeli, z której korzystamy (ksiazki). Po trzecie, warunek WHERE cena < 50 poprawnie porównuje wartość liczbową, bo kolumna cena ma typ liczbowy, więc nie używamy tu cudzysłowów ani żadnych „zł” w środku. W praktyce podobny wzorzec stosuje się cały czas, np.: SELECT tytul, autor FROM ksiazki WHERE cena <= 30; żeby dostać tańsze książki, albo SELECT tytul FROM ksiazki WHERE cena BETWEEN 20 AND 40; gdy interesuje nas konkretny przedział. W profesjonalnych aplikacjach webowych taka precyzja w definiowaniu zapytań SQL jest podstawą: ułatwia optymalizację, indeksowanie kolumn (np. indeks na kolumnie cena przyspiesza filtrowanie w WHERE) i minimalizuje przesyłanie niepotrzebnych danych między bazą a aplikacją. Dobra praktyka jest też taka, żeby dostosowywać typy danych: skoro cena jest liczbą, to porównujemy ją z liczbą, bez jednostek, a formatowanie typu „50 zł” robimy później w warstwie prezentacji, np. w PHP, JavaScript albo w szablonach widoków.

Pytanie 11

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

A. dane zatwierdzone przez transakcję powinny być dostępne niezależnie od zdarzeń, które nastąpią po jej zakończeniu
B. w sytuacji naruszenia spójności bazy danych transakcja usuwa tabele z kluczami obcymi
C. transakcja może, w określonych okolicznościach, zostać podzielona na dwa niezależne etapy
D. podczas realizacji transakcji dane mogą być zmieniane przez inne transakcje
Trwałość (ang. durability) to jedno z kluczowych wymagań modelu ACID, które zapewnia, że dane zatwierdzone przez transakcję pozostają dostępne i chronione przed utratą, nawet w przypadku wystąpienia awarii systemu. Oznacza to, że po pomyślnym zakończeniu transakcji, jej efekty są trwale zapisywane w bazie danych i nie mogą zostać utracone, niezależnie od warunków zewnętrznych, takich jak przerwy w zasilaniu czy błędy systemowe. W praktyce oznacza to, że każda transakcja, która uzyskała status 'zatwierdzonej' (ang. committed), powinna być zapisana w trwały sposób, zazwyczaj z wykorzystaniem mechanizmów takich jak logi transakcyjne. Na przykład, w systemach bazodanowych takich jak PostgreSQL czy Oracle, po zakończeniu transakcji, zmiany są rejestrowane w logach, co pozwala na ich odtworzenie w przypadku awarii. Z perspektywy standardów, wymaganie trwałości jest nieodłącznym elementem zapewnienia integralności danych, które jest kluczowe w systemach obsługujących transakcje finansowe, gdzie możliwość przywrócenia stanu po awarii jest niezbędna.

Pytanie 12

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

A. przyznaje wszystkie uprawnienia do tabeli klienci użytkownikowi pracownik
B. cofa wszystkie uprawnienia pracownikowi do tabeli klienci
C. przyznaje uprawnienie grupie klienci dla tabeli pracownik
D. przeniesie uprawnienia z grupy klienci do użytkownika pracownik
Polecenie SQL "GRANT ALL PRIVILEGES ON klienci TO pracownik" jest używane do nadawania pełnych uprawnień do określonej tabeli, w tym przypadku do tabeli "klienci", użytkownikowi o nazwie "pracownik". To polecenie jest kluczowe w zarządzaniu dostępem w bazach danych, ponieważ pozwala administratorom na precyzyjne kontrolowanie, kto i w jakim zakresie może modyfikować dane. W praktyce, nadawanie uprawnień za pomocą komendy GRANT jest standardową praktyką w zarządzaniu bazami danych, pozwalającą na delegowanie odpowiedzialności oraz przydzielanie ról, co zwiększa bezpieczeństwo danych. Warto również zauważyć, że standardową praktyką jest ograniczanie uprawnień do niezbędnego minimum, stosując zasady najmniejszych uprawnień (principle of least privilege). Przykładowo, zamiast nadawania pełnych uprawnień, można przyznać użytkownikowi jedynie prawo do odczytu, co ogranicza ryzyko nieautoryzowanych zmian w danych.

Pytanie 13

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

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. DRANT DROP ON szkola.przedmioty TO uczen
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 14

W programie MS Access w ustawieniach pola klasa należy określić maskę wprowadzania danych. Jaką maskę należy ustawić, aby dane wprowadzone składały się z trzech znaków w formacie: obowiązkowa cyfra, następnie dwie obowiązkowe litery?

Ogólne
Rozmiar pola3
Format
Maska wprowadzania
Tytuł
Wartość domyślna
Reguła spr. poprawności
Tekst reguły spr. poprawności
WymaganeNie
Zerowa dł. dozwolonaTak
IndeksowaneNie
Kompresja UnicodeTak
Tryb IMEBez formantu
Tryb zdania edytora IMEBrak
Tagi inteligentne
A. CLL
B. 0LL
C. 000
D. 0CC
W MS Access maska wprowadzania danych jest używana do kontrolowania formatu danych wprowadzanych do pola. Dla pola, w którym dane muszą mieć postać jednej cyfry, a następnie dwóch liter, odpowiednia maska to 0LL. Zero (0) oznacza, że na tej pozycji musi znajdować się cyfra i jest to wymóg obowiązkowy. Litera L oznacza, że na tej pozycji musi znajdować się litera i jest to również wymóg obowiązkowy. W ten sposób maska 0LL wymusza, aby dane były dokładnie w formacie jednej cyfry i dwóch liter. Praktyczne zastosowanie tego typu maski może być widoczne w sytuacjach, gdzie istnieje konieczność katalogowania produktów, gdzie oznaczenie musiałoby zawierać numer identyfikacyjny w postaci cyfry i skrót literowy identyfikujący kategorię. Takie podejście do formatowania danych zapewnia spójność i poprawność danych wprowadzanych do bazy, zgodnie z dobrymi praktykami zarządzania danymi, co jest kluczowe w systemach bazodanowych, gdzie dane są często przetwarzane i analizowane.

Pytanie 15

Pole insert_id zdefiniowane w bibliotece MySQLi w języku PHP może służyć do

A. uzyskania id ostatnio dodanego wiersza
B. pozyskania kodu błędu, jeśli proces dodawania wiersza się nie powiódł
C. pobrania najwyższego indeksu z bazy, aby po jego inkrementacji wstawić pod niego dane
D. pobrania pierwszego dostępnego indeksu w bazie, tak aby można było pod nim dodać nowe dane
Pole insert_id w bibliotece MySQLi w języku PHP jest kluczowym narzędziem do uzyskiwania identyfikatora (ID) ostatnio wstawionego rekordu w bazie danych. Jest to szczególnie przydatne w kontekście operacji wstawiania nowych danych, gdzie często chcemy wiedzieć, jaki identyfikator został przypisany do nowego rekordu, aby móc go później wykorzystać, na przykład w odniesieniach do powiązanych tabel. W praktyce, po wykonaniu zapytania INSERT, możemy od razu pobrać ID nowo wstawionego rekordu, co jest istotne w relacyjnych bazach danych, gdzie klucze główne są często generowane automatycznie. Przykładowe zastosowanie to sytuacja, gdy wstawiamy nowego użytkownika do tabeli 'users' i chcemy również dodać rekord do tabeli 'profiles', który będzie powiązany z tym użytkownikiem. Wówczas, po wstawieniu użytkownika, możemy użyć insert_id, aby uzyskać jego ID i użyć go do wstawienia do 'profiles'. Używanie insert_id jest zgodne z najlepszymi praktykami, które zalecają minimalizowanie liczby zapytań do bazy danych oraz zapewnienie spójności danych.

Pytanie 16

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

A. przyczynowym
B. liniowym
C. o skończonej odpowiedzi impulsowej
D. niezmiennym w czasie
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 17

Przykład zapytania SQL przedstawia instrukcję:

UPDATE katalog SET katalog.cena = [cena]*1.1;
A. usuwającej
B. krzyżowej
C. dołączającej
D. aktualizującej
Instrukcja SQL przedstawiona w pytaniu używa słowa kluczowego UPDATE co jest charakterystyczne dla kwerend aktualizujących. Komenda ta modyfikuje istniejące dane w tabeli poprawiając je zgodnie z podanymi kryteriami. W tym przykładzie wszystkie wartości w kolumnie cena tabeli katalog są zwiększane o 10 procent co jest typowym zastosowaniem instrukcji aktualizującej. W praktyce takie zmiany są niezbędne w przypadku modyfikacji cen produktów lub aktualizacji informacji biznesowych. Stosowanie kwerend aktualizujących wymaga zachowania szczególnej ostrożności aby nie naruszyć integralności danych. Dobre praktyki obejmują przygotowanie backupu danych przed wykonaniem operacji oraz przetestowanie kwerendy na mniejszym zbiorze danych w celu uniknięcia błędów. Aktualizacja danych to jedna z najczęstszych operacji w systemach bazodanowych dlatego zrozumienie mechanizmu działania kwerend SQL tego typu jest kluczowe dla efektywnego zarządzania danymi w każdej organizacji. SQL jako język deklaratywny umożliwia łatwe definiowanie co chcemy osiągnąć bez konieczności szczegółowego opisywania jak to zrobić co ułatwia pracę z dużymi i złożonymi zbiorami danych.

Pytanie 18

Ustanowienie klucza obcego jest konieczne do stworzenia

A. relacji 1..1
B. relacji 1..n
C. klucza podstawowego
D. transakcji
Klucz obcy (foreign key) to jeden z podstawowych elementów baz danych, który służy do definiowania relacji między tabelami. Jego główną funkcją jest zapewnienie integralności referencyjnej, co oznacza, że wartość klucza obcego w jednej tabeli musi odpowiadać wartości klucza podstawowego w innej tabeli. Definiując klucz obcy, tworzymy relację 1..n, co oznacza, że jeden rekord w tabeli rodzica (tabela z kluczem podstawowym) może być powiązany z wieloma rekordami w tabeli dziecka (tabela z kluczem obcym). Przykładem może być tabela klientów i tabela zamówień, gdzie jeden klient może mieć wiele zamówień. W praktyce, klucz obcy jest często używany w systemach zarządzania bazą danych, takich jak MySQL, PostgreSQL czy Oracle, zgodnie z normami SQL, które definiują relacje między tabelami. Właściwe wykorzystanie kluczy obcych jest kluczowe dla prawidłowego modelowania baz danych oraz zapewnienia spójności danych podczas operacji takich jak aktualizacja czy usuwanie rekordów.

Pytanie 19

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. ze statycznych plików HTML oraz wyglądu ze zdefiniowanego szablonu
B. z bazy danych oraz wyglądu ze zdefiniowanego szablonu
C. z bazy danych oraz wyglądu za pomocą atrybutów HTML
D. ze statycznych plików HTML oraz wyglądu za pomocą technologii FLASH
Wybór błędnych odpowiedzi wskazuje na niepełne zrozumienie architektury systemów zarządzania treścią. Odpowiedzi sugerujące generowanie zawartości z 'statycznych plików HTML' nie uwzględniają kluczowej zasady, jaką jest elastyczność i efektywność dynamicznego zarządzania treścią. Statyczne pliki HTML są trudne do aktualizacji, co powoduje, że zmiany w treści są czasochłonne i zwiększają ryzyko błędów. Przykładowo, w przypadku wprowadzenia istotnych zmian w treści, takich jak aktualizacje informacji o produktach, każda zmiana wymagałaby ręcznej edycji wielu plików, co jest niepraktyczne i nieefektywne. Ponadto, wykorzystanie technologii FLASH do generowania wyglądu jest przestarzałym podejściem, które nie jest już wspierane przez większość nowoczesnych przeglądarek internetowych. FLASH nie tylko ogranicza dostępność treści na urządzeniach mobilnych, ale także stwarza zagrożenia związane z bezpieczeństwem. Ostatecznie, podejścia te nie są zgodne z najlepszymi praktykami branżowymi, które kładą nacisk na wykorzystanie responsywnych, łatwych w zarządzaniu szablonów i dynamicznych baz danych, co jest kluczowe dla sukcesu nowoczesnych aplikacji internetowych.

Pytanie 20

Aby stworzyć poprawną kopię zapasową bazy danych, która będzie mogła zostać później przywrócona, należy najpierw sprawdzić

A. uprawnienia dostępu do serwera bazy danych
B. możliwość udostępnienia bazy danych
C. poprawność składni zapytań
D. spójność bazy
Spójność bazy danych jest kluczowym elementem, który należy sprawdzić przed wykonaniem kopii bezpieczeństwa, ponieważ zapewnia, że wszystkie dane są zgodne i nie zawierają błędów. Spójność oznacza, że wszelkie reguły i ograniczenia, takie jak klucze główne, klucze obce oraz unikalne indeksy, są spełnione. W przypadku naruszenia spójności, kopia bazy danych mogłaby zawierać uszkodzone lub niekompletne dane, co mogłoby uniemożliwić jej prawidłowe odtworzenie w przyszłości. Przykładem może być sytuacja, gdy mamy tabelę zamówień, która odwołuje się do tabeli klientów. Jeśli rekord klienta został usunięty, a zamówienia pozostają, to mamy do czynienia z naruszeniem spójności. Standardy, takie jak ACID (Atomicity, Consistency, Isolation, Durability), podkreślają znaczenie spójności w zarządzaniu bazami danych, co czyni ją niezbędnym krokiem w procesie tworzenia kopii zapasowych.

Pytanie 21

W SQL, przy użyciu polecenia ALTER, można

A. zmienić strukturę tabeli
B. dodać dane do tabeli
C. usunąć tabelę
D. stworzyć nową tabelę
Odpowiedź jest poprawna, ponieważ polecenie ALTER w języku SQL służy do modyfikacji istniejącej struktury tabeli. Umożliwia ono wykonywanie różnych operacji, takich jak dodawanie nowych kolumn, zmiana typu danych istniejących kolumn, a także usuwanie kolumn. Przykładem użycia może być zmiana typu danych kolumny 'wiek' w tabeli 'Użytkownicy' z INTEGER na VARCHAR, co można osiągnąć za pomocą zapytania: ALTER TABLE Użytkownicy MODIFY COLUMN wiek VARCHAR(3). Zmiana struktury tabeli jest istotna w kontekście dostosowywania bazy danych do zmieniających się wymagań aplikacji i użytkowników, co jest kluczowe dla utrzymania jej elastyczności i wydajności. Warto również pamiętać, że modyfikacje struktury tabeli powinny być przeprowadzane z zachowaniem zasad bezpieczeństwa danych oraz odpowiednich procedur kontroli wersji, aby zminimalizować ryzyko utraty danych lub wprowadzenia błędów. Dzięki zrozumieniu i umiejętnemu stosowaniu polecenia ALTER, administratorzy baz danych mogą skuteczniej zarządzać strukturą i integralnością danych.

Pytanie 22

Polecenie MySQL:

ALTER TABLE ksiazki
    MODIFY tytul VARCHAR(100) NOT NULL;
Przedstawione polecenie MySQL ma za zadanie
A. usunąć kolumnę tytul z tabeli ksiazki
B. zmienić nazwę kolumny w tabeli ksiazki
C. zmienić typ kolumny tytul w tabeli ksiazki
D. dodać do tabeli ksiazki kolumnę tytul
Polecenie ALTER TABLE w przedstawionym zapytaniu jest używane do modyfikacji struktury istniejącej tabeli w bazie danych MySQL. W szczególności, zapytanie zmienia typ kolumny 'tytul' w tabeli 'ksiazki' na VARCHAR(100) oraz ustawia ten typ jako NOT NULL, co oznacza, że ta kolumna nie może zawierać wartości NULL. Typ VARCHAR jest typem danych zmiennych o długości, co pozwala na przechowywanie ciągów znaków o zmiennej długości do 100 znaków. Zmiana typu kolumny może być przydatna w sytuacjach, gdy chcemy zmienić sposób przechowywania danych lub dostosować je do nowych wymagań aplikacji. Przykładem może być sytuacja, w której początkowo tytul był przechowywany jako tekst o stałej długości (np. CHAR), ale później zdecydowano, że lepszym rozwiązaniem będzie przechowywanie go jako VARCHAR dla oszczędności miejsca. W kontekście standardów SQL, modyfikacja kolumny zgodnie z definicją standardu SQL jest dopuszczalna, pod warunkiem, że nie narusza ona reguł dotyczących integralności danych i typów. Warto również pamiętać, że zmiana typu kolumny w bazie danych może wymagać migracji danych, co należy uwzględnić w planowaniu zmian.

Pytanie 23

W bazie danych MySQL znajduje się tabela z programami komputerowymi, posiadająca kolumny: nazwa, producent, rokWydania. Jaką kwerendę SELECT należy zastosować, aby uzyskać listę wszystkich producentów, unikając powtórzeń?

A. SELECT DISTINCT producent FROM programy
B. SELECT UNIQUE producent FROM programy
C. SELECT producent FROM programy WHERE producent NOT DUPLICATE
D. SELECT producent FROM programy WHERE UNIQUE
Aby uzyskać unikalne wartości z kolumny w bazie danych MySQL, należy użyć słowa kluczowego DISTINCT. W przypadku zapytania SELECT DISTINCT producent FROM programy; zapytanie to zwraca wszystkie unikalne nazwy producentów z tabeli programy. Słowo kluczowe DISTINCT działa na poziomie wierszy, co oznacza, że przeszukuje kolumnę producent, eliminując z wyników wszelkie powtarzające się wartości. Jest to szczególnie przydatne w analizie danych, gdzie istotne jest uzyskanie przeglądu unikalnych elementów. Na przykład, jeżeli tabela zawiera kilka wierszy z tym samym producentem, zapytanie to zwróci jedynie jeden wiersz dla każdego producenta. Przykład zastosowania: w przypadku tabeli zawierającej wartości jak 'Microsoft', 'Apple', 'Microsoft', wynik zapytania DISTINCT będzie obejmował 'Microsoft' i 'Apple'. W MySQL użycie DISTINCT jest zgodne ze standardem SQL i jest wspierane w większości systemów baz danych, co czyni je bardzo uniwersalnym narzędziem w pracy z danymi.

Pytanie 24

Co oznacza skrót SQL?

A. Sequential Question Language
B. Standard Quality Language
C. Structured Query Language
D. Simple Query Logic
SQL, czyli <em>Structured Query Language</em>, to bardzo istotny język w świecie baz danych. Pozwala na tworzenie, modyfikowanie i zarządzanie danymi w relacyjnych bazach danych. Język ten umożliwia użytkownikom definiowanie struktury bazy danych poprzez tworzenie tabel oraz określanie relacji między nimi. Ponadto, SQL jest kluczowy do manipulacji danymi, oferując szeroki wachlarz komend do selekcji, wstawiania, aktualizacji i usuwania danych. Dzięki SQL można także kontrolować dostęp do danych, definiując uprawnienia użytkowników. W praktyce, SQL jest używany w wielu narzędziach i systemach zarządzania bazami danych, takich jak MySQL, PostgreSQL, Microsoft SQL Server czy Oracle Database. Jego standaryzacja przez ANSI i ISO zapewnia, że podstawowe komendy są zrozumiałe i spójne w wielu systemach. Dla programistów i administratorów baz danych znajomość SQL jest kluczowa, ponieważ pozwala na efektywne zarządzanie i analizę danych, co jest podstawą w podejmowaniu decyzji biznesowych.

Pytanie 25

Co uzyskujemy po wykonaniu zapytania SQL?

Ilustracja do pytania
A. całkowitą liczbę uczniów
B. średnią wszystkich ocen uczniów
C. suma ocen uczniów, których średnia ocen wynosi 5
D. liczbę uczniów, których średnia ocen wynosi 5
Zapytanie SQL SELECT count(*) FROM Uczniowie WHERE srednia = 5; wykorzystuje funkcję agregującą count(*), która służy do zliczania liczby wierszy spełniających określone warunki. W tym przypadku warunkiem jest srednia = 5 co oznacza że zapytanie zlicza wszystkich uczniów których średnia ocen wynosi dokładnie 5. Jest to powszechna praktyka w analizie danych gdzie często potrzebujemy określić liczebność pewnych grup danych na przykład aby przeanalizować ich rozkład lub porównać je z innymi grupami. W profesjonalnej bazie danych zliczanie wierszy na podstawie kryteriów jest standardem co umożliwia generowanie raportów i podejmowanie decyzji na podstawie danych. Użycie count(*) bez dodatkowych parametrów jest zgodne z dobrymi praktykami ponieważ jest wydajne i łatwe w interpretacji. W praktyce stosowanie tego typu zapytań jest nieodzowne w działach analizy danych zarządzania relacjami z klientami czy w edukacji gdzie analizujemy wyniki uczniów.

Pytanie 26

Została stworzona baza danych z tabelą podzespoły, która zawiera pola: model, producent, typ, cena. W celu wyświetlenia wszystkich modeli pamięci RAM od firmy Kingston w porządku rosnącym według ceny, należy skorzystać z następującej kwerendy:

A. SELECT model FROM podzespoly WHERE typ='RAM' OR producent='Kingston' ORDER BY cena DESC
B. SELECT model FROM podzespoly WHERE typ='RAM' AND producent='Kingston' ORDER BY cena ASC
C. SELECT model FROM podzespoly WHERE typ='RAM' AND producent='Kingston' ORDER BY cena DESC
D. SELECT model FROM producent WHERE typ='RAM' OR producent='Kingston' ORDER BY podzespoly ASC
Aby skutecznie wyświetlić wszystkie modele pamięci RAM firmy Kingston w kolejności od najtańszej do najdroższej, konieczne jest zrozumienie składni zapytań SQL oraz zasad filtrowania danych w bazie danych. Kwerenda SELECT model FROM podzespoly WHERE typ='RAM' AND producent='Kingston' ORDER BY cena ASC; jest poprawna, ponieważ precyzyjnie określa, że chcemy wybrać pole 'model' z tabeli 'podzespoly', gdzie warunki są spełnione dla typu 'RAM' oraz producenta 'Kingston'. Kluczowym aspektem jest użycie operatora AND, który zapewnia, że oba warunki muszą być spełnione, co pozwala na uzyskanie dokładnych wyników. Następnie, zastosowanie klauzuli ORDER BY cena ASC pozwala na posortowanie wyników w kolejności rosnącej według ceny, co jest istotne dla użytkowników poszukujących najtańszych opcji. Przykładem zastosowania tej kwerendy w praktyce może być analiza konkurencyjności cenowej produktów na rynku pamięci RAM, co jest istotne dla sprzedawców i konsumentów. W kontekście standardów SQL, konstrukcja ta przestrzega zasad definiowanych przez ANSI SQL, co czyni ją zgodną z większością systemów zarządzania bazami danych.

Pytanie 27

Na podstawie tabeli Towar wykonano następujące zapytanie SQL. Jaki będzie wynik tej operacji?

 SELECT nazwa_towaru FROM `Towar` WHERE cena_katalogowa < 65 ORDER BY waga DESC;
IDnazwa_towarucena_katalogowawagakolor
1Papier ksero A4112.3biel
2Zeszyt A54.20.13wielokolorowy
3Zeszyt A5 w linie3.50.12niebieski
4Kredki 24 kolory90.3wielokolorowy
5Plecak szkolny65.51.3zielony
A. Zeszyt A5, Zeszyt A5 w linie, Kredki 24 kolory, Papier ksero A4
B. Papier ksero A4, Kredki 24 kolory, Zeszyt A5, Zeszyt A5 w linie
C. Papier ksero A4, Kredki 24 kolory, Zeszyt A5 w linie, Zeszyt A5
D. Zeszyt A5 w linie, Zeszyt A5, Kredki 24 kolory, Papier ksero A4
Twoja odpowiedź jest poprawna. Wykonane zapytanie SQL zwracałoby nazwy towarów, które spełniają warunek ceny katalogowej mniejszej niż 65. Listę tych towarów następnie sortuje od najcięższego do najlżejszego. W przypadku podanej tabeli towary, które spełniają te warunki to: Papier ksero A4 (waga 2.3), Kredki 24 kolory (waga 0.3), Zeszyt A5 (waga 0.13) i Zeszyt A5 w linie (waga 0.12). To jest kluczowy aspekt zrozumienia zapytań SQL, które obejmują selekcję i sortowanie danych. W praktyce, umiejętność filtrowania i organizowania danych jest niezbędna do analizy danych i tworzenia raportów w systemach baz danych. Zrozumienie jak zapytania SQL działa na poziomie podstawowym, umożliwi Ci przewidywanie wyników zapytań, co jest kluczowe dla dobrze zaprojektowanych systemów baz danych.

Pytanie 28

Jakiej kwerendy w bazie MariaDB należy użyć, aby wybrać artykuły, których ceny mieszczą się w przedziale domkniętym <10, 20>?

A. SELECT * FROM Artykuly WHERE Cena IN (10, 20)
B. SELECT * FROM Artykuly WHERE Cena BETWEEN 10 AND 20
C. SELECT * FROM Artykuly WHERE Cena > 10 AND Cena < 20
D. SELECT * FROM Artykuly WHERE Cena LIKE 1%, 2%
Odpowiedź 'SELECT * FROM Artykuly WHERE Cena BETWEEN 10 AND 20;' jest prawidłowa, ponieważ wykorzystuje operator BETWEEN, który jest idealny do określenia wartości zawartych w obustronnie domkniętym przedziale. W tym przypadku zapytanie zwróci wszystkie artykuły, których cena jest równa 10 lub 20 oraz wszystkie wartości znajdujące się pomiędzy tymi dwoma wartościami. Operator BETWEEN jest standardowym sposobem na łatwe zapisywanie takich warunków w SQL, co czyni kod bardziej czytelnym i zrozumiałym. Przykład zastosowania to sytuacja, gdy chcemy znaleźć produkty w określonym przedziale cenowym na stronie e-commerce. Tego typu kwerendy są bardzo powszechne w analizie danych i zarządzaniu bazami danych, a ich znajomość jest kluczowa dla efektywnego wykonywania zadań związanych z eksploracją danych. Zastosowanie BETWEEN w praktyce pozwala na automatyzację procesów wyszukiwania i filtrowania danych, co jest zgodne z najlepszymi praktykami w zakresie optymalizacji zapytań w bazach danych.

Pytanie 29

W SQL wykorzystywanym przez system baz danych MySQL atrybut UNIQUE w poleceniu CREATE TABLE

A. Jest stosowany wyłącznie w przypadku kolumn liczbowych
B. Jest używany, gdy wartości w kolumnie nie mogą się powtarzać
C. Wymusza unikalne nazwy kolumn w tabeli
D. Zabrania wprowadzenia wartości NULL
Atrybut UNIQUE w MySQL jest kluczowym elementem definicji tabeli, który zapewnia, że wartości w danej kolumnie są unikalne w obrębie całej tabeli. Oznacza to, że nie może być dwóch wierszy, które mają tę samą wartość w kolumnie oznaczonej jako UNIQUE. Jest to szczególnie istotne w kontekście zarządzania danymi, gdyż pozwala na eliminację duplikatów, co jest zgodne z najlepszymi praktykami projektowania baz danych. Przykładem zastosowania atrybutu UNIQUE może być tabela przechowująca dane użytkowników, gdzie adres e-mail powinien być unikalny dla każdego użytkownika. Dzięki temu, system może zapewnić, że nie dojdzie do przypadkowego utworzenia dwóch kont z tym samym adresem e-mail. Warto dodać, że atrybut UNIQUE może współistnieć z wartościami NULL – w MySQL, wiele wartości NULL jest dozwolonych w kolumnie, która ma zastosowany atrybut UNIQUE. Zrozumienie i prawidłowe wykorzystanie tego atrybutu jest kluczowe dla zachowania integralności danych i efektywności operacji na bazie danych.

Pytanie 30

Które dane zostaną wybrane w wyniku działania kwerendy na przedstawionych rekordach?

SELECT id FROM samochody WHERE rocznik LIKE "2%4";
idmarkamodelrocznik
1FiatPunto2016
2FiatPunto2002
3FiatPunto2007
4OpelCorsa2016
5OpelAstra2003
6ToyotaCorolla2016
7ToyotaCorolla2014
8ToyotaYaris2004
A. Tylko identyfikator równy 8.
B. Brak danych.
C. Wszystkie identyfikatory.
D. Identyfikatory równe 7 oraz 8.
Prawidłowa odpowiedź wskazuje, że w wyniku działania kwerendy zostaną wybrane rekordy z id równymi 7 oraz 8, ponieważ oba te roczniki zaczynają się cyfrą 2 i kończą na 4, co spełnia warunek LIKE '2%4'. W SQL operator LIKE umożliwia wyszukiwanie wzorców w danych tekstowych i jest bardzo użyteczny w sytuacjach, gdy nieznana jest pełna wartość, a tylko jej część. W praktycznych aplikacjach, takich jak systemy zarządzania bazami danych, często stosuje się ten operator do filtrowania wyników na podstawie niepełnych informacji. Na przykład, jeżeli chciałbyś zidentyfikować wszystkie pojazdy z określonym rocznikiem, użycie LIKE może szybko zawęzić wyniki. Używanie tego operatora w połączeniu z innymi funkcjami SQL, jak GROUP BY czy JOIN, pozwala na kompozycję bardziej złożonych zapytań, co jest standardem w analityce danych.

Pytanie 31

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

A. Reguły
B. Indeksy
C. Wartości domyślne
D. Klucze podstawowe
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 32

Przedstawiony fragment kodu PHP ma za zadanie umieścić dane znajdujące się w zmiennych $a, $b, $c w bazie danych, w tabeli dane. Tabela dane zawiera cztery pola, z czego pierwsze to autoinkrementowany klucz główny. Które z poleceń powinno być przypisane do zmiennej $zapytanie?

<?php
...
$zapytanie = "...";
mysqli_query($db, $zapytanie);
...
?>
A. INSERT INTO dane VALUES ('$a', '$b', '$c');
B. INSERT INTO dane VALUES (NULL, '$a', '$b', '$c');
C. SELECT '$a', '$b', '$c' FROM dane;
D. SELECT NULL, '$a', '$b', '$c' FROM dane;
Właściwe polecenie to 'INSERT INTO dane VALUES (NULL, '$a', '$b', '$c');'. Użycie NULL w pierwszym polu pozwala na automatyczne ustawienie wartości klucza głównego, co jest zgodne z zasadą autoinkrementacji w bazach danych. Wartości zmiennych $a, $b i $c są wstawiane do kolejnych pól tabeli, co jest standardową praktyką w przypadku dodawania nowych rekordów do bazy danych. Dobrą praktyką jest również stosowanie przygotowanych zapytań, aby zminimalizować ryzyko ataków typu SQL injection. Można to osiągnąć za pomocą funkcji mysqli_prepare, co zwiększa bezpieczeństwo aplikacji. W kontekście standardów branżowych, PostgreSQL oraz MySQL stosują podobne zasady dotyczące wstawiania danych, co czyni tę wiedzę uniwersalną dla różnych systemów zarządzania bazami danych. Warto również zrozumieć, że wstawianie danych bezpośrednio przy użyciu zmiennych bez walidacji może prowadzić do błędów, dlatego zaleca się ich odpowiednie przetwarzanie przed wykonaniem zapytania.

Pytanie 33

Aby wyszukać w tabeli Pracownicy tylko te nazwiska, które kończą się na literę "i", można zastosować kwerendę SQL

A. SELECT nazwisko FROM Pracownicy WHERE nazwisko LIKE "i"
B. SELECT nazwisko FROM Pracownicy WHERE nazwisko LIKE "i%"
C. SELECT nazwisko FROM Pracownicy WHERE nazwisko LIKE "%i"
D. SELECT nazwisko FROM Pracownicy WHERE nazwisko LIKE "%i%"
Fajnie, że wybrałeś tę kwerendę SQL: 'SELECT nazwisko FROM Pracownicy WHERE nazwisko LIKE "%i";'. To jest naprawdę dobra robota, bo zastosowałeś operator LIKE w odpowiedni sposób. Wzorzec '%i' pozwala na wyszukiwanie nazwisk kończących się na literę 'i'. Ten symbol '%' to taki wildcard, który mówi SQL, żeby szukał czegokolwiek przed 'i', nawet niczego. To jest mega przydatne w codziennej pracy z bazami danych, bo często musimy wyciągać konkretne dane, żeby coś załatwić. Na przykład, jeśli chcemy stworzyć listę pracowników, którzy mają nazwiska kończące się na 'i', to ta kwerenda będzie strzałem w dziesiątkę. Pamiętaj, że dobrze jest testować swoje kwerendy na próbnych danych, żeby mieć pewność, że wyniki są takie, jakie chcemy.

Pytanie 34

Jak utworzyć klucz obcy na wielu kolumnach podczas definiowania tabeli?

A. CONSTRAINT (nazwisko, imie) FOREIGN REFERENCES KEY osoby (nazwisko, imie)
B. CONSTRAINT fk_osoba_uczen FOREIGN KEY ON(nazwisko, imie) REFERENCES osoby (nazwisko, imie)
C. CONSTRAINT fk_osoba_uczen FOREIGN KEY(nazwisko, imie) REFERENCES osoby (nazwisko, imie)
D. CONSTRAINT (nazwisko, imie) FOREIGN KEY REFERENCES osoby (nazwisko, imie)
Aby utworzyć klucz obcy na wielu kolumnach w relacyjnej bazie danych, używamy konstrukcji SQL, która specyfikuje klauzulę CONSTRAINT, a następnie definiuje składniki klucza obcego. W przypadku podanej poprawnej odpowiedzi, mamy do czynienia z konstrukcją, która jest zgodna z standardem SQL. Klucz obcy łączy dwie tabele, zapewniając integralność referencyjną, co oznacza, że wartości w kolumnach klucza obcego muszą odpowiadać wartościom w kolumnach klucza podstawowego w innej tabeli. W tym przypadku klucz obcy odnosi się do kolumn 'nazwisko' i 'imie' w tabeli 'osoby'. Dodatkowo, poprawna składnia 'FOREIGN KEY(nazwisko, imie)' wskazuje, które kolumny w bieżącej tabeli są kluczem obcym, a 'REFERENCES osoby (nazwisko, imie)' wskazuje, że te kolumny odnoszą się do kolumn w tabeli 'osoby'. Przykładowo, jeśli mamy tabelę 'uczniowie', która przechowuje dane uczniów, to klucz obcy może pomóc w powiązaniu ich z tabelą 'osoby', co jest niezwykle istotne dla zachowania spójności danych oraz unikania anomalii podczas operacji CRUD (Create, Read, Update, Delete).

Pytanie 35

Według którego pola tabeli zostały pogrupowane dane w przedstawionym raporcie?

Ilustracja do pytania
A. wynik
B. nazwa
C. rok
D. id_uczestnika
Poprawnie wskazano, że dane w raporcie zostały pogrupowane według pola „rok”. Widać to po tym, że poszczególne rekordy są zebrane w bloki oznaczone nagłówkami 2009, 2010, 2011, 2012, 2020, a dopiero pod każdym z tych lat pojawiają się konkretne konkursy, id_uczestnika i wynik. To jest właśnie klasyczny przykład grupowania danych w raporcie po jednym z pól tabeli – w tym przypadku po kolumnie roku. W praktyce, czy to w SQL, czy w kreatorach raportów (np. w MS Access, LibreOffice Base, Crystal Reports, narzędziach BI), gdy projektujemy raport, często definiujemy tzw. sekcję grupującą (group header) opartą na wybranym polu. Tutaj takim polem jest rok, więc każda zmiana wartości roku powoduje rozpoczęcie nowej grupy i wyświetlenie nagłówka z tą wartością. To poprawia czytelność i pozwala łatwo analizować dane w podziale na lata. Moim zdaniem warto zapamiętać, że grupowanie po dacie lub roku to jedna z najczęściej stosowanych praktyk raportowych: używa się tego do raportów sprzedaży w latach, statystyk odwiedzin strony WWW, wyników egzaminów itd. W SQL można by to od strony danych poprzedzić np. zapytaniem sortującym: SELECT * FROM konkursy ORDER BY rok, nazwa; a samo faktyczne grupowanie wizualne realizuje już mechanizm raportów. Dobrą praktyką jest też, żeby pole, po którym grupujemy, było najpierw użyte do sortowania – inaczej grupy mogą się „rozsypać” i raport stanie się nieczytelny.

Pytanie 36

Jakie cechy powinien posiadać klucz główny?

A. Jest unikatowy, może mieć tylko wartości całkowite
B. Jest unikatowy, nie może zawierać pustych wartości
C. Reprezentowany jest przez jedno pole tabeli, jego wartość nie może ulegać zmianie
D. Nie może przybierać wartości, reprezentowany jest przez dokładnie jedno pole tabeli
Odpowiedź wskazująca, że klucz główny jest unikatowy i nie może przyjmować pustych wartości jest absolutnie poprawna. Klucz główny w relacyjnych bazach danych pełni kluczową rolę w identyfikacji unikalnych rekordów w tabeli. Jego unikalność zapewnia, że każdy wiersz w tabeli można jednoznacznie zidentyfikować, co jest kluczowe dla utrzymania integralności danych. Na przykład, w tabeli użytkowników, identyfikator użytkownika (user_id) może pełnić rolę klucza głównego, co pozwala na łatwe wyszukiwanie i powiązanie danych z innymi tabelami, takimi jak zamówienia czy posty. Standardy takie jak ISO/IEC 9075 (SQL) podkreślają znaczenie kluczy głównych w projektowaniu baz danych. Dodatkowo, dobrym zwyczajem jest, aby kolumny będące kluczami głównymi były także oznaczone jako NOT NULL, co zapobiega wprowadzeniu pustych wartości, a tym samym zapewnia integralność danych. Zrozumienie tego konceptu jest niezbędne dla każdego, kto projektuje lub zarządza bazami danych, ponieważ błędy w definicji kluczy głównych mogą prowadzić do poważnych problemów z integralnością danych.

Pytanie 37

Jak można zweryfikować spójność danych w bazie MySQL?

A. mysqldump
B. REPAIR TABLE
C. CHECK TABLE
D. mysql
Polecenie CHECK TABLE w MySQL służy do sprawdzania integralności danych w tabeli. Umożliwia to identyfikację problemów, takich jak zduplikowane klucze, uszkodzone wskaźniki lub nieprawidłowe struktury danych. Przykładem zastosowania tego polecenia jest sytuacja, gdy administrator bazy danych podejrzewa, że tabela mogła ulec uszkodzeniu na skutek błędów systemowych lub nieprawidłowych operacji użytkownika. W takim przypadku używając CHECK TABLE, można szybko zdiagnozować problemy i podjąć odpowiednie działania, takie jak naprawa za pomocą polecenia REPAIR TABLE, jeśli to konieczne. Dobre praktyki w zakresie zarządzania bazami danych sugerują regularne sprawdzanie integralności tabel, co pozwala na szybsze wykrywanie problemów oraz minimalizację ryzyka utraty danych. Warto również pamiętać, że CHECK TABLE dostarcza szczegółowych informacji o stanie tabeli, co jest szczególnie przydatne w kontekście monitorowania wydajności i stabilności bazy danych. Z tego względu to polecenie jest kluczowym narzędziem w arsenale każdego administratora MySQL.

Pytanie 38

W tabeli klienci znajduje się pole status, które może przyjmować wartości: Zwykły, Złoty, Platynowy. Z uwagi na to, że dane klientów o statusie Platynowy są przetwarzane najczęściej, konieczne jest utworzenie wirtualnej tabeli (widoku), która będzie zawierała wyłącznie te informacje. W tym celu można użyć kwerendy

A. CREATE VIEW KlienciPlatyna FROM klienci WHERE status = "Platynowy"
B. CREATE VIEW KlienciPlatyna AS SELECT status FROM klienci WHERE "Platynowy"
C. CREATE VIEW KlienciPlatyna AS SELECT * FROM klienci WHERE status = "Platynowy"
D. CREATE VIEW KlienciPlatyna AS klient WHERE status = "Platynowy"
Odpowiedź CREATE VIEW KlienciPlatyna AS SELECT * FROM klienci WHERE status = "Platynowy"; jest prawidłowa, ponieważ poprawnie definiuje widok wirtualny, który zawiera wszystkie kolumny z tabeli klienci, filtrując jedynie te rekordy, które mają status Platynowy. Kwerenda 'CREATE VIEW KlienciPlatyna AS SELECT * FROM klienci WHERE status = "Platynowy";' jest zgodna z syntaksą SQL dla tworzenia widoków. Przykładowo, jeśli w tabeli klienci znajdują się dane dotyczące różnych statusów, to po utworzeniu widoku KlienciPlatyna można łatwo uzyskać dostęp do danych wyłącznie dla klientów o statusie Platynowym, co zwiększa efektywność przetwarzania danych i ułatwia analizy. Stosowanie widoków jest jedną z dobrych praktyk w bazach danych, ponieważ pozwala na redukcję złożoności zapytań oraz poprawia bezpieczeństwo, umożliwiając ograniczenie dostępu do wrażliwych danych. Dzięki widokom, można także ukryć złożoność struktury bazy danych przed użytkownikami końcowymi, co sprzyja lepszej organizacji pracy z danymi. To podejście jest szczególnie przydatne w środowisku biznesowym, gdzie przetwarzanie danych musi być szybkie i efektywne, a tworzenie widoków umożliwia optymalizację tych procesów.

Pytanie 39

Tabele Osoby oraz Zainteresowania są połączone relacją jeden do wielu. Jakie zapytanie SQL należy użyć, aby w oparciu o tę relację poprawnie wyświetlić imiona i odpowiadające im hobby?

Ilustracja do pytania
A. SELECT imie, hobby FROM Osoby, Zainteresowania;
B. SELECT imie, hobby FROM Osoby.Zainteresowania_id = Zainteresowania.id FROM Osoby, Zainteresowania;
C. SELECT imie, hobby FROM Osoby JOIN Zainteresowania ON Osoby.Zainteresowania_id = Zainteresowania.id;
D. SELECT imie, hobby FROM Osoby, Zainteresowania WHERE Osoby.id = Zainteresowania.id;
Odpowiedź numer 1 jest poprawna, ponieważ wykorzystuje składnię JOIN, która jest standardowym sposobem łączenia dwóch tabel w SQL. W tym przypadku tabele Osoby i Zainteresowania są połączone za pomocą klucza obcego Osoby.Zainteresowania_id, który odwołuje się do klucza głównego w tabeli Zainteresowania. Dzięki użyciu klauzuli ON możemy precyzyjnie określić warunek łączenia tych tabel. Takie podejście jest zgodne z dobrymi praktykami projektowania baz danych, ponieważ pozwala na efektywne zarządzanie relacjami między danymi. Stosowanie JOIN umożliwia również ograniczenie wyniku do konkretnych wierszy, co zwiększa wydajność zapytań. Praktyczne zastosowanie tego rodzaju zapytań obejmuje różne systemy zarządzania danymi, gdzie konieczne jest pobieranie powiązanych informacji z wielu źródeł danych. Warto również pamiętać, że JOIN-y są ustandaryzowanym elementem języka SQL, co gwarantuje ich poprawne działanie w różnych systemach bazodanowych, takich jak MySQL, PostgreSQL czy Oracle SQL. W kontekście relacyjnych baz danych stanowią one fundament w optymalizacji i organizacji danych, co jest kluczowe dla profesjonalistów z branży IT.

Pytanie 40

Zdefiniowano bazę danych z tabelą sklepy, która zawiera pola: nazwa, ulica, miasto, branza. W celu zlokalizowania wszystkich nazw sklepów spożywczych, które znajdują się tylko we Wrocławiu, należy wykorzystać kwerendę:

A. SELECT nazwa FROM sklepy WHERE branza="spozywczy" AND miasto="Wrocław"
B. SELECT nazwa FROM sklepy WHERE branza="spozywczy" OR miasto="Wrocław"
C. SELECT sklepy FROM branza="spożywczy" WHERE miasto="Wrocław"
D. SELECT sklepy FROM nazwa WHERE branza="spożywczy" BETWEEN miasto="Wrocław"
Odpowiedź 'SELECT nazwa FROM sklepy WHERE branza="spozywczy" AND miasto="Wrocław";' jest poprawna, ponieważ wykorzystuje właściwą składnię SQL do pobrania danych. W tym przypadku chcemy wybrać nazwy sklepów z tabeli 'sklepy', które spełniają dwa warunki: branża musi być równa 'spozywczy', a miasto musi być równe 'Wrocław'. Użycie operatora AND zapewnia, że oba kryteria muszą być spełnione jednocześnie, co jest kluczowe w tym zadaniu. Ponadto, dobrym zwyczajem jest stosowanie podwójnych cudzysłowów dla nazw kolumn i wartości tekstowych. Przykładowo, w praktyce taka kwerenda może być użyta do analizy lokalizacji sklepów spożywczych w danym mieście, co może być istotne dla strategii marketingowej lub planowania rozwoju sieci handlowej. Zrozumienie struktury SQL oraz sposób formułowania zapytań jest fundamentem efektywnego zarządzania danymi w relacyjnych bazach danych.