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: 21 kwietnia 2026 10:50
  • Data zakończenia: 21 kwietnia 2026 11:22

Egzamin zdany!

Wynik: 24/40 punktów (60,0%)

Wymagane minimum: 20 punktów (50%)

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

W systemie baz danych MySQL komenda CREATE USER pozwala na

A. stworzenie użytkownika oraz przypisanie mu uprawnień do bazy
B. stworzenie nowego użytkownika
C. zmianę hasła dla już istniejącego użytkownika
D. zobaczenie danych o aktualnym użytkowniku
Niemniej jednak, inne wymienione odpowiedzi nie są poprawne w kontekście polecenia CREATE USER. W szczególności, polecenie to nie służy do modyfikowania haseł istniejących użytkowników. Aby zmienić hasło dla już istniejącego konta, należy użyć polecenia ALTER USER lub SET PASSWORD, które są dedykowane do tego celu. Takie podejście pozwala na bezpieczne aktualizowanie danych uwierzytelniających bez konieczności tworzenia nowego użytkownika, a także zapewnia większą kontrolę nad polityką haseł. Kolejnym niepoprawnym stwierdzeniem jest, że CREATE USER wyświetla informacje o istniejącym użytkowniku. W rzeczywistości, aby uzyskać szczegółowe informacje o użytkownikach, należy skorzystać z zapytań SELECT na tabeli mysql.user, gdzie przechowywane są dane dotyczące kont użytkowników. Polecenie CREATE USER nie ma funkcji przeglądania ani raportowania. Ostatnia fałszywa sugestia dotyczy możliwości nadania uprawnień bezpośrednio w momencie tworzenia użytkownika. Choć polecenie CREATE USER tworzy konto, to rzeczywiste przyznawanie uprawnień jest zadaniem dla polecenia GRANT, które należy uruchomić po utworzeniu konta. Tylko poprzez oddzielne nadanie uprawnień można precyzyjnie kontrolować, jakie operacje nowy użytkownik może wykonywać na danych, co jest kluczowym elementem zarządzania bezpieczeństwem w bazach danych.

Pytanie 2

W języku SQL wykonano przedstawione poniżej polecenia GRANT. Kto będzie miał prawo do przeglądania danych oraz ich zmiany?

GRANT ALL ON firmy TO 'adam'@'localhost';
GRANT ALTER, CREATE, DROP ON firmy TO 'anna'@localhost;
GRANT SELECT, INSERT, UPDATE ON firmy TO 'tomasz'@'localhost';
A. Adam i Anna
B. Jedynie Tomasz
C. Anna i Tomasz
D. Tomasz i Adam
Odpowiedź 'Tomasz i Adam' jest poprawna, ponieważ obaj użytkownicy mają przypisane odpowiednie uprawnienia do przeglądania oraz modyfikacji danych w bazie 'firmy'. Adam otrzymał pełne uprawnienia, co oznacza, że może przeglądać (SELECT) oraz modyfikować (INSERT, UPDATE, DELETE) dane, a także zmieniać strukturę tabel (ALTER, CREATE, DROP). Tomasz, z kolei, ma przydzielone szczegółowe uprawnienia do przeglądania danych (SELECT) oraz ich modyfikacji (INSERT, UPDATE). W praktyce, przydzielanie uprawnień w bazach danych odbywa się zgodnie z zasadą minimalnych uprawnień, co oznacza, że każdy użytkownik powinien mieć tylko te uprawnienia, które są mu niezbędne do realizacji przydzielonych zadań. Dobrą praktyką jest regularna weryfikacja przydzielonych uprawnień oraz ich dostosowywanie do zmieniających się potrzeb organizacji.

Pytanie 3

Aby zapewnić integralność danych w bazie programu Microsoft Access, należy zastosować

A. archiwizację bazy
B. kwerendę aktualizującą
C. więzy integralności
D. defragmentację bazy
Wybór więzów integralności jako metody zapewnienia spójności danych w programie Microsoft Access jest właściwy, ponieważ więzy te definiują zasady, które muszą być spełnione w bazie danych, aby utrzymać spójność i poprawność danych. Przykładowo, można ustawić więzy integralności, które zapobiegają wprowadzeniu duplikatów w kluczowych polach, takich jak identyfikator klienta, co jest kluczowe dla unikania konflikty i błędów w analityce danych. Więzy integralności mogą obejmować takie elementy jak klucze główne, klucze obce oraz unikalne ograniczenia, które pomagają w zachowaniu logiki relacyjnej w bazie danych. Dobrą praktyką jest regularne przeglądanie i aktualizowanie więzów integralności, aby zapewnić ich adekwatność do zmieniających się potrzeb danych. Ponadto, w sytuacjach, gdy dane są wprowadzane przez wiele źródeł, więzy integralności stają się kluczowym narzędziem w zarządzaniu jakością i spójnością danych, co jest zgodne z najlepszymi praktykami w zakresie zarządzania danymi.

Pytanie 4

Które z poniższych zdań poprawnie opisuje utworzoną tabelę?

CREATE TABLE dane (kolumna INTEGER(3));
A. Tabela o nazwie dane składa się z trzech kolumn typu całkowitego
B. Tabela o nazwie dane ma jedną kolumnę typu całkowitego
C. Tabela zawiera jedną kolumnę, która przechowuje trzyelementowe tablice
D. Kolumny tabeli dane są nazwane: kolumna1, kolumna2, kolumna3
Instrukcja CREATE TABLE w podanym przykładzie tworzy tabelę o nazwie `dane` z jedną, jedyną kolumną o nazwie `kolumna` i typie `INTEGER(3)`. Kluczowe są tu dwie rzeczy: po pierwsze, nazwa tabeli (`dane`), po drugie, lista kolumn w nawiasie. W tej liście jest tylko jedna pozycja: nazwa kolumny i jej typ danych. W SQL każda definicja kolumny to osobny wpis, oddzielany przecinkiem. Skoro nie ma przecinka, to znaczy, że jest dokładnie jedna kolumna. Zapis `INTEGER(3)` nie oznacza trzech kolumn ani tablicy, tylko typ liczbowy całkowity z określoną „szerokością wyświetlania” (w MySQL) lub po prostu liczbę całkowitą – w wielu silnikach baz danych nawias jest wręcz ignorowany. W praktyce tę kolumnę możemy potem używać np. do przechowywania wieku, liczby sztuk towaru, numeru poziomu uprawnień itp. Przykładowo: `INSERT INTO dane (kolumna) VALUES (5);` wstawi rekord z wartością 5 w tej jednej kolumnie. Z mojego doświadczenia warto przy projektowaniu tabel zawsze jasno nazywać kolumny, tak żeby z samej nazwy wynikało, co przechowują, np. `wiek`, `ilosc_sztuk`, a nie ogólne `kolumna`. Dobrą praktyką jest też od razu dodanie klucza głównego, np. `id INT AUTO_INCREMENT PRIMARY KEY`, ale w tym zadaniu skupiamy się tylko na liczbie kolumn i ich typie. To pytanie dobrze pokazuje, że w SQL struktura tabeli wynika z liczby pozycji w nawiasie, a nie z liczby w nawiasie przy typie danych.

Pytanie 5

Aby utworzyć tabelę w systemie baz danych, należy użyć polecenia SQL

A. CREATE TABLE
B. PLUS TABLE
C. NEW TABLE
D. ADD TABLE
Polecenia takie jak 'PLUS TABLE', 'NEW TABLE' oraz 'ADD TABLE' są niepoprawne i nie mają zastosowania w standardowym SQL. 'PLUS TABLE' nie istnieje w kontekście SQL i może być mylone z innymi językami programowania lub składniami, ale w SQL nie pełni żadnej funkcji. 'NEW TABLE' również nie jest uznawane w SQL, ponieważ nie istnieje takie polecenie; w rzeczywistości 'NEW' nie jest zarezerwowanym słowem kluczowym w tym języku. Ostatecznie, 'ADD TABLE' jest całkowicie błędnym sformułowaniem, ponieważ 'ADD' w SQL jest zazwyczaj używane w kontekście dodawania kolumn do już istniejącej tabeli przy użyciu polecenia 'ALTER TABLE', a nie do tworzenia nowych tabel. Każde z tych błędnych odpowiedzi wskazuje na nieznajomość podstaw SQL, co może prowadzić do nieefektywnej pracy z bazami danych. Aby tworzyć i zarządzać tabelami w bazach danych, znajomość prawidłowych komend jest kluczowa dla skutecznego zarządzania danymi.

