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: 10 kwietnia 2026 09:50
  • Data zakończenia: 10 kwietnia 2026 09:51

Egzamin niezdany

Wynik: 15/40 punktów (37,5%)

Wymagane minimum: 20 punktów (50%)

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

Jakie polecenie wydane z terminala systemu operacyjnego, które zawiera opcję --repair, pozwala na naprawę bazy danych?

A. truncate
B. create
C. mysqlcheck
D. mysqldump
Zarówno mysqldump, truncate, jak i create stanowią istotne polecenia w zarządzaniu bazami danych, ale nie mają one zdolności do naprawy uszkodzonych tabel. Mysqldump to narzędzie służące do eksportowania danych z bazy do pliku, co jest przydatne w kontekście tworzenia kopii zapasowych, ale nie oferuje funkcji naprawy uszkodzonych tabel. Funkcjonalność mysqldump koncentruje się na zabezpieczaniu danych, a nie na ich naprawie. Truncate, z kolei, to polecenie, które służy do usuwania wszystkich rekordów z tabeli bez rejestrowania pojedynczych operacji usunięcia w dzienniku transakcji, co sprawia, że jest to szybki sposób na opróżnienie tabeli, lecz nie ma zastosowania w kontekście naprawy uszkodzonych danych. Create to polecenie wykorzystywane do tworzenia nowych baz danych lub tabel, co jest podstawową operacją w zarządzaniu bazami danych, ale nie ma związku z naprawą istniejących struktur danych. Dlatego te narzędzia pełnią różne role w ekosystemie MySQL, ale nie są odpowiednie do rozwiązywania problemów z uszkodzonymi tabelami, co czyni mysqlcheck jedynym właściwym rozwiązaniem w tej sytuacji.

Pytanie 2

Aby zliczyć wszystkie wiersze w tabeli Koty, należy wykorzystać zapytanie

A. SELECT ROWNUM() FROM Koty
B. SELECT COUNT(*) FROM Koty
C. SELECT COUNT(Koty) AS ROWNUM
D. SELECT COUNT(ROWNUM) FROM Koty
W przypadku pierwszej niepoprawnej odpowiedzi, SELECT ROWNUM() FROM Koty, należy zaznaczyć, że ROWNUM jest funkcją specyficzną dla baz danych Oracle, która zwraca numer wiersza dla każdego wiersza wynikowego zapytania. Funkcja ta nie może być używana do zliczania wierszy, ponieważ nie zwraca liczby wierszy, a jedynie ich numerację. W rezultacie, zapytanie to nie spełnia wymagań dotyczących zliczania wszystkich wierszy w tabeli. Kolejna odpowiedź, czyli SELECT COUNT(Koty) AS ROWNUM, również jest błędna, ponieważ COUNT(Koty) zlicza nie NULL-owe wartości w kolumnie o nazwie Koty, a nie całkowitą liczbę wierszy w tabeli. Jeśli tabela Koty zawiera kolumny z wartościami NULL, to wynik tego zapytania będzie mniejszy niż oczekiwana całkowita liczba wierszy. Ostatnia niepoprawna odpowiedź, SELECT COUNT(ROWNUM) FROM Koty, jest myląca, ponieważ ROWNUM nie jest kolumną ani funkcją, którą można zliczać. Odwołuje się ponownie do numeracji wierszy, a COUNT(ROWNUM) nie ma sensu w kontekście zliczania rekordów w tabeli, co prowadzi do błędnych obliczeń. Każda z tych odpowiedzi nie tylko nie realizuje założonego celu zliczania wierszy, ale może także wprowadzać w błąd osoby pracujące z SQL, sugerując zastosowanie niewłaściwych metod.

Pytanie 3

Przykład zapytania SQL przedstawia instrukcję:

UPDATE katalog SET katalog.cena = [cena]*1.1;
A. krzyżowej
B. dołączającej
C. usuwającej
D. aktualizującej
Instrukcja SQL przedstawiona w pytaniu używa słowa kluczowego UPDATE co jest charakterystyczne dla kwerend aktualizujących. Komenda ta modyfikuje istniejące dane w tabeli poprawiając je zgodnie z podanymi kryteriami. W tym przykładzie wszystkie wartości w kolumnie cena tabeli katalog są zwiększane o 10 procent co jest typowym zastosowaniem instrukcji aktualizującej. W praktyce takie zmiany są niezbędne w przypadku modyfikacji cen produktów lub aktualizacji informacji biznesowych. Stosowanie kwerend aktualizujących wymaga zachowania szczególnej ostrożności aby nie naruszyć integralności danych. Dobre praktyki obejmują przygotowanie backupu danych przed wykonaniem operacji oraz przetestowanie kwerendy na mniejszym zbiorze danych w celu uniknięcia błędów. Aktualizacja danych to jedna z najczęstszych operacji w systemach bazodanowych dlatego zrozumienie mechanizmu działania kwerend SQL tego typu jest kluczowe dla efektywnego zarządzania danymi w każdej organizacji. SQL jako język deklaratywny umożliwia łatwe definiowanie co chcemy osiągnąć bez konieczności szczegółowego opisywania jak to zrobić co ułatwia pracę z dużymi i złożonymi zbiorami danych.

Pytanie 4

Uprawnienia obiektowe przyznawane użytkownikom serwera bazy danych mogą umożliwiać lub ograniczać

A. zmieniać role i konta użytkowników
B. wykonywać polecenia, takie jak tworzenie kopii zapasowej
C. realizować operacje na bazie, takie jak wstawianie lub modyfikowanie danych
D. przechodzić uprawnienia
Uprawnienia obiektowe w systemach baz danych są kluczowym aspektem zarządzania bezpieczeństwem i dostępem do danych. Odpowiedzi dotyczące modyfikacji ról i kont użytkowników, dziedziczenia uprawnień czy wykonywania instrukcji takich jak tworzenie kopii zapasowej, nie odnoszą się bezpośrednio do istoty uprawnień obiektowych. Modyfikacja ról i kont użytkowników jest zazwyczaj związana z uprawnieniami administracyjnymi, a nie obiektowymi. Role i konta użytkowników są koncepcjami wyższego poziomu, które służą do grupowania uprawnień i nie są zazwyczaj zarządzane na poziomie obiektów. Dziedziczenie uprawnień jest bardziej złożonym mechanizmem, który dotyczy hierarchii obiektów i nie jest bezpośrednio związane z podstawowym pojęciem uprawnień obiektowych. Ponadto, wykonywanie instrukcji takich jak tworzenie kopii zapasowej, to działanie administracyjne, które zazwyczaj wymaga odrębnych uprawnień niż te, które dotyczą operacji na danych. Typowym błędem jest pomylenie uprawnień obiektowych z uprawnieniami administracyjnymi, co prowadzi do nieporozumień w zakresie ich zastosowania oraz w kontekście bezpieczeństwa danych. Właściwe zrozumienie tych różnic jest kluczowe dla skutecznego zarządzania dostępem w bazach danych oraz dla zapewnienia ich bezpieczeństwa i integralności.

Pytanie 5

Podana jest tabela psy z polami: imie, rasa, telefon_wlasciciela, rok_szczepienia. Jakie polecenie SQL należy zastosować, aby znaleźć numery telefonów właścicieli, których psy były szczepione przed rokiem 2015?

A. SELECT telefon_wlasciciela FROM psy WHERE rok_szczepienia > 2015
B. SELECT telefon_wlasciciela FROM psy WHERE rok_szczepienia < 2015
C. SELECT imie, rasa FROM psy WHERE rok_szczepienia > 2015
D. SELECT psy FROM rok_szczepienia < 2015
Niepoprawne odpowiedzi zawierają różne błędy, które mogą wynikać z nieporozumienia dotyczącego składni SQL i logiki zapytań. W pierwszej odpowiedzi, zapytanie 'SELECT psy FROM rok_szczepienia < 2015;' jest błędne, ponieważ nie stosuje poprawnej struktury SELECT. Nie można używać klauzuli FROM jako warunku; należy ją stosować do określenia tabeli, z której chcemy pobrać dane. Prawidłowa konstrukcja wymagałaby zastosowania klauzuli WHERE do określenia kryteriów selekcji. Z drugiej strony, zapytanie 'SELECT imie, rasa FROM psy WHERE rok_szczepienia > 2015;' nie spełnia wymogu, ponieważ zamiast telefony właścicieli, zwraca inne dane, co jest sprzeczne z założonym celem. Ponadto, operator '>' jest niewłaściwy w tym kontekście, ponieważ interesują nas psy szczepione przed 2015 rokiem, a nie później. Ostatnia odpowiedź, 'SELECT telefon_wlasciciela FROM psy WHERE rok_szczepienia > 2015;', także nie spełnia wymogu, ponieważ ponownie dotyczy psów zaszczepionych po 2015 roku. Typowym błędem w takich sytuacjach jest nieodpowiednie zrozumienie logiki negacji w warunkach SQL oraz mylenie operatorów porównania. Kluczowe w SQL jest precyzyjne określenie, jakich danych potrzebujemy, co wymaga dobrej znajomości zarówno struktury bazy danych, jak i zasad działania zapytań. To podkreśla znaczenie staranności w formułowaniu zapytań oraz konieczność dokładnego przemyślenia ich logiki.

