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: 8 kwietnia 2026 10:05
  • Data zakończenia: 8 kwietnia 2026 10:31

Egzamin zdany!

Wynik: 31/40 punktów (77,5%)

Wymagane minimum: 20 punktów (50%)

Pochwal się swoim wynikiem!
Szczegółowe wyniki:
Pytanie 1

Pojęcie krotka odpowiada

A. kolumnie
B. tabeli
C. wierszowi
D. relacji
Krotka to struktura danych, która reprezentuje pojedynczy wiersz w tabeli relacyjnej. W kontekście baz danych krotka składa się z zestawu wartości, z których każda odpowiada kolumnie w tej tabeli. Przykładowo, w przypadku tabeli 'Użytkownicy', krotka może zawierać informacje o jednym użytkowniku, takie jak imię, nazwisko, adres e-mail i data rejestracji. Używanie krotek w bazach danych jest zgodne z koncepcją relacyjnych baz danych, gdzie dane organizowane są w tabelach, a każda krotka jest unikalnym wpisem. W praktyce programiści często korzystają z krotek w językach programowania, takich jak Python, gdzie krotki są używane do grupowania danych, które nie powinny być modyfikowane. Dzięki zastosowaniu krotek zwiększa się czytelność kodu i ułatwia jego zarządzanie. W kontekście standardów, krotki odzwierciedlają zasady normalizacji danych, co jest kluczowe dla utrzymania integralności oraz spójności danych w bazach.

Pytanie 2

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 USER OR DROP 'anna'@'localhost' IDENTIFIED BY 'yu&T%';
B. CREATE OR REPLACE USER 'anna'@'localhost' IDENTIFIED BY 'yu&T%';
C. CREATE USER 'anna'@'localhost' IDENTIFIED BY 'yu&T%';
D. CREATE USER IF NOT EXISTS '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.

Pytanie 3

W relacyjnym modelu danych, krotki definiuje się jako

A. wszystkie kolumny tabeli, które reprezentują atrybuty obiektu
B. wszystkie wiersze w tabeli łącznie z wierszem nagłówkowym
C. wiersze tabeli wyłączając wiersz nagłówkowy, w którym znajdują się nazwy kolumn
D. liczbę rekordów w tabeli
W relacyjnych bazach danych ważne jest, żeby wiedzieć, czym różnią się wiersze od kolumn. Jak ktoś twierdzi, że krotkami są wszystkie wiersze tabeli razem z nagłówkiem, to nie do końca tak jest. Wiersz nagłówkowy ma znaczenie, bo pokazuje strukturę danych, ale nie wchodzi w skład krotek. Z kolei określanie krotek jako liczby rekordów w tabeli jest mało precyzyjne, bo to nie oddaje tego, co naprawdę oznaczają krotki. Kolejna błędna odpowiedź, która mówi, że krotkami są wszystkie kolumny, może wprowadzać w błąd, bo kolumny definiują atrybuty, ale same w sobie nie przechowują danych. W kontekście baz danych, krotki są kluczowe dla zrozumienia, jak te dane są poukładane, a ich dobre zdefiniowanie sprawia, że zarządzanie informacjami staje się łatwiejsze. Żeby unikać błędów przy projektowaniu baz danych, trzeba pamiętać, że krotki to zestawy wartości atrybutów, które można porównywać i obrabiać w SQL. Takie podejście jest ważne, żeby poprawnie tworzyć zapytania i zarządzać danymi w różnych systemach baz danych.

Pytanie 4

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

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

Pytanie 5

W systemie bazy danych dotyczącej pojazdów, pole kolor w tabeli samochody może przyjmować wartości tylko z listy lakier. Aby zrealizować połączenie między tabelami samochody a lakier przez relację, należy użyć kwerendy

A. <br>ALTER TABLE samochody<br> ADD FOREIGN KEY (kolor) REFERENCES lakier(lakierId);
B. <br>ALTER TABLE samochody<br> ADD FOREIGN KEY barwa REFERENCES samochody.lakier;
C. <br>ALTER TABLE lakier<br> ADD FOREIGN KEY (barwa) REFERENCES samochody(kolor);
D. <br>ALTER TABLE samochody<br> ADD FOREIGN KEY kolor REFERENCES lakier;
Wszystkie błędne odpowiedzi opierają się na nieprawidłowym przypisaniu kluczy obcych lub niewłaściwych odniesieniach między tabelami. Przykładowo, pierwsza z odpowiedzi próbuje dodać klucz obcy do tabeli lakier, co jest niezgodne z zasadami relacyjnych baz danych, gdzie klucze obce powinny być definiowane w tabeli, która zawiera pole odnoszące się do innej tabeli. Klucz obcy powinien zawsze znajdować się w tabeli, która zawiera dane odnoszące się do innej tabeli, a nie w tabeli, z której te dane pochodzą. Druga odpowiedź sugeruje, że można dodać klucz obcy do kolumny kolor bez wskazania tabeli docelowej oraz właściwego klucza, co czyni tę odpowiedź niekompletną i błędną. Odpowiedź trzecia z kolei próbuje powiązać kolumnę barwa z tabelą samochody, co nie ma sensu w kontekście relacji; klucz obcy w tabeli samochody powinien odnosić się do klucza głównego w tabeli lakier, a nie do innej kolumny w tej samej tabeli. Typowym błędem jest także nieznajomość zasad normalizacji baz danych, co prowadzi do błędnych wniosków na temat relacji między tabelami. Zrozumienie tych zasad jest kluczowe dla właściwego projektowania struktury bazy danych oraz zapewnienia jej efektywności i integralności.

Pytanie 6

Którą kwerendę należy wykonać, aby zaktualizować wszystkim rekordom z tabeli pracownicy wartość w kolumnie plec na K, przyjmując na potrzeby zadania, że każde imię żeńskie kończy się literą a?

