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: 9 grudnia 2025 12:42
  • Data zakończenia: 9 grudnia 2025 13:02

Egzamin zdany!

Wynik: 21/40 punktów (52,5%)

Wymagane minimum: 20 punktów (50%)

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

Tabela Pacjenci zawiera kolumny: imie, nazwisko, wiek, lekarz_id. Aby stworzyć raport, który będzie zawierał jedynie imiona oraz nazwiska pacjentów mających mniej niż 18 lat i zapisanych do lekarza o id równym 6, można wykorzystać kwerendę SQL

A. SELECT imie, nazwisko WHERE wiek<18 OR lekarz_id=6
B. SELECT imie, nazwisko FROM Pacjenci WHERE wiek<18 OR lekarz_id=6
C. SELECT imie, nazwisko FROM Pacjenci WHERE wiek<18 AND lekarz_id=6
D. SELECT imie, nazwisko WHERE wiek<18 AND lekarz_id=6
Aby uzyskać raport z tabeli Pacjenci, w którym znajdują się wyłącznie imiona i nazwiska pacjentów poniżej 18 roku życia zapisanych do lekarza o id równym 6, należy użyć następującej kwerendy SQL: SELECT imie, nazwisko FROM Pacjenci WHERE wiek<18 AND lekarz_id=6. Kluczowe w tej kwerendzie jest zastosowanie operatora AND, który pozwala na jednoczesne spełnienie obu warunków. W SQL, operator AND łączy dwa warunki, które muszą być prawdziwe, aby dany wiersz został uwzględniony w wynikach. Operator OR byłby nieodpowiedni, ponieważ mógłby zwrócić pacjentów, którzy są młodsi niż 18 lat, ale zapisani do innych lekarzy, co nie spełnia wymagań zadania. Ta kwerenda jest zgodna z ANSI SQL, który jest standardem dla zapytań do baz danych, a także dobrze ilustruje zasady filtracji danych w kontekście relacyjnych baz danych. Przykład takiej tabeli mógłby wyglądać następująco: imie: 'Jan', nazwisko: 'Kowalski', wiek: 17, lekarz_id: 6. W tym przypadku, zapytanie zwróciłoby imię i nazwisko Jana Kowalskiego, ponieważ spełnia on oba warunki.

Pytanie 2

W zaprezentowanym fragmencie zapytania SQL, instrukcja SELECT ma za zadanie zwrócić

SELECT COUNT(wartosc) FROM ...
A. średniej wartości tabeli
B. średniej w kolumnie wartosc
C. suma w kolumnie wartosc
D. liczby rekordów
Komenda SELECT COUNT w języku SQL jest używana do zwracania liczby wierszy w rezultacie zapytania. Użycie funkcji COUNT z nazwą kolumny, jak w przykładzie SELECT COUNT(wartosc), pozwala policzyć wszystkie niepuste wartości w danej kolumnie wartosc w tabeli. Jest to przydatne w przypadkach, gdy chcemy zrozumieć, ile danych spełnia określone kryteria, lub gdy interesuje nas liczba wierszy zawierających wartości w konkretnej kolumnie. Funkcja COUNT jest jedną z podstawowych funkcji agregujących w SQL, co oznacza, że podsumowuje dane w określony sposób. Stosowanie tej funkcji jest zgodne z najlepszymi praktykami w projektowaniu baz danych, gdzie często potrzebujemy analizować dane w sposób ilościowy. Przykładowo, jeśli prowadzimy bazę danych klientów, możemy użyć SELECT COUNT(id) FROM klienci, aby dowiedzieć się, ilu mamy zarejestrowanych klientów. Ta funkcja jest także kluczowym elementem w optymalizacji zapytań, ponieważ pozwala na szybkie uzyskanie informacji o liczbie rekordów bez konieczności przetwarzania wszystkich danych z tabeli. Zrozumienie działania COUNT i jego zastosowań jest kluczowe dla efektywnego przetwarzania danych i tworzenia wydajnych zapytań w języku SQL.

Pytanie 3

Z tabeli mieszkańcy należy uzyskać unikalne nazwy miejscowości, do czego konieczne jest użycie wyrażenia SQL z klauzulą

A. DISTINCT
B. UNIQUE
C. HAVING
D. CHECK
Wybór odpowiedzi CHECK, HAVING lub UNIQUE wskazuje na pewne nieporozumienia dotyczące zastosowania i znaczenia tych klauzul w SQL. Klauzula CHECK jest używana w kontekście definicji tabeli, aby zapewnić, że dane w danym atrybucie spełniają określone warunki, na przykład 'CHECK (wiek >= 0)', co oznacza, że wiek nie może być ujemny. Nie ma jednak zastosowania w kontekście eliminacji duplikatów z wyników zapytania. Klauzula HAVING jest z kolei używana do filtrowania grup z wyniku agregacji, na przykład w zapytaniu z użyciem GROUP BY. Użycie HAVING do eliminacji duplikatów z wyników bez wcześniejszego grupowania danych nie ma sensu. Z kolei UNIQUE to ograniczenie, które można ustawić na kolumnę w tabeli, aby zapewnić, że nie będą w niej występowały powtarzające się wartości. Chociaż jest związane z unikalnością, nie jest klauzulą, którą można wykorzystać w zapytaniach do eliminacji duplikatów z zestawów wyników. Typowym błędem jest mylenie tych koncepcji, co prowadzi do wyboru nieodpowiednich narzędzi w SQL do rozwiązania konkretnego problemu. Warto zatem dobrze zrozumieć różnice między tymi klauzulami, aby umiejętnie stosować je w praktyce i skutecznie zarządzać danymi.

Pytanie 4

Jakie mechanizmy przydzielania zabezpieczeń, umożliwiające przeprowadzanie operacji na bazie danych, są powiązane z zagadnieniami dotyczącymi zarządzania kontami, użytkownikami oraz uprawnieniami?

A. Z przywilejami obiektowymi
B. Z regułami
C. Z atrybutami
D. Z przywilejami systemowymi
Przywileje systemowe odnoszą się do uprawnień, które są nadawane użytkownikom w kontekście zarządzania kontami i dostępem do zasobów w systemach baz danych. Te mechanizmy są kluczowe dla zapewnienia bezpieczeństwa oraz integralności danych. Przykładem przywilejów systemowych mogą być uprawnienia do tworzenia i usuwania innych kont użytkowników, a także do modyfikacji struktur danych, co jest fundamentalne w operacjach administracyjnych. W praktyce, administratorzy baz danych wykorzystują te przywileje do określenia, które konta mają dostęp do określonych funkcji systemu. W standardach takich jak SQL standard, zarządzanie uprawnieniami jest ściśle zdefiniowane, co pozwala na audyt i kontrolę dostępu. Aby stosować dobre praktyki, warto wdrożyć zasadę najmniejszych uprawnień, co oznacza, że użytkownicy powinni otrzymywać tylko te uprawnienia, które są niezbędne do wykonywania ich zadań. Dzięki temu minimalizujemy ryzyko nieautoryzowanego dostępu oraz potencjalnych naruszeń bezpieczeństwa.

Pytanie 5

