Wyniki egzaminu

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

Egzamin niezdany

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

Wymagane minimum: 20 punktów (50%)

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

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

Wskaź na właściwą sekwencję tworzenia aplikacji?

A. Analiza potrzeb klienta, specyfikacja wymagań, tworzenie, testowanie, wdrażanie
B. Tworzenie, analiza potrzeb klienta, specyfikacja wymagań, wdrażanie, testowanie
C. Analiza potrzeb klienta, specyfikacja wymagań, tworzenie, wdrażanie, testowanie
D. Specyfikacja wymagań, analiza potrzeb klienta, tworzenie, wdrażanie, testowanie
Nieprawidłowe odpowiedzi w kwestii kolejności tworzenia aplikacji bazują na błędnych założeniach dotyczących etapów procesu. W pierwszej z tych odpowiedzi, pominięcie analizy wymagań klienta na rzecz specyfikacji powoduje, że projekt może nie spełniać oczekiwań użytkowników, co prowadzi do nieefektywnego wykorzystania zasobów oraz czasu. Specyfikacja wymagań musi być tworzona na podstawie dokładnej analizy potrzeb, a nie odwrotnie. Kolejna odpowiedź zaczyna się od tworzenia aplikacji bez wcześniejszej analizy i specyfikacji, co jest nie tylko technicznie błędne, ale również wiąże się z ogromnym ryzykiem powstawania błędów w kodzie i funkcjonalności, które nie odpowiadają na realne potrzeby użytkowników. W ostatnim przypadku, pomimo że analiza wymagań oraz specyfikacja są na początku, przed wdrożeniem powinny być przeprowadzone testy, aby upewnić się, że produkt działa zgodnie z oczekiwaniami. Etap testowania jest niezbędny przed wdrożeniem, ponieważ pozwala na identyfikację i naprawę błędów, co jest kluczowe dla osiągnięcia wysokiej jakości końcowego produktu. Wszelkie zmiany w tej kolejności mogą prowadzić do kosztownych błędów oraz niezadowolenia użytkowników.

Pytanie 3

Podane w ramce polecenie SQL nadaje prawo SELECT

GRANT SELECT ON hurtownia.* TO 'sprzedawca'@'localhost';
A. dla użytkownika 'root' na serwerze localhost.
B. dla użytkownika 'root' na serwerze sprzedawca.
C. do wszystkich tabel w bazie hurtownia.
D. do wszystkich pól w tabeli hurtownia.
Poprawnie wychwyciłeś najważniejszy element składni: zapis hurtownia.* po słowie ON oznacza całą bazę danych o nazwie hurtownia, a nie pojedynczą tabelę. W składni GRANT w MySQL i innych systemach bazodanowych mamy kilka poziomów nadawania uprawnień: można nadać uprawnienia do całej bazy (database), do konkretnej tabeli, a nawet do pojedynczych kolumn. Kluczowe jest to, co znajduje się po słowie ON. Jeżeli podamy nazwa_bazy.* – tak jak tutaj – to uprawnienie SELECT dotyczy wszystkich tabel w tej bazie danych. Gdyby chodziło o jedną tabelę, składnia wyglądałaby np. GRANT SELECT ON hurtownia.zamowienia TO 'sprzedawca'@'localhost'; i wtedy prawo dotyczyłoby wyłącznie tabeli zamowienia. W tym poleceniu dodatkowo jasno określony jest użytkownik: 'sprzedawca'@'localhost'. W MySQL użytkownik jest identyfikowany parą nazwa_użytkownika@host, więc nie jest to ani root, ani żaden inny login, tylko konkretny użytkownik o nazwie sprzedawca, który łączy się z serwera localhost. To jest typowy scenariusz np. dla aplikacji sprzedażowej instalowanej na tym samym serwerze co baza. Taki użytkownik często dostaje tylko SELECT do bazy hurtownia, żeby mógł odczytywać dane (np. listę produktów, stany magazynowe, historię zamówień), ale nie miał uprawnień do modyfikacji struktury bazy czy kasowania rekordów. Moim zdaniem jest to bardzo dobra praktyka bezpieczeństwa: tworzy się osobnych użytkowników o wąskim zakresie uprawnień zamiast wszędzie używać konta root. W realnych projektach webowych, np. w PHP czy innych językach backendowych, w pliku konfiguracyjnym aplikacji podaje się właśnie takiego technicznego użytkownika, który ma GRANT SELECT (czasem też INSERT/UPDATE) tylko na jedną, konkretną bazę. Dzięki temu nawet jeśli aplikacja zostanie zhakowana, atakujący ma dużo mniejsze pole do popisu, bo nie dysponuje pełnymi uprawnieniami administracyjnymi. Dobrze też zapamiętać, że GRANT SELECT nie daje prawa do tworzenia nowych tabel ani zmiany struktury – to są osobne uprawnienia (CREATE, ALTER, DROP). Tutaj mówimy wyłącznie o możliwości wykonywania zapytań odczytujących dane ze wszystkich tabel w bazie hurtownia, co w praktyce oznacza, że użytkownik sprzedawca może spokojnie robić SELECT * FROM jakakolwiek_tabela; pod warunkiem, że ta tabela znajduje się właśnie w tej bazie.

Pytanie 4

Co oznacza skrót SQL?

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

Pytanie 5

Który typ danych należy przypisać kolumnie z kodami pocztowymi w tabeli relacyjnej bazy danych, aby przechowywała dane w formie łańcuchów znakowych o zdefiniowanej, stałej długości?

A. BLOB
B. TEXT
C. DECIMAL
D. CHAR
Poprawnie – dla kolumny z kodami pocztowymi najlepszym wyborem jest typ CHAR. Kody pocztowe są danymi tekstowymi, a nie liczbowymi, mimo że często składają się wyłącznie z cyfr. W wielu krajach (np. w Polsce, Wielkiej Brytanii czy Kanadzie) kod pocztowy może zawierać myślniki, spacje, a nawet litery. Co ważne, długość kodu jest z góry znana i stała (np. w Polsce zawsze 6 znaków w formacie „NN-NNN”). Typ CHAR został właśnie zaprojektowany do przechowywania krótkich łańcuchów znaków o stałej długości. Silnik bazy danych rezerwuje stałą ilość miejsca i dopełnia wartość spacjami, jeśli jest krótsza. Dzięki temu porównywanie, indeksowanie i sortowanie takich pól jest przewidywalne i wydajne. Moim zdaniem jest to dokładnie ten przypadek, który się podręcznikowo podaje na zajęciach: PESEL, NIP, numer dokumentu, kod pocztowy – wszystkie to typowe przykłady na CHAR. W praktyce np. w MySQL zdefiniujesz taką kolumnę jako CHAR(6), w PostgreSQL jako CHAR(6) albo ewentualnie VARCHAR(6), ale przy stałej długości CHAR jest bardziej jednoznacznym sygnałem projektowym. Dodatkowo użycie typu znakowego zapobiega „obcinaniu” zer wiodących, co jest częstym błędem przy traktowaniu kodów pocztowych jako liczby. W wielu systemach legacy właśnie z tego powodu trzeba było później migrować typ danych z numerycznego na tekstowy. Z punktu widzenia dobrych praktyk modelowania danych przyjmuje się zasadę: jeżeli coś nie służy do liczenia, tylko jest identyfikatorem lub etykietą, to przechowujemy to jako tekst, a dla stałej długości – jako CHAR o odpowiednim rozmiarze.

Pytanie 6

