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: 8 grudnia 2025 08:29
  • Data zakończenia: 8 grudnia 2025 09:00

Egzamin niezdany

Wynik: 13/40 punktów (32,5%)

Wymagane minimum: 20 punktów (50%)

Udostępnij swój wynik
Szczegółowe wyniki:
Pytanie 1

Poniższe zapytanie SQL ma na celu:

UPDATE Uczen SET id_klasy = id_klasy + 1;
A. ustawić wartość pola Uczen na 1
B. przypisać wartość kolumny id_klasy jako 1 dla wszystkich wpisów w tabeli Uczen
C. zwiększyć o jeden wartość kolumny id_klasy dla wszystkich wpisów w tabeli Uczen
D. zwiększyć o jeden wartość pola Uczen
Wybierając błędne odpowiedzi, można wpaść w pułapki związane z interpretacją polecenia SQL. Na przykład, stwierdzenie, że polecenie zwiększa wartość pola Uczen, jest mylące, ponieważ nie odnosi się do konkretnej kolumny. W SQL każde polecenie musi być precyzyjne, a używanie ogólnych terminów prowadzi do nieporozumień. Mówiąc o "ustawieniu na 1 wartości pola Uczen", mylnie sugeruje się, że wszystkie dane są resetowane do jednej wartości, co jest całkowicie błędne w kontekście podanego polecenia. Kolejną nieprawidłową koncepcją jest pomysł, iż polecenie ustawia wartość kolumny na 1 dla wszystkich rekordów. W rzeczywistości, aktualizuje ono istniejące wartości, zwiększając je o jeden, a nie ustawia ich na stałą wartość. Takie nieprecyzyjne zrozumienie języka SQL może prowadzić do katastrofalnych skutków w praktycznych zastosowaniach baz danych, w tym do utraty danych lub niepoprawnych aktualizacji, co jest sprzeczne z dobrymi praktykami zarządzania danymi. Kluczowe jest zrozumienie, że każdy element w SQL odgrywa istotną rolę, a nieprecyzyjność prowadzi do błędów, które mogą być czasochłonne do naprawienia. Z tego powodu, w pracy z SQL, należy zwracać znaczną uwagę na szczegóły oraz logiczną strukturę zapytań.

Pytanie 2

Jakie wyniki zostaną wyświetlone po wykonaniu podanej w ramce kwerendy SQL SELECT na tabeli pracownicy, która zawiera rekordy?

idimienazwiskopensja
1AnnaKowalska3400
2MonikaNowak1300
3EwelinaNowakowska2600
4AnnaPrzybylska4600
5MariaKowal2200
6EwaNowacka5400
SELECT SUM(pensja) FROM pracownicy WHERE pensja > 4000;
A. Kwota 5400, co oznacza najwyższą pensję wśród pracowników
B. Kwota 19500, czyli suma wszystkich pensji zatrudnionych
C. Dwie kwoty: 4600 oraz 5400, jako wynagrodzenia pracowników przekraczające 4000
D. Kwota 10000, co stanowi sumę pensji pracowników o id=4 i id=6
Błędne zrozumienie zapytania SQL może wynikać z pominięcia szczegółów w klauzuli WHERE. Funkcja SUM w połączeniu z WHERE służy do zliczania tylko tych wartości, które spełniają określony warunek. W tym przypadku analizujemy pensje większe niż 4000. Mylną interpretacją byłoby bezkrytyczne założenie, że funkcja SUM zlicza wszystkie wartości w kolumnie, co prowadzi do niepoprawnego wniosku o sumie wszystkich pensji. Innym typowym błędem jest zakładanie, że zwracane zostaną konkretne wartości pensji, co wskazuje na brak zrozumienia działania funkcji agregujących, które zwracają jedną wartość wynikową, jak suma czy średnia. Powszechnym błędem jest ignorowanie zastosowania klauzuli WHERE, co prowadzi do błędnych interpretacji danych. Wiedza o tym, jak filtrować dane przed ich agregacją, jest kluczowa w skutecznej analizie danych. Zrozumienie roli klauzuli WHERE oraz funkcji agregujących, jak SUM, MAX, MIN, pozwala na tworzenie bardziej precyzyjnych i efektywnych raportów, co jest niezbędne w praktykach biznesowych i IT. Prawidłowe rozumienie tych konceptów jest nieodzowne w pracy z dużymi zbiorami danych i przy podejmowaniu decyzji opartych na danych.

Pytanie 3

Aby uzyskać dane z tabeli pracownicy wyłącznie dla osób, które osiągnęły 26 lat, należy zastosować zapytanie

A. SELECT * FROM pracownicy AND wiek > '25'
B. SELECT * FROM pracownicy OR wiek > '25'
C. SELECT * FROM wiek WHERE pracownicy > '25'
D. SELECT * FROM pracownicy WHERE wiek > '25'
Poprawne zapytanie to 'SELECT * FROM pracownicy WHERE wiek > '25';'. To zapytanie jest zgodne z zasadami SQL i pozwala na wyświetlenie wszystkich rekordów z tabeli 'pracownicy', które spełniają określony warunek dotyczący wieku. Używając klauzuli WHERE, precyzyjnie filtrujemy wyniki i zwracamy tylko tych pracowników, którzy mają więcej niż 25 lat. Warto pamiętać, że w SQL operator '>' jest wykorzystywany do porównywania wartości, a w tym przypadku pozwala nam na wybranie pracowników, którzy ukończyli 26 lat. Przy projektowaniu zapytań SQL, kluczowe jest stosowanie odpowiednich warunków filtrujących, aby ograniczyć zwracane dane do tych istotnych dla analiz. Przykładowo, analiza wieku pracowników w kontekście przyznawania dodatków lub przeprowadzania szkoleń może opierać się na takich zapytaniach. W praktyce, ważne jest także wykorzystanie indeksów w bazach danych, aby zwiększyć wydajność zapytań, zwłaszcza w dużych zbiorach danych.

Pytanie 4

Poniższy fragment kodu PHP funkcjonuje poprawnie i ma na celu wyświetlenie na stronie internetowej informacji pobranych kwerendą z bazy danych. Ile pól zostanie wyświetlonych na stronie?

$ile = mysqli_num_rows($zapytanie);
for ($i = 0; $i < $ile; $i++) 
{
    $wiersz = mysqli_fetch_row($zapytanie); 
    echo "<p>Klient: $wiersz[0] $wiersz[1], adres: $wiersz[2] </p>";
}
A. Z jednego pola
B. Z czterech pól
C. Z dwóch pól
D. Z trzech pól
Wybranie niepoprawnych odpowiedzi, takich jak 'z jednego pola' czy 'z dwóch pól', może wynikać z niepoprawnego zrozumienia struktury danych zwracanych przez funkcję mysqli_fetch_row. Odpowiedzi te sugerują, że użytkownik może nie dostrzegać, że funkcja ta zwraca wszystkie kolumny z wiersza jako elementy tablicy, co ma kluczowe znaczenie w kontekście przetwarzania wyników zapytań. Odpowiedzi wskazujące na jedno lub dwa pola mogą prowadzić do błędnych wniosków, ponieważ ignorują one pełny zakres danych, które są dostępne w każdym wierszu. W praktyce, często umieszcza się w bazie danych więcej informacji, a każda kolumna odpowiada innemu atrybutowi obiektu, na przykład klienta. Dlatego jeśli zapytanie SQL zwraca trzy kolumny, to oczekiwanym wynikiem powinno być właśnie wyświetlenie tych trzech, co podkreśla istotność precyzyjnego formułowania zapytań i poprawnego odczytywania wyników. Zrozumienie struktury danych jest kluczowe dla poprawnego odczytu wyników i ich późniejszego wykorzystania, co potwierdzają standardy związane z programowaniem w PHP oraz obsługą baz danych.

Pytanie 5

W MS SQL Server rola predefiniowana o nazwie dbcreator umożliwia użytkownikowi