W przypadku tabeli z danymi osobowymi, może to być pole o nazwie nazwisko?

A. JOIN
B. CREATE
C. UPDATE
D. SELECT
Odpowiedzi takie jak 'CREATE', 'SELECT' oraz 'JOIN' nie są odpowiednie w kontekście modyfikacji danych osobowych. 'CREATE' jest używane do tworzenia nowych tabel lub dodawania nowych rekordów do istniejących tabel. W przypadku gdybyśmy chcieli dodać nowe informacje o użytkowniku, na przykład nowego użytkownika do tabeli 'Użytkownicy', użyjemy polecenia INSERT, co różni się od aktualizacji istniejących danych. Z kolei 'SELECT' służy do pobierania danych z bazy danych, co oznacza, że nie modyfikuje on żadnych wartości, a jedynie wyświetla je lub udostępnia do analizy. Natomiast 'JOIN' jest operacją umożliwiającą łączenie danych z dwóch lub więcej tabel na podstawie relacji między nimi, co również nie dotyczy zmiany danych. Typowym błędem myślowym przy wyborze tych odpowiedzi jest pomylenie operacji na danych z ich modyfikowaniem. W przypadku aktualizacji danych, kluczowe jest zrozumienie kontekstu, w jakim dane są przechowywane i jak można je efektywnie zarządzać. Aby właściwie zarządzać danymi, konieczne jest posługiwanie się odpowiednimi instrukcjami SQL, które odpowiadają za ich aktualizację, co jest fundamentalnym aspektem pracy z bazami danych.

Pytanie 6

Aby cofnąć uprawnienia dostępu do serwera MySQL, należy wykorzystać polecenie

A. GRANT
B. DELETE
C. REVOKE
D. USAGE
Aby odebrać prawa dostępu do serwera MySQL, używa się polecenia REVOKE. To polecenie jest kluczowe w zarządzaniu uprawnieniami użytkowników w systemie zarządzania bazą danych MySQL. REVOKE pozwala na usunięcie wcześniej przydzielonych praw dostępu do określonych zasobów, takich jak tabele, bazy danych lub inne obiekty. Przykładowo, aby odebrać prawo SELECT dla użytkownika 'janek' na tabeli 'produkty', należy użyć komendy: REVOKE SELECT ON produkty FROM 'janek'@'localhost';. Dzięki temu użytkownik 'janek' nie będzie miał możliwości wykonywania zapytań SELECT na tej tabeli. Warto zaznaczyć, że REVOKE działa w oparciu o hierarchię uprawnień, co oznacza, że można je łączyć z innymi poleceniami, aby skutecznie zarządzać dostępem. Zgodnie z dokumentacją MySQL, REVOKE jest integralną częścią systemu autoryzacji, co czyni je niezbędnym dla zapewnienia bezpieczeństwa danych w bazach danych. Użycie REVOKE jest również istotne w kontekście audytów bezpieczeństwa, gdzie konieczne jest zarządzanie dostępem do danych.

Pytanie 7

Jakie zapytanie umożliwi Administratorowi odebranie uprawnień do przeglądania oraz edytowania danych w bazie gazeta, dla użytkownika redaktor?

A. GRANT SELECT, ALTER ON gazeta.* TO 'redaktor'@'localhost';
B. GRANT SELECT, UPDATE ON gazeta.* TO 'redaktor'@'localhost';
C. REVOKE SELECT, ALTER ON gazeta.* FROM 'redaktor'@'localhost';
D. REVOKE SELECT, UPDATE ON gazeta.* FROM 'redaktor'@'localhost';
Wszystkie pozostałe odpowiedzi są niepoprawne, ponieważ mylą pojęcie przyznawania i odbierania uprawnień. Na przykład, odpowiedź z użyciem GRANT SELECT, UPDATE ON gazeta.* TO 'redaktor'@'localhost'; jest błędna, ponieważ GRANT służy do przyznawania uprawnień, a nie ich odbierania. Użytkownik, który rozważa tę opcję, może mieć fałszywe przekonanie, że jest możliwe przypisanie uprawnień w sytuacji, gdy celem jest ich cofnięcie. Podobnie, odpowiedzi zawierające ALTER, jak REVOKE SELECT, ALTER ON gazeta.* FROM 'redaktor'@'localhost'; wprowadzają dodatkowy zamęt, ponieważ ALTER nie jest związane z przeglądaniem lub aktualizowaniem danych, ale odnosi się do modyfikacji struktury bazy danych. Błędne rozumienie różnic między SELECT, UPDATE i ALTER może prowadzić do poważnych problemów w zarządzaniu bazą danych, na przykład do nieautoryzowanych zmian w strukturze danych. Użytkownicy mogą także popełniać błąd w zakresie lokalizacji użytkownika, co w przypadku odpowiedzi jest określone jako 'redaktor'@'localhost';, co może być mylące w sytuacji, gdy użytkownik jest przypisany do innego hosta. Właściwe zrozumienie i stosowanie uprawnień w bazach danych jest fundamentalne dla ochrony danych, a także dla zapewnienia, że tylko uprawnieni użytkownicy mają dostęp do krytycznych informacji.

Pytanie 8

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

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

Pytanie 9

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

Ilustracja do pytania
A. Tabela znajduje się w trzeciej postaci normalnej
B. Tabela jest w drugiej postaci normalnej
C. Tabela znajduje się w pierwszej postaci normalnej
D. Tabela nie jest znormalizowana
Tabela przedstawiona w pytaniu nie spełnia wymogów żadnej z trzech podstawowych postaci normalnych co oznacza że nie jest znormalizowana. Pierwsza postać normalna wymaga aby wszystkie wartości w tabeli były atomowe co oznacza że kolumna Adres powinna być podzielona na kilka kolumn takich jak ulica miasto i kod pocztowy. Druga postać normalna wymaga że wszystkie atrybuty niekluczowe muszą być deterministycznie zależne od całego klucza głównego co w tym przypadku nie ma zastosowania ponieważ tabela zawiera tylko dwa atrybuty i brak jest klucza złożonego. Trzecia postać normalna eliminuje wszelkie przejściowe zależności funkcyjne pomiędzy atrybutami niekluczowymi co również nie ma zastosowania w tej prostej strukturze. Typowe błędy myślowe prowadzące do niewłaściwych wniosków mogą obejmować niepełne zrozumienie zasad atomowości danych oraz błędne założenie że nieskomplikowana struktura tabeli automatycznie spełnia zasady normalizacji. Dlatego kluczowe jest aby dokładnie rozumieć i identyfikować zależności między danymi oraz jak te zależności wpływają na integralność i efektywność bazy danych co jest szczególnie istotne w dużych systemach gdzie dane są intensywnie modyfikowane i wykorzystywane przez wiele aplikacji jednocześnie. Właściwa normalizacja pozwala na optymalizację czasu dostępu do danych oraz minimalizację redundancji co jest uznawane za dobrą praktykę w branży projektowania baz danych. W kontekście projektowania systemów informatycznych poprawna normalizacja jest nieodłącznym elementem cyklu życia projektu zapewniającym że struktura danych jest odporna na zmiany w wymaganiach użytkowników oraz skalowalna w przypadku wzrostu ilości danych do obsługi przez system. Dlatego zrozumienie i prawidłowe stosowanie zasad normalizacji jest kluczowe dla przyszłych profesjonalistów w dziedzinie IT którzy będą odpowiedzialni za projektowanie i utrzymanie złożonych systemów bazodanowych.