W tabeli mieszkancy, która zawiera pola id, imie, nazwisko, ulica, numer oraz czynsz (kwota całkowita), należy uzyskać informacje o osobach zamieszkujących ulicę Mickiewicza pod numerami 71, 72, 80, których czynsz nie przekracza 1000 zł. Klauzula WHERE w zapytaniu powinna wyglądać następująco

A. WHERE ulica = 'Mickiewicza' AND numer IN (71, 72, 80) AND czynsz < 1000
B. WHERE ulica = 'Mickiewicza' AND numer > 70 AND numer < 81 OR czynsz < 1000
C. WHERE ulica = 'Mickiewicza' AND numer IN (71, 72, 80) OR czynsz < 1000
D. WHERE ulica = 'Mickiewicza' OR numer IN (71, 72, 80) OR czynsz < 1000

Brak odpowiedzi na to pytanie.

Wyjaśnienie poprawnej odpowiedzi:
Kiedy piszemy zapytanie SQL, klauzula WHERE powinna wyglądać tak: 'WHERE ulica = 'Mickiewicza' AND numer IN (71, 72, 80) AND czynsz < 1000'. Dlaczego to działa? Bo ta klauzula jasno określa, że interesują nas tylko mieszkańcy z ulicy Mickiewicza, mający numery 71, 72 lub 80, i którzy płacą czynsz mniejszy niż 1000 zł. Użycie AND sprawia, że wszystkie te warunki muszą być spełnione naraz, co jest naprawdę ważne. Możemy to sobie wyobrazić w kontekście zarządzania nieruchomościami, gdzie chcemy pokazać tylko wybraną grupę mieszkańców, na przykład do analizy ich sytuacji finansowej. I tak na marginesie – w SQL lepiej unikać OR, gdy chcemy dostąpić do jasno określonych danych, ponieważ może to dać nam za dużo wyników lub takie, których nie chcemy.

Pytanie 7

Celem testów wydajnościowych jest ocena

A. ciągu zdarzeń, w którym prawdopodobieństwo danego zdarzenia zależy tylko od wyniku zdarzenia wcześniejszego
B. zdolności programu do funkcjonowania w sytuacjach, gdy system działa niepoprawnie
C. zdolności programu do funkcjonowania w sytuacjach, gdy sprzęt działa niepoprawnie
D. stopnia, w jakim system lub moduł spełnia wymagania dotyczące wydajności

Brak odpowiedzi na to pytanie.

Wyjaśnienie poprawnej odpowiedzi:
Testy wydajnościowe są kluczowym elementem procesu zapewnienia jakości oprogramowania, mającym na celu ocenę zdolności systemu lub modułu do spełnienia określonych wymagań wydajnościowych. Ich głównym celem jest zmierzenie, jak system radzi sobie w warunkach obciążenia, a także w różnych scenariuszach użytkowania. W ramach testów wydajnościowych analizuje się takie parametry jak czas reakcji, przepustowość oraz zasoby zużywane przez aplikację. Praktycznym przykładem może być testowanie aplikacji internetowej w warunkach, gdy korzysta z niej wielu użytkowników jednocześnie, co pozwala ocenić, jak skaluje się system. W kontekście standardów, organizacje często odnoszą się do metodologii takich jak Performance Testing Framework, a także do narzędzi jak JMeter czy LoadRunner, które umożliwiają automatyzację procesu testowania. Testy te pomagają w identyfikacji wąskich gardeł, które mogą wpływać na wydajność, co przekłada się na lepsze doświadczenia użytkowników oraz minimalizację kosztów związanych z utrzymaniem systemu.

Pytanie 8

Jakiego typu danych w bazie MySQL należy używać, aby zapisać datę oraz czas w jednym polu?

A. DATE
B. BOOLEAN
C. YEAR
D. TIMESTAMP

Brak odpowiedzi na to pytanie.

Wyjaśnienie poprawnej odpowiedzi:
Typ danych TIMESTAMP w MySQL jest idealnym wyborem do przechowywania zarówno daty, jak i czasu w jednym polu, co czyni go bardzo funkcjonalnym w kontekście aplikacji wymagających ścisłej kontroli nad czasem zdarzeń. TIMESTAMP przechowuje datę i czas jako liczbę sekund, które upłynęły od 1 stycznia 1970 roku, co pozwala na łatwe manipulowanie danymi związanymi z czasem, jak obliczanie różnic między datami czy sortowanie po czasie. Przykładowo, w aplikacjach takich jak systemy rezerwacji, gdzie istotne jest nie tylko kiedy coś zostało zarezerwowane, ale również czas rezerwacji, użycie TIMESTAMP umożliwia efektywne zarządzanie danymi. Dodatkowo, TIMESTAMP automatycznie aktualizuje się, gdy rekord jest zmieniany, co jest niezwykle przydatne w kontekście audytów i monitorowania historii zmian w danych. Warto również zauważyć, że TIMESTAMP w MySQL obsługuje strefy czasowe, co czyni go bardziej uniwersalnym w międzynarodowych zastosowaniach. W standardach branżowych dobre praktyki wskazują na używanie TIMESTAMP dla operacji wymagających ścisłej synchronizacji czasowej oraz tam, gdzie istotna jest informacja o czasie zdarzenia.

Pytanie 9

Głównym celem systemu CMS jest oddzielenie treści serwisu informacyjnego od jego wizualnej formy. Ten efekt osiągany jest przez generowanie zawartości

A. z plików HTML o stałej zawartości oraz wizualizacji z użyciem ustalonego szablonu
B. z bazy danych oraz wizualizacji poprzez atrybuty HTML
C. z bazy danych oraz wyglądu ze zdefiniowanego szablonu
D. z plików HTML o stałej zawartości oraz wizualizacji przy pomocy technologii FLASH

Brak odpowiedzi na to pytanie.

Wyjaśnienie poprawnej odpowiedzi:
Poprawna odpowiedź na to pytanie to "z bazy danych oraz wyglądu ze zdefiniowanego szablonu". Systemy CMS (Content Management System) mają na celu oddzielenie treści od prezentacji, co pozwala na łatwiejsze zarządzanie i aktualizowanie zawartości serwisu. Wykorzystanie bazy danych do przechowywania treści jest kluczowe, ponieważ umożliwia dynamiczne generowanie zawartości na stronach internetowych. Dzięki temu, gdy zmienia się treść w bazie danych, zmiany te są automatycznie odzwierciedlane na stronie bez potrzeby modyfikacji statycznych plików HTML. Szablony, które definiują wygląd, są również niezmiernie ważne, ponieważ pozwalają na spójność wizualną serwisu i jego łatwą adaptację w przypadku zmian w designie. Przykładem może być użycie systemu szablonów, takiego jak Twig w Symfony, który umożliwia separację logiki biznesowej od prezentacji, co ułatwia pracę developerom i designerom. Takie podejście jest zgodne z najlepszymi praktykami w branży, zapewniając przy tym elastyczność i skalowalność serwisów internetowych.

Pytanie 10

W bazach danych typ DECIMAL jest przeznaczony do przechowywania

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

Brak odpowiedzi na to pytanie.

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

Pytanie 11

W systemie baz danych sklepu komputerowego znajduje się tabela o nazwie komputery. Aby stworzyć raport pokazujący dane z tabeli, obejmujący tylko komputery z co najmniej 8 GB pamięci oraz procesorem Intel, można wykorzystać kwerendę

A. SELECT * FROM komputery WHERE procesor = 'Intel' OR pamiec >= 8;
B. SELECT * FROM komputery WHERE procesor = 'Intel' AND pamiec < 8
C. SELECT * FROM komputery WHERE procesor = 'Intel' AND pamiec >= 8;
D. SELECT * FROM komputery WHERE procesor = 'Intel' OR pamiec < 8

