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:50
  • Data zakończenia: 9 grudnia 2025 13:06

Egzamin zdany!

Wynik: 30/40 punktów (75,0%)

Wymagane minimum: 20 punktów (50%)

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

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

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

Pytanie 2

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

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

Pytanie 3

W aplikacji PHP do bazy danych została wysłana kwerenda SELECT przy pomocy funkcji mysqli_query. Jaką funkcję powinien wykorzystać użytkownik, aby ustalić, ile rekordów zostało zwróconych przez zapytanie?

A. mysqli_query
B. mysqli_num_rows
C. mysqli_connect
D. mysqli_fetch_row
Funkcja mysqli_num_rows jest kluczowym narzędziem w interakcji z bazą danych w PHP, umożliwiającym sprawdzenie liczby rekordów zwróconych przez zapytanie SELECT. Po wywołaniu mysqli_query, które wykonuje zapytanie SQL, można uzyskać wynik, który jest obiektem typu mysqli_result. Używając mysqli_num_rows, możemy szybko i efektywnie dowiedzieć się, ile rekordów zostało zwróconych przez to zapytanie. Przykładowo, po wykonaniu zapytania do bazy danych można użyć poniższego kodu: $result = mysqli_query($conn, 'SELECT * FROM users'); $count = mysqli_num_rows($result); echo 'Liczba rekordów: ' . $count;. Dzięki temu użytkownik ma pełną kontrolę nad danymi, co jest zgodne z najlepszymi praktykami w programowaniu, gdzie liczenie rekordów może być niezbędne do dalszej logiki aplikacji, jak stronicowanie wyników czy walidacja danych. Warto również wiedzieć, że mysqli_num_rows nie tylko zwraca liczbę rekordów, ale także działa wydajnie, co ma znaczenie przy dużych zbiorach danych, gdzie minimalizowanie obciążenia serwera i bazy jest kluczowe.

Pytanie 4

Istnieje tabela programisci z polami: id, nick, ilosc_kodu, ocena. Wartość w polu ilosc_kodu przedstawia liczbę linii kodu, które dany programista stworzył w określonym miesiącu. Aby obliczyć całkowitą liczbę linii kodu napisanych przez wszystkich programistów, należy zastosować następujące polecenie

A. SELECT SUM(ilosc_kodu) FROM programisci;
B. SELECT MAX(ilosc_kodu) FROM programisci;
C. SELECT SUM(ocena) FROM ilosc_kodu;
D. SELECT COUNT(programisci) FROM ilosc_kodu;
Poprawna odpowiedź to "SELECT SUM(ilosc_kodu) FROM programisci;" ponieważ to zapytanie dokładnie ilustruje, jak można obliczyć sumę wszystkich linii kodu napisanych przez programistów. Funkcja agregująca SUM() służy do sumowania wartości w podanym polu, które w tym przypadku jest polem "ilosc_kodu". W kontekście relacyjnych baz danych, stosowanie funkcji agregujących jest kluczowe do analizy danych w sposób statystyczny. W praktyce, takie zapytanie może być przydatne w raportach dotyczących wydajności zespołu programistycznego, gdzie analiza sumy napisanych linii kodu pozwala na ocenę produktywności oraz identyfikację programistów, którzy mogą potrzebować wsparcia w realizacji zadań. Ponadto, zgodnie z najlepszymi praktykami SQL, warto być świadomym kontekstu zapytań, a dobór odpowiednich funkcji agregujących, takich jak SUM(), COUNT(), AVG() itp., jest niezbędny do efektywnego przetwarzania danych.

Pytanie 5

W systemie zarządzania bazami danych MySQL komenda CREATE USER pozwala na

A. utworzenie użytkownika
B. pokazanie danych o istniejącym użytkowniku
C. zmianę hasła dla już istniejącego użytkownika
D. stworznie nowego użytkownika oraz przydzielenie mu uprawnień do bazy
Polecenie CREATE USER w MySQL jest używane do tworzenia nowych użytkowników w systemie baz danych. W kontekście zarządzania bazami danych, kluczowym aspektem jest kontrola dostępu, a odpowiednie zdefiniowanie użytkowników jest niezbędne dla zapewnienia bezpieczeństwa danych. Używając CREATE USER, administrator bazy danych może zdefiniować nazwę użytkownika oraz powiązane z nią hasło, co stanowi pierwszy krok w procesie zarządzania uprawnieniami. Dobrą praktyką jest stosowanie silnych haseł oraz nadawanie użytkownikom tylko tych uprawnień, które są im rzeczywiście potrzebne do wykonania ich zadań. Na przykład, w przypadku aplikacji webowych często tworzy się specjalnych użytkowników z ograniczonymi prawami dostępu, co minimalizuje ryzyko nieautoryzowanego dostępu do wrażliwych danych. Warto pamiętać, że po utworzeniu użytkownika, można wykorzystać polecenia GRANT, aby przyznać mu odpowiednie uprawnienia do konkretnych baz danych lub tabel, co pozwala na precyzyjne zarządzanie dostępem. Ponadto, MySQL pozwala na tworzenie użytkowników z różnymi poziomami dostępu, co jest kluczowe dla organizacji z wieloma działami oraz różnorodnymi potrzebami w zakresie bezpieczeństwa danych.

Pytanie 6

Jak nazywa się platforma wspierająca rozwój oprogramowania w technologii .NET?

A. framework
B. db2
C. middleware
D. eclipse
Framework to kluczowy element w ekosystemie programowania w technologii .NET, który dostarcza zestaw narzędzi, bibliotek i standardów do tworzenia aplikacji. .NET Framework, opracowany przez firmę Microsoft, umożliwia deweloperom tworzenie różnorodnych aplikacji, od aplikacji webowych po aplikacje desktopowe i mobilne. Framework ten wspiera szeroki zakres języków programowania, w tym C#, Visual Basic i F#. Działa na zasadzie dostarczania środowiska uruchomieniowego oraz zestawu klas, które ułatwiają proces programowania, przyspieszając rozwój dzięki gotowym komponentom i wspólnym funkcjonalnościom. Przykładowo, ASP.NET, część .NET Framework, jest używany do budowy aplikacji webowych, co pozwala na łatwe implementowanie funkcji takich jak autoryzacja użytkowników, zarządzanie sesjami i integracja z bazami danych. Dzięki swojej architekturze, .NET Framework przestrzega standardów, takich jak Common Language Specification (CLS), co zapewnia interoperacyjność między różnymi językami programowania. Jest to fundament, na którym opiera się wiele nowoczesnych rozwiązań w świecie IT, co czyni go niezastąpionym narzędziem dla każdego programisty w technologii .NET.

Pytanie 7

W SQL, aby utworzyć tabelę, konieczne jest użycie polecenia

A. ALTER TABLE
B. CREATE TABLE
C. ADD TABLE
D. INSERT TABLE
Żeby stworzyć tabelę w SQL, musisz użyć polecenia CREATE TABLE. To jest coś jak fundament, bo dzięki temu mówisz systemowi, jak ma wyglądać Twoja tabela. Możesz określić nazwę tabeli i jakie kolumny będą przechowywać dane. Wchodzą tu nie tylko nazwy kolumn, ale też ich typy, co jest ważne, żeby dane były dobrze zapisane. Na przykład, chcesz zrobić tabelę 'Użytkownicy', która ma ID, imię i nazwisko? Wtedy używasz takiego zapisu: CREATE TABLE Użytkownicy (ID INT PRIMARY KEY, Imię VARCHAR(50), Nazwisko VARCHAR(50)). Poza tym, to polecenie działa w różnych systemach, jak MySQL czy PostgreSQL, co czyni je naprawdę uniwersalnym. Z mojego doświadczenia, znajomość tego polecenia jest mega ważna, jeśli chcesz dobrze pracować z bazami danych, bo to w końcu ich podstawy!