A. wykonywanie wszelkich operacji na serwerze i posiadanie praw do każdej bazy
B. zarządzanie plikami na dysku
C. zarządzanie bezpieczeństwem systemu
D. tworzenie, modyfikowanie, usuwanie oraz przywracanie bazy danych
Wybór niewłaściwej odpowiedzi jest powszechnym błędem związanym z myleniem ról i uprawnień w MS SQL Server. Na przykład, stwierdzenie, że rola dbcreator pozwala na zarządzanie bezpieczeństwem systemu, jest nieprawidłowe, ponieważ bezpieczeństwo bazy danych i systemu zarządzania bazami danych w SQL Server podlega głównie roli sysadmin oraz uprawnieniom przyznanym przez administratorów. Rola dbcreator koncentruje się na operacjach dotyczących baz danych, a nie na bezpieczeństwie. Podobnie, stwierdzenie, że ta rola umożliwia zarządzanie plikami na dysku, jest błędne; te operacje są związane z rolą, która zarządza systemowymi operacjami plików, a nie bezpośrednio z rolą dbcreator. Natomiast twierdzenie, że rola ta pozwala na wykonywanie każdej operacji na serwerze i posiadanie prawa własności każdej bazy, jest całkowicie mylące, ponieważ taka szeroka moc jest zarezerwowana dla roli sysadmin, która nie ma ograniczeń w działaniach na serwerze SQL. Zrozumienie tych różnic jest niezbędne dla prawidłowego zarządzania uprawnieniami w systemach bazodanowych i może pomóc w uniknięciu kompromitacji danych czy nieautoryzowanego dostępu do krytycznych informacji. W przypadku nadawania uprawnień zawsze należy kierować się zasadą minimalnych uprawnień, aby zredukować ryzyko związane z nieautoryzowanym dostępem i zmianami. Zachowanie spójności w przydzielaniu ról i uprawnień jest kluczowe dla bezpieczeństwa i prawidłowego funkcjonowania systemów bazodanowych.

Pytanie 6

W tabeli personel znajdują się pola: imię, nazwisko, pensja, staż. Aby obliczyć średnią pensję osób zatrudnionych z doświadczeniem od 10 do 20 lat włącznie, należy przeprowadzić kwerendę:

A. SELECT AVG(*) FROM personel WHERE staz >= 10 AND staz <= 20
B. SELECT COUNT(*) FROM personel WHERE staz >= 10 AND staz <= 20
C. SELECT COUNT(pensja) FROM personel WHERE staz >= 10 AND staz <= 20
D. SELECT AVG(pensja) FROM personel WHERE staz >= 10 AND staz <= 20
Analizując błędne odpowiedzi, można zauważyć, że pierwsza z nich wykorzystuje funkcję COUNT, która zlicza liczbę rekordów spełniających określone warunki, a nie oblicza średniej wartości. W tym przypadku, nawet jeśli kwerenda zwróciłaby liczby pracowników z odpowiednim stażem, nie dostarczyłaby informacji o średniej pensji, co jest kluczowe w postawionym pytaniu. Kolejna błędna odpowiedź również odnosi się do funkcji COUNT, co jeszcze raz pokazuje brak zrozumienia celu analizy. Trzecia odpowiedź, z wykorzystaniem COUNT(*), podobnie jak poprzednie, skupia się na liczbie rekordów, a nie na wartościach numerycznych. W kontekście analizy danych, takie podejście prowadzi do niepełnych wniosków i może zniekształcać rzeczywistość finansową firmy. Wreszcie, ostatnia odpowiedź, wykorzystująca AVG(*) jest niepoprawna z technicznego punktu widzenia, ponieważ funkcja AVG wymaga podania konkretnego pola numerycznego, a nie symbolu ogólnego. W praktyce oznacza to, że użytkownik, który wybiera tę opcję, nie wykorzystuje pełni możliwości, jakie daje SQL, a także nie ma świadomości, jak ważne jest precyzyjne formułowanie zapytań. Podsumowując, błędne odpowiedzi wynikają z nieporozumienia dotyczącego zastosowania funkcji agregujących oraz ich roli w analizie danych.

Pytanie 7

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

A. DROP TABLE usuwa tabelę, a TRUNCATE TABLE eliminuje wszystkie dane, zostawiając pustą tabelę
B. Obydwa polecenia usuwają tylko zawartość tabeli, ale tylko DROP TABLE może być przywrócone
C. DROP TABLE usuwa tabelę, natomiast TRUNCATE TABLE modyfikuje dane w niej spełniające określony warunek
D. Obydwa polecenia usuwają tabelę wraz z jej zawartością, jednak tylko TRUNCATE TABLE można cofnąć
Pierwsza koncepcja błędna w tej odpowiedzi wynika z nieprecyzyjnego zrozumienia funkcji polecenia DROP TABLE i TRUNCATE TABLE. DROP TABLE nie tylko usuwa dane, ale również całkowicie likwiduje strukturę tabeli, co oznacza, że wszystkie powiązane zależności, takie jak klucze obce, również znikają. W przeciwieństwie do tego TRUNCATE TABLE nie wpływa na strukturę tabeli. Drugim błędem jest mylne zrozumienie, że TRUNCATE TABLE można cofnąć. W rzeczywistości TRUNCATE, w przeciwieństwie do DELETE, nie generuje logów na poziomie pojedynczych wierszy, co oznacza, że nie można z łatwością przywrócić danych po jego wykonaniu. To prowadzi do niewłaściwego osądu na temat bezpieczeństwa tych poleceń. W praktyce, gdy potrzebujemy usunąć dane w tabeli, ale chcemy zachować jej strukturę, używamy TRUNCATE TABLE. Jeśli tabela nie jest już potrzebna, korzystamy z DROP TABLE. Zrozumienie tych różnic jest kluczowe dla efektywnego zarządzania danymi w bazach danych i unikania nieodwracalnych błędów w administracji bazą danych.

Pytanie 8

Które z poniższych stwierdzeń na temat klucza głównego jest prawdziwe?

A. Może przyjmować wyłącznie wartości liczbowe
B. W przypadku tabeli z danymi osobowymi może to być pole nazwisko
C. Składa się wyłącznie z jednego pola
D. Jest unikalny dla danej tabeli
Wiele osób myli pojęcie klucza podstawowego z innymi właściwościami atrybutów w tabeli. Chociaż klucz podstawowy może składać się tylko z jednego pola, nie jest to warunek konieczny. Klucze podstawowe mogą również być złożone, co oznacza, że mogą składać się z wielu pól. Na przykład, w tabeli rejestrującej sprzedaż można wykorzystać kombinację kolumn takich jak 'ID produktu' i 'ID zamówienia' jako klucz podstawowy, co jest częstą praktyką w projektowaniu baz danych. Z kolei twierdzenie, że pole nazwisko może być kluczem podstawowym w tabeli danych osobowych, jest również problematyczne, ponieważ nazwiska mogą się powtarzać. W związku z tym, wybór atrybutów do klucza podstawowego powinien opierać się na ich unikalności oraz stabilności, a nie na ich powszechności. Ostatnia nieprawidłowa koncepcja sugeruje, że klucz podstawowy może przyjmować tylko wartości liczbowe, co jest wprowadzeniem w błąd. Klucz podstawowy może być zarówno liczbowy, jak i tekstowy; klucz identyfikujący użytkownika może zawierać np. adres e-mail, co jest także przykładem spójnego podejścia w projektowaniu baz danych. Typowe błędy myślowe prowadzące do takich wniosków to uproszczenia związane z rozumieniem właściwości atrybutów oraz zbyt wąskie podejście do koncepcji unikalności w kontekście baz danych.