Brak odpowiedzi na to pytanie.

Wyjaśnienie poprawnej odpowiedzi:
Wybrana kwerenda SELECT * FROM komputery WHERE procesor = 'Intel' AND pamiec >= 8; jest prawidłowa, ponieważ precyzyjnie spełnia wymagania dotyczące filtracji danych w tabeli komputery. Użycie operatora AND jest kluczowe w tej sytuacji, ponieważ umożliwia jednoczesne sprawdzenie dwóch warunków: pierwszy warunek wymaga, aby procesor był równy 'Intel', a drugi, aby pamięć RAM była większa lub równa 8 GB. W rezultacie kwerenda zwróci tylko te rekordy, które spełniają oba kryteria, co jest zgodne z założeniem raportu. W praktyce, tego typu kwerendy są niezwykle ważne, szczególnie w kontekście analizy danych, gdzie precyzyjne określenie kryteriów jest kluczowe dla uzyskania wartościowych wyników. Dobre praktyki w tworzeniu zapytań SQL obejmują także wykorzystanie odpowiednich indeksów na kolumnach procesor i pamiec, co może znacznie zwiększyć wydajność zapytań, zwłaszcza w dużych zbiorach danych.

Pytanie 12

Jakie parametry powinny być ustawione w funkcji biblioteki mysqli, aby umożliwić połączenie z serwerem oraz bazą danych?

mysqli_connect($a, $b, $c, $d) or die('Brak połączenia z serwerem MySQL.');
A. adres serwera - $c, nazwa bazy danych - $d, login - $a, hasło - $b
B. adres serwera - $a, nazwa bazy danych - $b, login - $c, hasło - $d
C. adres serwera - $c, nazwa bazy danych - $d, login - $b, hasło - $a
D. adres serwera - $a, nazwa bazy danych - $d, login - $b, hasło - $c

Brak odpowiedzi na to pytanie.

Wyjaśnienie poprawnej odpowiedzi:
Odpowiedź jest poprawna, ponieważ w funkcji biblioteki mysqli_connect, która służy do nawiązywania połączenia z serwerem MySQL, argumenty mają określoną strukturę. Pierwszym argumentem ($a) jest adres serwera, na którym działa usługa MySQL. Może to być adres IP, np. '127.0.0.1', lub nazwa hosta, np. 'localhost'. Drugim argumentem ($b) jest login, czyli nazwa użytkownika, który ma dostęp do bazy danych. Trzecim argumentem ($c) jest hasło do konta użytkownika, natomiast czwartym argumentem ($d) jest nazwa bazy danych, z którą chcemy się połączyć. Przykładowe użycie tej funkcji może wyglądać następująco: $conn = mysqli_connect('localhost', 'root', 'password', 'my_database');. Prawidłowe ustawienie tych zmiennych zapewnia udane połączenie z serwerem i dostęp do danych. W standardach programowania PHP ważne jest również odpowiednie zarządzanie błędami, co zapewnia użycie 'or die()' w kodzie, aby informować o problemach z połączeniem. To podejście pozwala na szybką diagnostykę problemów w środowisku produkcyjnym.

Pytanie 13

Jaką funkcję agregującą można zastosować, aby uzyskać ilość rekordów?

A. NUMBER
B. AVG
C. SUM
D. COUNT

Brak odpowiedzi na to pytanie.

Wyjaśnienie poprawnej odpowiedzi:
Funkcja agregująca COUNT jest używana w bazach danych do zwracania liczby rekordów spełniających określone kryteria. Jest to jedna z podstawowych funkcji agregujących, która pozwala na szybkie uzyskanie informacji o objętości danych w tabeli. Na przykład, w zapytaniu SQL, które ma na celu policzenie liczby wszystkich klientów w tabeli "klienci", możemy użyć: SELECT COUNT(*) FROM klienci. Zwróci to całkowitą liczbę rekordów. Funkcja COUNT może być również używana z warunkami, co pozwala na bardziej zaawansowane analizy, takie jak: SELECT COUNT(*) FROM klienci WHERE kraj = 'Polska', co policzy tylko tych klientów, którzy są z Polski. W praktyce, COUNT jest nieoceniony w raportowaniu i analizie danych, umożliwiając analitykom i programistom szybkie zrozumienie struktury danych. Dobra praktyka to zawsze stosować COUNT w kontekście grupowania danych przy użyciu klauzuli GROUP BY, co pozwala na uzyskanie liczby rekordów w poszczególnych grupach.

Pytanie 14

Kto z wymienionych zajmuje się nieprzerwanym przygotowaniem systemu bazy danych do pracy produkcyjnej, zarządzaniem kontami użytkowników oraz instalowaniem aktualizacji systemu bazodanowego?

A. Projektanci i programiści Systemu Zarządzania Bazą Danych
B. Administratorzy systemu bazy danych
C. Administratorzy serwerów oraz sieci komputerowych
D. Twórcy narzędzi dla deweloperów

Brak odpowiedzi na to pytanie.

Wyjaśnienie poprawnej odpowiedzi:
Administratorzy systemu bazy danych to kluczowe osoby odpowiedzialne za wdrażanie, zarządzanie i utrzymanie baz danych w środowisku produkcyjnym. Ich zadania obejmują nie tylko konfigurację serwera baz danych, ale również dbanie o jego wydajność, bezpieczeństwo oraz integralność danych. Administratorzy monitorują działanie systemu, optymalizują zapytania i przeprowadzają regularne kopie zapasowe, co jest niezwykle istotne dla ochrony danych. Przykładem praktycznym może być zarządzanie bazą danych MySQL, gdzie administratorzy korzystają z narzędzi takich jak phpMyAdmin do monitorowania aktywności użytkowników i przeprowadzania aktualizacji systemu. Dodatkowo, administratorzy są odpowiedzialni za nadawanie i kontrolowanie uprawnień użytkowników, co polega na definiowaniu ról i przydzielaniu dostępu zgodnie z wymaganiami bezpieczeństwa. W oparciu o najlepsze praktyki branżowe, administratorzy systemów baz danych muszą być dobrze zaznajomieni z normami, takimi jak ISO/IEC 27001, które dotyczą zarządzania bezpieczeństwem informacji, co podkreśla ich ważną rolę w organizacji.

Pytanie 15

Polecenie GRANT w języku SQL służy do

A. aktualizacji istniejących danych w bazie.
B. nadawania użytkownikom praw do obiektów.
C. odbierania użytkownikom praw do obiektów.
D. umieszczania nowych danych w bazie.

Brak odpowiedzi na to pytanie.

Wyjaśnienie poprawnej odpowiedzi:
Poprawnie – polecenie GRANT w SQL służy właśnie do nadawania użytkownikom praw do obiektów w bazie danych. W praktyce GRANT jest jednym z kluczowych narzędzi mechanizmu kontroli dostępu, czyli tzw. autoryzacji. Najpierw ktoś łączy się z bazą (to jest uwierzytelnianie – login/hasło, certyfikat itd.), a dopiero potem baza sprawdza, jakie uprawnienia ma ten użytkownik. I tu wchodzi GRANT. Administrator lub właściciel obiektu może przyznać użytkownikowi np. prawo SELECT do tabeli `klienci`, prawo INSERT do tabeli `zamowienia`, albo prawo EXECUTE do procedury składowanej. Składnia jest dość prosta, np.: `GRANT SELECT, INSERT ON klienci TO jan;`. W większości systemów (np. PostgreSQL, Oracle, MySQL/MariaDB, SQL Server) idea jest podobna, różnią się tylko szczegóły i nazwy ról czy typów uprawnień. W dobrych praktykach bezpieczeństwa nie daje się użytkownikom uprawnień typu „wszystko na wszystkim”, tylko dokładnie to, czego potrzebują (tzw. zasada najmniejszych uprawnień – least privilege). Moim zdaniem warto już na etapie nauki SQL odróżniać polecenia do pracy na danych (SELECT, INSERT, UPDATE, DELETE) od poleceń do zarządzania uprawnieniami, takich jak GRANT i REVOKE. W codziennej pracy administratora baz, programisty backendu czy nawet osoby od DevOps, GRANT pojawia się bardzo często: przy tworzeniu nowych kont aplikacyjnych, przy separacji środowisk (dev/test/prod), przy ograniczaniu dostępu do wrażliwych tabel, np. z danymi osobowymi. Dobre zrozumienie GRANT pomaga też szybko diagnozować błędy typu „permission denied” i świadomie projektować politykę bezpieczeństwa w systemie.