Pytanie 6

Podczas wykonywania zapytania można skorzystać z klauzuli DROP COLUMN

A. ALTER COLUMN
B. DROP TABLE
C. ALTER TABLE
D. CREATE TABLE
Pozostałe odpowiedzi odzwierciedlają nieprawidłowe zrozumienie kontekstu zapytań SQL i ich zastosowania. DROP TABLE jest poleceniem służącym do usunięcia całej tabeli, co oznacza, że wszystkie dane w tej tabeli zostaną bezpowrotnie skasowane. To podejście odnosi się do całkowitego likwidowania tabeli, a nie pojedynczych kolumn, co czyni je nieadekwatnym w kontekście zadania. W podobny sposób, ALTER COLUMN to niepoprawne określenie, ponieważ polecenie ALTER TABLE używa się do modyfikacji kolumn, a nie do ich usuwania. Użycie ALTER COLUMN wymagałoby określenia jakiejś zmiany w strukturze kolumny, a pytanie dotyczy usunięcia kolumny, co jest realizowane poprzez DROP COLUMN. Z kolei CREATE TABLE jest używane do tworzenia nowych tabel, co również jest niezgodne z wymaganiami pytania, które dotyczy modyfikacji istniejącej struktury. Te błędne wybory mogą wynikać z mylenia pojęć związanych z działaniem na bazach danych oraz z braku zrozumienia, jak odpowiednie polecenia SQL są stosowane w praktyce. Kluczowe jest zrozumienie, że każde z wymienionych poleceń ma swoje specyficzne zastosowanie, a ich pomylenie prowadzi do nieefektywnego zarządzania danymi.

Pytanie 7

Jaką klauzulę należy wykorzystać w instrukcji CREATE TABLE w SQL, by dane pole rekordu pozostawało wypełnione?

A. NOT NULL
B. CHECK
C. NULL
D. DEFAULT
Odpowiedź 'NOT NULL' jest poprawna, ponieważ klauzula ta jest używana w SQL do definiowania, że dane pole w tabeli nie może przyjmować wartości NULL, co oznacza, że musi zawierać jakąś wartość. Użycie klauzuli NOT NULL jest kluczowe w zapewnieniu integralności danych, szczególnie w sytuacjach, gdy brak wartości w danym polu może prowadzić do błędów w logice aplikacji lub nieprawidłowych wyników zapytań. Na przykład, w przypadku tworzenia tabeli dla użytkowników w systemie, pole 'email' powinno być oznaczone jako NOT NULL, aby zapobiec sytuacji, w której użytkownik mógłby zostać dodany bez podania adresu e-mail, co uniemożliwiłoby kontaktowanie się z nim. Dobrą praktyką jest również stosowanie klauzuli NOT NULL tam, gdzie dane są wymagane do poprawnego działania aplikacji. Użycie tej klauzuli jest zgodne z zasadami normalizacji baz danych, które z kolei mają na celu redukcję redundancji i poprawę integralności danych.

Pytanie 8

Baza danych 6-letniej szkoły podstawowej zawiera tabelę szkola z polami: imie, nazwisko oraz klasa. Uczniowie z klas 1-5 przeszli do wyższej klasy. Jakie polecenie należy użyć, aby zwiększyć wartość w polu klasa o 1?

A. SELECT szkola FROM klasa=klasa+1 WHERE klasa >=1 AND klasa <=5
B. UPDATE szkola SET klasa=klasa+1 WHERE klasa>=1 AND klasa <=5
C. SELECT nazwisko, imie FROM klasa=klasa+1 WHERE klasa>1 OR klasa <5
D. UPDATE nazwisko, imie SET klasa=klasa+1 WHERE klasa>1 OR klasa<5
W analizie błędnych odpowiedzi należy zwrócić uwagę na nieprawidłowości w składni i logice zapytań. Pierwsza odpowiedź sugeruje użycie 'UPDATE nazwisko, imie SET klasa=klasa+1 WHERE klasa>1 OR klasa<5;', co jest niepoprawne, ponieważ 'UPDATE' powinno odnosić się do całej tabeli, a nie do pojedynczych pól. Ponadto warunki w klauzuli 'WHERE' są zbyt ogólne, co skutkowałoby aktualizacją uczniów, którzy nie zdali do kolejnej klasy. Druga odpowiedź zawiera poprawną strukturę, ale użycie 'SELECT szkola FROM klasa=klasa+1 WHERE klasa >=1 AND klasa <=5;' jest błędne, gdyż 'SELECT' nie jest odpowiednie do aktualizacji danych - powinno być użyte 'UPDATE'. Ostatnia propozycja również myli pojęcia, stosując 'SELECT' zamiast 'UPDATE', co skutkuje próbą odczytania danych, zamiast ich aktualizacji. Typowym błędem myślowym jest mylenie tych dwóch komend w SQL, co prowadzi do nieporozumień w zakresie manipulacji danymi. Kluczowe jest zrozumienie, że 'UPDATE' jest używane do zmiany istniejących rekordów, podczas gdy 'SELECT' służy do pobierania danych. Aby uniknąć takich błędów, ważne jest, aby zrozumieć funkcje i zastosowania różnych poleceń SQL oraz praktykować ich wykorzystanie w rzeczywistych scenariuszach.

Pytanie 9

Na zakończenie dnia w systemie zarządzania magazynem sklepu spożywczego generowany jest raport, który przedstawia produkty oraz ich dostawców, dla których ilość na stanie jest mniejsza niż 10 sztuk. Do stworzenia tego raportu zastosowano kwerendę

A. CHECK TABLE
B. UPDATE
C. INSERT INTO
D. SELECT
Odpowiedzi takie jak CHECK TABLE, UPDATE i INSERT INTO są niewłaściwe w kontekście opisywanego raportu. CHECK TABLE jest komendą używaną do sprawdzania integralności tabel w bazie danych, ale nie ma zastosowania w kontekście generowania raportów. Nie umożliwia ona pobierania danych ani ich analizowania, co jest kluczowe w przypadku raportowania stanów magazynowych. Z kolei UPDATE to polecenie, które służy do modyfikowania istniejących rekordów w bazie danych. Chociaż może być użyteczne w sytuacjach, gdy chcemy zaktualizować ilość produktów w magazynie, nie ma zastosowania w kontekście generowania raportu, ponieważ nie jest to operacja mająca na celu odczyt danych. Tak samo INSERT INTO jest używane do dodawania nowych rekordów do tabeli. W przypadku raportu, którego celem jest analizy danych, to podejście nie jest ani odpowiednie, ani praktyczne. Typowym błędem w myśleniu jest mylenie operacji manipulacji danymi z operacjami odczytu. W kontekście efektywnego zarządzania bazami danych, kluczowe jest zrozumienie, że każda z tych kwerend ma swoje specyficzne zastosowania, a w przypadku raportowania stanów magazynowych jedynie kwerenda SELECT jest odpowiednia, ponieważ umożliwia wydobycie i analizę danych zgodnie z zdefiniowanymi kryteriami.

Pytanie 10

Instrukcja ```REVOKE SELECT ON nazwa1 FROM nazwa2``` w SQL pozwala na

