Kwalifikacja: INF.03 - Tworzenie i administrowanie stronami i aplikacjami internetowymi oraz bazami danych
Rozpoczęcie: 30 września 2026 16:56
Zakończenie: 30 września 2026 17:17
Egzamin zdany!
Wynik: 24/40 punktów (60,0%)
Wymagane minimum: 20 punktów (50%)
Twój wynik na tle innych
Twój wynik jest lepszy niż 41% podejść do kwalifikacji INF.03.
Porównanie z 43974 zakończonymi podejściami do tej kwalifikacji (dane zbiorcze, bez wyników indywidualnych).
Zachowaj ten wynik na koncie
Załóż darmowe konto albo zaloguj się - ten egzamin przypiszemy do Twojego konta, więc wrócisz do swoich błędów, będziesz śledzić postęp i dostaniesz powtórki dobrane do Twoich odpowiedzi.
Poprawna odpowiedź. Podana funkcja w języku PHP demonstruje zastosowanie polecenia SQL SELECT które jest używane do pobierania danych z bazy danych MySQL. Funkcja mysql_query jest używana do wykonywania zapytań SQL w kontekście bazy danych MySQL. W tym przypadku zapytanie SQL SELECT * FROM napisy pobiera wszystkie rekordy z tabeli o nazwie napisy. W praktyce wybór danych przy użyciu komendy SELECT jest kluczowy w aplikacjach PHP które działają z bazami danych ponieważ pozwala na dynamiczne generowanie zawartości strony internetowej w oparciu o informacje przechowywane w bazie. Ważne jest przestrzeganie najlepszych praktyk takich jak użycie funkcji mysqli_query czy PDO w nowych aplikacjach PHP w celu zapewnienia bezpieczeństwa i wydajności ponieważ mysql_query jest przestarzałe. Dodatkowo należy stosować techniki zabezpieczające przed SQL injection takie jak przygotowane zapytania co zwiększa bezpieczeństwo aplikacji
Pytanie 2
W języku PHP wykonano poniższą operację. Aby uzyskać wszystkie rezultaty tego zapytania, należy:
$tab=mysqli_query($db,"SELECT imie FROM Osoby WHERE wiek < 18");
A. zaindeksować zmienną tab, tab[0] to pierwsze imię
B. użyć polecenia mysql_fetch
C. zastosować pętlę z poleceniem mysqli_fetch_rowTwoja odpowiedź
D. wyświetlić zmienną $db
Poprawna odpowiedź. Odpowiedź, która zakłada zastosowanie pętli z poleceniem mysqli_fetch_row, jest poprawna, ponieważ po wykonaniu zapytania do bazy danych za pomocą mysqli_query, otrzymujemy wynik w postaci zestawu rekordów, który musimy przetworzyć. Funkcja mysqli_fetch_row pozwala na iteracyjne pobieranie wierszy z tego zestawu, co jest niezbędne do wyświetlenia wszystkich imion osób, które spełniają warunek wieku poniżej 18 lat. Przykładowy kod do iteracji może wyglądać tak: while($wiersz = mysqli_fetch_row($tab)) { echo $wiersz[0]; } W ten sposób każda iteracja w pętli wyświetli pierwszą kolumnę (imie) z każdego wiersza rezultatu. Tego typu podejście jest zgodne z dobrymi praktykami, ponieważ pozwala na efektywne zarządzanie pamięcią i ogranicza ryzyko przeciążenia systemu, szczególnie w przypadku dużych zbiorów danych. Ważne jest, aby pamiętać, że połączenie z bazą danych i zapytania powinny być zawsze odpowiednio zamykane i zabezpieczane przed atakami, co jest istotne w kontekście bezpieczeństwa aplikacji.
Pytanie 3
W której notacji diagramów ER został zapisany model związków encji przedstawiony na ilustracji?
A. Bachmana.
B. Min-Max.
C. Chena.Twoja odpowiedź
D. Martina.Poprawna odpowiedź
Niepoprawna odpowiedź. Na diagramie przedstawiono model w notacji Martina, a nie w żadnej z pozostałych wymienionych. Warto zrozumieć, czym ta notacja różni się od innych, bo w praktyce projektowania baz danych bardzo łatwo je ze sobą pomylić. Notacja Chena to bardziej „akademickie” podejście do ERD. Encje są zwykle rysowane jako prostokąty, ale atrybuty pojawiają się w osobnych elipsach, połączonych liniami z encją. Klucz główny bywa podkreślony, a związki są reprezentowane przez romby z nazwą relacji. Na naszym diagramie nic takiego nie ma – atrybuty są w środku prostokąta, w formie listy, a nie jako osobne kształty, więc to już mocny sygnał, że to nie jest Chen. Z kolei notacja Bachmana historycznie kojarzy się z modelami sieciowymi i specyficznym sposobem prezentowania struktur danych, często z łamanymi liniami i strzałkami, raczej nie przypomina tabel z nagłówkiem i listą pól. W typowych podręcznikach do systemów baz danych Bachman jest pokazywany jako dość stary styl, dziś mało używany przy klasycznym relacyjnym ERD, więc mało prawdopodobne, by tak wyglądał nowoczesny diagram klient–zakup–towar. Odpowiedź Min-Max jest też myląca, bo Min-Max nie jest nazwiskiem autora notacji, tylko sposobem zapisu krotności relacji, np. (0,1), (1,n). Można taki zapis wykorzystać zarówno z notacją Chena, jak i z innymi, ale sam diagram z obrazka nie używa jawnego oznaczenia min/max przy relacjach – widzimy crow’s foot, czyli styl typowy dla Martina. Typowy błąd w tego typu pytaniach polega na tym, że ktoś kojarzy jeden detal, np. gdzieś widział oznaczenia min-max, i automatycznie zakłada, że każda notacja z relacjami i krotnościami to „Min-Max”. Tutaj jednak kluczowe są kształty encji i sposób zapisu atrybutów: prostokąt z nagłówkiem i lista pól jak w tabeli, bez elips i rombów, bez dodatkowych znaczników kluczy – to bardzo klasyczny, praktyczny styl używany przy projektowaniu relacyjnych baz danych, właśnie w notacji Martina. Dobrze jest więc patrzeć na diagram całościowo, a nie tylko na pojedynczy symbol, bo wtedy łatwiej uniknąć takich pomyłek.
Pytanie 4
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. wstawiania oraz modyfikacji danych we wszystkich tabelach bazy sklep
C. wstawiania oraz modyfikacji danych w tabeli sklep
D. tworzenia oraz modyfikacji struktury wszystkich tabel w bazie sklepTwoja odpowiedź
Poprawna odpowiedź. 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 5
Dodanie do tabeli Produkty kolumny data_produkcji zostanie wykonane kwerendą SQL
A. ALTER TABLE Produkty DROP data_produkcji DATE;
B. ALTER TABLE Produkty ADD DATE data_produkcji;
C. ALTER TABLE Produkty ADD data_produkcji DATE;Twoja odpowiedź
D. ALTER TABLE Produkty DROP COLUMN data_produkcji DATE;
Poprawna odpowiedź. Prawidłowa odpowiedź wykorzystuje dokładną składnię polecenia ALTER TABLE, którą stosuje się w SQL do modyfikowania struktury istniejącej tabeli. Instrukcja `ALTER TABLE Produkty ADD data_produkcji DATE;` robi dwie kluczowe rzeczy: wskazuje tabelę, którą zmieniamy (`Produkty`) oraz dodaje nową kolumnę (`data_produkcji`) z określonym typem danych (`DATE`). Taka forma jest zgodna z typową składnią w popularnych systemach bazodanowych, jak MySQL, PostgreSQL, SQL Server czy Oracle (choć drobne różnice składniowe mogą się pojawiać w innych, bardziej egzotycznych systemach). W praktyce oznacza to, że po wykonaniu tej komendy tabela zyska nową kolumnę, w której można przechowywać datę produkcji każdego produktu. Typ `DATE` służy do przechowywania samej daty (rok, miesiąc, dzień), bez czasu. To jest dobre rozwiązanie, jeśli interesuje nas tylko kiedy produkt został wyprodukowany, a nie konkretna godzina. W wielu projektach w technikum czy w pracy zawodowej taka kolumna przydaje się np. do wyliczania terminu przydatności, raportów wiekowania towaru, filtrowania produktów po dacie produkcji, a nawet do prostych analiz, kiedy dana partia była wytwarzana. Moim zdaniem warto od razu kojarzyć sobie taką komendę z dobrymi praktykami modelowania danych: nazwa kolumny powinna być czytelna i jednoznaczna (tutaj `data_produkcji` bardzo dobrze opisuje zawartość), typ danych powinien być możliwie najbardziej dopasowany do przechowywanej informacji (tu `DATE`, a nie np. `VARCHAR`), a zmiany struktury tabeli trzeba wykonywać świadomie, najlepiej mając kopię zapasową bazy lub przynajmniej danej tabeli. W realnych systemach produkcyjnych często dodaje się też ograniczenia, np. `NOT NULL` albo domyślną wartość, na przykład: `ALTER TABLE Produkty ADD data_produkcji DATE NOT NULL DEFAULT CURRENT_DATE;` W testach i nauce zaczyna się jednak od prostszej wersji, takiej jak w tym pytaniu, żeby dobrze zapamiętać podstawowy schemat: `ALTER TABLE <nazwa_tabeli> ADD <nazwa_kolumny> <typ_danych>;`.
Pytanie 6
Którą kwerendę należy wykonać, aby zaktualizować wszystkim rekordom z tabeli pracownicy wartość w kolumnie plec na K, przyjmując na potrzeby zadania, że każde imię żeńskie kończy się literą a?
A.
ALTERTABLEpracownicySETplec='K'WHEREimie='%a';
B.
UPDATEpracownicySETplec='K'WHEREimie='%a';
C.
ALTERTABLEpracownicySETplec='K'WHEREimieLIKE'%a';
D.
UPDATEpracownicySETplec='K'WHEREimieLIKE'%a';
Twoja odpowiedź
Poprawna odpowiedź. Poprawna jest kwerenda: UPDATE pracownicy SET plec='K' WHERE imie LIKE '%a';. Po pierwsze użyty jest właściwy typ polecenia SQL do modyfikacji danych w tabeli. Do zmiany wartości w istniejących rekordach zawsze używamy instrukcji UPDATE, a nie ALTER TABLE. ALTER TABLE służy do zmiany struktury tabeli (np. dodanie kolumny, zmiana typu danych, usunięcie kolumny), a nie do operowania na danych w wierszach. To jest taki podstawowy podział: DDL (Data Definition Language) – np. ALTER TABLE, CREATE, DROP – do definicji struktury; DML (Data Manipulation Language) – np. SELECT, INSERT, UPDATE, DELETE – do pracy na rekordach. W tym zadaniu ewidentnie potrzebna jest operacja DML. Druga ważna rzecz to warunek WHERE imie LIKE '%a'. Operator LIKE służy do porównywania tekstów z wykorzystaniem wzorców. Symbol % oznacza „dowolny ciąg znaków (również pusty)”, więc wzorzec '%a' oznacza: dowolny ciąg znaków zakończony literą „a”. Dokładnie o to chodzi w zadaniu: przyjmujemy założenie, że każde imię żeńskie kończy się na „a”, więc chcemy zaktualizować wszystkie rekordy, gdzie kolumna imie kończy się na „a”. Gdybyśmy chcieli szukać imion zaczynających się na „A”, używalibyśmy 'A%'. Moim zdaniem warto zapamiętać ten schemat, bo w praktyce bardzo często stosuje się LIKE do prostych filtrów tekstowych: wyszukiwanie użytkowników po fragmencie loginu, znajdowanie produktów po części nazwy, filtrowanie adresów e-mail po domenie itp. Przykład: UPDATE klienci SET status='VIP' WHERE nazwisko LIKE 'Nowak%'; – zaktualizuje wszystkich Nowaków. Albo: UPDATE produkty SET promocja=1 WHERE nazwa LIKE '%kabel%'; – zaznaczy jako promocyjne wszystkie produkty, których nazwa zawiera słowo „kabel”. W dobrych praktykach zaleca się uważać z aktualizacjami bez WHERE, bo wtedy zmieniamy wszystkie rekordy w tabeli. Tutaj warunek LIKE '%a' pełni rolę bezpiecznego filtra. W wielu systemach bazodanowych warto też pamiętać, że domyślnie porównania tekstowe mogą być niewrażliwe na wielkość liter (collation), więc 'a' i 'A' mogą być traktowane tak samo, ale to już zależy od konfiguracji bazy. W kontekście egzaminów zawodowych i pracy z SQL-em takie zadanie to klasyk – łączy poprawne użycie UPDATE z właściwym użyciem LIKE i symbolu % jako wieloznakowego wildcarda.
Pytanie 7
Komenda kierowana do serwera bazy danych, mająca na celu zbieranie, wyszukiwanie lub edytowanie danych w bazie, nazywana jest
A. kwerendąTwoja odpowiedź
B. kolumną
C. formularzem
D. kopią
Poprawna odpowiedź. Kwerenda to zapytanie wysyłane do systemu zarządzania bazą danych (DBMS), służące do uzyskiwania, modyfikowania lub analizowania danych. W praktyce, kwerendy są kluczowym elementem interakcji z danymi w bazach danych. Na przykład, w języku SQL, kwerendy takie jak SELECT, INSERT, UPDATE i DELETE są podstawowymi poleceniami do pobierania i zarządzania danymi. Kwerendy mogą być proste, takie jak pobranie wszystkich klientów z tabeli, lub złożone, zawierające różne funkcje i złączenia, umożliwiające uzyskanie informacji z wielu tabel jednocześnie. Dobrą praktyką jest stosowanie odpowiednich indeksów, aby przyspieszyć działanie kwerend, zwłaszcza w dużych bazach danych. Zrozumienie kwerend jest fundamentalne dla każdego, kto pracuje z danymi, ponieważ umożliwia wykorzystywanie ich do podejmowania decyzji opartej na analizie danych oraz optymalizacji procesów biznesowych.
Pytanie 8
Aby usunąć wszystkie rekordy z tabeli (zachowując samą tabelę), można użyć kwerendy:
A.
INSERTINTO
B.
CREATECOLUMN
C.
TRUNCATETABLE
Twoja odpowiedź
D.
ALTERCOLUMN
Poprawna odpowiedź.TRUNCATETABLE usuwa z tabeli wszystkie wiersze naraz, pozostawiając jej strukturę (kolumny, definicję) nienaruszoną. Działa szybciej niż DELETE bez warunku, bo nie rejestruje pojedynczych usunięć i zwykle zeruje licznik AUTO_INCREMENT. Dlatego do wyczyszczenia całej zawartości tabeli służy TRUNCATETABLE.
Pytanie 9
Co realizuje funkcja COUNT w SQL?
A. obliczanie wartości bezwzględnej
B. zliczanie znaków w polu tekstowym
C. zliczanie rekordów (wierszy) wybranych kwerendąTwoja odpowiedź
D. obliczanie średniej w kolumnie
Poprawna odpowiedź. Funkcja agregująca COUNT zlicza REKORDY (wiersze) zwrócone przez kwerendę - np. COUNT(*) poda liczbę wszystkich wierszy spełniających warunki. Dlatego COUNT zlicza rekordy wybrane kwerendą.
Pytanie 10
Celem testów wydajnościowych jest ocena
A. możliwości oprogramowania do funkcjonowania w warunkach niewłaściwej pracy systemu
B. sekwencji zdarzeń, w której prawdopodobieństwo wystąpienia każdego zdarzenia zależy wyłącznie od wyniku zdarzenia poprzedniego
C. możliwości oprogramowania do funkcjonowania w warunkach błędnej pracy sprzętu
D. poziomu spełnienia wymagań dotyczących wydajności przez system bądź modułTwoja odpowiedź
Poprawna odpowiedź. Testy wydajnościowe są kluczowym elementem procesu zapewnienia jakości oprogramowania, mającym na celu ocenę, w jakim stopniu system lub moduł spełnia określone wymagania wydajnościowe. Zazwyczaj obejmują one pomiar czasu reakcji, przepustowości, obciążenia oraz skalowalności aplikacji w różnych warunkach użytkowania. Przykładowo, podczas testów wydajnościowych można symulować równoczesne połączenia użytkowników, aby ocenić, jak system zachowuje się pod dużym obciążeniem. Dobre praktyki w tej dziedzinie, takie jak przeprowadzanie testów w kontrolowanym środowisku oraz stosowanie narzędzi takich jak JMeter czy LoadRunner, pozwalają na uzyskanie wiarygodnych wyników. Prawidłowe przeprowadzenie testów wydajnościowych jest istotne nie tylko dla spełnienia oczekiwań klientów, ale także dla uniknięcia problemów z wydajnością po wdrożeniu systemu na rynek, co może prowadzić do utraty reputacji firmy oraz finansowych strat.
Pytanie 11
Ustalenie klucza obcego jest konieczne do skonstruowania
A. relacji 1..1
B. relacji 1..nPoprawna odpowiedź
C. klucza podstawowegoTwoja odpowiedź
D. transakcji
Niepoprawna odpowiedź. Zdefiniowanie klucza obcego nie jest bezpośrednio związane z relacjami 1..1, transakcjami czy kluczem podstawowym, ponieważ każde z tych pojęć odnosi się do innego aspektu zarządzania danymi w relacyjnych bazach danych. W przypadku relacji 1..1, każdemu rekordowi w jednej tabeli odpowiada dokładnie jeden rekord w drugiej tabeli, co oznacza, że nie ma potrzeby stosowania klucza obcego, gdyż relacja ta nie wymaga wskazywania powiązań między różnymi rekordami. Ponadto, transakcje są zbiorem operacji, które muszą być wykonane w całości lub wcale, a klucz obcy nie ma bezpośredniego wpływu na ich działanie - klucze obce służą głównie do zapewnienia integralności danych, a nie do zarządzania transakcjami. Klucz podstawowy, z drugiej strony, to unikalny identyfikator każdego rekordu w tabeli, a jego definicja jest odrębna od definicji klucza obcego. W praktyce, pomylenie tych pojęć prowadzi do błędnych wniosków o strukturyzacji danych oraz ich relacjach, co może skutkować nieefektywnym projektowaniem baz danych oraz trudnościami w późniejszym zarządzaniu danymi.
Pytanie 12
Co powinno znaleźć się w KAŻDEJ tabeli, aby baza działała poprawnie i spójnie?
A. klucz FOREIGNKEY z NOTNULL
B. klucze PRIMARYKEY i FOREIGNKEYTwoja odpowiedź
C. klucz obcy z NOTNULL i UNIQUE
D. klucz PRIMARYKEY (unikalny i niepusty)Poprawna odpowiedź
Niepoprawna odpowiedź. Klucz OBCY (FOREIGNKEY) nie jest obowiązkowy w każdej tabeli - występuje tylko tam, gdzie istnieje powiązanie z inną tabelą. Dlatego warianty wymagające klucza obcego (z NOTNULL, UNIQUE) są błędne. Podstawą jest PRIMARYKEY - unikalny i niepusty.
Pytanie 13
Co oblicza funkcja agregująca MIN w SQL?
A. długość tekstu w rekordach
B. liczbę zwróconych wierszy
C. najmniejszą wartość w kolumnie wynikuTwoja odpowiedź
D. średnią wartości pól rekordu
Poprawna odpowiedź. Funkcja agregująca MIN zwraca NAJMNIEJSZĄ wartość z kolumny w wyniku zapytania - np. najniższą cenę czy najwcześniejszą datę. Dlatego MIN oblicza najmniejszą wartość w kolumnie.
Pytanie 14
Co nada polecenie
GRANTSELECT,INSERT,UPDATEONklienciTOanna;
(anna nie miała wcześniej praw)?
A. prawa do wybierania, wstawiania i aktualizacji DANYCH w tabeli klienciTwoja odpowiedź
B. prawa do danych we WSZYSTKICH tabelach bazy
C. prawa do zmiany struktury wszystkich tabel bazy
D. prawa do dodawania kolumn i zmiany STRUKTURY tabeli klienci
Poprawna odpowiedź.GRANTSELECT,INSERT,UPDATEONklienciTOanna; nadaje użytkowniczce anna prawa do operacji na DANYCH konkretnej tabeli klienci: odczytu (SELECT), wstawiania (INSERT) i aktualizacji (UPDATE). Dlatego nadaje prawa do wybierania, wstawiania i aktualizacji danych w tabeli klienci.
Pytanie 15
Na przedstawionej tabeli samochody wykonano zapytanie SQL SELECT
SELECT model FROM samochody WHERE rocznik = 2016;
id
marka
model
rocznik
kolor
stan
1
Fiat
Punto
2016
czerwony
bardzo dobry
2
Fiat
Punto
2002
czerwony
dobry
3
Fiat
Punto
2007
niebieski
bardzo dobry
4
Opel
Corsa
2016
grafitowy
bardzo dobry
5
Opel
Astra
2003
niebieski
porysowany lakier
6
Toyota
Corolla
2016
czerwony
bardzo dobry
7
Toyota
Corolla
2014
szary
dobry
8
Toyota
Yaris
2004
granatowy
dobry
A. Czerwony, grafitowy.
B. Punto, Corsa, Astra, Corolla, Yaris.
C. Punto, Corsa, Corolla.Poprawna odpowiedź
D. Fiat, Opel, Toyota.Twoja odpowiedź
Niepoprawna odpowiedź. Niepoprawne odpowiedzi pokazują częste błędy w interpretacji zapytań SQL. Pierwszy z nich to pomylenie kolumny - zapytanie 'SELECT model FROM samochody WHERE rocznik = 2016' odnosi się do kolumny 'model', a nie 'kolor', co wyklucza odpowiedź 'Czerwony, grafitowy'. Drugi błąd to niewłaściwe zrozumienie klauzuli WHERE - jest ona używana do filtrowania rekordów na podstawie konkretnych warunków. W tym przypadku, zapytanie dotyczyło modeli samochodów z rocznika 2016, co wyklucza odpowiedź 'Punto, Corsa, Astra, Corolla, Yaris', ponieważ zawiera modele z innymi rocznikami. Trzeci błąd to pomylenie kolumn - zapytanie odnosiło się do 'model', a nie 'marka', co oznacza, że odpowiedź 'Fiat, Opel, Toyota' jest nieprawidłowa. Ważne jest, aby dokładnie zrozumieć strukturę tabeli i zapytania SQL przed próbą interpretacji wyników.
Pytanie 16
Określ rodzaj powiązania pomiędzy tabelami: Tabela1 oraz Tabela3
A. Wiele do wieluTwoja odpowiedź
B. Jeden do jednego
C. Jeden do wielu
D. Wiele do jednego
Poprawna odpowiedź. Relacja wiele do wielu między tabelami Tabela1 i Tabela3 jest prawidłowym rozwiązaniem, ponieważ relacja ta umożliwia powiązanie wielu rekordów z jednej tabeli z wieloma rekordami z drugiej tabeli. W kontekście przedstawionego schematu baz danych, tabela Tabela1 przechowuje informacje o uczniach, podczas gdy Tabela3 zawiera dane o nauczycielach. Tabela2 pełni rolę tabeli pośredniej, zawierającej klucze obce, które łączą ID_Ucznia z ID_Nauczyciela za pomocą ID_Przedmiotu jako dodatkowego klucza. To podejście jest powszechnie stosowane w projektowaniu baz danych, aby zapewnić elastyczność i możliwość zaawansowanej analizy danych, np. którzy uczniowie mają zajęcia z jakimi nauczycielami. W praktyce takie rozwiązanie stosuje się w systemach edukacyjnych, gdzie każdy uczeń może uczęszczać na zajęcia prowadzone przez różnych nauczycieli, a każdy nauczyciel może prowadzić zajęcia dla wielu uczniów. Standardy projektowania relacyjnych baz danych, takie jak normalizacja, zalecają tego rodzaju architekturę, aby uniknąć redundancji danych i umożliwić efektywne zarządzanie złożonymi relacjami. Tabele pośrednie, takie jak Tabela2, są kluczowym elementem w tworzeniu relacji wiele do wielu, ponieważ umożliwiają mapowanie skomplikowanych powiązań w sposób technicznie poprawny i zrozumiały dla użytkowników systemu.
Pytanie 17
Jakie jest zadanie funkcji PHP o nazwie mysql_num_rows()?
A. zwrócić liczbę wierszy znajdujących się w wyniku zapytaniaPoprawna odpowiedź
B. zwrócić następny rekord z wynikami zapytania
C. zwrócić rekord o numerze podanym jako parametr funkcjiTwoja odpowiedź
D. ponumerować rekordy w bazie danych
Niepoprawna odpowiedź. Wybór odpowiedzi, która sugeruje, że mysql_num_rows() zwraca rekord o podanym numerze, jest mylący, ponieważ rzeczywiście nie zrealizuje tego zadania. mysql_num_rows() nie ma możliwości pobierania konkretnego rekordu ani wskazywania na konkretne numery, co jest typowym nieporozumieniem wśród osób, które nie są zaznajomione z funkcjami PHP dla obsługi baz danych. Z kolei twierdzenie, że funkcja ta zwraca kolejny rekord z wynikami zapytania, również jest błędne, ponieważ mysql_num_rows() nie ma za zadanie iterowania przez wyniki, ale jedynie zliczanie ich. To zrozumienie jest istotne w kontekście odpowiedniej obsługi danych, ponieważ myląc funkcje, można wprowadzić błędy w logice aplikacji. Wreszcie, pomysł, że mysql_num_rows() ma na celu ponumerowanie rekordów w bazie danych, jest po prostu nieprawidłowy, ponieważ ponumerowanie rekordów nie jest funkcjonalnością tej funkcji. Takie nieporozumienia mogą prowadzić do wprowadzenia błędów w aplikacjach, w których liczy się precyzyjność operacji na danych. Właściwe zrozumienie, co robi dana funkcja, jest kluczowe dla prawidłowego korzystania z baz danych i unikania nieefektywności w kodzie.
Pytanie 18
Który typ danych zastosować, aby pole w bazie danych przechowywało liczby zmiennoprzecinkowe?
A.
VARCHAR
B.
CHAR
C.
INT
D.
FLOAT
Twoja odpowiedź
Poprawna odpowiedź. Liczby zmiennoprzecinkowe (rzeczywiste, z częścią ułamkową) przechowuje w bazie typ FLOAT, np. ceny czy wyniki pomiarów. Dlatego do takich wartości stosuje się FLOAT.
Pytanie 19
Na ilustracji przedstawiającej tabelę muzyka, zrealizowano poniższe zapytanie SQL. Jaki rezultat zwróci ta kwerenda?
SELECT wykonawca FROM`muzyka` WHERE wykonawca LIKE 'C%w';
ID
tytul_plyty
wykonawca
rok_nagrania
opis
1
Czas jak rzeka
Czesław Niemen
2005
Przyjdź W Taka Noc itp.
2
Ikona
Stan Borys
2014
3
Aerolit
Czesław Niemen
2017
Winylowa reedycja płyty "Aerolit"
4
Journey
Mikołaj Czechowski
2013
A. pusty wynikPoprawna odpowiedź
B. Czesław, NiemenTwoja odpowiedź
C. Czesław, Czechowski
D. Czesław
Niepoprawna odpowiedź. W przypadku zapytania SQL które wykorzystuje operator LIKE z wzorcem C%W często dochodzi do nieporozumienia dotyczącego działania tego operatora. LIKE jest używany do porównywania wzorców tekstowych a procent % służy do zastępowania dowolnej liczby znaków. Można by błędnie założyć że skoro zapytanie ma zwrócić wykonawców których imiona zaczynają się na C i kończą na W to którąś z dostępnych opcji w tabeli spełnia ten warunek. Jednakże w tej konkretnej tabeli nie ma wykonawcy który by spełniał te kryteria. Czesław Niemen kończy się na M a nie na W natomiast Mikołaj Czechowski rozpoczyna się od litery M zamiast C. Przykładem typowego błędu jest nieprawidłowa interpretacja tego jak działają wzorce w operatorze LIKE lub przeoczenie że wzorzec musi być dokładnie zgodny z wymaganiami. Ważnym aspektem jest też zrozumienie że w praktyce biznesowej dokładność danych jest kluczowa a niepoprawne zrozumienie wzorców prowadzi do niepoprawnych wyników zapytań. Dlatego zawsze warto przetestować zapytanie na mniejszym zbiorze danych aby upewnić się że zwraca oczekiwane wyniki co jest dobrą praktyką w zarządzaniu bazami danych.
Pytanie 20
Mamy tabelę firm, która zawiera takie kolumny jak: nazwa, adres, NIP, obrot (obrót w ostatnim miesiącu), rozliczenie, status. Wykonanie zapytania SQL SELECT spowoduje wyświetlenie
SELECT nazwa, NIP FROM firmy WHERE obrot < 4000;
A. wszystkie dane o firmach, które w ostatnim miesiącu miały obrót na poziomie co najmniej 4000 zł
B. wszystkie informacje o firmach, które w minionym miesiącu osiągnęły obrót poniżej 4000 zł
C. tylko nazwę i numer NIP przedsiębiorstw, które w poprzednim miesiącu miały obrót wynoszący przynajmniej 4000 zł
D. tylko nazwę i numer NIP przedsiębiorstw, które w ostatnim miesiącu miały obrót mniejszy niż 4000 złTwoja odpowiedź
Poprawna odpowiedź. Prawidłowa odpowiedź odwołuje się do kwerendy SQL SELECT która wybiera jedynie kolumny nazwa oraz NIP z tabeli firmy pod warunkiem że kolumna obrot jest mniejsza niż 4000 Kwerenda ta jest przykład zastosowania filtracji danych w celu wyodrębnienia specyficznych informacji z bazy danych co jest kluczowe w analizie biznesowej Dzięki tej operacji można uzyskać listę firm które w ostatnim miesiącu osiągnęły niski obrót co może być istotne dla działów finansowych i marketingowych w celu identyfikacji klientów wymagających dodatkowego wsparcia Tego rodzaju selektywne przetwarzanie danych jest częścią codziennej pracy analityków danych oraz specjalistów od zarządzania relacjami z klientami W praktyce w infrastrukturze bazodanowej tego typu zapytania mogą być stosowane do generowania raportów okresowych lub alertów biznesowych Przy projektowaniu kwerend SQL ważne jest aby precyzyjnie określać które kolumny i wiersze danych są interesujące co nie tylko zwiększa efektywność zapytań ale także pozwala na lepsze zarządzanie zasobami serwera Dobra praktyka polega na optymalizacji zapytań w celu minimalizacji czasów odpowiedzi oraz obciążenia systemów bazodanowych co jest kluczowe dla utrzymania wydajności i niezawodności w dużych systemach informatycznych
Pytanie 21
Jak wykonanie zapytania SQL przedstawionego poniżej wpłynie na tabelę pracownicy?
ALTER TABLEpracownicyMODIFYplecchar(9);
A. Zmieni typ danych kolumny plec na znakowy o zmiennej długości 9.
B. Utworzy kolumnę plec o typie znakowym o zmiennej długości 9.
C. Utworzy kolumnę plec o typie znakowym o stałej długości 9.
D. Zmieni typ danych kolumny plec na znakowy o stałej długości 9.Twoja odpowiedź
Poprawna odpowiedź. Odpowiedź jest poprawna, ponieważ polecenie ALTER TABLE zmienia istniejącą kolumnę w tabeli pracownicy. W szczególności, polecenie MODIFY plec char(9) modyfikuje typ danych kolumny plec na znakowy o stałej długości 9. Oznacza to, że każda wartość przechowywana w tej kolumnie będzie miała dokładnie 9 znaków (wypełnionych np. spacjami, jeśli wartość będzie krótsza). W praktyce zapewnia to jednolitą długość dla przechowywanych danych, co może być korzystne w przypadku, gdy wymagane jest zachowanie spójności długości, na przykład przy przechowywaniu kodów pocztowych lub identyfikatorów. Standardy projektowania baz danych zalecają używanie odpowiednich typów danych, aby zminimalizować przestrzeń dyskową oraz przyspieszyć operacje na danych. Warto zauważyć, że w przypadku kolumny char(9) nie można wprowadzić wartości dłuższej niż 9 znaków, co zapobiega niezgodnościom danych.
Pytanie 22
id
nazwisko
imie
data_ur
ubezpieczony
✏️ Edytuj
📋 Kopiuj
⛔ Usuń
1
Kowalski
Jan
2005-12-18
1
✏️ Edytuj
📋 Kopiuj
⛔ Usuń
2
Nowak
Adam
2005-10-10
1
✏️ Edytuj
📋 Kopiuj
⛔ Usuń
3
Wisniewski
Antoni
2005-06-14
0
✏️ Edytuj
📋 Kopiuj
⛔ Usuń
4
Lipska
Anna
2006-04-12
1
✏️ Edytuj
📋 Kopiuj
⛔ Usuń
5
Tomaszewski
Pawel
2006-07-11
0
✏️ Edytuj
📋 Kopiuj
⛔ Usuń
6
Kostarz
Julia
2006-03-20
1
✏️ Edytuj
📋 Kopiuj
⛔ Usuń
7
Borewicz
Patryk
2007-06-21
1
✏️ Edytuj
📋 Kopiuj
⛔ Usuń
8
Koperski
Bartlomiej
2001-09-10
0
Które zapytanie w języku MySQL usunie z tabeli uczniowie uczniów urodzonych w czerwcu?
A.
DELETEFROM`uczniowie`WHEREdata_urLIKE"%-06-%"
Twoja odpowiedź
B.
DROPFROM`uczniowie`WHEREdata_urLIKE"06"
C.
DELETEFROM`uczniowie`WHEREdata_urLIKE"?-06-?"
D.
DROPFROM`uczniowie`WHEREdata_ur==#-06-#
Poprawna odpowiedź. Poprawnie wskazane zapytanie korzysta z instrukcji DELETE oraz operatora LIKE z odpowiednim wzorcem: "%-06-%". W kolumnie data_ur mamy daty zapisane w standardowym formacie ISO: RRRR-MM-DD, np. 2005-06-14. W takim formacie miesiąc zawsze znajduje się na pozycjach 6–7 i jest zapisany jako dwucyfrowa liczba z wiodącym zerem. Wzorzec "%-06-%" oznacza: dowolny ciąg znaków przed, dokładnie „-06-” w środku, oraz dowolny ciąg znaków po. Dzięki temu trafiamy w wszystkie daty, gdzie miesiąc to 06, czyli czerwiec, niezależnie od roku i dnia. To jest bardzo praktyczne podejście, gdy przechowujemy datę w typie DATE i chcemy filtrować po miesiącu bez dodatkowych funkcji. W MySQL operator LIKE działa na wartościach tekstowych, ale typ DATE jest w takim kontekście automatycznie konwertowany do postaci tekstowej w formacie 'YYYY-MM-DD', więc wzorzec z myślnikami jest jak najbardziej poprawny. W realnych projektach częściej stosuje się funkcje DATE_FORMAT albo MONTH(data_ur) = 6, bo to jest czytelniejsze i mniej podatne na pomyłki w zapisie wzorca. Jednak w tym zadaniu celem jest zrozumienie, jak działa LIKE, wildcard „%” oraz jak wygląda rzeczywisty format przechowywania daty. Dobrą praktyką jest też zawsze używanie pojedynczych cudzysłowów w SQL (np. '%-06-%'), choć MySQL akceptuje też podwójne w pewnych konfiguracjach. Moim zdaniem warto zapamiętać ten sposób myślenia: patrzysz na rzeczywisty zapis danych w kolumnie i dopasowujesz wzorzec tak, żeby trafić dokładnie ten fragment, który Cię interesuje (tu: '-06-').
Pytanie 23
Jakie zadanie ma funkcja PHP o nazwie mysql_select_db()?
A. nawiązać połączenie między bazą danych a serwerem SQLTwoja odpowiedź
B. wyznaczyć tabelę, z której będą pozyskiwane dane
C. wyznaczyć bazę, z której będą pozyskiwane danePoprawna odpowiedź
D. uzyskać dane z bazy danych na podstawie zapytania
Niepoprawna odpowiedź. Tutaj mamy parę pomyłek związanych z funkcją <span>mysql_select_db()</span>. Po pierwsze, mylisz ją z tym, jak łączymy bazę danych z serwerem SQL. W rzeczywistości, połączenie robi się przez <span>mysql_connect()</span>, a <span>mysql_select_db()</span> ma za zadanie pokazać, która z baz, które już mamy, ma być użyta. Kolejna sprawa to błędne zrozumienie, jak wyciągamy dane z bazy. Robimy to za pomocą funkcji jak <span>mysql_query()</span>, więc wybór bazy danych i ściąganie danych to dwa różne etapy. Mylenie bazy danych z tabelą też wprowadza w błąd, bo baza to tak naprawdę pojemnik dla tabel, a nie jedna konkretna tabela. Moim zdaniem, zrozumienie tej hierarchii jest kluczowe, żeby dobrze działać z bazami. Te nieporozumienia mogą skutkować poważnymi kłopotami, jak złe zapytania czy problemy z dostępem do danych. Lepiej wcześniej przejrzeć dokumentację i standardy SQL, bo one jasno tłumaczą różnice między połączeniem z serwerem, wyborem bazy danych a kwerendami.
Pytanie 24
W jaki sposób lokalny System Zarządzania Bazą Danych (SZBD) udostępnia bazę?
A. w chmurze obliczeniowej
B. jako usługę serwerową w sieci
C. jako serwer w sieci
D. wyłącznie na jednym, wyznaczonym komputerzeTwoja odpowiedź
Poprawna odpowiedź. Lokalny SZBD udostępnia bazę wyłącznie na jednym, wyznaczonym komputerze - działa bez sieci, dla pojedynczego stanowiska. Dlatego baza jest dostępna tylko na tym jednym komputerze.
Pytanie 25
Co oznacza skrót SQL?
A. Simple Query Logic
B. Structured Query LanguageTwoja odpowiedź
C. Standard Quality Language
D. Sequential Question Language
Poprawna odpowiedź. Skrót SQL rozwija się jako Structured Query Language - „strukturalny język zapytań”. Nazwa oddaje jego rolę: to standardowy język do tworzenia zapytań i zarządzania danymi w relacyjnych bazach. Dlatego SQL to Structured Query Language.
Pytanie 26
Źródłem danych dla raportu może być
A. makropolecenie
B. inny raport
C. zapytanie INSERT INTO
D. tabelaTwoja odpowiedź
Poprawna odpowiedź. Tabela jest podstawowym elementem struktury bazy danych, który służy jako źródło danych dla raportów. Tabele przechowują zorganizowane informacje w formie wierszy i kolumn, co umożliwia łatwy dostęp i analizę danych. Każda kolumna w tabeli reprezentuje atrybut, a każdy wiersz to pojedynczy rekord z danymi. Przykładowo, w tabeli zawierającej informacje o klientach, kolumny mogą obejmować imię, nazwisko, adres e-mail i numer telefonu. Dzięki standardom takim jak SQL (Structured Query Language), można łatwo wykonywać operacje na tych tabelach, takie jak selekcja, aktualizacja czy usuwanie danych. Tabele są fundamentalne w systemach zarządzania bazami danych (DBMS) i stanowią podstawowe źródło dla generowania raportów, które mogą być wykorzystywane w różnych kontekstach biznesowych. W raportach można agregować dane, obliczać różne wskaźniki oraz wizualizować wyniki, co czyni tabele nieocenionym elementem w analizie danych.
Pytanie 27
Który obiekt bazy danych utworzyć, aby zaprezentować dane spełniające określone kryteria (np. do wydruku)?
A. raportPoprawna odpowiedź
B. makropolecenie
C. formularzTwoja odpowiedź
D. relację
Niepoprawna odpowiedź. Pozostałe obiekty pełnią inne role. Formularz służy do WPROWADZANIA i edycji danych, a nie do prezentacji wydruku. Relacja to powiązanie między tabelami (element modelu, nie obiekt do druku). Makropolecenie automatyzuje czynności. Prezentację danych wg kryteriów zapewnia raport.
Pytanie 28
W poniższym kodzie PHP wykonano operację na bazie danych. Której funkcji należy użyć, aby pobrać liczbę zmienionych w tabeli wierszy?
$zapytanie="UPDATE kadra SET stanowisko='Programista' WHERE id < 10";mysqli_query($db, $zapytanie);
A. mysqli_use_result()
B. mysqli_affected_rows()Poprawna odpowiedź
C. mysqli_field_count()
D. mysqli_num_rows()Twoja odpowiedź
Niepoprawna odpowiedź. Wybrana odpowiedź jest niestety niepoprawna. Może to wynikać z niezrozumienia różnych funkcji dostępnych w języku PHP do manipulowania danymi w bazach danych MySQL. Funkcja mysqli_field_count() zwraca liczbę pól w wyniku zapytania SELECT, a nie liczbę zmienionych wierszy. Z kolei mysqli_use_result() inicjuje pobieranie wyników zapytania wysłanego do serwera MySQL i nie zwraca informacji o liczbie zmienionych wierszy. Natomiast funkcja mysqli_num_rows() zwraca liczbę wierszy w wyniku zapytania SELECT, a nie liczbę zmienionych wierszy. Do tego celu służy jedynie funkcja mysqli_affected_rows(), która zwraca liczbę wierszy zmienionych, dodanych lub usuniętych przez ostatnie wywołanie funkcji mysqli_query() na serwerze MySQL. Pamiętaj więc, że wybór odpowiedniej funkcji zależy od kontekstu i rodzaju operacji wykonanej na bazie danych.
Pytanie 29
Jakie działanie wykonuje polecenie DBCC CHECKDB("sklepAGD", Repair_fast) w MS SQL Server?
A. zweryfikuje spójność danej tabeli oraz naprawi uszkodzone rekordyTwoja odpowiedź
B. zweryfikuje spójność danej tabeli
C. sprawdzi spójność bazy danych i utworzy kopię zapasową
D. sprawdzi spójność bazy danych i naprawi uszkodzone indeksyPoprawna odpowiedź
Niepoprawna odpowiedź. Wiele osób mylnie sądzi, że polecenie DBCC CHECKDB może być używane do sprawdzania spójności tylko określonych tabel, co jednak jest nieprawidłowe. DBCC CHECKDB działa na poziomie całej bazy danych, analizując wszystkie tabele, indeksy oraz inne obiekty. Dlatego odpowiedzi sugerujące, że narzędzie to sprawdza spójność tylko pojedynczej tabeli, są błędne. Dodatkowo, niektóre odpowiedzi wskazują, że DBCC CHECKDB może naprawiać uszkodzone rekordy, co jest również mylące. W rzeczywistości, podczas użycia opcji Repair_fast, narzędzie może naprawiać uszkodzone indeksy, ale nie ma możliwości naprawy uszkodzonych danych w samych rekordach. Istnieje ryzyko, że błędne zrozumienie funkcji DBCC CHECKDB może prowadzić do niewłaściwego podejścia do zarządzania bazą danych, w tym do nieadekwatnego planowania kopii zapasowych czy procedur odzyskiwania. Ważne jest, aby być świadomym, że regularne wykonywanie tego polecenia jest kluczowe, ale również, że nie zastępuje ono pełnej strategii zarządzania danymi. Standardy branżowe podkreślają znaczenie kompleksowego podejścia do ochrony danych, co obejmuje zarówno monitorowanie integralności, jak i odpowiednie zabezpieczenia przed utratą danych.
Pytanie 30
Które polecenia należą w SQL do grupy DCL (Data Control Language)?
A.
GRANT
i
REVOKE
Twoja odpowiedź
B.
SELECT
i
INSERT
C.
DELETE
i
UPDATE
D.
CREATE
i
DROP
Poprawna odpowiedź. Do grupy DCL (Data Control Language) należą polecenia sterujące UPRAWNIENIAMI: GRANT (nadaje prawa) i REVOKE (odbiera je). Zarządzają dostępem użytkowników do obiektów bazy. Dlatego DCL to GRANT i REVOKE.
Pytanie 31
Co opisuje polecenie
CREATETABLEdane(kolumnaINTEGER(3));
?
A. tabelę z kolumnami kolumna1, kolumna2, kolumna3
B. tabelę z jedną kolumną zawierającą 3-elementowe tabliceTwoja odpowiedź
C. tabelę dane z JEDNĄ kolumną liczb całkowitychPoprawna odpowiedź
D. tabelę z TRZEMA kolumnami liczb całkowitych
Niepoprawna odpowiedź.INTEGER przechowuje pojedynczą liczbę, a nie „3-elementowe tablice”. W definicji jest tylko jedna kolumna (kolumna) - nie ma „kolumna1, kolumna2, kolumna3”. (3) to parametr wyświetlania, a nie liczba KOLUMN. Powstaje tabela z jedną kolumną typu całkowitego.
Pytanie 32
W systemie MySQL przyznanie roli o nazwie DBManager umożliwia użytkownikowi wykonywanie
A. wszystkie operacje związane z bazami danych oraz użytkownikami serwera
B. zakładanie użytkowników serwera oraz definiowanie ich haseł
C. wszystkie operacje na bazach danych serweraPoprawna odpowiedź
D. nadzór nad serweremTwoja odpowiedź
Niepoprawna odpowiedź. Wybór odpowiedzi, która sugeruje, że rola DBManager przyznaje prawa do monitorowania serwera, tworzenia użytkowników serwera oraz wykonywania wszystkich operacji na bazach danych i użytkownikach, może prowadzić do mylnych wniosków na temat rzeczywistych możliwości tej roli. Monitorowanie serwera jako funkcja nie jest bezpośrednio związane z rolą DBManager. Chociaż monitorowanie jest istotnym aspektem zarządzania bazami danych, odpowiednie uprawnienia związane z tą funkcjonalnością są przyznawane innym rolom lub użytkownikom posiadającym konkretne przywileje, takie jak rola DBMonitor. Tworzenie użytkowników serwera i ustawianie im haseł również wykracza poza standardowe uprawnienia roli DBManager. Zwykle te czynności są przypisane administratorom systemu, którzy mają kontrolę nad bezpieczeństwem całego środowiska bazodanowego. Odpowiedzi sugerujące możliwość wykonywania wszelkich operacji na bazach danych i użytkownikach mogą sugerować, że rola DBManager obejmuje pełne uprawnienia administracyjne, co nie jest zgodne z praktykami bezpieczeństwa, które zalecają ograniczanie uprawnień w oparciu o zasadę najmniejszych uprawnień. Takie zrozumienie jest kluczowe, ponieważ przyznawanie zbyt szerokich uprawnień może prowadzić do luk w zabezpieczeniach i nadużyć, co narusza standardy zarządzania danymi i bezpieczeństwa w organizacjach. Dlatego ważne jest, aby dokładnie rozumieć zakres dostępnych ról i ich odpowiedzialności, aby zapewnić właściwe zarządzanie dostępem i bezpieczeństwem danych.
Pytanie 33
Co spowoduje
DELETEFROMmieszkaniaWHEREstatus=1;
?
A. usunięcie rekordów z status=1 z tabeli mieszkaniaTwoja odpowiedź
B. usunięcie tabel z bazy mieszkania
C. usunięcie pola status z tabeli
D. usunięcie całej tabeli mieszkania
Poprawna odpowiedź.DELETEFROMmieszkaniaWHEREstatus=1; usuwa z tabeli mieszkania tylko te WIERSZE, w których pole status ma wartość 1. Struktura tabeli i pozostałe rekordy zostają nienaruszone. Dlatego polecenie usunie rekordy ze status = 1.
Pytanie 34
Wskaż poprawne zdanie dotyczące poniższego polecenia.
CREATE TABLE IF NOT EXISTS ADRES (ulica VARCHAR(70)) CHARACTER SET utf8);
A. Nie można dodawać do tabeli ulic, które zawierają polskie znaki w nazwie
B. Rekord tabeli nie może mieć wartości 3 MAJA
C. Klauzula CHARACTER SET utf8 jest wymagana
D. IF NOT EXISTS używa się opcjonalnie, żeby potwierdzić, że taka tabela nie istnieje w bazie danychTwoja odpowiedź
Poprawna odpowiedź. Klauzula IF NOT EXISTS w poleceniu CREATE TABLE jest używana do zapobiegania błędom, które mogą wystąpić, gdy próbujesz stworzyć tabelę, która już istnieje w danej bazie danych. Dzięki temu operatorowi, jeśli tabela o podanej nazwie już istnieje, polecenie nie zostanie wykonane, co pozwala na uniknięcie konfliktów oraz zbędnych błędów w aplikacji. Jest to szczególnie przydatne w sytuacjach, gdy skrypty są uruchamiane wielokrotnie, na przykład podczas aktualizacji lub migracji bazy danych. Użycie IF NOT EXISTS jest opcjonalne, ale zalecane dla poprawności i stabilności kodu SQL. Przykład praktyczny: można stworzyć tabelę 'klienci' z poleceniem 'CREATE TABLE IF NOT EXISTS klienci (id INT PRIMARY KEY, imie VARCHAR(100));', co zapobiega próbie utworzenia tabeli, która już istnieje. Zgodnie z standardami SQL, operator ten jest powszechnie akceptowany w większości systemów zarządzania bazami danych, takich jak MySQL, PostgreSQL czy SQLite, co czyni go uniwersalnym rozwiązaniem w projektach opartych na bazach danych.
Pytanie 35
W hurtowni danych stworzono tabelę sprzedaz, która zawiera pola: id, kontrahent, grupa_cenowa, obrot. Jakie polecenie trzeba zastosować, aby znaleźć tylko kontrahentów z grupy cenowej numer dwa, których obrót przekracza 4000 zł?
Niepoprawna odpowiedź. Dwie niepoprawne odpowiedzi pokazują, że są pewne nieporozumienia w kwestii SQL. W pierwszej z nich używasz operatora OR, co psuje całą logikę zapytania. To sprawia, że możesz dostać kontrahentów z drugiej grupy cenowej albo tych, co mają obrót powyżej 4000 zł, a nie tylko tych, którzy spełniają oba warunki jednocześnie. W analizie danych ważne jest, żeby warunki były precyzyjne, bo inaczej wyniki mogą być nieczytelne. W kolejnej odpowiedzi widzę, że próbujesz wydobywać dane z kolumny kontrahent, co jest niepoprawne, bo kolumna to nie tabela. Musisz mieć jasność co do struktury bazy danych, żeby pisać odpowiednie zapytania. A ostatnia odpowiedź nie zawiera warunku dla grupy cenowej, więc zwróci jakieś niepełne dane. Dobrym pomysłem jest też testować swoje zapytania na mniejszych zbiorach danych, niż wdrażać je od razu w produkcji, żeby uniknąć takich błędów.
Pytanie 36
Tabela podzespoly ma pola: model, producent, typ, cena. Które zapytanie wyświetli modele pamięci RAM firmy Kingston od najtańszej do najdroższej?
Niepoprawna odpowiedź. Pozostałe zapytania zawodzą. OR zwróciłby wszystkie RAM-y oraz wszystkie produkty Kingston (także inne typy), a nie ich część wspólną. Sortowanie malejące (DESC) dałoby kolejność od najdroższej, a FROMproducent myli tabelę z kolumną. Poprawne jest połączenie AND z ORDERBYcena rosnąco.
Pytanie 37
Funkcja agregująca AVG wykorzystana w zapytaniu
SELECTAVG(cena) FROMuslugi;
ma na celu
A. obliczenie liczby dostępnych usług w tabeli
B. wyliczenie średniej arytmetycznej cen wszystkich usługTwoja odpowiedź
C. znalezienie najwyższej ceny za usługi
D. zsumowanie wszystkich kosztów usług
Poprawna odpowiedź. Funkcja agregująca AVG w języku SQL oblicza średnią arytmetyczną wartości w określonej kolumnie, w tym przypadku w kolumnie 'cena' tabeli 'uslugi'. W kontekście baz danych, obliczanie średniej jest kluczowym narzędziem analitycznym, które pozwala na uzyskanie ogólnego obrazu wartości danej kolumny. W praktyce, analiza średnich cen usług może być użyteczna dla menedżerów chcących dostosować strategię cenową lub dla działów finansowych oceniających wydajność sprzedaży. Przykładowo, jeżeli średnia cena usług wynosi 100 zł, a kolejny miesiąc przynosi spadek do 80 zł, jest to sygnał do analizy powodów obniżenia przychodów. Stosowanie funkcji AVG jest zgodne z najlepszymi praktykami w zakresie analizy danych, gdyż pozwala na podejmowanie decyzji opartych na faktach i liczbach. Warto również zauważyć, że do obliczeń średnich często używa się danych z różnych grup, co może pomóc w zrozumieniu trendów oraz wzorców w zachowaniach klientów na rynku.
Pytanie 38
Na tabeli Pracownicy, której wiersze są przedstawione na załączonym obrazie, została zrealizowana podana kwerenda SELECT. Jakie dane zostaną zwrócone?
Niepoprawna odpowiedź. Ważne jest zrozumienie działania klauzuli WHERE w SQL, zwłaszcza gdy stosujemy w niej operator OR. Częstym błędem przy analizie takich zapytań jest traktowanie operatora OR jak operatora AND co prowadzi do błędnych wniosków. W zapytaniu SELECT imie FROM pracownicy WHERE nazwisko = 'Kowal' OR stanowisko > 2 celem jest wybór imion pracowników spełniających przynajmniej jedno z podanych kryteriów. Można błędnie założyć że wybierane są tylko osoby z nazwiskiem Kowal i stanowiskiem większym od 2 lub odwrotnie co prowadzi do niepoprawnej interpretacji danych. Imiona takie jak Monika czy Ewelina nie pojawiają się w wyniku ponieważ ich stanowiska wynoszą dokładnie 2 co nie spełnia wymagań stanowisko > 2. Natomiast imię Maria jest wynikowe ponieważ nazwisko Kowal spełnia pierwszy warunek a Anna i Ewa są wybierane przez drugi warunek dotyczący stanowiska. Zrozumienie różnicy między operatorami AND i OR jest kluczowe dla poprawnego tworzenia zapytań SQL oraz unikania błędów logicznych przy przetwarzaniu danych. Operator OR wymaga aby przynajmniej jeden z warunków był prawdziwy co zwiększa elastyczność filtrowania danych ale także wymaga ostrożności aby nie uzyskać wyników niezgodnych z intencjami analizy. Znajomość i umiejętność wykorzystania różnych operatorów logicznych pozwala na efektywne zarządzanie danymi i ich analizę co jest niezbędne w pracy z bazami danych.
Pytanie 39
W bazie Access tworzona kontrolka ma odwoływać się do kontrolki z INNEGO formularza. Czy jest to możliwe?
A. niemożliwe poza trybem projektowania
B. możliwe przez podanie ścieżki w właściwości „Źródło kontrolki”Twoja odpowiedź
C. możliwe tylko dla danych liczbowych
D. niemożliwe
Poprawna odpowiedź. W MS Access kontrolka może odwołać się do kontrolki z INNEGO formularza - wystarczy w jej właściwości „Źródło kontrolki” podać odpowiednią ścieżkę (np. odwołanie do formularza i jego pola). Dlatego jest to możliwe przez podanie ścieżki w „Źródle kontrolki”.
Pytanie 40
W zaprezentowanym schemacie bazy danych o nazwie biblioteka, składniki: czytelnik, wypożyczenie oraz książka są
A. krotkami
B. atrybutami
C. encjamiPoprawna odpowiedź
D. polamiTwoja odpowiedź
Niepoprawna odpowiedź. W kontekście modelowania danych w relacyjnych bazach danych istotne jest rozróżnienie między encjami a innymi pojęciami. Pola w bazach danych zazwyczaj odnoszą się do pojedynczych jednostek danych w obrębie kolumn tabeli reprezentujących atrybuty encji. Atrybuty to cechy opisujące encje takie jak imię czy nazwisko w przypadku encji czytelnik. Natomiast krotki często określają pojedynczy rekord czyli wiersz w tabeli który jest instancją encji. Błędne jest przypisywanie czytelnik wypozyczenie i ksiazka do kategorii pól ponieważ w modelowaniu danych pola są najmniejszymi jednostkami danych które nie reprezentują obiektów realnego świata lecz ich właściwości. Podobnie błędem jest klasyfikowanie ich jako atrybuty ponieważ atrybuty opisują encje a nie są nimi. Traktowanie tych elementów jako krotek również jest nieprawidłowe gdyż krotki to konkretne instancje danych a nie typy obiektów które chcemy modelować. Typowy błąd myślowy polega na myleniu poziomu abstrakcji czyli traktowaniu encji które są wysokopoziomowymi konceptami jak atrybuty czy krotki które są bardziej szczegółowymi jednostkami w strukturze danych. Zrozumienie tych różnic jest kluczowe dla efektywnego projektowania i implementacji baz danych oraz uniknięcia problemów związanych z redundancją czy nieefektywnością w przetwarzaniu informacji