Pytanie 16

Przed przystąpieniem do tworzenia kopii zapasowej bazy danych, aby była ona poprawna i zdatna do późniejszego przywrócenia, konieczne jest sprawdzenie

A. uprawnień dostępu do serwera bazy danych
B. spójności bazy danych
C. poprawności składni zapytań
D. opcji udostępnienia bazy danych

Brak odpowiedzi na to pytanie.

Wyjaśnienie poprawnej odpowiedzi:
Spójność bazy danych to kluczowy aspekt, który należy sprawdzić przed wykonaniem kopii bezpieczeństwa. Oznacza to, że wszystkie dane w bazie muszą być zgodne z ustalonymi regułami i zapewniać prawidłowe relacje między różnymi tabelami oraz rekordami. Na przykład, jeżeli w bazie danych znajdują się relacje między tabelami, to każda referencja musi wskazywać na istniejący rekord. W praktyce, przed wykonaniem kopii zapasowej, administratorzy często przeprowadzają operacje takie jak walidacja danych, aby upewnić się, że nie ma błędów, które mogłyby prowadzić do nieprawidłowych wyników po przywróceniu danych. Dobre praktyki w zarządzaniu bazami danych, takie jak regularne wykonywanie kontroli spójności oraz audytów danych, pomagają zminimalizować ryzyko problemów z danymi. Warto również korzystać z narzędzi automatyzacyjnych, które mogą wykrywać niezgodności w danych, co znacznie ułatwia proces przed wykonaniem kopii zapasowej.

Pytanie 17

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

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

Brak odpowiedzi na to pytanie.

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

Pytanie 18

W bibliotece mysqli w PHP, aby uzyskać najbardziej aktualny komunikat o błędzie, można użyć funkcji

A. mysqli_errno()
B. mysqli_error()
C. mysqli_use_result()
D. mysqli_error_list()

Brak odpowiedzi na to pytanie.

Wyjaśnienie poprawnej odpowiedzi:
Funkcja mysqli_error() w bibliotece mysqli języka PHP jest sposobem na uzyskanie ostatniego komunikatu o błędzie związanym z połączeniem lub zapytaniem SQL. Zwraca ona łańcuch znaków, który opisuje ostatni błąd związany z danym połączeniem. Jest to niezwykle przydatne narzędzie w procesie debugowania, ponieważ pozwala programiście szybko zidentyfikować źródło problemu. Na przykład, jeśli napotkasz błąd podczas wykonywania zapytania, możesz użyć mysqli_error($connection) po funkcji wykonującej zapytanie, aby uzyskać szczegółowy opis błędu. W kontekście dobrych praktyk programistycznych, zawsze należy obsługiwać błędy i nie ignorować ich, aby uniknąć trudności w przyszłości. Warto również pamiętać, że funkcja ta działa tylko w kontekście aktualnego połączenia bazodanowego, co oznacza, że przed jej użyciem musisz mieć aktywne połączenie. Przykład użycia: $result = mysqli_query($connection, $query); if (!$result) { echo mysqli_error($connection); }

Pytanie 19

Rozważ tabelę pracownicy. Jakie jest polecenie MySQL, które usuwa wszystkie wpisy z tabeli, gdzie pole rodzaj_umowy jest puste?

A. DROP pracownicy FROM rodzaj_umowy = 0
B. DROP pracownicy WHERE rodzaj_umowy IS NULL
C. DELETE pracownicy WHERE rodzaj_umowy ='brak'
D. DELETE FROM pracownicy WHERE rodzaj_umowy IS NULL

Brak odpowiedzi na to pytanie.

Wyjaśnienie poprawnej odpowiedzi:
Aby usunąć wszystkie rekordy z tabeli pracownicy, dla których pole rodzaj_umowy pozostaje puste, czyli ma wartość NULL, używamy polecenia DELETE FROM pracownicy WHERE rodzaj_umowy IS NULL. Klauzula DELETE FROM jest standardowym poleceniem SQL, które służy do usuwania danych z bazy danych. W tym przypadku warunek IS NULL jest kluczowy, ponieważ wskazuje, że chcemy usunąć jedynie te rekordy, w których pole rodzaj_umowy nie zawiera żadnej wartości. Warto zauważyć, że NULL w SQL oznacza brak wartości, co różni się od innych typów wartości, jak na przykład 0 czy pusty ciąg tekstowy. Przykład praktyczny użycia tego polecenia: jeśli w tabeli mamy pracowników z różnymi rodzajami umowy, w tym także takich, którzy nie mają przypisanego rodzaju, to powyższe polecenie usunie ich z bazy danych. Tego rodzaju operacje są niezwykle ważne w kontekście utrzymania bazy danych, gdyż pozwalają na eliminację nieaktualnych lub niekompletnych danych, co w efekcie prowadzi do poprawy jakości przechowywanych informacji i ułatwia późniejsze zapytania do bazy. Takie podejście jest zgodne z dobrymi praktykami w zakresie zarządzania danymi i normami ANSI SQL.

Pytanie 20

Przy założeniu, że użytkownik nie miał wcześniej żadnych uprawnień, polecenie SQL

GRANT SELECT, INSERT, UPDATE ON klienci TO anna;
nada użytkownikowi anna uprawnienia wyłącznie do
A. wybierania, wstawiania oraz aktualizacji danych we wszystkich tabelach w bazie o nazwie klienci
B. wybierania, dodawania kolumn oraz zmiany struktury wszystkich tabel w bazie o nazwie klienci
C. wybierania, wstawiania oraz aktualizacji danych w tabeli o nazwie klienci
D. wybierania, dodawania kolumn oraz zmiany struktury tabeli o nazwie klienci

Brak odpowiedzi na to pytanie.

Wyjaśnienie poprawnej odpowiedzi:
Polecenie SQL 'GRANT SELECT, INSERT, UPDATE ON klienci TO anna;' przyznaje użytkownikowi 'anna' konkretne uprawnienia do tabeli 'klienci'. Oznacza to, że użytkownik ten będzie miał możliwość wybierania (SELECT), wstawiania (INSERT) oraz aktualizacji (UPDATE) danych w tej konkretnej tabeli. To podejście jest zgodne z zasadą minimalnych uprawnień, co oznacza, że użytkownik powinien mieć jedynie te prawa, które są niezbędne do wykonywania jego zadań. Na przykład, jeśli 'anna' jest pracownikiem działu sprzedaży, może być konieczne, aby miała dostęp do aktualizacji informacji o klientach, ale nie potrzebuje uprawnień do usuwania rekordów (DELETE) czy zmiany struktury tabeli (ALTER). Praktyczne zastosowanie takiego przydzielania uprawnień pomaga w zabezpieczeniu danych oraz minimalizuje ryzyko nieautoryzowanych zmian, co jest standardem w zarządzaniu bazami danych. Dodatkowo, stosowanie takich restrykcji w przydzielaniu ról jest zgodne z najlepszymi praktykami bezpieczeństwa w branży IT, aby zapobiegać potencjalnym nadużyciom.

