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: 11 maja 2026 10:22
  • Data zakończenia: 11 maja 2026 10:37

Egzamin zdany!

Wynik: 27/40 punktów (67,5%)

Wymagane minimum: 20 punktów (50%)

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

W MySQL nadanie roli DBManager użytkownikowi pozwala na uzyskanie praw umożliwiających

A. wszelkie operacje na bazach danych serwera
B. wszystkie działania na bazach danych oraz użytkownikach serwera
C. tworzenie kont użytkowników na serwerze oraz przypisywanie im haseł
D. nadzorowanie serwera
Odpowiedź 'wszelkie operacje na bazach danych serwera' jest prawidłowa, ponieważ rola DBManager w MySQL przyznaje użytkownikowi pełne uprawnienia do zarządzania bazami danych. Obejmuje to możliwość tworzenia, modyfikowania i usuwania baz danych oraz tabel, a także wykonywania zapytań w tych bazach. Rola ta jest użyteczna w kontekście administracji bazami danych, gdzie administratorzy muszą mieć dostęp do wszystkich funkcji związanych z danymi. Przykładowo, administrator może wykorzystać tę rolę do optymalizacji wydajności baz danych poprzez indeksowanie tabel lub do tworzenia kopii zapasowych. Z perspektywy dobrych praktyk, nadawanie ról z odpowiednimi uprawnieniami powinno być przeprowadzane z rozwagą, aby zminimalizować ryzyko nieautoryzowanego dostępu i zapewnić integralność danych. Warto również pamiętać, że w MySQL można zastosować szczegółowe uprawnienia dla poszczególnych użytkowników, co pozwala na dostosowanie dostępu do konkretnych zadań w organizacji.

Pytanie 2

Formularz, który pełni rolę pośrednika w nawigacji po bazie danych pomiędzy formularzami i kwerendami dostępnymi w systemie, określany jest jako formularz

A. głównym
B. zagnieżdżonym
C. sterującym
D. pierwotnym
Formularz sterujący jest kluczowym elementem w projektowaniu baz danych, który pozwala na efektywną nawigację pomiędzy różnymi formularzami oraz kwerendami. Jego główną funkcją jest dostarczanie użytkownikowi centralnego punktu dostępu do różnych części aplikacji, co ułatwia zarządzanie danymi oraz ich przeglądanie. Przykładowo, w aplikacjach biznesowych formularz sterujący może zawierać przyciski, które kierują użytkownika do formularzy wprowadzania danych, formularzy raportowych, czy kwerend do wyszukiwania informacji. Dobrą praktyką jest, aby formularz sterujący był intuicyjny i estetyczny, co zwiększa użyteczność i efektywność aplikacji. W standardach projektowania baz danych, formularze sterujące są często powiązane z koncepcją MVC (Model-View-Controller), gdzie pełnią rolę kontrolera, który zarządza przepływem danych między modelem a widokiem, co umożliwia lepsze organizowanie interakcji użytkownika z systemem.

Pytanie 3

W tabeli artykuly wykonano określone instrukcje dotyczące uprawnień użytkownika jan. Po ich realizacji użytkownik jan uzyska możliwość

GRANT ALL PRIVILEGES ON artykuly TO jan
REVOKE SELECT, UPDATE ON artykuly FROM jan
A. sprawdzania zawartości tabeli
B. edycji danych i przeglądania zawartości tabeli
C. tworzenia tabeli i wypełniania jej informacjami
D. tworzenia tabeli oraz edytowania jej zawartości
Analizując pytanie i dostępną sekwencję poleceń SQL jasno wynika że użytkownik jan po wykonaniu tych poleceń nie zachowa uprawnień do przeglądania ani aktualizowania danych w tabeli artykuly. Pierwsze polecenie GRANT ALL PRIVILEGES przyznaje pełne uprawnienia co obejmuje tworzenie modyfikowanie usuwanie danych oraz ich przeglądanie. Jednakże drugie polecenie REVOKE SELECT UPDATE wycofuje konkretne prawa do przeglądania (SELECT) oraz aktualizowania (UPDATE) danych co oznacza że jan nie będzie mógł ani przeglądać ani modyfikować istniejących danych. To wyklucza odpowiedzi dotyczące aktualizowania danych i przeglądania tabeli jako poprawne. Często błędem jest założenie że cofnięcie tylko dwóch uprawnień nie wpłynie na możliwość podstawowych operacji takich jak przeglądanie. W rzeczywistości koordynacja uprawnień w bazach danych wymaga dokładnej analizy wszystkich przyznanych i cofniętych praw. Takie zarządzanie dostępem jest kluczowe dla zapewnienia bezpieczeństwa i integralności danych szczególnie w środowiskach produkcyjnych gdzie błędna konfiguracja może prowadzić do niepożądanych modyfikacji lub utraty danych.

Pytanie 4

Model fizyczny replikacji bazy danych pokazany na ilustracji to model

Ilustracja do pytania
A. centralnego subskrybenta
B. równorzędny
C. rozproszony
D. centralnego wydawcy
Model centralnego wydawcy jest kluczowym elementem w systemach replikacji baz danych gdzie jeden serwer pełni rolę wydawcy dystrybutora danych do wielu subskrybentów Ta architektura pozwala na efektywne zarządzanie danymi poprzez centralne sterowanie zmianami i ich dystrybucję do podłączonych serwerów subskrybentów W praktyce takie podejście jest używane w dużych organizacjach gdzie konieczne jest zapewnienie aktualności i spójności danych w różnych lokalizacjach Przykładowo w firmach z wieloma oddziałami centralny serwer może dystrybuować dane transakcyjne do lokalnych serwerów zapewniając wszystkim oddziałom bezpośredni dostęp do aktualnych informacji Dzięki temu możliwe jest przeprowadzenie analizy danych w czasie rzeczywistym oraz synchronizacja danych co jest kluczowe w przypadku systemów ERP i CRM Stosowanie modelu centralnego wydawcy zgodnie z dobrymi praktykami umożliwia także łatwe skalowanie systemu oraz zarządzanie bezpieczeństwem danych poprzez centralne punkty kontrolne Taka architektura minimalizuje ryzyko konfliktów danych i zapewnia integralność danych co jest zgodne ze standardami branżowymi

Pytanie 5

Polecenie MySQL pokazane poniżej spowoduje, że użytkownikowi tkowal zostaną odebrane określone uprawnienia:

REVOKE DELETE, UPDATE ON pracownicy FROM 'tkowal'@'localhost';
A. odebrane uprawnienia do usuwania i modyfikacji danych w tabeli pracownicy
B. przydzielone uprawnienia do usuwania oraz aktualizacji danych w tabeli pracownicy
C. odebrane uprawnienia do usuwania i dodawania rekordów w tabeli pracownicy
D. przydzielone uprawnienia do wszelkich zmian struktury tabeli pracownicy
Polecenie REVOKE w MySQL jest używane do cofania praw dostępu, które wcześniej zostały przyznane użytkownikowi. W zapytaniu REVOKE DELETE UPDATE ON pracownicy FROM tkowal@localhost cofamy prawa do usuwania i aktualizowania danych w tabeli pracownicy użytkownikowi o nazwie tkowal. To konkretne polecenie wskazuje, że wspomniane uprawnienia były wcześniej nadane temu użytkownikowi i teraz administrator bazy danych postanowił je cofnąć. Revoke jest kluczowe w zarządzaniu bezpieczeństwem i kontrolą dostępu w systemach baz danych zwłaszcza gdy potrzeby biznesowe lub polityka bezpieczeństwa wymagają ograniczenia możliwości użytkowników MySQL. Praktycznym przykładem może być sytuacja w której pracownik o niższym poziomie uprawnień nie powinien modyfikować lub usuwać kluczowych danych w bazie co zabezpiecza dane przed nieautoryzowanymi zmianami. Dobre praktyki branżowe zalecają regularne przeglądy uprawnień i ich aktualizację tak aby były one zgodne z aktualnymi potrzebami operacyjnymi i polityką bezpieczeństwa organizacji. Zarządzanie uprawnieniami w bazach danych jest fundamentalnym elementem bezpieczeństwa IT.

Pytanie 6

Aby zwiększyć wydajność operacji na bazie danych, powinno się dla pól, które są często używane w wyszukiwaniach lub sortowaniach

A. utworzyć osobną tabelę przechowującą wyłącznie te pola.
B. utworzyć indeks.
C. dodać klucz obcy.
D. dodać więzy integralności.
Utworzenie indeksu jest jedną z najskuteczniejszych metod przyspieszania operacji na bazach danych, szczególnie w kontekście pól, które są często wyszukiwane lub sortowane. Indeksy działają na zasadzie tworzenia struktury danych, która umożliwia szybsze lokalizowanie rekordów w tabeli. Przykładami mogą być indeksy B-drzewiaste lub bitmapowe, które są powszechnie stosowane w systemach zarządzania bazami danych (DBMS). Dzięki indeksom, zapytania takie jak SELECT z klauzulą WHERE lub ORDER BY mogą zyskać na wydajności, ponieważ DBMS nie musi przeszukiwać całej tabeli, ale korzysta z indeksu, aby szybko znaleźć interesujące dane. Warto również zauważyć, że tworzenie indeksów nie jest pozbawione kosztów; przy dodawaniu lub aktualizacji rekordów w tabeli, DBMS musi także aktualizować odpowiadające im indeksy. Dlatego ważne jest, aby tworzyć indeksy na tych kolumnach, które rzeczywiście będą intensywnie wykorzystywane w zapytaniach, zgodnie z najlepszymi praktykami projektowania baz danych, aby zbalansować wydajność i koszty utrzymania bazy. Ponadto, warto regularnie analizować ich użycie i optymalizować, aby dostosować się do zmieniających się wzorców korzystania z danych.

Pytanie 7

W tabeli produkt znajdują się artykuły wyprodukowane po roku 2000, posiadające pola nazwa oraz rok_produkcji. Jakie zapytanie SQL pokaże listę artykułów wyprodukowanych?

Ilustracja do pytania
A. w latach innych niż 2017
B. w roku 2017
C. przed rokiem 2017
D. po roku 2017
Klauzula SQL wykorzystuje funkcję SUBSTR aby wyekstrahować dwie cyfry z roku produkcji zaczynając od trzeciej pozycji. To oznacza że bierze dwie cyfry odpowiadające końcówce roku. W ten sposób SELECT * FROM produkt WHERE SUBSTR(rok_produkcji3 2)=17; wyszukuje przedmioty których rok produkcji kończy się na 17 co wskazuje że zostały wyprodukowane w 2017 roku. Jest to efektywna metoda pod warunkiem że dane w kolumnie rok_produkcji są przechowywane jako ciągi znaków i spełniają wymagany format YYYY. Praktyczne zastosowanie tego podejścia jest szczególnie przydatne w bazach danych gdzie mogą występować różne formaty zapisu dat. Ważne jest aby zawsze upewnić się że dane są odpowiednio ujednolicone. Korzystanie z funkcji jak SUBSTR jest standardową praktyką w SQL umożliwiającą dynamiczne manipulowanie tekstem co czyni zapytania bardziej elastycznymi. Zrozumienie tego mechanizmu jest kluczowe dla efektywnego zarządzania bazami danych w kontekście filtrowania danych na podstawie ich struktur tekstowych.

Pytanie 8

Jaką wiadomość należy umieścić w przedstawionym fragmencie kodu PHP zamiast znaków zapytania? $a=mysql_connect('localhost','adam','mojeHasło'); if(!$a) echo "?????????????????????????";

A. Wybrana baza danych nie istnieje
B. Rekord został pomyślnie dodany do bazy
C. Błąd połączenia z serwerem SQL
D. Błąd w przetwarzaniu zapytania SQL
W sytuacji, gdy nie udaje się nawiązać połączenia z serwerem baz danych MySQL, komunikat błędu powinien jasno wskazywać na problem związany z połączeniem. W kodzie PHP, używając funkcji mysql_connect(), jeśli połączenie się nie powiedzie, zwracany jest błąd, który powinien być odpowiednio obsłużony. W tym przypadku odpowiednia treść komunikatu powinna brzmieć 'Błąd połączenia z serwerem SQL'. Ważne jest, aby programiści dbali o poprawne komunikaty błędów, ponieważ ułatwiają one diagnozowanie problemów. Dobrą praktyką jest także stosowanie obsługi wyjątków, co zwiększa stabilność aplikacji. Przykład: zamiast używać mysql_connect(), zaleca się korzystanie z mysqli lub PDO, które oferują bardziej zaawansowane opcje zarządzania błędami oraz obsługę wyjątków. W przypadku użycia mysqli, mógłbyś to zrobić w następujący sposób: $mysqli = new mysqli('localhost', 'adam', 'mojeHasło'); if ($mysqli->connect_error) { echo 'Błąd połączenia z serwerem SQL: ' . $mysqli->connect_error; } Poprawne raportowanie błędów jest kluczowym elementem programowania, ponieważ pozwala na szybką identyfikację i naprawę potencjalnych problemów.

Pytanie 9

Wskaż poprawne zdanie dotyczące poniższego polecenia. ```CREATE TABLE IF NOT EXISTS ADRES (ulica VARCHAR(70)) CHARACTER SET utf8); ```