Pytanie 8

Aby zainstalować system CMS Joomla!, potrzebne jest środowisko

A. PHP oraz MySQL
B. Apache oraz PHP
C. Apache, PHP i MySQL
D. IIS, Perl oraz MySQL
Aby uruchomić system CMS Joomla!, niezbędne jest środowisko składające się z serwera Apache, języka PHP oraz bazy danych MySQL. Apache jest jednym z najpopularniejszych serwerów WWW, który obsługuje zapytania HTTP i serwuje zawartość stron internetowych. PHP to skryptowy język programowania, który jest powszechnie używany do tworzenia dynamicznych stron internetowych i aplikacji webowych. W kontekście Joomla!, PHP jest odpowiedzialne za przetwarzanie kodu i interakcję z bazą danych. MySQL natomiast to system zarządzania relacyjnymi bazami danych, który przechowuje wszystkie dane potrzebne do działania Joomla!, takie jak informacje o użytkownikach, artykułach i ustawieniach systemowych. Współpraca tych trzech komponentów tworzy stabilne środowisko do działania Joomla!, zapewniając optymalizację wydajności oraz bezpieczeństwo. Warto również zaznaczyć, że Joomla! wymaga minimum wersji PHP 7.2 oraz MySQL 5.5, aby zapewnić pełną funkcjonalność i wsparcie dla nowoczesnych rozwiązań webowych.

Pytanie 9

Jakie jest odstępstwo pomiędzy poleceniem DROP TABLE a TRUNCATE TABLE?

A. DROP TABLE usuwa tabelę, natomiast TRUNCATE TABLE modyfikuje dane w niej spełniające określony warunek
B. Obydwa polecenia usuwają tylko zawartość tabeli, ale tylko DROP TABLE może być przywrócone
C. DROP TABLE usuwa tabelę, a TRUNCATE TABLE eliminuje wszystkie dane, zostawiając pustą tabelę
D. Obydwa polecenia usuwają tabelę wraz z jej zawartością, jednak tylko TRUNCATE TABLE można cofnąć
Odpowiedź jest prawidłowa, ponieważ polecenie DROP TABLE całkowicie usuwa tabelę z bazy danych, łącznie z jej strukturą i danymi. Nie można jej później przywrócić, co oznacza, że wszelkie dane w niej zawarte zostaną na stałe utracone. Z kolei TRUNCATE TABLE jest poleceniem, które usuwa jedynie dane wewnątrz tabeli, ale sama tabela i jej struktura pozostają nienaruszone. Po wykonaniu TRUNCATE TABLE tabela staje się pusta, a jej definicja oraz wszystkie indeksy pozostają w bazie danych. Przykładowo, jeśli mamy tabelę 'Klienci' z danymi klientów, wykonanie TRUNCATE TABLE Klienci spowoduje, że tabela pozostanie, ale wszystkie rekordy zostaną usunięte. Wywołanie tych poleceń ma różne zastosowanie w praktyce; DROP TABLE można wykorzystać, gdy nie potrzebujemy tabeli, natomiast TRUNCATE TABLE jest przydatne, gdy chcemy szybko usunąć wszystkie dane z tabeli, zachowując jej strukturę dla przyszłych operacji.

Pytanie 10

Jednym z kluczowych identyfikatorów wpisu w bazie danych jest pole

A. numeryczne
B. relacji
C. klucza obcego
D. klucza podstawowego
Klucz podstawowy jest fundamentalnym elementem każdej relacyjnej bazy danych, ponieważ jednoznacznie identyfikuje każdy rekord w tabeli. Jego główną cechą jest unikalność, co oznacza, że żaden z rekordów w tabeli nie może mieć tego samego klucza podstawowego. Klucz podstawowy może składać się z jednego lub więcej atrybutów (kolumn), ale zawsze musi zapewniać jednoznaczność identyfikacji. Przykładem może być tabela 'Użytkownicy', gdzie 'ID_Użytkownika' działa jako klucz podstawowy, pozwalając na łatwe i szybkie wyszukiwanie konkretnych użytkowników. Zgodnie z najlepszymi praktykami projektowania baz danych, klucze podstawowe powinny być stabilne i niezmienne w czasie, aby uniknąć komplikacji związanych z aktualizacją wartości. Klucz podstawowy jest również kluczowy dla relacji między tabelami, ponieważ inne tabele mogą odwoływać się do niego poprzez klucze obce. Dzięki temu, struktura bazy danych staje się bardziej zorganizowana i lepiej znormalizowana, co z kolei prowadzi do zwiększonej wydajności i integralności danych.

Pytanie 11

Aby zwiększyć wydajność operacji na bazie danych, należy dla pól, które są często wyszukiwane lub sortowane

A. dodać klucz obcy
B. utworzyć indeks
C. stworzyć osobną tabelę przechowującą tylko te pola
D. dodać więzy integralności
Tworzenie indeksu na polach, które często przeszukujesz lub sortujesz, to naprawdę ważna rzecz, jeśli chodzi o wydajność baz danych. Indeksy działają trochę jak spis treści w książkach – pozwalają systemowi szybko znaleźć te dane, których potrzebujesz, bez przeszukiwania całego folderu. Dzięki nim zapytania SELECT mogą iść jak burza, co ma ogromne znaczenie w aplikacjach, gdzie liczy się czas. Przykład? Jeśli zrobisz indeks na kolumnie 'email' w tabeli 'Users', to znacznie szybciej odnajdziesz użytkowników po adresie email. W praktyce warto też regularnie monitorować, jak działają te indeksy i je optymalizować, na przykład usuwając te, które są zbędne, żeby nie przeciążać bazy danych. Dobrze jest pamiętać, że przy dodawaniu lub aktualizowaniu danych, indeksy mogą trochę spowolnić działanie, więc lepiej używać ich z głową.

Pytanie 12

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

Pytanie 13

W tabeli programiści znajdują się kolumny: id, nick, ilosc_kodu, ocena. W kolumnie ilosc_kodu zapisano liczbę linii kodu, które programista napisał w danym miesiącu. Jakie zapytanie umożliwi obliczenie całkowitej liczby linii kodu stworzonych przez wszystkich programistów?

A. SELECT SUM(ilosc_kodu) FROM programisci;
B. SELECT SUM(ocena) FROM ilosc_kodu;
C. SELECT MAX(ilosc_kodu) FROM programisci
D. SELECT COUNT(programisci) FROM ilosc_kodu;
Poprawna odpowiedź to 'SELECT SUM(ilosc_kodu) FROM programisci;'. To polecenie wykorzystuje funkcję agregującą SUM, która sumuje wartości w kolumnie 'ilosc_kodu' dla wszystkich wpisów w tabeli 'programisci'. Jest to najbardziej odpowiednia metoda do obliczenia całkowitej liczby linii kodu napisanych przez wszystkich programistów w danym miesiącu. Funkcje agregujące, takie jak SUM, COUNT, AVG, MAX czy MIN, są kluczowe w SQL, ponieważ pozwalają na efektywne przetwarzanie danych i uzyskiwanie podsumowań na podstawie określonych kryteriów. Dobrą praktyką jest również używanie jednoznacznych aliasów w zapytaniach oraz dbanie o czytelność kodu, co ułatwia jego późniejsze modyfikacje oraz utrzymanie. Przykładowo, można rozszerzyć zapytanie o dodatkowe filtry, aby obliczyć sumę linii tylko dla programistów o określonej ocenie, używając klauzuli WHERE. Tego typu umiejętności są niezbędne w codziennej pracy analityka danych, programisty lub administratora baz danych, gdzie przetwarzanie informacji w sposób efektywny i zrozumiały ma kluczowe znaczenie dla podejmowania decyzji biznesowych.