Pytanie 21

Zakładając, że użytkownik nie miał wcześniej żadnych uprawnień, polecenie SQL przyzna użytkownikowi anna jedynie uprawnienia do

GRANT SELECT, INSERT, UPDATE ON klienci TO anna;
A. wybierania, dodawania pól oraz modyfikacji struktury wszystkich tabel w bazie o nazwie klienci
B. wybierania, dodawania pól oraz modyfikacji struktury tabeli o nazwie klienci
C. wybierania, wstawiania oraz aktualizacji danych tabeli o nazwie klienci
D. wybierania, wstawiania oraz modyfikacji danych w wszystkich tabelach w bazie o nazwie klienci

Brak odpowiedzi na to pytanie.

Wyjaśnienie poprawnej odpowiedzi:
To polecenie SQL, które widzisz, czyli GRANT SELECT INSERT UPDATE ON klienci TO anna, po prostu przyznaje użytkownikowi anna konkretne uprawnienia do tabeli klienci. Dzięki temu, ona może odczytywać dane z tej tabeli, co jest naprawdę ważne, zwłaszcza przy robieniu różnych zapytań czy raportów. A jakbyś chciał dodać nowe rekordy, to właśnie INSERT na to pozwala. To mega istotne, bo w bazach danych często coś się zmienia! Natomiast UPDATE daje możliwość zmieniania już istniejących danych, co jest bardzo przydatne, żeby utrzymać wszystko w porządku i aktualności. To jakby standard w zarządzaniu bazami danych. Przyznawanie uprawnień do konkretnej tabeli, a nie całej bazy, zmniejsza ryzyko, że ktoś dostanie dostęp do danych, które nie są dla niego przeznaczone. To wszystko działa zgodnie z zasadą minimalnych uprawnień, co jest super ważne! Można też lepiej kontrolować, kto i jakie operacje może robić na danych, co zapewnia bezpieczeństwo i integralność danych w firmie.

Pytanie 22

Czego nie należy brać pod uwagę przy zabezpieczaniu serwera bazy danych przed atakami hakerskimi?

A. Zamykanie portów związanych z bazą danych
B. Defragmentacja dysków
C. Używanie skomplikowanych haseł do bazy
D. Aktywacja zapory

Brak odpowiedzi na to pytanie.

Wyjaśnienie poprawnej odpowiedzi:
Defragmentacja dysków, mimo że może poprawić wydajność dysków twardych, nie jest bezpośrednio związana z zabezpieczeniem serwera bazy danych przed atakami hakerów. Zabezpieczenia bazy danych powinny koncentrować się na praktykach, które bezpośrednio wpływają na ochronę danych i dostęp do nich. Przykładem skutecznych środków ochrony są złożone hasła, które utrudniają nieautoryzowany dostęp do systemu. Stosowanie silnych haseł, które łączą litery, cyfry oraz znaki specjalne, jest podstawowym krokiem w kierunku zabezpieczenia bazy danych. Kolejnym aspektem jest blokowanie portów, które nie są niezbędne do działania bazy danych, co może znacznie ograniczyć możliwości ataku z sieci. Włączenie zapory (firewall) także przyczynia się do ochrony, monitorując i kontrolując ruch sieciowy. Warto podkreślić, że zgodnie z zasadami bezpieczeństwa, minimalizacja punktów dostępu do bazy danych jest kluczowa dla jej ochrony.

Pytanie 23

Przedstawiony fragment kodu ilustruje działanie

Ilustracja do pytania
A. prezentacji danych
B. podjęcia decyzji
C. wykorzystania zdefiniowanej procedury lub funkcji
D. pozyskiwania danych

Brak odpowiedzi na to pytanie.

Wyjaśnienie poprawnej odpowiedzi:
Blok przedstawiony na rysunku to romb, który w diagramach przepływu danych reprezentuje punkt decyzyjny. W kontekście programowania i modelowania procesów biznesowych, zastosowanie takich punktów jest kluczowe dla podejmowania decyzji na podstawie warunków logicznych. Na przykład, w algorytmach komputerowych romb służy do określenia, którą ścieżką proces powinien się dalej przemieszczać, zależnie od spełnienia określonych warunków. W praktyce, może to być na przykład wybór między dwiema różnymi akcjami, jak wysłanie e-maila lub zapis do bazy danych w zależności od wartości wprowadzonej przez użytkownika. Zastosowanie rombu zgodnie z zasadami BPMN (Business Process Model and Notation) oraz UML (Unified Modeling Language) pozwala na precyzyjne i czytelne modelowanie złożonych procesów, co jest kluczowe w projektowaniu systemów informatycznych i optymalizacji procesów biznesowych.

Pytanie 24

Aby odzyskać bazę danych z kopii zapasowej na serwerze MSSQL, należy użyć polecenia

A. EXPORT DATABASE
B. UNBACKUP DATABASE
C. BACKUP DATABASE
D. RESTORE DATABASE

Brak odpowiedzi na to pytanie.

Wyjaśnienie poprawnej odpowiedzi:
Aby przywrócić bazę danych z kopii zapasowej na serwerze MSSQL, trzeba użyć polecenia RESTORE DATABASE. To bardzo ważna komenda, bo pozwala nam na odzyskanie danych do stanu sprzed jakiejś awarii czy utraty informacji. Można to robić w różnych sytuacjach, na przykład przywracając bazę z pełnej kopii zapasowej albo jakiejś różnicowej. Przykład użycia wygląda tak: RESTORE DATABASE [NazwaBazyDanych] FROM DISK = 'C:\Backup\KopiaZap.pdf' WITH REPLACE; co zastąpi starą bazę nową. Fajnie też wspomnieć, że standardy jak ISO 27001 pokazują, jak ważne są regularne kopie zapasowe, żeby zachować integralność danych i ciągłość działania. A tak przy okazji, przed przywracaniem warto zablokować dostęp do bazy, żeby nie było żadnych konfliktów.

Pytanie 25

W języku SQL, aby usunąć wszystkie rekordy z tabeli, nie eliminując jej samej, można skorzystać z polecenia

A. UPDATE
B. DROP
C. ALTER
D. TRUNCATE

Brak odpowiedzi na to pytanie.

Wyjaśnienie poprawnej odpowiedzi:
Polecenie TRUNCATE w języku SQL jest używane do usunięcia wszystkich danych z tabeli w sposób szybki i efektywny, bez potrzeby usuwania samej tabeli. TRUNCATE działa na poziomie struktury bazy danych, co oznacza, że nie zapisuje informacji o usuniętych rekordach w dzienniku transakcji, co czyni operację znacznie szybszą w porównaniu do innych metod, takich jak DELETE. W praktyce, gdy chcesz zresetować tabelę do stanu pustego, TRUNCATE jest najlepszym wyborem. Przykładem zastosowania może być sytuacja, gdy tabela tymczasowa zawiera dane, które nie są już potrzebne po zakończeniu procesu przetwarzania. W takim przypadku użycie polecenia TRUNCATE pozwala na szybkie usunięcie wszystkich rekordów, a sama struktura tabeli pozostaje nienaruszona do przyszłego użycia. Dobrą praktyką jest również stosowanie TRUNCATE w sytuacjach, gdzie nie potrzebujemy zachować historii operacji na danych, co zwiększa wydajność bazy danych. Zgodnie z zaleceniami standardów SQL, TRUNCATE jest bardziej odpowiednie do operacji na dużych zbiorach danych, gdyż minimalizuje czas operacji i obciążenie systemu.