A. Nie można dodawać do tabeli ulic, które zawierają polskie znaki w nazwie
B. Klauzula CHARACTER SET utf8 jest wymagana
C. IF NOT EXISTS używa się opcjonalnie, żeby potwierdzić, że taka tabela nie istnieje w bazie danych
D. Rekord tabeli nie może mieć wartości 3 MAJA
Klauzula IF NOT EXISTS w poleceniu CREATE TABLE jest używana do zapobiegania błędom, które mogą wystąpić, gdy próbujesz stworzyć tabelę, która już istnieje w danej bazie danych. Dzięki temu operatorowi, jeśli tabela o podanej nazwie już istnieje, polecenie nie zostanie wykonane, co pozwala na uniknięcie konfliktów oraz zbędnych błędów w aplikacji. Jest to szczególnie przydatne w sytuacjach, gdy skrypty są uruchamiane wielokrotnie, na przykład podczas aktualizacji lub migracji bazy danych. Użycie IF NOT EXISTS jest opcjonalne, ale zalecane dla poprawności i stabilności kodu SQL. Przykład praktyczny: można stworzyć tabelę 'klienci' z poleceniem 'CREATE TABLE IF NOT EXISTS klienci (id INT PRIMARY KEY, imie VARCHAR(100));', co zapobiega próbie utworzenia tabeli, która już istnieje. Zgodnie z standardami SQL, operator ten jest powszechnie akceptowany w większości systemów zarządzania bazami danych, takich jak MySQL, PostgreSQL czy SQLite, co czyni go uniwersalnym rozwiązaniem w projektach opartych na bazach danych.

Pytanie 10

W MS SQL Server komenda RESTORE DATABASE jest używana do

A. rekonstrukcji bazy danych na podstawie danych buforowanych
B. zaktualizowania bazy danych z weryfikacją więzów integralności
C. usunięcia bazy danych z serwera centralnego subskrybenta
D. przywrócenia bazy danych z kopii zapasowej
Odpowiedzi, które wskazują na inne funkcje polecenia RESTORE DATABASE, nie uwzględniają kluczowej roli, jaką odgrywa ono w odtwarzaniu bazy danych z kopii zapasowej. Przykładowo, odświeżenie bazy danych z kontrolą więzów integralności sugeruje, że polecenie to zajmuje się aktywnym zarządzaniem danymi i ich integralnością, co jest mylnym zrozumieniem jego funkcji. Kontrola integralności danych jest istotna, ale nie jest bezpośrednio związana z procesem przywracania bazy. Inna niepoprawna koncepcja odnosi się do przebudowywania bazy danych w oparciu o buforowane dane, co sugeruje, że można modyfikować strukturę bazy w oparciu o dane przechowywane w pamięci operacyjnej. Takie podejście jest błędne, ponieważ przywracanie bazy danych z kopii zapasowej ma na celu przywrócenie jej dokładnego stanu, a nie zmianę. Wreszcie, usunięcie bazy danych z serwera subskrybenta nie ma żadnego związku z poleceniem RESTORE DATABASE, które jest używane do odtwarzania, a nie usuwania. Te mylne interpretacje mogą prowadzić do poważnych błędów w zarządzaniu bazami danych, dlatego kluczowe jest, aby zrozumieć konkretne funkcje i zastosowania polecenia w kontekście administracji baz danych.

Pytanie 11

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

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

Pytanie 12

Uprawnienia obiektowe, przyznawane użytkownikom serwera bazy danych, mogą umożliwiać lub uniemożliwiać

A. realizowanie czynności, takich jak tworzenie kopii zapasowej
B. zmienianie ról oraz kont użytkowników
C. dziedziczenie uprawnień
D. wykonywanie operacji na bazie, takich jak wstawianie lub modyfikowanie danych
Uprawnienia obiektowe w systemach zarządzania bazami danych (DBMS) są kluczowym elementem bezpieczeństwa oraz zarządzania dostępem do danych. Pozwalają one na kontrolowanie, kto i w jaki sposób może korzystać z zasobów bazy danych. Odpowiedź dotycząca wykonywania operacji na bazie, takich jak wstawianie lub modyfikowanie danych, jest poprawna, ponieważ uprawnienia te bezpośrednio odnoszą się do możliwości modyfikacji danych, co jest fundamentem działania aplikacji bazodanowych. Na przykład, użytkownik z odpowiednimi uprawnieniami może dodawać nowe rekordy do tabeli za pomocą instrukcji SQL INSERT lub modyfikować istniejące dane za pomocą UPDATE. W kontekście standardów, takie jak SQL-92 oraz nowsze wersje, definiują uprawnienia, które mogą być przyznawane użytkownikom na poziomie obiektów, co pozwala na granularne zarządzanie dostępem. W praktyce, administratorzy baz danych muszą starannie przydzielać te uprawnienia, aby zapewnić integralność i bezpieczeństwo danych w systemie, co jest niezbędne do efektywnego zarządzania informacjami.

Pytanie 13

Użytkownik Jan będzie miał możliwość realizacji

GRANT ALL PRIVILEGES ON dane.* TO 'Jan'@'localhost';
A. wszystkie operacje na tabelach bazy dane oraz przekazywać prawa innym użytkownikom
B. tylko operacje manipulacji danymi oraz zmienić jedynie swoje uprawnienia
C. wyłącznie operacje CREATE, ALTER, DROP na tabelach w bazie dane
D. wszystkie operacje na tabelach w bazie dane
Odpowiedź jest prawidłowa, ponieważ polecenie GRANT ALL PRIVILEGES ON dane.* TO 'Jan'@'localhost'; przyznaje użytkownikowi Jan wszelkie uprawnienia na wszystkich tabelach w bazie danych o nazwie 'dane'. Oznacza to, że Jan może wykonywać wszystkie operacje, takie jak SELECT, INSERT, UPDATE, DELETE, CREATE, ALTER, DROP i inne, które są związane z zarządzaniem danymi oraz strukturą bazy. W praktyce oznacza to, że Jan ma pełną kontrolę nad bazą danych, co może być przydatne w scenariuszach, gdzie administratorzy chcą umożliwić użytkownikom elastyczność w zarządzaniu danymi. Warto jednak pamiętać, że przyznawanie ALL PRIVILEGES powinno być stosowane ostrożnie, aby uniknąć nieautoryzowanego dostępu do informacji. Dobrym rozwiązaniem jest stosowanie polityki minimalnych uprawnień, która ogranicza możliwości użytkowników do tylko tych, które są niezbędne do ich codziennych obowiązków.

Pytanie 14

Jakie zapytanie należy zastosować, aby pokazać tylko imię, nazwisko oraz ulicę wszystkich mieszkańców?