Pytanie 6

Dla jakich nazwisk użyta w zapytaniu klauzula LIKE jest poprawna?

SELECT imie FROM mieszkancy WHERE imie LIKE '_r%';
A. Krzysztof, Krystyna, Romuald
B. Gerald, Jarosław, Marek, Tamara
C. Arleta, Krzysztof, Krystyna, Tristan
D. Rafał, Rebeka, Renata, Roksana
Prawidłowa odpowiedź Arleta Krzysztof Krystyna Tristan jest zgodna z klauzulą LIKE w języku SQL która pozwala na wyszukiwanie wzorców w danych tekstowych W zapytaniu użyto wzorca '_r%' gdzie podkreślenie oznacza dowolny pojedynczy znak a procent dowolną liczbę znaków W tym przypadku imiona muszą mieć 'r' jako drugi znak co jest spełnione dla Arleta Krzysztof Krystyna i Tristan Klauzula LIKE jest często używana w aplikacjach bazodanowych do filtrowania danych tekstowych na przykład w systemach zarządzania klientami gdzie można wyszukiwać nazwiska klientów zaczynające się na określoną literę Dobre praktyki zalecają ostrożne używanie wzorców które mogą prowadzić do pełnych skanów tabel co wpływa na wydajność Indeksowanie kolumn może poprawić szybkość zapytań LIKE jednak należy unikać wzorców zaczynających się od symbolu procenta gdyż pomijają indeksy Warto zrozumieć że LIKE jest potężnym narzędziem w SQL które może znacznie ułatwić pracę z tekstem jednak wymaga ono przemyślanego użycia by nie pogorszyć wydajności bazy danych

Pytanie 7

Co należy zweryfikować przed wykonaniem kopii zapasowej bazy danych, aby było możliwe jej późniejsze odtworzenie w poprawny sposób?

A. poprawność składni zapytań
B. spójność bazy danych
C. możliwość udostępnienia bazy danych
D. prawa dostępu do serwera bazy danych
Zarządzanie bazą danych wymaga zrozumienia, że przed wykonaniem kopii bezpieczeństwa kluczowe jest zapewnienie, że baza danych jest spójna. Wybór odpowiedzi dotyczącej możliwość udostępnienia bazy danych wskazuje na niezrozumienie podstawowych zasad operacji na bazie danych. Udostępnienie bazy może wiązać się z ryzykiem w przypadku, gdy użytkownicy wprowadzają dane w czasie wykonywania kopii zapasowej, co może prowadzić do niespójności. Prawa dostępu do serwera bazy danych są istotne, ale bez upewnienia się, że dane są spójne, nawet najlepiej zabezpieczona baza może okazać się problematyczna podczas przywracania. Poprawność składni zapytań jest także ważna, jednak nie ma bezpośredniego wpływu na jakość kopii zapasowej, ponieważ może być temat dotyczący operacji wykonywanych na danych, a nie samego stanu bazy. Spójność danych zapewnia, że wszystkie zależności i relacje między danymi są nienaruszone, co jest kluczowe, aby móc polegać na kopii zapasowej jako wiarygodnym źródle danych. Przykładem błędnego rozumienia może być sytuacja, w której administrator baz danych, koncentrując się na dostępności, ignoruje mechanizmy zapewniające integralność danych, co prowadzi do nieprzewidzianych błędów przy próbie ich odtworzenia.

Pytanie 8

Jakie mechanizmy powinno się wykorzystać do stworzenia ankiety w języku działającym po stronie serwera, tak aby wyniki były zapisane w postaci małego pliku u użytkownika?

A. tablicy globalnej $_FILES
B. sesji
C. bazy danych SQL
D. ciasteczek
Przy wyborze nieodpowiednich mechanizmów do przechowywania wyników ankiety, warto zrozumieć, dlaczego inne opcje nie są właściwe. Używanie tablicy globalnej $_FILES jest całkowicie niewłaściwe, ponieważ ta tablica służy do obsługi przesyłanych plików, a nie do przechowywania danych w formie ankiety. Z kolei sesje, mimo że pozwalają na przechowywanie danych użytkownika w kontekście danej sesji, są bardziej odpowiednie do przechowywania tymczasowych informacji, które nie wymagają długoterminowego przechowywania. W przypadku ankiety, gdzie istotne jest zachowanie wyników pomiędzy różnymi sesjami, sesje mogą być nieefektywne i prowadzić do ich utraty po zakończeniu sesji przeglądarki. Bazy danych SQL, chociaż są potężnym narzędziem do przechowywania danych, wymagają większej złożoności w implementacji oraz zarządzaniu danymi, co może być zbędne w przypadku prostych ankiet, gdzie ciasteczka mogą spełnić wystarczające wymagania. Typowym błędem myślowym jest zakładanie, że każda forma przechowywania danych wymaga skomplikowanej infrastruktury, podczas gdy w wielu przypadkach prostsze rozwiązania, takie jak ciasteczka, oferują wystarczającą funkcjonalność w bardziej ergonomicznym podejściu do programowania aplikacji webowych.

Pytanie 9

W systemie baz danych sklepu komputerowego znajduje się tabela o nazwie komputery. Aby stworzyć raport, który wyświetli dane dla konkretnego zestawu informacji z tej tabeli, zawierający tylko te komputery, które mają co najmniej 8 GB pamięci RAM oraz procesor Intel, można wykorzystać zapytanie:

A. SELECT * FROM komputery WHERE procesor= 'Intel' OR pamiec>=8
B. SELECT * FROM komputery WHERE procesor= 'Intel' OR pamiec<8
C. SELECT * FROM komputery WHERE procesor= 'Intel' AND pamiec<8
D. SELECT * FROM komputery WHERE procesor= 'Intel' AND pamiec>=8
Aby stworzyć kwerendę, która wyświetli wszystkie komputery w tabeli 'komputery', spełniające określone warunki, musimy użyć odpowiednich operatorów logicznych oraz porównań. W tym przypadku chcemy uzyskać sprzęt, którego procesor to 'Intel' oraz pamięć RAM wynosi co najmniej 8 GB. Kluczowym elementem jest tutaj użycie operatora 'AND', który zapewnia, że muszą być spełnione oba warunki jednocześnie. Kwerenda 'SELECT * FROM komputery WHERE procesor= 'Intel' AND pamiec>=8;' w pełni odpowiada tym wymaganiom. Operator 'AND' jest istotny, ponieważ bez niego moglibyśmy otrzymać komputery z procesorem Intel, ale z pamięcią RAM mniejszą niż 8 GB, co jest sprzeczne z naszym celem. Tego rodzaju zapytania są powszechne w analizie danych i często wykorzystywane w raportowaniu i wizualizacji danych. Odpowiednia struktura kwerendy zapewnia, że wyniki będą precyzyjne i zgodne z oczekiwaniami użytkowników, co jest kluczowe w zarządzaniu bazami danych oraz w tworzeniu systemów informacyjnych dla sklepów komputerowych.

Pytanie 10

Przedstawione zapytanie SQL przydziela uprawnienie SELECT