A. przyznawanie dostępu do tabeli
B. odbieranie przyznanych uprawnień użytkownikowi
C. przyznawanie uprawnień zgodnie z określonym schematem
D. usunięcie użytkownika z bazy danych
Odpowiedzi sugerujące nadawanie uprawnień są błędne, ponieważ REVOKE jest poleceniem służącym do odbierania, a nie przyznawania praw. Nadawanie uprawnień w SQL realizowane jest za pomocą komendy GRANT, która działa w odwrotny sposób, przyznając określone uprawnienia użytkownikom. W kontekście bezpieczeństwa danych, mylenie tych dwóch operacji może prowadzić do poważnych luk w zabezpieczeniach systemu baz danych. Użytkownicy mogą czasami myśleć, że REVOKE może być używane do usuwania praw, ale dotyczy to tylko odbierania wcześniejszych przyznanych uprawnień, a nie nadawania ich. Dodatkowo, są też odpowiedzi, które nawiązują do usuwania użytkownika z bazy danych; tego nie można osiągnąć za pomocą REVOKE, ponieważ to polecenie nie zajmuje się zarządzaniem samymi kontami użytkowników, a jedynie ich uprawnieniami. Ważne jest, aby znać różnice między tymi operacjami oraz ich zastosowanie w praktyce. Nieprawidłowe zrozumienie tych koncepcji może prowadzić do nieefektywnego zarządzania dostępem, co w konsekwencji naraża system na nieautoryzowany dostęp i potencjalne wycieki danych. Dlatego kluczowe jest, aby każdy administrator baz danych miał solidne podstawy dotyczące zarządzania uprawnieniami i stosował odpowiednie praktyki w codziennej pracy.

Pytanie 11

Klucz obcy w tabeli jest ustanawiany w celu

A. zapewnić jednoznaczną identyfikację rekordu w tabeli
B. określić relację 1..n powiązującą go z kluczem głównym innej tabeli
C. opracować formularz do wprowadzania danych do tabeli
D. wiązać go z innymi kluczami obcymi w tabeli
Klucz obcy jest często mylony z innymi elementami bazy danych, co prowadzi do nieprawidłowych wniosków na temat jego funkcji. Nie jest to mechanizm do łączenia go z innymi kluczami obcymi tabeli, co sugeruje pierwsza odpowiedź. Zamiast tego, klucz obcy ma na celu ustanowienie relacji między tabelami, co jest znacząco różne. Proces tworzenia formularzy do wprowadzania danych również nie jest bezpośrednio związany z funkcją klucza obcego. Formularze są narzędziem interfejsu użytkownika, które pozwala na wprowadzanie danych, ale nie wpływają na relacje między danymi w bazie. Ponadto, chociaż klucz obcy może wspierać identyfikację rekordu, jego główną rolą nie jest jednoznaczne wskazywanie na rekord w obrębie tej samej tabeli, lecz raczej wskazywanie na rekord w innej tabeli. Tego rodzaju nieporozumienia wynikają z braku zrozumienia zasad modelowania danych oraz relacji 1..1 i 1..n, co jest podstawą projektowania baz danych. Klucz obcy jest kluczowym elementem w relacyjnych bazach danych, a jego prawidłowe zrozumienie jest niezbędne do efektywnego korzystania z systemów zarządzania danymi.

Pytanie 12

Kiedy należy wykorzystać kwerendę SELECT DISTINCT, aby wyodrębnić rekordy?

A. pogrupowane.
B. tak, aby w podanej kolumnie nie powtarzały się wartości.
C. występujące w bazie tylko raz.
D. posortowane malejąco lub rosnąco.
Kwerenda SELECT DISTINCT jest używana do zwracania unikalnych wartości w określonej kolumnie z tabeli w bazie danych. Gdy mamy do czynienia z dużymi zbiorami danych, często zdarza się, że te same wartości pojawiają się wielokrotnie. W takich sytuacjach, aby uzyskać tylko jedną wystąpienie każdej wartości, stosujemy klauzulę DISTINCT. Na przykład, jeśli chcemy uzyskać listę unikalnych miast z tabeli klientów, używamy zapytania: SELECT DISTINCT city FROM customers. To zwraca wszystkie różne wartości miast, które znajdują się w tej tabeli. Użycie DISTINCT może również pomóc w optymalizacji wyników serwisu, redukując ilość danych, które muszą być przetwarzane w dalszych analizach. W praktyce, stosowanie DISTINCT w kontekście tworzenia raportów lub analizy danych jest kluczowe, gdyż pozwala na skupienie się na istotnych informacjach bez zbędnych duplikatów, co jest zgodne z dobrymi praktykami w zarządzaniu danymi.

Pytanie 13

Baza danych 6-letniej szkoły podstawowej zawiera tabelę uczniowie z kolumnami: imie, nazwisko, klasa. Wszyscy uczniowie w klasach 1 - 5 zaliczyli do następnej klasy. Aby zwiększyć wartość w kolumnie klasa o 1, należy wykorzystać następujące polecenie

A. UPDATE nazwisko, imie SET klasa=klasa+1 WHERE klasa>1 OR klasa<5;
B. SELECT nazwisko, imie FROM klasa=klasa+1 WHERE klasa>1 OR klasa<5;
C. SELECT uczniowie FROM klasa=klasa+1 WHERE klasa>=1 AND klasa<=5;
D. UPDATE uczniowie SET klasa=klasa+1 WHERE klasa>=1 AND klasa<=5;
Poprawna odpowiedź to 'UPDATE szkola SET klasa=klasa+1 WHERE klasa>=1 AND klasa<=5;'. To polecenie SQL jest zgodne z praktykami stosowanymi do aktualizacji danych w bazach danych. Funkcja UPDATE służy do modyfikacji istniejących rekordów w tabeli. W tym przypadku chcemy zwiększyć wartość w kolumnie 'klasa' dla wszystkich uczniów, którzy są obecnie w klasach od 1 do 5. Warunek 'WHERE klasa>=1 AND klasa<=5' zapewnia, że tylko uczniowie z tych klas zostaną zaktualizowani, co jest zgodne z logiką biznesową wskazującą, że wszyscy uczniowie klas 1-5 zdali do następnej klasy. Dzięki temu mamy pewność, że operacja jest przeprowadzana w bezpieczny sposób, minimalizując ryzyko błędów w danych. W praktyce, takie operacje są często stosowane, np. na koniec roku szkolnego, gdy uczniowie przechodzą do wyższej klasy. Ponadto, w kontekście najlepszych praktyk, ważne jest, aby przed wykonaniem operacji UPDATE przeprowadzić odpowiednie zabezpieczenia, takie jak tworzenie kopii zapasowych danych, aby uniknąć utraty informacji.

Pytanie 14

Jakie rozwiązanie powinno być wdrożone w organizacji danych, aby przyspieszyć wykonanie zapytań w bazie danych?

A. Klucze podstawowe
B. Wartości domyślne
C. Reguły
D. Indeksy
Klucze podstawowe pełnią inną rolę w bazach danych niż indeksy. Służą one do jednoznacznej identyfikacji każdego wiersza w tabeli i zapewniają, że nie ma duplikatów danych. Choć klucze podstawowe mogą być automatycznie indeksowane przez system bazy danych, ich głównym celem jest zapewnienie integralności danych, a nie przyspieszanie wyszukiwania. Reguły, z drugiej strony, dotyczą logiki aplikacji i kontroli danych, ale nie wpływają na szybkość dostępu do danych. Mogą one być używane do walidacji danych przed ich zapisaniem w bazie, co jest ważne, lecz nie przyspiesza samego procesu wyszukiwania. Wartości domyślne definiują, jakie dane mają być wstawiane, gdy nie podano żadnej wartości, ale również nie mają wpływu na wydajność zapytań. Wszystkie te elementy mają swoje istotne miejsce w projektowaniu baz danych, jednak nie są bezpośrednio związane z optymalizacją szybkości zapytań jak to jest w przypadku indeksów. Często mylnie zakłada się, że klucze podstawowe i inne mechanizmy są wystarczające do poprawy wydajności, co może prowadzić do nieefektywnego projektowania i nieodpowiednich optymalizacji w systemie bazodanowym.

Pytanie 15

Na przedstawionej grafice widać fragment bazy danych. Jakie kwerendę należy zastosować, aby uzyskać nazwy produktów zakupionych przez klienta o id = 1?