Pytanie 14

Aby stworzyć relację typu jeden do wielu, w tabeli reprezentującej stronę "wiele", konieczne jest zdefiniowanie

A. klucza obcego wskazującego na klucz podstawowy tabeli reprezentującej stronę "jeden"
B. klucza obcego odnoszącego się do klucza obcego tabeli reprezentującej stronę "jeden"
C. klucza podstawowego odnoszącego się do klucza podstawowego tabeli po stronie "jeden"
D. klucza sztucznego odnoszącego się do kluczy podstawowych obu tabel
Pierwsza niepoprawna odpowiedź sugeruje, że klucz obcy powinien wskazywać na klucz obcy tabeli po stronie 'jeden'. Taki związek jest błędny z perspektywy relacyjnych baz danych, ponieważ klucz obcy powinien zawsze odnosić się do klucza podstawowego, a nie innego klucza obcego. Klucze obce służą do zapewnienia integralności referencyjnej, co oznacza, że każdy rekord w tabeli po stronie 'wiele' musi mieć odpowiadający mu rekord w tabeli po stronie 'jeden'. Kolejna niepoprawna odpowiedź wskazuje na konieczność użycia klucza sztucznego, który nie jest wymagany do stworzenia relacji jeden do wielu. Klucze sztuczne są wykorzystywane głównie w przypadkach, gdy brak jest naturalnego klucza podstawowego, a ich użycie nie jest konieczne w standardowych relacjach. Ostatnia błędna odpowiedź sugeruje, że klucz podstawowy w tabeli po stronie 'wiele' powinien wskazywać na klucz podstawowy tabeli po stronie 'jeden'. Jest to również niepoprawne, ponieważ klucz podstawowy powinien unikalnie identyfikować każdy rekord w swojej tabeli, a nie odnosić się do innego klucza podstawowego. W relacji jeden do wielu klucz obcy w tabeli po stronie 'wiele' zawsze odnosi się do klucza podstawowego tabeli po stronie 'jeden', co jest kluczowe dla prawidłowego modelowania danych.

Pytanie 15

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 rok_urodzenia
B. SELECT imie,nazwisko,klasa from uczniowie where rok_urodzenia = 1994
C. SELECT imie,nazwisko,klasa from uczniowie order by nazwisko
D. SELECT imie,nazwisko,klasa from uczniowie group by rok_urodzenia
Aby uporządkować listę uczniów według roku urodzenia w bazie danych, należy zastosować polecenie SQL 'SELECT imie,nazwisko,klasa from uczniowie order by rok_urodzenia'. Klauzula 'ORDER BY' jest kluczowa w SQL, ponieważ pozwala na sortowanie wyników zapytania według określonej kolumny, w tym przypadku 'rok_urodzenia'. Użycie tej klauzuli zapewnia, że wyniki są prezentowane w porządku rosnącym lub malejącym, co jest szczególnie przydatne, gdy chcemy analizować dane w kontekście czasowym. Na przykład, jeżeli mamy tabelę uczniów z kolumnami 'imie', 'nazwisko', 'klasa' oraz 'rok_urodzenia', użycie tego polecenia umożliwi nam nie tylko zobaczenie imion i nazwisk uczniów, ale również ich uporządkowanie według daty urodzenia. Zgodnie z normami SQL, jest to standardowa metoda sortowania danych, która zwiększa przejrzystość i użyteczność wyników. Przykładowo, jeśli w tabeli są uczniowie urodzeni w różnych latach, dzięki temu zapytaniu, najpierw zobaczymy uczniów urodzonych w najwcześniejszych latach, co może być istotne przy podejmowaniu decyzji organizacyjnych w szkole.

Pytanie 16

Jakie zapytanie SQL będzie odpowiednie do odnalezienia w podanej tabeli tylko imion oraz nazwisk pacjentów, którzy przyszli na świat przed rokiem 2002?

Ilustracja do pytania
A. SELECT * FROM Pacjenci WHERE rok_urodzenia <= 2002
B. SELECT imie, nazwisko FROM Pacjenci WHERE rok_urodzenia < 2002
C. SELECT * FROM Pacjenci WHERE rok_urodzenia LIKE 2002
D. SELECT imie, nazwisko FROM Pacjenci WHERE data_ostatniej_wizyty < 2002
W tym zapytaniu zastosowałeś składnię SELECT imie, nazwisko FROM Pacjenci WHERE rok_urodzenia < 2002, co jest super, bo pozwala wyciągnąć tylko te imiona i nazwiska pacjentów, którzy urodzili się przed rokiem 2002. Użycie konkretnych kolumn jak imie i nazwisko zamiast znaku * to niezła sprawa, bo ogranicza wyniki do tego, co naprawdę potrzebujesz. To z kolei może znacząco zwiększyć wydajność przesyłania danych. No i to WHERE rok_urodzenia < 2002 – świetny ruch! Fajnie, że potrafisz filtrować dane według konkretnego warunku. Bez tego miałbyś wszystkie osoby, nie tylko te sprzed 2002 roku. To jest właśnie selekcja warunkowa w SQL, a jej znajomość to podstawa przy analizie danych. Zgadzam się również, że uniknięcie znaków wieloznacznych jak LIKE w tej sytuacji to dobre podejście, bo używasz bezpośrednich porównań liczbowych, co generalnie działa lepiej i daje jaśniejsze wyniki.

Pytanie 17

W bazie danych samochodów pole kolor z tabeli samochody przyjmuje wartości kolorów jedynie ze słownika lakier. Aby połączyć tabele samochody i lakier relacją należy, zastosować kwerendę

A. ALTER TABLE samochody
   ADD FOREIGN KEY kolor REFERENCES lakier;

B. ALTER TABLE samochody
   ADD FOREIGN KEY (kolor) REFERENCES lakier(lakierId);

C. ALTER TABLE samochody
   ADD FOREIGN KEY barwa REFERENCES samochody.lakier;

D. ALTER TABLE lakier
   ADD FOREIGN KEY (barwa) REFERENCES samochody(kolor);
A. B.
B. C.
C. D.
D. A.
Błędne odpowiedzi wynikają z niezrozumienia jak działa łączenie tabel w SQL lub z błędów w składni. W przypadku relacji między tabelami, klucz obcy w jednej tabeli odpowiada kluczowi głównemu w drugiej tabeli. Tymczasem, niektóre z błędnych odpowiedzi zawierają niewłaściwe odniesienia do kluczy głównych i obcych. Próby utworzenia klucza obcego bez odwołania do odpowiadającego mu klucza głównego, lub odwołanie się do nieistniejących pól w tabeli, skutkują błędami i niepoprawnym działaniem bazy danych. Błędy w składni SQL, takie jak niepoprawne użycie słów kluczowych czy polecenia utworzenia klucza obcego, mogą także prowadzić do nieprawidłowych wyników. Zrozumienie relacji między tabelami i prawidłowe stosowanie składni SQL są kluczowe dla efektywnej pracy z bazami danych.