GRANT SELECT ON hurtownia.*
TO 'sprzedawca'@'localhost';
A. do wszystkich tabel w bazie hurtownia
B. dla użytkownika root na serwerze sprzedawca
C. dla użytkownika root na serwerze localhost
D. do wszystkich kolumn w tabeli hurtownia
Polecenie GRANT SELECT ON hurtownia.* TO 'sprzedawca'@'localhost'; nie przyznaje praw do użytkownika root ani do serwera localhost, co wyklucza te możliwości. W SQL, użytkownik root zazwyczaj posiada pełne uprawnienia administracyjne, a przypisanie mu dodatkowych specyficznych praw nie jest konieczne ani typowe w kontekście tego typu polecenia. Z kolei wskazanie serwera localhost w tym kontekście dotyczy tylko ograniczenia dostępu użytkownika do tego konkretnego hosta, a nie nadania mu praw selektywnych. Błędne jest również stwierdzenie, że polecenie to nadaje prawa do wszystkich pól w tabeli hurtownia. W rzeczywistości, wyrażenie hurtownia.* w kontekście GRANT odnosi się do wszystkich tabel, a nie do pól, które w SQL nazywane są kolumnami. Właściwe przypisanie uprawnień w systemach bazodanowych wymaga zrozumienia kontekstu, w którym dane polecenie jest stosowane, oraz znajomości specyfiki składni SQL. Wiele błędów wynika z niepełnego zrozumienia różnicy między tabelami a kolumnami oraz ról poszczególnych użytkowników w systemie zarządzania bazą danych. Praktyka i ciągłe doskonalenie wiedzy w zakresie zarządzania bazami danych jest kluczowe dla unikania takich pomyłek oraz dla utrzymania bezpieczeństwa i spójności danych w organizacjach.

Pytanie 11

Aby zoptymalizować operacje na bazie danych, należy stworzyć indeksy dla pól, które są często wyszukiwane lub sortowane?

A. stworzyć osobną tabelę przechowującą tylko te pola.
B. utworzyć indeks.
C. dodać więzy integralności.
D. dodać klucz obcy.
Dodawanie kluczy obcych ma na celu utrzymanie integralności danych oraz relacji między tabelami, co jest niezwykle ważne w przypadku baz danych złożonych z wielu tabel. Klucz obcy wskazuje na rekord w innej tabeli, co umożliwia zachowanie spójności danych, ale nie przyspiesza operacji wyszukiwania ani sortowania w obrębie pojedynczej tabeli. Bezpośrednio nie wpływa to na wydajność zapytań do tabeli, w której te klucze są zdefiniowane, ponieważ wciąż może być konieczne przeszukiwanie całej tabeli w celu znalezienia odpowiednich rekordów. Więzy integralności, takie jak unikalność czy niepustość kolumn, również służą do utrzymania spójności danych, ale nie przyspieszają operacji wyszukiwania. Są one narzędziem do zapewnienia, że dane są zgodne z określonymi regułami, co jest istotne, ale nie wpływa na wydajność zapytań. Stworzenie osobnej tabeli przechowującej tylko te pola mogłoby w pewnych okolicznościach pomóc w organizacji danych, jednak w praktyce wprowadziłoby to dodatkową złożoność w zarządzaniu relacjami oraz zapytaniami. Takie podejście może prowadzić do większej liczby operacji JOIN, co w dłuższym okresie może spowolnić operacje, zamiast je przyspieszyć. W rezultacie, wszystkie te metody mają swoje miejsce w architekturze baz danych, ale nie są odpowiednie w kontekście optymalizacji operacji wyszukiwania i sortowania na danych.

Pytanie 12

Aby przywrócić bazę danych MS SQL z archiwum, należy użyć polecenia

A. SAVE DATABASE
B. RESTORE DATABASE
C. REBACKUP DATABASE
D. DBCC CHECKDB
Aby przywrócić bazę danych w systemie MS SQL Server z kopii bezpieczeństwa, wykorzystuje się polecenie RESTORE DATABASE. To polecenie umożliwia odtworzenie całej bazy danych ze wskazanej kopii zapasowej. Proces ten jest kluczowy w sytuacjach awaryjnych, takich jak usunięcie danych, awaria sprzętu czy uszkodzenie bazy danych. W kontekście standardów Microsoft, RESTORE DATABASE jest integralną częścią zarządzania danymi i bezpieczeństwa. Przykładowe zastosowanie polecenia obejmuje: RESTORE DATABASE [nazwa_bazy] FROM DISK = 'ścieżka_do_pliku.bak', gdzie 'ścieżka_do_pliku.bak' wskazuje na lokalizację pliku z kopią zapasową. Dodatkowo, można użyć opcji WITH RECOVERY, aby przywrócić bazę do stanu operacyjnego, lub WITH NORECOVERY, aby umożliwić dalsze operacje przywracania. Warto zaznaczyć, że przed przywróceniem bazy danych ważne jest odpowiednie przygotowanie środowiska oraz sprawdzenie integralności kopii zapasowej, co można osiągnąć za pomocą narzędzi takich jak DBCC CHECKDB. Zastosowanie polecenia RESTORE DATABASE jest niezbędne w codziennym zarządzaniu bazami danych, a jego znajomość jest kluczowa dla administratorów systemów baz danych.

Pytanie 13

Czym jest DBMS?

A. Kaskadowy arkusz stylów do opisu wyglądu witryny www
B. Strukturalny język zapytań do bazy danych
C. System zarządzania bazą danych
D. Obiektowy język programowania służący do tworzenia stron www
Wybór niepoprawnych odpowiedzi wskazuje na pewne nieporozumienia dotyczące podstawowych koncepcji zarządzania danymi w informatyce. Kaskadowy arkusz stylów (CSS) służy do opisu wyglądu strony internetowej, a nie do zarządzania danymi. CSS jest używany do określenia, jak HTML ma być wyświetlany, korzystając z reguł stylizacji, ale nie ma żadnej funkcji związanej z przechowywaniem ani przetwarzaniem informacji. Z kolei obiektowy język programowania do generowania stron internetowych odnosi się do technologii, które są używane do tworzenia interaktywnych aplikacji, ale nie obejmuje on funkcji zarządzania danymi, które są kluczowe w pracy z bazą danych. Dodatkowo, strukturalny język zapytań kierowanych do bazy danych, czyli SQL, jest rzeczywiście związany z interakcją z DBMS, ale nie jest samodzielnym systemem. SQL jest językiem zapytań, który służy do komunikacji z bazą danych w DBMS, a nie do jej zarządzania jako całości. Często mylone jest pojęcie języka programowania z systemem, co prowadzi do błędnych wniosków. Zrozumienie, że DBMS jest kluczowym elementem w architekturze baz danych, jest istotne dla efektywnego projektowania aplikacji i rozwiązań informatycznych, które wymagają wydajnego zarządzania danymi.

Pytanie 14

Wskaż właściwą sekwencję faz projektowania relacyjnej bazy danych?

A. Określenie kluczy podstawowych tabel, Określenie zbioru danych, Selekcja, Określenie relacji
B. Określenie zbioru danych, Selekcja, Określenie kluczy podstawowych tabel, Określenie relacji
C. Selekcja, Określenie relacji, Określenie kluczy podstawowych tabel, Określenie zbioru danych
D. Określenie relacji, Określenie kluczy podstawowych, Selekcja, Określenie zbioru danych
Projektowanie relacyjnej bazy danych to naprawdę ciekawe, ale też skomplikowane zadanie. Na początku trzeba dobrze pomyśleć, jakie dane będziemy gromadzić i w jakiej formie, bo to później zdeterminuje wszystko. Potem wybieramy atrybuty, które są naprawdę istotne dla naszych potrzeb. Kluczowe w tym wszystkim jest ustalenie kluczy podstawowych dla tabel, bo one pomagają jednoznacznie zidentyfikować każdy rekord. Na końcu przychodzi czas na ustalanie relacji między tabelami, co pozwala nam na sensowne powiązanie danych. To wszystko w zgodzie z zasadami projektowania baz danych, które mówią o normalizacji i wydajności. Na przykład, jeśli projektujemy bazę danych dla uczelni, musimy dokładnie wiedzieć, jakie dane o studentach i kursach są dla nas ważne, żeby wszystko działało jak należy.

Pytanie 15

Jakie jest zastosowanie zapytania z klauzulą JOIN?