Ilustracja do pytania
A. SELECT nazwa FROM produkty JOIN transakcje_produkty USING(nr_produktu) WHERE nr_klienta = 1
B. SELECT nazwa FROM produkty JOIN transakcje_produkty USING(nr_produktu) JOIN transakcje USING(nr_transakcji) WHERE nr_klienta = 1
C. SELECT nazwa FROM produkty JOIN transakcje_produkty JOIN transakcje WHERE nr_klienta = 1
D. SELECT nazwa FROM produkty JOIN transakcje ON nr_produktu = nr_klienta WHERE nr_klienta = 1
Prawidłowa odpowiedź używa właściwego połączenia tabel baz danych aby otrzymać nazwy produktów zakupionych przez klienta o konkretnym identyfikatorze. W SQL kwerenda z JOIN umożliwia łączenie danych z więcej niż jednej tabeli na podstawie wspólnego pola. W tym przypadku tabela produkty jest połączona z transakcje_produkty przez pole nr_produktu oraz tabela transakcje jest połączona z transakcje_produkty przez pole nr_transakcji. Dzięki temu możliwe jest uzyskanie pełnego obrazu transakcji dla klienta o id = 1. Zastosowanie USING(nr_produktu) i USING(nr_transakcji) upraszcza kwerendę eliminując konieczność jawnego określania kolumn po obu stronach klauzuli ON. Praktyczne zastosowanie takich kwerend jest podstawą w analizie danych sprzedażowych gdzie analiza historii zakupów klientów może dostarczyć cennych informacji dla działów marketingu oraz logistyki. Dobre praktyki obejmują również optymalizację zapytań SQL aby były jak najbardziej efektywne co jest kluczowe przy pracy z dużymi zbiorami danych.

Pytanie 16

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

SELECT imie FROM mieszkancy WHERE imie LIKE '_r%';
A. Arleta, Krzysztof, Krystyna, Tristan
B. Rafał, Rebeka, Renata, Roksana
C. Gerald, Jarosław, Marek, Tamara
D. Krzysztof, Krystyna, Romuald
Niepoprawne odpowiedzi wynikają z niezrozumienia działania klauzuli LIKE w SQL która umożliwia wyszukiwanie wzorców znakowych Wzorzec '_r%' użyty w zapytaniu oznacza że imię musi mieć dowolny znak na pierwszej pozycji a 'r' na drugiej oraz dowolną liczbę znaków po 'r' Niezgodne imiona w innych odpowiedziach nie spełniają tego wzorca gdyż mają inne litery na drugiej pozycji lub brakuje im odpowiedniej struktury na przykład imiona takie jak Rafał Rebeka czy Renata posiadają 'r' na pierwszej pozycji a Marek Jarosław i Romuald mają 'r' w dalszej części imienia Typowym błędem przy korzystaniu z LIKE jest mylne użycie symboli podkreślenia i procenta które mają różne znaczenia Podkreślenie oznacza dokładnie jedną dowolną literę podczas gdy procent może zastępować dowolną sekwencję liter Innym częstym nieporozumieniem jest próba używania LIKE tam gdzie bardziej odpowiednie byłyby inne funkcje tekstowe SQL jak na przykład SUBSTRING które umożliwiają bardziej precyzyjne operacje Kluczowe jest również zrozumienie znaczenia indeksowania dla optymalizacji zapytań LIKE i unikanie wzorców które mogą prowadzić do nieefektywnych pełnych skanów tabel co może znacząco wpłynąć na wydajność systemu

Pytanie 17

Jakim słowem kluczowym można zestawić wyniki dwóch zapytań SELECT, które operują na różnych tabelach, aby utworzyć jeden zbiór danych?

A. AS
B. JOIN
C. UNION
D. DISTINCT
Odpowiedzi takie jak JOIN, DISTINCT i AS są niepoprawne w kontekście łączenia wyników kwerend SELECT z różnych tabel w jeden zbiór. JOIN jest używane do łączenia rekordów z dwóch tabel na podstawie powiązania między nimi, co oznacza, że wymaga istnienia relacji między danymi, co nie jest przypadkiem w każdym scenariuszu, w którym chcemy połączyć wyniki. INCLUDES, które może być naturalnym skojarzeniem z łączeniem danych, nie pasuje do sytuacji, gdy kwerendy SELECT są niezależne od siebie. DISTINCT natomiast jest używane do eliminowania duplikatów z wyników jednej kwerendy, ale nie służy do łączenia wyników z różnych źródeł. Wreszcie, AS jest używane głównie do nadawania aliasów kolumnom lub tabelom, co nie ma zastosowania w kontekście łączenia wyników kwerend. Typowym błędem myślowym jest zakładanie, że każde słowo kluczowe związane z SELECT może być użyte do łączenia wyników, podczas gdy każde z nich ma swoje specyficzne zastosowanie i ograniczenia. Zrozumienie tych różnic jest kluczowe dla prawidłowego stosowania SQL w praktyce i tworzenia efektywnych zapytań, które zwracają oczekiwane wyniki.

Pytanie 18

Poniżej przedstawiono sposób obsługi:

<?php
if (!isset($_COOKIE[$nazwa]))
    echo "nie ustawiono!";
else
    echo "ustawiono, wartość: " . $_COOKIE[$nazwa];
?>
A. sesji
B. zmiennych tekstowych
C. ciasteczek
D. baz danych
Analizując przedstawione odpowiedzi, najpierw rozważmy zmienne tekstowe. Kod PHP nie odnosi się bezpośrednio do operacji na zmiennych tekstowych, które zazwyczaj obejmują manipulację ciągami znaków przy użyciu funkcji takich jak strlen czy str_replace. Kod dotyczy mechanizmu przechowywania danych między żądaniami HTTP, co nie jest typowe dla obsługi zmiennych tekstowych. Kolejna opcja to baza danych. Skrypty PHP często współpracują z bazami danych w celu przechowywania i pobierania danych, ale w tym przypadku żadna operacja na bazie danych nie jest wykonywana. Nie ma użytych funkcji typowych dla obsługi baz danych, takich jak mysqli_query czy PDO. Skrypt nie ustanawia połączenia z bazą danych ani nie wykonuje zapytań. Natomiast sesje to mechanizm do przechowywania danych o użytkownikach między żądaniami, ale działa inaczej niż ciasteczka. Sesje zwykle przechowują informacje na serwerze, a jedynie identyfikator sesji jest przechowywany po stronie klienta, często w ciasteczku, ale niekoniecznie. Kod nie wykorzystuje zmiennej $_SESSION, która jest typowa dla obsługi sesji. Każda z tych koncepcji ma swoje zastosowania i ograniczenia, jednak w kontekście przedstawionego kodu kluczowe jest zrozumienie, że podstawową operacją wykonywaną jest manipulacja ciasteczkami, co wyklucza inne podane rozwiązania i wskazuje na prawidłową odpowiedź jako na obsługę ciasteczek w PHP. Kod ilustruje prosty przykład sprawdzania i wyświetlania wartości ciasteczka, co jest podstawowym zastosowaniem tej technologii po stronie klienta.

Pytanie 19

Jakie prawa będzie miał użytkownik jan po wykonaniu poniższych poleceń na bazie danych?

GRANT ALL PRIVILEGES ON klienci TO jan;
REVOKE SELECT, INSERT, UPDATE, DELETE ON klienci FROM jan;
A. Będzie mógł zmieniać strukturę tabeli klienci
B. Będzie mógł przeszukiwać dane w tabeli klienci
C. Będzie mógł usuwać rekordy z tabeli klienci
D. Będzie mógł dodawać rekordy do tabeli klienci
Polecenie GRANT ALL PRIVILEGES ON klienci TO jan pozwala użytkownikowi jan na wykonywanie wszystkich operacji na tabeli klienci. Obejmuje to działania takie jak SELECT INSERT UPDATE DELETE oraz inne operacje strukturalne jak ALTER czy DROP. Następnie polecenie REVOKE SELECT INSERT UPDATE DELETE ON klienci FROM jan usuwa część tych uprawnień. Po wykonaniu tych poleceń jan zachowuje uprawnienia do zmiany struktury tabeli klienci czyli może wykonywać operacje takie jak ALTER. ALTER TABLE jest kluczowe w zarządzaniu bazą danych pozwalając na dodawanie lub usuwanie kolumn oraz modyfikację typów danych. W praktyce oznacza to że jan może np. dostosować strukturę danych do nowych wymagań biznesowych co jest ważnym aspektem elastycznego zarządzania bazą danych. Umiejętność zarządzania strukturą tabel jest ważną częścią administracji baz danych i powinna być wykonywana zgodnie z najlepszymi praktykami aby zapewnić integralność danych i wydajność systemu. Użytkownik powinien regularnie przeglądać i aktualizować dokumentację techniczną aby śledzić wszelkie zmiany w strukturze bazy danych