Pytanie 10

Z tabeli mieszkancy trzeba wydobyć unikalne nazwy miast, w tym celu należy użyć wyrażenia SQL zawierającego klauzulę

A. DISTINCT
B. CHECK
C. UNIQUE
D. HAVING
Odpowiedzi takie jak 'UNIQUE', 'CHECK' i 'HAVING' są błędne, ponieważ nie pełnią one funkcji eliminacji duplikatów w kontekście wyboru unikalnych wartości. 'UNIQUE' jest klauzulą, która służy do definiowania ograniczeń w tabelach, gwarantując, że wartości w danej kolumnie są unikalne w kontekście wierszy w tabeli. Jest to przydatne przy projektowaniu schematów baz danych, ale nie jest stosowane w zapytaniach do selekcji danych. 'CHECK' służy do walidacji danych wprowadzanych do tabeli, zapewniając, że spełniają one określone warunki, co jest istotne przy definiowaniu reguł dotyczących wartości, jakie mogą być wprowadzane. Z kolei 'HAVING' jest używane w kontekście grupowania danych, w połączeniu z klauzulą 'GROUP BY', aby filtrować grupy w oparciu o warunki, co jest zupełnie inną operacją niż eliminacja duplikatów. Typowym błędem jest mylenie koncepcji związanych z grupowaniem i selekcją unikalnych wartości. W praktyce, korzystając z 'HAVING', nie uzyskamy unikalnych wartości z kolumny bez wcześniejszego użycia 'GROUP BY', co sprawia, że jest to narzędzie bardziej skomplikowane i mniej efektywne w kontekście prostego wyciągania unikalnych danych. Aby właściwie zrozumieć zasady dotyczące zapytań SQL, ważne jest, aby rozróżniać te różne klauzule oraz ich zastosowania, co pozwoli na bardziej świadome i efektywne korzystanie z języka SQL.

Pytanie 11

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

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

Pytanie 12

Element lub zestaw elementów, który jednoznacznie identyfikuje każdy pojedynczy rekord w tabeli bazy danych, nazywamy kluczem

A. podstawowy
B. obcy
C. inkrementacyjny
D. przestawny
Klucz podstawowy (ang. primary key) jest to pole lub zbiór pól w tabeli bazy danych, które jednoznacznie identyfikują każdy row w tej tabeli. Klucz podstawowy nie może zawierać wartości NULL i musi być unikalny dla każdego rekordu, co zapewnia integralność danych w bazie. Przykładem klucza podstawowego może być identyfikator użytkownika w tabeli użytkowników, gdzie każdy użytkownik ma unikalny numer ID. Zgodnie z normami projektowania baz danych, klucz podstawowy powinien być prosty, a jego wartość nie powinna się zmieniać w czasie, aby zachować stabilność odniesień do tego rekordu w innych tabelach. W dobrych praktykach projektowania baz danych dla kluczy podstawowych często stosuje się typy danych takie jak INTEGER z automatycznym inkrementowaniem, co umożliwia wygodne dodawanie nowych rekordów bez ryzyka kolizji wartości. Używanie kluczy podstawowych ułatwia również tworzenie relacji z innymi tabelami, znanych jako klucze obce, co jest fundamentem relacyjnych baz danych.

Pytanie 13

Aby cofnąć uprawnienia danemu użytkownikowi, należy użyć polecenia

A. DELETE
B. GRANT NO PRIVILEGES
C. DELETE PRIVILEGES
D. REVOKE
Odpowiedź 'REVOKE' jest rzeczywiście trafna. To standardowe polecenie w systemach baz danych, jak SQL, do odbierania uprawnień użytkownikom. Dzięki temu administracja może lepiej zarządzać dostępem do danych, co jest mega ważne dla ich bezpieczeństwa. Na przykład, jeśli ktoś wcześniej miał prawo do edytowania danych, administrator może użyć 'REVOKE UPDATE ON tabela FROM użytkownik', żeby cofnąć te uprawnienia. W praktyce, stosowanie odpowiednich uprawnień jest kluczowe, żeby utrzymać integralność danych oraz upewnić się, że tylko uprawnione osoby mają do nich dostęp. Użycie 'REVOKE' to dobra praktyka w zarządzaniu dostępem, bo daje możliwość elastycznego dostosowania uprawnień, co może pomóc w uniknięciu nieautoryzowanego dostępu.

Pytanie 14

Jakie zapytanie pozwoli Administratorowi cofnąć uprawnienia do przeglądania oraz modyfikacji danych w bazie gazeta dla użytkownika redaktor?

A. GRANT SELECT, UPDATE ON gazeta.* TO 'redaktor'@'localhost';
B. GRANT SELECT, ALTER ON gazeta.* TO 'redaktor'@'localhost';
C. REVOKE SELECT, ALTER ON gazeta.* FROM 'redaktor'@'localhost';
D. REVOKE SELECT, UPDATE ON gazeta.* FROM 'redaktor'@'localhost';
Wybór innych odpowiedzi prowadzi do nieporozumień dotyczących zarządzania uprawnieniami w bazach danych. Na przykład, REVOKE SELECT, ALTER ON gazeta.* FROM 'redaktor'@'localhost'; jest niewłaściwe, ponieważ ALTER nie jest związane z przeglądaniem ani aktualizowaniem danych, lecz z modyfikowaniem struktury bazy danych, co nie jest celem tego pytania. Użytkownik mógłby mylnie uznać, że ALTER jest potrzebne do zarządzania danymi, jednak w rzeczywistości dotyczy to jedynie zmiany tabel, kolumn czy indeksów. Podobnie, polecenie GRANT SELECT, UPDATE ON gazeta.* TO 'redaktor'@'localhost'; jest całkowicie przeciwne do zamierzonego celu, ponieważ GRANT przyznaje uprawnienia, a nie je odbiera, co oznacza, że narusza zasadę, która miałaby zlikwidować dostęp do bazy danych. Ostatnia propozycja, GRANT SELECT, ALTER ON gazeta.* TO 'redaktor'@'localhost'; również jest fałszywa, ponieważ wprowadza dodatkowe uprawnienia, co może prowadzić do nieautoryzowanego dostępu do danych. Kluczowym błędem myślowym jest nieodróżnienie poleceń REVOKE i GRANT oraz nieznajomość różnicy między rodzajami uprawnień, co jest fundamentalne w zarządzaniu bezpieczeństwem danych.

Pytanie 15

W bazie danych znajduje się tabela pracownicy z kolumnami: id, imie, nazwisko, pensja. W nowym roku postanowiono zwiększyć wynagrodzenie wszystkim pracownikom o 100 zł. Jak powinno wyglądać to w aktualizacji bazy danych?