A. uzyskać wynik tylko z jednej tabeli
B. wywołać funkcję agregującą
C. pozyskać dane z dwóch tabel, które są ze sobą powiązane
D. określić klucz obcy dla tabeli
Zapytania z klauzulą JOIN są fundamentalnym narzędziem w relacyjnych bazach danych, umożliwiającym łączenie danych z różnych tabel na podstawie określonych warunków. Klauzula JOIN pozwala na uzyskanie wyników, które są wynikiem relacji między tabelami, co jest kluczowe w przypadku, gdy dane są rozproszone w różnych miejscach. Na przykład, w przypadku bazy danych e-commerce, możemy mieć jedną tabelę z informacjami o klientach i inną z zamówieniami. Używając JOIN, możemy połączyć te dwie tabele, aby uzyskać pełen obraz zamówień dokonanych przez konkretnego klienta. W praktyce, korzystanie z JOIN jest zgodne z zasadami normalizacji bazy danych, co przyczynia się do efektywnego zarządzania danymi i minimalizowania redundancji. Przy właściwym zastosowaniu, JOIN może również poprawić wydajność zapytań, limitując ilość danych do przesłania, kiedy to tylko niezbędne informacje są łączone w jeden wynik. To podejście jest zgodne z najlepszymi praktykami w inżynierii oprogramowania oraz zarządzaniu danymi.

Pytanie 16

Zapytanie z użyciem klauzuli JOIN jest wykorzystywane w celu

A. wywołania funkcji agregującej
B. pozyskania wyników z dwóch tabel, które są ze sobą powiązane
C. uzyskania wyników tylko z jednej tabeli
D. określenia klucza obcego dla tabeli
Kiedy używasz klauzuli JOIN w SQL, to tak naprawdę odblokowujesz potencjał swoich relacyjnych baz danych. Dzięki temu możesz łączyć dane z różnych tabel, co jest mega przydatne, gdy trzeba przeanalizować informacje z wielu źródeł. Na przykład, jeżeli masz dwie tabele – 'Klienci' i 'Zamówienia' – to z pomocą JOIN możesz łatwo stworzyć listę zamówień razem z danymi o klientach. Kluczowe jest to, by wiedzieć, które kolumny chcesz zestawić, bo wtedy otrzymasz jasne i uporządkowane wyniki. Z własnego doświadczenia powiem, że umiejętne korzystanie z JOIN znacznie poprawia szybkość zapytań i ułatwia analizę danych. Tak naprawdę, to dla programistów szansa na pełne wykorzystanie SQL przy tworzeniu różnorodnych raportów. W dzisiejszych czasach, gdy tak dużo danych krąży wokół, znajomość tych technik to must-have.

Pytanie 17

Przygotowując raport w systemie zarządzania relacyjnymi bazami danych, można uzyskać

A. dodawanie danych do tabel
B. analizę wybranych danych
C. aktualizowanie danych w tabelach
D. usuwanie danych z tabel
W kontekście systemów obsługi relacyjnych baz danych, raportowanie odgrywa kluczową rolę w analizie danych. Wykonywanie raportu umożliwia użytkownikom dostęp do wybranych informacji, co pozwala na podejmowanie świadomych decyzji opartych na danych. Analiza danych to proces przetwarzania informacji w celu wydobycia wartościowych wniosków. Przykłady zastosowania to generowanie raportów sprzedażowych, finansowych czy analizy trendów klientów. W raportach można wykorzystać różne techniki, takie jak filtrowanie, grupowanie czy agregowanie danych, co umożliwia prezentację wyników w przystępnej formie graficznej. Dodatkowo, standardy takie jak SQL (Structured Query Language) są powszechnie używane do wykonywania zapytań w relacyjnych bazach danych, co pozwala na efektywne przeszukiwanie i analizowanie danych. W praktyce, raporty mogą być generowane na podstawie zapytań do bazy danych i mogą obejmować różne parametry, co zwiększa ich użyteczność w podejmowaniu decyzji strategicznych i operacyjnych.

Pytanie 18

W celu modyfikacji danych w bazie danych można wykorzystać

A. formularzem
B. kwerendą SELECT
C. raportem
D. filtrowaniem
Raporty, filtracja oraz kwerendy SELECT to różne podejścia do pracy z danymi, ale nie są to metody edytowania danych w bazie danych. Raporty są narzędziem do generowania przeglądów danych, które pozwalają na analizę i wizualizację danych w różnych formatach, jednak nie umożliwiają bezpośredniego modyfikowania tych danych. Zwykle są one używane do prezentowania wyników na podstawie kwerend, a ich celem jest informowanie użytkowników o stanie bazy danych, a nie jej edytowanie. Filtracja, z drugiej strony, to proces selekcjonowania konkretnego zbioru danych z większej bazy, który ma na celu ograniczenie widocznych informacji, ale nie zmienia samych danych. Wyszukiwanie za pomocą filtrów jest kluczowe przy analizie danych, jednak samo w sobie nie prowadzi do ich edytowania. Kwerenda SELECT jest z kolei używana do pobierania danych z bazy, co oznacza, że pozwala na odczyt danych, ale nie na ich modyfikację. Kwerendy, które służą do edytowania danych, to kwerendy typu UPDATE czy INSERT, które bezpośrednio manipulują danymi w bazie. Obserwując te różnice, można zauważyć, że niektóre z tych narzędzi mogą być mylnie interpretowane jako metody edytowania, mimo że ich głównym celem jest analiza lub przetwarzanie informacji.

Pytanie 19

Wskaż właściwą zasadę odnoszącą się do integralności danych w bazie danych?

A. pole klucza obcego nie powinno być puste
B. w relacji 1..n pole klucza obcego łączy się z polem klucza podstawowego innej tabeli
C. pole klucza podstawowego musi mieć utworzony indeks
D. pole klucza podstawowego nie powinno być puste
Pole klucza podstawowego w tabeli bazy danych jest fundamentalnym elementem struktury relacyjnej. Jego główną rolą jest zapewnienie unikalności każdego rekordu w tabeli oraz umożliwienie jednoznacznej identyfikacji. Zgodnie z zasadami spójności danych w bazach danych, pole klucza podstawowego nie może być puste (NULL), ponieważ brak wartości w tym polu uniemożliwi skuteczne i jednoznaczne zidentyfikowanie rekordu. Na przykład, w tabeli 'Klienci', gdzie 'ID_Klienta' jest kluczem podstawowym, każde 'ID_Klienta' musi być unikalne i nie może być puste, aby uniknąć niejednoznaczności podczas wyszukiwania lub modyfikacji danych. Praktyczne zastosowanie tej zasady w projektowaniu baz danych prowadzi do zwiększenia integralności i spójności danych, co jest zgodne z normami, takimi jak ACID (Atomicity, Consistency, Isolation, Durability). Dbałość o poprawność kluczy podstawowych to kluczowy element w tworzeniu wydajnych i niezawodnych systemów baz danych.

Pytanie 20

Proces układania danych w bazie, który obejmuje tworzenie tabel, definiowanie relacji pomiędzy nimi oraz eliminację zbędnych danych i niespójnych powiązań, nazywany jest

A. nadmiarowością
B. sprawdzaniem spójności danych
C. normalizacją
D. sprawdzaniem integralności referencyjnej
Weryfikacja integralności referencyjnej to kwestia tego, żeby sprawdzić, czy relacje między tabelami w bazie są ok, czyli czy klucze obce prowadzą do istniejących rekordów. To ważne, ale nie dotyczy organizacji danych, która polega na tworzeniu tabel i relacji. Z kolei weryfikacja spójności danych to już inna sprawa, bo chodzi tu o zgodność danych w jednej tabeli, a nie o eliminowanie powtórzeń czy ustalanie relacji między różnymi tabelami. Redundancja to problem, bo to oznacza, że dane są powielane, co może powodować problemy, ale nie jest procesem, tylko skutkiem złej organizacji danych. Ważne jest, żeby znać te różnice, bo mylenie ich może prowadzić do nieefektywnego tworzenia baz danych. Dlatego dobrze jest korzystać z zasad normalizacji, żeby uniknąć kłopotów z nadmiarowością i niespójnością, bo to jest kluczowe dla zachowania integralności bazy. Zastosowanie tych zasad może naprawdę poprawić działanie bazy.