A. ALTER TABLE pracownicy SET plec='K' WHERE imie LIKE '%a';
B. UPDATE pracownicy SET plec='K' WHERE imie='%a';
C. ALTER TABLE pracownicy SET plec='K' WHERE imie='%a';
D. UPDATE pracownicy SET plec='K' WHERE imie LIKE '%a';
Poprawna jest kwerenda: UPDATE pracownicy SET plec='K' WHERE imie LIKE '%a';. Po pierwsze użyty jest właściwy typ polecenia SQL do modyfikacji danych w tabeli. Do zmiany wartości w istniejących rekordach zawsze używamy instrukcji UPDATE, a nie ALTER TABLE. ALTER TABLE służy do zmiany struktury tabeli (np. dodanie kolumny, zmiana typu danych, usunięcie kolumny), a nie do operowania na danych w wierszach. To jest taki podstawowy podział: DDL (Data Definition Language) – np. ALTER TABLE, CREATE, DROP – do definicji struktury; DML (Data Manipulation Language) – np. SELECT, INSERT, UPDATE, DELETE – do pracy na rekordach. W tym zadaniu ewidentnie potrzebna jest operacja DML. Druga ważna rzecz to warunek WHERE imie LIKE '%a'. Operator LIKE służy do porównywania tekstów z wykorzystaniem wzorców. Symbol % oznacza „dowolny ciąg znaków (również pusty)”, więc wzorzec '%a' oznacza: dowolny ciąg znaków zakończony literą „a”. Dokładnie o to chodzi w zadaniu: przyjmujemy założenie, że każde imię żeńskie kończy się na „a”, więc chcemy zaktualizować wszystkie rekordy, gdzie kolumna imie kończy się na „a”. Gdybyśmy chcieli szukać imion zaczynających się na „A”, używalibyśmy 'A%'. Moim zdaniem warto zapamiętać ten schemat, bo w praktyce bardzo często stosuje się LIKE do prostych filtrów tekstowych: wyszukiwanie użytkowników po fragmencie loginu, znajdowanie produktów po części nazwy, filtrowanie adresów e-mail po domenie itp. Przykład: UPDATE klienci SET status='VIP' WHERE nazwisko LIKE 'Nowak%'; – zaktualizuje wszystkich Nowaków. Albo: UPDATE produkty SET promocja=1 WHERE nazwa LIKE '%kabel%'; – zaznaczy jako promocyjne wszystkie produkty, których nazwa zawiera słowo „kabel”. W dobrych praktykach zaleca się uważać z aktualizacjami bez WHERE, bo wtedy zmieniamy wszystkie rekordy w tabeli. Tutaj warunek LIKE '%a' pełni rolę bezpiecznego filtra. W wielu systemach bazodanowych warto też pamiętać, że domyślnie porównania tekstowe mogą być niewrażliwe na wielkość liter (collation), więc 'a' i 'A' mogą być traktowane tak samo, ale to już zależy od konfiguracji bazy. W kontekście egzaminów zawodowych i pracy z SQL-em takie zadanie to klasyk – łączy poprawne użycie UPDATE z właściwym użyciem LIKE i symbolu % jako wieloznakowego wildcarda.

Pytanie 7

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

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

Pytanie 8

Elementem wykorzystywanym w bazie danych do podsumowywania, prezentowania oraz drukowania danych jest

A. raport
B. formularz
C. zapytanie
D. zestawienie
Zapytanie, formularz i zestawienie, choć mogą być używane w kontekście pracy z danymi, pełnią inne funkcje niż raport. Zapytanie to instrukcja w języku zapytań, najczęściej SQL, która pozwala na pobranie określonych danych z bazy danych. Zapytania są fundamentalne dla interakcji z bazami danych, ponieważ umożliwiają użytkownikom selekcjonowanie, filtrowanie i sortowanie informacji, ale same w sobie nie dostarczają gotowych podsumowań ani analiz. Formulario to interaktywny element, który umożliwia użytkownikom wprowadzanie danych; jego głównym celem jest zbieranie informacji, a nie ich prezentacja. Użytkownicy często mylą formularze z raportami, co prowadzi do nieporozumień w zakresie ich zastosowania. Zestawienie, z kolei, może odnosić się do porównania wartości lub grup danych, ale nie jest standardowym terminem w kontekście raportów, co może powodować niejasności. Warto zrozumieć, że raporty są narzędziem do podsumowywania wyników, podczas gdy zapytania, formularze i zestawienia mają różne cele i funkcje. Kluczowa jest umiejętność rozróżniania tych elementów, aby skutecznie zarządzać danymi i prezentować je w odpowiedni sposób.

Pytanie 9

Aby przedstawić dane w bazach danych, które spełniają określone kryteria, należy stworzyć

A. formularz
B. makropolecenie
C. relację
D. raport
Wybór relacji, formularza lub makropolecenia jako odpowiedzi na pytanie o prezentację danych spełniających określone warunki jest nieprawidłowy z kilku powodów. Relacja w bazach danych odnosi się do struktury danych, która opisuje związki między tabelami, a nie do sposobu ich prezentacji. Choć relacje są fundamentem, na którym opiera się przechowywanie i organizowanie danych, same w sobie nie oferują narzędzia do wyodrębniania czy przedstawiania informacji w przystępny sposób. Formularze z kolei są wykorzystywane głównie do wprowadzania danych do systemu, pozwalając użytkownikom na interakcję z bazą, jednak nie służą one do analizy ani prezentacji danych w formie zrozumiałej dla odbiorcy. Makropolecenia, choć mogą automatyzować pewne procesy związane z przetwarzaniem danych, również nie spełniają funkcji raportowania, ponieważ są narzędziem do wykonywania powtarzalnych operacji. Wybierając te odpowiedzi, można wpaść w pułapkę myślową, w której myli się funkcje narzędzi bazodanowych, co może prowadzić do błędnych decyzji w zakresie projektowania systemów informatycznych. Każde z tych narzędzi pełni swoją specyficzną rolę w ekosystemie baz danych, lecz tylko raporty są zaprojektowane z myślą o efektywnej prezentacji danych zgodnie z określonymi kryteriami.

Pytanie 10

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 11

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

A. Może przyjmować wyłącznie wartości liczbowe
B. W przypadku tabeli z danymi osobowymi może to być pole nazwisko
C. Składa się wyłącznie z jednego pola
D. Jest unikalny dla danej tabeli
Klucz podstawowy to atrybut (lub zbiór atrybutów) w tabeli, który jednoznacznie identyfikuje każdy wiersz w tej tabeli. Jego unikalność w obrębie tabeli jest kluczowa, ponieważ pozwala na zapobieganie duplikatom i zapewnia integralność danych. Na przykład, w tabeli przechowującej informacje o klientach, kolumna z identyfikatorem klienta (np. ID klienta) powinna być kluczem podstawowym, ponieważ każdy klient musi mieć unikalny identyfikator. Standardy baz danych, takie jak model relacyjny, podkreślają znaczenie kluczy podstawowych w zapewnieniu stabilności i efektywności w przechowywaniu danych. Użycie klucza podstawowego również wpływa na wydajność operacji wyszukiwania i łączenia tabel, dlatego w projektowaniu baz danych należy starannie dobierać atrybuty, które będą pełnić tę rolę, aby spełniały wymagania unikalności oraz wydajności.

Pytanie 12