Ilustracja do pytania
A. SELECT * FROM Mieszkancy JOIN Adresy ON Adresy.id = Mieszkancy.Adresy.id
B. SELECT imie, nazwisko, ulica FROM Mieszkancy JOIN Adresy ON Mieszkancy.Adresy_id = Adresy.id
C. SELECT * FROM Mieszkancy, Adresy ON Mieszkancy.id = Adresy.id
D. SELECT imie, nazwisko, ulica FROM Mieszkancy, Adresy ON Mieszkancy.Adresy_id = Adresy.id
Niepoprawne podejścia wynikają głównie z braku zastosowania właściwego połączenia między tabelami lub wyboru odpowiednich kolumn. Pierwszym błędem jest użycie SELECT * bez szczegółowego określenia, jakie kolumny są potrzebne. Taki zapis powoduje, że zwracane są wszystkie kolumny z obu tabel, co jest nieefektywne i niezgodne z najlepszymi praktykami, zakładającymi minimalizację przetwarzanych danych. Ponadto, wykorzystanie przecinka zamiast JOIN wprowadza niepotrzebny chaos i może prowadzić do błędów, zwłaszcza w złożonych zapytaniach, gdzie konieczne jest połączenie większej liczby tabel. Druga odpowiedź zawiera niepoprawne użycie ON, które nie jest zgodne z zasadami SQL, co powoduje błędne wyniki lub nawet awarie zapytań. Brak jest również specyfikacji kolumn, co prowadzi do zwrócenia zbyt dużej ilości danych. Dodatkowo, błędnie skonstruowane połączenie prowadzi do niepoprawnego mapowania wierszy, przez co zwracane dane nie odzwierciedlają rzeczywistych relacji między mieszkańcami a adresami. Dobre praktyki nakazują, aby zawsze używać JOIN z wyraźnym określeniem kluczy obcych i głównych, co zapewnia właściwe mapowanie wierszy i minimalizację błędów. Ważne jest również, aby każdorazowo testować zapytanie pod kątem wydajności i poprawności, a także dbać o czytelność i zrozumiałość kodu SQL, co jest kluczowe w kontekście zespołowego rozwoju oprogramowania.

Pytanie 15

Jakie prawa: CREATE, ALTER, DROP zostały użyte w poleceniu GRANT?

A. przyznawania uprawnień innym użytkownikom
B. pobierania danych z bazy
C. pracy ze strukturą
D. pracy z danymi
Analiza pozostałych odpowiedzi prowadzi do nieporozumień związanych z różnymi rodzajami uprawnień w systemach baz danych. Manipulowanie danymi odnosi się głównie do operacji takich jak SELECT, INSERT, UPDATE i DELETE, które są używane do odczytywania i zmieniania danych przechowywanych w tabelach. Zestaw praw użyty w poleceniu GRANT nie obejmuje tych operacji, co czyni tę odpowiedź niewłaściwą. W przypadku wybierania informacji z bazy danych, odpowiednie prawa to SELECT, które nie mają związku z manipulowaniem strukturą. Ponadto, nadawanie praw innym użytkownikom jest związane z używaniem polecenia GRANT, ale nie odnosi się bezpośrednio do zestawu praw CREATE, ALTER i DROP. To ważne, aby zrozumieć, że każdy z tych typów uprawnień ma swoje specyficzne zastosowanie i nie mogą być mylone. W praktyce, administratorzy baz danych muszą wiedzieć, które uprawnienia są niezbędne dla użytkowników, aby zrealizować konkretne zadania, a błędne przypisanie uprawnień może prowadzić do poważnych problemów bezpieczeństwa i integralności danych. Takie myślenie o uprawnieniach wymaga zrozumienia ich różnorodności i kontekstu ich zastosowania w architekturze bazy danych.

Pytanie 16

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

A. asterisk.
B. select.
C. query.
D. keyword.
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 17

W bazie danych znajduje się tabela pracownicy z kolumnami: id, imie, nazwisko, pensja. W nadchodzącym roku postanowiono zwiększyć wynagrodzenie wszystkim pracownikom o 100 zł. Zmiana ta w bazie danych będzie miała formę

A. UPDATE pracownicy SET pensja = pensja +100;
B. UPDATE pensja SET 100;
C. UPDATE pensja SET +100;
D. UPDATE pracownicy SET pensja = 100;
W celu podniesienia pensji wszystkim pracownikom o 100 zł, zastosowanie ma polecenie SQL UPDATE. Poprawna instrukcja 'UPDATE pracownicy SET pensja = pensja + 100;' działa na zasadzie modyfikacji istniejących wartości w kolumnie 'pensja' w tabeli 'pracownicy'. Ta konstrukcja przyjmuje bieżącą wartość pensji każdego pracownika i dodaje do niej 100 zł. Jest to standardowa praktyka w SQL, gdzie używamy operatora '+', aby zmodyfikować dane. Warto pamiętać, że takie operacje są powszechnie wykorzystywane w systemach baz danych do aktualizacji informacji, co pozwala na efektywne zarządzanie danymi. Dla porównania, instrukcje SELECT, które służą do pobierania danych, nie są odpowiednie w tym kontekście. W rezultacie każdy pracownik w tabeli otrzyma nową, zwiększoną pensję, co odzwierciedli aktualizację w bazie danych.

Pytanie 18

Zapytanie MySQL przedstawione poniżej ma na celu

ALTER TABLE ksiazki MODIFY tytul VARCHAR(100) NOT NULL;
A. usunąć kolumnę tytul z tabeli ksiazki
B. zmienić typ kolumny tytul w tabeli ksiazki
C. zmienić nazwę kolumny w tabeli ksiazki
D. dodać kolumnę tytul do tabeli ksiazki
Polecenie 'ALTER TABLE ksiazki MODIFY tytul VARCHAR(100) NOT NULL;' służy do zmiany typu danych lub ograniczeń kolumny w istniejącej tabeli. W tym przypadku modyfikujemy kolumnę 'tytul' w tabeli 'ksiazki', zmieniając jej typ danych na VARCHAR(100) oraz ustawiając ograniczenie NOT NULL. Polecenie MODIFY jest używane w SQL do zmiany struktury kolumny, takiej jak typ danych, długość, czy też dodawanie ograniczeń. Praktyczne zastosowanie tego polecenia można znaleźć w sytuacjach, gdy oryginalna definicja kolumny jest niewystarczająca, np. zwiększenie długości pola tekstowego, aby pomieścić dłuższe wartości. Dobre praktyki przy modyfikacji kolumn obejmują dokładne zrozumienie zmian, które wprowadzasz, oraz testowanie ich w środowisku deweloperskim przed wdrożeniem na żywo. Ważne jest także rozważenie wpływu na istniejące dane oraz wydajność zapytań. Zmiana typu kolumny na VARCHAR z określoną długością jest szczególnie przydatna, gdy chcemy zminimalizować wykorzystanie pamięci w bazie danych.

Pytanie 19

Powszechnie stosowanym narzędziem SZBD do tworzenia zestawień danych, które można wydrukować, jest