Pytanie 21

Celem testów wydajnościowych jest ocena

A. zdolności programu do funkcjonowania w sytuacjach, gdy sprzęt działa niepoprawnie
B. stopnia, w jakim system lub moduł spełnia wymagania dotyczące wydajności
C. zdolności programu do funkcjonowania w sytuacjach, gdy system działa niepoprawnie
D. ciągu zdarzeń, w którym prawdopodobieństwo danego zdarzenia zależy tylko od wyniku zdarzenia wcześniejszego
Analizując pozostałe odpowiedzi, można zauważyć, że żadna z nich nie odnosi się bezpośrednio do istoty testów wydajnościowych. Pierwsza z nich sugeruje, że testy te mają na celu sprawdzenie zdolności oprogramowania do działania w warunkach wadliwej pracy sprzętu. Chociaż testowanie pod kątem awarii sprzętowych jest istotnym elementem inżynierii oprogramowania, to nie jest to kluczowy aspekt testów wydajnościowych. Testy wydajnościowe koncentrują się na ocenie wydajności, a nie na sprawdzaniu reakcji systemu na uszkodzenia sprzętu. Druga odpowiedź dotyczy zdolności oprogramowania do działania w warunkach wadliwej pracy systemu, co także jest ważnym zagadnieniem w kontekście testowania, lecz nie jest to celem testów wydajnościowych. Testowanie odporności i niezawodności systemu jest częścią testowania funkcjonalnego, a nie wydajnościowego. Z kolei ostatnia z propozycji odnosi się do analizy ciągu zdarzeń, w którym prawdopodobieństwo każdego zdarzenia zależy jedynie od wyniku poprzedniego. To zagadnienie dotyczy bardziej teorii prawdopodobieństwa i statystyki, a nie bezpośrednio wydajności oprogramowania. Testy wydajnościowe skupiają się na mierzeniu i optymalizacji parametrów, a nie na analizie statystycznej zdarzeń w kontekście ich prawdopodobieństwa.

Pytanie 22

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

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

Pytanie 23

Czym jest relacja w bazach danych?

A. kluczem głównym w relacji tabel
B. logicznym połączeniem tabel
C. algebraicznym połączeniem tabel
D. połączeniem dwóch pól w obrębie jednej tabeli
Niepoprawne odpowiedzi wskazują na nieporozumienia dotyczące definicji relacji w bazach danych. Klucz główny w relacji tabel nie jest definicją relacji, lecz elementem, który umożliwia identyfikację unikalnych rekordów w tabeli. Klucz główny jest atrybutem lub zestawem atrybutów, które zapewniają, że każdy rekord jest jednoznacznie zidentyfikowany, co jest istotne, ale nie definiuje samej relacji między tabelami. Algebraiczne połączenie tabel to termin, który może sugerować operacje wykonywane na danych, ale nie odnosi się bezpośrednio do logiki łączenia tabel, jak ma to miejsce w relacjach. W rzeczywistości, w kontekście baz danych, używa się terminów takich jak 'JOIN', które są technikami łączenia danych z różnych tabel w oparciu o relacje między nimi. Połączenie dwóch pól jednej tabeli to także niepoprawne stwierdzenie, ponieważ relacja odnosi się do powiązań między różnymi tabelami, a nie tylko do pól w jednej tabeli. Właściwe zrozumienie tych terminów jest kluczowe dla efektywnego projektowania baz danych oraz ich późniejszego użytkowania.

Pytanie 24

W poniższym kodzie PHP wykonano operację na bazie danych. Której funkcji należy użyć, aby pobrać liczbę zmienionych w tabeli wierszy?

$zapytanie="UPDATE kadra SET stanowisko='Programista' WHERE id < 10";
mysqli_query($db, $zapytanie);
A. mysqli_field_count()
B. mysqli_affected_rows()
C. mysqli_num_rows()
D. mysqli_use_result()
Wybrana odpowiedź jest niestety niepoprawna. Może to wynikać z niezrozumienia różnych funkcji dostępnych w języku PHP do manipulowania danymi w bazach danych MySQL. Funkcja mysqli_field_count() zwraca liczbę pól w wyniku zapytania SELECT, a nie liczbę zmienionych wierszy. Z kolei mysqli_use_result() inicjuje pobieranie wyników zapytania wysłanego do serwera MySQL i nie zwraca informacji o liczbie zmienionych wierszy. Natomiast funkcja mysqli_num_rows() zwraca liczbę wierszy w wyniku zapytania SELECT, a nie liczbę zmienionych wierszy. Do tego celu służy jedynie funkcja mysqli_affected_rows(), która zwraca liczbę wierszy zmienionych, dodanych lub usuniętych przez ostatnie wywołanie funkcji mysqli_query() na serwerze MySQL. Pamiętaj więc, że wybór odpowiedniej funkcji zależy od kontekstu i rodzaju operacji wykonanej na bazie danych.

Pytanie 25

Na ilustracji przedstawiającej tabelę muzyka, zrealizowano poniższe zapytanie SQL. Jaki rezultat zwróci ta kwerenda?

SELECT wykonawca FROM`muzyka`
WHERE wykonawca LIKE 'C%w';
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. Czesław
B. pusty wynik
C. Czesław, Czechowski
D. Czesław, Niemen
Zapytanie SQL używa operatora LIKE z wzorcem C%W co oznacza że szuka wartości w kolumnie wykonawca które zaczynają się na literę C i kończą na literę W oraz mogą zawierać dowolne znaki pomiędzy. W tabeli nie ma jednak wykonawcy który spełnia ten wzorzec. Czesław Niemen zaczyna się na C ale kończy na M a Mikołaj Czechowski zaczyna się na M więc żaden z tych rekordów nie spełnia kryterium. Takie podejście do filtrowania danych jest powszechnie stosowane w bazach danych pozwalając na zaawansowane wyszukiwania tekstowe. Użycie operatora LIKE z odpowiednimi wzorcami znaków to potężne narzędzie przy analizie tekstów w bazach danych. Warto jednak pamiętać że wydajność takich operacji może znacząco się obniżyć przy dużych zbiorach danych dlatego w praktyce stosuje się indeksowanie kolumn oraz optymalizację zapytań SQL. Ważne jest również aby dobrze zrozumieć jak działa operator LIKE oraz jakie są różnice w jego działaniu w różnych systemach bazodanowych np. w MySQL Oracle czy PostgreSQL.

Pytanie 26

Atrybut autor w tabeli ksiazka oznacza

CREATE TABLE ksiazka (
  id INT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY,
  tytul VARCHAR(200),
  autor SMALLINT UNSIGNED NOT NULL,
  CONSTRAINT `dane` FOREIGN KEY (autor) REFERENCES autorzy(id)
);
A. kluczem obcym powiązanym z tabelą autorzy
B. atrybut używany w relacji z tabelą dane
C. kluczem podstawowym tabeli ksiazka
D. atrybut typu tekstowego zawierający informacje o autorze
Pole autor w tabeli ksiazka jest zdefiniowane jako klucz obcy co oznacza że tworzy relację z inną tabelą w bazie danych w tym przypadku z tabelą autorzy która zawiera id autorów W relacyjnych bazach danych klucz obcy jest mechanizmem który pozwala na utrzymanie integralności danych pomiędzy powiązanymi tabelami Jest to szczególnie ważne w kontekście modelowania rzeczywistości gdzie różne encje takie jak książki i autorzy są zależne od siebie W powyższym przykładzie pole autor odwołuje się do pola id w tabeli autorzy umożliwiając przypisanie konkretnego autora do danej książki Taka konstrukcja bazy danych jest zgodna z zasadami normalizacji które dążą do minimalizacji redundancji danych i zapewnienia ich spójności Klucze obce są powszechnie stosowaną praktyką w projektowaniu baz danych dzięki której złożone relacje mogą być reprezentowane i zarządzane w sposób efektywny Umożliwiają one implementację mechanizmu kaskadowego aktualizowania lub usuwania danych co pomaga w zachowaniu spójności w całej bazie danych