Pytanie 18

GRANT CREATE, ALTER ON sklep.* TO adam; Zakładając, że użytkownik adam nie dysponował wcześniej żadnymi uprawnieniami, to polecenie SQL przyzna mu prawa jedynie do

A. tworzenia oraz modyfikacji struktury w tabeli sklep
B. tworzenia oraz modyfikacji struktury wszystkich tabel w bazie sklep
C. wstawiania oraz modyfikacji danych w tabeli sklep
D. wstawiania oraz modyfikacji danych we wszystkich tabelach bazy sklep
Polecenie SQL 'GRANT CREATE, ALTER ON sklep.* TO adam;' przyznaje użytkownikowi adam prawa do tworzenia i modyfikowania struktury wszystkich tabel w bazie danych o nazwie 'sklep'. W kontekście zarządzania bazami danych, przyznawanie takich uprawnień jest kluczowe dla realizacji zadań związanych z projektowaniem i rozbudową bazy. Przykładowo, gdyby adam potrzebował dodać nową kolumnę do istniejącej tabeli lub utworzyć nową tabelę, mógłby to zrobić dzięki tym prawom. Z perspektywy bezpieczeństwa, nadawanie takich uprawnień powinna być starannie przemyślane, aby uniknąć nieautoryzowanych zmian w strukturze bazy. W praktyce, w sytuacjach, gdy wiele osób współpracuje nad projektem, zaleca się przyznawanie minimalnych uprawnień, które są niezbędne do wykonania określonych zadań. W związku z tym, wykorzystanie polecenia GRANT w sposób odpowiadający wymaganiom projektu jest najlepszą praktyką w zakresie administracji bazami danych.

Pytanie 19

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

A. dodać więzy integralności.
B. stworzyć osobną tabelę przechowującą tylko te pola.
C. dodać klucz obcy.
D. utworzyć indeks.
Indeksowanie to kluczowy mechanizm optymalizacji wydajności baz danych. Indeksy pozwalają na szybsze wyszukiwanie, sortowanie oraz filtrowanie danych, co znacząco poprawia czas reakcji na zapytania. Kiedy tworzymy indeks na kolumnach, które są często używane w klauzulach WHERE, ORDER BY lub JOIN, silnik bazy danych może szybciej zlokalizować potrzebne dane, minimalizując czas przeszukiwania. Na przykład, w bazie danych o dużej liczbie rekordów, wyszukiwanie konkretnego użytkownika bez indeksu może wymagać przeszukania całej tabeli, co jest czasochłonne. W przypadku dodania indeksu do kolumny 'username', zapytanie SELECT * FROM users WHERE username = 'janek' będzie mogło wykorzystać indeks, aby natychmiastowo znaleźć odpowiedni rekord. Zgodnie z dokumentacją SQL Server i MySQL, indeksowanie jest również zalecane w przypadku kolumn, które są często modyfikowane, ponieważ pozwala na utrzymanie wysokiej wydajności przy dużych zbiorach danych. Indeksy mogą być zarówno unikalne, jak i nieunikalne, a ich odpowiednie zaplanowanie jest kluczowe dla zachowania równowagi między szybkością przetwarzania a wydajnością operacji zapisu. Ostatecznie, optymalizacja bazy danych za pomocą indeksów to niezbędny krok dla każdej aplikacji wymagającej efektywnego zarządzania danymi.

Pytanie 20

W tabeli o nazwie pracownicy zdefiniowano klucz główny w typie INTEGER z atrybutami NOT NULL oraz AUTO_INCREMENT. Dodatkowo zdefiniowane zostały pola imie oraz nazwisko. W przypadku wykonania podanej kwerendy SQL, która dodaje dane i pomija pole klucza, w bazie danych MySQL nastąpi

INSERT INTO pracownicy (imie, nazwisko)
VALUES ('Anna', 'Nowak');
A. dodanie rekordu do tabeli, dla klucza głównego zostanie przypisana wartość NULL
B. błąd związany z niewłaściwą liczbą pól
C. zignorowanie polecenia, tabela nie ulegnie zmianie
D. dodanie rekordu do tabeli, dla klucza głównego zostanie przypisana kolejna wartość naturalna
W przypadku tabeli z kluczem głównym typu INTEGER z atrybutem AUTO_INCREMENT, kiedy wprowadzamy nowy rekord i pomijamy pole klucza głównego, baza danych MySQL sama automatycznie przydziela kolejną wartość liczbową dla tego pola. AUTO_INCREMENT to mechanizm, który zapewnia, że każdemu nowemu rekordowi przypisana jest unikalna wartość klucza głównego, zaczynając od wartości początkowej, zwykle 1, i zwiększając ją o 1 z każdym nowym rekordem. Jest to niezwykle użyteczne w sytuacjach, gdy zależy nam na unikalności wartości kluczy głównych, co zapewnia integralność danych i unika konieczności ręcznego określania wartości klucza przy każdym nowym wpisie. Takie podejście jest zgodne ze standardami dobrych praktyk, ponieważ minimalizuje ryzyko błędów związanych z duplikacją danych. Przykładowo, jeśli do tabeli pracownicy dodajemy rekord z danymi pracownika, nie musimy się martwić o wartość identyfikatora, co znacznie upraszcza proces zarządzania danymi. Mechanizm AUTO_INCREMENT jest zatem kluczowy w kontekście zarządzania bazami danych, zapewniając automatyzację i integralność danych.

Pytanie 21

Jakie identyfikatory zostaną zwrócone po wykonaniu kwerendy na prezentowanych rekordach?

SELECT id FROM samochody WHERE rocznik LIKE "2%4";
A. Brak danych.
B. Identyfikatory równe 7 oraz 8.
C. Tylko identyfikator równy 8.
D. Wszystkie identyfikatory.
Prawidłowa odpowiedź wskazuje, że w wyniku działania kwerendy zostaną wybrane rekordy z id równymi 7 oraz 8, ponieważ oba te roczniki zaczynają się cyfrą 2 i kończą na 4, co spełnia warunek LIKE '2%4'. W SQL operator LIKE umożliwia wyszukiwanie wzorców w danych tekstowych i jest bardzo użyteczny w sytuacjach, gdy nieznana jest pełna wartość, a tylko jej część. W praktycznych aplikacjach, takich jak systemy zarządzania bazami danych, często stosuje się ten operator do filtrowania wyników na podstawie niepełnych informacji. Na przykład, jeżeli chciałbyś zidentyfikować wszystkie pojazdy z określonym rocznikiem, użycie LIKE może szybko zawęzić wyniki. Używanie tego operatora w połączeniu z innymi funkcjami SQL, jak GROUP BY czy JOIN, pozwala na kompozycję bardziej złożonych zapytań, co jest standardem w analityce danych.

Pytanie 22

Podczas tworzenia formularza konieczne jest dodanie kontrolki, która odnosi się do kontrolki w innym formularzu. Jakie działania w bazie danych Access są w tym przypadku możliwe?