W tabeli mieszkancy znajdują się różne dane. Aby przefiltrować jedynie mieszkańców, którzy mają przypisaną dzielnicę = 1, stworzono dla uproszczenia działania wirtualną tabelę (widok) poprzez zastosowanie kwerendy

A. CREATE VIEW mieszkancy WHERE dzielnica = 1
B. CREATE VIEW mieszkancySrodmiescie AS SELECT * FROM mieszkancy WHERE dzielnica = 1
C. CREATE VIEW mieszkancySrodmiescie AS SELECT * FROM mieszkancy
D. CREATE VIEW mieszkancy FROM mieszkancy WHERE dzielnica = 1
Odpowiedzi, które nie pasują do definicji widoków w SQL, mają kilka kluczowych błędów. W pierwszej z nich, 'CREATE VIEW mieszkancy WHERE dzielnica = 1;', brakuje ważnych elementów do zdefiniowania widoku. Przede wszystkim, nie ma słowa 'AS', które powinno być tam, żeby określić kwerendę, z której widok się tworzy. SQL wymaga, żeby definicja widoku miała zapytanie, czego tutaj brakuje. W drugiej odpowiedzi, 'CREATE VIEW mieszkancy FROM mieszkancy WHERE dzielnica = 1;', również jest niepoprawna, bo nie ma 'AS' i jest zła składnia, bo 'FROM' nie może być używane w tworzeniu widoku bez odpowiedniej struktury. Ostatnia odpowiedź, 'CREATE VIEW mieszkancySrodmiescie AS SELECT * FROM mieszkancy;', choć składnia jest okej, nie filtruje danych do mieszkańców z dzielnicy nr 1. To błędne myślenie, bo często zapominamy o używaniu filtrów, co prowadzi do tego, że mamy za dużo danych do analizy. Tworząc widoki, warto zawsze mieć na uwadze, po co je robimy i zadbać o to, żeby zawierały tylko te dane, które są nam naprawdę potrzebne.

Pytanie 13

W języku SQL aby zmodyfikować dane w tabeli, należy posłużyć się poleceniem

A. SELECT
B. JOIN
C. UPDATE
D. CREATE
Polecenie UPDATE to w SQL podstawowe narzędzie do modyfikowania istniejących danych w tabelach. W praktyce oznacza to, że jeśli chcesz np. zmienić wartość jakiegoś pola dla wybranego rekordu, to właśnie tego polecenia używasz. Przykład z życia: masz tabelę pracowników i ktoś zmienił numer telefonu – nie robisz nowego wpisu, nie tworzysz nowej tabeli, tylko aktualizujesz jedną kolumnę w odpowiednim wierszu. Składnia tego polecenia jest dość intuicyjna: UPDATE nazwa_tabeli SET kolumna=nowa_wartość WHERE warunek. Bardzo ważne jest stosowanie klauzuli WHERE, bo inaczej możesz przez przypadek podmienić dane we wszystkich wierszach tabeli, co niestety zdarza się nawet doświadczonym programistom, zwłaszcza przy pracy na środowiskach testowych. Warto wiedzieć, że SQL-92 (czyli jeden z najważniejszych standardów języka SQL) dokładnie opisuje sposób działania tego polecenia. Często w praktyce spotyka się też połączenie UPDATE z transakcjami, żeby mieć możliwość cofnięcia zmian, gdyby coś poszło nie tak. Moim zdaniem umiejętne stosowanie UPDATE to podstawa pracy z bazami danych – prawie każdy większy system korzysta z tego polecenia na co dzień. Dobrze też pamiętać o bezpieczeństwie i zawsze sprawdzać, czy warunek w WHERE jest poprawny, żeby nie napsuć w danych. Praktyka czyni mistrza i z czasem takie operacje wchodzą w krew.

Pytanie 14

W SQL, aby dodać nowy wiersz do bazy danych, należy użyć polecenia

A. INSERT INTO
B. CREATE INTO
C. SELECT ROW
D. CREATE ROW
Polecenie 'INSERT INTO' jest kluczowym elementem języka SQL, służącym do dodawania nowych wierszy danych do istniejącej tabeli w bazie danych. Użycie tego polecenia wymaga podania nazwy tabeli, do której chcemy wstawić dane, oraz listy wartości, które mają być dodane. Na przykład, polecenie 'INSERT INTO klienci (imie, nazwisko) VALUES ('Jan', 'Kowalski');' dodaje nowego klienta o imieniu Jan i nazwisku Kowalski do tabeli 'klienci'. Zgodnie z dobrymi praktykami, zawsze warto również uwzględnić obsługę błędów, aby upewnić się, że operacje na danych są bezpieczne i nie powodują naruszeń integralności bazy. Warto również pamiętać, że do jednego polecenia INSERT można dodać wiele wierszy równocześnie, na przykład: 'INSERT INTO klienci (imie, nazwisko) VALUES ('Ewa', 'Nowak'), ('Anna', 'Zielona');'. Użycie 'INSERT INTO' jest fundamentalne w pracy z bazami danych i stanowi podstawę dla bardziej zaawansowanych operacji, takich jak transakcje czy manipulacje danymi w relacyjnych bazach danych.

Pytanie 15

Jak nazywa się metoda udostępniania bazy danych w programie Microsoft Access, która dotyczy wszystkich obiektów bazy umieszczonych na dysku sieciowym i wykorzystywanych jednocześnie przez kilku użytkowników?

A. dzielonej bazy danych
B. witryny programu SharePoint
C. serwera bazy danych
D. folderu sieciowego
Odpowiedzi, które wskazują na "serwera bazy danych", "dzielonej bazy danych" lub "witryny programu SharePoint", nie są adekwatne w kontekście udostępniania bazy danych w Microsoft Access. Serwer bazy danych to złożony system, który zarządza dużymi zbiorami danych oraz zapewnia ich integralność i bezpieczeństwo, jednak w przypadku Microsoft Access, który jest narzędziem bazodanowym bardziej skomplikowanym niż prostsze rozwiązania, udostępnianie odbywa się głównie za pośrednictwem folderów sieciowych. Dzielona baza danych oznacza, że baza danych jest podzielona na dwie części: jedną na serwerze (backend) i drugą lokalnie na komputerach użytkowników (frontend). Pomimo że ta konstrukcja może być stosowana do zwiększenia wydajności, nie odnosi się bezpośrednio do koncepcji folderu sieciowego jako metody udostępniania. Witryna programu SharePoint jest platformą do współpracy, która pozwala na zarządzanie dokumentami i danymi w chmurze, ale nie jest bezpośrednio związana z mechanizmem udostępniania bazy danych w Microsoft Access. Zrozumienie różnic między tymi podejściami jest kluczowe, ponieważ często prowadzi to do mylnych wniosków dotyczących rozwiązań technologicznych oraz ich zastosowania w praktyce. W kontekście Access, praktyka umieszczania bazy danych w folderze sieciowym jest standardem branżowym, który zwiększa dostępność i ułatwia współpracę w zespole.