Pytanie 27

Wbudowanym w pakiet XAMPP narzędziem służącym do zarządzania bazą danych jest

A. SQLite
B. pgAdmin
C. phpMyAdmin
D. MySQL Workbench
Poprawną odpowiedzią jest phpMyAdmin, bo to właśnie to narzędzie jest domyślnie zintegrowane z pakietem XAMPP jako panel do zarządzania bazą danych MySQL/MariaDB przez przeglądarkę. Po instalacji XAMPP masz zazwyczaj skrót „phpMyAdmin” w panelu kontrolnym, a samo narzędzie jest dostępne pod adresem typu http://localhost/phpmyadmin. Nie trzeba nic dodatkowo instalować ani konfigurować, poza uruchomieniem modułu Apache i MySQL/MariaDB w XAMPP. Z mojego doświadczenia to jest pierwsze miejsce, gdzie większość osób zaczyna przygodę z bazami danych w środowisku lokalnym. phpMyAdmin to aplikacja webowa napisana w PHP, która pozwala wykonywać większość typowych operacji administracyjnych na bazie: tworzenie i usuwanie baz danych, tworzenie tabel, modyfikacja struktury (typy pól, klucze główne, indeksy), wstawianie i edycja rekordów, eksport i import danych (np. pliki .sql), nadawanie uprawnień użytkownikom. Dla początkujących to ogromne ułatwienie, bo nie trzeba od razu pisać ręcznie długich zapytań SQL – wiele rzeczy da się „wyklikać”, a phpMyAdmin dodatkowo pokazuje, jakie zapytania SQL wygenerował. To jest fajny sposób, żeby stopniowo oswajać się ze składnią SQL. W dobrych praktykach pracy z XAMPP przyjmuje się, że w środowisku developerskim phpMyAdmin jest jak najbardziej ok. Można szybko tworzyć bazy testowe dla projektów PHP, WordPressa czy innych CMS-ów, robić eksport bazy z localhosta i import na serwer produkcyjny. Przy większych, profesjonalnych wdrożeniach często używa się bardziej zaawansowanych narzędzi lub linii komend, ale nawet wtedy phpMyAdmin zostaje jako wygodne narzędzie pomocnicze. Ważne jest tylko, żeby w środowisku produkcyjnym odpowiednio zabezpieczyć dostęp do phpMyAdmin (hasła, ograniczenia IP, dodatkowe uwierzytelnianie), bo domyślnie nie jest to narzędzie projektowane z myślą o wystawianiu „na świat” bez żadnych zabezpieczeń. W kontekście nauki programowania webowego i baz danych warto świadomie korzystać z phpMyAdmin: podglądać generowane zapytania SQL, ćwiczyć tworzenie relacji, kluczy obcych, backupów. To narzędzie jest na tyle popularne, że praktycznie w każdym hostingu współdzielonym znajdziesz bardzo podobny panel, więc umiejętność pracy z phpMyAdmin przydaje się później w realnych projektach komercyjnych.

Pytanie 28

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

A. UPDATE artykuly SET nowy=TRUE;
B. UPDATE nowy FROM artykuly VALUE TRUE;
C. INSERT INTO artykuly VALUE nowy=TRUE;
D. INSERT INTO nowy FROM artykuly SET TRUE;
Pozostałe odpowiedzi są błędne z kilku powodów. Pierwsza, 'INSERT INTO artykuly VALUE nowy=TRUE;', jest niepoprawna, bo instrukcja INSERT służy do dodawania nowych rekordów, a nie do aktualizacji tych, które już są. Używanie tej komendy w kontekście aktualizacji to poważny błąd w zrozumieniu baz danych. Druga odpowiedź, 'UPDATE nowy FROM artykuly VALUE TRUE;', też nie jest dobra, bo składnia tutaj jest błędna. Komenda UPDATE nie używa słowa 'FROM' w taki sposób i brakuje też struktury, która określałaby, które rekordy mają być zmienione. Ostatnia odpowiedź, 'INSERT INTO nowy FROM artykuly SET TRUE;', jeszcze bardziej myli, bo 'INSERT INTO' nie służy do zmiany wartości w kolumnie. Raczej dodaje nowe wiersze do tabeli. Takie podejście łamie zasady SQL i może prowadzić do błędów w zapytaniach. Ważne jest, żeby zrozumieć różnice pomiędzy INSERT a UPDATE, aby skutecznie zarządzać danymi.

Pytanie 29

UPDATE klient SET miejscowosc='Warszawa' WHERE id IN(2,4);
W tabeli klient o polach: id, imie, nazwisko, miejscowosc znajduje się 5 rekordów o id od 1 do 5. Dla których wartości kolumny id przedstawiona kwerenda zaktualizuje zawartość pola miejscowosc na Warszawa?
A. 2, 4
B. 2, 3, 4
C. 3
D. 1, 5
W tym zadaniu kluczowe jest dokładne zrozumienie, jak działa klauzula WHERE w instrukcji UPDATE oraz jak interpretować zapis z operatorem IN. Konstrukcja `UPDATE klient SET miejscowosc='Warszawa' WHERE id IN(2,4);` nie wybiera „jakichś tam” rekordów losowo ani nie aktualizuje wszystkich wierszy, tylko bardzo konkretną podgrupę danych. Warunek `id IN (2,4)` jest równoważny zapisowi `id = 2 OR id = 4`. To oznacza, że silnik bazy danych przechodzi po rekordach i sprawdza: jeśli id danego rekordu jest równe 2 lub 4, to ustawia miejscowosc na 'Warszawa'. Jeśli id ma inną wartość, rekord jest pomijany. Częsty błąd myślowy polega na tym, że ktoś skupia się na liczbie rekordów w tabeli (tu: 5 wierszy o id 1–5) i próbuje dopasować odpowiedź na zasadzie „a może chodzi o środkowy”, „a może o wszystkie poza tymi z listy” albo „może IN działa jak jakiś zakres”. To złe podejście. Operator IN nie oznacza przedziału, tylko dokładną listę dopuszczalnych wartości. Jeżeli na przykład ktoś uznał, że zaktualizowany zostanie tylko rekord o id=3, to najpewniej zignorował treść warunku lub pomylił IN z BETWEEN. Podobnie wybieranie pary 1,5 czy trójki 2,3,4 sugeruje, że myśli się raczej o odcinku lub o „skrajnych” identyfikatorach, a nie o literalnie podanych liczbach wewnątrz nawiasu. W SQL, gdy chcemy objąć zakresem wszystkie id od 2 do 4, używamy `WHERE id BETWEEN 2 AND 4`, a nie `IN(2,4)`. Warto też utrwalić sobie, że brak dopasowania do warunku WHERE oznacza brak jakiejkolwiek zmiany w danym wierszu, więc rekordy o id 1, 3 i 5 pozostaną nietknięte. Dobra praktyka w pracy z bazami danych to zawsze czytanie warunku WHERE „na głos” i zastanowienie się, jakie dokładnie wartości są dopuszczone. Pozwala to uniknąć groźnych pomyłek, kiedy przypadkowo zmienilibyśmy zbyt wiele danych lub zupełnie nie te rekordy, które planowaliśmy edytować.

Pytanie 30

Zgodnie z zasadami ACID dotyczącymi transakcji, wymóg izolacji (ang. isolation) wskazuje, że