Pytanie 9

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' WHERE producent='TOSHIBA';
B. UPDATE podzespoly.producent='TOSHIBA' SET URL='toshiba.pl';
C. UPDATE producent='TOSHIBA' SET URL='toshiba.pl';
D. UPDATE podzespoly SET URL='toshiba.pl';
W analizowanych odpowiedziach występuje szereg błędów w zakresie składni SQL oraz koncepcji użycia klauzuli UPDATE. W pierwszej z niepoprawnych odpowiedzi brak jest warunku WHERE, co skutkuje aktualizacją URL dla wszystkich rekordów w tabeli 'podzespoly', co może prowadzić do niepożądanych zmian w bazie danych. Przy podejmowaniu decyzji o modyfikacji danych, klauzula WHERE jest kluczowa dla ograniczenia zakresu aktualizacji tylko do tych rekordów, które spełniają określone kryteria. Dodatkowo, w kolejnej odpowiedzi zastosowanie składni UPDATE producent='TOSHIBA' SET URL='toshiba.pl'; jest błędne, ponieważ nie reprezentuje ona poprawnej sekwencji SQL. W SQL nie można używać operatora równości bezpośrednio w kontekście instrukcji UPDATE. Ponadto, ostatnia odpowiedź również myli koncepcję, ponieważ sugeruje aktualizację na poziomie producenta, a nie rekordu w tabeli podzespoly. Stosowanie niewłaściwej składni oraz brak zrozumienia kontekstu aktualizacji prowadzi do poważnych błędów w pracy z bazami danych. Kluczowym błędem myślowym jest brak uznania, że każda operacja na bazie danych powinna być przemyślana pod kątem jej wpływu na integralność i spójność danych.

Pytanie 10

Baza danych szkoły podstawowej dla dzieci w wieku 6 lat obejmuje tabelę szkoła, która zawiera kolumny: imie, nazwisko, klasa. Wszyscy uczniowie w klasach od 1 do 5 przeszli do wyższej klasy. W celu zwiększenia wartości w kolumnie klasa o 1, należy wykonać następujące polecenie

A. SELECT szkoła FROM klasa = klasa + 1 WHERE klasa >=1 AND klasa <= 5
B. UPDATE nazwisko, imie SET klasa = klasa + 1 WHERE klasa>l OR klasa < 5
C. UPDATE szkoła SET klasa = klasa + 1 WHERE klasa >=1 AND klasa <= 5
D. SELECT nazwisko, imie FROM klasa = klasa + 1 WHERE klasa>l OR klasa < 5
W analizie odpowiedzi, które są nieprawidłowe, można zauważyć szereg nieporozumień związanych z podstawowymi zasadami składni SQL i logiką operacji na bazach danych. W pierwszej z niepoprawnych propozycji zastosowano polecenie SELECT, które jest używane do pobierania danych, a nie do ich aktualizacji. Definicja sama w sobie jest błędna, ponieważ nie można używać SELECT do modyfikacji zawartości tabeli. Druga odpowiedź również wykorzystuje SELECT, co sprawia, że jest nieodpowiednia, ale dodatkowo wykorzystuje błędny warunek 'klasa>l OR klasa < 5', gdzie 'l' jest nieprawidłowym oznaczeniem, co wskazuje na nieporozumienie w składni. Ostatnia nieprawidłowa odpowiedź znowu używa błędnego polecenia, tym razem próbując zaktualizować 'nazwisko, imie', co jest niemożliwe, gdyż kolumna 'klasa' powinna być aktualizowana w kontekście całej tabeli 'szkoła'. Takie błędy pokazują brak zrozumienia dla struktury zapytań SQL oraz zasad dotyczących modyfikacji danych w bazach danych. Kluczowe dla efektywnego korzystania z SQL jest zrozumienie, które polecenia są odpowiednie do danych operacji oraz jakie składnie są wymagane do poprawnego ich zdefiniowania. Właściwe podejście do aktualizacji danych wymaga nie tylko znajomości polecenia UPDATE, ale także umiejętności poprawnego formułowania warunków w klauzuli WHERE, aby uniknąć niepożądanych efektów ubocznych, takich jak aktualizacja niewłaściwych rekordów.

Pytanie 11

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

A. korzystamy z atrybutu DEFAULT
B. definiujemy wszystkie pola o typie numerycznym
C. mamy do czynienia z kluczem podstawowym
D. tworzymy definicję wszystkich pól tabeli
Nieprawidłowe odpowiedzi odzwierciedlają typowe błędne rozumienie działania atrybutu NOT NULL w kontekście tabel baz danych. W przypadku klucza podstawowego, jest to niezbędny warunek, aby zapewnić, że każdy wiersz w tabeli jest jednoznacznie identyfikowalny. Odpowiedzi sugerujące, że atrybut NOT NULL jest wymagany przy użyciu atrybutu DEFAULT, są mylące, ponieważ atrybut DEFAULT służy do ustalania wartości domyślnych dla kolumn, które mogą przyjmować wartość NULL. Użycie atrybutu DEFAULT wcale nie implikuje, że kolumna musi być oznaczona jako NOT NULL. Kolejna niepoprawna koncepcja dotyczy definicji wszystkich pól tabeli. Nie ma wymogu, aby wszystkie kolumny w tabeli były oznaczone jako NOT NULL; zależy to od specyficznych wymagań dotyczących danych w danej aplikacji. Ponadto, definicja wszystkich pól typu numerycznego jako NOT NULL również jest fałszywa, ponieważ pola numeryczne mogą być używane do reprezentacji wartości, które mogą być nieznane lub nieprzydzielone, co prowadziłoby do sytuacji, w której wartość NULL jest jak najbardziej uzasadniona. Zrozumienie tych różnic jest kluczowe dla efektywnego projektowania baz danych oraz zarządzania danymi w aplikacjach, co jest zgodne z najlepszymi praktykami w branży.

Pytanie 12

W systemie baz danych sklepu komputerowego znajduje się tabela o nazwie komputery. Aby stworzyć raport, który wyświetla dane z tabeli dla komputerów z co najmniej 8 GB pamięci oraz procesorem Intel, można użyć kwerendy

A. SELECT * FROM komputery WHERE procesor = "Intel" AND pamiec >= 8
B. SELECT * FROM komputery WHERE procesor = "Intel" AND pamiec < 8
C. SELECT * FROM komputery WHERE procesor = "Intel" OR pamiec < 8
D. SELECT * FROM komputery WHERE procesor = "Intel" OR pamiec >= 8
Niepoprawne odpowiedzi bazują na błędnych założeniach dotyczących użycia operatorów logicznych oraz porównania. W przypadku odpowiedzi, w której pamięć jest mniejsza niż 8 GB, zapytanie nie spełnia wymagań, ponieważ ogranicza zakres wyników do komputerów, które nie pasują do założonych kryteriów. Ponadto, zastosowanie operatora OR w kontekście, w którym zarówno procesor, jak i pamięć muszą spełniać konkretne warunki, prowadzi do uzyskania wyników, które nie odpowiadają założeniom raportu. Operator OR łączy wyniki, które spełniają przynajmniej jeden z warunków, co w tym przypadku prowadzi do wybierania komputerów, które mogą mieć mniejszą pamięć, a procesor wcale nie musi być Intel. Takie podejście często wynika z mylnego przekonania, że wystarczy spełnić jeden z warunków, aby uzyskać oczekiwane wyniki. W kontekście tworzenia kwerend, ważne jest, aby dokładnie rozumieć, jak działają różne operatory oraz jakie efekty wywołują w analizowanych danych. Zastosowanie operatorów logicznych musi być starannie przemyślane, aby zapewnić, że zapytania będą rzeczywiście zwracały tylko te dane, które są istotne oraz zgodne z wymaganiami użytkownika.

Pytanie 13

W systemie baz danych wykonano następujące operacje dotyczące uprawnień użytkownika adam: GRANT ALL PRIVILEGES ON klienci To adam REVOKE SELECT, INSERT, UPDATE ON klienci FROM adam. Jakie prawa będzie miał użytkownik adam po zrealizowaniu tych operacji?