Pytanie 16

Instrukcja REVOKE SELECT ON nazwa1 FROM nazwa2 w języku SQL pozwala na

A. przyznawanie uprawnień z użyciem ustalonego schematu
B. odebranie uprawnień danemu użytkownikowi
C. przyznawanie praw do tabeli
D. usunięcie użytkownika z bazy danych
Polecenie REVOKE SELECT ON w języku SQL jest używane do odbierania uprawnień do wykonywania operacji SELECT na określonej tabeli lub widoku dla konkretnego użytkownika lub grupy użytkowników. W przypadku użycia tej komendy, administrator bazy danych lub właściciel obiektu wskazuje, że dany użytkownik nie ma już prawa do odczytu danych z określonej tabeli, co skutkuje zablokowaniem dostępu do informacji w tej tabeli. Przykładowo, jeśli mamy tabelę 'Pracownicy' i użytkownika 'JanKowalski', polecenie REVOKE SELECT ON Pracownicy FROM JanKowalski skutkuje tym, że Jan Kowalski nie będzie mógł wykonywać zapytań typu SELECT na tej tabeli. Ważne jest, aby zrozumieć, że polecenie to nie usuwa użytkownika z bazy danych ani nie zmienia struktury bazy, a jedynie modyfikuje uprawnienia dostępu. W kontekście SQL, standardy takie jak ANSI SQL definiują sposób, w jaki uprawnienia mogą być przyznawane i odbierane, co sprawia, że umiejętność zarządzania uprawnieniami jest niezbędna dla każdego administrującego bazą danych.

Pytanie 17

Jakie polecenie pozwala na dodanie kolumny zadaniekompletne do tabeli zadania?

A. ALTER TABLE zadania ADD COLUMN zadaniekompletne int
B. CREATEINDEX zadania ADD COLUMN zadaniekompletne int
C. ADD COLUMN zadaniekompletne WITH zadania
D. INSERT INTO zadania VALUES zadaniakompletne
Odpowiedź 'ALTER TABLE zadania ADD COLUMN zadaniekompletne int' jest rzeczywiście na miejscu. To polecenie ALTER TABLE to standardowy sposób na zmiany w tabelach w SQL. Dzięki niemu możemy dodawać, usuwać czy zmieniać kolumny, a także wprowadzać różne ograniczenia. W tym przypadku dodajemy nową kolumnę 'zadaniekompletne', która będzie przyjmować wartości całkowite (int). Fajnym przykładem zastosowania tego polecenia może być śledzenie postępu zadań w projekcie. Kolumna 'zadaniekompletne' mogłaby oznaczać, czy zadanie jest skończone (np. 0 dla nieukończonego, 1 dla ukończonego). Zawsze warto pomyśleć o tym, jak takie zmiany mogą wpłynąć na istniejące dane oraz aplikacje korzystające z tej tabeli, żeby nie narazić się na różne problemy z danymi.

Pytanie 18

Fragment kodu SQL wskazuje, że klucz obcy

FOREIGN KEY (imie) REFERENCES obiekty (imiona) …
A. znajduje się w tabeli obiekty
B. jest przypisany do kolumny obiekty
C. jest odniesieniem do siebie samego
D. wiąże się z kolumną imiona
Odpowiedź wskazująca, że klucz obcy łączy się z kolumną 'imiona' jest prawidłowa, ponieważ definicja klucza obcego w SQL stanowi, że odwołuje się on do kolumny w innej tabeli, w tym przypadku do kolumny 'imiona' w tabeli 'obiekty'. Klucz obcy jest używany do ustanowienia relacji między dwiema tabelami, co poprawia integralność danych i umożliwia tworzenie bardziej złożonych zapytań. Na przykład, jeśli mamy tabelę 'uczniowie' z kolumną 'imie', a tabela 'obiekty' zawiera kolumnę 'imiona' jako klucz podstawowy, to możemy użyć klucza obcego, aby zapewnić, że każde imię w tabeli 'uczniowie' odnosi się do istniejącego rekordu w tabeli 'obiekty'. Dobrą praktyką jest zawsze stosowanie kluczy obcych w celu minimalizacji błędów danych i zapewnienia ich spójności. Użycie kluczy obcych jest zgodne z zasadami normalizacji baz danych, które dążą do eliminacji redundancji i poprawy organizacji danych.

Pytanie 19

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 JOIN Zainteresowania ON Osoby.Zainteresowania_id = Zainteresowania.id;
B. SELECT imie, hobby FROM Osoby, Zainteresowania WHERE Osoby.id = Zainteresowania.id;
C. SELECT imie, hobby FROM Osoby.Zainteresowania_id = Zainteresowania.id FROM Osoby, Zainteresowania;
D. SELECT imie, hobby FROM Osoby, Zainteresowania;
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 20

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

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

Pytanie 21

Obejrzyj tabelę mieszkań, która zawiera kolumny: adres, metraż, ile_pokoi, standard, status, cena. Wykonanie poniższej kwerendy SQL SELECT spowoduje wyświetlenie:

SELECT metraz, cena FROM mieszkania WHERE ile_pokoi > 3;
A. metraż oraz cena tych mieszkań, które mają więcej niż 3 pokoje
B. wszystkie informacje, z wyjątkiem adresu, dotyczące mieszkań z więcej niż 3 pokojami
C. wszystkie dane mieszkań, które mają co najmniej 3 pokoje
D. metraż oraz cena tych mieszkań, które posiadają co najmniej 3 pokoje
Odpowiedź wskazująca na metraż oraz cenę mieszkań, które mają więcej niż 3 pokoje jest prawidłowa, ponieważ kwerenda SQL wykorzystuje operator '>', co oznacza, że wybrani będą tylko ci, którzy mają co najmniej 4 pokoje. W kontekście tabeli mieszkania, zapytanie SELECT metraz, cena FROM mieszkania WHERE ile_pokoi > 3; efektywnie filtruje dane, aby zwrócić tylko kolumny metraż oraz cena dla mieszkań spełniających ten warunek. W praktyce, umiejętność pisania takich zapytań SQL jest kluczowa w pracy z bazami danych, gdzie często potrzebne jest zrozumienie struktury danych i umiejętność ich analizy. Przykładem zastosowania może być analiza rynku nieruchomości, gdzie deweloperzy mogą chcieć zbadać ceny mieszkań większych niż 3 pokoje, aby lepiej dostosować swoje oferty do potrzeb klientów. Warto również zaznaczyć, że takie zapytania powinny być pisane zgodnie z najlepszymi praktykami, takimi jak unikanie selekcji niepotrzebnych danych, co przyspiesza ich przetwarzanie oraz zmniejsza obciążenie bazy danych.