A. możliwe poprzez określenie ścieżki do kontrolki w atrybucie „Źródło kontrolki”.
B. niemożliwe.
C. możliwe o ile dotyczą danych liczbowych.
D. niemożliwe we wszystkich trybach z wyjątkiem trybu projektowania.
No więc, dobrze zrozumiałeś, że można ustawić kontrolkę, żeby odnosiła się do innej w innym formularzu przez wybór odpowiedniej ścieżki w właściwości „Źródło kontrolki”. W Accessie to naprawdę działa! Dzięki temu masz możliwość dynamicznego wczytywania danych do formularzy, co jest mega przydatne. Wyobraź sobie, że masz formularz A, który korzysta z danych z formularza B – po prostu wpisujesz odpowiednią ścieżkę i wszystko działa. To w sumie jest zgodne z tym, co się robi w projektowaniu baz danych, gdzie ważne jest, żeby unikać zbędnego powielania danych. Dzięki temu, jeśli zaktualizujesz coś w jednym miejscu, to automatycznie odbija się to w innym, co naprawdę ułatwia życie. W praktyce, takie podejście sprawia, że praca z dużymi aplikacjami staje się znacznie prostsza i bardziej efektywna.

Pytanie 23

Aby wykonać usunięcie tabeli, należy użyć kwerendy

A. UNIQUE
B. DELETE
C. DROP TABLE
D. TRUNCATE TABLE
Poprawna odpowiedź to DROP TABLE, ponieważ jest to standardowa komenda SQL używana do całkowitego usunięcia tabeli z bazy danych. Użycie tej komendy powoduje nie tylko usunięcie samej struktury tabeli, ale również wszystkich danych, które były w niej przechowywane. Przykładowo, jeśli mamy tabelę 'Użytkownicy' i chcemy ją usunąć, piszemy: DROP TABLE Użytkownicy; Należy jednak pamiętać, że po wykonaniu tej operacji nie można odzyskać ani tabeli, ani jej danych, dlatego ważne jest, aby przed takim krokiem wykonać odpowiednie kopie zapasowe lub upewnić się, że dane są już zbędne. W kontekście dobrych praktyk, przed usunięciem tabeli warto przeanalizować wpływ na inne obiekty bazy danych, takie jak klucze obce, które mogą być związane z usuwaną tabelą. Istotne jest również zrozumienie, że DROP TABLE nie można użyć, jeśli w tabeli istnieją aktywne ograniczenia lub jeśli jest ona częścią jakiejś transakcji. W takiej sytuacji, czynności te należy zrealizować w odpowiedniej kolejności, aby uniknąć błędów.

Pytanie 24

Jakie są etapy w odpowiedniej kolejności przy tworzeniu aplikacji?

A. Określenie wymagań, analiza oczekiwań klienta, programowanie, wdrożenie, testowanie
B. Programowanie, analiza oczekiwań klienta, określenie wymagań, wdrożenie, testowanie
C. Analiza oczekiwań klienta, określenie wymagań, programowanie, wdrożenie, testowanie
D. Analiza oczekiwań klienta, określenie wymagań, programowanie, testowanie, wdrożenie
Zrozumienie procesu tworzenia aplikacji wymaga znajomości właściwej sekwencji działań, co często bywa źródłem nieporozumień. Wiele osób uważa, że proces rozpoczyna się od samoistnego tworzenia aplikacji, co jest fundamentalnie błędne. Bez wcześniejszej analizy wymagań klienta, trudno jest określić, co tak naprawdę jest potrzebne. Przykładem tego błędnego myślenia jest odpowiedź, która zakłada, że tworzenie aplikacji może nastąpić przed zdefiniowaniem wymagań. Taki krok może prowadzić do stworzenia produktu, który nie spełnia oczekiwań użytkowników końcowych, co wiąże się z niepotrzebnymi kosztami korekcji i opóźnieniami w dostarczeniu finalnego rozwiązania. Wiele projektów zakończonych niepowodzeniem miało właśnie swoje źródło w braku odpowiednich faz analizy i specyfikacji, co jest wyraźnie widoczne w metodykach projektowych takich jak Waterfall. Nieprzemyślane wdrożenie bez wcześniejszych testów stanowi kolejny poważny błąd, ponieważ może prowadzić do sytuacji, w której użytkownicy otrzymują produkt pełen błędów i niedociągnięć. Zastosowanie podejścia opartego na solidnych praktykach inżynieryjnych, takich jak zbieranie wymagań, ich dokumentacja oraz przeprowadzanie testów przed wdrożeniem, jest kluczowe dla zapewnienia sukcesu projektu i satysfakcji użytkowników.

Pytanie 25

Jakie znaczenie ma akronim ACID w kontekście SQL?

A. atomic, consistent, iss, dependable
B. atomic, comming, is, do
C. atomic, consistent, isolated, durable
D. atomic, constaint, isolated, dependable
Akronim ACID odnosi się do czterech kluczowych właściwości transakcji w systemach zarządzania bazami danych, które zapewniają ich niezawodność i integralność. Pierwszym elementem jest atomowość (atomic), co oznacza, że transakcje są niepodzielne; albo wszystkie operacje w ramach transakcji są wykonane, albo żadna. Przykładem może być przeniesienie pieniędzy z jednego konta na drugie, gdzie zarówno operacja debetowa, jak i kredytowa muszą być zakończone pomyślnie. Drugą właściwością jest spójność (consistent), co zapewnia, że wszystkie transakcje prowadzą do spójnego stanu bazy danych, przestrzegając wszelkich reguł i ograniczeń. Izolacja (isolated) gwarantuje, że równolegle wykonywane transakcje nie wpływają na siebie nawzajem, co jest kluczowe w przypadku dużych systemów, aby uniknąć konfliktów. Ostatnim aspektem jest trwałość (durable), co oznacza, że po zakończeniu transakcji, wszystkie zmiany są trwale zapisane, nawet w przypadku awarii systemu. Te cztery właściwości są fundamentem dla standardów takich jak SQL, co czyni je kluczowymi dla projektowania i zarządzania bazami danych.

Pytanie 26

Tabela góry, której fragment został pokazany, obejmuje polskie pasma górskie oraz ich szczyty. Podaj kwerendę obliczającą dla każdego pasma górskiego średnią wysokość szczytów.

A. SELECT pasmo, AVG(wysokosc) FROM gory LIMIT pasmo
B. SELECT pasmo, AVG(wysokosc) FROM gory GROUP BY pasmo
C. SELECT pasmo, SUM(wysokosc) FROM gory GROUP BY pasmo
D. SELECT pasmo, COUNT(wysokosc) FROM gory ORDER BY pasmo
Gratulacje! Twoja odpowiedź jest prawidłowa. Zapytanie 'SELECT pasmo, AVG(wysokosc) FROM gory GROUP BY pasmo;' jest poprawne. Funkcja AVG() jest jedną z funkcji agregujących w SQL, które służą do wykonania pewnej operacji na zestawie wartości. W tym przypadku oblicza ona średnią wartość wysokości szczytów dla każdego z pasm górskich. Funkcja GROUP BY jest natomiast klauzulą SQL, która jest używana do grupowania wartości z różnych wierszy w jedną grupę. W tym przypadku GROUP BY pasmo oznacza, że wyniki zostaną pogrupowane według pasma górskiego, co pozwala obliczyć średnią wysokość szczytów dla każdego z pasm. Jest to zgodne z treścią pytania. Pamiętaj, że wykorzystanie funkcji agregujących w SQL pozwala na efektywne przetwarzanie dużych ilości danych, co jest niezwykle ważne w praktycznych zastosowaniach baz danych.

