Wyniki egzaminu

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

Egzamin niezdany

Wynik: 18/40 punktów (45,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

Jakie polecenie pozwala na kontrolowanie oraz optymalizację bazy danych?

A. mysqlimport
B. mysqlshow
C. mysqldump
D. mysqlcheck
Odpowiedzi takie jak 'mysqlshow', 'mysqldump' i 'mysqlimport' są mylące, ponieważ nie pełnią roli narzędzi do sprawdzania i optymalizacji bazy danych. Narzędzie mysqlshow służy jedynie do wyświetlania informacji o bazach danych i tabelach, co może być użyteczne do monitorowania istniejących struktur, ale nie wpływa na ich integralność ani wydajność. Z kolei mysqldump jest wykorzystywane do tworzenia zrzutów danych z bazy, co jest kluczowe dla backupów, ale nie ma żadnych funkcji związanych z optymalizacją czy konserwacją. Wreszcie, mysqlimport jest narzędziem do importowania danych z plików zewnętrznych do bazy danych, a więc również nie odnosi się do kwestii sprawdzania czy optymalizacji. Wybierając te odpowiedzi, można dojść do błędnych wniosków, sądząc, że jedno narzędzie może pełnić wiele funkcji, podczas gdy każde z wymienionych narzędzi ma swoje specyficzne zadania. Zrozumienie różnicy między tymi narzędziami jest kluczowe dla efektywnego zarządzania bazami danych oraz stosowania najlepszych praktyk w ich administracji.

Pytanie 2

W tabeli artykuly przeprowadzono poniższe operacje związane z uprawnieniami użytkownika jan.

GRANT ALL PRIVILEGES ON artykuły TO jan
REVOKE SELECT, UPDATE ON artykuly FROM jan

Jakie będą uprawnienia użytkownika jan po wykonaniu tych operacji?

A. aktualizowania informacji oraz przeglądania tabeli
B. przeglądania tabeli
C. tworzenia tabel oraz ich zapełniania danymi
D. tworzenia tabeli oraz aktualizowania danych w niej
Wybór odpowiedzi dotyczącej "aktualizowania danych i przeglądania tabeli" nie jest poprawny, ponieważ po wykonaniu polecenia REVOKE SELECT, UPDATE ON artykuly FROM jan, jan traci te konkretne uprawnienia. Warto zauważyć, że polecenie GRANT ALL PRIVILEGES przyznaje użytkownikowi szereg uprawnień, ale ich zakres można ograniczyć innymi poleceniami, jak REVOKE. Z tego powodu jan nie ma już możliwości przeglądania tabeli ani jej aktualizowania, co czyni tę odpowiedź nieaktualną. Często w praktyce zawodowej zdarza się, że nadawane są szerokie uprawnienia, a następnie w miarę potrzeby są one ograniczane, co może prowadzić do nieporozumień, jeśli nie zrozumie się działania tych poleceń. Kolejna niepoprawna odpowiedź, która sugeruje "przeglądanie tabeli", również jest błędna z tego samego powodu - jan nie ma takich uprawnień po REVOKE. Ostatnia z odpowiedzi, mówiąca o "tworzeniu tabeli i aktualizowaniu w niej danych", jest niepoprawna, ponieważ użytkownik jan nie ma już prawa aktualizacji danych po wycofaniu tych uprawnień. Zrozumienie mechanizmów zarządzania uprawnieniami jest kluczowe w pracy z bazami danych, aby uniknąć przypisania użytkownikom większych niż potrzebne przywilejów, co mogłoby prowadzić do nieautoryzowanego dostępu lub usunięcia danych.

Pytanie 3

Przedstawiony kod PHP nawiązuje połączenie z serwerem bazy danych. Jakiego typu operacje powinny się znaleźć w instrukcji warunkowej w miejscu trzech kropek?
$db = mysqli_connect("localhost", "root", "qwerty", "baza1");
if (!$db) {
...
}

A. Obsługa danych uzyskanych z bazy
B. Zamknięcie połączenia z bazą danych
C. Obsługa błędu połączenia
D. Informacja o udanym połączeniu z bazą
Zamknięcie bazy danych w kontekście nieudanego połączenia jest koncepcją, która nie ma sensu. Jeśli połączenie się nie uda, to nie ma nawet nawiązanej sesji, która mogłaby być zamknięta. Połączenie z bazą danych powinno być zamykane tylko w momencie, gdy zostało nawiązane i jest już niepotrzebne, a nie w przypadku, gdy wystąpił błąd w trakcie łączenia. Komunikat o pomyślnym połączeniu także nie ma zastosowania w tej sytuacji, ponieważ, skoro połączenie się nie udało, nie ma podstaw do informowania użytkownika o jego powodzeniu. Obsługa danych pobranych z bazy również nie ma miejsca, jeśli połączenie nie zostało ustanowione, co czyni te odpowiedzi błędnymi. Właściwe podejście w takich sytuacjach to zawsze najpierw sprawdzenie, czy połączenie zostało nawiązane, a następnie działania w przypadku usunięcia błędu. Ignorowanie tej zasady może prowadzić do nieprzewidzianych zachowań aplikacji, a nawet do wycieków danych lub awarii serwerów.

Pytanie 4

Do jakiego celu służy polecenie mysqldump?

A. sprawdzenia integralności bazy
B. naprawy niespójnej bazy
C. optymalizacji bazy
D. stworzenia kopii zapasowej bazy
Niektóre odpowiedzi mogą wydawać się na pierwszy rzut oka sensowne, jednak ich analiza pokazuje, że nie oddają one rzeczywistej funkcji mysqldump. Naprawa niespójnej bazy danych jest zadaniem, które wymaga zastosowania innych narzędzi, takich jak `myisamchk` dla silnika MyISAM lub `innodb_force_recovery` dla silnika InnoDB. Mysqldump nie zawiera mechanizmów naprawczych, więc jego użycie w tym kontekście jest błędne. Ponadto proces optymalizacji bazy danych, taki jak reorganizacja indeksów czy usuwanie nieużywanych danych, również nie jest domeną mysqldump, lecz narzędzi takich jak `OPTIMIZE TABLE` czy `ANALYZE TABLE`. Kolejnym błędnym podejściem jest sugestia, że mysqldump służy do sprawdzania integralności bazy danych. Integralność danych w bazach MySQL zapewniają różne mechanizmy, w tym transakcje, a także kontrola spójności danych na poziomie aplikacji. Mysqldump nie jest narzędziem do przeprowadzania walidacji danych ani analizy ich integralności, a skupić się powinien przede wszystkim na tworzeniu kopii zapasowych. W związku z tym, aby poprawnie zrozumieć zastosowanie mysqldump, warto wystrzegać się mylnych przekonań dotyczących jego funkcji, bazując na rzeczywistych możliwości tego narzędzia. Właściwe zrozumienie ról różnych narzędzi w ekosystemie baz danych jest kluczowe dla efektywnego zarządzania i ochrony danych.

Pytanie 5

W języku PHP nie można zrealizować

A. przetwarzania danych z formularzy
B. obróbki danych przechowywanych w bazach danych
C. zmiany dynamicznej zawartości strony HTML w przeglądarce
D. tworzenia dynamicznej treści strony
PHP, jako skryptowy język programowania po stronie serwera, nie jest w stanie dynamicznie zmieniać zawartości strony HTML w przeglądarce użytkownika po jej załadowaniu. Operacje, które wykonuje PHP, są realizowane na serwerze, a wyniki tych operacji przesyłane są jako statyczny HTML do przeglądarki. Oznacza to, że jakiekolwiek zmiany w treści strony muszą być przeprowadzane przed wysłaniem odpowiedzi do klienta. Dynamiczne zmiany w istniejącej zawartości HTML w przeglądarce są realizowane za pomocą JavaScriptu, który działa po stronie klienta. Na przykład, jeśli mamy formularz, który po wypełnieniu wymaga zmiany niektórej zawartości na stronie bez jej ponownego ładowania, to właśnie JavaScript, a nie PHP, będzie odpowiedzialny za te zmiany. PHP może generować zawartość w odpowiedzi na żądania, ale nie ma możliwości interakcji z już załadowanym DOM w przeglądarce. To ograniczenie wynika z architektury webowej, w której PHP i JavaScript pełnią różne role, co jest zgodne z ogólnymi standardami tworzenia aplikacji webowych, w tym modelu MVC (Model-View-Controller), gdzie PHP obsługuje model i widok, a JavaScript kontroler.

Pytanie 6

W języku SQL instrukcja INSERT INTO

A. dodaje kolumny do istniejącej tabeli
B. wprowadza dane do tabeli
C. tworzy nową tabelę
D. zmienia rekordy na zadaną wartość
Polecenie INSERT INTO w języku SQL jest używane do dodawania nowych danych do tabeli w bazie danych. Jego podstawowa składnia to: INSERT INTO nazwa_tabeli (kolumna1, kolumna2, ...) VALUES (wartość1, wartość2, ...). Dzięki temu poleceniu użytkownicy mogą wprowadzać nowe rekordy, co jest kluczowe w zarządzaniu danymi w relacyjnych bazach danych. Przykładowo, jeżeli mamy tabelę 'użytkownicy' z kolumnami 'imie', 'nazwisko' i 'wiek', możemy dodać nowego użytkownika za pomocą: INSERT INTO użytkownicy (imie, nazwisko, wiek) VALUES ('Jan', 'Kowalski', 30). Warto zauważyć, że polecenie to może być używane w kontekście transakcji, co pozwala na zachowanie integralności danych. Standard SQL, na którym opiera się wiele systemów zarządzania bazami danych, definiuje to polecenie jako fundamentalne w operacjach DML (Data Manipulation Language), co czyni je niezbędnym w każdej aplikacji, która wymaga wprowadzania danych do bazy.

Pytanie 7

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

A. stworzyć nową tabelę
B. zmienić strukturę tabeli
C. dodać dane do tabeli
D. usunąć tabelę
Wszystkie pozostałe odpowiedzi są niepoprawne, ponieważ nie odzwierciedlają prawidłowego zastosowania polecenia ALTER w SQL. Usunięcie tabeli odbywa się za pomocą polecenia DROP, które całkowicie eliminuje tabelę oraz jej dane z bazy danych, co jest operacją nieodwracalną. Z kolei wprowadzanie danych do tabeli realizuje się za pomocą polecenia INSERT, które dodaje nowe rekordy do już istniejącej struktury tabeli, a nie zmienia jej samej. Tworzenie tabeli z kolei wykonuje się za pomocą polecenia CREATE TABLE, które definiuje nową strukturę tabeli oraz jej kolumny. W związku z tym, błędne jest myślenie, że polecenie ALTER może być używane do tych operacji, gdyż każda z nich ma swoje dedykowane polecenia, z innymi celami i konsekwencjami. Przykładami typowych błędów myślowych są mylenie pojęć związanych z tworzeniem, modyfikowaniem i usuwaniem struktur bazy danych, co może prowadzić do nieprawidłowego zarządzania danymi i nieefektywnej architektury baz danych. Właściwe zrozumienie funkcji poszczególnych poleceń i ich zastosowania w praktyce jest kluczowe dla efektywnego zarządzania bazami danych i unikania poważnych problemów z integralnością danych.

Pytanie 8

Aby obliczyć liczbę wszystkich wierszy w tabeli Koty, należy zastosować zapytanie:

A. SELECT COUNT(Koty) AS ROWNUM
B. SELECT COUNT(ROWNUM) FROM Koty
C. SELECT COUNT(*) FROM Koty
D. SELECT ROWNUM() FROM Koty
Poprawna odpowiedź to 'SELECT COUNT(*) FROM Koty', ponieważ to standardowy sposób zliczania wszystkich wierszy w tabeli w SQL. Funkcja COUNT(*) zlicza wszystkie wiersze, niezależnie od tego, czy zawierają wartości NULL, czy nie. Jest to najczęściej używana metoda w praktyce, ponieważ zapewnia dokładny wynik i jest także optymalizowana przez silnik baz danych, co czyni ją efektywną. Na przykład, jeśli mamy tabelę 'Koty' zawierającą różne dane o kotach, użycie tego polecenia zwróci dokładną liczbę kotów zapisanych w tej tabeli. Dobrym zwyczajem jest również korzystanie z aliasów lub konstruowania zapytań z dodatkowymi warunkami, co pozwala na bardziej złożoną analizę danych. Przy pracy z dużymi zbiorami danych, zrozumienie jak działa COUNT(*) i jego zastosowanie w kontekście innych funkcji agregujących jest kluczowe dla optymalizacji zapytań. Warto również pamiętać, że w SQL standardowym zliczanie wierszy bezpośrednio z tabeli jest znacznie bardziej efektywne i czytelne niż inne metody, co czyni tę praktykę najlepszą do stosowania w codziennej pracy z bazami danych.

Pytanie 9

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

Ilustracja do pytania
A. SELECT nazwisko, idZajecia FROM Studenci JOIN Zapisy ON Studenci.id = Zapisy.idStudenta WHERE grupa = 15;
B. SELECT nazwisko, idZajecia FROM Studenci INNER JOIN Zapisy ON Studenci.id = Zapisy.idStudenta;
C. SELECT nazwisko, idZajecia FROM Studenci JOIN Zapisy ON Studenci.id = Zapisy.idZajecia WHERE grupa = 15;
D. SELECT nazwisko, idZajecia FROM Studenci INNER JOIN Zapisy WHERE grupa= 15;
Wśród proponowanych rozwiązań pojawiają się charakterystyczne błędy, często spotykane przy pierwszych próbach pracy z relacyjnymi bazami danych. Bardzo łatwo jest pomylić się na etapie łączenia tabel, zwłaszcza gdy nie do końca rozumie się, jak działa klucz główny i obcy w praktyce. Jeden z typowych problemów polega na pominięciu warunku określającego, w jaki sposób tabele mają być połączone – wtedy system bazodanowy tworzy tzw. iloczyn kartezjański, czyli paruje każdy rekord z jednej tabeli z każdym z drugiej, co zwykle daje absurdalnie dużo wyników i nie ma nic wspólnego z rzeczywistością. Popularny błąd to też użycie niewłaściwych pól do łączenia – np. próba połączenia idStudenta z idZajecia, które są ze sobą kompletnie niepowiązane, bo reprezentują dwa różne byty. Z mojego doświadczenia wynika, że często myli się pole id w tabeli Studenci z polem idZajecia w tabeli Zapisy – to są zupełnie inne klucze i nie mają prawa się zgadzać. Inna pułapka pojawia się, gdy zapomni się o warunku WHERE filtrującym po konkretnej grupie, przez co wynik zawiera dane wszystkich studentów, a nie tylko tych z interesującej nas grupy. Trzeba też pamiętać, że poprawna kolejność oraz jawne stosowanie JOIN z warunkiem ON to nie tylko kwestia składni, ale i wydajności oraz czytelności kodu. Warto mocno utrwalić sobie, że łączenie przez JOIN i jasno określony warunek ON to podstawa dobrej praktyki i niemal zawsze sprawdza się przy pracy z większymi, złożonymi bazami danych – zupełnie inaczej niż domyślne, niejawne łączenia czy łączenie po złych polach.

Pytanie 10

W formularzu dokumentu PHP znajduje się pole <input name="im" />. Po wpisaniu przez użytkownika ciągu „Janek”, aby dodać wartość tego pola do bazy danych, w tablicy $_POST będzie obecny element

A. im z indeksem Janek
B. Janek z indeksem im
C. Janek z kolejnym numerem indeksu
D. im z kolejnym numerem indeksu
W przypadku formularzy w PHP, każdy element formularza jest przekazywany do tablicy superglobalnej $_POST po przesłaniu formularza. W analizowanej sytuacji, pole input o nazwie 'im' zostało wypełnione wartością 'Janek'. Po przesłaniu formularza do serwera, PHP automatycznie tworzy odpowiedni wpis w tablicy $_POST. Nazwa pola, czyli 'im', staje się kluczem w tablicy $_POST, natomiast wartość wprowadzona przez użytkownika, czyli 'Janek', staje się wartością tego klucza. Dlatego w tablicy $_POST znajdziemy element o kluczu 'im', którego wartość wynosi 'Janek'. W praktyce, dostęp do wartości można uzyskać w następujący sposób: $im = $_POST['im']; co przypisze zmiennej $im wartość 'Janek'. To zachowanie jest zgodne z dokumentacją PHP i standardowymi praktykami programowania w tym języku. Dobrze jest również pamiętać o zabezpieczeniach i walidacji danych pochodzących z formularzy, aby uniknąć potencjalnych ataków, takich jak SQL Injection.

Pytanie 11

Poniższe zapytanie SQL ma na celu:

UPDATE Uczen SET id_klasy = id_klasy + 1;
A. zwiększyć o jeden wartość pola Uczen
B. przypisać wartość kolumny id_klasy jako 1 dla wszystkich wpisów w tabeli Uczen
C. ustawić wartość pola Uczen na 1
D. zwiększyć o jeden wartość kolumny id_klasy dla wszystkich wpisów w tabeli Uczen
Polecenie SQL "UPDATE Uczen SET id_klasy = id_klasy + 1;" jest poprawne, ponieważ wskazuje na aktualizację kolumny 'id_klasy' w tabeli 'Uczen'. Wartość kolumny dla każdego rekordu w tabeli zostanie zwiększona o jeden. Działanie to jest przydatne w sytuacjach, gdy chcemy zaktualizować dane, na przykład po przesunięciu uczniów do wyższej klasy w systemie edukacyjnym. Przy takim podejściu, wszyscy uczniowie w danym roku szkolnym mogą zostać automatycznie przeniesieni do następnej klasy bez konieczności edytowania rekordów pojedynczo, co zwiększa efektywność i zmniejsza ryzyko błędów. Ta praktyka jest zgodna z zasadami optymalizacji baz danych, gdzie operacje masowe są preferowane dla ich wydajności. Ponadto, dobrym nawykiem jest tworzenie kopii zapasowych przed przeprowadzeniem masowych aktualizacji, aby uniknąć nieodwracalnych zmian w przypadku błędów.

Pytanie 12

Baza danych zawiera tabelę pod nazwą pracownicy, która ma pola: nazwisko, imię, pensja oraz wiek. Jak brzmi składnia zapytania, aby obliczyć średnią pensję pracowników?

A. select AVG(nazwisko) into pensja
B. select VAR(pracownicy) into pensja
C. select VAR(pensja) from nazwisko
D. select AVG(pensja) from pracownicy
Aby obliczyć średnią pensję pracowników w tabeli 'pracownicy', używamy funkcji agregującej AVG, która zwraca średnią wartość dla podanego pola. W kontekście SQL, składnia polecenia 'select AVG(pensja) from pracownicy' jest poprawna, ponieważ wskazuje, że chcemy obliczyć średnią z kolumny 'pensja' w tabeli 'pracownicy'. Funkcje agregujące, takie jak AVG, SUM, COUNT, MIN i MAX, są fundamentalne w analizie danych, ponieważ umożliwiają zestawienie wyników w sposób zrozumiały i zwięzły. Przydatność funkcji AVG można zauważyć w praktyce, gdy potrzebujemy ocenić wynagrodzenia w firmie, co może wpłynąć na decyzje dotyczące polityki płacowej. Przykładowo, w przypadku tabeli z danymi o wynagrodzeniach, takie zapytanie zwraca pojedynczą wartość – średnią pensję, co pozwala na szybkie zrozumienie sytuacji finansowej firmy. Zgodnie z standardami SQL, polecenia muszą być formułowane w sposób, który jasno określa zarówno źródło danych, jak i sposób ich agregacji, co zostało spełnione w tej odpowiedzi.

Pytanie 13

Rekord w bazie danych identyfikowany jest jednoznacznie przez pole

A. klucza obcego
B. numeryczne
C. relacji
D. klucza podstawowego
Klucz obcy jest to pole, które odnosi się do klucza podstawowego innej tabeli w celu utworzenia relacji pomiędzy nimi. Jego głównym celem jest zapewnienie integralności referencyjnej, co oznacza, że pozwala na łączenie danych z różnych tabel. Dlatego klucz obcy nie może być użyty jako jednoznaczny identyfikator rekordu w danej tabeli, gdyż nie gwarantuje on unikalności, a jedynie odniesienie do innego rekordu. Numeryczne pole samo w sobie nie jest wystarczające do identyfikacji rekordu, ponieważ nie każde pole numeryczne jest unikalne. Pola numeryczne mogą zawierać powtarzające się wartości, co czyni je niewłaściwym wyborem na identyfikator rekordu. Relacje, mimo że są kluczowym elementem w strukturze baz danych, nie są specyficznymi polami, które mogłyby pełnić rolę klucza. Relacje definiują, jak różne tabele interagują ze sobą, ale nie identyfikują konkretnych rekordów. W związku z tym, żadne z wymienionych pól nie mogą pełnić roli jednoznacznego identyfikatora rekordu w bazie danych, poza kluczem podstawowym, który jest fundamentalnym elementem relacyjnych baz danych.

Pytanie 14

Aby zbudować tabelę, należy wykorzystać polecenie

A. ALTER TABLE
B. CREATE TABLE
C. CREATE DATABASE
D. INSERT INTO
Odpowiedzi takie jak 'INSERT INTO', 'ALTER TABLE' oraz 'CREATE DATABASE' wskazują na pewne nieporozumienia dotyczące funkcji poszczególnych poleceń SQL. 'INSERT INTO' jest poleceniem służącym do dodawania nowych wierszy do już istniejącej tabeli, co oznacza, że nie można go używać do tworzenia nowych struktur danych. Typowym błędem myślowym jest mylenie operacji dodawania danych z operacjami tworzenia struktury bazy danych. Z kolei 'ALTER TABLE' służy do modyfikacji istniejących tabel, co obejmuje takie działania jak dodawanie lub usuwanie kolumn, zmiana typów danych kolumn itp. Użytkownicy mogą myśleć, że to polecenie jest odpowiednie do tworzenia tabeli, ponieważ dotyczy tabel, ale w rzeczywistości jest używane w zupełnie innym kontekście. 'CREATE DATABASE' to polecenie, które umożliwia stworzenie nowej bazy danych, co również nie jest tym, o co pytano w kontekście tworzenia tabeli. Niezrozumienie między tworzeniem baz i tabel jest częste, jednak kluczowe jest, aby zrozumieć hierarchię i relacje pomiędzy tymi elementami w systemie zarządzania bazą danych. Dlatego ważne jest, aby przy nauce SQL skupić się na funkcjonalności i kontekście każdego polecenia oraz jego zastosowaniu w praktyce.

Pytanie 15

Jakie zadanie wykonuje funkcja COUNT w języku SQL?

A. wyliczenie średniej wartości w danej kolumnie
B. liczenie znaków w polu tekstowym
C. zliczanie rekordów uzyskanych z kwerendy
D. obliczenie wartości bezwzględnej w polu liczbowym
Funkcja COUNT w języku SQL jest jedną z najbardziej fundamentalnych funkcji agregujących, która służy do zliczania liczby rekordów w zestawie danych. Użycie tej funkcji jest kluczowe w kontekście analizy danych, ponieważ pozwala na szybkie uzyskanie informacji o ilości danych, które spełniają określone kryteria. Przykład użycia COUNT może wyglądać następująco: SELECT COUNT(*) FROM klienci WHERE kraj = 'Polska'; Taki zapytanie zwróci liczbę wszystkich klientów z Polski. Funkcja COUNT jest również używana w połączeniu z klauzulą GROUP BY, co umożliwia zliczanie rekordów w podgrupach. Na przykład, SELECT kraj, COUNT(*) FROM klienci GROUP BY kraj; zliczy wszystkich klientów w każdym kraju. Warto podkreślić, że COUNT różni się od innych funkcji agregujących, takich jak AVG czy SUM, które obliczają wartości na podstawie danych, a nie zliczają ich. Funkcja COUNT jest zgodna z normami SQL-92 i jest wspierana przez wszystkie popularne systemy zarządzania bazami danych, co czyni ją uniwersalnym narzędziem w pracy z danymi.

Pytanie 16

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

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

Pytanie 17

W systemie PHP złożono zapytanie SELECT do bazy przy pomocy funkcji mysqli_query. Jaką funkcję powinien wykorzystać użytkownik, aby ustalić liczbę rekordów, które zwróciło to zapytanie?

A. mysqli_fetch_row
B. mysqli_connect
C. mysqli_query
D. mysqli_num_rows
Wybór innych funkcji jako odpowiedzi na pytanie jest niezgodny z ich rzeczywistym przeznaczeniem w kontekście analizy wyników zapytań w PHP. Funkcje takie jak mysqli_fetch_row służą do pobierania pojedynczego wiersza z zestawu wyników i nie dostarczają informacji o łącznej liczbie rekordów. Użycie tej funkcji może prowadzić do błędnych wniosków, gdyż zamiast podać liczbę wyników, zwraca jedynie dane jednego wiersza. Innym przykładem jest mysqli_query, która jest odpowiedzialna za wykonanie zapytania, ale nie oferuje metody na określenie ilości zwróconych rekordów. Podobnie, mysqli_connect jest funkcją do nawiązywania połączenia z bazą danych, co jest zupełnie nieadekwatne w kontekście analizy wyników zapytań. Użytkownicy często mylą te funkcje, ponieważ wszystkie są częścią pakietu MySQLi, jednak każda z nich ma swoje specyficzne zastosowanie. Właściwe zrozumienie roli poszczególnych funkcji jest kluczowe dla efektywnej pracy z bazami danych w PHP. Ignorowanie tego może prowadzić do nieefektywnego kodu oraz problemów z wydajnością aplikacji. Dlatego ważne jest, aby przed przystąpieniem do pisania zapytań zrozumieć, jakie funkcje będą potrzebne i jakie dane chcemy uzyskać.

Pytanie 18

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

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

Pytanie 19

Element bazy danych, którego podstawowym celem jest generowanie lub prezentowanie zestawień informacji, to

A. formularz
B. raport
C. moduł
D. makro
Makro w bazach danych to trochę inna historia. To służy do automatyzacji, żeby szybko zrobić skomplikowane rzeczy, a nie do prezentacji danych. W sumie, to w ogóle nie jest to, czego szukamy w tym pytaniu. Moduł to z kolei po prostu fragment kodu, który robi coś określonego w bazach danych. Ale znowu, on nie służy do pokazywania danych. Moim zdaniem, moduły są ważne do rozwijania funkcji aplikacji, ale nie mają nic wspólnego z wizualizacją. Formularz to narzędzie do wprowadzania danych i edytowania ich, co jest istotne, ale też nie pozwala na drukowanie czy pokazywanie zestawień. Tak ogólnie, makra, moduły i formularze mają różne zastosowania, które nie dotyczą raportów, które są stworzone właśnie do analizy i prezentacji danych.

Pytanie 20

Jakiego wyniku można się spodziewać po wykonaniu zapytania na przedstawionej tabeli?

SELECTCOUNT(DISTINCT wykonawca)
FROM`muzyka`;
IDtytul_plytywykonawcarok_nagraniaopis
1Czas jak rzekaCzesław Niemen2005Przyjdź W Taka Noc itp.
2IkonaStan Borys2014
3AerolitCzesław Niemen2017Winylowa reedycja płyty "Aerolit"
4JourneyMikołaj Czechowski2013
A. 0
B. 3
C. 1
D. 4
Zapytanie SELECT COUNT(DISTINCT wykonawca) FROM muzyka; ma na celu zliczenie unikalnych wykonawców w tabeli muzyka. Kluczowym błędem jest brak zrozumienia działania funkcji DISTINCT która eliminuje duplikaty i pozwala na zliczenie jedynie różniących się wartości. Należy zatem odrzucić wszelkie odpowiedzi sugerujące liczbę większą niż 3 ponieważ w tabeli są obecne tylko trzy unikalne wartości w kolumnie wykonawca: Czesław Niemen Stan Borys oraz Mikołaj Czechowski. Często popełnianym błędem jest mylne założenie że każda unikalna wartość w konkretnej kolumnie powinna być liczona wielokrotnie co odbiega od celu analizy unikalności danych. W kontekście administracji bazami danych i analizy SQL zrozumienie funkcji DISTINCT jest kluczowe dla dokładności raportowania i optymalizacji wydajności zapytań. Wiedza o tym jak działa COUNT w połączeniu z DISTINCT pomaga w skutecznym projektowaniu zapytań w celu uzyskania dokładnych wyników. Zastosowanie tej wiedzy jest niezbędne w analizie danych biznesowych i przy tworzeniu precyzyjnych raportów dla różnych interesariuszy. Poprawne zrozumienie i implementacja tego mechanizmu wspiera efektywne zarządzanie danymi i podejmowanie decyzji opartych na faktach. Przygotowanie do egzaminu powinno obejmować praktyczne zastosowanie tych koncepcji co ułatwi ich intuicyjne wykorzystanie w sytuacjach zawodowych.

Pytanie 21

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

A. RESOLVE TABLE
B. FIX TABLE
C. CHECK TABLE
D. REPAIR TABLE
Wybór innych odpowiedzi jest niepoprawny z kilku powodów technicznych. FIX TABLE nie jest poleceniem uznawanym w MySQL, co oznacza, że nie ma takiej komendy w dokumentacji tej bazy danych. Użytkownik może być zdezorientowany, myśląc, że polecenie 'FIX' jest odpowiednikiem naprawy, jednak w praktyce nie istnieje. CHECK TABLE jest używane do sprawdzania integralności tabeli oraz wykrywania wszelkich problemów, ale nie podejmuje się żadnych działań naprawczych. To narzędzie może być przydatne w diagnostyce, ale nie rozwiązuje problemów, dlatego samo w sobie nie wystarcza do przywrócenia funkcjonalności uszkodzonej tabeli. RESOLVE TABLE to nieistniejąca komenda w MySQL, co czyni ją niewłaściwą odpowiedzią. Warto zaznaczyć, że w MySQL nie znajdziemy polecenia z takim zapisem, co podkreśla znaczenie znajomości dokumentacji systemu zarządzania bazą danych. Dlatego ważne jest, aby administrowanie bazami danych opierać na sprawdzonych komendach, aby zapewnić ich prawidłowe działanie oraz ochronę przed utratą danych.

Pytanie 22

W SQL, aby dokonać zmiany w strukturze tabeli, na przykład dodać lub usunąć kolumnę, powinno się użyć polecenia

A. DROP TABLE
B. ALTER TABLE
C. UPDATE
D. TRUNCATE
Wybór poleceń takich jak 'UPDATE', 'TRUNCATE' czy 'DROP TABLE' wskazuje na nieporozumienia dotyczące ich zastosowania w kontekście zmiany struktury tabeli. 'UPDATE' jest używane do modyfikacji danych już istniejących w tabeli, a nie do zmiany jej struktury. Umożliwia aktualizację wartości w kolumnach, jednak nie wpływa na same kolumny czy ich definicje. 'TRUNCATE' służy do szybkiego usuwania wszystkich rekordów z tabeli, ale nie można go używać do zmiany struktury tabeli ani do usunięcia kolumn. Tego typu operacja nie tylko nie jest możliwa, ale także wymaga innego podejścia niż modyfikacja struktury. Z kolei 'DROP TABLE' całkowicie usuwa tabelę i wszystkie jej dane, co jest drastycznym krokiem, gdyż skutkuje utratą wszystkich informacji w niej zawartych. Wybór tych poleceń wskazuje na typowe błędy myślowe związane z zamianą operacji na danych z operacjami na strukturze bazy danych. W praktyce, modyfikacje struktury tabel powinny być zawsze przemyślane i zaplanowane, aby zachować integralność danych oraz zgodność z wymaganiami aplikacyjnymi.

Pytanie 23

Które z tabel będą poddane weryfikacji zgodnie z przedstawionym poleceniem? ```CHECK TABLE pracownicy CHANGED;```

A. Tabele, które zmieniły się w obecnej sesji
B. Tylko te tabele, które nie mogły być poprawnie zakończone
C. Tabele, które uległy zmianie od ostatniej kontroli lub nie zostały poprawnie zamknięte
D. Wyłącznie tabele odnoszące się do innych
Polecenie CHECK TABLE pracownicy CHANGED jest używane w systemach zarządzania bazami danych, aby sprawdzić stan tabeli 'pracownicy' w kontekście jej integralności i ewentualnych zmian, które miały miejsce od ostatniej kontroli. Poprawna odpowiedź odnosi się do przypadków, kiedy tabela mogła być zmieniona lub nie została prawidłowo zamknięta podczas ostatnich operacji, co może prowadzić do uszkodzenia danych lub naruszeń integralności. W praktyce, administratorzy baz danych często wykorzystują to polecenie jako część rutynowych procedur konserwacyjnych, aby zapewnić, że wszystkie tabele są w dobrym stanie. W przypadku dużych systemów z wieloma użytkownikami lub złożonymi transakcjami, regularne sprawdzanie tabel może zapobiec poważnym problemom w przyszłości. Dobre praktyki w zakresie zarządzania bazami danych obejmują również monitorowanie zmian oraz tworzenie kopii zapasowych przed dużymi operacjami, co wspiera bezpieczeństwo i integralność danych.

Pytanie 24

Czego nie należy robić, aby zabezpieczyć serwer bazy danych przed atakami hakerów?

A. aktywacja zapory.
B. blokowanie portów związanych z bazą danych.
C. używanie skomplikowanych haseł do bazy.
D. defragmentacja dysków.
Włączenie zapory sieciowej jest istotnym krokiem w zabezpieczaniu serwera bazy danych. Zapora działa jako filtr, który kontroluje ruch przychodzący i wychodzący, blokując potencjalnie szkodliwe połączenia, co jest kluczowe w kontekście ochrony przed atakami DDoS oraz nieautoryzowanym dostępem. Ponadto stosowanie złożonych haseł jest fundamentalnym elementem bezpieczeństwa, jako że proste hasła mogą być łatwo złamane przez ataki typu brute-force. Wdrożenie polityki silnych haseł, które zawierają kombinacje liter, cyfr oraz symboli, znacząco zwiększa poziom ochrony dostępu do bazy danych. Blokowanie portów to kolejna ważna praktyka; poprzez zamykanie portów, które nie są używane przez serwer bazy danych, znacznie ograniczamy możliwości ataków, ponieważ wiele złośliwych działań opiera się na próbie skanowania otwartych portów w celu znalezienia luk w zabezpieczeniach. Zrozumienie tych aspektów jest kluczowe dla wszystkich administratorów baz danych, którzy muszą dbać o integralność i bezpieczeństwo danych. Ignorowanie tych praktyk w imię nieistotnych działań, takich jak defragmentacja, może prowadzić do poważnych naruszeń bezpieczeństwa, co podkreśla znaczenie stosowania znanych i sprawdzonych metod ochrony w środowisku IT.

Pytanie 25

W systemie MySQL przypisanie roli DBManager daje użytkownikowi dostęp do

A. wszystkich działań na bazach danych
B. nadzorowania serwera
C. zakładania kont użytkowników serwera oraz ustalania im haseł
D. wszystkich działań na bazach danych oraz użytkownikach serwera
Sformułowane odpowiedzi, które nie wskazują na pełnię uprawnień roli DBManager, są mylące. Przyznawanie możliwości monitorowania serwera nie jest związane z rolą DBManager, ponieważ tę funkcję pełnią inne role lub użytkownicy, którzy posiadają specyficzne uprawnienia dostępu do narzędzi monitorujących. Monitorowanie serwera wymaga dostępu do logów systemowych oraz narzędzi analitycznych, co nie jest objęte rolą DBManager. Argumentując kwestię tworzenia użytkowników serwera i ustawiania im haseł, należy zauważyć, że zarządzanie użytkownikami to funkcjonalność, która jest zazwyczaj przypisywana administratorom bazy danych, a nie roli DBManager. W końcu, koncepcja pełnych operacji na bazach danych i użytkownikach serwera jest zbyt szeroka. Rolą DBManager jest zarządzanie samymi bazami danych, natomiast operacje na użytkownikach wymagają uprawnień, które nie są bezpośrednio związane z tą rolą. Właściwe przypisanie ról i uprawnień w MySQL jest kluczowe dla bezpieczeństwa oraz integralności danych, dlatego ważne jest, aby zrozumieć różnice między tymi funkcjami.

Pytanie 26

W SQL instrukcja INSERT INTO

A. wprowadza dane do tabeli.
B. modyfikuje rekordy przypisaną wartością.
C. wprowadza nową tabelę.
D. dodaje kolumny do istniejącej tabeli.
Odpowiedź 'wprowadza dane do tabeli' jest poprawna, ponieważ polecenie INSERT INTO w języku SQL służy dokładnie do tego celu - do dodawania nowych rekordów (wierszy) do istniejącej tabeli w bazie danych. W praktyce, polecenie to pozwala na wprowadzenie danych zgodnych z określoną strukturą tabeli, co oznacza, że musimy dostarczyć wartości dla odpowiednich pól. Przykład użycia polecenia INSERT INTO: 'INSERT INTO pracownicy (imie, nazwisko, wiek) VALUES ('Jan', 'Kowalski', 30);' W tym przypadku, dodawany jest nowy rekord do tabeli 'pracownicy', wskazując konkretne wartości dla kolumn 'imie', 'nazwisko' oraz 'wiek'. Zgodnie z dobrą praktyką, przed wprowadzeniem danych do tabeli warto upewnić się, że są one zgodne z definicją kolumn, aby uniknąć błędów w czasie wykonywania polecenia. Ponadto, często zaleca się stosowanie transakcji, aby mieć możliwość wycofania wprowadzonych zmian w przypadku wystąpienia błędów. INSERT INTO jest fundamentalną częścią operacji CRUD (Create, Read, Update, Delete), które są podstawą zarządzania danymi w bazach danych, a jego właściwe zrozumienie jest kluczowe dla każdego, kto pracuje z SQL.

Pytanie 27

Jaki typ danych w MySQL należy zastosować, aby w jednym polu zapisać zarówno datę, jak i czas?

A. YEAR
B. TIMESTAMP
C. DATE
D. BOOLEAN
Typ danych TIMESTAMP w MySQL jest przeznaczony do przechowywania zarówno daty, jak i czasu w jednym polu. Jest szczególnie przydatny w sytuacjach, gdy potrzebne jest śledzenie zdarzeń w czasie, takich jak rejestracja daty i godziny utworzenia lub modyfikacji rekordów w bazie danych. TIMESTAMP przechowuje dane w formacie 'YYYY-MM-DD HH:MM:SS', co pozwala na precyzyjne określenie momentu w czasie. Wartością dodaną tego typu danych jest automatyczne aktualizowanie znacznika czasu przy każdej zmianie rekordu (jeśli ustawimy odpowiednie opcje), co jest zgodne z najlepszymi praktykami w zakresie audytu danych. Przykładem zastosowania może być rejestracja logów aktywności użytkowników w aplikacji internetowej lub monitorowanie transakcji w systemach finansowych, gdzie dokładny czas zdarzenia jest kluczowy. Dodatkowo, TIMESTAMP obsługuje różnice stref czasowych, co czyni go idealnym wyborem w aplikacjach działających w różnych lokalizacjach geograficznych.

Pytanie 28

Jakie informacje można uzyskać na temat normalizacji tej tabeli?

Ilustracja do pytania
A. Tabela jest w drugiej postaci normalnej
B. Tabela nie jest znormalizowana
C. Tabela znajduje się w trzeciej postaci normalnej
D. Tabela znajduje się w pierwszej postaci normalnej
Tabela nie jest znormalizowana ponieważ zawiera nieatomowe wartości w kolumnie Adres. Wartości te składają się z kilku elementów takich jak ulica kod pocztowy i miasto co jest sprzeczne z zasadą atomowości wymaganą w pierwszej postaci normalnej (1NF). Normalizacja danych jest kluczowym krokiem w projektowaniu baz danych mającym na celu eliminację redundancji i poprawę integralności danych. W praktyce dla osiągnięcia pierwszej postaci normalnej każda kolumna w tabeli powinna zawierać tylko jedną wartość co oznacza że Adres powinien być podzielony na kilka kolumn takich jak Ulica Kod Pocztowy i Miasto. Dalsze etapy normalizacji obejmują usuwanie zależności funkcyjnych oraz zapewnianie że wszystkie atrybuty niekluczowe są zależne wyłącznie od klucza głównego tabeli co jest celem drugiej i trzeciej postaci normalnej. Poprawne znormalizowanie danych ułatwia ich zarządzanie i zmniejsza ryzyko występowania niezgodności w bazie danych co jest standardem w branży IT zwłaszcza w dużych systemach informatycznych gdzie integralność danych jest kluczowa dla poprawnego działania aplikacji.

Pytanie 29

W systemie zarządzania bazą danych MySQL, aby uzyskać listę wszystkich przywilejów przyznanych użytkownikowi anna, można użyć polecenia

A. REVOKE GRANTS FROM anna;
B. SHOW GRANTS FOR anna;
C. GRANT * TO anna;
D. SELECT GRANTS FOR anna;
Odpowiedzi 1, 2 i 3 są nietrafione, bo nie odpowiadają na pytanie o to, jak zobaczyć przydzielone uprawnienia dla użytkownika 'anna'. Pierwsza opcja, 'SELECT GRANTS FOR anna;', jest błędna, bo w MySQL nie ma takiej składni do zdobywania informacji o uprawnieniach. Możliwe, że po prostu pomyliłeś, bo SELECT kojarzy się z pozyskiwaniem danych, ale nie o uprawnieniach. Druga opcja, 'REVOKE GRANTS FROM anna;', też jest niepoprawna, bo REVOKE służy do odbierania uprawnień, a nie ich wyświetlania. Niektórzy mogą myśleć, że odbieranie uprawnień w jakiś sposób pokaże, co wcześniej przyznano, ale to zupełnie coś innego. Trzecia odpowiedź, 'GRANT * TO anna;', sugeruje przyznawanie uprawnień zamiast ich wyświetlania. Użytkownicy mogą myśleć, że znak '*' oznacza wszystkie możliwe uprawnienia, co może prowadzić do niebezpiecznych sytuacji, jeżeli uprawnienia są nadawane bez głębszej analizy. Dlatego zarządzanie uprawnieniami jest mega ważne dla bezpieczeństwa bazy danych, a zrozumienie, jak różne polecenia działają, jest kluczowe.

Pytanie 30

W firmowej tabeli znajdują się kolumny: nazwa, adres, NIP, obrót (obrót w ostatnim miesiącu), rozliczenie oraz status. Po wykonaniu kwerendy SQL

SELECT nazwa, NIP FROM firmy WHERE obrot < 4000;
na ekranie pojawią się:
A. wszystkie informacje o firmach, które w ostatnim miesiącu uzyskały obrót co najmniej 4000 zł
B. tylko nazwa oraz numer NIP firm, które w ostatnim miesiącu miały obrót co najmniej 4000 zł
C. wszystkie informacje o firmach, które w ostatnim miesiącu miały obrót poniżej 4000 zł
D. tylko nazwa oraz numer NIP firm, które w ostatnim miesiącu miały obrót mniejszy niż 4000 zł
W tej kwerendzie SQL chodziło o to, aby zrozumieć, że zapytanie 'SELECT nazwa, NIP FROM firmy WHERE obrót < 4000;' zwróci tylko nazwy firm i ich numery NIP. Tylko te firmy, co miały obrót poniżej 4000 zł w ostatnim miesiącu. SQL jako język zapytań daje nam możliwość wybierania konkretnych kolumn z tabeli i filtrowania wyników według różnych warunków. Tu wybraliśmy kolumny 'nazwa' i 'NIP', a filtr 'WHERE obrót < 4000' pokazuje nam tylko te firmy, które spełniają ten warunek. To bardzo ważne w praktycznym użyciu SQL, bo często musimy wyświetlać dane według określonych kryteriów. Dzięki temu zapytaniu łatwo możemy zidentyfikować firmy, które mogą potrzebować wsparcia finansowego lub jakiejś pomocy z powodu niskiego obrotu.

Pytanie 31

Do naprawy i optymalizacji bazy danych w MySQL stosuje się polecenie:

A. mysqlcheck
B. mysqladmin
C. mysqlslap
D. mysqldump
W tym pytaniu łatwo się pomylić, bo wszystkie wymienione narzędzia są związane z MySQL, ale pełnią zupełnie inne role. Kluczowe jest rozróżnienie: co służy do testowania, co do backupu, co do administracji, a co do samej naprawy i optymalizacji struktur tabel. Wiele osób z rozpędu wybiera mysqldump, bo kojarzy się z „ratowaniem” bazy, ale mysqldump to typowe narzędzie do wykonywania kopii zapasowej w postaci skryptu SQL. Generuje plik z poleceniami CREATE TABLE i INSERT, który potem można odtworzyć, ale ono nie naprawia ani nie optymalizuje istniejących tabel na serwerze. To jest backup, a nie konserwacja struktury. Podobnie mylące bywa mysqladmin. To narzędzie administracyjne, służy do wykonywania operacji na poziomie serwera: można nim zatrzymać serwer, sprawdzić status, wyczyścić logi, przeładować uprawnienia, zmienić hasło roota i tym podobne rzeczy. Natomiast ono nie wykonuje operacji typu REPAIR TABLE czy OPTIMIZE TABLE na konkretnej bazie czy tabeli. To raczej „panel sterowania” serwerem niż śrubokręt do tabel. mysqlslap z kolei jest jeszcze czymś innym – to narzędzie do testów obciążeniowych. Używa się go do benchmarków, czyli sprawdzania, jak serwer MySQL reaguje na określoną liczbę zapytań, ilu wątków, jakie opóźnienia. Można dzięki niemu ocenić wydajność konfiguracji, ale ono nie dotyka struktury tabel w sensie naprawy czy optymalizacji. Typowy błąd myślowy przy tym pytaniu polega na wrzuceniu wszystkich narzędzi „mysql*” do jednego worka: skoro coś jest do MySQL, to pewnie da się tym wszystko zrobić. W praktyce dobre podejście administracyjne zakłada specjalizację: do backupu używa się mysqldump lub narzędzi typu xtrabackup, do testów wydajności mysqlslap, do ogólnych komend serwerowych mysqladmin, a do naprawy i optymalizacji struktur tabel właśnie mysqlcheck. Świadome rozróżnianie tych narzędzi bardzo ułatwia później diagnozowanie problemów z bazą i planowanie regularnych zadań utrzymaniowych.

Pytanie 32

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

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

Pytanie 33

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

A. wyłącznie na jednym, wyznaczonym komputerze.
B. jako usługę serwerową w sieci.
C. w chmurze obliczeniowej.
D. w formie serwera w sieci.
Odpowiedzi sugerujące, że lokalny system zarządzania bazą danych może być udostępniany jako serwer w sieci, w chmurze komputerowej lub jako usługa sieciowa serwera, mogą prowadzić do pewnych nieporozumień dotyczących architektury baz danych. W kontekście lokalnych systemów, 'serwer w sieci' sugeruje, że baza danych jest dostępna dla wielu użytkowników przez internet lub sieć lokalną, co jest charakterystyczne dla systemów zdalnych. Z kolei chmura komputerowa odnosi się do zdalnych usług i zasobów, które są przechowywane i zarządzane przez dostawców usług chmurowych, co również jest sprzeczne z ideą lokalnych systemów. Usługi sieciowe serwera dodatkowo podkreślają potrzebę interakcji z systemem zdalnym, podczas gdy lokalny SZBD działa na pojedynczym urządzeniu. Często błędne wnioski wynikają z nieodróżniania lokalnych i zdalnych architektur baz danych. W praktyce, lokalne SZBD jest idealne do zastosowań, gdzie bezpieczeństwo danych oraz ich szybki dostęp są kluczowe, w przeciwieństwie do rozwiązań chmurowych, które mogą wprowadzać opóźnienia związane z latencją sieci. Aby lepiej zrozumieć te różnice, warto zaznajomić się z typowymi zastosowaniami dla różnych typów baz danych, co pomoże w podejmowaniu świadomych decyzji w przyszłości.

Pytanie 34

W SQL klauzula DISTINCT w poleceniu SELECT spowoduje, że otrzymane dane

A. nie będą zawierały powtórzeń
B. zostaną uporządkowane
C. będą spełniały dany warunek
D. będą zgrupowane według wskazanego pola
Niepoprawne odpowiedzi na to pytanie często wynikają z nieporozumienia dotyczącego podstawowych funkcji, jakimi dysponuje SQL. Klauzula DISTINCT ma jedynie na celu usunięcie duplikatów z wyników zapytania, co oznacza, że powinna być używana jedynie w kontekście potrzeby uzyskania unikalnych wartości. Odpowiedzi sugerujące, że DISTINCT grupuje dane, są mylące, ponieważ do grupowania danych służy klauzula GROUP BY, która nie tylko wydziela unikalne rekordy, ale także umożliwia ich agregację i analizę pod kątem określonych kryteriów. Twierdzenie, że DISTINCT sortuje dane, również jest błędne, ponieważ sortowanie osiąga się za pomocą klauzuli ORDER BY, która porządkuje wyniki według zadanych kryteriów. W przypadku stwierdzenia, że DISTINCT spełnia określony warunek, należy zrozumieć, że to nie jest jego funkcja; zamiast tego warunki w zapytaniach SQL wprowadza się za pomocą klauzuli WHERE. W praktyce, zrozumienie właściwego zastosowania DISTINCT jest kluczowe dla efektywnego korzystania z SQL, ponieważ niewłaściwe użycie może prowadzić do nieodpowiednich wyników i nieefektywności w zapytaniach. Dlatego ważne jest, aby pamiętać o różnicach między tymi klauzulami i umieć odpowiednio je stosować w kontekście zapytań, aby uzyskać pożądane rezultaty.

Pytanie 35

Po zrealizowaniu polecenia użytkownik Jacek będzie miał możliwość

GRANT SELECT, INSERT ON baza1.mojaTabela TO 'Jacek'@'localhost';
A. przeglądać dane w tabeli i wstawiać nowe dane
B. modyfikować strukturę tabeli oraz dodawać nowe dane
C. usuwać tabelę i zakładać nową
D. usuwać rekordy z tabeli i przeglądać informacje
Polecenie GRANT SELECT, INSERT ON baza1.mojaTabela TO 'Jacek'@'localhost'; przyznaje użytkownikowi Jacek uprawnienia do przeglądania danych (SELECT) oraz wstawiania nowych danych (INSERT) do tabeli mojaTabela w bazie danych baza1. To oznacza, że Jacek nie ma możliwości usuwania tabeli ani zmiany jej struktury, co jest zarezerwowane dla uprawnień takich jak ALTER czy DROP. Zastosowanie tych uprawnień jest kluczowe w kontekście bezpieczeństwa i zarządzania danymi, ponieważ pozwala na kontrolowanie, kto może wykonywać określone operacje w bazie danych. Przykładem praktycznego zastosowania może być sytuacja, w której zespół programistów musi umożliwić pracownikom działu sprzedaży dostęp do danych klientów w tabeli, ale jednocześnie chce zapobiec przypadkowemu usunięciu lub modyfikacji struktury tabeli. W ten sposób, przyznając tylko uprawnienia SELECT i INSERT, administracja bazy danych może zapewnić odpowiedni poziom kontroli nad danymi, co jest zgodne z najlepszymi praktykami w zakresie zarządzania danymi i zabezpieczeń.

Pytanie 36

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

A. zarządzanie plikami na dysku
B. zarządzanie bezpieczeństwem systemu
C. wykonywanie wszelkich operacji na serwerze i posiadanie praw do każdej bazy
D. tworzenie, modyfikowanie, usuwanie oraz przywracanie bazy danych
Rola dbcreator w MS SQL Server rzeczywiście pozwala użytkownikowi na tworzenie, modyfikowanie, usuwanie i odzyskiwanie baz danych. Użytkownicy, którzy mają przypisaną tę rolę, mogą łatwo zarządzać bazami danych w danym serwerze, co jest kluczowe w środowiskach, gdzie bazy danych muszą być regularnie aktualizowane lub tworzone od podstaw. Przykładowo, w przypadku rozwijania aplikacji biznesowej, programista może korzystać z tej roli do tworzenia nowych baz danych na potrzeby testów, co pozwala na szybkie wdrażanie oraz iterację w procesie rozwoju oprogramowania. W praktyce, przypisanie roli dbcreator powinno być stosowane z uwagą, aby ograniczyć do minimum dostęp do krytycznych operacji tylko dla zaufanych użytkowników. Dobre praktyki sugerują regularne przeglądanie i audyt przypisania ról oraz monitorowanie działań użytkowników, aby zapobiegać nieautoryzowanym zmianom w strukturze baz danych.

Pytanie 37

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 mieszkancySrodmiescie AS SELECT * FROM mieszkancy
B. CREATE VIEW mieszkancy WHERE dzielnica = 1
C. CREATE VIEW mieszkancy FROM mieszkancy WHERE dzielnica = 1
D. CREATE VIEW mieszkancySrodmiescie AS SELECT * 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 38

W tabeli pracownicy zdefiniowano klucz główny jako INTEGER z atrybutami NOT NULL oraz AUTO_INCREMENT. Dodatkowo zdefiniowano kolumny imie oraz nazwisko. W przypadku wykonania poniższej kwerendy SQL wprowadzającej dane, w której pominięto pole klucza, w bazie danych MySQL wystąpi:

INSERT INTO pracownicy (imie, nazwisko) VALUES ('Anna', 'Nowak');
A. błąd związany z nieprawidłową liczbą kolumn
B. dodanie rekordu do tabeli, dla klucza głównego zostanie przypisana kolejna wartość naturalna
C. ignorowanie polecenia, tabela nie ulegnie zmianie
D. dodanie rekordu do tabeli, dla klucza głównego zostanie przypisana wartość NULL
Jak używasz polecenia INSERT w MySQL i masz klucz główny ustawiony jako AUTO_INCREMENT, to system sam zajmie się przydzieleniem nowej, unikalnej wartości dla tego klucza dla każdego nowego rekordu. Kiedy wprowadzasz dane o pracowniku, takie jak imię i nazwisko, to nie musisz martwić się o podawanie wartości klucza głównego. MySQL świetnie to rozumie i dodaje kolejny wolny numer. To jest zgodne z dobrymi praktykami w bazach danych, gdzie klucz główny musi być unikalny dla każdego rekordu, ale niekoniecznie musisz go podawać ręcznie, szczególnie gdy korzystasz z mechanizmu AUTO_INCREMENT. Weźmy na przykład tabelę zamówień – tam każdy nowy wpis automatycznie dostaje unikalny numer zamówienia, co eliminuje ryzyko błędów i ułatwia późniejsze śledzenie danych. Dzięki AUTO_INCREMENT wprowadzanie danych staje się dużo prostsze, a szansa na pomyłki przy manualnym wpisywaniu wartości klucza głównego znacznie maleje.

Pytanie 39

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

Ogólne
Rozmiar pola3
Format
Maska wprowadzania
Tytuł
Wartość domyślna
Reguła spr. poprawności
Tekst reguły spr. poprawności
WymaganeNie
Zerowa dł. dozwolonaTak
IndeksowaneNie
Kompresja UnicodeTak
Tryb IMEBez formantu
Tryb zdania edytora IMEBrak
Tagi inteligentne
A. 000
B. 0CC
C. CLL
D. 0LL
W przypadku maski wprowadzania danych w MS Access, należy zrozumieć, jakie znaczenie mają poszczególne symbole używane do stworzenia maski. Symbole te określają, co użytkownik może wprowadzić w każdym miejscu pola. Często spotykanym błędem jest wybór niewłaściwego symbolu, co prowadzi do niepoprawnego formatu danych. W przypadku masek takich jak 0CC, 000 i CLL, każda z nich stosuje niewłaściwe podejście do formatu wymaganego w pytaniu. Maska 0CC zakłada, że po cyfrze mogą znajdować się dowolne znaki, co nie spełnia wymagań dotyczących dwóch obowiązkowych liter. Maska 000 z kolei wymusza wprowadzenie trzech cyfr, co całkowicie mija się z celem, ponieważ wymagany jest format składający się z jednej cyfry i dwóch liter. Maska CLL sugeruje, że pierwszy znak może być dowolnym znakiem (cyfrą lub literą), co również jest niezgodne z wymaganiami, gdzie pierwszą pozycję musi zajmować cyfra. Takie nieporozumienia mogą wynikać z braku zrozumienia znaczenia symboli używanych w maskach wprowadzania danych. Kluczem do poprawnego zastosowania masek w MS Access jest więc dokładne poznanie, jakie symbole są dostępne i jakie mają zastosowanie, aby zwiększyć spójność i integralność danych w systemach bazodanowych. Zrozumienie tych zasad pozwala również uniknąć typowych błędów wynikających z niepoprawnej interpretacji wymagań dotyczących formatowania danych, co jest istotne nie tylko w kontekście egzaminacyjnym, ale także w praktycznej pracy z bazami danych. Poprawne zrozumienie i stosowanie masek wprowadzania danych jest elementem profesjonalnego zarządzania danymi, gdzie każda baza musi spełniać określone standardy jakości i wydajności.

Pytanie 40

GRANT SELECT, INSERT, UPDATE ON klienci TO anna; Przy założeniu, że użytkownik nie miał wcześniej przyznanych żadnych uprawnień, to polecenie SQL przypisuje użytkownikowi anna wyłącznie prawa do

A. wybierania, dodawania kolumn oraz zmiany struktury wszystkich tabel w bazie o nazwie klienci
B. wybierania, wstawiania oraz aktualizacji danych w tabeli o nazwie klienci
C. wybierania, wstawiania oraz aktualizacji danych w każdej tabeli w bazie o nazwie klienci
D. wybierania, dodawania kolumn oraz zmiany struktury tabeli o nazwie klienci
Podane odpowiedzi przedstawiają różne koncepcje związane z przyznawaniem uprawnień, które są jednak nieprawidłowe w kontekście polecenia GRANT przedstawionego w pytaniu. Po pierwsze, odpowiedzi sugerujące, że użytkownik anna ma prawo do dodawania pól lub zmiany struktury tabeli, są błędne. GRANT w tym kontekście nie przyznaje uprawnień do modyfikacji strukturalnych tabeli, takich jak dodawanie kolumn; te operacje wymagają osobnych uprawnień, jak ALTER. Po drugie, koncepcja przyznawania praw do wszystkich tabel w bazie danych jest mylna, ponieważ polecenie odnosi się wyłącznie do konkretnej tabeli o nazwie klienci. W praktyce oznacza to, że nawet jeśli użytkownik ma uprawnienia do jednej tabeli, nie ma automatycznie dostępu do innych tabel w bazie. Często mylnie przyjmuje się, że nadanie praw na poziomie jednej tabeli automatycznie rozszerza te prawa na wszystkie elementy w bazie danych, co jest fundamentalnym błędem w zrozumieniu zarządzania uprawnieniami. Kluczowe w tej problematyce jest zrozumienie, że uprawnienia w systemach baz danych są przyznawane w sposób bardzo precyzyjny i specyficzny, co pozwala na ochronę danych i kontrolę dostępu zgodnie z najlepszymi praktykami w zakresie bezpieczeństwa informacji.