Pytanie 22

Jakie mechanizmy przydzielania zabezpieczeń, umożliwiające wykonywanie działań na bazie danych, są związane z tematyką zarządzania kontami, użytkownikami oraz ich uprawnieniami?

A. Z przywilejami obiektowymi
B. Z przywilejami systemowymi
C. Z zasadami
D. Z właściwościami
Zarządzanie dostępem do baz danych często opiera się na kilku koncepcjach, które jednak nie są właściwymi odpowiedziami na postawione pytanie. Reguły, jako mechanizmy kontroli dostępu, mogą definiować warunki, które muszą być spełnione, aby użytkownik mógł uzyskać dostęp do danych, jednakże same w sobie nie są odpowiednie do opisywania systemowego nadawania uprawnień. Reguły mogą być stosowane w kontekście bardziej skomplikowanych polityk bezpieczeństwa, ale nie są bezpośrednio związane z przywilejami systemowymi. Atrybuty, z drugiej strony, odnoszą się do cech lub właściwości obiektów w bazie danych, takie jak typ danych, długość czy wartość, ale nie mają one wpływu na systemowe zarządzanie uprawnieniami. W kontekście zabezpieczeń atrybuty mogą być używane w modelach opartych na atrybutach, ale nie są one kluczowe w kontekście przydzielania przywilejów. Przywileje obiektowe to zbiór uprawnień przypisanych do konkretnych obiektów, takich jak tabele czy widoki, które pozwalają użytkownikom na wykonywanie określonych operacji, jak SELECT, INSERT, UPDATE czy DELETE. Chociaż są one istotnym elementem ochrony danych, to jednak nie obejmują one szerszego zarządzania kontami i użytkownikami, które obejmuje również przywileje systemowe. W związku z tym, odpowiedzi te nie dostarczają pełnego obrazu mechanizmów zabezpieczeń stosowanych w zarządzaniu bazami danych.

Pytanie 23

Jaką rolę pełni funkcja PHP o nazwie mysql_select_db()?

A. nawiązać połączenie bazy danych z serwerem SQL
B. określić tabelę, z której będą pobierane informacje
C. pobrać dane z bazy danych na podstawie zapytania
D. określić bazę, z której będą pobierane dane
Funkcja mysql_select_db() służy do określenia, która baza danych będzie używana w kontekście bieżącego połączenia z serwerem MySQL. W momencie, gdy nawiązuje się połączenie z serwerem za pomocą funkcji mysql_connect(), należy jasno zdefiniować, w której bazie danych będą wykonywane zapytania. Właściwe ustawienie aktualnej bazy danych jest kluczowe, ponieważ wszelkie operacje związane z pobieraniem lub modyfikowaniem danych będą odnosiły się tylko do tej wskazanej bazy. Przykładowo, jeżeli mamy bazę danych 'sklep' i chcemy pobrać dane o produktach, najpierw musimy wywołać mysql_select_db('sklep'). Dobrą praktyką jest również sprawdzenie, czy operacja wyboru bazy danych zakończyła się sukcesem, co można zrobić, sprawdzając zwracany wynik. Należy pamiętać, że funkcja mysql_select_db() jest częścią starzejącego się interfejsu MySQL, a w nowoczesnych aplikacjach rekomendowane są bardziej aktualne rozszerzenia, takie jak MySQLi lub PDO, które oferują lepsze możliwości obsługi błędów oraz bezpieczeństwo.

Pytanie 24

W systemie baz danych MySQL komenda CREATE USER pozwala na

A. zmianę hasła dla już istniejącego użytkownika
B. zobaczenie danych o aktualnym użytkowniku
C. stworzenie nowego użytkownika
D. stworzenie użytkownika oraz przypisanie mu uprawnień do bazy
Polecenie CREATE USER w bazie danych MySQL jest kluczowym narzędziem do zarządzania użytkownikami w systemie zarządzania bazami danych. Jego podstawowym celem jest utworzenie nowego konta użytkownika, które pozwala na autoryzowany dostęp do różnych zasobów bazy danych. Użycie tego polecenia wiąże się z określeniem nazwy użytkownika oraz hasła, a także opcjonalnymi parametrami, takimi jak host, który określa, z jakiego adresu IP użytkownik może uzyskać dostęp do serwera. Przykładowe polecenie CREATE USER wygląda następująco: CREATE USER 'nazwa_użytkownika'@'host' IDENTIFIED BY 'hasło'; Po utworzeniu użytkownika można przypisać mu odpowiednie uprawnienia za pomocą polecenia GRANT, co pozwala na kontrolowanie, jakie operacje użytkownik może wykonywać na bazie danych. Dobrą praktyką jest regularne przeglądanie i aktualizacja uprawnień użytkowników, aby zapewnić bezpieczeństwo danych. Zgodnie z najlepszymi standardami bezpieczeństwa należy unikać nadawania zbyt szerokich uprawnień, co jest zgodne z zasadą najmniejszych uprawnień (principle of least privilege).

Pytanie 25

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

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

Pytanie 26

Które zapytanie MySQL należy użyć, aby usunąć jedynie pracowników, którzy zarabiają nie mniej niż 500 i nie więcej niż 1000 zł oraz ich miejsce pracy zawiera frazę tx