Pytanie 20

Jakie polecenie wykonane w systemowej konsoli umożliwi przywrócenie bazy danych?

A. mysqldump -u root -p baza > kopia.sql
B. mysql -u root -p baza > kopia.sql
C. mysqldump -u root -p baza < kopia.sql
D. mysql -u root -p baza < kopia.sql
Wszystkie inne odpowiedzi są niepoprawne, ponieważ z użyciem niewłaściwych poleceń z systemu MySQL. Pierwsze z tych poleceń, zamiast przywracać bazę danych, tworzy jej kopię zapasową, co nie odpowiada na zadane pytanie. Użycie 'mysqldump' z parametrami '-u root -p baza > kopia.sql' jest sposobem na eksport danych z bazy do pliku SQL, a nie na ich import. Kolejne polecenie sugeruje zastosowanie 'mysqldump' w kontekście przywracania, co jest również błędne, ponieważ 'mysqldump' jest narzędziem służącym do zrzutów, a nie importu. Z kolei ostatnie polecenie 'mysql -u root -p baza > kopia.sql' ponownie nie wykonuje przywracania, lecz zapisuje dane z bazy danych do pliku, co jest odwrotnością oczekiwanej operacji. W praktyce, błędne zastosowanie tych poleceń może prowadzić do poważnych konsekwencji, takich jak utrata danych czy niewłaściwe zarządzanie bazą danych. Dlatego kluczowe jest zrozumienie roli każdego z narzędzi dostępnych w MySQL oraz ich poprawne zastosowanie w różnych scenariuszach administracyjnych.

Pytanie 21

Aby stworzyć relację jeden do wielu, w tabeli po stronie wiele, co należy zdefiniować?

A. klucz obcy wskazujący na klucz obcy tabeli po stronie jeden
B. klucz obcy wskazujący na klucz podstawowy tabeli po stronie jeden
C. klucz sztuczny odnoszący się do kluczy podstawowych obu tabel
D. klucz podstawowy wskazujący na klucz podstawowy tabeli po stronie jeden
W kontekście relacji jeden do wielu w bazach danych, każda z podanych niepoprawnych opcji wprowadza w błąd odnośnie do zasady funkcjonowania kluczy obcych i ich roli w modelowaniu danych. Klucz obcy wskazujący na klucz obcy tabeli po stronie jeden jest konceptualnie błędny, ponieważ klucz obcy zawsze odnosi się do klucza podstawowego innej tabeli, a nie do innego klucza obcego. Taki układ narusza zasady referencyjności i integralności danych, co może prowadzić do trudności w utrzymaniu spójności w bazie. Kolejną niepoprawną opcją jest klucz sztuczny odnoszący się do kluczy podstawowych obu tabel. Klucze sztuczne, choć mogą być użyteczne w pewnych kontekstach, nie powinny być używane jako sposób tworzenia relacji, ponieważ nie odzwierciedlają naturalnych powiązań między danymi. Klucz podstawowy wskazujący na klucz podstawowy tabeli po stronie jeden również jest mylny, ponieważ w relacji jeden do wielu klucz podstawowy tabeli 'jeden' musi być referencjonowany przez klucz obcy w tabeli 'wiele', a nie odwrotnie. Te nieporozumienia mogą prowadzić do błędów projektowych w bazach danych, co w efekcie utrudnia ich rozwój i zarządzanie, szczególnie w dużych systemach, gdzie spójność danych jest kluczowa dla funkcjonowania aplikacji.

Pytanie 22

Jaki zapis jest używany do definiowania klucza obcego w MySQL?

A. AUTO_INCREMENT(ID)
B. FOREIGN KEY(ID)
C. UNIQUE KEY(ID)
D. PRIMARY KEY(ID)
Zrozumienie różnych typów kluczy w bazach danych jest kluczowe dla prawidłowego projektowania struktury danych. Zapis AUTO_INCREMENT(ID) jest używany do automatycznego zwiększania wartości klucza podstawowego w tabeli. Jest on przydatny, gdy chcemy, aby każda nowa pozycja miała unikalny identyfikator, jednak nie ma związku z kluczem obcym, który wymaga odniesienia do innej tabeli. UNIQUE KEY(ID) to inny typ klucza, który zapewnia, że wartości w danej kolumnie są unikalne, ale również nie pełni on roli klucza obcego i nie odnosi się do relacji między tabelami. Klucz podstawowy (PRIMARY KEY(ID)) jest używany do identyfikacji unikalnych rekordów w tabeli, zapewniając integralność danych, ale również nie może być użyty do ustanawiania relacji z innymi tabelami. Błąd w wyborze odpowiedzi, która nie jest kluczem obcym, ukazuje typowe nieporozumienia dotyczące roli różnych typów kluczy w bazach danych. Klucz obcy jest narzędziem do zapewnienia integralności referencyjnej, co oznacza, że wartości w jednej tabeli powinny odpowiadać wartościom w innej, co nie jest możliwe z zastosowaniem pozostałych typów kluczy. Dlatego niezwykle ważne jest, aby dokładnie znać funkcje i zastosowania różnych kluczy, co pozwala na właściwe modelowanie danych i unikanie błędów w relacjach między tabelami.

Pytanie 23

$z = mysqli_query($db, "SELECT ulica, miasto, kod_pocztowy FROM adresy");
$a = mysqli_fetch_row($z);
echo "$a[1], $a[2]";
W języku PHP zapisano fragment kodu działającego na bazie MySQL. Jego zadaniem jest wypisanie
A. ulicy i miasta ze wszystkich zwróconych rekordów
B. miasta i kodu pocztowego z pierwszego zwróconego rekordu
C. miasta i kodu pocztowego ze wszystkich zwróconych rekordów
D. ulicy i miasta z pierwszego zwróconego rekordu
Kod PHP wykonuje zapytanie do bazy danych przy użyciu funkcji mysqli_query co powoduje pobranie wszystkich rekordów z kolumn ulica miasto i kod_pocztowy z tabeli adresy jednak funkcja mysqli_fetch_row pobiera tylko pierwszy rekord z wynikowego zbioru danych. Jest to kluczowy aspekt ponieważ mysqli_fetch_row nie iteruje automatycznie przez wszystkie rekordy co jest częstym błędem w interpretacji działania tej funkcji. Często mylnie zakłada się że funkcja echo w połączeniu z pętlą może obsłużyć cały zestaw danych co w kontekście tego kodu nie ma miejsca ponieważ pętla nie została użyta. Zrozumienie działania funkcji takich jak mysqli_fetch_row jest kluczowe dla poprawnego przetwarzania danych z bazy. Indeksowanie w tablicach wynikowych zaczyna się od zera dlatego też $a[1] i $a[2] odnoszą się do drugiego i trzeciego elementu tablicy a nie pierwszego i drugiego co również jest częstym źródłem błędów wśród początkujących programistów. Ponadto brak zrozumienia że echo wypisuje wartości z jednego rekordu a nie wszystkich może prowadzić do błędnych założeń w projektowaniu logiki aplikacji. Aby uzyskać dane ze wszystkich rekordów konieczne byłoby zastosowanie pętli takiej jak while która iterowałaby przez cały zbiór wyników co pokazuje różnicę w podejściu między pobieraniem pojedynczego rekordu a całego zestawu danych. Zrozumienie tych koncepcji jest istotne dla efektywnego i bezpiecznego korzystania z bazy danych w aplikacjach PHP i pozwala na unikanie typowych błędów związanych z przetwarzaniem rekordów z bazy danych. Dokładne zrozumienie struktury tablic wynikowych i sposobu ich przetwarzania jest niezbędne do rozwijania wydajnych i bezpiecznych aplikacji webowych. Warto również pamiętać o zabezpieczeniach takich jak użycie przygotowanych zapytań SQL by uniknąć ataków typu SQL Injection co jest istotnym aspektem tworzenia aplikacji bezpiecznych i odpornych na próby nieautoryzowanego dostępu.