Pytanie 26

W systemie baz danych zdefiniowano tabelę Mieszkancy, która zawiera dane. W celu usunięcia tej tabeli oraz jej zawartości, należy użyć polecenia

A. ALTER TABLE Mieszkancy;
B. DROP TABLE Mieszkancy;
C. TRUNCATE TABLE Mieszkancy;
D. DELETE FROM Mieszkancy;

Brak odpowiedzi na to pytanie.

Wyjaśnienie poprawnej odpowiedzi:
Polecenie 'DROP TABLE Mieszkancy;' jest odpowiednie do usunięcia tabeli z bazy danych, wraz ze wszystkimi jej danymi i strukturą. W przeciwieństwie do innych poleceń, takich jak 'DELETE' czy 'TRUNCATE', które modyfikują zawartość tabeli, 'DROP TABLE' usuwa całą tabelę z systemu. Użycie tego polecenia jest nieodwracalne, dlatego przed jego zastosowaniem warto upewnić się, że posiadamy kopię zapasową danych, jeśli będą one w przyszłości potrzebne. W praktyce, jeśli jesteś administratorem bazy danych i chcesz usunąć zbędną tabelę, polecenie to jest niezwykle efektywne i pozwala na zwolnienie zasobów. Zgodnie z najlepszymi praktykami, przed wykonaniem operacji na bazie danych, zawsze warto przeprowadzić analizę wpływu na inne powiązane obiekty, takie jak relacje między tabelami. Dobrą praktyką jest również włączenie kontroli dostępu, aby nieuprawnione osoby nie mogły wykonywać takich operacji.

Pytanie 27

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. Błąd w przetwarzaniu zapytania SQL
B. Rekord został pomyślnie dodany do bazy
C. Wybrana baza danych nie istnieje
D. Błąd połączenia z serwerem SQL

Brak odpowiedzi na to pytanie.

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

Poniższe zapytanie zwróci

SELECT COUNT(cena) FROM uslugi;
A. liczbę wszystkich cen usług w tabeli
B. średnią wartość cen usług w tabeli
C. wszystkie wartości cen usług w tabeli
D. łączną wartość cen usług w tabeli

Brak odpowiedzi na to pytanie.

Wyjaśnienie poprawnej odpowiedzi:
Zapytanie SQL "SELECT COUNT(cena) FROM uslugi;" jest skonstruowane w taki sposób, że używa funkcji agregującej COUNT, która zlicza liczbę niepustych wartości w kolumnie "cena" w tabeli "uslugi". Oznacza to, że wynik tego zapytania to liczba wierszy, w których kolumna "cena" nie jest pusta. Używanie funkcji COUNT jest standardową praktyką w SQL, gdy chcemy uzyskać ilość rekordów spełniających określone kryteria. W kontekście analizy danych, zrozumienie tego typu zapytań jest kluczowe, ponieważ pozwala na efektywne zbieranie statystyk, które mogą być później wykorzystane do podejmowania decyzji biznesowych. Na przykład, jeśli firma prowadzi usługi i chce wiedzieć, ile z nich ma przypisaną cenę, to to zapytanie dostarczy tej informacji. Warto także zwrócić uwagę, że funkcja COUNT jest często używana w połączeniu z innymi funkcjami agregującymi, takimi jak SUM czy AVG, w celu uzyskania bardziej kompleksowego obrazu danych.

Pytanie 29

Aby naprawić tabelę w bazie danych MySQL, należy użyć polecenia

A. CHANGE TABLE
B. REPAIR TABLE
C. FIX TABLE
D. UPDATE TABLE

Brak odpowiedzi na to pytanie.

Wyjaśnienie poprawnej odpowiedzi:
Prawidłowe polecenie w MySQL do naprawy uszkodzonej lub niespójnej tabeli to `REPAIR TABLE`. Jest to oficjalna, udokumentowana komenda SQL w MySQL, przeznaczona właśnie do diagnozowania i naprawiania problemów z tabelami, głównie w silniku MyISAM, a w ograniczonym zakresie także w innych silnikach. W praktyce używa się jej np. gdy tabela nagle „znika” z widoku aplikacji, pojawiają się błędy typu „table is marked as crashed and should be repaired” albo gdy phpMyAdmin zgłasza problemy z integralnością danych na poziomie pliku tabeli. Typowe użycie wygląda tak: `REPAIR TABLE nazwa_tabeli;` albo z dodatkowymi opcjami, np. `REPAIR TABLE nazwa_tabeli QUICK;` czy `REPAIR TABLE nazwa_tabeli EXTENDED;`, w zależności od tego, jak głęboka ma być analiza struktury. Z mojego doświadczenia warto pamiętać, że `REPAIR TABLE` działa na poziomie fizycznych plików tabeli (szczególnie w MyISAM), więc dobrze jest wcześniej mieć kopię zapasową, bo przy poważnych uszkodzeniach część rekordów może zostać utracona przy próbie naprawy. W nowoczesnych projektach, gdzie dominuje InnoDB, częściej polega się na mechanizmach automatycznego odzyskiwania, logach transakcyjnych i backupach, ale znajomość `REPAIR TABLE` nadal jest przydatna przy pracy ze starszymi systemami albo przy mieszanych środowiskach. Dobrą praktyką administracyjną jest też poprzedzenie naprawy poleceniem `CHECK TABLE`, żeby zobaczyć, co dokładnie jest nie tak. Podsumowując: `REPAIR TABLE` to narzędzie serwisowe, a nie coś, czego używa się codziennie w kodzie aplikacji, ale w sytuacjach awaryjnych potrafi uratować bazę.

Pytanie 30

W systemie baz danych sklepu znajdują się dwie tabele połączone relacją: produkty oraz oceny. Tabela oceny zawiera dowolną liczbę ocen wystawionych przez klientów dla konkretnego produktu, opisaną poprzez pola: id, ocena (pole numeryczne), produktID (klucz obcy). Aby uzyskać maksymalną ocenę dla produktu o ID wynoszącym 10, należy wykorzystać zapytanie

A. COUNT MAX SELECT ocena FROM oceny WHERE produktID = 10;
B. SELECT MAX COUNT(ocena) FROM oceny WHERE produktID = 10;
C. MAX SELECT ocena FROM oceny WHERE produktID = 10;
D. SELECT MAX(ocena) FROM oceny WHERE produktID = 10;

Brak odpowiedzi na to pytanie.

Wyjaśnienie poprawnej odpowiedzi:
Odpowiedź 'SELECT MAX(ocena) FROM oceny WHERE produktID = 10;' jest poprawna, ponieważ wykorzystuje funkcję agregującą MAX, która zwraca największą wartość w danej kolumnie. W kontekście tego zapytania, funkcja MAX jest stosowana do kolumny 'ocena' w tabeli 'oceny', a dodatkowy warunek 'WHERE produktID = 10' ogranicza wyniki do tylko tych ocen, które są związane z produktem o ID równym 10. To podejście jest zgodne z najlepszymi praktykami SQL, które zalecają korzystanie z funkcji agregujących dla wydobywania statystyk z danych. W praktyce, takie zapytania są niezwykle ważne w analizie danych, na przykład do oceny jakości produktów, co może wpłynąć na decyzje biznesowe. Dzięki umiejętności konstruowania takich zapytań, analitycy mogą w łatwy sposób uzyskać kluczowe informacje niezbędne do strategii marketingowych oraz poprawy jakości obsługi klienta.