A. DELETE FROM pracownicy WHERE pensja IN (500,1000) AND miejsce_pracy LIKE '*tx*';
B. DELETE FROM pracownicy WHERE pensja > 500 AND pensja < 1000 AND miejsce_pracy LIKE '%tx%';
C. DELETE FROM pracownicy WHERE pensja BETWEEN 500 AND 1000 AND miejsce_pracy LIKE '%tx%';
D. DELETE FROM pracownicy WHERE pensja BETWEEN 500 AND 1000 OR miejsce_pracy LIKE '%tx%';
Poprawne jest zapytanie: DELETE FROM pracownicy WHERE pensja BETWEEN 500 AND 1000 AND miejsce_pracy LIKE '%tx%';. Słowo kluczowe BETWEEN w SQL oznacza przedział domknięty, czyli w tym przypadku usuwani będą pracownicy, którzy zarabiają co najmniej 500 i jednocześnie nie więcej niż 1000 zł. To dokładnie odpowiada treści zadania, bez żadnych niedomówień na granicach zakresu. Gdybyśmy użyli > i <, to wartości 500 i 1000 zostałyby wykluczone, co w tym zadaniu byłoby niezgodne z wymaganiem. Drugi warunek korzysta z operatora LIKE wraz z maską '%tx%'. Wzorzec z procentami z obu stron oznacza: znajdź wszystkie wiersze, gdzie ciąg znaków „tx” występuje gdziekolwiek w tekście kolumny miejsce_pracy – na początku, w środku albo na końcu. W MySQL znak % jest standardowym symbolem wieloznacznym (wildcard) dla dowolnego ciągu znaków, a nie gwiazdka *, dlatego zapis z % jest poprawny i zgodny z dokumentacją. Spójnik AND jest tu kluczowy, bo warunek mówi wyraźnie: usuwamy tylko tych pracowników, którzy spełniają jednocześnie oba kryteria – zarówno zakres pensji, jak i fragment tekstu w miejscu pracy. W praktyce takie zapytanie stosuje się np. przy porządkowaniu danych testowych: można szybko usunąć sztuczne rekordy z określonego przedziału płac i z wybranych lokalizacji. Moim zdaniem warto wyrabiać sobie nawyk bardzo precyzyjnego formułowania warunków logicznych (AND/OR) i zawsze sprawdzać, czy zakres jest domknięty czy otwarty. Dobrą praktyką jest też najpierw wykonać SELECT z tym samym WHERE, zobaczyć jakie rekordy zostaną naruszone, a dopiero potem odpalać DELETE – szczególnie na produkcyjnej bazie, bo tam pomyłki bywają bolesne.

Pytanie 27

Przedstawione polecenie SQL nadaje użytkownikowi adam@localhost prawa:

GRANT SELECT, INSERT, UPDATE, DELETE ON klienci TO adam@localhost
A. zarządzania strukturą tabeli klienci.
B. manipulowania danymi bazy danych klienci.
C. manipulowania danymi w tabeli klienci.
D. zarządzania strukturą bazy danych klienci.
Niepoprawne odpowiedzi sugerują, że polecenie SQL nadaje użytkownikowi 'adam' z hosta 'localhost' prawa zarządzania strukturą bazy danych lub tabeli 'klienci', co jest niezgodne z prawdą. Zgodnie z konstrukcją polecenia GRANT, użytkownik otrzymuje prawa do manipulowania danymi, a nie do zarządzania strukturą. Zarządzanie strukturą bazy danych lub tabeli obejmuje operacje takie jak CREATE, ALTER, DROP, które pozwalają na tworzenie, modyfikowanie lub usuwanie bazy danych lub tabeli. Te uprawnienia są zazwyczaj zarezerwowane dla administratorów bazy danych i nie są nadawane zwykłym użytkownikom, co jest zgodne z zasadą minimalnych uprawnień dla bezpieczeństwa systemu. Dodatkowo, polecenie nie odnosi się do całej bazy danych 'klienci', tylko do konkretnej tabeli 'klienci'. Tę pomyłkę można zrozumieć, jako nieprawidłowe zrozumienie hierarchii i struktury bazy danych.

Pytanie 28

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

A. REPAIR TABLE
B. mysql
C. CHECK TABLE
D. mysqldump
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 29

W jaki sposób zostanie uporządkowana lista, stworzona z wszystkich kolumn tabeli uczniowie, zawierająca uczniów z średnią powyżej 5, która zostanie zwrócona jako rezultat przedstawionego zapytania?

Ilustracja do pytania
A. Rosnąco według parametru srednia
B. Malejąco według parametru klasa
C. Malejąco według parametru srednia
D. Rosnąco według parametru klasa
Zapytanie SQL przedstawione w pytaniu wykorzystuje klauzule WHERE oraz ORDER BY. Klauzula WHERE ogranicza wyniki do tych, które spełniają określony warunek, w tym przypadku średnia większa niż 5. To oznacza, że na dalszym etapie przetwarzania znajdą się tylko rekordy uczniów mających średnią powyżej 5. Kolejnym kluczowym elementem jest klauzula ORDER BY, która określa sposób sortowania wyników. W zapytaniu użyto ORDER BY klasa DESC, co oznacza sortowanie malejące według kolumny klasa. DESC to skrót od descending, co w języku SQL oznacza porządek malejący. W praktyce porządkowanie malejące jest często używane, gdy chcemy uzyskać najwyższe wartości na początku listy wynikowej, co może być kluczowe w raportach rankingowych czy analizach dotyczących grup wiekowych. Dobre praktyki w programowaniu baz danych zalecają zawsze jasno określać sposób sortowania, aby uniknąć niejednoznaczności w interpretacji wyników i zapewnić spójność danych. Zrozumienie mechanizmu sortowania w SQL jest istotne w kontekście prezentacji danych, gdzie odpowiednie uporządkowanie wyników może znacząco poprawić czytelność i interpretację danych przez użytkownika końcowego.

Pytanie 30

Jaką wartość uzyska zmienna x po wykonaniu kodu PHP zaprezentowanego w ramce?

Ilustracja do pytania
A. Ilość wierszy w tabeli produkty, gdzie pole status jest większe od zera
B. Ilość wierszy w bazie danych
C. Ilość wierszy przetworzonych przez zapytanie DELETE FROM
D. Ilość wierszy dodanych do tabeli produkty
W przedstawionym kodzie PHP funkcja mysqli_affected_rows() jest używana do uzyskania liczby wierszy zmienionych przez ostatnie zapytanie MySQL. W tym przypadku zapytanie DELETE FROM produkty WHERE status < 0 próbuje usunąć wszystkie rekordy z tabeli produkty, których pole status ma wartość mniejszą od zera. Po wykonaniu tego zapytania funkcja mysqli_affected_rows($db) zwróci liczbę wierszy, które zostały rzeczywiście usunięte. To jest szczególnie przydatne w kontekście sprawdzania wpływu operacji na bazę danych i pozwala na dynamiczne podejmowanie decyzji w aplikacjach bazodanowych. Przykładowo, jeśli po usunięciu chcemy wykonać dodatkowe operacje tylko wtedy, gdy co najmniej jeden rekord został usunięty, możemy użyć tej funkcji. Zgodnie z dobrymi praktykami, korzystanie z mysqli_affected_rows() jest standardem, gdyż pozwala również na obsługę wyjątków i błędów bazy danych. Optymalizacja operacji DELETE poprzez precyzyjne filtrowanie w WHERE, jak w naszym przykładzie, jest kluczowa dla zachowania wydajności bazy danych szczególnie w dużych systemach produkcyjnych.