A. UPDATE pracownicy SET pensja = pensja + 100;
B. UPDATE pensja SET +100;
C. UPDATE pensja SET 100;
D. UPDATE pracownicy SET pensja = 100;
Błędne odpowiedzi opierają się na niepoprawnym zrozumieniu składni SQL i koncepcji aktualizacji danych. Odpowiedź 'UPDATE pensja SET +100;' jest nieprawidłowa, ponieważ nie odnosi się do żadnej konkretnej tabeli, a polecenie nie jest zgodne z wymaganym formatem aktualizacji. W SQL każda aktualizacja musi być powiązana z konkretną tabelą, w której chcemy zmienić dane. Kolejną niewłaściwą odpowiedzią jest 'UPDATE pensja SET 100;', która również nie wskazuje na żadną tabelę i nie uwzględnia struktury danych. W SQL musimy zawsze określić, co dokładnie chcemy osiągnąć i w jakiej tabeli. Ostatecznie, 'UPDATE pracownicy SET pensja = 100;' ustawia pensję na stałą wartość 100 zł dla wszystkich pracowników, co nie odpowiada zamierzeniu podniesienia obecnych pensji o 100 zł. Tego rodzaju błędy wynikają często z mylnego przekonania, że operacje na danych są prostsze niż w rzeczywistości. Kluczowym elementem skutecznego zarządzania bazami danych jest umiejętność odczytania i interpretacji poleceń SQL, aby skutecznie modyfikować rekordy zgodnie z wymaganiami biznesowymi.

Pytanie 16

Jaką treść komunikatu należy umieścić w kodzie PHP zamiast znaków zapytania?

$a = mysql_connect('localhost', 'adam', 'mojeHaslo');

if (!$a)
    echo "?????????????";
A. Rekord został pomyślnie dodany do bazy
B. Wybrana baza danych nie istnieje
C. Błąd połączenia z serwerem SQL
D. Błąd w trakcie przetwarzania zapytania SQL
Niepoprawne odpowiedzi wynikają z niezrozumienia działania funkcji mysql_connect(). Na przykład twierdzenie, że błąd dotyczy 'Wybrana baza nie istnieje' jest błędne, ponieważ mysql_connect() jedynie łączy z serwerem, a nie wybiera bazy. Do tego służy funkcja mysql_select_db(). Jest to częsty błąd, gdyż początkujący użytkownicy mogą mylić różne etapy interakcji z bazą danych. Kolejnym błędnym podejściem jest zakładanie, że problem dotyczy 'Błędu przetwarzania zapytania SQL'. Funkcja mysql_connect() nie przetwarza zapytań SQL, a jedynie ustanawia połączenie. Odpowiedzialność za przetwarzanie zapytań leży po stronie innych funkcji takich jak mysql_query(). Założenie, że komunikat powinien brzmieć 'Pomyślnie dodano rekord do bazy' również jest nieprawidłowe, ponieważ zawiera informację o sukcesie, gdy w rzeczywistości mamy do czynienia z sytuacją błędną, gdy połączenie nie mogło zostać nawiązane. Zrozumienie tych koncepcji jest kluczowe w budowaniu aplikacji korzystających z baz danych, ponieważ właściwe zarządzanie błędami i komunikacja z użytkownikiem wpływają na stabilność i użyteczność aplikacji.

Pytanie 17

SELECT AVGcena) FROM usługi; Celem użycia funkcji agregującej AVG w tym zapytaniu jest

A. zsumować wartości kosztów wszystkich usług
B. wyliczyć średnią arytmetyczną cen wszystkich usług
C. zliczyć ilość dostępnych usług w tabeli
D. określić najwyższą cenę usług
Odpowiedź "obliczyć średnią arytmetyczną cen wszystkich usług" jest poprawna, ponieważ funkcja AVG (average) w SQL jest zaprojektowana do obliczania średniej wartości z zestawu danych w danej kolumnie. W podanym zapytaniu, AVG(cena) ma na celu zsumowanie wartości w kolumnie 'cena' dla wszystkich wierszy w tabeli 'usługi' oraz podzielenie tej sumy przez liczbę wierszy, które zawierają dane. W praktyce, średnia arytmetyczna jest niezwykle użyteczna w analizie danych, ponieważ pozwala na uzyskanie jednego, reprezentatywnego wyniku, który może być pomocny w podejmowaniu decyzji biznesowych. Na przykład, firma usługowa może użyć tej informacji do oceny swojej polityki cenowej, porównując średnią cenę swoich usług do średnich cen konkurencji. Zgodnie z najlepszymi praktykami w branży, stosowanie funkcji agregujących takich jak AVG powinno być integralną częścią procesów analizy danych, szczególnie w kontekście raportowania i oceny efektywności operacyjnej.

Pytanie 18

Określ rodzaj relacji między tabelami: Tabela1 oraz Tabela3?

Ilustracja do pytania
A. Wiele do jednego
B. Jeden do wielu
C. Jeden do jednego
D. Wiele do wielu
Rozważając różne typy relacji pomiędzy tabelami w relacyjnych bazach danych, istotne jest zrozumienie konceptu kluczy i połączeń. Relacja jeden do jednego implikuje, że każdemu rekordowi w jednej tabeli odpowiada dokładnie jeden rekord w drugiej. Stosuje się ją tam, gdzie dane można logicznie podzielić na dwie części, jak np. dane osobowe i szczegółowe informacje kontaktowe danej osoby. Relacja jeden do wielu oznacza, że jeden rekord z pierwszej tabeli łączy się z wieloma rekordami w drugiej. Przykładowo, jeden autor może napisać wiele książek. Taka struktura jest typowa przy modelowaniu hierarchii danych i przy relacjach typu rodzic-dziecko. W przypadku relacji wiele do wielu, potrzebna jest trzecia tabela, która pośredniczy między dwoma głównymi tabelami, przechowując ich klucze obce. Umożliwia to powiązanie wielu rekordów z obu stron. Typowe błędy polegają na niepoprawnym wyborze typu relacji, co prowadzi do redundancji danych i problemów z integralnością. Zrozumienie i prawidłowe zastosowanie tych koncepcji jest kluczowe dla projektowania efektywnych i skalowalnych baz danych, wspierając jednocześnie złożone operacje i analizy. Wybór niewłaściwego typu relacji może prowadzić do trudności w zarządzaniu danymi i skomplikowanych zapytań, co jest znanym wyzwaniem w zarządzaniu bazami danych.

Pytanie 19

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

A. Wybrana baza danych nie istnieje
B. Błąd połączenia z serwerem SQL
C. Rekord został pomyślnie dodany do bazy
D. Błąd w przetwarzaniu zapytania SQL
Wybranie innej opcji niż 'Błąd połączenia z serwerem SQL' jest mylne, ponieważ każda z tych odpowiedzi nie odnosi się do kontekstu błędu połączenia z bazą danych. Stwierdzenie 'Wybrana baza nie istnieje' sugeruje, że połączenie z serwerem SQL zostało nawiązane, ale nie udało się znaleźć konkretnej bazy danych. W rzeczywistości jednak błąd przy próbie połączenia z serwerem SQL jest czymś innym, ponieważ w momencie, gdy połączenie się nie udaje, nie można jeszcze mówić o istnieniu czy nieistnieniu bazy. Kolejna opcja, 'Pomyślnie dodano rekord do bazy', jest oczywiście błędna, ponieważ w przypadku braku połączenia nie ma możliwości dodania jakiegokolwiek rekordu. Ta odpowiedź myli koncepcję pomyślnego wykonania operacji z brakiem połączenia z bazą danych. Ostatecznie, 'Błąd przetwarzania zapytania SQL' również jest niepoprawny w tym kontekście, ponieważ odnosi się do sytuacji, w której połączenie z bazą danych zostało nawiązane, ale zapytanie SQL nie mogło zostać przetworzone z powodu błędów składniowych, braku uprawnień lub innych problemów. Jednak w przypadku problemu z połączeniem nie dochodzi nawet do etapu przetwarzania zapytania, co czyni tę odpowiedź nieadekwatną.