Pytanie 27

Aby w tabeli praca, tworzonej w SQL, dodać warunek w kolumnie stawka, który nakazuje przyjmowanie dodatnich wartości rzeczywistych mniejszych niż 50, należy zastosować zapis

A. ... stawka float CHECK(stawka>0 AND stawka<50.00)
B. ... stawka float CHECK(stawka BETWEEN 0 AND 50.00)
C. ... stawka float CHECK(stawka IN (0, 50.00))
D. ... stawka float CHECK(stawka>0 OR stawka<50.00)
Aby w tabeli SQL dodać warunek dla kolumny 'stawka', który zapewni, że wartości będą rzeczywiste, dodatnie i mniejsze od 50, należy skorzystać z klauzuli CHECK. Odpowiedni zapis to 'CHECK(stawka > 0 AND stawka < 50.00)'. Klauzula CHECK w SQL pozwala na definiowanie ograniczeń dla wartości kolumny, co jest kluczowe w zapewnieniu integralności danych. W tym przypadku, użycie operatora AND jest istotne, ponieważ umożliwia jednoczesne sprawdzenie dwóch warunków: że 'stawka' jest większa od 0 oraz mniejsza od 50. Zastosowanie tego warunku jest zgodne z zasadami normalizacji bazy danych, która ma na celu eliminację nieprawidłowych danych. Przykładowo, jeśli spróbujesz wprowadzić wartość 0 lub 50 do kolumny 'stawka', system zwróci błąd, co zapobiega wprowadzeniu niepożądanych danych. Takie podejście jest również zalecane w standardach SQL, takich jak ANSI SQL, które podkreślają znaczenie walidacji danych.

Pytanie 28

Pole insert_id zdefiniowane w bibliotece MySQLi w języku PHP może służyć do

A. pobrania najwyższego indeksu z bazy, aby po jego inkrementacji wstawić pod niego dane
B. uzyskania id ostatnio dodanego wiersza
C. pozyskania kodu błędu, jeśli proces dodawania wiersza się nie powiódł
D. pobrania pierwszego dostępnego indeksu w bazie, tak aby można było pod nim dodać nowe dane
Pole insert_id w bibliotece MySQLi w języku PHP jest kluczowym narzędziem do uzyskiwania identyfikatora (ID) ostatnio wstawionego rekordu w bazie danych. Jest to szczególnie przydatne w kontekście operacji wstawiania nowych danych, gdzie często chcemy wiedzieć, jaki identyfikator został przypisany do nowego rekordu, aby móc go później wykorzystać, na przykład w odniesieniach do powiązanych tabel. W praktyce, po wykonaniu zapytania INSERT, możemy od razu pobrać ID nowo wstawionego rekordu, co jest istotne w relacyjnych bazach danych, gdzie klucze główne są często generowane automatycznie. Przykładowe zastosowanie to sytuacja, gdy wstawiamy nowego użytkownika do tabeli 'users' i chcemy również dodać rekord do tabeli 'profiles', który będzie powiązany z tym użytkownikiem. Wówczas, po wstawieniu użytkownika, możemy użyć insert_id, aby uzyskać jego ID i użyć go do wstawienia do 'profiles'. Używanie insert_id jest zgodne z najlepszymi praktykami, które zalecają minimalizowanie liczby zapytań do bazy danych oraz zapewnienie spójności danych.

Pytanie 29

W jaki sposób można ocenić normalizację przedstawionej tabeli?

FirmaAdres
Forbotul. Krótka 11, 22-222 Warszawa
Marbotul. Długa 5, 33-333 Warszawa
A. Tabela jest w trzeciej postaci normalnej
B. Tabela nie została znormalizowana
C. Tabela znajduje się w drugiej postaci normalnej
D. Tabela znajduje się w pierwszej postaci normalnej
Pierwsza postać normalna wymaga aby wszystkie wartości atrybutów w rekordzie były atomowe czyli nieredukowalne Tabela przedstawiona w zadaniu nie spełnia tego wymogu ponieważ adresy nie są rozbite na osobne elementy takie jak ulica miasto i kod pocztowy co uniemożliwia bardziej złożoną manipulację danymi oraz precyzyjne wyszukiwanie Druga postać normalna wymaga aby wszystkie atrybuty nie będące częścią klucza głównego były w pełni funkcjonalnie zależne od całego klucza Tabela z pytania nie spełnia tych kryteriów ponieważ istnieje redundancja i brak wyraźnej struktury Klucz główny w dobrze zaprojektowanej tabeli bazy danych powinien jednoznacznie identyfikować każdy wiersz co nie jest widoczne w tej strukturze Trzecia postać normalna idzie krok dalej eliminując zależności przechodnie między atrybutami co w przypadku tej tabeli również nie ma zastosowania Problemem tutaj jest brak rozdzielenia danych na mniejsze tabele co prowadzi do redundancji i potencjalnych błędów przy aktualizacji danych często określanych jako anomaly W dobrze znormalizowanej bazie danych oddzielenie informacji takich jak dane adresowe umożliwia lepszą organizację danych ich spójność oraz zwiększa efektywność operacji na bazie danych

Pytanie 30

Które z poniższych stwierdzeń o językach programowania jest fałszywe?

A. JavaScript to język skryptowy
B. SQL jest językiem programowania strukturalnego
C. PHP służy do tworzenia stron w czasie rzeczywistym
D. C++ jest językiem obiektowym
C++ jest językiem programowania, który wspiera paradygmat programowania obiektowego, ale nie ogranicza się jedynie do tego modelu. Język ten umożliwia również programowanie proceduralne, co sprawia, że jest niezwykle elastyczny. Oprócz możliwości tworzenia klas i obiektów, C++ pozwala na bezpośrednią manipulację pamięcią, co daje programistom dużą kontrolę nad wydajnością aplikacji. JavaScript, z kolei, jest językiem skryptowym, który jest głównie używany w kontekście aplikacji webowych, umożliwiając interaktywność i dynamiczne aktualizacje treści na stronach internetowych. Jego wszechstronność sprawia, że jest podstawowym narzędziem w tworzeniu nowoczesnych aplikacji. PHP to język skryptowy stworzony z myślą o tworzeniu dynamicznych stron internetowych. Umożliwia on generowanie treści w czasie rzeczywistym, w zależności od zachowań użytkowników i danych w bazach danych. Dzięki integracji z HTML i bazami danych, PHP pozwala na tworzenie złożonych aplikacji webowych. Wszystkie te języki posiadają swoje unikalne cechy i zastosowania, które czynią je istotnymi w różnych kontekstach programowania.

Pytanie 31

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