A. aktualizowania danych oraz przeglądania tabeli klienci
B. tworzenia tabeli klienci oraz wprowadzania do niej danych
C. usunięcia tabeli lub jej danych
D. przeglądania tabeli klienci i dodawania do niej rekordów
Odpowiedzi, które sugerują, że użytkownik adam ma inne prawa, są niepoprawne z technicznego punktu widzenia. Użytkownik ten nie może aktualizować danych ani przeglądać tabeli klienci, ponieważ prawa do aktualizacji i przeglądania zostały odebrane przez polecenie REVOKE. Oznacza to, że wszystkie operacje wymagające dostępu do odczytu oraz modyfikacji danych w tabeli klienci są dla niego zablokowane. Kolejna nieprawidłowa odpowiedź sugeruje, że adam ma prawo do tworzenia tabeli klienci, co jest również błędne, ponieważ w kontekście przyznanych uprawnień użytkownik nie uzyskał prawa do tworzenia nowych obiektów w bazie danych. Ostatecznie, odpowiedzi te nie uwzględniają, że konkretne działania, takie jak wstawianie nowych rekordów, są zablokowane przez REVOKE, co skutkuje brakiem możliwości dodawania danych do tabeli klienci. Wnioskując, użytkownik adam ma jedynie prawo do usuwania rekordów, a nie do przeglądania, aktualizowania czy tworzenia nowych tabel, co jest kluczowe przy zarządzaniu dostępem do baz danych.

Pytanie 14

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

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

Pytanie 15

Aby dodać nowy rekord do tabeli Pracownicy, konieczne jest zastosowanie polecenia SQL

A. INSERT VALUES (Jan, Kowalski) INTO Pracownicy
B. INSERT INTO Pracownicy VALUES ('Jan',' Kowalski')
C. INSERT (Jan, Kowalski) INTO Pracownicy
D. INSERT VALUES Pracownicy INTO (Jan, Kowalski)
Aby dodać nowy rekord do tabeli Pracownicy w bazie danych, należy skorzystać z polecenia SQL INSERT INTO, które jest standardowym sposobem na wprowadzenie nowych danych do tabeli. Poprawna składnia polecenia to 'INSERT INTO <nazwa_tabeli> VALUES (<wartości>)'. W przypadku podanego przykładu, używamy 'INSERT INTO Pracownicy VALUES ('Jan', 'Kowalski');', co jest zgodne z wymaganiami SQL. Polecenie to wprowadza dwa nowe atrybuty: imię 'Jan' oraz nazwisko 'Kowalski' do tabeli Pracownicy. Ważne jest, aby wartości były poprawnie otoczone apostrofami w przypadku typów danych tekstowych. Zgodnie z normami SQL, zapis ten pozwala na dodanie rekordu, pod warunkiem, że kolumny tabeli są zgodne z wprowadzanymi danymi, a tabela Pracownicy została wcześniej zdefiniowana w bazie danych. Przykładem może być sytuacja, w której tabela Pracownicy ma kolumny 'Imie' i 'Nazwisko', a wprowadzenie wartości bezpośrednio do tych kolumn jest zgodne z ich definicją.

Pytanie 16

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

A. realizować operacje na bazie, takie jak wstawianie lub modyfikowanie danych
B. wykonywać polecenia, takie jak tworzenie kopii zapasowej
C. zmieniać role i konta użytkowników
D. przechodzić uprawnienia
Uprawnienia obiektowe w kontekście baz danych pozwalają na kontrolowanie dostępu do różnych zasobów, takich jak tabele, widoki czy procedury składowane. Odpowiedź dotycząca wykonywania operacji na bazie, takich jak wstawianie czy modyfikowanie danych, jest prawidłowa, ponieważ uprawnienia te bezpośrednio wpływają na możliwości użytkownika w zakresie manipulacji danymi. Przykładowo, jeśli użytkownik posiada uprawnienie do INSERT, może dodawać nowe rekordy do tabeli, natomiast uprawnienie UPDATE pozwala na zmianę istniejących danych. Takie zarządzanie uprawnieniami jest kluczowe w kontekście bezpieczeństwa danych oraz zapewnienia integralności systemu, ponieważ pozwala na ograniczenie dostępu tylko do tych operacji, które są niezbędne dla danego użytkownika. W praktyce administratorzy baz danych stosują zasady minimalnych uprawnień, przyznając użytkownikom tylko te uprawnienia, które są niezbędne do wykonywania ich pracy, co jest zgodne z najlepszymi praktykami w zakresie zarządzania bezpieczeństwem baz danych.

Pytanie 17

Podczas tworzenia tabeli w SQL, dla jednej z kolumn ustalono klucz główny. Jakie atrybuty należy zastosować, aby uniemożliwić wprowadzenie wartości pustej?

A. NULL
B. UNIQUE
C. NOT NULL
D. DEFAULT
Atrybut NOT NULL jest kluczowym elementem w definiowaniu struktury tabeli w języku SQL, który zabezpiecza kolumnę przed wstawianiem wartości pustych (NULL). W kontekście klucza głównego, który ma zapewnić unikalność i identyfikowalność każdego rekordu w tabeli, użycie NOT NULL jest niezbędne, aby zagwarantować, że każda wartość w tej kolumnie jest zawsze obecna. Dla przykładu, w stworzonej tabeli `Pracownicy`, jeśli kolumna `ID_Pracownika` jest kluczem głównym, atrybut NOT NULL wymusi, że każde wstawienie rekordu będzie wymagało podania unikalnej wartości dla `ID_Pracownika`, co uniemożliwia dodanie rekordu bez tej wartości. Standard SQL definiuje NOT NULL jako jeden z podstawowych atrybutów, które mogą być używane w deklaracji kolumn, a jego stosowanie jest kluczowe dla integracji danych oraz zapewnienia spójności bazy danych. W praktyce, w przypadku prób dodania rekordu z pustą wartością w takiej kolumnie, system generuje błąd, co eliminuje ryzyko powstawania niekompletnych danych.

Pytanie 18

Tworząc tabelę produkty, należy dodać pole cena, które będzie odzwierciedlać koszt produktu. Jaki typ powinno mieć to pole?

A. TINYTEXT
B. ENUM
C. DECIMAL(10, 2)
D. INTEGER(11)
Wybór typów ENUM, INTEGER(11) i TINYTEXT dla pola przechowującego cenę produktu może prowadzić do istotnych problemów. ENUM to typ danych, który przechowuje zestaw z góry określonych wartości. Jest to użyteczne dla ograniczonego zestawu opcji, np. dla koloru lub statusu, ale nie nadaje się do przechowywania wartości liczbowych, takich jak ceny, które mogą być zmienne i nieprzewidywalne. Z kolei typ INTEGER(11) przechowuje jedynie liczby całkowite, co oznacza, że nie będzie w stanie reprezentować wartości z miejscami po przecinku. Cena zamówienia 19,99 PLN nie mogłaby być poprawnie zarejestrowana, co byłoby nieakceptowalne w kontekście aplikacji finansowych. TINYTEXT to typ przechowujący tekst, co w kontekście cen jest absolutnie nieodpowiednie, ponieważ nie zapewnia możliwości przechowywania wartości liczbowych, a także nie pozwala na wykonywanie kalkulacji arytmetycznych. Stąd wynika, że wybór tych typów jest oparty na nieporozumieniach dotyczących ich funkcjonalności i zastosowania, co może skutkować nieprawidłowym działaniem aplikacji oraz błędami w obliczeniach. Aby uniknąć takich błędów, ważne jest, by dobrze rozumieć, jakie typy danych są odpowiednie dla określonych zastosowań, a także znać zasady dobrego projektowania baz danych, które skupiają się na precyzyjnej reprezentacji danych oraz ich odpowiednim typie.

Pytanie 19

Tabela gory zawiera dane o polskich szczytach oraz górach, w których się one znajdują. Jakie zapytanie należy wykonać, aby zobaczyć Koronę Gór Polskich, czyli najwyższy szczyt w każdym z pasm górskich?