Pytanie 20

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

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

Pytanie 21

W tabeli personel znajdują się pola: imie, nazwisko, pensja, staz. Aby otrzymać średnią pensję pracowników, dla których staż wynosi od 10 do 20 lat pracy włącznie, należy wykonać kwerendę:

A. SELECT COUNT(pensja) FROM personel WHERE staz >= 10 AND staz <= 20
B. SELECT COUNT(*) FROM personel WHERE staz >= 10 AND staz <= 20
C. SELECT AVG(*) FROM personel WHERE staz >= 10 AND staz <= 20
D. SELECT AVG(pensja) FROM personel WHERE staz >= 10 AND staz <= 20
Poprawna kwerenda to 'SELECT AVG(pensja) FROM personel WHERE staz >= 10 AND staz <= 20;'. Użycie funkcji AVG() jest kluczowe, gdyż jej celem jest obliczenie średniej wartości z konkretnego zestawu danych, w tym przypadku pensji pracowników z określonym stażem. Funkcja ta agreguje dane, zliczając sumę pensji i dzieląc ją przez ich liczbę, co jest standardową metodą obliczania średniej arytmetycznej. W kontekście praktycznym, taką kwerendę można wykorzystać w raportach finansowych dla działu HR, aby ocenić wynagrodzenia w zespole z odpowiednim doświadczeniem. Standardy SQL zalecają użycie funkcji agregujących, takich jak AVG(), do takich obliczeń, co zapewnia dokładność i efektywność w analizie danych. Co więcej, efektywne wykorzystanie takich zapytań pozwala na lepsze planowanie budżetu oraz strategii wynagrodzeń w organizacjach.

Pytanie 22

Jakie jest zadanie funkcji PHP o nazwie mysql_num_rows()?

A. zwrócić rekord o numerze podanym jako parametr funkcji
B. zwrócić liczbę wierszy znajdujących się w wyniku zapytania
C. ponumerować rekordy w bazie danych
D. zwrócić następny rekord z wynikami zapytania
Wybór odpowiedzi, która sugeruje, że mysql_num_rows() zwraca rekord o podanym numerze, jest mylący, ponieważ rzeczywiście nie zrealizuje tego zadania. mysql_num_rows() nie ma możliwości pobierania konkretnego rekordu ani wskazywania na konkretne numery, co jest typowym nieporozumieniem wśród osób, które nie są zaznajomione z funkcjami PHP dla obsługi baz danych. Z kolei twierdzenie, że funkcja ta zwraca kolejny rekord z wynikami zapytania, również jest błędne, ponieważ mysql_num_rows() nie ma za zadanie iterowania przez wyniki, ale jedynie zliczanie ich. To zrozumienie jest istotne w kontekście odpowiedniej obsługi danych, ponieważ myląc funkcje, można wprowadzić błędy w logice aplikacji. Wreszcie, pomysł, że mysql_num_rows() ma na celu ponumerowanie rekordów w bazie danych, jest po prostu nieprawidłowy, ponieważ ponumerowanie rekordów nie jest funkcjonalnością tej funkcji. Takie nieporozumienia mogą prowadzić do wprowadzenia błędów w aplikacjach, w których liczy się precyzyjność operacji na danych. Właściwe zrozumienie, co robi dana funkcja, jest kluczowe dla prawidłowego korzystania z baz danych i unikania nieefektywności w kodzie.

Pytanie 23

Obiektem w bazie danych, który wykorzystywany jest do podsumowywania, prezentacji oraz drukowania danych, jest

A. raport
B. zestawienie
C. zapytanie
D. formularz
Raport jest obiektem baz danych, który służy do podsumowywania, wyświetlania oraz wydruków danych. Jego główną funkcją jest agregacja i prezentacja informacji w sposób przystępny dla użytkownika. Raporty mogą być wykorzystywane do analizy danych, prezentacji wyników oraz podejmowania decyzji biznesowych. Przykładem zastosowania raportu może być generowanie miesięcznego raportu sprzedaży, który zawiera szczegółowe informacje o przychodach, kosztach oraz zyskach w danym okresie. Z perspektywy dobrych praktyk, raporty powinny być projektowane w taki sposób, aby były czytelne i zrozumiałe, a ich struktura powinna być zgodna z wymaganiami użytkowników. W kontekście standardów, raporty mogą być również generowane automatycznie przy użyciu narzędzi business intelligence, co pozwala na zwiększenie efektywności i dokładności analiz. Dobrze zdefiniowane raporty przyczyniają się do lepszego zrozumienia zbiorów danych oraz wspierają procesy decyzyjne w organizacji.

Pytanie 24

Dane są zapisy w tabeli uczniowie, które zostały przedstawione na rysunku. Jaki będzie rezultat wykonania podanego zapytania SQL?

Ilustracja do pytania
A. Wartość 3.5
B. Liczba wierszy równa 4
C. Dane 4, 3, 4, 3
D. Suma ocen równa 14
Zapytanie SQL SELECT AVG(ocena) FROM uczniowie ma na celu obliczenie średniej wartości kolumny ocena w tabeli uczniowie. Średnia arytmetyczna jest obliczana poprzez zsumowanie wszystkich ocen i podzielenie wyniku przez liczbę rekordów. W tym przypadku mamy cztery oceny: 4 3 4 i 3. Suma tych ocen wynosi 14 a liczba rekordów to 4 co daje średnią arytmetyczną równą 3.5. W przypadku baz danych funkcja AVG() jest standardowym sposobem na obliczanie średniej wartości w zestawie danych i jest powszechnie używana w analizie danych gdzie często zachodzi potrzeba określenia centralnej tendencji. Takie podejście pozwala na szybką ocenę ogólnej wydajności lub trendów w zbiorze danych. Praktyczne zastosowanie tego mechanizmu obejmuje analizy biznesowe gdzie przeciętna wartość sprzedaży lub innych metryk może dostarczyć cennych informacji. Warto również podkreślić że AVG() ignoruje wartości NULL co jest korzystne w analizie zestawów danych o niepełnych wpisach.