A. kwerenda UPDATE
B. raport
C. formularz
D. makro
Kwerenda UPDATE jest używana do modyfikacji istniejących danych w bazie danych. Głównym celem kwerendy jest aktualizacja wartości pól w określonych rekordach, co jest zupełnie innym zadaniem niż generowanie zestawień danych. Użytkownicy, którzy mylnie uważają, że kwerenda UPDATE może służyć do tworzenia raportów, mogą nie rozumieć podstawowego podziału funkcji w systemach bazodanowych. Z kolei formularz jest interfejsem użytkownika, który umożliwia wprowadzanie danych do bazy, ale nie jest narzędziem do generowania zestawień, co sprawia, że jego zastosowanie jest także niewłaściwe w kontekście tego pytania. Makro, z drugiej strony, to zestaw instrukcji automatyzujących różne operacje w bazie danych, ale także nie jest dedykowane do tworzenia raportów. Kluczowym błędem myślowym jest utożsamianie narzędzi do modyfikacji lub wprowadzania danych z narzędziami do ich analizy i raportowania. Warto zrozumieć, że każdy z tych elementów ma swoje specyficzne zastosowanie w systemach zarządzania bazami danych, a ich pomylenie może prowadzić do nieskutecznego wykorzystania zasobów oraz obniżenia jakości analizy danych.

Pytanie 20

Jaki typ komunikatu jest zawsze przesyłany wyłącznie w kierunku w dół, to jest od kierownika do pracownika?

A. Zgłaszanie.
B. Uwagi dotyczące polityki organizacji.
C. Powierzenie zadania.
D. Poszukiwanie rozwiązań.
Powierzenie zadania jest komunikatem, który jest zawsze przekazywany w sposób pionowy w dół, co oznacza, że jest przekazywany od przełożonego do podwładnego. Tego typu komunikacja jest kluczowa dla efektywnego zarządzania, ponieważ pozwala przełożonym na delegowanie odpowiedzialności i ustalanie oczekiwań wobec pracowników. Przykładem może być sytuacja, w której kierownik działu przydziela zadanie konkretnej osobie, określając cele, terminy oraz zasoby potrzebne do jego realizacji. W praktyce, powierzenie zadań jest zgodne z zasadami efektywnego zarządzania projektami, gdzie klarowność i zrozumienie oczekiwań są niezbędne do osiągnięcia sukcesu. Warto również zwrócić uwagę na standardy, takie jak PMBOK, które podkreślają znaczenie komunikacji w procesie zarządzania projektami, w tym precyzyjnego delegowania zadań. Dzięki temu powierzenie zadań nie tylko zapewnia jasność, ale także zwiększa zaangażowanie pracowników i ich odpowiedzialność za realizowane projekty.

Pytanie 21

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

A. %
B. &
C. ||
D. /
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 22

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

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

Pytanie 23

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

A. krzyżowej
B. wybierająca
C. parametrycznej
D. funkcjonalnej
Odpowiedzi takie jak kwerenda wybierająca, parametryczna czy krzyżowa nie są właściwe w tym kontekście pytania, bo nie są do wprowadzania zmian w wielu rekordach. Kwerenda wybierająca filtruje i zwraca dane z bazy, ale nie zmienia ich. Często ludzie mylą to z masowym przetwarzaniem, co prowadzi do błędnych wniosków. Kwerenda parametryczna za to pozwala na dynamiczne dodawanie zmiennych podczas wykonywania zapytania, ale również nie działa na masowej aktualizacji. Jest bardziej o elastycznym pobieraniu danych według jakichś kryteriów. Kwerenda krzyżowa z kolei służy do analizy danych w formie tabeli przestawnej, co jest zupełnie inną bajką, bo tu chodzi bardziej o zestawianie niż o modyfikacje. Często myli się różne typy kwerend i ich funkcje w bazach danych, co może prowadzić do zamieszania i błędów. Ważne jest, żeby zrozumieć, że te różne kwerendy mają swoje konkretne zastosowania i są projektowane do różnych zadań w ramach baz danych.

Pytanie 24

W MS SQL Server predefiniowana rola o nazwie dbcreator umożliwia użytkownikowi

A. wykonywanie wszelkich operacji na serwerze oraz posiadanie praw do każdej bazy
B. zarządzanie zabezpieczeniami systemu
C. zarządzanie plikami na nośniku
D. tworzenie, aktualizowanie, usuwanie oraz przywracanie bazy danych
Wszystkie pozostałe odpowiedzi są niepoprawne z punktu widzenia funkcji przypisanych do roli dbcreator w MS SQL Server. Stwierdzenie, że rola ta pozwala na wykonywanie każdej operacji na serwerze i posiadanie prawa własności każdej bazy, jest błędne, ponieważ taka funkcjonalność jest zarezerwowana dla roli sysadmin, która ma pełne uprawnienia serwera. Użytkownicy z rolą sysadmin mogą wykonywać jakiekolwiek operacje, co stawia ich w pozycji pełnej kontroli, w przeciwieństwie do roli dbcreator, która jest ograniczona do zarządzania bazami danych. Odnośnie zarządzania bezpieczeństwem systemu, to również nie jest odpowiednia funkcja dla dbcreator, ponieważ zarządzanie bezpieczeństwem wymaga bardziej zaawansowanych uprawnień, które są przydzielane innym rolom, takim jak securityadmin. W końcu, zarządzanie plikami na dysku nie wchodzi w zakres kompetencji dbcreator, ponieważ ta rola skupia się na operacjach związanych z bazami danych, a nie na zarządzaniu systemem plików czy innymi zasobami systemowymi. Te nieprawidłowe wnioski mogą wynikać z nieporozumienia dotyczącego funkcji ról w SQL Server, a także z braku znajomości hierarchii uprawnień oraz ich zastosowania w praktyce. Zrozumienie różnic między rolami jest kluczowe w kontekście efektywnego zarządzania bezpieczeństwem i dostępem w środowisku baz danych.

Pytanie 25

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