A. SELECT pasmo, szczyt, MAX(wysokosc) FROM gory GROUP BY pasmo;
B. SELECT pasmo, szczyt, MAX(wysokosc) FROM gory;
C. SELECT pasmo, szczyt FROM gory GROUP BY wysokosc;
D. SELECT pasmo, szczyt, wysokosc FROM gory;
Wybrana kwerenda SELECT pasmo, szczyt, MAX(wysokosc) FROM gory GROUP BY pasmo; jest poprawna, ponieważ umożliwia uzyskanie najwyższego szczytu w każdym pasmie górskim. W tym przypadku użycie funkcji agregującej MAX pozwala na zidentyfikowanie maksymalnej wartości kolumny 'wysokosc' dla każdej grupy utworzonej przez 'pasmo'. Podczas stosowania klauzuli GROUP BY, dane są dzielone na różne grupy na podstawie wartości w kolumnie 'pasmo', a następnie dla każdej grupy obliczana jest maksymalna wysokość szczytu. Taki sposób zorganizowania danych jest zgodny z najlepszymi praktykami SQL, które rekomendują wykorzystanie funkcji agregujących w połączeniu z grupowaniem, aby uzyskać zwięzłe i precyzyjne wyniki. Przykładowo, po wykonaniu tej kwerendy, otrzymamy listę pasm górskich wraz z najwyższymi szczytami, co jest niezbędne do analizy geograficznej i turystycznej.

Pytanie 20

Jakie rozwiązanie należy zastosować w przechowywaniu danych, aby przyspieszyć wykonywanie zapytań w bazie danych?

A. Indeksy.
B. Zasady.
C. Klucze podstawowe.
D. Domyślne wartości.
Indeksy są kluczowym elementem optymalizacji wydajności baz danych. Działają one jak wskaźniki, które pozwalają systemowi zarządzania bazą danych (DBMS) szybko zlokalizować dane bez potrzeby przeszukiwania całej tabeli. Indeksy są szczególnie przydatne przy wykonywaniu zapytań, które filtrują, sortują lub łączą dane z różnych tabel. Na przykład, w przypadku dużych zbiorów danych, dodanie indeksu do kolumny, która jest często używana w klauzulach WHERE, może znacznie skrócić czas odpowiedzi. W standardzie SQL, można tworzyć indeksy za pomocą polecenia CREATE INDEX, co pozwala na zdefiniowanie, które kolumny mają być indeksowane. Warto jednak pamiętać, że nadmiar indeksów może prowadzić do spowolnienia operacji zapisu, dlatego ważne jest, aby dobrze przemyśleć, które kolumny powinny być indeksowane. Użycie indeksów jest szczególnie zalecane w przypadku aplikacji, które często wykonują zapytania na dużych zbiorach danych, takich jak systemy e-commerce czy aplikacje analityczne.

Pytanie 21

W relacyjnych bazach danych encja jest przedstawiana przez

A. kwerendę.
B. relację.
C. tabelę.
D. rekord.
Nieprawidłowe odpowiedzi wskazują na pewne nieporozumienia dotyczące definicji podstawowych elementów relacyjnych baz danych. Rekord, chociaż jest istotnym składnikiem tabeli, nie reprezentuje encji, lecz pojedynczą instancję encji. Mylne jest również utożsamianie tabeli z relacją, ponieważ relacja w kontekście teorii zbiorów odnosi się do zbioru krotek, podczas gdy tabela jest fizycznym i trwałym przedstawieniem tychże zbiorów w bazie danych. Kwerenda natomiast to instrukcja używana do uzyskiwania danych z bazy danych, a nie do ich reprezentacji. To podejście do zrozumienia modeli relacyjnych może prowadzić do błędnych wniosków w projektowaniu baz danych. Dla przykładu, nieumiejętność rozróżnienia między tabelą a rekordem może skutkować niewłaściwym modelowaniem danych, co wpłynie negatywnie na wydajność i integralność bazy danych. Warto zwrócić uwagę na znaczenie właściwego stosowania terminologii oraz zrozumienie struktury danych w relacyjnych bazach danych, co jest kluczowe dla efektywnego zarządzania danymi i ich relacjami.

Pytanie 22

Która z funkcji agregujących wbudowanych w język SQL służy do obliczania średniej wartości w określonej kolumnie?

A. AVG
B. SUM
C. MIN
D. COUNT
Wybór funkcji MIN, SUM i COUNT w kontekście obliczania średniej wartości w danej kolumnie wskazuje na pewne nieporozumienia związane z działaniem funkcji agregujących w SQL. Funkcja MIN zwraca najmniejszą wartość w zbiorze danych, co może być pomocne w analizie, ale nie dostarcza żadnych informacji na temat średniej. Z kolei SUM dodaje wszystkie wartości w kolumnie, co również nie odpowiada na pytanie o średnią wartość. Można to zobrazować przykładem: mając wartości 10, 20 i 30, SUM zwróci 60, co jest całkowitą wartością, natomiast AVG w tym przypadku dałoby 20, co jest średnią. Funkcja COUNT z kolei zlicza wszystkie wiersze, które pasują do określonego kryterium, ale nie dostarcza informacji o wartościach w kolumnie. Typowym błędem jest mylenie tych funkcji i ich zastosowań, co prowadzi do nieefektywnej analizy danych. Zrozumienie różnic między tymi funkcjami jest kluczowe dla efektywnego wykorzystania SQL w analizie danych, a także do podejmowania świadomych decyzji opartych na danych.

Pytanie 23

Relacja wiele-do-wielu w bazach danych występuje pomiędzy tabelami, gdy

A. wielu wierszom z tabeli A przypisany jest tylko jeden wiersz z tabeli B
B. wielu wierszom z tabeli A przyporządkowane są liczne wiersze z tabeli B
C. jednemu wierszowi z tabeli A przysługuje wyłącznie jeden wiersz z tabeli B
D. jednemu wierszowi z tabeli A odpowiada wiele wierszy z tabeli B
Odpowiedź, że wielu wierszom z tabeli A przypada wiele wierszy z tabeli B, jest jak najbardziej na miejscu. Wiesz, relacja wiele-do-wielu w bazach danych pojawia się, gdy jednemu rekordowi w jednej tabeli przypisanych jest kilka rekordów w drugiej. Na przykład w bazie danych uczelni mamy studentów (tabela A), którzy mogą zapisać się na różne kursy (tabela B), a jeden kurs może być realizowany przez różnych studentów. W praktyce, żeby to wszystko działało, tworzymy tabelę pośredniczącą, która łączy oba zestawy danych za pomocą kluczy obcych. Taki sposób daje sporo swobody w zarządzaniu danymi, bo łatwo można dodawać lub usuwać powiązania. Ważne jest też, aby zwrócić uwagę na zasady normalizacji baz danych, które pomagają unikać powielania danych i zapewniają, że wszystko jest spójne. Dobrze przemyślane relacje w bazie danych to podstawa, bo to one wpływają na wydajność i prostotę w zarządzaniu danymi.

Pytanie 24

Z tabel Artykuly oraz Autorzy należy wyodrębnić tylko nazwiska autorów oraz tytuły ich artykułów, które uzyskały ocenę 5. Odpowiednia kwerenda do pozyskania tych informacji ma postać