Pytanie 31

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

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

Pytanie 32

Z ilustracji można odczytać, że użytkownik bazy danych posiada uprawnienia do:

Ilustracja do pytania
A. wyświetlania, dodawania i aktualizacji danych.
B. dodawania, aktualizacji i usuwania danych.
C. wyświetlania, aktualizacji i usuwania danych.
D. wyświetlania, dodawania i usuwania danych.
Na ilustracji widać listę uprawnień do bazy danych w typowym narzędziu administracyjnym (bardzo podobne okno można spotkać np. w phpMyAdminie). Zaznaczone są pola SELECT, UPDATE i DELETE, a niezaznaczone INSERT oraz FILE. W praktyce oznacza to, że użytkownik może odczytywać dane (SELECT), modyfikować istniejące rekordy (UPDATE) oraz je usuwać (DELETE), ale nie ma prawa dodawać nowych wierszy (INSERT) ani operować na plikach na serwerze (FILE). Dlatego poprawna odpowiedź to: „wyświetlania, aktualizacji i usuwania danych”. SELECT odpowiada za wyświetlanie/odczyt danych, UPDATE za aktualizację rekordów, a DELETE za kasowanie danych w tabelach. W administracji bazą danych takie precyzyjne rozróżnienie uprawnień jest jedną z podstawowych dobrych praktyk bezpieczeństwa: użytkownik powinien mieć dokładnie takie prawa, jakich potrzebuje do pracy (zasada najmniejszych uprawnień – least privilege). Na przykład: typowy użytkownik aplikacji raportującej potrzebuje zwykle tylko SELECT, bo ma jedynie oglądać dane. Pracownik działu obsługi klienta może mieć SELECT i UPDATE, aby poprawiać błędne dane klientów, ale niekoniecznie DELETE, żeby przypadkiem nie usuwać rekordów. Z kolei konto techniczne używane przez skrypty migracyjne albo instalator systemu może mieć pełen zestaw: SELECT, INSERT, UPDATE, DELETE. Moim zdaniem warto od razu kojarzyć te nazwy z typowymi poleceniami SQL, bo później, przy pisaniu zapytań w kodzie (PHP, JavaScript z backendem, itp.), dokładnie te same słowa kluczowe pojawiają się w instrukcjach. Jeśli system pokazuje uprawnienia tak jak na obrazku, zawsze patrz najpierw, które checkboxy są zaznaczone, i od razu tłumacz je sobie na: odczyt, dodawanie, zmiana, usuwanie danych.

Pytanie 33

Jaką wartość uzyska zmienna x po wykonaniu poniższego kodu PHP?

mysqli_query($db, "DELETE FROM produkty WHERE status < 0");
$x = mysqli_affected_rows($db);
A. Liczbę wierszy przetworzonych przez zapytanie DELETE FROM.
B. Liczbę wierszy, które znajdują się w bazie danych.
C. Liczbę wierszy w tabeli produkty, dla których pole status przekracza zero.
D. Liczbę wierszy, które zostały dodane do tabeli produkty.
Poprawna odpowiedź dotyczy liczby wierszy przetworzonych przez zapytanie DELETE FROM w bazie danych. Funkcja mysqli_affected_rows($db) zwraca liczbę wierszy, które zostały zmodyfikowane przez ostatnie wykonane zapytanie na danym połączeniu z bazą danych. W przypadku zapytania DELETE, zwróci ona liczbę wierszy, które zostały usunięte w wyniku działania tego zapytania. W kontekście dobrych praktyk, zawsze warto sprawdzać, jakie operacje zostały wykonane na bazie danych, aby zrozumieć wpływ zapytań na dane. Na przykład, w aplikacjach e-commerce, przed usunięciem produktów, można wykorzystać tę informację do potwierdzenia, że usunięcie danych nie wpływa negatywnie na inne elementy systemu. Użycie tej funkcji pozwala na efektywne zarządzanie danymi oraz na utrzymanie spójności w bazie danych, co jest kluczowe w kontekście bezpieczeństwa i integralności danych.

Pytanie 34

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

Pytanie 35

W bazie danych wykonano poniższe polecenia dotyczące uprawnień użytkownika adam:

GRANT ALL PRIVILEGES ON klienci TO adam;
REVOKE SELECT, INSERT, UPDATE ON klienci FROM adam;
Po wykonaniu tych instrukcji użytkownik adam uzyska dostęp do:
A. usunięcia tabeli lub jej rekordów
B. zmiany danych oraz przeglądania tabeli klienci
C. tworzenia tabeli klienci i modyfikowania w niej danych
D. przeglądania tabeli klienci oraz dodawania do niej rekordów
Użytkownik <b>adam</b> rzeczywiście uzyskuje pełne prawa do zarządzania tabelą <b>klienci</b> po wykonaniu polecenia GRANT ALL PRIVILEGES. To polecenie nadaje wszystkie możliwe uprawnienia, w tym SELECT (przeglądanie danych), INSERT (wstawianie nowych rekordów), UPDATE (aktualizowanie istniejących danych) oraz DELETE (usuwanie rekordów). W kontekście praktycznym, posiadanie ALL PRIVILEGES oznacza, że użytkownik ma swobodę w manipulowaniu danymi, co jest kluczowe w pracy z bazami danych. Na przykład, w aplikacji zarządzającej klientami, <b>adam</b> może zaktualizować szczegóły klienta, dodać nowych klientów do bazy oraz usunąć tych, którzy już nie są aktywni. Jednakże, ważne jest, aby przyznawanie takich uprawnień odbywało się zgodnie z zasadami minimalnych uprawnień, aby zredukować ryzyko nieautoryzowanych zmian. Dlatego też praktyki zarządzania użytkownikami w bazach danych powinny obejmować dokładne audyty uprawnień oraz regularne przeglądy przyznanych praw, aby zapewnić bezpieczeństwo danych.

Pytanie 36

W teorii relacji operacja selekcji polega na