Pytanie 25

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. CLL
B. 0LL
C. 000
D. 0CC
W MS Access maska wprowadzania danych jest używana do kontrolowania formatu danych wprowadzanych do pola. Dla pola, w którym dane muszą mieć postać jednej cyfry, a następnie dwóch liter, odpowiednia maska to 0LL. Zero (0) oznacza, że na tej pozycji musi znajdować się cyfra i jest to wymóg obowiązkowy. Litera L oznacza, że na tej pozycji musi znajdować się litera i jest to również wymóg obowiązkowy. W ten sposób maska 0LL wymusza, aby dane były dokładnie w formacie jednej cyfry i dwóch liter. Praktyczne zastosowanie tego typu maski może być widoczne w sytuacjach, gdzie istnieje konieczność katalogowania produktów, gdzie oznaczenie musiałoby zawierać numer identyfikacyjny w postaci cyfry i skrót literowy identyfikujący kategorię. Takie podejście do formatowania danych zapewnia spójność i poprawność danych wprowadzanych do bazy, zgodnie z dobrymi praktykami zarządzania danymi, co jest kluczowe w systemach bazodanowych, gdzie dane są często przetwarzane i analizowane.

Pytanie 26

Aby wprowadzić rekord do tabeli Pracownicy, jakie polecenie SQL należy zastosować?

A. INSERT VALUES Pracownicy INTO (Jan, Kowalski);
B. INSERT VALUES (Jan, Kowalski) INTO Pracownicy;
C. INSERT INTO Pracownicy (imie, nazwisko) VALUES (Jan, Kowalski);
D. INSERT (Jan, Kowalski) INTO Pracownicy;
Odpowiedź 'INSERT INTO Pracownicy (imie, nazwisko) VALUES (Jan, Kowalski);' jest poprawna, ponieważ jest zgodna z ogólną składnią polecenia SQL do dodawania danych do tabeli. W składni tej najpierw wskazujemy, do której tabeli chcemy wprowadzić dane, używając frazy 'INSERT INTO', a następnie w nawiasach podajemy nazwy kolumn, do których mają być wprowadzone wartości. Wartości te umieszczamy po słowie kluczowym 'VALUES', również w nawiasach. Takie podejście jest zgodne z normami SQL i zapewnia, że dane będą poprawnie wstawione. Przykładem praktycznym może być dodanie nowego pracownika do bazy danych firmy, co jest kluczowym elementem zarządzania informacjami o pracownikach. Prawidłowa składnia pozwala również na łatwe wprowadzenie wielu rekordów jednocześnie, co jest efektywne w dużych systemach baz danych. Ponadto, użycie poprawnej składni ułatwia przyszłe modyfikacje oraz optymalizację zapytań, co jest istotne w kontekście dobrą praktyką w programowaniu baz danych.

Pytanie 27

Na podstawie tabeli Towar zrealizowano poniższe zapytanie SQL: ```SELECT nazwa_towaru FROM `Towar` WHERE cena_katalogowa < 65 ORDER BY waga DESC``` Jaki będzie rezultat tej operacji?

Ilustracja do pytania
A. Papier ksero A4, Kredki 24 kolory, Zeszyt A5 w linie, Zeszyt A5
B. Zeszyt A5 w linie, Zeszyt A5, Kredki 24 kolory, Papier ksero A4
C. Zeszyt A5, Zeszyt A5 w linie, Kredki 24 kolory, Papier ksero A4
D. Papier ksero A4, Kredki 24 kolory, Zeszyt A5, Zeszyt A5 w linie
Zapytanie SQL selekcjonuje towary z tabeli Towar, których cena katalogowa jest mniejsza niż 65, a następnie sortuje wyniki malejąco według wagi. Dzięki temu otrzymujemy listę towarów uporządkowaną od najcięższego do najlżejszego, a jednocześnie wykluczamy towary, które nie spełniają kryterium ceny. W podanym zestawie danych znajdują się cztery towary spełniające warunek cenowy: Papier ksero A4, Zeszyt A5, Zeszyt A5 w linie i Kredki 24 kolory. Spośród tych towarów najcięższy jest Papier ksero A4 (2.3), następnie Kredki 24 kolory (0.3), Zeszyt A5 (0.13), a najlżejszy jest Zeszyt A5 w linie (0.12). Kolejność wyników odpowiada zatem prawidłowej odpowiedzi numer 3. W praktyce umiejętność tworzenia zapytań SQL z warunkami filtrowania i sortowania jest niezwykle istotna w analizie danych, umożliwiając precyzyjne wyodrębnienie potrzebnych informacji z dużych zbiorów danych. Dobrym standardem jest zawsze testowanie zapytań na przykładowych danych, aby potwierdzić poprawność wyników przed ich zastosowaniem w środowisku produkcyjnym.

Pytanie 28

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.Lekarze_id
B. Lekarze.id = Recepty.id
C. Lekarze.id = Pacjenci.Recepty_id
D. Lekarze.id = Pacjenci.id
Wybór niepoprawnych odpowiedzi często wynika z błędnego zrozumienia relacji między tabelami w bazie danych. Pierwsza opcja Lekarze.id = Pacjenci.id sugeruje mylne podejście że lekarz i pacjent mogą być tym samym podmiotem co jest sprzeczne z zasadą separacji encji w relacyjnych bazach danych. Taka relacja nie ma logicznego sensu w kontekście medycznym gdzie lekarz to osoba świadcząca usługi zdrowotne a pacjent to osoba je otrzymująca. Podobnie opcja Lekarze.id = Pacjenci.Recepty_id nie jest poprawna gdyż sugeruje bezpośrednią relację między lekarzami a lekami przepisanymi pacjentowi co ignoruje fakt że recepty są osobnymi dokumentami generowanymi w procesie leczenia. Recepty są przypisane do pacjentów ale to lekarze zlecają je poprzez interakcję z pacjentem nie bezpośrednio z receptą. Ostatnia opcja Lekarze.id = Recepty.id sugeruje relację bezpośrednią między lekarzami a receptami z pominięciem pacjentów co jest błędnym uproszczeniem procesu przepisywania leków. W rzeczywistości każda recepta jest wynikiem interakcji między lekarzem a pacjentem i nie istnieje bezpośrednia zależność między lekarzem a receptą. Takie myślenie prowadzi do błędów w projektowaniu struktury bazy danych co może skutkować trudnościami w zarządzaniu danymi i utrzymaniu ich spójności. Zrozumienie prawidłowych relacji między tabelami w bazie danych jest kluczowe dla efektywnego zarządzania informacją i eliminacji błędów w aplikacjach biznesowych.

Pytanie 29

W relacyjnym modelu baz danych, termin krotka odnosi się do

A. wszystkich wierszy tabeli łącznie z wierszem nagłówkowym
B. liczby rekordów w danej tabeli
C. wszystkich kolumn tabeli, które zawierają atrybuty danego obiektu
D. wierszy tabeli, z wyjątkiem wiersza nagłówkowego, w którym znajdują się nazwy kolumn
W relacyjnym modelu baz danych, krotka odnosi się do jednego wiersza tabeli, który przechowuje zestaw atrybutów (kolumn) dla danego obiektu. Każda krotka jest zbiorem wartości, które są powiązane z określonymi kolumnami. Krotki stanowią fundamentalny element relacyjnych baz danych, w których dane są zorganizowane w formie tabel, co ułatwia ich przechowywanie, przetwarzanie oraz zapytania. Na przykład, w tabeli przechowującej informacje o klientach, każda krotka mogłaby zawierać dane takie jak imię, nazwisko, adres e-mail i numer telefonu. Wartości te są ze sobą powiązane i tworzą kompletny zestaw informacji dotyczący jednego klienta. Zgodnie z normami SQL, krotki są często przetwarzane za pomocą instrukcji SELECT, które umożliwiają pobieranie, modyfikację i zarządzanie danymi na poziomie pojedynczych wierszy. Krotki są nie tylko podstawą struktury danych, ale również fundamentem, na którym opierają się operacje na bazach danych, co czyni je kluczowym pojęciem w projektowaniu oraz zarządzaniu relacyjnymi bazami danych.