SELECT imie FROM mieszkancy WHERE imie LIKE '_r%';
A. Rafał, Rebeka, Renata, Roksana
B. Gerald, Jarosław, Marek, Tamara
C. Krzysztof, Krystyna, Romuald
D. Arleta, Krzysztof, Krystyna, Tristan
W przypadku opcji, które nie są poprawne, można dostrzec kilka kluczowych błędów w rozumowaniu. W pierwszej grupie imion, Gerald, Jarosław, Marek i Tamara, żadne imię nie spełnia kryterium '_r%', ponieważ nie mają one 'r' na drugiej pozycji. Gerald ma 'e' na drugiej pozycji, Jarosław 'a', Marek 'a', a Tamara 'a'. W drugiej grupie, Rafał, Rebeka, Renata i Roksana, również nie ma imion, które spełniają warunek. Rafał ma 'a' na drugiej pozycji, Rebeka 'e', Renata 'e', a Roksana 'o'. Co więcej, w ostatniej grupie Krzysztof i Krystyna są poprawne, ale Romuald nie spełnia warunku, gdyż 'o' jest na drugiej pozycji. Często popełnianym błędem w analizie wzorców przy użyciu LIKE jest pomijanie istotnych pozycji w analizowanym ciągu, co prowadzi do błędnych wniosków. Warto również podkreślić, że w SQL klauzula LIKE jest używana do porównywania wzorców, ale ważne jest, aby dokładnie zrozumieć, jak działają znaki wieloznaczne, takie jak '%' i '_', aby efektywnie korzystać z tej funkcjonalności. Zrozumienie, które znaki są na jakiej pozycji i jakie wartości mogą się z nimi wiązać, jest kluczowe w uzyskaniu poprawnych wyników.

Pytanie 26

W systemach bazodanowych, aby przedstawić dane, które spełniają określone kryteria, należy stworzyć

A. relację
B. makropolecenie
C. formularz
D. raport
Formularze, makropolecenia i relacje to różne rzeczy, które używamy w bazach danych, ale nie nadają się do tworzenia raportów. Formularz to narzędzie do wprowadzania danych, jego głównym celem jest to, żeby użytkownik mógł dodawać lub edytować informacje w bazie. Choć są przydatne do zbierania danych, to już do ich analizy czy prezentacji się nie nadają. Makropolecenia to z kolei instrukcje, które pomagają w automatyzacji powtarzalnych zadań, ale znowu – nie są do raportów. Użytkownicy mogą myśleć, że makropolecenia zastąpią raporty, ale to zupełnie inne rzeczy. Relacje dotyczą sposobu łączenia tabel w bazie danych, co jest ważne dla struktury, ale też nie ma to nic wspólnego z prezentacją danych. Warto wiedzieć, jakie są różnice między tymi pojęciami, bo to może pomóc w lepszym zarządzaniu danymi i uniknięciu nieporozumień.

Pytanie 27

Jakie obiekty w bazie danych służą do podsumowywania, prezentacji oraz drukowania danych?

A. zapytanie
B. raport
C. formularz
D. zestawienie
Raport jest narzędziem w bazach danych, które umożliwia podsumowywanie, wyświetlanie i wydruk danych w zorganizowanej formie. Jego głównym celem jest przedstawienie informacji w sposób zrozumiały i estetyczny, co jest szczególnie ważne w kontekście analizy danych oraz podejmowania decyzji biznesowych. Raporty mogą być wykorzystane do generowania zestawień wyników finansowych, analiz sprzedaży czy statystyk użytkowników. Umożliwiają one również prezentację danych w formie tabel, wykresów i diagramów, co zwiększa ich czytelność. W branży IT i zarządzania danymi, dobrą praktyką jest korzystanie z narzędzi raportowych, które integrują się z bazami danych, co pozwala na automatyczne aktualizowanie danych oraz lepszą wizualizację. Warto również wspomnieć o różnych formatach, w jakich raporty mogą być generowane, takich jak PDF, XLSX czy HTML, co umożliwia ich łatwe udostępnianie i archiwizowanie.

Pytanie 28

Jakie źródło danych może posłużyć do stworzenia raportu?

A. etykieta
B. projekt raportu
C. zapytanie SELECT
D. zapytanie ALTER
Etykieta jako źródło danych dla raportu nie jest najlepszym pomysłem, bo sama etykieta nie ma danych, które można by analizować. To jakby mieć tylko opakowanie bez zawartości. Projekt raportu także nie nadaje się jako źródło, bo mówi głównie o tym, jak coś powinno wyglądać, a nie jakie info powinno być w środku. Ważne jest, żeby źródłem danych były konkretne tabele czy zapytania, które dostarczają faktyczną wiedzę. Co do zapytania ALTER, to też jest pewne nieporozumienie, bo ono służy do zmiany struktury bazy, a nie do pobierania danych. Może zmieniać kolumny czy tabelę, ale nie da nam informacji do raportu. Zdarza się, że mylimy różne funkcje w SQL, co prowadzi do użycia niewłaściwych narzędzi do analizy. Dlatego warto wiedzieć, do czego dokładnie służą zapytania SQL, żeby dobrze zarządzać danymi i robić sensowne raporty.

Pytanie 29

W języku PHP uzyskano wyniki kwerend z bazy danych przy użyciu polecenia mysql_query. Aby wydobyć z otrzymanej kwerendy pojedynczy wiersz danych, konieczne jest użycie polecenia

A. mysql_field_len
B. mysql_list_fields
C. mysql_fetch_lengths
D. mysql_fetch_row
Odpowiedź mysql_fetch_row jest poprawna, ponieważ to funkcja, która pozwala na pobranie pojedynczego wiersza danych z zasobu zwróconego przez mysql_query. Zwraca ona tablicę, która zawiera wartości poszczególnych pól w wierszu, co umożliwia ich dalsze przetwarzanie. Dzięki tej funkcji programista może łatwo iterować przez wyniki kwerendy, co jest kluczowe w przypadku przetwarzania danych z baz danych. Na przykład, po wykonaniu kwerendy SELECT, można użyć pętli while, aby pobierać kolejne wiersze danych i je wyświetlać. Dobrą praktyką jest również sprawdzenie, czy zasób kwerendy jest poprawny przed użyciem tej funkcji, co pozwoli uniknąć błędów w czasie wykonywania skryptu. Warto dodać, że w nowszych wersjach PHP zaleca się korzystanie z rozszerzenia mysqli lub PDO, które oferują bardziej zaawansowane możliwości i większe bezpieczeństwo przy pracy z bazami danych.

Pytanie 30

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. zastosować pętlę z poleceniem mysqli_fetch_row
C. zaindeksować zmienną tab, tab[0] to pierwsze imię
D. pokazać zmienną $db
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 31

Który typ danych jest przeznaczony do zapisywania daty urodzenia uczniów w bazie danych szkoły?