Pytanie 24

Tabela o nazwie naprawy posiada kolumny klient oraz czyNaprawione. W celu usunięcia rekordów, w których wartość pola czyNaprawione wynosi prawda, należy użyć komendy

A. DELETE naprawy WHERE czyNaprawione = TRUE;
B. DELETE FROM naprawy;
C. DELETE FROM naprawy WHERE czyNaprawione = TRUE;
D. DELETE klient FROM naprawy WHERE czyNaprawione = TRUE;
Odpowiedź "DELETE FROM naprawy WHERE czyNaprawione = TRUE;" jest poprawna, ponieważ wykorzystuje właściwą składnię SQL do usunięcia rekordów z tabeli. Komenda DELETE jest używana do usuwania danych z bazy danych, a klauzula WHERE precyzuje, które rekordy mają być usunięte na podstawie określonych warunków. W tym przypadku, usuwane są tylko te rekordy, które mają wartość TRUE w polu czyNaprawione. Zastosowanie klauzuli WHERE jest kluczowe, ponieważ umożliwia precyzyjne wybranie danych do usunięcia, co zapobiega przypadkowemu skasowaniu wszystkich rekordów w tabeli. W praktyce, taką komendę można wykorzystać w różnych aplikacjach związanych z zarządzaniem danymi, np. w systemach informatycznych do obsługi klienta, gdzie zachodzi potrzeba bieżącego zarządzania statusami napraw. Dobre praktyki w programowaniu baz danych nakazują zawsze stosować klauzulę WHERE przy usuwaniu danych, aby uniknąć niezamierzonych skutków. Warto również przetestować zapytania w środowisku testowym przed ich zastosowaniem w produkcji, co zwiększa bezpieczeństwo operacji na danych.

Pytanie 25

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

A. podstawowy
B. przestawny
C. obcy
D. inkrementacyjny
W kontekście baz danych, istnieje kilka terminów, które mogą być mylące, zwłaszcza w odniesieniu do kluczy. Klucz inkrementacyjny, mimo że jest użyteczny w wielu systemach baz danych do generowania unikalnych identyfikatorów, nie jest terminem opisującym typ klucza, ale raczej metodą tworzenia wartości dla klucza podstawowego. Klucz przestawny (ang. pivot key) to termin bardziej związany z analizą danych niż z identyfikacją wierszy w tabelach; odnosi się do technik agregacji danych i transformacji w zbiorach danych, głównie w kontekście tabel przestawnych, które są używane do wizualizacji i analizy danych, a nie do bezpośredniej identyfikacji rekordów. Klucz obcy (ang. foreign key) to kolejny termin, który jest często mylony z kluczem podstawowym. Klucz obcy jest polem w jednej tabeli, które wskazuje na klucz podstawowy w innej tabeli, co służy do ustanawiania relacji między dwiema tabelami. Klucz obcy nie identyfikuje wierszy w swojej tabeli, lecz tworzy powiązania z innymi danymi. Rozumienie tych terminów oraz ich zastosowań jest kluczowe dla efektywnego projektowania baz danych oraz unikania powszechnych błędów, które mogą prowadzić do problemów z integralnością danych i wydajnością systemu.

Pytanie 26

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 FROM Pacjenci WHERE wiek<18 AND lekarz_id=6
B. SELECT imie, nazwisko WHERE wiek<18 AND lekarz_id=6
C. SELECT imie, nazwisko FROM Pacjenci WHERE wiek<18 OR lekarz_id=6
D. SELECT imie, nazwisko WHERE wiek<18 OR lekarz_id=6
Wybrane odpowiedzi zawierają błędy w logice i zastosowaniu operatorów w zapytaniach SQL. W pierwszym przypadku, brakująca klauzula FROM w kwerendzie sprawia, że zapytanie jest niepoprawne. Operator WHERE wymaga wskazania tabeli, na której ma zostać wykonane zapytanie. To fundamentalna zasada w SQL, która odnosi się do struktury zapytań. Z kolei w przypadku zastosowania operatora OR, kwerenda może zwrócić wyniki, które nie są zgodne z wymaganiami zadania, ponieważ zwróciłaby również pacjentów powyżej 18 roku życia, którzy są zapisani do lekarza o id równym 6. To narusza logikę, ponieważ celem zapytania jest uzyskanie tylko tych pacjentów, którzy są młodsi niż 18 lat i zapisani do konkretnego lekarza. Zastosowanie AND w tym kontekście jest kluczowe, aby uzyskać precyzyjne wyniki. Przykład błędnych zapytań ilustruje, jak ważne jest zrozumienie relacji między warunkami w SQL. Bez prawidłowego użycia operatorów, kwerenda staje się nieefektywna i nieprecyzyjna. Dlatego kluczowe jest przeszkolenie w zakresie logiki zapytań SQL oraz praktyka w ich pisaniu.

Pytanie 27

Jakie polecenie pozwala na zwiększenie wartości o jeden w polu RokStudiów w tabeli Studenci dla tych studentów, którzy są na roku 1÷4?

A. UPDATE Studenci SET RokStudiow = RokStudiow+1 WHERE RokStudiow < 5
B. UPDATE RokStudiow SET RokStudiow++ WHERE RokStudiow < 5
C. UPDATE Studenci SET RokStudiow WHERE RokStudiow < 5
D. UPDATE Studenci, RokStudiow+1 WHERE RokStudiow < 5
Odpowiedź 'UPDATE Studenci SET RokStudiow = RokStudiow+1 WHERE RokStudiow < 5;' jest poprawna, ponieważ stosuje właściwą składnię SQL do aktualizacji wartości w kolumnie RokStudiow w tabeli Studenci. Użycie słowa kluczowego 'SET' pozwala na przypisanie nowej wartości do atrybutu, a 'WHERE RokStudiow < 5' zapewnia, że tylko studenci z rokiem studiów od 1 do 4 zostaną zaktualizowani. Przykładowo, jeśli mamy studentów na roku 1, 2, 3 oraz 4, po wykonaniu tego polecenia ich rok studiów wzrośnie o 1, co jest zgodne z praktyką zwiększania roku studiów po zakończeniu danego etapu edukacji. W kontekście dobrych praktyk w programowaniu, warto również dbać o to, aby zapytania były jasne i zrozumiałe, a operacje aktualizacji mogły być łatwo śledzone i analizowane w przyszłości. Odpowiednie użycie komentarzy oraz testowanie zapytań w warunkach niskiego obciążenia bazy danych przed ich wdrożeniem w środowisku produkcyjnym to kluczowe aspekty zapewnienia bezpieczeństwa i integralności danych.

Pytanie 28

Aby utworzyć tabelę w systemie baz danych, trzeba użyć komendy SQL

A. ADD TABLE
B. PLUS TABLE
C. CREATE TABLE
D. NEW TABLE
Żeby stworzyć tabelę w bazie danych, musisz użyć polecenia CREATE TABLE. To jest taki standard w SQL, który jest mega popularny w zarządzaniu bazami danych. Jak używasz tego polecenia, to definiujesz, jak ma wyglądać twoja tabela – nazwę, kolumny i jakie dane będą w tych kolumnach. Na przykład, jeśli chcesz mieć tabelę z informacjami o użytkownikach, będziesz mógł napisać coś takiego: `CREATE TABLE users (id INT PRIMARY KEY, name VARCHAR(100), email VARCHAR(100));`. Fajnie jest również ustawić klucz główny (PRIMARY KEY), bo to zabezpiecza unikalność danych w tabeli. To wszystko jest zgodne z zasadami normalizacji danych, co pomaga uniknąć dublowania informacji i poprawia integralność bazy. Tak więc, znajomość CREATE TABLE to podstawa, gdy pracujesz z bazami danych, bo to klucz do dalszego działania z danymi, ich modyfikowania i zarządzania nimi.

Pytanie 29

Komenda skierowana do serwera bazy danych, która polega na zbieraniu, wyszukiwaniu lub zmienianiu danych w bazie, nosi nazwę