A. wybierania, dodawania kolumn oraz zmiany struktury tabeli o nazwie klienci
B. wybierania, wstawiania oraz aktualizacji danych w tabeli o nazwie klienci
C. wybierania, wstawiania oraz aktualizacji danych w każdej tabeli w bazie o nazwie klienci
D. wybierania, dodawania kolumn oraz zmiany struktury wszystkich tabel w bazie o nazwie klienci
Polecenie SQL GRANT SELECT, INSERT, UPDATE ON klienci TO anna przyznaje użytkownikowi anna określone prawa do tabeli klienci. W ramach tego polecenia użytkownik zyskuje możliwość wykonywania trzech podstawowych operacji: wybierania danych (SELECT), dodawania nowych rekordów (INSERT) oraz aktualizacji istniejących danych (UPDATE). Jest to zgodne z zasadą minimalnych uprawnień, co oznacza, że użytkownik otrzymuje jedynie te prawa, które są niezbędne do wykonania swoich zadań. Przykładowo, jeśli anna jest analitykiem danych, może potrzebować dostępu do danych klientów w celu generowania raportów, a tym samym przyznanie jej takich praw jest uzasadnione. Ważne jest, aby zawsze nadawać prawa w sposób świadomy i zgodny z polityką bezpieczeństwa organizacji, aby zminimalizować ryzyko nieautoryzowanego dostępu do danych. Tego typu operacje są standardem zarówno w administracji bazami danych, jak i w codziennym zarządzaniu użytkownikami w systemach informacyjnych.

Pytanie 32

W języku SQL po wykonaniu poniższego zapytania zostanie

A. zmieniona nazwa kolumny na grupa
B. dodana kolumna grupa
C. zmieniona nazwa tabeli na grupa
D. usunięta kolumna grupa
Pierwsza odpowiedź sugeruje, że kolumna 'grupa' zostanie dodana do tabeli, co jest błędne, ponieważ użycie słowa 'DROP' sugeruje usunięcie, a nie dodanie. W SQL do dodawania kolumn używa się komendy 'ADD', a nie 'DROP'. Druga odpowiedź, która stwierdza, że kolumna zostanie usunięta, jest poprawna, ale nie są podane inne aspekty jej działania. Trzecia odpowiedź dotyczy zmiany nazwy tabeli na 'grupa', co również jest niepoprawne, ponieważ komenda 'ALTER TABLE' z 'DROP COLUMN' nie ma na celu zmiany nazwy tabeli, lecz jedynie modyfikację jej struktury poprzez usunięcie kolumny. Zmiana nazwy tabeli wymagałaby użycia komendy 'RENAME'. Ostatnia odpowiedź, która mówi, że zmienia nazwę kolumny na 'grupa', jest również fałszywa, ponieważ do zmiany nazwy kolumny w SQL używa się komendy 'ALTER COLUMN' z 'RENAME', a nie 'DROP'. Tak więc, wszystkie te odpowiedzi zawierają błędne interpretacje dotyczące funkcji komendy 'ALTER TABLE DROP COLUMN', a zrozumienie tej komendy jest kluczowe dla prawidłowego zarządzania strukturą bazy danych.

Pytanie 33

W tabeli podzespoly należy zaktualizować wartość pola URL na 'toshiba.pl' dla wszystkich rekordów, gdzie pole producent to TOSHIBA. W języku SQL ta zmiana będzie wyglądała następująco

A. UPDATE podzespoly SET URL='toshiba.pl';
B. UPDATE podzespoly SET URL='toshiba.pl' WHERE producent='TOSHIBA';
C. UPDATE producent='TOSHIBA' SET URL='toshiba.pl';
D. UPDATE podzespoly.producent='TOSHIBA' SET URL='toshiba.pl';
Odpowiedź ta jest prawidłowa, ponieważ poprawnie wykorzystuje składnię języka SQL do aktualizacji danych w tabeli. W instrukcji UPDATE podzespoly SET URL='toshiba.pl' WHERE producent='TOSHIBA'; najpierw wskazujemy tabelę, w której chcemy dokonać zmian, czyli 'podzespoly'. Następnie używamy klauzuli SET, aby zdefiniować nową wartość pola URL, a klauzula WHERE precyzuje, które rekordy mają zostać zaktualizowane, w tym przypadku te, gdzie producent to 'TOSHIBA'. To podejście jest zgodne z dobrymi praktykami, ponieważ stosowanie klauzuli WHERE zapobiega masowym aktualizacjom, które mogą prowadzić do niezamierzonych zmian w danych. Przykładowo, jeśli chcielibyśmy zaktualizować tylko określoną grupę produktów, klauzula WHERE pozwala na precyzyjne określenie zakresu zmian. Wprowadzenie takiej modyfikacji w bazie danych, z uwzględnieniem warunków, minimalizuje ryzyko błędów i poprawia integralność danych.

Pytanie 34

W bazie danych MySQL znajduje się tabela z programami komputerowymi, posiadająca kolumny: nazwa, producent, rokWydania. Jaką kwerendę SELECT należy zastosować, aby uzyskać listę wszystkich producentów, unikając powtórzeń?

A. SELECT producent FROM programy WHERE UNIQUE
B. SELECT UNIQUE producent FROM programy
C. SELECT producent FROM programy WHERE producent NOT DUPLICATE
D. SELECT DISTINCT producent FROM programy
Aby uzyskać unikalne wartości z kolumny w bazie danych MySQL, należy użyć słowa kluczowego DISTINCT. W przypadku zapytania SELECT DISTINCT producent FROM programy; zapytanie to zwraca wszystkie unikalne nazwy producentów z tabeli programy. Słowo kluczowe DISTINCT działa na poziomie wierszy, co oznacza, że przeszukuje kolumnę producent, eliminując z wyników wszelkie powtarzające się wartości. Jest to szczególnie przydatne w analizie danych, gdzie istotne jest uzyskanie przeglądu unikalnych elementów. Na przykład, jeżeli tabela zawiera kilka wierszy z tym samym producentem, zapytanie to zwróci jedynie jeden wiersz dla każdego producenta. Przykład zastosowania: w przypadku tabeli zawierającej wartości jak 'Microsoft', 'Apple', 'Microsoft', wynik zapytania DISTINCT będzie obejmował 'Microsoft' i 'Apple'. W MySQL użycie DISTINCT jest zgodne ze standardem SQL i jest wspierane w większości systemów baz danych, co czyni je bardzo uniwersalnym narzędziem w pracy z danymi.

Pytanie 35

Na tabeli muzyka, przedstawionej na rysunku, zostało wykonane następujące zapytanie SQL. Jaki wynik zwróci ta kwerenda?

SELECT wykonawca FROM `muzyka` WHERE wykonawca LIKE 'C%w';
IDtytul_plytywykonawcarok_nagraniaopis
1Czas jak rzekaCzeslaw Niemen2005Przyjdz W Taka Noc itd.
2IkonaStan Borys2014
3AerolitCzeslaw Niemen2017Winylowa reedycja płyty „Aerolit”.
4JourneyMikolaj Czechowski2013
A. Czeslaw, Niemen
B. pusty wynik
C. Czeslaw
D. Czeslaw, Czechowski
Niepoprawna odpowiedź wynika ze złego zrozumienia, jak działa operator LIKE w zapytaniach SQL. Operator LIKE jest używany do porównania wartości z określonym wzorcem. W naszym przypadku, wzorzec to 'C%w', gdzie '%' oznacza dowolne zero lub więcej znaków. Czyli szukamy wykonawców, których nazwy zaczynają się na 'C' i kończą na 'w'. Błędne odpowiedzi sugerują, że niezrozumienie polega na tym, że '%w' miałoby oznaczać 'wszystkie nazwy kończące się na w', co nie jest prawdą. W rzeczywistości, '%w' oznacza 'dowolne znaki, po których następuje litera w'. Dlatego, żadne z podanych wykonawców nie spełnia tego kryterium, a wynik zapytania jest pusty. To ważne, aby zrozumieć, jak działają wzorce w SQL, gdyż są one bardzo użyteczne przy wyszukiwaniu danych w bazie.