Ilustracja do pytania
A. SELECT nazwisko, tytul FROM autorzy, artykuly WHERE ocena == 5;
B. SELECT nazwisko, tytul FROM autorzy JOIN artykuly ON autorzy.id = autorzy_id WHERE ocena = 5;
C. SELECT nazwisko, tytul FROM autorzy JOIN artykuly ON autorzy.id = artykuly.id;
D. SELECT nazwisko, tytul FROM autorzy JOIN artykuly ON autorzy.id = autorzy_id;
Odpowiedź SELECT nazwisko tytul FROM autorzy JOIN artykuly ON autorzy.id = autorzy_id WHERE ocena = 5; jest poprawna ponieważ precyzyjnie wykorzystuje konstrukcję SQL do połączenia tabel Autorzy i Artykuly. JOIN łączy te tabele na podstawie klucza obcego autorzy_id w tabeli Artykuly który odpowiada kluczowi głównemu id w tabeli Autorzy. To pozwala na uzyskanie pełnej informacji o autorach i ich artykułach. Klauzula WHERE ocena = 5 filtruje wyniki i zwraca jedynie te które mają ocenę równą 5. Jest to standardowe podejście w SQL do pobierania danych na podstawie określonych kryteriów co jest bardzo efektywne w zarządzaniu dużymi zbiorami danych. Praktyczne zastosowanie tego typu kwerend obejmuje na przykład systemy rekomendacji artykułów gdzie tylko dobrze ocenione treści są pokazywane użytkownikom. Stosowanie takich kwerend zgodnie z najlepszymi praktykami pozwala na utrzymanie wydajności bazy danych oraz na zapewnienie integralności danych co jest kluczowe w profesjonalnym zarządzaniu bazami danych.

Pytanie 25

Jaką relację w projekcie bazy danych powinno się ustalić pomiędzy tabelami przedstawionymi na rysunku, przy założeniu, że każdy klient sklepu internetowego złoży co najmniej dwa zamówienia?

Ilustracja do pytania
A. n:n
B. 1:n, gdzie 1 jest po stronie Klienta, a wiele po stronie Zamówienia
C. 1:n, gdzie 1 znajduje się po stronie Zamówienia, a wiele po stronie Klienta
D. 1:1
Analizując różne możliwe relacje między tabelami, warto zrozumieć, dlaczego niektóre podejścia są błędne. Relacja 1:1 zakłada, że jedna jednostka w pierwszej tabeli odpowiada dokładnie jednej jednostce w drugiej tabeli. W kontekście sklepu internetowego sugerowałoby to, że jeden klient może mieć tylko jedno zamówienie, co nie odpowiada rzeczywistości, gdzie klienci zazwyczaj dokonują wielu transakcji. Relacja 1:n, gdzie 1 jest po stronie Zamówienia, a wiele po stronie Klienta, również jest niepoprawna, ponieważ sugeruje, że jedno zamówienie może być przypisane do wielu klientów, co jest sprzeczne z indywidualnym charakterem zakupów. Relacja n:n, choć teoretycznie pozwalałaby na przypisanie wielu klientów do wielu zamówień, w rzeczywistości wymagałaby dodatkowej tabeli pośredniej do przechowywania tych powiązań, co wprowadzałoby niepotrzebną złożoność i mogłoby prowadzić do błędów w przetwarzaniu danych. Typowym problemem przy projektowaniu baz danych jest błędne zrozumienie relacji między danymi, co może prowadzić do nieefektywnych struktur, utrudniających zarówno utrzymanie jak i rozwój systemu. Dlatego tak ważne jest dokładne zrozumienie specyfiki relacji między danymi i stosowanie odpowiednich modeli, które zapewnią zarówno integralność jak i wydajność systemu informatycznego na dłuższą metę.

Pytanie 26

Jaką funkcją agregującą można uzyskać ilość rekordów?

A. SUM
B. COUNT
C. NUMBER
D. AVG
Wybór funkcji SUM, AVG czy NUMBER nie jest najlepszy, jeśli chodzi o zliczanie rekordów. Funkcja SUM sumuje wartości w kolumnach, a nie zlicza rekordy. Na przykład, zapytanie SELECT SUM(wartość) FROM zamówienia pokaże nam całkowitą wartość zamówień, ale nie powie, ile ich było. Funkcja AVG natomiast oblicza średnią, więc też nie nadaje się do liczenia rekordów. Używając zapytania SELECT AVG(wiek) FROM pracownicy dostaniemy średni wiek, ale nie wiedząc, ile mamy pracowników. Co do NUMBER, to w SQL nie jest nawet standardową funkcją, więc może być tu jakieś nieporozumienie. Często mylimy te funkcje i to prowadzi do złych analiz. Zrozumienie, jakie są różnice między nimi, to klucz do robienia dobrych analiz danych. Dlatego warto zwracać na to uwagę.

Pytanie 27

Tabela Pacjenci zawiera kolumny: imie, nazwisko, wiek oraz lekarz_id. W celu stworzenia raportu z imionami i nazwiskami pacjentów, którzy mają mniej niż 18 lat i są zapisani do lekarza o id wynoszącym 6, należy zastosować kwerendę SQL

A. SELECT imie, nazwisko WHERE wiek < 18 AND lekarz_id = 6
B. SELECT imie, nazwisko WHERE wiek < 18 OR lekarz_id = 6
C. SELECT imie, nazwisko FROM Pacjenci WHERE wiek < 18 AND lekarz_id = 6
D. SELECT imie, nazwisko FROM Pacjenci WHERE wiek < 18 OR lekarz_id = 6
Pierwsza z odpowiedzi nie spełnia wymogów, ponieważ używa operatora 'OR' w warunkach, co prowadziłoby do zwrócenia pacjentów, którzy są poniżej 18 roku życia lub są zapisani do lekarza o id równym 6. Taki sposób formułowania zapytania nie odpowiada na postawione w pytaniu wymagania, jako że może zwrócić również pacjentów, którzy nie są nieletni, ale są przypisani do lekarza nr 6. To podejście nie jest zgodne z zasadami analizy danych, gdzie kluczowe jest precyzyjne definiowanie kryteriów. Kolejna odpowiedź również zawiera błąd, gdyż brakuje w niej klauzuli 'FROM', co skutkuje niepełnym zapytaniem SQL. Bez tej klauzuli system nie wie, z jakiej tabeli powinien pobrać dane, co prowadzi do błędu wykonania. Zobaczenie wyników zapytania jest fundamentalne w praktyce baz danych, a każdy programista powinien być świadomy, jak zbudować poprawną kwerendę. Wreszcie, sposób użycia operatora 'AND' w pewnych odpowiedziach jest poprawny, ale sposób ich formułowania oraz pominięcie kluczowych elementów, jak 'FROM', wyklucza je z grona właściwych opcji. Warto zwracać uwagę na zrozumienie logiki kwerend SQL, co jest kluczowe w pracy z bazami danych.

Pytanie 28

W PHP, aby poprawnie zakończyć połączenie z bazą danych MySQL, ostatnim krokiem powinno być użycie polecenia

A. mysql_exit
B. exit
C. die
D. mysqli_close
Aby prawidłowo obsłużyć połączenie z bazą danych MySQL w języku PHP, kluczowym krokiem jest zamknięcie tego połączenia po zakończeniu operacji na bazie danych. Najlepszą praktyką jest użycie funkcji mysqli_close. Ta funkcja jest częścią rozszerzenia MySQLi (MySQL Improved), które oferuje nowoczesne podejście do komunikacji z bazą danych, w tym zwiększone bezpieczeństwo i wydajność. Po wywołaniu mysqli_close, wszystkie zasoby związane z połączeniem są zwalnianie, co pozwala na uniknięcie potencjalnych wycieków pamięci. Przykładowe użycie: $connection = mysqli_connect('host', 'user', 'password', 'database'); // Po dokonaniu operacji na bazie danych mysqli_close($connection);. Ważne jest, aby zamykać połączenia, szczególnie w aplikacjach działających w środowisku produkcyjnym, aby zapewnić optymalne wykorzystanie zasobów serwera oraz bezpieczeństwo danych. Standardowe zalecenia dokumentacji PHP podkreślają znaczenie użycia mysqli_close w celu zakończenia sesji z bazą danych, co sprzyja stabilności i niezawodności aplikacji.

Pytanie 29

Według którego parametru oraz dla ilu tabel zostaną zwrócone wiersze na liście w wyniku przedstawionego zapytania?

SELECT * FROM producent, hurtownia, sklep, serwis WHERE
  producent.nr_id = hurtownia.nr_id AND
  producent.wyrob_id = serwis.wyrob_id AND
  hurtownia.nr_id = sklep.nr_id AND
  sklep.nr_id = serwis.nr_id AND
  producent.nr_id = 1;