A. formularza
B. kopii
C. kwerendy
D. kolumny
Formularz to interfejs użytkownika, który umożliwia wprowadzanie informacji, ale nie jest związany z operacjami na bazach danych. To narzędzie wizualne, które może być używane do zbierania danych w sposób zorganizowany, jednak samo w sobie nie wykonuje żadnych operacji na danych w bazie. Koncepcja kolumny odnosi się do struktury tabeli w bazie danych, gdzie kolumny definiują typy danych przechowywanych w danej tabeli, ale nie są one powiązane z wykonywaniem zapytań czy operacji na danych. Kopią można określić duplikat danych lub backup, ale również nie ma ona zastosowania w kontekście wysyłania poleceń do serwera bazy danych. Istnieje ryzyko, że błędne zrozumienie terminów związanych z bazami danych prowadzi do mylnych interpretacji, co może skutkować trudnościami w pracy z danymi. Kluczowe jest zrozumienie, że kwerenda jest specyficznym poleceniem, które oddziałuje na strukturę danych, a nie narzędziem do ich wizualizacji czy opisu. Błędy te mogą prowadzić do niewłaściwego projektowania systemów baz danych oraz do ograniczonej efektywności w realizacji zadań związanych z zarządzaniem danymi.

Pytanie 30

Systemem zarządzania wersjami w projekcie oprogramowania, który jest rozproszony, jest

A. GIT
B. TotalCommander
C. FileZilla
D. Eclipse
GIT jest rozproszonym systemem kontroli wersji, który umożliwia programistom śledzenie zmian w kodzie źródłowym oraz współpracę nad projektami w zespole. Rozproszona architektura GIT pozwala każdemu deweloperowi na posiadanie pełnej kopii repozytorium, co zwiększa bezpieczeństwo i elastyczność pracy. W przeciwieństwie do centralnych systemów kontroli wersji, gdzie jedna centralna kopia repozytorium jest głównym źródłem, GIT umożliwia każdemu użytkownikowi wprowadzanie zmian lokalnie, a następnie synchronizację z innymi. Przykładem zastosowania GIT-a jest platforma GitHub, która umożliwia hosting projektów oraz wspiera pracę zespołową poprzez funkcje takie jak pull requesty czy zarządzanie problemami. GIT jest zgodny z wieloma standardami, w tym z Open Source, co czyni go narzędziem dostępnym dla szerokiej społeczności deweloperów. Jego wszechstronność i bogate możliwości, takie jak branżowanie i łączenie gałęzi, sprawiają, że jest on niezbędnym narzędziem w pracy nad nowoczesnymi projektami programistycznymi.

Pytanie 31

W językach programowania strukturalnego do przechowywania danych o 50 uczniach (ich imionach, nazwiskach, średniej ocen) należy zastosować

A. tablicę 50 elementów o składowych typu łańcuchowego.
B. tablicę 50 elementów o składowych strukturalnych.
C. strukturę 50 elementów o składowych tablicowych.
D. klasę 50 elementów typu tablicowego.
Odpowiedź wskazująca na użycie tablicy 50 elementów o składowych strukturalnych jest poprawna z kilku powodów. Po pierwsze, struktury (lub klasy) są idealnym rozwiązaniem do przechowywania złożonych danych, takich jak imiona, nazwiska i średnie oceny uczniów. Struktura pozwala na grupowanie tych składowych w jedną jednostkę, co zwiększa czytelność i organizację kodu. Na przykład, w języku C można zdefiniować strukturę 'Uczeń' z odpowiednimi polami, a następnie stworzyć tablicę, która pomieści 50 takich obiektów. W praktyce, struktury są szeroko stosowane w programowaniu, gdyż umożliwiają łatwe przekazywanie grup danych jako jednego obiektu, co jest zgodne z zasadami programowania obiektowego. Dodatkowo, korzystanie z tablicy struktur zamiast oddzielnych tablic dla każdego atrybutu ucznia minimalizuje ryzyko błędów związanych z synchronizacją danych i ułatwia manipulację danymi. W standardach programowania, szczególnie w kontekście zarządzania danymi, takie podejście jest uznawane za najlepszą praktykę, gdyż pozwala na spójną reprezentację oraz operowanie na danych.

Pytanie 32

Co wchodzi w skład standardowego frameworka?