A. ENUM
B. TIME
C. BLOB
D. DATE
Poprawnie wskazany został typ DATE, który w relacyjnych bazach danych (np. MySQL, PostgreSQL, SQL Server) jest standardowym typem do przechowywania samych dat, bez informacji o godzinie. To dokładnie to, czego potrzebujemy przy dacie urodzenia ucznia: interesuje nas dzień, miesiąc i rok, a nie konkretna godzina czy sekunda. Typ DATE przechowuje wartość w ustalonym formacie (najczęściej 'YYYY-MM-DD'), dzięki czemu baza może poprawnie sortować rekordy, filtrować je w zapytaniach SQL (np. WHERE data_urodzenia BETWEEN '2008-01-01' AND '2010-12-31') oraz wykonywać operacje na datach, jak obliczanie wieku czy czasu, jaki minął od urodzenia. Z mojego doświadczenia używanie typu DATE jest też dużo wygodniejsze przy raportach i statystykach, np. liczenie ilu uczniów urodziło się w danym roku szkolnym, w danym miesiącu itp. Dodatkowo jest to zgodne z dobrymi praktykami projektowania baz danych: dla dat używamy typów datowych, a nie tekstu czy typów binarnych. Dzięki temu mechanizmy bazy potrafią walidować poprawność danych (np. nie pozwolą zapisać 31.02) oraz optymalnie korzystać z indeksów na kolumnach typu DATE. W profesjonalnych systemach szkolnych czy kadrowych przy danych takich jak data urodzenia, data zatrudnienia, data wystawienia świadectwa zawsze używa się właśnie typów pokrewnych DATE (DATE, DATETIME, czasem TIMESTAMP, ale do urodzin raczej zwykły DATE). To też ułatwia współpracę z aplikacjami webowymi w PHP czy JavaScript, bo większość frameworków ma gotowe mapowanie typu DATE na odpowiednie klasy lub struktury daty w kodzie. Ogólnie: prosty, czytelny i zgodny ze standardem wybór, dokładnie taki, jaki powinien się pojawić w dobrze zaprojektowanej bazie danych szkoły.

Pytanie 32

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

Ilustracja do pytania
A. SELECT Zamówienia.id, nazwa FROM Zamówienia JOIN Firmy ON Zamówienia.Firmy_id = Firmy.id WHERE poziom = 4
B. SELECT id, nazwa FROM Zamówienia JOIN Firmy ON Zamówienia.Firmy_id = Firmy.id WHERE poziom = 4
C. SELECT Zamówienia.id, nazwa FROM Zamówienia JOIN Firmy ON Zamówienia.id = Firmy.id WHERE poziom = 4
D. SELECT Zamówienia.id, nazwa FROM Zamówienia JOIN Firmy WHERE poziom = 4
Odpowiedź numer 2 jest prawidłowa, ponieważ wykorzystuje poprawne połączenie między tabelami Zamowienia i Firmy przy użyciu klucza obcego Firmy_id, co jest zgodne z praktykami projektowania relacyjnych baz danych. Klucz obcy w tabeli Zamowienia wskazuje na klucz główny w tabeli Firmy, co odzwierciedla relację jeden do wielu, gdzie jedna firma może mieć wiele zamówień. Właściwe stosowanie kluczy obcych nie tylko poprawia integralność danych, ale także ułatwia zrozumienie struktury danych. Właściwe użycie klauzuli JOIN z warunkiem ON pozwala na efektywne powiązanie rekordów z obu tabel. Warunek WHERE poziom = 4 pozwala na filtrowanie wyników, co jest kluczowe w analizie danych, umożliwiając wyodrębnienie tylko tych rekordów, które spełniają określone kryteria. Dzięki temu możemy uzyskać zestaw danych zawierający tylko te zamówienia, które pochodzą od firm o określonym poziomie, co jest częstym wymogiem w raportach biznesowych. Praktyczne użycie tego typu zapytań jest niezastąpione w aplikacjach analitycznych i systemach raportowania, gdzie precyzyjne filtrowanie i łączenie danych ma kluczowe znaczenie dla podejmowania decyzji biznesowych. Dbając o zgodność z najlepszymi praktykami, takie zapytania powinny być dobrze testowane i optymalizowane, aby zapewnić ich efektywność w dużych zbiorach danych.

Pytanie 33

W tabeli artykuly w bazie danych sklepu znajduje się pole o nazwie nowy. Jak należy wykonać kwerendę, aby wypełnić to pole wartościami TRUE dla wszystkich rekordów?

A. INSERT INTO artykuly VALUE nowy=TRUE;
B. UPDATE nowy FROM artykuly VALUE TRUE;
C. UPDATE artykuly SET nowy=TRUE;
D. INSERT INTO nowy FROM artykuly SET TRUE;
Żeby zaktualizować wartości w kolumnie 'nowy' w tabeli 'artykuły' na TRUE, musisz użyć komendy SQL UPDATE. To jest standardowy sposób, żeby zmieniać już istniejące rekordy w tabelach. W tym przypadku komenda 'UPDATE artykuly SET nowy=TRUE;' oznacza, że wszystkie rekordy w tabeli 'artykuły' będą miały pole 'nowy' ustawione na TRUE. To dość prosta i skuteczna operacja, która pozwala na jednolitą zmianę w całej tabeli. Na przykład, jeśli w tabeli 'artykuły' jest 1000 rekordów, to wszystkie z nich dostaną wartość TRUE w polu 'nowy', co może być pomocne, jeśli chcemy oznaczyć nowe produkty. Pamiętaj, żeby robić kopie zapasowe bazy danych przed takimi masowymi zmianami. To może uratować Cię od utraty ważnych danych, gdyby coś poszło nie tak. Użycie tej komendy jest zgodne z ogólnymi zasadami SQL, więc jest to bezpieczny sposób działania dla każdego, kto zarządza bazą danych.

Pytanie 34

Wymień dwa sposoby na zabezpieczenie bazy danych Microsoft Access

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

Pytanie 35

Kod       SELECT imie, pesel, wiek FROM dane WHERE wiek IN (18,30) spowoduje wybranie

A. imion, numerów PESEL oraz wieku ludzi mających ponad 30 lat
B. imion, numerów PESEL oraz wieku osób w przedziale 18 do 30 lat
C. imion, nazwisk i numerów PESEL osób młodszych niż 18 lat
D. imion, numerów PESEL i wieku osób, które mają 18 lub 30 lat
Pierwsza odpowiedź, która wskazuje na osoby poniżej 18 lat, jest błędna. To zapytanie SQL nie ma na celu wybrania młodszych; przecież filtruje tych, którzy mają 18 lub 30 lat. Co do drugiej odpowiedzi, to sugeruje, jakoby zapytanie wybierało osoby w przedziale od 18 do 30, co też jest pomyłką. Operator IN wskazuje konkretne liczby, a nie przedzial, dlatego w tym przypadku wiek pośredni nie ma miejsca. Trzecia odpowiedź, dotycząca osób powyżej 30 lat, kompletnie nie pasuje, bo nie dotyczy tego, co jest w zapytaniu. Właściwie to nie ma związku między tą składnią SQL a osobami, które mają więcej niż 30 lat. Każda z tych odpowiedzi wynika z niepoprawnego zrozumienia, jakie jest intencja zapytania, które jasno wybiera osoby tylko w dwóch podanych przedziałach. Myślę, że ważne jest, żeby dobrze rozumieć, jak działają operatory w SQL, żeby unikać takich pomyłek i nieporozumień.

Pytanie 36