Pytanie 36

Na tabeli 'dania', której wiersze zostały pokazane, wykonano przedstawioną kwerendę:

SELECT * FROM dania WHERE typ < 3 AND cena < 30 LIMIT 5;
Ile wierszy wybierze kwerenda?
idtypnazwacena
11Gazpacho20
21Krem z warzyw25
31Gulaszowa ostra30
42Kaczka i owoc30
52Kurczak pieczony40
62wieprzowy przysmak35
72Mintaj w panierce30
82Alle kotlet30
93Owoce morza20
103Grzybki, warzywka, sos15
113Orzechy i chipsy10
123Tatar i jajo15
133Bukiet warzyw10
A. 5
B. 13
C. 8
D. 2
Kwerenda SQL zawarta w pytaniu to `SELECT * FROM dania WHERE typ < 3 AND cena < 30 LIMIT 5;`. Analizując tę kwerendę, możemy zauważyć, że wybiera ona wiersze z tabeli `dania`, gdzie wartość kolumny `typ` jest mniejsza niż 3 oraz wartość kolumny `cena` jest mniejsza niż 30. Sprawdźmy dane w tabeli: dla `typ` 1 mamy trzy dania: Gazpacho (cena 20), Krem z warzyw (cena 25) oraz Gulaszowa ostra (cena 30), z których dwa pierwsze spełniają warunek dotyczący ceny. Dla `typ` 2 mamy Kaczkę i owoc (cena 30), Kurczaka pieczonego (cena 40) oraz Wieprzowy przysmak (cena 35), które nie spełniają wymogu ceny. W rezultacie, wiersze, które spełniają oba warunki to: Gazpacho oraz Krem z warzyw. Zatem kwerenda wybierze 2 wiersze. W kontekście praktycznym, umiejętność tworzenia filtrów w kwerendach SQL jest kluczowa w analizie danych oraz w tworzeniu raportów, co jest bardzo istotne w pracy z bazami danych.

Pytanie 37

Zawarta baza danych składa się z trzech tabel oraz dwóch relacji. Aby uzyskać informacje o wszystkich lekarzach przypisanych do wybranego pacjenta, konieczne jest porównanie kluczy

Ilustracja do pytania
A. Lekarze.id = Recepty.id
B. Lekarze.id = Pacjenci.Recepty_id
C. Lekarze.id = Pacjenci.id
D. Lekarze.id = Pacjenci.Lekarze_id
Błędne podejście do łączenia tabel w bazie danych może wynikać z niewłaściwego zrozumienia relacji kluczowych. Rozważmy odpowiedzi, które zakładają niepoprawne połączenia. Lekarze.id = Recepty.id jest błędne ponieważ identyfikator lekarza nie może być bezpośrednio związany z identyfikatorem recepty. Recepty są niezależnym bytem i ich klucze główne nie mają bezpośredniego związku z kluczami lekarzy. To samo dotyczy założenia Lekarze.id = Pacjenci.id które zakłada bezpośrednią relację między pacjentem a lekarzem przez ich identyfikatory co nie jest zgodne z typowymi strukturami baz danych. Każdy pacjent i lekarz ma swój unikalny identyfikator co oznacza brak bezpośredniej relacji między nimi, a relacja jest realizowana poprzez klucz obcy w tabeli Pacjenci. Ostatnia błędna opcja Lekarze.id = Pacjenci.Recepty_id znowu próbuje łączyć tabele poprzez klucze które nie są bezpośrednio związane. Recepty_id w tabeli Pacjenci odnosi się do konkretnej recepty przypisanej pacjentowi, a nie do lekarza. Takie błędne koncepcyjnie podejścia mogą prowadzić do nieprawidłowych wyników zapytań i utraty integralności danych co jest sprzeczne z dobrymi praktykami projektowania baz danych które zakładają jasno zdefiniowane i logicznie spójne relacje między tabelami przez odpowiednie klucze obce i podstawowe. Zrozumienie i poprawne stosowanie tych zasad jest kluczowe w efektywnym zarządzaniu i analizie danych w systemach relacyjnych.

Pytanie 38

W języku PHP nie można zrealizować

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

Pytanie 39

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

A. Obsługa danych uzyskanych z bazy
B. Informacja o udanym połączeniu z bazą
C. Obsługa błędu połączenia
D. Zamknięcie połączenia z bazą danych
Wybór obsługi błędu połączenia jako prawidłowej odpowiedzi jest zgodny z najlepszymi praktykami programistycznymi w zakresie zarządzania połączeniami z bazą danych. W sytuacji, gdy połączenie nie zostanie nawiązane, ważne jest, aby skutecznie obsłużyć ten błąd. Tylko w ten sposób programista może zrozumieć, co poszło nie tak, a także podjąć odpowiednie kroki w celu skorygowania problemu. Na przykład można wyświetlić komunikat informujący o błędzie, logować go w systemie lub wysłać powiadomienie do administratora. Dobrą praktyką jest również implementacja mechanizmów ponownego łączenia lub alternatywnych metod połączenia, jeśli to możliwe. Warto również zaznaczyć, że niewłaściwe zarządzanie połączeniem z bazą danych może prowadzić do poważnych konsekwencji, takich jak utrata danych, a nawet awarie aplikacji. Dlatego, umieszczając kod do obsługi błędów w instrukcji warunkowej, programista wykazuje się odpowiedzialnością oraz dbałością o jakość kodu.

Pytanie 40

Tabela programy zawiera kolumny: nazwa_programu, nazwa_producenta, rok_wydania. Jak należy zapisać kwerendę SELECT, aby uzyskać wszystkie unikalne nazwy producentów?

A. SELECT nazwa_producenta FROM programy WHERE UNIQUE
B. SELECT DISTINCT nazwa_producenta FROM programy
C. SELECT nazwa_producenta FROM programy WHERE nazwa_producenta NOT DUPLICATE
D. SELECT UNIQUE nazwa_producenta FROM programy
Odpowiedzi, które wykorzystują terminologię niezgodną ze standardami SQL, prowadzą do błędnych wniosków. W przypadku użycia słowa kluczowego UNIQUE, które nie jest używane w kontekście kwerendy SELECT, użytkownicy mogą błędnie sądzić, że powiązanie z tym terminem umożliwia pozyskanie unikalnych wartości. W rzeczywistości UNIQUE jest używane w kontekście ograniczeń (constraints) w definiowaniu tabeli, a nie w zapytaniach. To podejście może prowadzić do zrozumienia, że istnieje sposób na wykorzystanie tego słowa kluczowego w zapytaniach, co jest mylące. Z kolei propozycje, które odwołują się do frazy WHERE z dodatkowymi warunkami, jak UNIQUE czy NOT DUPLICATE, są również niepoprawne, ponieważ nie są to poprawne składniowo konstrukcje w SQL. Klauzula WHERE służy do filtrowania wyników na podstawie określonych warunków, ale nie ma możliwości zastosowania przy niej unikalnych filtrów w taki sposób. Tego rodzaju nieporozumienia mogą prowadzić do niepoprawnych wyników i frustracji w pracy z bazami danych, dlatego niezwykle ważne jest, aby dokładnie zapoznawać się z dokumentacją i standardami języka SQL, aby unikać takich pułapek. Właściwe zrozumienie terminologii i składni jest kluczowe w efektywnym zarządzaniu danymi.