Pytanie 31

Aby przywrócić uszkodzoną tabelę w MySQL, jakie polecenie należy wykonać?

A. REPAIR TABLE
B. RESOLVE TABLE
C. FIX TABLE
D. CHECK TABLE

Brak odpowiedzi na to pytanie.

Wyjaśnienie poprawnej odpowiedzi:
Aby naprawić uszkodzoną tabelę w MySQL, należy użyć polecenia REPAIR TABLE, które jest dedykowane do przywracania integralności i usuwania problemów z danymi w tabelach MyISAM. Kiedy tabela jest uszkodzona, na przykład wskutek awarii systemu lub błędów dysku, REPAIR TABLE analizuje strukturę tabeli i podejmuje się jej naprawy. Proces ten może przywrócić usunięte wiersze oraz naprawić inne ograniczenia. Przykładowe użycie polecenia to: REPAIR TABLE nazwa_tabeli; Warto zaznaczyć, że REPAIR TABLE nie działa na tabelach InnoDB, które wymagają innych procedur naprawczych. W przypadku MyISAM, to polecenie jest często pierwszą metodą diagnostyczną, gdy pojawiają się problemy z danymi. Zgodnie z dokumentacją MySQL, REPAIR TABLE jest jednym z podstawowych narzędzi do zarządzania integralnością danych, a jego prawidłowe użycie może uratować istotne dane przed ich całkowitą utratą. Z tego powodu znajomość tego polecenia jest kluczowa dla administratorów baz danych.

Pytanie 32

Jakie zadanie ma funkcja PHP o nazwie mysql_select_db()?

A. uzyskać dane z bazy danych na podstawie zapytania
B. nawiązać połączenie między bazą danych a serwerem SQL
C. wyznaczyć bazę, z której będą pozyskiwane dane
D. wyznaczyć tabelę, z której będą pozyskiwane dane

Brak odpowiedzi na to pytanie.

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

Pytanie 33

Zastosowanie atrybutu NOT NULL dla kolumny jest konieczne w sytuacji, gdy

A. tworzymy definicję wszystkich pól tabeli
B. korzystamy z atrybutu DEFAULT
C. definiujemy wszystkie pola o typie numerycznym
D. mamy do czynienia z kluczem podstawowym

Brak odpowiedzi na to pytanie.

Wyjaśnienie poprawnej odpowiedzi:
Atrybut NOT NULL jest kluczowym elementem definiującym kolumny w bazach danych, szczególnie w kontekście kluczy podstawowych. Klucz podstawowy, będący unikalnym identyfikatorem wierszy w tabeli, nie może zawierać wartości NULL, ponieważ jego główną funkcją jest zapewnienie jednoznacznej identyfikacji każdej instancji danych. W praktyce, definiując klucz podstawowy, programiści są zobowiązani do użycia atrybutu NOT NULL dla wszystkich kolumn, które ten klucz obejmuje. Przykładowo, w tabeli 'Użytkownicy', pole 'ID_Użytkownika' może być kluczem podstawowym z definicją 'ID_Użytkownika INT NOT NULL PRIMARY KEY'. Dzięki temu, każda wartość w tej kolumnie jest unikalna i nie może być pusta. Zastosowanie NOT NULL w kontekście kluczy podstawowych jest zgodne z zasadami normalizacji bazy danych, co zwiększa integralność danych oraz ułatwia zarządzanie informacjami.

Pytanie 34

Wskaż zapytanie, które z tabeli klienci wybierze wyłącznie nazwiska trzech najlepszych klientów, czyli takich, którzy posiadają najwięcej punktów na swoim koncie (pole całkowite punkty)?

A. SELECT nazwisko FROM klienci ORDER BY nazwisko DESC LIMIT 3
B. SELECT LIMIT 3 nazwisko FROM klienci ORDER BY nazwisko DESC
C. SELECT nazwisko FROM klienci LIMIT 3
D. SELECT nazwisko FROM klienci ORDER BY punkty DESC LIMIT 3

Brak odpowiedzi na to pytanie.

Wyjaśnienie poprawnej odpowiedzi:
Wybór odpowiedzi 'SELECT nazwisko FROM klienci ORDER BY punkty DESC LIMIT 3;' jest poprawny, ponieważ zapytanie to precyzyjnie spełnia wymagania przedstawione w pytaniu. Kluczowym elementem jest użycie klauzuli 'ORDER BY punkty DESC', która sortuje klientów w porządku malejącym według ich punktów. Dzięki temu, na górze wyników znajdą się ci klienci, którzy mają ich najwięcej. Następnie zastosowanie 'LIMIT 3' ogranicza wynik do trzech pierwszych rekordów, co odpowiada na potrzebę zidentyfikowania trzech najlepszych klientów. W praktycznych zastosowaniach, takich jak systemy CRM czy programy lojalnościowe, tego typu kwerendy są niezwykle przydatne do analizy klientów oraz do przyznawania nagród lub promocji. Dobre praktyki w zakresie pisania zapytań SQL sugerują, aby zawsze zwracać uwagę na kolejność sortowania oraz ograniczenie wyników, aby zwiększyć efektywność bazy danych oraz uniknąć zbędnych obliczeń.

Pytanie 35

Podczas definiowania pola id w tabeli MySQL użyto AUTO_INCREMENT. Co to oznacza?

id int NOT NULL AUTO_INCREMENT
A. możliwe jest dodanie rekordu z dowolną wartością pola id
B. pole id może przyjmować takie wartości jak: NULL, 1, 2, 3, 4 i tak dalej
C. wartość pola id zostanie nadana automatycznie przez bazę i będzie to losowo wygenerowana liczba całkowita
D. wartości dla tego pola będą generowane automatycznie przy dodawaniu nowego rekordu do bazy

Brak odpowiedzi na to pytanie.

Wyjaśnienie poprawnej odpowiedzi:
Pole z definicją AUTO_INCREMENT w MySQL oznacza że podczas dodawania nowego rekordu do tabeli wartość tego pola jest automatycznie zwiększana najczęściej o jeden począwszy od wartości startowej. To zachowanie jest szczególnie przydatne w przypadku kluczy głównych gdzie unikalność jest wymagana. Jeśli mamy tabelę użytkowników i chcemy przypisać każdemu unikalny identyfikator możemy użyć AUTO_INCREMENT na kolumnie id. W ten sposób baza danych sama zadba o to by każda nowa wartość id była większa od poprzedniej co zapewnia automatyczne nadawanie kolejnych niepowtarzalnych wartości. Taka funkcjonalność jest zgodna z praktykami tworzenia baz danych i ułatwia zarządzanie danymi oraz ich integralność. Jest to również optymalizacja pod kątem wydajności ponieważ pozwala na szybkie dodawanie rekordów bez potrzeby ręcznego określania wartości klucza głównego. Dodatkowo zapewnia uporządkowane numerowanie rekordów co jest korzystne przy analizach i raportowaniu

Pytanie 36

Czym jest relacja w bazach danych?

A. połączeniem dwóch pól jednej tabeli
B. algebraicznym powiązaniem tabel
C. kluczem podstawowym w relacji tabel
D. logicznym powiązaniem tabel

Brak odpowiedzi na to pytanie.