A. jeśli dwie transakcje są wykonywane równolegle, to zazwyczaj nie zauważają wprowadzanych przez siebie zmian
B. pod określonymi warunkami dane modyfikowane przez transakcję mogą zostać anulowane
C. gdy wystąpi konflikt z inną transakcją, obie mogą modyfikować te same dane równocześnie
D. po zrealizowaniu transakcji system baz danych będzie w stanie spójności
Izolacja, jako jedno z kluczowych wymagań standardu ACID w kontekście transakcji baz danych, oznacza, że transakcje wykonywane współbieżnie nie wpływają na siebie nawzajem w sposób widoczny. Gdy dwie transakcje są uruchamiane jednocześnie, każda z nich operuje na swoim zestawie danych, nie widząc zmian dokonanych przez drugą do momentu zakończenia transakcji. Dzięki temu, nawet w środowisku o dużym natężeniu operacji, możliwe jest zapewnienie spójności danych. Na przykład, w systemie bankowym, jeśli jeden użytkownik wykonuje przelew, a inny jednocześnie sprawdza stan konta, to proces sprawdzania nie powinien ujawniać niepotwierdzonych jeszcze operacji przelewu. W praktyce, mechanizmy takie jak blokady, czasowe znaczniki (timestamps) oraz protokoły kontroli współbieżności (np. MVCC - Multi-Version Concurrency Control) są wykorzystywane do zapewnienia tej izolacji, co jest fundamentalne dla zachowania integralności danych i poprawności operacji w wielu aplikacjach bazodanowych.

Pytanie 31

W tabeli Recepta pola Imię oraz Nazwisko odnoszą się do pacjenta, dla którego recepta została wystawiona. Jaką kwerendę należy wykorzystać, aby dla wszystkich recept uzyskać datę ich wystawienia oraz imię i nazwisko lekarza, który je wystawił?

Ilustracja do pytania
A. SELECT Lekarz.Imie, Lekarz.Nazwisko, DataWystawienia FROM Recepta
B. SELECT Imie, Nazwisko, DataWystawienia FROM Recepta
C. SELECT Lekarz.Imie, Lekarz.Nazwisko, DataWystawienia FROM Recepta JOIN Lekarz ON Recepta.Lekarz_id = Lekarz.id
D. SELECT Imie, DataWystawienia FROM Recepta JOIN Lekarz ON Recepta.Lekarz_id = Lekarz.id
Zauważyłem, że dobrze zrozumiałeś, jak skonstruować kwerendę SQL, która łączy dane lekarza z datą wystawienia recepty. Użycie klauzuli JOIN to kluczowa sprawa, bo dzięki temu możesz połączyć tabele Recepta i Lekarz na podstawie odpowiednich kluczy. Dzięki temu dostajesz imię i nazwisko lekarza, który wypisał daną receptę. Klauzula SELECT, którą używasz, wskazuje, co chcesz zobaczyć – w tym przypadku Imie i Nazwisko z tabeli Lekarz oraz Datę Wystawienia z tabeli Recepta. To jest naprawdę podstawowa umiejętność, która pomaga w pracy z relacyjnymi bazami danych. Z mojego doświadczenia, umiejętność tworzenia takich zapytań, pomoże nie tylko w nauce, ale i w przyszłej pracy, bo baza danych rzadko jest prosta i często trzeba łączyć różne dane. I jeszcze jedna rzecz: używanie JOIN w odpowiedni sposób może przyspieszyć działanie zapytań, co jest ważne, gdy mamy do czynienia z dużą ilością danych.

Pytanie 32

 SELECT model FROM samochody WHERE rocznik > 2017 AND marka = "opel"; 

Tabela samochody zawiera rekordy przedstawione na obrazie. Wydając przedstawione zapytanie SQL zostaną zwrócone dane:
idklasa_idmarkamodelrocznik
11fordka2017
22seattoledo2016
33opelzafira2018
42fiat500X2018
53opelinsignia2017
A. zafira
B. zafira; insignia
C. opel zafira; opel insignia
D. opel zafira
Gratulacje, twoja odpowiedź jest poprawna. Zapytanie SQL 'SELECT model FROM samochody WHERE rocznik > 2017 AND marka = 'opel';' ma na celu wyświetlenie modelu samochodu marki 'opel' z roku produkcji późniejszego niż 2017. Analizując dostępną tabelę, możemy zauważyć, że tylko model 'zafira' spełnia oba kryteria. W tym przypadku wykorzystaliśmy dwa kluczowe elementy języka SQL, tj. instrukcję SELECT i klauzulę WHERE. Instrukcja SELECT służy do zapytań o konkretne dane z bazy, a klauzula WHERE to powszechnie stosowane narzędzie do filtrowania wyników zapytania według określonych kryteriów. Jest to bardzo praktyczny aspekt SQL, który pozwala na wydobywanie tylko tych danych, które są potrzebne, co jest niezwykle przydatne przy dużych bazach danych.

Pytanie 33

Narzędziem do zarządzania bazą danych, które jest zintegrowane w pakiecie XAMPP, jest

A. SQLite
B. phpMyAdmin
C. pgAdmin
D. MySQL Workbench
phpMyAdmin jest popularnym narzędziem wbudowanym w pakiet XAMPP, które służy do zarządzania bazą danych MySQL. Umożliwia użytkownikom łatwe wykonywanie operacji takich jak tworzenie, edytowanie i usuwanie baz danych oraz tabel, a także zarządzanie użytkownikami i uprawnieniami. Interfejs phpMyAdmin jest oparty na przeglądarkach internetowych, co sprawia, że jego obsługa jest intuicyjna nawet dla osób bez zaawansowanej wiedzy technicznej. Przykładowo, można szybko importować lub eksportować dane w różnych formatach, takich jak SQL, CSV czy XML, co jest niezwykle przydatne podczas migracji danych między różnymi środowiskami. Standardy dobrych praktyk przewidują korzystanie z narzędzi takich jak phpMyAdmin w celu minimalizacji ryzyka błędów manualnych, a także w celu zwiększenia efektywności pracy z bazami danych. Dzięki phpMyAdmin, użytkownicy mogą również łatwo monitorować wydajność bazy danych i optymalizować zapytania, co jest kluczowe dla utrzymania wysokiej jakości aplikacji webowych.

Pytanie 34

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

A. /
B. &
C. ||
D. %
Operator arytmetyczny modulo, czyli ten %, to coś, co moim zdaniem jest naprawdę przydatne w SQL. Używamy go do obliczania reszty z dzielenia, co pokazuje na przykład taki kod: 'SELECT 10 % 3;', który zwraca 1. Chodzi o to, że 10 dzielone przez 3 to 3, a reszta to właśnie 1. To może być super pomocne, kiedy chcemy sprawdzić, czy liczba jest parzysta czy nie. Na przykład, możemy użyć takiego zapytania: 'SELECT CASE WHEN 5 % 2 = 0 THEN 'Parzysta' ELSE 'Nieparzysta' END;' i dostaniemy 'Nieparzysta'. Operator modulo przydaje się też w programowaniu, na przykład do tworzenia cykli lub rozdzielania danych w algorytmach. Dobrze jest pamiętać, że używając tego operatora w SQL, warto mieć na uwadze czytelność kodu. Szczególnie przy większych bazach danych, gdzie to ma znaczenie.

Pytanie 35

W SQL uprawnienie SELECT przydzielone za pomocą polecenia GRANT umożliwia użytkownikowi bazy danych

A. usuwanie danych z tabeli
B. zmienianie danych w tabeli
C. generowanie tabeli
D. uzyskiwanie danych z tabeli
Przywilej SELECT w języku SQL, przyznawany przy użyciu polecenia GRANT, umożliwia użytkownikowi baz danych na wykonywanie operacji odczytu danych z określonych tabel. Oznacza to, że użytkownik może pobierać informacje zapisane w tabelach bazy danych, co jest kluczowe dla większości aplikacji korzystających z danych. Na przykład, w kontekście aplikacji analitycznych, dostęp do danych pozwala na generowanie raportów i analiz, które wspierają podejmowanie decyzji. W praktyce, przyznanie przywileju SELECT jest standardową procedurą zabezpieczającą, ponieważ pozwala na kontrolowanie, którzy użytkownicy mogą zobaczyć dane w bazie, minimalizując ryzyko nieautoryzowanego dostępu. Warto również zaznaczyć, że w bazach danych, takich jak MySQL, PostgreSQL czy Oracle, przywileje są zarządzane w sposób hierarchiczny, co oznacza, że użytkownik z przywilejem SELECT może dodatkowo dziedziczyć inne przywileje, co zwiększa elastyczność zarządzania dostępem.