A. domena oraz obsługa błędów
B. przetwarzanie formularzy oraz wbudowany serwer
C. system uruchamiania i przetwarzania akcji oraz certyfikat http
D. zarządzanie komunikacją z bazą danych, system uruchamiania i przetwarzania akcji
Frameworki aplikacji webowych dostarczają zestawu narzędzi i standardów, które ułatwiają tworzenie oprogramowania. W kontekście tego pytania, zarządzanie komunikacją z bazą danych oraz mechanizm uruchamiania i przetwarzania akcji stanowią kluczowe komponenty każdego frameworka. Zarządzanie komunikacją z bazą danych odnosi się do sposobów, w jakie aplikacja łączy się z bazą danych, wykonuje zapytania i przetwarza wyniki. Przykładowo, w frameworkach takich jak Django czy Ruby on Rails, stosuje się ORM (Object-Relational Mapping), co ułatwia interakcję z bazą danych poprzez obiektowe podejście zamiast pisania surowych zapytań SQL. Mechanizm uruchamiania i przetwarzania akcji opisuje, jak framework interpretuje i obsługuje żądania użytkowników, co obejmuje routing, middleware i obsługę logiki biznesowej. Takie podejście jest zgodne z zasadą DRY (Don't Repeat Yourself), co zwiększa efektywność i jakość kodu w projektach programistycznych.

Pytanie 33

Jaki typ powinien być wykorzystany, aby pole danych mogło przyjmować liczby zmiennoprzecinkowe?

A. VARCHAR
B. CHAR
C. INT
D. FLOAT
Typ danych FLOAT jest idealnym rozwiązaniem do przechowywania liczb rzeczywistych, ponieważ umożliwia reprezentację wartości z przecinkiem dziesiętnym. W przeciwieństwie do typu INT, który obsługuje jedynie liczby całkowite, FLOAT potrafi przechowywać znacznie szerszy zakres wartości, w tym liczby z miejscami po przecinku. Użycie typu FLOAT jest szczególnie korzystne w aplikacjach wymagających precyzyjnych obliczeń, takich jak kalkulatory, systemy finansowe czy analizy danych. Przykładowo, w systemach baz danych SQL, definiując kolumnę jako FLOAT, możemy przechowywać wartości takie jak 3.14, -0.001 lub 2.71828. Standard SQL określa, że FLOAT może posiadać różne precyzje, co pozwala na dostosowanie pamięci do potrzeb konkretnej aplikacji. W praktyce, FLOAT jest wykorzystywany w złożonych obliczeniach inżynieryjnych, gdzie precyzyjne wartości są kluczowe dla wyników obliczeń.

Pytanie 34

W tabeli artykuły wykonano następujące instrukcje dotyczące uprawnień użytkownika jan: ```GRANT ALL PRIVILEGES ON artykuly TO jan``` ```REVOKE SELECT, UPDATE ON artykuly FROM jan``` Po zrealizowaniu tych instrukcji pracownik jan będzie uprawniony do

A. tworzenia tabeli oraz edytowania danych w niej
B. wyświetlania zawartości tabeli
C. edycji danych oraz przeglądania tabeli
D. tworzenia tabeli i wypełniania jej danymi
Jan, po wydaniu polecenia GRANT ALL PRIVILEGES ON artykuly TO jan, miał pełne uprawnienia do wszystkich operacji na tabeli artykuly. Jednakże, po wykonaniu polecenia REVOKE SELECT, UPDATE ON artykuly FROM jan, jego uprawnienia do przeglądania danych (SELECT) oraz aktualizacji danych (UPDATE) zostały odebrane. Oznacza to, że Jan zachowuje możliwość tworzenia nowych tabel oraz wypełniania ich danymi (INSERT), ponieważ nie został ograniczony w tym zakresie. Możliwości tworzenia tabeli i wypełniania jej danymi są częścią przyznanych uprawnień. W standardzie SQL, komendy GRANT i REVOKE służą odpowiednio do przyznawania i odbierania uprawnień użytkownikom. W praktycznym zastosowaniu, takie operacje są kluczowe dla zarządzania bezpieczeństwem i dostępem do danych w bazach danych, co zapobiega nieautoryzowanym zmianom i zabezpiecza integralność danych.

Pytanie 35

Model fizyczny replikacji bazy danych pokazany na ilustracji jest modelem

Ilustracja do pytania
A. centralnego subskrybenta
B. rozproszonym
C. centralnego wydawcy
D. równorzędnym
Model centralnego subskrybenta polega na tym że jeden serwer subskrybuje dane z wielu wydawniczych serwerów co jest odwrotnością modelu centralnego wydawcy. Tego typu rozwiązanie jest mniej popularne ze względu na potrzebę zarządzania synchronizacją z wielu źródeł co komplikuje proces replikacji i zwiększa ryzyko konfliktów danych. Model równorzędny z kolei zakłada że każdy serwer w architekturze działa jako równy uczestnik mający zdolność zarówno publikowania jak i subskrybowania danych. Taka architektura jest bardziej złożona w zarządzaniu zwłaszcza przy dużej liczbie uczestników ponieważ wymaga zaawansowanych mechanizmów rozwiązywania konfliktów i zarządzania współbieżnością. Rozproszony model to rozwiązanie gdzie dane są przechowywane i zarządzane bez centralnego punktu co może być korzystne dla systemów wymagających wysokiej dostępności i elastyczności ale stwarza wyzwania w zakresie spójności danych i wymaga skomplikowanych algorytmów synchronizacji. Wybór modelu nieodpowiedniego dla danej infrastruktury może prowadzić do problemów z wydajnością i spójnością co jest typowym błędem myślowym wynikającym z niewłaściwego zrozumienia wymagań systemowych. Każdy z tych modeli ma swoje specyficzne zastosowania i wyzwania co wymaga odpowiedniej analizy i doświadczenia przy projektowaniu systemów bazodanowych.

Pytanie 36

Głównym celem systemu CMS jest oddzielenie treści portalu informacyjnego od jego wyglądu. Taki efekt osiąga się przez generowanie zawartości

A. ze statycznych plików HTML oraz wyglądu za pomocą technologii FLASH
B. ze statycznych plików HTML oraz wyglądu ze zdefiniowanego szablonu
C. z bazy danych oraz wyglądu za pomocą atrybutów HTML
D. z bazy danych oraz wyglądu ze zdefiniowanego szablonu
Wybór błędnych odpowiedzi wskazuje na niepełne zrozumienie architektury systemów zarządzania treścią. Odpowiedzi sugerujące generowanie zawartości z 'statycznych plików HTML' nie uwzględniają kluczowej zasady, jaką jest elastyczność i efektywność dynamicznego zarządzania treścią. Statyczne pliki HTML są trudne do aktualizacji, co powoduje, że zmiany w treści są czasochłonne i zwiększają ryzyko błędów. Przykładowo, w przypadku wprowadzenia istotnych zmian w treści, takich jak aktualizacje informacji o produktach, każda zmiana wymagałaby ręcznej edycji wielu plików, co jest niepraktyczne i nieefektywne. Ponadto, wykorzystanie technologii FLASH do generowania wyglądu jest przestarzałym podejściem, które nie jest już wspierane przez większość nowoczesnych przeglądarek internetowych. FLASH nie tylko ogranicza dostępność treści na urządzeniach mobilnych, ale także stwarza zagrożenia związane z bezpieczeństwem. Ostatecznie, podejścia te nie są zgodne z najlepszymi praktykami branżowymi, które kładą nacisk na wykorzystanie responsywnych, łatwych w zarządzaniu szablonów i dynamicznych baz danych, co jest kluczowe dla sukcesu nowoczesnych aplikacji internetowych.

Pytanie 37

Aby wykonać usunięcie wszystkich wpisów z tabeli, należy użyć kwerendy

A. TRUNCATE TABLE
B. CREATE COLUMN
C. ALTER COLUMN
D. INSERT INTO
Pozostałe odpowiedzi nie są właściwe w kontekście usuwania rekordów z tabeli. 'INSERT INTO' jest poleceniem służącym do wstawiania nowych rekordów do tabeli, a nie do ich usuwania. W wielu przypadkach mylenie tych poleceń może prowadzić do błędów w kodzie SQL, gdzie zamiast oczekiwanego efektu usuwania, dodawane są nowe dane. 'ALTER COLUMN' i 'CREATE COLUMN' dotyczą struktury tabeli, a nie operacji na danych. 'ALTER COLUMN' służy do modyfikacji istniejących kolumn, co nie ma związku z usuwaniem rekordów. Natomiast 'CREATE COLUMN' jest związane z dodawaniem nowych kolumn do tabeli. Takie nieprawidłowe podejście do zrozumienia poleceń SQL może prowadzić do braku efektywności w zarządzaniu bazami danych. Kluczowe jest, aby przed użyciem jakiegokolwiek polecenia SQL, dokładnie zrozumieć jego funkcję oraz konsekwencje, jakie niesie dla danych w tabeli. Dobrze przemyślane podejście do SQL pozwoli uniknąć potencjalnych krytycznych błędów.

Pytanie 38

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

mysqli_query($db, "DELETE FROM produkty WHERE status < 0");
$x = mysqli_affected_rows($db);
A. Liczbę wierszy, które zostały dodane do tabeli produkty.
B. Liczbę wierszy przetworzonych przez zapytanie DELETE FROM.
C. Liczbę wierszy w tabeli produkty, dla których pole status przekracza zero.
D. Liczbę wierszy, które znajdują się w bazie danych.
Wybór niepoprawnej odpowiedzi może wynikać z nieporozumienia dotyczącego działania funkcji mysqli_affected_rows oraz zrozumienia zapytań SQL. Wiele osób może myśleć, że funkcja ta zwraca liczbę wierszy w tabeli, co jest błędne. mSQL i PHP oferują wiele funkcji do interakcji z bazą danych, a zrozumienie ich specyfikacji jest kluczowe dla efektywnego programowania. Odpowiedź sugerująca, że x przyjmuje liczbę wierszy znajdujących się w bazie danych, jest absolutnie nieprawidłowa, ponieważ mysqli_affected_rows nie ma nic wspólnego z ogólną liczbą wierszy w tabeli. To funkcja, która skupia się na rezultatach ostatniego zapytania, a nie na całkowitym stanie bazy danych. Podobnie, zrozumienie zapytania DELETE FROM jako operacji, która zmienia stan bazy danych, jest fundamentalne. Inną popularną pomyłką jest myślenie, że liczba wierszy dodanych do tabeli jest w jakiś sposób związana z tym, co robi zapytanie DELETE. W rzeczywistości, podczas usuwania danych, nie dodajemy nic nowego, a funkcja ta jedynie informuje nas o usuniętych elementach. Dobrą praktyką jest również sięganie po dokumentację oraz testowanie kodu, co pozwala na lepsze zrozumienie zachowań funkcji i operacji na bazach danych.

Pytanie 39

Polecenie MySQL:

ALTER TABLE ksiazki
    MODIFY tytul VARCHAR(100) NOT NULL;
Przedstawione polecenie MySQL ma za zadanie
A. zmienić typ kolumny tytul w tabeli ksiazki
B. dodać do tabeli ksiazki kolumnę tytul
C. zmienić nazwę kolumny w tabeli ksiazki
D. usunąć kolumnę tytul z tabeli ksiazki
Polecenie ALTER TABLE w przedstawionym zapytaniu jest używane do modyfikacji struktury istniejącej tabeli w bazie danych MySQL. W szczególności, zapytanie zmienia typ kolumny 'tytul' w tabeli 'ksiazki' na VARCHAR(100) oraz ustawia ten typ jako NOT NULL, co oznacza, że ta kolumna nie może zawierać wartości NULL. Typ VARCHAR jest typem danych zmiennych o długości, co pozwala na przechowywanie ciągów znaków o zmiennej długości do 100 znaków. Zmiana typu kolumny może być przydatna w sytuacjach, gdy chcemy zmienić sposób przechowywania danych lub dostosować je do nowych wymagań aplikacji. Przykładem może być sytuacja, w której początkowo tytul był przechowywany jako tekst o stałej długości (np. CHAR), ale później zdecydowano, że lepszym rozwiązaniem będzie przechowywanie go jako VARCHAR dla oszczędności miejsca. W kontekście standardów SQL, modyfikacja kolumny zgodnie z definicją standardu SQL jest dopuszczalna, pod warunkiem, że nie narusza ona reguł dotyczących integralności danych i typów. Warto również pamiętać, że zmiana typu kolumny w bazie danych może wymagać migracji danych, co należy uwzględnić w planowaniu zmian.

Pytanie 40

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

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