A. Według parametru wyrób Jd wyłącznie dla trzech tabel.
B. Według parametru wyrób id dla wszystkich tabel.
C. Według parametru nr id wyłącznie dla trzech tabel.
D. Według parametru nr id dla wszystkich tabel.
Wybrana odpowiedź jest niepoprawna. Wszystkie tabelki są łączone przez wartość kolumny nr id, a nie konkretnie przez 'wyrób id' lub 'wyrób Jd'. Ważne jest, aby pamiętać, że zapytanie SQL odnosi się do wszystkich tabel, a nie tylko do trzech. W niektórych odpowiedziach może wystąpić błąd, polegający na myśleniu, że zapytanie dotyczy tylko trzech tabel, podczas gdy w rzeczywistości dotyczy ono czterech: producent, hurtownia, sklep i serwis. Ponadto, zrozumienie, jakie konkretne parametry są używane do zwracania wierszy, jest kluczowe dla zrozumienia, jak działa zapytanie. Zrozumienie tego, jakie parametry są używane w zapytaniu SQL, jest kluczowe dla zrozumienia, jakie dane są zwracane i dlaczego. Niewłaściwe zrozumienie tego, jakie parametry są używane w zapytaniu, może prowadzić do niewłaściwego zrozumienia, jakie dane są zwracane i dlaczego. Pamiętaj, że idealnym celem jest nie tylko zrozumienie, jak działa zapytanie, ale także zrozumienie, dlaczego zwraca konkretne dane i jak te dane są związane z naszymi potrzebami programistycznymi.

Pytanie 30

Jakim systemem do zarządzania wersjami oprogramowania jest

A. TotalCommander
B. FileZilla
C. Eclipse
D. GIT
GIT to system kontroli wersji, który jest niezwykle popularny wśród programistów i zespołów developerskich, umożliwiający śledzenie zmian w kodzie źródłowym oraz współpracę nad projektami. GIT jest rozproszonym systemem, co oznacza, że każdy programista ma pełną kopię repozytorium na swoim lokalnym komputerze. Dzięki temu, praca w trybie offline jest możliwa, a zmiany można synchronizować później z centralnym repozytorium. GIT wspiera również wiele funkcji, takich jak branching, co pozwala na równoległe rozwijanie funkcjonalności bez wpływu na główną wersję kodu. Przykładowo, zespół może pracować nad nowymi funkcjami w osobnych gałęziach i łączyć je z główną wersją po zakończeniu prac. GIT jest również zgodny z najlepszymi praktykami, takimi jak Continuous Integration (CI) i Continuous Deployment (CD), co pozwala na automatyzację procesów testowania i wdrażania oprogramowania. W branży IT GIT stał się standardem, a jego znajomość jest kluczowa dla efektywnej pracy w zespołach. Warto również wspomnieć o platformach takich jak GitHub czy GitLab, które oferują zintegrowane narzędzia do zarządzania projektami opartymi na GIT.

Pytanie 31

Jaką rolę pełni funkcja PHP o nazwie mysql_num_rows()?

A. zwraca ilość wierszy znajdujących się w rezultacie zapytania
B. zwraca następny rekord z wynikami zapytania
C. numeruje rekordy w bazie danych
D. zwraca rekord o numerze podanym w argumencie funkcji
Wybór odpowiedzi, że funkcja mysql_num_rows() zwraca rekord, którego numer podany został w parametrze funkcji, jest błędny, ponieważ nie odzwierciedla rzeczywistego działania tej funkcji. mysql_num_rows() nie ma możliwości indeksowania rekordów ani bezpośredniego ich zwracania; jej jedyną rolą jest zliczanie wierszy w zestawie wyników z zapytania SQL. Kolejny wybór sugerujący, że funkcja ponumerowuje rekordy w bazie danych, uwidacznia nieporozumienie dotyczące operacji na bazach danych. W rzeczywistości, numeracja rekordów jest zadaniem, które powinno być rozwiązywane na poziomie aplikacji, a nie na poziomie bazy danych. Również odpowiedź mówiąca, że funkcja zwraca kolejny rekord z wynikami zapytania, wprowadza w błąd, ponieważ mysql_num_rows() nie jest przeznaczona do nawigacji po wynikach; nie zwraca konkretnego rekordu, lecz jedynie liczbę dostępnych wierszy. Typowy błąd myślowy przy takich odpowiedziach polega na pomyleniu funkcji do zliczania z funkcjami, które manipulują lub przetwarzają dane. Rozumienie funkcji i ich właściwości jest kluczowe dla efektywnego programowania w PHP oraz dla optymalizacji interakcji z bazami danych.

Pytanie 32

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

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

Pytanie 33

Z tabeli należy wybrać imiona osób, które spełniają kryterium, że drugą literą jest 'e', a słowo ma co najmniej 5 znaków (pięć lub więcej znaków). W tym celu w klauzuli WHERE można użyć wyrażenia

A. imie LIKE '_e___' (po literze e trzy podkreślniki)
B. imie LIKE '_e___%' (po literze e trzy podkreślniki)
C. imie LIKE '_e_%'
D. imie LIKE '%e%'
W analizie pozostałych odpowiedzi można zauważyć, że każda z nich zawiera błędne założenia dotyczące interpretacji wyrażenia LIKE w kontekście zadanych warunków. Pierwsza z odpowiedzi, używająca 'LIKE '%e%', jest niewłaściwa, gdyż poszukuje imion, w których 'e' występuje gdziekolwiek w ciągu, co nie spełnia wymogu, by 'e' było drugą literą. Takie podejście prowadzi do zbyt szerokiego zbioru wyników, nie spełniając zdefiniowanego kryterium. Kolejna odpowiedź, 'LIKE '_e_%', jest również niepoprawna, ponieważ nie określa minimalnej długości imienia, co może skutkować zwróceniem imion krótszych niż pięć znaków, takich jak 'Bea' czy 'Leo'. Trzecia odpowiedź, 'LIKE '_e___', zawiera pewne pozytywne aspekty, jednak nie uwzględnia możliwości, że po trzecim podkreślniku mogą występować dodatkowe znaki, co ogranicza jej użyteczność. Typowym błędem myślowym prowadzącym do takich niepoprawnych wniosków jest pomieszanie koncepcji długości i pozycji znaków w ciągu. Właściwe zrozumienie mechanizmu pracy z wyrażeniami regularnymi w SQL jest kluczowe, aby móc właściwie formułować zapytania, które będą efektywnie przeszukiwać dane i zwracać tylko potrzebne rezultaty. Dobrym rozwiązaniem jest zawsze dokładne przemyślenie, jakie warunki powinny zostać spełnione, zanim przystąpimy do pisania zapytania, co pozwoli uniknąć niepotrzebnych błędów.

Pytanie 34

Kiedy należy użyć kwerendy SELECT DISTINCT, aby wybrać rekordy?

A. pogrupowane.
B. obecne w bazie tylko raz.
C. tak, aby w wskazanej kolumnie nie powtarzały się wartości.
D. uporządkowane w kolejności malejącej lub rosnącej.
Kwerenda SELECT DISTINCT jest używana w SQL do zwracania unikalnych rekordów z określonej kolumny lub kolumn. Głównym celem tej kwerendy jest eliminacja duplikatów z wyników zapytania, co jest szczególnie przydatne w sytuacjach, gdy interesuje nas uzyskanie listy unikalnych wartości, na przykład nazwisk pracowników w firmie, których można znaleźć w tabeli „Pracownicy”. Dzięki zastosowaniu DISTINCT, wynik zapytania dostarczy tylko różne nazwiska, eliminując powtarzające się wystąpienia. W kontekście dobrych praktyk w projektowaniu baz danych, korzystanie z DISTINCT pozwala na efektywniejsze analizowanie danych oraz lepsze zrozumienie struktury informacji w tabelach. Użycie SELECT DISTINCT może również pomóc w optymalizacji zapytań, szczególnie w rozbudowanych bazach danych, gdzie występowanie duplikatów może prowadzić do zafałszowania wyników analiz. Przykład praktyczny to zapytanie: SELECT DISTINCT kraj FROM Klienci, które zwróci wszystkie różne kraje, w których znajdują się klienci, co jest kluczowe w analizach geolokalizacyjnych.