Wyjaśnienie poprawnej odpowiedzi:
Relacje w bazach danych to coś w rodzaju logicznego połączenia tabel. Dzięki nim możemy łączyć dane z różnych miejsc w sposób, który pozwala na bardziej zaawansowane zapytania. Na przykład, w bazie danych do zarządzania zamówieniami, mamy tabelę 'Klienci' i tabelę 'Zamówienia'. I wiesz co? Relacja między nimi często opiera się na identyfikatorze klienta, który działa jak klucz główny w 'Klienci', a jednocześnie jest kluczem obcym w 'Zamówienia'. To ułatwia życie, bo w ten sposób szybko możemy znaleźć wszystkie zamówienia danego klienta. W praktyce, tworzenie relacyjnych baz danych wiąże się też z takimi zasadami jak normalizacja, która pomaga unikać powtarzania danych i dba o ich integralność. Więc tak, zrozumienie relacji w bazach danych to podstawa, jeśli chcemy tworzyć fajne i działające systemy.

Pytanie 37

W sklepie internetowym wykorzystuje się tabelę faktura. W trakcie generowania faktury pole dataPlatnosci nie zawsze jest uzupełnione. Aby to skorygować, pod koniec dnia należy wprowadzić bieżącą datę do wierszy, gdzie to pole jest puste. W tym celu można wykorzystać kwerendę

A. UPDATE faktury SET dataPlatnosci=CURDATE() WHERE dataPlatnosci IS NULL
B. UPDATE faktury SET dataPlatnosci=CURDATE() WHERE dataplatnosci = '0000-00-00'
C. UPDATE faktury SET dataPlatnosci=CURTIME() WHERE id = 3
D. UPDATE faktury SET dataPlatnosci=CURTIME() WHERE dataPlatnosci IS NOT NULL

Brak odpowiedzi na to pytanie.

Wyjaśnienie poprawnej odpowiedzi:
Poprawna odpowiedź to 'UPDATE faktury SET dataPlatnosci=CURDATE() WHERE dataPlatnosci IS NULL;'. Ta kwerenda jest odpowiednia, ponieważ aktualizuje pole 'dataPlatnosci' w tabeli 'faktury' tylko w tych wierszach, gdzie to pole jest puste (NULL). Użycie funkcji CURDATE() pozwala na wprowadzenie aktualnej daty, co jest praktycznym rozwiązaniem dla problemu niewypełnionych dat płatności. Warto pamiętać, że korzystanie z NULL jest standardem w bazach danych, który oznacza brak wartości. Z perspektywy dobrych praktyk w zarządzaniu danymi, ważne jest, aby dbać o pełność danych, co wpływa na późniejsze analizy i generowanie raportów. Tego rodzaju kwerendy powinny być stosowane regularnie, aby zapewnić integralność i aktualność danych w systemie, co jest kluczowe w kontekście e-commerce, gdzie terminowość transakcji ma istotne znaczenie. Na przykład, w sytuacji, gdy system generuje raporty dotyczące płatności, brak daty płatności może prowadzić do nieprawidłowych wniosków.

Pytanie 38

Utworzono bazę danych z tabelą mieszkancy, która zawiera pola: nazwisko, imie, miasto. Następnie zrealizowano poniższe zapytanie do bazy: ```SELECT nazwisko, imie FROM mieszkancy WHERE miasto="Poznań" UNION ALL SELECT nazwisko, imie FROM mieszkancy WHERE miasto="Kraków"``` Wskaż zapytanie, które zwróci te same dane:

A. SELECT nazwisko, imie FROM mieszkancy WHERE miasto BETWEEN "Poznań" OR "Kraków"
B. SELECT nazwisko, imie FROM mieszkancy AS "Poznań" OR "Kraków"
C. SELECT nazwisko, imie FROM mieszkancy WHERE miasto="Poznań" OR miasto="Kraków"
D. SELECT nazwisko, imie FROM mieszkancy WHERE miasto HAVING "Poznań" OR "Kraków"

Brak odpowiedzi na to pytanie.

Wyjaśnienie poprawnej odpowiedzi:
Wybrana odpowiedź jest poprawna, ponieważ wykorzystuje operator logiczny OR do połączenia dwóch warunków w klauzuli WHERE. W wyniku tego zapytania zostaną zwrócone wszystkie rekordy z tabeli 'mieszkancy', gdzie miasto to 'Poznań' lub 'Kraków'. To podejście jest zgodne z zasadami SQL, gdzie operator OR umożliwia łączenie warunków, co jest powszechnie stosowane w praktyce. Warto zauważyć, że zapytanie z wykorzystaniem operatora UNION ALL, które było pierwotnie zdefiniowane, również łączy wyniki z dwóch zapytań, ale każdy SELECT działa osobno. Użycie OR w tym przypadku jest bardziej efektywne, ponieważ pozwala na jedno zapytanie, co może przyspieszyć wykonanie w porównaniu do kilku zapytań UNION. W praktycznych zastosowaniach, gdy mamy do czynienia z wieloma kryteriami, stosowanie operatorów logicznych jest kluczowe dla uzyskania precyzyjnych wyników.

Pytanie 39

Każde informacje, które odnoszą się do innych informacji, określane są jako

A. markup language.
B. metalanguage.
C. metadata.
D. databus.

Brak odpowiedzi na to pytanie.

Wyjaśnienie poprawnej odpowiedzi:
Odpowiedź 'metadata' jest poprawna, ponieważ termin ten odnosi się do danych, które dostarczają informacji o innych danych. Metadata może zawierać różnorodne informacje, takie jak autor, data utworzenia, format pliku czy nawet kontekst użycia danych. Przykłady zastosowania metadanych obejmują biblioteki cyfrowe, gdzie metadata opisuje książki lub artykuły, umożliwiając ich łatwe wyszukiwanie. Standardy takie jak Dublin Core czy ISO 19115 definiują, jakie elementy powinny być uwzględnione w metadanych dla różnych typów zasobów. Dzięki dobrym praktykom w zakresie metadanych, organizacje mogą poprawić zarządzanie danymi, ułatwić ich wymianę oraz zapewnić, że użytkownicy będą mogli łatwo odnaleźć i wykorzystać odpowiednie informacje. W dobie Big Data i analityki danych, znaczenie metadanych rośnie, ponieważ umożliwiają one efektywne przetwarzanie i analizę dużych zbiorów informacji, wspierając decyzje biznesowe oraz innowacje technologiczne.

Pytanie 40

W języku SOL komenda INSERT INTO

A. wprowadza dane do tabeli
B. modyfikuje rekordy ustaloną wartością
C. wprowadza pola do tabeli
D. tworzy tabelę

Brak odpowiedzi na to pytanie.

Wyjaśnienie poprawnej odpowiedzi:
Polecenie INSERT INTO w języku SQL (Structured Query Language) jest kluczowym komponentem do wprowadzania danych do tabeli w bazie danych. Używając tego polecenia, użytkownicy mogą dodać nowe rekordy, co jest podstawowym zadaniem w zarządzaniu informacjami w systemach zarządzania bazą danych (DBMS). Przykładowo, jeśli mamy tabelę 'Użytkownicy', możemy dodać nowego użytkownika za pomocą: INSERT INTO Użytkownicy (Imię, Nazwisko) VALUES ('Jan', 'Kowalski'). Warto zauważyć, że wprowadzanie danych powinno być zgodne z definicją tabeli, co oznacza, że typy danych w wartości muszą odpowiadać typom zdefiniowanym w tabeli. Dobrą praktyką jest również walidacja danych przed ich wprowadzeniem, aby zapewnić spójność i integralność danych. W przypadku pracy z dużymi zbiorami danych, warto rozważyć użycie transakcji, aby zapewnić, że operacje wprowadzania są atomowe i nie wprowadzą niezgodności w bazie danych, co jest zgodne ze standardami ACID (Atomicity, Consistency, Isolation, Durability).