Pytanie 36

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

A. dodać klucz obcy.
B. dodać więzy integralności.
C. utworzyć indeks.
D. utworzyć osobną tabelę przechowującą wyłącznie te pola.
Dodawanie klucza obcego, więzów integralności czy tworzenie osobnych tabel to strategie, które nie mają na celu przyspieszenia operacji wyszukiwania i sortowania w bazach danych. Klucz obcy jest narzędziem do definiowania relacji między tabelami, które gwarantuje, że dane w jednej tabeli odpowiadają danym w innej. Choć klucze obce są niezbędne do zapewnienia integralności referencyjnej, to nie przyspieszają one wyszukiwania w obrębie pojedynczej tabeli. Więzy integralności, takie jak UNIQUE czy NOT NULL, również nie wpływają na szybkość operacji wyszukiwania, a ich rolą jest zabezpieczenie integralności danych przez zapewnienie ich poprawności i spójności. Tworzenie osobnych tabel dla często wyszukiwanych pól może zwiększyć złożoność bazy danych oraz wprowadzić dodatkowe operacje do zaawansowanego zapytania, co w rzeczywistości może prowadzić do spowolnienia wydajności. W praktyce, wiele baz danych zyskuje na efektywności dzięki odpowiedniemu indeksowaniu, co czyni tę metodę kluczowym narzędziem dla administratorów baz danych. Ignorowanie znaczenia indeksów i stosowanie innych technik jako metod przyspieszających operacje na polach często wyszukiwanych może prowadzić do błędnych wniosków i niewłaściwych decyzji projektowych.

Pytanie 37

Zaproponowana baza danych składa się z trzech tabel oraz dwóch relacji. Żeby uzyskać listę wszystkich lekarzy przypisanych do danego pacjenta, konieczne jest porównanie kluczy

Ilustracja do pytania
A. Lekarze.id = Pacjenci.Recepty_id
B. Lekarze.id = Recepty.id
C. Lekarze.id = Pacjenci.Lekarze_id
D. Lekarze.id = Pacjenci.id
Poprawna odpowiedź polega na właściwym zrozumieniu relacji między tabelami Lekarze a Pacjenci w bazie danych. Aby wyświetlić wszystkich lekarzy przypisanych do konkretnego pacjenta konieczne jest użycie klucza obcego Lekarze_id w tabeli Pacjenci. Relacja ta jest kluczowa gdyż każda wizyta pacjenta jest przypisana konkretnemu lekarzowi dzięki temu kluczowi. W praktycznych zastosowaniach relacje takie są niezbędne do efektywnego zarządzania danymi w systemach zdrowotnych umożliwiając szybkie uzyskanie informacji o lekarzach opiekujących się pacjentem. Standardy baz danych zakładają użycie kluczy obcych w celu utrzymania integralności danych. Jest to zgodne z zasadą normalizacji polegającą na eliminacji redundancji i zapewnieniu spójności danych. W kontekście projektowania baz danych dobre praktyki wymagają jasno zdefiniowanych relacji co pozwala na łatwiejsze skalowanie i zarządzanie systemem. Zrozumienie i poprawne zastosowanie tej wiedzy umożliwia tworzenie wydajnych i elastycznych struktur danych.

Pytanie 38

W bazie danych znajduje się tabela o nazwie faktury, która posiada pola: numer, data, id_klienta, wartosc, status. Każdego dnia tworzony jest raport dotyczący faktur z danego dnia. W raporcie prezentowane są jedynie numery oraz wartości faktur. Która z poniższych kwerend SQL jest odpowiednia do wygenerowania tego raportu?

A. SELECT numer, wartosc FROM faktury WHERE data = CURRENT_DATE();
B. SELECT * FROM faktury;
C. SELECT * FROM faktury WHERE data = CURRENT_DATE();
D. SELECT numer, wartosc FROM faktury;
Wszystkie inne kwerendy SQL, które nie uwzględniają warunku WHERE z datą, są nieprawidłowe w kontekście zadania, ponieważ nie spełniają konkretnego celu ograniczenia wyników do faktur z bieżącego dnia. Kwerenda SELECT numer, wartosc FROM faktury; zwraca wszystkie numery i wartości faktur bez żadnej filtracji, co jest niezgodne z wymaganiami raportu. W praktyce, generując raporty, istotne jest, aby zapewnić, że dane są aktualne i odpowiadają określonym kryteriom. Następnie, kwerenda SELECT * FROM faktury WHERE data = CURRENT_DATE();, mimo że zawiera poprawny warunek daty, nie ogranicza kolumn do tych wymaganych w zadaniu, co prowadzi do nieefektywnego przetwarzania danych i obciążenia systemu. Ostatecznie, użycie SELECT * FROM faktury; jest najbardziej nieodpowiednie, ponieważ zwraca wszystkie informacje z tabeli, co jest niepraktyczne w kontekście codziennego raportowania. Taka praktyka może prowadzić do nadmiarowych danych, które są w większości niepotrzebne, a tym samym zwiększa czas wykonania zapytania, co jest przeciwwskazane w dobrze zaprojektowanych systemach baz danych. Właściwe formułowanie zapytań SQL, które zawierają tylko niezbędne pola, jest kluczowym aspektem efektywności i optymalizacji zapytań w bazach danych.

Pytanie 39

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

A. projekt raportu
B. zapytanie SELECT
C. etykieta
D. zapytanie ALTER
Odpowiedź 4: zapytania SELECT są naprawdę ważne, bo pozwalają na ściąganie konkretnych danych z bazy. To tak jakbyś miał klucz do swojej bazy informacji. Możemy dzięki nim stworzyć różne raporty, na przykład sprzedaży, wybierając dane z tabeli i filtrując je według daty, produktu czy regionu. Warto pamiętać o używaniu klauzuli WHERE, bo dzięki temu nie dostajemy zbędnych wyników, tylko to, co naprawdę nas interesuje. To, co fajne w zapytaniach SELECT, to że możemy łączyć różne tabele z użyciem JOIN, co pozwala na jeszcze bardziej skomplikowane raporty. Z mojego doświadczenia, umiejętność tworzenia zapytań SELECT i ich optymalizacja są kluczowe w analizie danych, a to pomaga w lepszym podejmowaniu decyzji w biznesie.

Pytanie 40

Polecenie serwera MySQL w postaci

REVOKE DELETE, UPDATE ON pracownicy FROM 'tKowal'@'localhost'
spowoduje, że użytkownikowi tKowal zostaną
A. przydzielone uprawnienia do usuwania oraz aktualizowania danych w tabeli pracownicy
B. odebrane prawa usuwania i modyfikowania danych w tabeli pracownicy
C. przydzielone uprawnienia do wszelkich zmian struktury tabeli pracownicy
D. odebrane uprawnienia usuwania oraz dodawania rekordów w tabeli pracownicy
Odpowiedź wskazuje, że użytkownikowi tKowal odebrane zostały prawa usuwania i modyfikowania danych w tabeli pracownicy za pomocą polecenia REVOKE. W kontekście zarządzania uprawnieniami w MySQL, polecenie REVOKE jest kluczowym narzędziem, które umożliwia administratorom bazy danych kontrolowanie dostępu użytkowników do różnych operacji na danych. W tym przypadku, przy użyciu REVOKE DELETE, UPDATE, administrator zdejmuje z użytkownika tKowal możliwość usuwania (DELETE) oraz aktualizowania (UPDATE) rekordów w tabeli pracownicy. Praktycznym zastosowaniem tej funkcji może być sytuacja, gdy administrator chce ograniczyć dostęp do wrażliwych danych, aby zapobiec przypadkowemu lub nieuprawnionemu usunięciu informacji. Dobrą praktyką jest regularne przeglądanie i aktualizowanie uprawnień użytkowników, aby zapewnić, że mają oni tylko te uprawnienia, które są im niezbędne do wykonywania swoich obowiązków, co przyczynia się do zwiększenia bezpieczeństwa danych.