A. wybraniu krotek, które spełniają określone warunki
B. pozbywaniu się pustych wierszy
C. wybraniu krotek, które nie zawierają wartości NULL
D. eliminuje krotki z powtarzającymi się polami
Operacja selekcji w algebrze relacji polega na wydobywaniu z bazy danych krotek, które spełniają określone warunki. Tego rodzaju operacje są kluczowe w kontekście zapytań do baz danych, ponieważ pozwalają na precyzyjne filtrowanie danych. Na przykład, jeśli mamy tabelę 'Klienci' z informacjami o klientach, możemy użyć selekcji, aby wybrać tylko tych, którzy mają status 'aktywny', co pozwala nam skoncentrować się na aktualnych użytkownikach. Takie podejście jest zgodne z podstawowymi zasadami zarządzania danymi, w tym z zasadą minimalizacji danych, która mówi, że należy pracować tylko z tymi informacjami, które są istotne do danego zadania. Ponadto, operacja selekcji jest często używana w połączeniu z innymi operacjami, takimi jak projekcja czy łączenie, co pozwala na budowanie bardziej złożonych zapytań i uzyskiwanie bardziej szczegółowych informacji. W praktyce, umiejętność skutecznego stosowania selekcji jest niezbędna dla każdego, kto pracuje z bazami danych, a znajomość tej operacji stanowi podstawę dla bardziej zaawansowanych technik analizy danych.

Pytanie 37

Wynikiem realizacji kwerendy

SELECT sezon, SUM(liczba_dn) FROM rezerwacje GROUP BY sezon;
na podstawie poniższej tabeli rezerwacje jest:
A. lato 3, zima 4
B. lato 10, zima 4, lato 5, zima 6, lato 5, zima 9, zima 8
C. lato 10, 5, 5; zima 4, 6, 9, 8
D. lato 20, zima 27
Wykonana kwerenda SQL agreguje dane z tabeli rezerwacje, grupując je według sezonu i sumując liczbę dni (liczba_dn) dla każdego sezonu. W tabeli znajdują się rekordy związane z sezonami letnim i zimowym. Analizując dane, dla sezonu letniego mamy trzy wpisy: 10 dni, 5 dni oraz 5 dni, co łącznie daje 20 dni. Dla sezonu zimowego mamy cztery wpisy: 4 dni, 6 dni, 9 dni oraz 8 dni, co po zsumowaniu daje 27 dni. Odpowiedź numer 2 jest zatem poprawna, ponieważ przedstawia poprawne sumy dla sezonów. Praktyczne zastosowanie takiej kwerendy może obejmować analizowanie sezonowości rezerwacji w hotelach, co wspiera procesy decyzyjne w zakresie zarządzania zasobami i planowania promocji. Zgodność z dobrymi praktykami w SQL wymaga znajomości funkcji agregujących, takich jak SUM, oraz umiejętności grupowania danych, co jest kluczowe w analizie danych w różnych dziedzinach biznesowych.

Pytanie 38

Dostosowanie wyglądu strony dla konkretnego użytkownika i jego identyfikacja w serwisie są możliwe dzięki systemowi

A. połączenia z bazą
B. cookie
C. formularzy
D. obiektów DOM
Cookie to niewielkie pliki tekstowe, które są przechowywane na urządzeniu użytkownika przez przeglądarkę internetową. Dzięki nim serwisy internetowe mogą identyfikować użytkowników, a także personalizować ich doświadczenia na stronie. Kiedy użytkownik odwiedza stronę po raz pierwszy, serwis może utworzyć unikalny identyfikator w pliku cookie, który będzie przesyłany za każdym razem, gdy użytkownik powraca. W ten sposób serwis może pamiętać o preferencjach użytkownika, takich jak język, układ strony czy ostatnio przeglądane produkty. Przykładem może być sklep internetowy, który po zalogowaniu się użytkownika zapamiętuje jego koszyk zakupowy oraz preferencje dotyczące produktów. Cookie są również zgodne z różnymi standardami, takimi jak RFC 6265, które definiują zasady dotyczące zarządzania plikami cookie. Dzięki temu mechanizmowi możliwe jest także śledzenie analityki użytkowników, co pozwala właścicielom serwisów na lepsze zrozumienie ich zachowań i potrzeb.

Pytanie 39

Podane zapytanie SQL przyznaje użytkownikowi adam@localhost uprawnienia:

GRANT SELECT, INSERT, UPDATE, DELETE
ON klienci TO adam@localhost
A. do zarządzania strukturą tabeli klienci
B. do zarządzania strukturą bazy danych klienci
C. do manipulowania danymi bazy danych klienci
D. do manipulowania danymi w tabeli klienci
Pozostałe opcje wskazują na zarządzanie strukturą bazy danych lub tabeli co w kontekście podanego polecenia SQL nie jest prawidłowe Zarządzanie strukturą bazy danych odnosi się do operacji takich jak tworzenie usuwanie lub modyfikowanie tabel indeksów i innych obiektów bazy danych Przykłady takich operacji to polecenia CREATE ALTER i DROP które zmieniają definicję strukturalną tabel lub innych obiektów bazodanowych W przypadku zarządzania strukturą tabeli moglibyśmy mówić o dodawaniu nowych kolumn zmienianiu typu danych istniejących kolumn czy zmianach w kluczach indeksach Tego typu zmiany nie są objęte poleceniem GRANT SELECT INSERT UPDATE DELETE które koncentruje się wyłącznie na manipulacji danymi w istniejącej strukturze Dlatego też typowym błędem myślowym jest utożsamianie operacji na danych z operacjami modyfikującymi strukturę bazy danych takimi jak dodawanie tabel czy kolumn Operatorzy SQL są precyzyjnie zdefiniowani i rozdzieleni na kategorie manipulacji danymi DML oraz definicji danych DDL co jest kluczowym rozróżnieniem w pracy z bazami danych

Pytanie 40

Systemem zarządzania wersjami w projekcie programistycznym, który działa w trybie rozproszonym, jest

A. GIT
B. Eclipse
C. FileZilla
D. TotalCommander
GIT jest rozproszonym systemem kontroli wersji, który pozwala na efektywne zarządzanie kodem źródłowym projektu programistycznego. Jego architektura umożliwia każdemu programiście posiadanie lokalnej kopii repozytorium, co przyspiesza operacje takie jak commit, diff czy log, ponieważ nie wymaga dostępu do zdalnego serwera. GIT wspiera równoległą pracę wielu deweloperów, umożliwiając tworzenie gałęzi (branch) do rozwijania funkcji czy naprawy błędów bez wpływania na główną wersję kodu. Przykładami praktycznego zastosowania są: rozwijanie nowych funkcjonalności w oddzielnych gałęziach, zarządzanie kodem w projektach open source, czy współpraca w zespołach rozproszonych geograficznie, gdzie deweloperzy mogą synchronizować swoje zmiany poprzez operacje push i pull. Warto także zaznaczyć, że GIT jest szeroko stosowany w standardach branżowych, takich jak Continuous Integration/Continuous Deployment (CI/CD), co podkreśla jego znaczenie w nowoczesnym procesie wytwarzania oprogramowania.