Pytanie 30

Który z elementów relacyjnej bazy danych, zapisany w języku SQL, może być wykorzystany w zapytaniach modyfikujących kolumny danych udostępnione jako tabela, niezależnie od tego, czy jest stworzony programowo, czy dynamicznie?

A. Trigger
B. Procedura składowa
C. Zasada
D. Funkcja zdefiniowana
Funkcja zdefiniowana przez użytkownika (UDF) w języku SQL jest obiektem bazy danych, który może być wykorzystywany w zapytaniach, w tym w zapytaniach modyfikujących kolumny danych. UDF mogą przyjmować argumenty, wykonywać operacje na tych danych i zwracać wynik, co czyni je wszechstronnym narzędziem w programowaniu baz danych. Użycie funkcji zdefiniowanej zwiększa modularność kodu oraz umożliwia ponowne wykorzystanie logiki biznesowej, co jest zgodne z zasadami DRY (Don't Repeat Yourself). Przykładem zastosowania może być funkcja, która oblicza rabat na podstawie ceny i procentu rabatu, co można wywołać w zapytaniach aktualizujących ceny produktów. Warto również zauważyć, że UDF mogą być używane w kontekście różnych zapytań, a ich wyniki mogą być przetwarzane jak każda inna kolumna w wynikach zapytań. Dzięki temu programiści mogą łatwo implementować bardziej złożoną logikę bezpośrednio w zapytaniach SQL, co jest zgodne z najlepszymi praktykami w zakresie zarządzania danymi.

Pytanie 31

Aby utworzyć tabelę w języku SQL, należy użyć polecenia

A. ADD TABLE
B. CREATE TABLE
C. ALTER TABLE
D. INSERT TABLE
Odpowiedź 'CREATE TABLE' jest poprawna, ponieważ w języku SQL to polecenie jest używane do tworzenia nowych tabel w bazie danych. Umożliwia definiowanie struktury tabeli, w tym nazw kolumn, typów danych oraz ograniczeń, takich jak klucze główne czy unikalność. Przykładowe użycie polecenia 'CREATE TABLE' może wyglądać następująco: 'CREATE TABLE pracownicy (id INT PRIMARY KEY, imie VARCHAR(50), nazwisko VARCHAR(50));'. W tym przykładzie tworzymy tabelę 'pracownicy' z trzema kolumnami: 'id', 'imie' oraz 'nazwisko'. Warto zaznaczyć, że zgodnie z najlepszymi praktykami, przed wykonaniem polecenia warto sprawdzić, czy tabela o danej nazwie już istnieje, aby uniknąć błędów związanych z podwójnym tworzeniem. Zapewnienie odpowiedniej struktury bazy danych już na etapie jej tworzenia przekłada się na lepszą wydajność oraz łatwiejsze zarządzanie danymi w przyszłości.

Pytanie 32

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

A. Projektanci i programiści Systemu Zarządzania Bazą Danych
B. Twórcy narzędzi dla deweloperów
C. Administratorzy systemu bazy danych
D. Administratorzy serwerów oraz sieci komputerowych
Wybór projektantów narzędzi deweloperskich jako odpowiedzialnych za przygotowanie systemu bazy danych do pracy produkcyjnej jest błędny, ponieważ ich głównym zadaniem jest projektowanie i rozwijanie narzędzi oraz aplikacji, które ułatwiają proces tworzenia oprogramowania. Nie zajmują się oni bezpośrednio zarządzaniem bazami danych, lecz tworzą rozwiązania, które mogą być wykorzystywane przez administratorów baz danych. Z kolei administratorzy serwerów i sieci komputerowych koncentrują się na zarządzaniu infrastrukturą sieciową i serwerową, co obejmuje utrzymanie sprzętu oraz zapewnienie jego dostępności i wydajności. Ich praca jest istotna dla ogólnego funkcjonowania systemów, ale nie zajmują się oni bezpośrednio bazami danych ani nie zarządzają nimi. Ostatnia grupa, czyli projektanci i programiści Systemu Zarządzania Bazą Danych, koncentruje się na tworzeniu oprogramowania do zarządzania bazą danych oraz na jego rozwoju. Choć ich praca jest niezbędna w kontekście tworzenia funkcjonalności bazy danych, to nie odpowiadają oni za codzienne zarządzanie i utrzymanie działającego systemu. Dlatego też tylko administratorzy systemu bazy danych są odpowiedzialni za ciągłe przygotowanie systemu do pracy produkcyjnej oraz zarządzanie użytkownikami.

Pytanie 33

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_num_rows
C. mysqli_connect
D. mysqli_query
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 34

Wykonanie następującego polecenia PHP umożliwia:

$zapytanie = mysqli_query($db, "UPDATE ...");
A. dodanie nowych danych do bazy
B. zmianę danych w bazie
C. pobranie danych z bazy
D. zmianę struktury bazy
Polecenie PHP mysqli_query z użyciem instrukcji SQL UPDATE służy do modyfikacji danych w bazie danych. Funkcja mysqli_query umożliwia wykonywanie zapytań SQL na połączeniu z bazą danych reprezentowanym przez zmienną $db. Instrukcja UPDATE jest stosowana do aktualizacji istniejących rekordów w tabeli w bazie danych. Przykładowo, jeśli chcesz zaktualizować pole nazwa w tabeli użytkownicy, możesz użyć polecenia UPDATE users SET name='NowaNazwa' WHERE id=1. To podejście umożliwia dynamiczne zarządzanie danymi, co jest kluczowe w aplikacjach internetowych wymagających bieżącej aktualizacji informacji. W praktyce należy pamiętać o dobrych praktykach, takich jak walidacja danych wejściowych i zabezpieczenie przed atakami SQL injection, np. poprzez stosowanie przygotowanych zapytań. Aktualizowanie danych w bazie to jedna z podstawowych operacji CRUD (Create Read Update Delete), które są fundamentem zarządzania danymi w większości aplikacji obsługujących bazy danych. Poprawne użycie tej funkcji wymaga zrozumienia struktury SQL i znajomości specyfiki używanego systemu zarządzania bazą danych.

Pytanie 35

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

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

Pytanie 36

Aby posortować listę uczniów według daty urodzenia w bazie danych, jakie polecenie należy zastosować?

A. SELECT imie,nazwisko,klasa from uczniowie order by nazwisko
B. SELECT imie,nazwisko,klasa from uczniowie where rok_urodzenia = 1994
C. SELECT imie,nazwisko,klasa from uczniowie order by rok_urodzenia
D. SELECT imie,nazwisko,klasa from uczniowie group by rok_urodzenia
Wybór pierwszej odpowiedzi nie jest właściwy, ponieważ ogranicza on wyniki do uczniów, którzy urodzili się w konkretnym roku, czyli 1994. Takie podejście nie pozwala na uzyskanie pełnej listy uczniów w kolejności ich roku urodzenia, a jedynie wyświetla tych z jednego, wybranego roku. Zatem nie spełnia ono wymogu uporządkowania całej listy według roku urodzenia. Kolejna odpowiedź, która sugeruje użycie klauzuli 'GROUP BY' na kolumnie 'rok_urodzenia', również jest niepoprawna. Klauzula ta służy do agregacji danych i grupowania ich na podstawie wartości w danej kolumnie, a nie do sortowania. Może to prowadzić do utraty informacji, gdyż zwraca jedynie jedną pozycję dla każdej unikalnej wartości w kolumnie, co nie umożliwia analizy szczegółowej. Co więcej, ostatnia odpowiedź, która proponuje sortowanie według nazwiska, jest całkowicie nieadekwatna do zadania. Sortowanie uczniów według nazwiska nie odnosi się do roku urodzenia, co było celem pytania. Takie działanie może prowadzić do zamieszania w wynikach, a uczniowie nie będą uporządkowani w sposób, który odpowiada ich wieku. Wszystkie te odpowiedzi nie spełniają zatem wymagań dotyczących sortowania i analizy danych w kontekście roku urodzenia.

Pytanie 37

Formularz główny używany do poruszania się w bazie danych pomiędzy formularzami i kwerendami dostępnymi w systemie określany jest jako formularz

A. pierwotnym
B. zagnieżdżonym
C. głównym
D. sterującym
Formularz sterujący jest kluczowym elementem w systemach baz danych, pełniącym funkcję nawigacyjną pomiędzy różnymi formularzami i kwerendami. Jego głównym zadaniem jest umożliwienie użytkownikowi łatwego dostępu do różnych części aplikacji, co zwiększa efektywność i intuicyjność pracy. Dobre praktyki w projektowaniu interfejsów użytkownika sugerują, aby formularze sterujące były przejrzyste i estetyczne, co ułatwia orientację w systemie. Przykładem zastosowania formularza sterującego może być aplikacja zarządzająca danymi klientów, gdzie użytkownik może za pomocą jednego formularza przeskakiwać pomiędzy zleceniami, danymi kontaktowymi oraz fakturami. Takie podejście nie tylko oszczędza czas, ale także redukuje ryzyko pomyłek. Warto również pamiętać, że formularze sterujące powinny być zgodne z zasadami użyteczności i dostępności, aby były dostępne dla jak najszerszej grupy użytkowników, w tym osób z niepełnosprawnościami.

Pytanie 38

Przyjmując, że użytkownik Adam nie miał dotychczas żadnych uprawnień, polecenie SQL przyzna mu prawa jedynie do

GRANT CREATE, ALTER ON sklep.* TO adam;
A. tworzenia oraz modyfikowania struktury w tabeli sklep
B. dodawania i modyfikacji danych w tabeli sklep
C. tworzenia i zmiany struktury wszystkich tabel w bazie sklep
D. dodawania i modyfikacji danych we wszystkich tabelach bazy sklep
Ta odpowiedź nie jest właściwa, bo dotyczy wstawiania i zmieniania danych w tabeli 'sklep', a tak naprawdę polecenie SQL daje tylko uprawnienia do zmiany struktury tabel, nie do danych w środku. Do wstawiania danych potrzebne jest użycie komendy 'INSERT', której tutaj w ogóle nie ma. Jak ktoś ma tylko prawa do tworzenia i zmiany struktury tabel, to nie może dodać ani zmienić danych, a to jest kluczowe do operacji na danych. I jeszcze jedno – odpowiedzi, które mówią o ograniczeniu do jednej tabeli, też są błędne, bo 'sklep.*' dotyczy wszystkich tabel w bazie. Ważne, żeby rozróżniać te uprawnienia, bo często ludzie mylą uprawnienia do zarządzania strukturą tabel z możliwościami operacji na danych. To zrozumienie różnic jest kluczowe dla bezpiecznego zarządzania bazami danych i trzymania się zasady minimalnych uprawnień, co jest naprawdę dobrą praktyką w świecie bezpieczeństwa informatycznego.

Pytanie 39

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

A. SELECT nazwisko FROM klienci LIMIT 3
B. SELECT nazwisko FROM klienci ORDER BY punkty DESC LIMIT 3
C. SELECT nazwisko FROM klienci ORDER BY nazwisko DESC LIMIT 3
D. SELECT LIMIT 3 nazwisko FROM klienci ORDER BY nazwisko DESC
Wybór kwerendy SELECT nazwisko FROM klienci ORDER BY punkty DESC LIMIT 3 jest poprawny, ponieważ wykorzystuje klauzulę ORDER BY w celu posortowania wyników na podstawie kolumny 'punkty' w porządku malejącym. Dzięki temu, najpierw wyświetlone zostaną rekordy z najwyższą liczbą punktów. Zastosowanie LIMIT 3 oznacza, że z całej posortowanej listy, wybierane są jedynie trzy rekordy, co idealnie odpowiada wymaganiu znalezienia trzech najlepszych klientów. Takie podejście jest zgodne z dobrymi praktykami w programowaniu SQL, ponieważ pozwala na precyzyjne wydobycie danych z bazy, a także na efektywne zarządzanie wynikami zapytań. Przykład zastosowania to sytuacja, gdy firma chce nagrodzić swoich najlepszych klientów na podstawie ich aktywności, co może przyczynić się do zwiększenia ich lojalności. W kontekście analizy danych, zrozumienie, jak korzystać z klauzul ORDER BY i LIMIT, jest kluczowe dla optymalizacji zapytań oraz interpretacji wyników.

Pytanie 40

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

A. DATE
B. BOOLEAN
C. TIMESTAMP
D. YEAR
Odpowiedzi DATE, YEAR i BOOLEAN są niewłaściwe w kontekście przechowywania zarówno daty, jak i czasu w bazie danych MySQL. DATE jest typem danych, który przechowuje tylko datę, bez informacji o godzinie. Użycie DATE oznaczałoby utratę ważnych informacji o czasie, co może być istotne w wielu aplikacjach, na przykład w systemach rejestracji zdarzeń. YEAR, z kolei, jest ograniczonym typem danych, który służy jedynie do przechowywania roku. Oznacza to, że nie może być użyty do rejestrowania pełnej daty ani czasu, co jest niewystarczające w przypadku wielu praktycznych zastosowań. BOOLEAN to typ danych, który przechowuje jedynie wartości logiczne (prawda/fałsz) i nie ma zastosowania w kontekście daty i czasu. Typowe błędy myślowe, które mogą prowadzić do wyboru niewłaściwych typów danych, obejmują myślenie, że daty i czasy można zrealizować oddzielnie, co w praktyce może prowadzić do problemów z synchronizacją i zarządzaniem danymi. Właściwe rozumienie dostępnych typów danych w MySQL jest kluczowe dla efektywnego projektowania baz danych i zapewnienia ich integralności.