Pytanie 35

System baz danych gromadzi multimedia, co wiąże się z przechowywaniem znacznych ilości danych binarnych. Jakiego typu danych należy użyć w tym przypadku?

A. BLOB
B. ENUM
C. DOUBLE
D. LONGTEXT
Wybór innych typów danych, takich jak ENUM, DOUBLE czy LONGTEXT, do przechowywania danych multimedialnych jest nieodpowiedni z kilku powodów. ENUM jest typem danych służącym do przechowywania z góry zdefiniowanych wartości, co oznacza, że jego zastosowanie ogranicza się do małych zestawów danych, takich jak kategorie czy statusy, a nie do dużych, binarnych plików multimedialnych. Przykładowo, jeśli chcielibyśmy przechować obraz jako ENUM, napotkalibyśmy na problem z rozmiarem oraz elastycznością tego rozwiązania, co w praktyce byłoby nieefektywne. DOUBLE z kolei jest typem służącym do przechowywania liczb zmiennoprzecinkowych, co również nie ma zastosowania w kontekście danych binarnych, takich jak multimedia. Użycie DOUBLE do przechowywania plików audio czy wideo byłoby błędne, ponieważ nie jest on przystosowany do przechowywania danych binarnych, a jedynie do reprezentacji wartości numerycznych. LONGTEXT, mimo że może pomieścić dużą ilość danych tekstowych, również nie jest odpowiedni do przechowywania danych binarnych. Jest to typ przeznaczony do długich łańcuchów znaków, co nie pasuje do formatu plików multimedialnych, które wymagają innego podejścia. Użycie niewłaściwych typów danych w bazach danych może prowadzić do problemów z wydajnością, a także do trudności w zarządzaniu danymi. Dlatego ważne jest, aby dobrze rozumieć różnice między typami danych i ich zastosowaniem w praktyce, aby zapewnić optymalne przechowywanie i zarządzanie danymi w aplikacjach.

Pytanie 36

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

A. zapytanie SELECT
B. projekt raportu
C. zapytanie ALTER
D. etykieta
Etykieta jako źródło danych dla raportu nie jest najlepszym pomysłem, bo sama etykieta nie ma danych, które można by analizować. To jakby mieć tylko opakowanie bez zawartości. Projekt raportu także nie nadaje się jako źródło, bo mówi głównie o tym, jak coś powinno wyglądać, a nie jakie info powinno być w środku. Ważne jest, żeby źródłem danych były konkretne tabele czy zapytania, które dostarczają faktyczną wiedzę. Co do zapytania ALTER, to też jest pewne nieporozumienie, bo ono służy do zmiany struktury bazy, a nie do pobierania danych. Może zmieniać kolumny czy tabelę, ale nie da nam informacji do raportu. Zdarza się, że mylimy różne funkcje w SQL, co prowadzi do użycia niewłaściwych narzędzi do analizy. Dlatego warto wiedzieć, do czego dokładnie służą zapytania SQL, żeby dobrze zarządzać danymi i robić sensowne raporty.

Pytanie 37

Jakie są określenia typowych komend języka SQL, które dotyczą przeprowadzania operacji na danych SQL DML (np.: dodawanie danych do bazy, usuwanie, modyfikowanie danych)?

A. SELECT, SELECT INTO
B. ALTER, CREATE, DROP
C. DENY, GRANT, REVOKE
D. DELETE, INSERT, UPDATE
Pierwsza odpowiedź DENY, GRANT, REVOKE odnosi się do zarządzania uprawnieniami w bazach danych, a nie do operacji na danych. Te polecenia są używane do kontrolowania dostępu do danych, co jest istotne dla bezpieczeństwa, ale nie mają one wpływu na manipulację danymi. W kontekście SQL DML, są one nieodpowiednie, ponieważ nie dotyczą wstawiania, aktualizowania ani usuwania danych. Odpowiedź SELECT, SELECT INTO odnosi się do operacji wyciągania danych z bazy. SELECT służy do pobierania danych, co jest fundamentalne dla analizy i raportowania, ale nie obejmuje modyfikacji danych. SELECT INTO jest używane do kopiowania danych do nowej tabeli, co również nie spełnia wymogu manipulacji danymi w kontekście DML. Odpowiedź ALTER, CREATE, DROP dotyczy struktury bazy danych i definiowania nowych obiektów, takich jak tabele i indeksy. Te polecenia są częścią języka SQL DDL (Data Definition Language) i nie mają zastosowania w kontekście operacji na danych, które są kluczowe dla DML. Zrozumienie różnicy między DML a DDL jest niezbędne, aby skutecznie zarządzać bazą danych i realizować odpowiednie operacje na danych.

Pytanie 38

W SQL, aby dodać nowy wiersz do bazy danych, należy użyć polecenia

A. SELECT ROW
B. CREATE ROW
C. INSERT INTO
D. CREATE INTO
Polecenie 'INSERT INTO' jest kluczowym elementem języka SQL, służącym do dodawania nowych wierszy danych do istniejącej tabeli w bazie danych. Użycie tego polecenia wymaga podania nazwy tabeli, do której chcemy wstawić dane, oraz listy wartości, które mają być dodane. Na przykład, polecenie 'INSERT INTO klienci (imie, nazwisko) VALUES ('Jan', 'Kowalski');' dodaje nowego klienta o imieniu Jan i nazwisku Kowalski do tabeli 'klienci'. Zgodnie z dobrymi praktykami, zawsze warto również uwzględnić obsługę błędów, aby upewnić się, że operacje na danych są bezpieczne i nie powodują naruszeń integralności bazy. Warto również pamiętać, że do jednego polecenia INSERT można dodać wiele wierszy równocześnie, na przykład: 'INSERT INTO klienci (imie, nazwisko) VALUES ('Ewa', 'Nowak'), ('Anna', 'Zielona');'. Użycie 'INSERT INTO' jest fundamentalne w pracy z bazami danych i stanowi podstawę dla bardziej zaawansowanych operacji, takich jak transakcje czy manipulacje danymi w relacyjnych bazach danych.

Pytanie 39

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

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

Pytanie 40

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

A. więzy integralności
B. defragmentację bazy
C. kwerendę aktualizującą
D. archiwizację bazy
Kwerendy aktualizujące są narzędziem, które służą do modyfikacji istniejących danych w bazie, ale nie są one odpowiednie do zapewnienia spójności danych. Ich podstawowym celem jest wprowadzanie zmian, takich jak aktualizacja wartości w tabelach, co może prowadzić do niezamierzonych błędów, jeśli nie są stosowane ostrożnie i z pełną świadomością istniejących więzów integralności. Defragmentacja bazy to proces optymalizacji, który ma na celu poprawę wydajności dostępu do danych przez reorganizację zapisanych danych na dysku, ale nie wpływa na spójność samych danych. Chociaż defragmentacja jest istotna z perspektywy wydajności, nie ma bezpośredniego wpływu na to, czy dane są poprawne czy spójne. Archiwizacja bazy odnosi się do procesu przenoszenia danych do archiwum, co ma na celu zwolnienie miejsca w głównej bazie danych, ale także nie ma nic wspólnego z zapewnieniem integralności danych. Archiwizacja, choć pomocna w zarządzaniu dużymi zbiorami danych, nie eliminuje ryzyka wystąpienia błędów w danych, które mogą pozostać w aktywnej bazie. Wszystkie te podejścia mają swoje zastosowanie, ale nie są metodami zapewniającymi spójność danych na poziomie strukturalnym, jak to robią więzy integralności.