Na zakończenie dnia w systemie zarządzania magazynem sklepu spożywczego generowany jest raport, który przedstawia produkty oraz ich dostawców, dla których ilość na stanie jest mniejsza niż 10 sztuk. Do stworzenia tego raportu zastosowano kwerendę

A. SELECT
B. INSERT INTO
C. UPDATE
D. CHECK TABLE
Odpowiedzi takie jak CHECK TABLE, UPDATE i INSERT INTO są niewłaściwe w kontekście opisywanego raportu. CHECK TABLE jest komendą używaną do sprawdzania integralności tabel w bazie danych, ale nie ma zastosowania w kontekście generowania raportów. Nie umożliwia ona pobierania danych ani ich analizowania, co jest kluczowe w przypadku raportowania stanów magazynowych. Z kolei UPDATE to polecenie, które służy do modyfikowania istniejących rekordów w bazie danych. Chociaż może być użyteczne w sytuacjach, gdy chcemy zaktualizować ilość produktów w magazynie, nie ma zastosowania w kontekście generowania raportu, ponieważ nie jest to operacja mająca na celu odczyt danych. Tak samo INSERT INTO jest używane do dodawania nowych rekordów do tabeli. W przypadku raportu, którego celem jest analizy danych, to podejście nie jest ani odpowiednie, ani praktyczne. Typowym błędem w myśleniu jest mylenie operacji manipulacji danymi z operacjami odczytu. W kontekście efektywnego zarządzania bazami danych, kluczowe jest zrozumienie, że każda z tych kwerend ma swoje specyficzne zastosowania, a w przypadku raportowania stanów magazynowych jedynie kwerenda SELECT jest odpowiednia, ponieważ umożliwia wydobycie i analizę danych zgodnie z zdefiniowanymi kryteriami.

Pytanie 37

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

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

Pytanie 38

W formularzu dokumentu PHP znajduje się pole <input name="im">. Po tym, jak użytkownik wprowadzi ciąg znaków "Janek", aby dodać zawartość tego pola do bazy danych, w tablicy $_POST obecny jest element

A. im z indeksem Janek
B. Janek z następnym numerem indeksu
C. Janek o indeksie im
D. im z następnym numerem indeksu
W analizowanym pytaniu niepoprawne odpowiedzi wskazują różne błędne koncepcje dotyczące działania PHP i struktury tablicy $_POST. Przede wszystkim, w systemach opartych na PHP, po przesłaniu formularza, wartości pól formularza są przekazywane do tablicy $_POST, gdzie klucze odpowiadają nazwom pól w formularzu, a ich wartości odpowiadają użytkownikowi wprowadzonym danym. Odpowiedzi sugerujące, że "im" może mieć inny typ indeksu, jak "Janek" lub numer indeksu, są nieprecyzyjne i mylące. Klucz w tablicy $_POST to nazwa pola, co oznacza, że jest stały i niezmienny, niezależnie od wartości, którą użytkownik wprowadza. Ponadto, odpowiedzi, które sugerują istnienie "kolejnego numeru indeksu", mogą prowadzić do błędnego rozumienia konceptu tablic asocjacyjnych w PHP. Tablice asocjacyjne działają na zasadzie klucz-wartość, co oznacza, że klucz (w tym wypadku "im") jest zawsze powiązany z jedną wartością (tu: "Janek"). Błędne myślenie może również wynikać z nieznajomości podstaw PHP, gdzie wiele osób myli pojęcia klucza i wartości lub nie rozumie, że klucz jest stały i determinowany przez atrybut "name" w formularzu, a nie przez wartość wprowadzoną przez użytkownika. Zrozumienie tej zasadniczej różnicy jest kluczowe dla prawidłowego przetwarzania danych w formularzach oraz budowy bezpiecznych aplikacji webowych.

Pytanie 39

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

A. n..m
B. 1..1
C. 1..n
D. n..1
Typ relacji n..m, znany również jako relacja wiele do wielu, wymaga utworzenia tabeli pośredniej, ponieważ każdy rekord w jednej tabeli może być powiązany z wieloma rekordami w drugiej tabeli, a jednocześnie każdy rekord w drugiej tabeli może być związany z wieloma rekordami w pierwszej. Przykładem może być relacja między uczniami a przedmiotami w szkole, gdzie jeden uczeń może uczęszczać na wiele przedmiotów, a jeden przedmiot może być uczony wielu uczniom. Tabela pośrednia (np. 'Uczniowie_Przedmioty') zawierałaby klucze główne obu tabel: 'uczeń_id' oraz 'przedmiot_id', co pozwala na utrzymanie tej relacji. Tego typu podejście jest zgodne z zasadami normalizacji baz danych, które podkreślają znaczenie unikania redundancji i zapewnienia spójności danych. Stosując tę metodę, możemy efektywnie zarządzać złożonymi relacjami oraz wykonywać operacje CRUD (tworzenie, odczyt, aktualizacja, usuwanie) w sposób bardziej zorganizowany i wydajny.

Pytanie 40

W SQL, aby uniemożliwić stworzenie konta przy wykonywaniu kwerendy CREATE USER, gdy konto już istnieje, można zastosować następującą składnię

A. CREATE OR REPLACE USER 'anna'@'localhost' IDENTIFIED BY 'yu&T%';
B. CREATE USER 'anna'@'localhost' IDENTIFIED BY 'yu&T%';
C. CREATE USER IF NOT EXISTS 'anna'@'localhost' IDENTIFIED BY 'yu&T%';
D. CREATE USER OR DROP 'anna'@'localhost' IDENTIFIED BY 'yu&T%';
Odpowiedź 'CREATE USER IF NOT EXISTS 'anna'@'localhost' IDENTIFIED BY 'yu&T%';' jest poprawna, ponieważ użycie klauzuli 'IF NOT EXISTS' pozwala na uniknięcie błędów w sytuacji, gdy konto użytkownika już istnieje w bazie danych. W praktyce oznacza to, że wykonanie tego polecenia nie spowoduje żadnej zmiany ani błędu, jeśli konto 'anna' jest już zdefiniowane, co jest szczególnie przydatne w skryptach automatyzujących tworzenie użytkowników. Dzięki temu można uniknąć powtarzania kodu sprawdzającego istnienie użytkownika przed jego utworzeniem. Zaleca się stosowanie tej formy w celu uproszczenia procesu zarządzania użytkownikami i zapewnienia, że skrypty wykonują się bez zakłóceń. W kontekście bezpieczeństwa, ważne jest używanie silnych haseł, jak w tym przykładzie, aby zabezpieczyć konta przed nieautoryzowanym dostępem. Warto także pamiętać o dobrych praktykach w zakresie nadawania uprawnień oraz regularnego przeglądania kont użytkowników, aby zapewnić, że wszystkie konta są wykorzystywane i zarządzane odpowiednio.