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

Egzamin zdany!

Wynik: 22/40 punktów (55,0%)

Wymagane minimum: 20 punktów (50%)

Nowe
Analiza przebiegu egzaminu- sprawdź jak rozwiązywałeś pytania
Pochwal się swoim wynikiem!
Szczegółowe wyniki:
Pytanie 1

Czym jest DBMS?

A. Strukturalny język zapytań do bazy danych
B. System zarządzania bazą danych
C. Kaskadowy arkusz stylów do opisu wyglądu witryny www
D. Obiektowy język programowania służący do tworzenia stron www
Wybór niepoprawnych odpowiedzi wskazuje na pewne nieporozumienia dotyczące podstawowych koncepcji zarządzania danymi w informatyce. Kaskadowy arkusz stylów (CSS) służy do opisu wyglądu strony internetowej, a nie do zarządzania danymi. CSS jest używany do określenia, jak HTML ma być wyświetlany, korzystając z reguł stylizacji, ale nie ma żadnej funkcji związanej z przechowywaniem ani przetwarzaniem informacji. Z kolei obiektowy język programowania do generowania stron internetowych odnosi się do technologii, które są używane do tworzenia interaktywnych aplikacji, ale nie obejmuje on funkcji zarządzania danymi, które są kluczowe w pracy z bazą danych. Dodatkowo, strukturalny język zapytań kierowanych do bazy danych, czyli SQL, jest rzeczywiście związany z interakcją z DBMS, ale nie jest samodzielnym systemem. SQL jest językiem zapytań, który służy do komunikacji z bazą danych w DBMS, a nie do jej zarządzania jako całości. Często mylone jest pojęcie języka programowania z systemem, co prowadzi do błędnych wniosków. Zrozumienie, że DBMS jest kluczowym elementem w architekturze baz danych, jest istotne dla efektywnego projektowania aplikacji i rozwiązań informatycznych, które wymagają wydajnego zarządzania danymi.

Pytanie 2

Wskaź na właściwą sekwencję tworzenia aplikacji?

A. Tworzenie, analiza potrzeb klienta, specyfikacja wymagań, wdrażanie, testowanie
B. Specyfikacja wymagań, analiza potrzeb klienta, tworzenie, wdrażanie, testowanie
C. Analiza potrzeb klienta, specyfikacja wymagań, tworzenie, wdrażanie, testowanie
D. Analiza potrzeb klienta, specyfikacja wymagań, tworzenie, testowanie, wdrażanie
Prawidłowa kolejność tworzenia aplikacji zaczyna się od analizy wymagań klienta, co jest kluczowym etapem, pozwalającym zrozumieć oczekiwania oraz potrzeby użytkowników. Następnie, na podstawie zebranych informacji, sporządzana jest specyfikacja wymagań, która dokładnie opisuje, jakie funkcjonalności i cechy powinna posiadać aplikacja. To dokument, który stanowi fundament dla dalszych prac programistycznych. W kolejnej fazie następuje etap tworzenia, w którym programiści przekształcają specyfikację w kod, implementując wszystkie wymagane funkcje. Po zakończeniu kodowania, aplikacja przechodzi testy, które mają na celu wykrycie błędów oraz weryfikację zgodności z wymaganiami. W końcowej fazie, po przeprowadzeniu testów i eliminacji ewentualnych problemów, aplikacja jest wdrażana, co oznacza jej udostępnienie użytkownikom. Cały proces powinien być zgodny z najlepszymi praktykami oraz standardami, takimi jak Agile czy Scrum, które kładą duży nacisk na iteracyjny rozwój oraz stałą komunikację z klientem, co zwiększa szansę na sukces projektu.

Pytanie 3

Podczas zapisywania hasła użytkownika w serwisie internetowym (np. w bankowości online), w celu zabezpieczenia go przed ujawnieniem, zazwyczaj stosuje się funkcję

A. klucza
B. mieszających
C. abstrakcyjnych
D. cyklometrycznych
Zastosowanie klucza do zabezpieczenia haseł użytkowników jest kluczowym elementem w praktykach zarządzania bezpieczeństwem informacji. Klucz, często w połączeniu z techniką haszowania, umożliwia stworzenie bezpiecznego mechanizmu przechowywania haseł. Gdy użytkownik tworzy hasło, używa się funkcji haszującej, która przyjmuje hasło oraz unikalny klucz i generuje z nich wynikowy hash. Taki hash jest następnie przechowywany w bazie danych zamiast samego hasła. Aby zweryfikować, czy hasło podane przez użytkownika jest poprawne, system ponownie haszuje wprowadzone hasło z tym samym kluczem i porównuje wynik z tym przechowywanym w bazie. Dzięki temu, nawet w przypadku wycieku danych, napastnik nie uzyskuje dostępu do rzeczywistych haseł. Dobre praktyki branżowe, takie jak stosowanie soli (random salt) oraz iteracyjnych algorytmów haszujących (np. PBKDF2, bcrypt), dodatkowo wzmacniają proces bezpieczeństwa haseł, czyniąc je bardziej odpornymi na ataki typu brute-force.

Pytanie 4

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

A. klucza obcego odnoszącego się do klucza obcego tabeli po stronie "jeden"
B. klucza podstawowego wskazującego na klucz podstawowy tabeli po stronie "jeden"
C. klucza obcego wskazującego na klucz podstawowy tabeli po stronie "jeden"
D. klucza sztucznego odnoszącego się do kluczy podstawowych obydwu tabel
Tak, relacja jeden do wielu w bazach danych faktycznie działa przez klucze obce. Kiedy mamy tabelę, która ma wiele rekordów, klucz obcy jest tworzony po to, żeby pokazać, który klucz podstawowy z drugiej tabeli jest z nim powiązany. To ważne, bo zapewnia, że każda wartość w kluczu obcym musi pasować do wartości klucza podstawowego w tabeli, na którą wskazuje. Na przykład, w systemie filmowym, mamy tabelę 'Filmy', która jest po stronie 'jeden', a obok niej tabelę 'Obsada', gdzie będą aktorzy. Klucz podstawowy w 'Filmy' to może być jakiś identyfikator filmu, a w 'Obsada' klucz obcy pokaże, do którego filmu się odnosi. Dzięki temu jeden film może mieć wielu aktorów. Dobrze jest pamiętać, że klucz obcy pomaga utrzymać porządek w danych i zapobiega problemom, które mogą się pojawić, jeśli coś się pomiesza. Jak projektujesz bazy danych, to warto używać kluczy obcych, żeby wszystko działało tak jak powinno.

Pytanie 5

Jakie jest określenie na element bazy danych, który umożliwia jedynie przeglądanie danych, przedstawiając je w formie tekstowej lub graficznej?

A. Zapytanie
B. Formularz
C. Tabela
D. Raport
Raport to element bazy danych, który umożliwia użytkownikom jedynie odczytywanie danych i prezentowanie ich w przystępnej formie, takiej jak tekst lub wykres. Kluczowym aspektem raportu jest jego zdolność do agregowania informacji pochodzących z różnych źródeł w bazie danych, co umożliwia generowanie syntetycznych przeglądów i analiz danych. Na przykład, w systemach zarządzania relacyjnymi bazami danych, takich jak Microsoft SQL Server, można stworzyć raport, który zbiera dane sprzedażowe z różnych tabel, a następnie prezentuje je w formie graficznej, co ułatwia interpretację wyników. Raporty są często używane w kontekście raportowania biznesowego, gdzie kluczowe jest przedstawienie danych w sposób zrozumiały dla decydentów. Standardy, takie jak SQL, umożliwiają tworzenie zapytań, które generują dane do raportów, a narzędzia takie jak Crystal Reports czy Microsoft Power BI wspierają ich wizualizację. Dzięki temu raporty stają się niezbędnym narzędziem w analizie danych i podejmowaniu strategicznych decyzji.

Pytanie 6

Do modyfikacji danych w bazie danych można wykorzystać

A. formularz
B. raport
C. filtrowanie
D. kwerendę SELECT
Formularz jest narzędziem, które umożliwia użytkownikom wprowadzanie i edytowanie danych w bazie danych w sposób przyjazny i intuicyjny. Przy użyciu formularzy można łatwo zdefiniować, jakie dane mają być wprowadzone, oraz w jakim formacie, co znacząco ogranicza ryzyko błędów. W praktyce, formularze są powszechnie wykorzystywane w aplikacjach webowych oraz systemach zarządzania danymi, takich jak systemy CRM czy ERP. Umożliwiają one także walidację danych przed ich zapisaniem w bazie, co jest ważnym krokiem w zapewnieniu integralności danych. Wykorzystanie formularzy w projektowaniu aplikacji jest zgodne z zasadami UX, które kładą nacisk na łatwość obsługi i wygodę użytkownika. Dodatkowo, standardy takie jak HTML5 oferują różnorodne elementy formularzy, które można łatwo integrować z backendem, co ułatwia przechwytywanie danych i ich późniejsze przetwarzanie.

Pytanie 7

W języku PHP nie można zrealizować

A. przetwarzania danych z formularzy
B. obróbki danych przechowywanych w bazach danych
C. tworzenia dynamicznej treści strony
D. zmiany dynamicznej zawartości strony HTML w przeglądarce
Przetwarzanie danych formularzy to jedna z kluczowych funkcji, które PHP realizuje na co dzień. PHP jest zaprojektowane do obsługi danych przesyłanych przez formularze HTML, co umożliwia dynamiczne przetwarzanie informacji wprowadzonych przez użytkowników. W momencie, gdy użytkownik wysyła formularz, PHP odbiera te dane i może je przetwarzać, walidować oraz zapisywać do bazy danych lub wykorzystywać w inny sposób, co czyni tę odpowiedź niepoprawną. Generowanie dynamicznej zawartości strony to kolejna funkcjonalność, którą PHP realizuje z powodzeniem. Dzięki PHP można tworzyć strony internetowe, które zmieniają się w zależności od różnych czynników, takich jak dane z bazy danych, aktualna godzina czy sesja użytkownika. PHP dynamicznie generuje HTML, który następnie jest wysyłany do przeglądarki. Wreszcie, PHP doskonale radzi sobie z przetwarzaniem danych zgromadzonych w bazach danych. Język ten może łączyć się z różnymi systemami zarządzania bazami danych, takimi jak MySQL, PostgreSQL czy SQLite, umożliwiając wykonywanie zapytań SQL oraz operacji na danych. Dlatego odpowiedzi dotyczące przetwarzania danych formularzy, generowania dynamicznej zawartości oraz interakcji z bazami danych są błędne, ponieważ PHP jest w stanie zrealizować te zadania z dużą skutecznością.

Pytanie 8

W SQL, aby zaktualizować informacje w wierszach w tabeli, konieczne jest użycie polecenia

A. UPDATE
B. INSERT INTO
C. ALTER TABLE
D. SELECT
Odpowiedź "UPDATE" jest właściwa, bo w SQL to właśnie to polecenie używamy do zmiany danych w już istniejących wierszach tabeli. Żeby zaktualizować konkretne kolumny w danym wierszu, trzeba wpisać coś takiego: "UPDATE nazwa_tabeli SET kolumna1 = wartość1, kolumna2 = wartość2 WHERE warunek". Dzięki klauzuli WHERE możemy dokładnie wskazać, które wiersze chcemy zmienić, co jest naprawdę ważne, żeby wszystko działało sprawnie i bezpiecznie. Na przykład, jeśli chcemy zmienić nazwisko użytkownika o id równym 1, napiszemy: "UPDATE Użytkownicy SET nazwisko = 'NoweNazwisko' WHERE id = 1". Używanie tego polecenia to dobra praktyka w zarządzaniu bazami danych. Nie zapominajmy o transakcjach, żeby mieć pewność, że dane są bezpieczne. A jak korzystamy z przygotowanych zapytań, to zminimalizujemy ryzyko ataków SQL injection, co jest bardzo istotne w kontekście bezpieczeństwa aplikacji bazodanowych.

Pytanie 9

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

Pytanie 10

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

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

Pytanie 11

Jaką cechę pola w tabeli należy ustalić, aby pole mogło przyjmować wyłącznie dane składające się z cyfr?

Ogólne
Rozmiar pola255
Format
Maska wprowadzania
Tytuł
Wartość domyślna
Reguła spr. poprawności
Tekst reguły spr. poprawności
WymaganeNie
Zerowa dł. dozwolonaTak
IndeksowaneNie
Kompresja UnicodeTak
Tryb IMEBez formantu
Tryb zdania edytora IMEBrak
Tagi inteligentne
A. Maskę wprowadzania
B. Wartość domyślną
C. Tagi inteligentne
D. Regułę sprawdzania poprawności
Tagi inteligentne to narzędzie, które można znaleźć w dokumentach czy w systemach do zarządzania danymi. Służą do automatycznego rozpoznawania danych, na przykład dat czy adresów, ale nie mają możliwości ograniczania wprowadzanych danych pod kątem ich formatu, jak na przykład cyfry. Reguły sprawdzania poprawności dane na poziomie tabeli, co oznacza, że można sprawdzać, czy spełniają pewne kryteria przy zapisywaniu. To działa, ale jest bardziej ogólne i nie zastąpi maski wprowadzania, bo te działają w czasie rzeczywistym. Z kolei wartość domyślna to coś, co automatycznie wprowadza dane w polu, jeśli użytkownik nic nie poda. To może być przydatne, gdy jakieś pole zawsze powinno mieć określoną wartość, chyba że użytkownik zadecyduje inaczej. Tylko że wartość domyślna nie reguluje, jakie dane mogą być wpisywane, co jest właśnie wymagane w pytaniu o ograniczenie danych do cyfr. Często myślimy, że wartość domyślna lub reguły mogą kontrolować format danych na bieżąco, ale to jest rola maski wprowadzania, która działa w momencie, gdy piszemy, więc chroni integralność już na etapie wprowadzania danych.

Pytanie 12

W języku SQL podczas używania polecenia CREATE TABLE atrybut, który wskazuje na to, która kolumna jest kluczem podstawowym, to

A. GŁÓWNY KLUCZ
B. IDENTITY FIELD
C. PRIMARY KEY
D. UNIQUE
Odpowiedź "PRIMARY KEY" jest prawidłowa, ponieważ w języku SQL klucz podstawowy (ang. primary key) to unikalny identyfikator dla każdego rekordu w tabeli. Klucz podstawowy zapewnia, że żadne dwa rekordy nie mają tej samej wartości w kolumnie, co jest kluczowe dla integralności danych. Zwyczajowo klucz podstawowy definiuje się podczas tworzenia tabeli za pomocą polecenia CREATE TABLE, co zwiększa wydajność operacji wyszukiwania oraz modyfikacji danych. Przykład wykorzystania: tworząc tabelę pracowników, można zdefiniować kolumnę "id_pracownika" jako klucz podstawowy, co zapewni, że każdy pracownik będzie miał unikalny identyfikator. W standardach SQL zgodnych z ANSI, klucz podstawowy może składać się z jednej lub więcej kolumn, co pozwala na tworzenie bardziej skomplikowanych struktur danych. Dobrą praktyką jest również oznaczanie klucza podstawowego jako NOT NULL, co uniemożliwia wprowadzenie pustych wartości, co dodatkowo zwiększa integralność bazy danych.

Pytanie 13

Zadanie przedstawione w ramce polecenia SQL ma na celu

Ilustracja do pytania
A. zwiększyć wartość kolumny id_klasy o jeden dla wszystkich wpisów tabeli Uczen
B. ustawić wartość pola Uczen na 1
C. ustawić wartość kolumny id_klasy na 1 dla wszystkich wpisów w tabeli Uczen
D. powiększyć wartość pola Uczen o jeden
Polecenie SQL UPDATE Uczen SET id_klasy = id_klasy + 1 ma na celu zwiększenie wartości kolumny id_klasy o jeden dla każdego rekordu w tabeli Uczen Jest to typowa operacja w bazach danych gdy chcemy przeprowadzić masową aktualizację wartości w konkretnym polu W tym przypadku kolumna id_klasy jest modyfikowana tak aby każda jej wartość została zwiększona o jeden Jest to szczególnie przydatne w scenariuszach gdzie wartości identyfikatorów czy indeksów muszą być zwiększone ze względu na zmiany struktury danych lub w celu dostosowania do nowych wymagań Możliwość masowej aktualizacji danych jest jednym z głównych powodów dla których SQL jest tak potężnym narzędziem w zarządzaniu bazami danych Operacje tego typu wymagają jednak ostrożności aby uniknąć niepożądanych zmian które mogą wpływać na integralność danych Dlatego też dobre praktyki branżowe zalecają zawsze wykonywanie kopii zapasowych danych przed przeprowadzeniem tego typu operacji oraz dokładne sprawdzenie logiki biznesowej która za nimi stoi Zwrócenie uwagi na wydajność oraz potencjalne blokady przy jednoczesnym dostępie do bazy to również kluczowe aspekty o których należy pamiętać w środowiskach produkcyjnych

Pytanie 14

Jakie z poniższych stwierdzeń właściwie opisuje tabelę utworzoną przez: CREATE TABLE dane (kolumna INTEGER(3));

A. Tabela zawiera jedną kolumnę, która składa się z trzyelementowych tablic
B. Tabela o nazwie dane ma jedną kolumnę typu liczb całkowitych
C. Kolumny w tabeli dane nazywają się: kolumna1, kolumna2, kolumna3
D. Tabela o nazwie dane zawiera trzy kolumny typu liczb całkowitych
Odpowiedź, że tabela o nazwie dane posiada jedną kolumnę liczb całkowitych, jest prawidłowa, ponieważ w definicji tabeli użyto składni CREATE TABLE, wskazując, że w tabeli znajduje się tylko jedna kolumna o nazwie 'kolumna'. Typ danych dla tej kolumny to INTEGER, co oznacza, że przechowuje ona liczby całkowite. Parametr (3) w INTEGER nie oznacza, że kolumna ta zawiera trzy elementowe tablice; w rzeczywistości jest to specyfikacja dotycząca maksymalnej liczby cyfr, które ta kolumna może przechowywać, co powoduje, że rozmiar wartości będzie ograniczony do 3 cyfr. W praktyce, przy projektowaniu baz danych, kluczowe jest zrozumienie typów danych oraz ich ograniczeń, aby zapewnić integralność danych. Dobrą praktyką jest używać odpowiednich typów danych i odpowiednio je definiować, by optymalizować wydajność zapytań oraz zużycie miejsca w bazie danych. W tym przypadku, zrozumienie, że kolumna 'kolumna' jest jedyną kolumną w tabeli o typie INTEGER, jest podstawą efektywnego projektowania struktury bazy danych.

Pytanie 15

W SQL komenda ALTER TABLE ma na celu

A. usunięcie tabeli z bazy danych
B. dodanie tabeli do bazy danych
C. zmianę kolumn w tabeli
D. zmianę danych rekordów w tabeli
Polecenie ALTER TABLE w języku SQL jest kluczowym narzędziem do modyfikacji struktury istniejących tabel w bazie danych. Umożliwia ono dodawanie, usuwanie lub modyfikowanie kolumn oraz zmianę właściwości istniejących kolumn, takich jak typ danych, domyślne wartości czy ograniczenia. Przykładem użycia polecenia ALTER TABLE może być dodawanie nowej kolumny do tabeli: 'ALTER TABLE nazwa_tabeli ADD nowa_kolumna VARCHAR(255);', co dodaje kolumnę o nazwie 'nowa_kolumna' z typem danych VARCHAR i maksymalną długością 255 znaków. Można również usunąć kolumnę, używając składni: 'ALTER TABLE nazwa_tabeli DROP COLUMN kolumna;'. Ważnym aspektem jest to, że zmiany wprowadzone przez ALTER TABLE są natychmiastowe i dotyczą wszystkich przyszłych operacji na tabeli. Standard SQL definiuje to polecenie jako część DDL (Data Definition Language), co oznacza, że zmienia strukturę bazy danych, a nie dane same w sobie. Warto pamiętać o tym, że operacje te mogą powodować blokady tabel i wpływać na wydajność, zwłaszcza w przypadku dużych zbiorów danych.

Pytanie 16

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

A. CREATE INTO
B. SELECT ROW
C. INSERT INTO
D. CREATE ROW
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 17

Integralność referencyjna w relacyjnych bazach danych oznacza, że

A. klucz główny lub klucz obcy nie mogą zawierać wartości NULL
B. wartość klucza głównego oraz klucza obcego nie może być pusta
C. wartość klucza obcego w danej tabeli musi być albo równa wartości klucza głównego w związanej z nią tabeli albo równa wartości NULL
D. każdemu kluczowi głównemu przyporządkowany jest dokładnie jeden klucz obcy w powiązanych tabelach
Wybór odpowiedzi sugerujących, że każdemu kluczowi głównemu odpowiada dokładnie jeden klucz obcy w tabeli lub tabelach powiązanych, jest błędny. W rzeczywistości, jeden klucz główny może być powiązany z wieloma kluczami obcymi w różnych rekordach. Na przykład, w bazie danych dotyczącej zamówień, klucz główny tabeli 'Klienci' może być referencjonowany przez wiele rekordów w tabeli 'Zamówienia', co oznacza, że ten sam klient może mieć wiele zamówień. Odpowiedzi sugerujące, że klucz główny lub klucz obcy nie zawierają wartości NULL, są również mylące. W praktyce, klucze obce mogą zawierać wartość NULL, co oznacza, że dany rekord nie musi mieć przypisanego odniesienia do innej tabeli. Przykładem mogą być zamówienia, które nie są jeszcze przypisane do żadnego klienta – w takim wypadku wartość klucza obcego (KlientID) może być NULL. Te nieprawidłowe odpowiedzi prowadzą do błędnych wniosków, które mogą wpłynąć na projektowanie baz danych oraz ich funkcjonalność. Zrozumienie, że klucze obce mogą być NULL oraz że jeden klucz główny może być powiązany z wieloma kluczami obcymi, jest kluczowe dla prawidłowego modelowania danych i zapewnienia spójności w bazach danych.

Pytanie 18

Jak określa się część strukturalnego języka zapytań, która dotyczy tworzenia zapytań do bazy danych za pomocą polecenia SELECT?

A. SQL DML (ang. Data Manipulation Language)
B. SQL DCL (ang. Data Control Language)
C. SQL DDL (ang. Data Definition Language)
D. SQL DQL (ang. Data Query Language)
Wybór SQL DML, SQL DCL lub SQL DDL jako odpowiedzi na to pytanie wskazuje na nieporozumienie dotyczące funkcji poszczególnych podzbiorów SQL. SQL DML (Data Manipulation Language) odnosi się do poleceń, które modyfikują dane w bazie, takich jak INSERT, UPDATE i DELETE. Myląc te pojęcia, można sądzić, że polecenia te są odpowiednie do pobierania danych, co jest błędne. Z kolei SQL DCL (Data Control Language) służy do zarządzania uprawnieniami użytkowników i kontroli dostępu do danych, co również nie ma związku z formułowaniem zapytań do bazy danych. Na przykład, polecenia GRANT i REVOKE są kluczowe w kontekście DCL, ale nie mają nic wspólnego z wyciąganiem danych. SQL DDL (Data Definition Language) dotyczy definicji struktury bazy danych, czyli tworzenia, modyfikowania i usuwania tabel oraz innych obiektów bazy danych (np. CREATE, ALTER, DROP). Wybór któregokolwiek z tych podzbiorów zamiast DQL wskazuje na brak zrozumienia hierarchii i celów SQL jako całości. Zrozumienie różnic między tymi podzbiorami jest kluczowe dla skutecznego zarządzania danymi i efektywnej pracy z bazami danych. Dobrą praktyką jest zapoznanie się z pełnym zakresem możliwości SQL, aby lepiej wykorzystać jego potencjał w codziennej pracy z danymi.

Pytanie 19

W języku PHPnie ma możliwości

A. obróbka informacji przechowywanych w bazie danych
B. tworzenie dynamicznej zawartości strony internetowej
C. zmienianie dynamiczne treści strony HTML w przeglądarce
D. przetwarzanie danych z formularzy
Pomimo powszechnej wiedzy o zastosowaniach PHP, istnieje pewne nieporozumienie dotyczące jego funkcji w kontekście dynamicznych zmian na stronach internetowych. PHP jest używane do przetwarzania danych po stronie serwera, co oznacza, że jego zadaniem jest generowanie treści, które są następnie wysyłane do przeglądarki użytkownika. Pierwsza z niepoprawnych odpowiedzi sugeruje, że PHP może przetwarzać dane zgromadzone w bazie danych, co jest prawdą, jednak nie odnosi się do sedna pytania. PHP efektywnie współpracuje z bazami danych za pomocą zapytań SQL, ale to, co jest zwracane, to statyczny kod HTML. W kontekście generowania dynamicznej zawartości strony, PHP może być użyte do stworzenia HTML, ale nie do jego późniejszej modyfikacji w przeglądarce. Odpowiedź dotycząca generowania dynamicznej zawartości nie uwzględnia, że zmiany te są wynikiem działania PHP przed wysłaniem danych do klienta. Kolejna odpowiedź, sugerująca, że PHP może bezpośrednio zmieniać HTML w przeglądarkach, myli funkcjonalności języka. Nowoczesne aplikacje webowe często wykorzystują JavaScript do interakcji z użytkownikiem po załadowaniu strony, co pozwala na dynamiczne zmiany bez konieczności ponownego ładowania strony. Również przetwarzanie danych formularzy jest zadaniem, które PHP wykonuje, ale dotyczy to głównie zbierania i przesyłania danych do serwera, a nie modyfikacji treści na stronie po jej załadowaniu. Podsumowując, kluczowym aspektem jest zrozumienie, że PHP jest językiem po stronie serwera, a wszelkie dynamiczne interakcje w przeglądarkach powinny być zarządzane za pomocą technologii klienckich, takich jak JavaScript, co jest zgodne z aktualnymi standardami tworzenia aplikacji webowych.

Pytanie 20

W bazie danych produkt znajdują się artykuły wyprodukowane po 2000 roku, zawierające pola nazwa oraz rok_produkcji. Klauzula SQL wyświetli zestawienie artykułów wyprodukowanych

SELECT * FROM `produkt` WHERE
SUBSTR(rok_produkcji, 3, 2) = 17;
A. w latach innych niż 2017
B. po roku 2017
C. w roku 2017
D. przed rokiem 2017
W tej klauzuli SQL, co widzimy, filtrujemy dane z tabeli produkt. Użycie funkcji SUBSTR(rok_produkcji, 2) pozwala nam wyciągnąć dwie ostatnie cyfry z roku produkcji. To jest super przydatne, bo dzięki temu możemy uzyskać rok w formacie dwu-cyfrowym. Jak porównujemy to z 17, to znaczy, że szukamy rekordów, których rok produkcji kończy się na 17, co odpowiada pełnemu roku, czyli 2017. Takie podejście ma sens, gdy chcemy szybko przeszukać dane dotyczące konkretnego roku, nie bawiąc się w cały numer. Umiejętność korzystania z funkcji tekstowych w SQL, jak SUBSTR, jest naprawdę istotna w analizie danych, szczególnie gdy struktura tabeli nie pozwala na łatwe użycie wartości liczbowych. Ludzie pracujący z bazami danych powinni znać te sztuczki, bo to pozwala na lepsze dopasowanie filtracji danych do potrzeb. Fajne jest też dokumentowanie takich zapytań, żeby inni mogli zrozumieć, o co chodzi.

Pytanie 21

Podczas projektowania formularza konieczne jest wstawienie kontrolki, która odnosi się do innej kontrolki w odrębnym formularzu. Taka operacja w bazie danych Access jest

A. możliwa tylko wtedy, gdy są to dane numeryczne
B. niemożliwa w każdym trybie poza trybem projektowania
C. możliwa dzięki ustawieniu ścieżki do kontrolki w atrybucie "Źródło kontrolki"
D. niemożliwa
Błędne odpowiedzi wynikają z nieporozumienia dotyczącego możliwości i zasad działania kontrolek w formularzach Access. Ustawienie ścieżki do kontrolki we właściwości 'Źródło kontrolki' nie jest ograniczone do danych liczbowych, co jest błędnym założeniem. W rzeczywistości można odwoływać się do różnych typów danych, w tym tekstowych, datowych oraz liczbowych, co czyni tę funkcjonalność niezwykle uniwersalną. Twierdzenie, że odwołanie jest niemożliwe, jest również nieprawdziwe; Access oferuje rozbudowane możliwości tworzenia interakcji między formularzami, co jest szeroko stosowane w praktycznych zastosowaniach. Warto również zauważyć, że nie ma ograniczeń co do trybów pracy, które mogłyby wpływać na możliwość odwoływania się do kontrolek, co czyni to stwierdzeniem błędnym. W projektowaniu baz danych szczególnie istotne jest zrozumienie, jak różne elementy systemu mogą współdziałać, a umiejętność poprawnego użycia właściwości kontrolek jest kluczowa dla efektywności i użyteczności aplikacji. Ignorowanie tych aspektów prowadzi do nieefektywnego projektowania, w którym trudno jest zarządzać danymi oraz interakcjami użytkowników z aplikacją.

Pytanie 22

Jakie mechanizmy są kluczowe dla Systemu Zarządzania Bazą Danych?

A. System do zarządzania wersjami bazy danych
B. Wielodostępność do danych
C. Narzędzia do generowania statystyk
D. Moduł do wizualizacji diagramów encji
Wielodostępność danych jest kluczowym mechanizmem dla systemów zarządzania bazami danych (DBMS), ponieważ umożliwia równoczesny dostęp wielu użytkowników do tych samych danych bez konfliktów. W praktyce oznacza to, że wiele aplikacji lub użytkowników może korzystać z bazy danych w tym samym czasie, co jest niezbędne w wielu złożonych środowiskach, takich jak systemy bankowe, platformy e-commerce czy aplikacje społecznościowe. Mechanizm wielodostępności zapewnia integralność danych oraz ich spójność, co jest osiągane poprzez zastosowanie technik takich jak blokowanie, transakcje i izolacja. Przykładem praktycznym może być system zarządzania rezerwacjami hoteli, w którym wiele osób próbuje zarezerwować ten sam pokój w tym samym czasie. DBMS musi zastosować odpowiednie mechanizmy, aby zrealizować tylko jedną z tych rezerwacji, jednocześnie informując pozostałych użytkowników o braku dostępności. Dobrą praktyką w projektowaniu baz danych jest także przemyślane stosowanie poziomów izolacji transakcji, co pozwala na dostosowanie wydajności i spójności w zależności od potrzeb aplikacji.

Pytanie 23

Podane w ramce polecenie SQL nadaje prawo SELECT

GRANT SELECT ON hurtownia.* TO 'sprzedawca'@'localhost';
A. do wszystkich tabel w bazie hurtownia.
B. dla użytkownika 'root' na serwerze sprzedawca.
C. do wszystkich pól w tabeli hurtownia.
D. dla użytkownika 'root' na serwerze localhost.
To polecenie GRANT jest typowym przykładem, gdzie drobny szczegół składni całkowicie zmienia znaczenie. Wiele osób intuicyjnie myśli, że skoro pojawia się nazwa hurtownia, to chodzi o tabelę o takiej nazwie, albo że skoro często pracuje się na koncie root, to uprawnienia dotyczą właśnie jego. Tutaj jednak kluczowe są dwie rzeczy: zapis hurtownia.* oraz dokładna forma 'sprzedawca'@'localhost'. W MySQL konstrukcja nazwa_bazy.* jednoznacznie oznacza całą bazę danych, czyli wszystkie tabele znajdujące się w tej bazie. Gwiazdka nie oznacza „wszystkich pól w tabeli”, jak w SELECT * FROM tabela; tylko „wszystkie obiekty danego typu w tym kontekście”, czyli w tym wypadku wszystkie tabele w bazie hurtownia. Błąd myślowy bierze się stąd, że ludzie przenoszą swoje skojarzenia z SELECT * na GRANT, a to są jednak różne miejsca w składni SQL. Jeśli chcielibyśmy nadać uprawnienie tylko do jednej tabeli, używamy zapisu nazwa_bazy.nazwa_tabeli, bez gwiazdki. Na przykład GRANT SELECT ON hurtownia.klienci TO 'sprzedawca'@'localhost'; dotyczyłoby tylko tabeli klienci. Wtedy dopiero można by mówić o dostępie do wszystkich pól w tej konkretnej tabeli, bo SELECT z założenia domyślnie widzi wszystkie kolumny, chyba że zastosujemy uprawnienia na poziomie kolumn, co jest już bardziej zaawansowanym tematem. Druga częsta pomyłka to utożsamianie każdego polecenia GRANT z użytkownikiem root. W MySQL użytkownik jest identyfikowany przez parę login@host. W naszym przykładzie stoi tam wyraźnie 'sprzedawca'@'localhost', więc nie ma tu żadnego roota. Gdyby chodziło o konto root, składnia musiałaby wyglądać np. 'root'@'localhost'. Co więcej, host sprzedawca w ogóle nie występuje w tym poleceniu – pojawia się tylko jako nazwa użytkownika. To powoduje czasem dodatkowe zamieszanie: ktoś widzi słowo sprzedawca i myśli, że to nazwa serwera, a localhost to użytkownik, co jest całkowicie odwrotnie. Z punktu widzenia dobrych praktyk administracji bazą danych, nadawanie uprawnień rootowi poleceniem GRANT w aplikacjach produkcyjnych jest zresztą złym pomysłem. Standardem jest tworzenie osobnych kont, takich jak sprzedawca, księgowy czy aplikacja_web, z precyzyjnie dobranymi uprawnieniami do konkretnych baz. Wtedy dokładnie wiemy, kto może co czytać i modyfikować. Z mojego doświadczenia wynika, że większość problemów z bezpieczeństwem wynika właśnie z używania zbyt szerokich uprawnień, głównie konta root tam, gdzie absolutnie nie jest potrzebne. Podsumowując: to polecenie nie nadaje dostępu do „wszystkich pól w tabeli hurtownia”, bo hurtownia jest tu bazą, a nie tabelą. Nie dotyczy też użytkownika root ani żadnego serwera o nazwie sprzedawca. Nadaje ono prawo SELECT do wszystkich tabel w bazie hurtownia konkretnemu użytkownikowi o nazwie sprzedawca, który łączy się z hosta localhost. Zrozumienie tej składni jest kluczowe przy zarządzaniu uprawnieniami w MySQL i ogólnie w systemach baz danych.

Pytanie 24

Polecenie DBCC CHECKDB ('sklepAGD', Repair_fast) w systemie MS SQL Server

A. przeprowadzi kontrolę spójności bazy danych i wykona kopię zapasową
B. sprawdzi spójność bazy danych i naprawi uszkodzone indeksy
C. sprawdzi spójność konkretnej tabeli i naprawi uszkodzone dane
D. zweryfikuje spójność danej tabeli
Odpowiedzi, które stwierdzają, że polecenie DBCC CHECKDB sprawdza spójność określonej tabeli, są wynikiem nieporozumienia dotyczącego funkcji tego narzędzia. DBCC CHECKDB działa na poziomie bazy danych, a nie pojedynczych tabel, co oznacza, że jego celem jest ocena integralności całej struktury bazy danych. Przykładowo, niektóre użytkownicy mogą mylić CHECKDB z poleceniem CHECKTABLE, które rzeczywiście sprawdza spójność pojedynczych tabel. Inna błędna koncepcja występuje w odpowiedziach sugerujących, że polecenie wykonuje kopię bezpieczeństwa – w rzeczywistości DBCC CHECKDB nie tworzy kopii zapasowych, a jego celem jest identyfikacja problemów, a nie ich rozwiązanie poprzez archiwizację danych. Warto także zaznaczyć, że chociaż DBCC CHECKDB może naprawić uszkodzone indeksy, nie jest to jego jedyny zakres działania, co czyni błędnym ograniczenie jego funkcjonalności tylko do tego aspektu. Typowe błędy myślowe obejmują także nieznajomość roli, jaką odgrywają indeksy w bazach danych oraz ich wpływu na wydajność. Właściwe zrozumienie działania DBCC CHECKDB i jego opcji naprawczych jest kluczowe dla skutecznego zarządzania bazą danych i zapewnienia jej stabilności.

Pytanie 25

Jakie tabele będą weryfikowane przez podane polecenie?

CHECK TABLE pracownicy CHANGED;
A. Tabele, które uległy zmianie od ostatniego sprawdzenia lub nie zostały prawidłowo zamknięte.
B. Jedynie tabele referencyjne.
C. Tabele, które zmieniły się w bieżącej sesji.
D. Tylko tabele, które nie zostały prawidłowo zamknięte.
Odpowiedź, że polecenie CHECK TABLE sprawdzi tabele, które zmieniły się od ostatniej kontroli lub nie zostały poprawnie zamknięte, jest poprawna. Polecenie to jest wykorzystywane w systemach zarządzania bazami danych, takich jak MySQL, do diagnozowania i naprawy problemów związanych z integralnością danych. Kiedy tabele są zmieniane lub nie zostały poprawnie zamknięte, mogą wystąpić uszkodzenia, które mogą prowadzić do błędów przy odczycie lub zapisie danych. W praktyce, administratorzy baz danych regularnie wykonują polecenie CHECK TABLE, aby upewnić się, że struktura tabeli jest nienaruszona i że system operacyjny poprawnie zarządza danymi. Użycie CHECK TABLE w kontekście tabel, które zmieniły się od ostatniej kontroli, jest kluczowe, gdyż pozwala na szybką lokalizację problemów. Warto również zauważyć, że w przypadku dużych baz danych wykonanie tego polecenia może być czasochłonne, dlatego dobrze jest zintegrować jego użycie z harmonogramem regularnych kontroli integralności danych, co jest zgodne z najlepszymi praktykami w zarządzaniu bazami danych.

Pytanie 26

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

A. DECIMAL(10, 2)
B. TINYTEXT
C. ENUM
D. INTEGER(11)
Typ DECIMAL(10, 2) jest odpowiedni dla pola ceny w tabeli produktów, ponieważ umożliwia dokładne przechowywanie wartości liczbowych z określoną precyzją i skalą. W tym przypadku liczba 10 oznacza maksymalną liczbę cyfr, które mogą być przechowywane, a 2 oznacza liczbę cyfr po przecinku. Dzięki temu można przechowywać wartości cenowe, które mają do dwóch miejsc po przecinku, co jest standardem w większości aplikacji związanych z handlem. Przykładem może być cena produktu wynosząca 19,99 PLN. Użycie typu DECIMAL jest zgodne z dobrymi praktykami w projektowaniu baz danych, ponieważ zapobiega problemom związanym z zaokrąglaniem, które mogą występować przy użyciu typów zmiennoprzecinkowych. Stosowanie DECIMAL jest szczególnie istotne w aplikacjach finansowych, gdzie precyzja wartości jest kluczowa. Warto dodać, że zgodnie z normami SQL, stosowanie tego typu danych pozwala na wykonywanie dokładnych zapytań i obliczeń, co jest niezbędne do prawidłowego funkcjonowania systemów zarządzania danymi.

Pytanie 27

Jakie są prawidłowe kroki w kolejności, które należy podjąć, aby nawiązać współpracę między aplikacją internetową działającą na serwerze a bazą SQL?

A. wybór bazy, zapytanie do bazy, nawiązanie połączenia z serwerem baz danych, wyświetlenie na stronie WWW, zamknięcie połączenia
B. nawiązanie połączenia z serwerem baz danych, wybór bazy, zapytanie do bazy - wyświetlane na stronie WWW, zamknięcie połączenia
C. zapytanie do bazy, wybór bazy, wyświetlenie na stronie WWW, zamknięcie połączenia
D. wybór bazy danych, nawiązanie połączenia z serwerem baz danych, zapytanie do bazy, wyświetlenie na stronie WWW, zamknięcie połączenia
Analizując inne odpowiedzi, można dostrzec kilka kluczowych nieprawidłowości. W pierwszej z nich podano, że należy najpierw wybrać bazę, co jest nielogiczne, ponieważ przed dokonaniem wyboru bazy konieczne jest nawiązanie połączenia z serwerem. Bez tego połączenia aplikacja nie ma możliwości komunikacji z bazą danych, a zatem nie można dokonać wyboru bazy. Kolejna odpowiedź sugeruje, że zapytanie do bazy powinno nastąpić przed dokonaniem wyboru bazy, co także jest błędne. Zapytania SQL są wykonywane w kontekście określonej bazy danych, więc konieczne jest jej wcześniejsze wybranie. Podobnie, trzecia odpowiedź wprowadza mylne rozumienie kolejności operacji, sugerując, że wyświetlenie danych może nastąpić bez wcześniejszego zapytania do bazy. To podejście ignoruje fakt, iż dane muszą być najpierw pobrane przed ich prezentacją na stronie. Te błędne koncepcje często wynikają z braku zrozumienia procesu interakcji z bazą danych oraz jego podstawowych zasad. W praktyce, aby efektywnie współpracować z bazą danych, istotne jest, by każdy krok był realizowany w odpowiedniej kolejności, co nie tylko zwiększa efektywność, ale również minimalizuje ryzyko błędów oraz problemów z bezpieczeństwem. Dlatego tak ważne jest, aby zrozumieć i stosować się do ustalonych standardów i dobrych praktyk w tym zakresie.

Pytanie 28

W języku SQL, jaki będzie efekt wykonania poniższego zapytania?

ALTER TABLE osoba DROP COLUMN grupa;
A. Zmieniona zostanie nazwa kolumny na grupa.
B. Zmieniona zostanie nazwa tabeli na grupa.
C. Dodana zostanie kolumna grupa.
D. Usunięta zostanie kolumna grupa.
Gratulacje, wybrałeś poprawną odpowiedź. W zaprezentowanym pytaniu skupiliśmy się na instrukcji 'ALTER TABLE' w języku SQL, a dokładniej na jej konkretnej odmianie, tj. 'DROP COLUMN'. Ta instrukcja służy do usunięcia kolumny z istniejącej tabeli. W tym konkretnym przypadku, użyto jej do usunięcia kolumny o nazwie 'grupa' z tabeli 'osoba'. Jest to przydatne narzędzie w przypadku, gdy chcemy usunąć dane z bazy bez usuwania całej tabeli. Pamiętaj jednak o skutkach utraty wszystkich danych z tej kolumny. Zawsze warto zrobić backup bazy danych przed taką operacją. Dobrą praktyką jest także sprawdzenie, jakie inne elementy bazy są zależne od usuwanej kolumny, aby uniknąć niespodziewanych problemów.

Pytanie 29

Dostępna jest tabela uczniowie, która zawiera pól id, imie, nazwisko, data_ur (format rrrr-mm-dd). Które zapytanie w SQL wyświetli tylko imiona oraz nazwiska uczniów urodzonych w roku 2001?

A. SELECT * FROM uczniowie WHERE data_ur like "2001"
B. SELECT id, imie, nazwisko, data_ur FROM uczniowie WHERE data_ur like "2001-*-*"
C. SELECT * FROM uczniowie WHERE data_ur == 2001-%-%
D. SELECT imie, nazwisko FROM uczniowie WHERE data_ur like "2001-%-%"
Wybrana odpowiedź jest prawidłowa, ponieważ wykorzystuje odpowiednią składnię SQL do wyszukania imion i nazwisk uczniów, których data urodzenia przypada na rok 2001. Użycie klauzuli 'LIKE' wraz z wzorcem '2001-%-%' jest kluczowe – znak '%' w SQL reprezentuje dowolny ciąg znaków (w tym również brak znaków). Oznacza to, że jakiekolwiek miesiące i dni mogą występować po roku '2001', co jest zgodne z formatem daty 'rrrr-mm-dd'. Tego typu zapytania są używane w praktycznych zastosowaniach w bazach danych, na przykład przy tworzeniu raportów dotyczących uczniów, którzy urodzili się w określonym roku. Umożliwia to efektywne zarządzanie danymi i przyspiesza proces analizy, co jest zgodne z dobrymi praktykami w zakresie przetwarzania danych. W kontekście SQL, selekcja konkretnych kolumn, takich jak 'imie' i 'nazwisko', jest bardziej efektywna niż pobieranie wszystkich danych, co może być istotne w przypadku większych zestawów danych. Warto również zwrócić uwagę na znaczenie odpowiedniego formatowania dat, co jest kluczowe dla poprawności zapytań do baz danych.

Pytanie 30

Jakie cechy powinien posiadać klucz główny?

A. Jest unikatowy, nie może zawierać pustych wartości
B. Reprezentowany jest przez jedno pole tabeli, jego wartość nie może ulegać zmianie
C. Jest unikatowy, może mieć tylko wartości całkowite
D. Nie może przybierać wartości, reprezentowany jest przez dokładnie jedno pole tabeli
Wszystkie błędne odpowiedzi zawierają nieprecyzyjne lub mylące stwierdzenia dotyczące kluczy głównych. Na przykład, twierdzenie, że klucz główny może przyjmować tylko wartości całkowite, nie jest zgodne z rzeczywistością. Klucz główny może być reprezentowany przez różne typy danych, w tym tekst, daty, a nawet złożone obiekty, co czyni tę koncepcję zbyt ograniczoną. Kolejne stwierdzenie, że klucz główny jest reprezentowany przez dokładnie jedno pole tabeli, również nie oddaje pełnego obrazu. Możliwe jest tworzenie kluczy głównych z kilku kolumn, znanych jako klucze złożone, co jest przydatne w sytuacjach, gdy pojedyncza kolumna nie może zapewnić unikalności. Ponadto, stwierdzenie, że wartości klucza głównego nie mogą się zmieniać, wprowadza w błąd. Chociaż zmiana wartości klucza głównego może wprowadzić komplikacje, zwłaszcza w relacjach z innymi tabelami, technicznie jest to możliwe. Właściwe podejście do zarządzania kluczami głównymi obejmuje zrozumienie konsekwencji takich zmian oraz odpowiednie aktualizacje w powiązanych tabelach. Wreszcie, nieznajomość tych aspektów może prowadzić do typowych błędów w projektowaniu baz danych, takich jak brak unikalności lub trudności w zarządzaniu relacjami, co z kolei może wpłynąć na wydajność oraz integralność aplikacji bazodanowych. Zrozumienie roli kluczy głównych jest zatem fundamentalne dla każdego, kto chce skutecznie projektować i zarządzać bazami danych.

Pytanie 31

W bazie MySQL zdefiniowano podczas tworzenia tabeli pole

id int NOT NULL AUTO_INCREMENT
Wpis AUTO_INCREMENT oznacza, że
A. możliwe jest wprowadzenie rekordu z dowolną wartością dla kolumny id
B. wartość kolumny id zostanie automatycznie przypisana przez system i będzie to przypadkowo wygenerowana liczba całkowita
C. kolumna id będzie mogła przyjmować wartości: NULL, 1, 2, 3, 4 i tak dalej
D. wartości tej kolumny będą automatycznie tworzone w trakcie dodawania nowego rekordu do bazy
Wybór niepoprawnych odpowiedzi najczęściej wynika z niepełnego zrozumienia działania mechanizmu AUTO_INCREMENT w MySQL. Zgłoszenie, że dozwolone jest dodawanie rekordu z dowolną wartością pola id, jest błędne, ponieważ pole z AUTO_INCREMENT nie pozwala na wprowadzenie wartości ręcznie; to system bazy danych przydziela kolejne wartości. Ponadto, sugestia, że pole id może przyjmować wartość NULL jest również nieprawidłowa. W definicji pola 'id int NOT NULL AUTO_INCREMENT' zawiera się klauzula NOT NULL, co oznacza, że pole to nie może być puste - każdemu rekordowi musi być przypisana właściwa wartość. Inną mylną koncepcją jest stwierdzenie, że wartość pola id zostanie wygenerowana losowo. AUTO_INCREMENT nie generuje wartości losowych, lecz sekwencyjne, co oznacza, że wartości będą rosły o jeden w stosunku do ostatniego zarejestrowanego identyfikatora. Takie podejście zapewnia porządek i przewidywalność w bazie danych. Często zdarza się, że osoby korzystające z baz danych nie zdają sobie sprawy z tych mechanizmów, co prowadzi do mylnych wniosków. Zrozumienie zasad działania AUTO_INCREMENT jest kluczowe dla efektywnego projektowania baz danych oraz zapewnienia integralności danych.

Pytanie 32

W tabeli klienci w bazie danych sklepu internetowego występują m.in. pola całkowite: punkty,
liczbaZakupow oraz pole ostatnieZakupy typu DATE. Klauzula WHERE do zapytania wybierającego klientów, którzy posiadają ponad 3000 punktów lub zrealizowali zakupy więcej niż 100 razy, a ich ostatnie zakupy miały miejsce przynajmniej w roku 2022 ma formę

A. WHERE (punkty > 3000 OR liczbaZakupow > 100) AND ostatnieZakupy >= '2022-01'
B. WHERE punkty > 3000 AND liczbaZakupow > 100 OR ostatnieZakupy >= '2022-01-01'
C. WHERE punkty > 3000 OR liczbaZakupow > 100 OR ostatnieZakupy >= '2022-01-01'
D. WHERE punkty > 3000 AND liczbaZakupow > 100 AND ostatnieZakupy >= '2022-01-01'
Analizując odpowiedzi, można zauważyć, że wiele z nich opiera się na błędnych założeniach dotyczących logiki operatorów w SQL. W przypadku pierwszej opcji, użycie operatora AND pomiędzy dwoma warunkami punktów i liczby zakupów sugeruje, że klient musi spełniać oba te warunki jednocześnie, co jest niezgodne z wymaganiami pytania. Odpowiedź ta nie uwzględnia, że wystarczy spełnić jeden z warunków, aby być zakwalifikowanym. W drugiej opcji, podobnie, zastosowanie operatora OR dla punktów i liczby zakupów, a następnie operatora AND dla daty, wprowadza w błąd, ponieważ nie uwzględnia subtelności dotyczących logiki kwerendy. Ponadto, w tej odpowiedzi pojawia się nieprawidłowe sformułowanie daty, gdzie zastosowanie '2022-01' nie jest wystarczające do prawidłowego porównania daty. W przypadku trzeciej odpowiedzi, użycie operatora OR dla wszystkich trzech warunków sprawia, że każdy klient, który ma chociażby jeden z tych warunków spełnionych, zostanie wybrany, co jest dalekie od zamierzonego celu. Z kolei ostatnia odpowiedź, chociaż wprowadza poprawne warunki, to wymaga od klientów spełnienia wszystkich jednocześnie, co jest niezgodne z zamysłem. Takie niepoprawne interpretacje wynikają często z nieścisłości w zrozumieniu operatorów logicznych oraz ich wzajemnych powiązań w SQL, co jest kluczowe w tworzeniu efektywnych i działających zapytań.

Pytanie 33

Posiadając tabelę zawierającą zwierzeta z kolumnami nazwa, gatunek, gromada, cechy, dlugosc_zycia, aby uzyskać listę nazw zwierząt, które żyją co najmniej 20 lat oraz należą do ssaków, należy wykonać zapytanie:

A. SELECT nazwa FROM zwierzeta WHERE dlugosc_zycia >= 20 AND gromada = 'ssak';
B. SELECT nazwa FROM zwierzeta WHERE gromada = 'ssak';
C. SELECT nazwa FROM zwierzeta WHERE dlugosc_zycia >= 20;
D. SELECT nazwa FROM zwierzeta WHERE dlugosc_zycia >= 20 OR gromada = 'ssak';
Zapytanie SELECT nazwa FROM zwierzeta WHERE dlugosc_zycia >=20 AND gromada = 'ssak'; jest prawidłowe, ponieważ łączy dwa kluczowe warunki, które muszą być spełnione, aby uzyskać pożądane wyniki. W tym przypadku chcemy wyświetlić nazwy zwierząt, które żyją co najmniej 20 lat oraz należą do gromady ssaków. Operator AND w SQL jest stosowany do łączenia warunków, co oznacza, że tylko te rekordy, które spełniają oba warunki, zostaną zwrócone. Przykładem zastosowania takiego zapytania może być analiza danych w zoologii lub biologii, gdzie istotne jest zrozumienie, które gatunki mają długowieczność i są ssakami. Takie zapytanie można również wykorzystać w praktyce, na przykład w aplikacjach ewidencjonujących zwierzęta w ogrodach zoologicznych czy rezerwatach, pomagając w podejmowaniu decyzji o ich ochronie lub hodowli. Zastosowanie dobrych praktyk w SQL polega na precyzyjnym definiowaniu kryteriów, co pozwala na efektywne przetwarzanie i analizowanie danych.

Pytanie 34

Zestaw atrybutów relacji, który w minimalny sposób identyfikuje każdy rekord tej relacji, posiadając wartości unikalne oraz niepuste, określamy mianem klucza

A. kandydującego
B. głównego
C. obcego
D. złożonego
Klucz główny to zestaw atrybutów w relacyjnej bazie danych, który jednoznacznie identyfikuje każdy rekord w danej tabeli. Klucz ten nie tylko musi być unikalny, co oznacza, że jego wartości nie mogą się powtarzać, ale również nie może zawierać wartości pustych. Dzięki tym właściwościom klucz główny jest kluczowym elementem umożliwiającym efektywne zarządzanie danymi oraz zapewniającym integralność bazy danych. Na przykład, w tabeli użytkowników klucz główny może być reprezentowany przez unikalny identyfikator użytkownika (np. ID), co pozwala na łatwe odnalezienie, aktualizację lub usunięcie konkretnego rekordu. W praktyce organizacje stosują klucze główne zgodnie z zasadami normalizacji danych, co pomaga w redukcji redundancji i podnosi jakość danych. Dobrą praktyką jest również stosowanie automatycznego przydzielania wartości klucza za pomocą mechanizmów bazodanowych, takich jak sekcje w SQL, co dodatkowo minimalizuje ryzyko błędów ludzkich. Klucz główny odgrywa także ważną rolę w relacjach między tabelami, ponieważ inne tabele mogą używać tego klucza jako odniesienia w swoich kluczach obcych, co pozwala na tworzenie spójnych i logicznych powiązań między danymi.

Pytanie 35

Jakiego języka można użyć do nawiązania połączenia z bazą MySQL w trakcie tworzenia aplikacji internetowej?

A. PHP
B. XHTML
C. HTML
D. CSS
PHP to naprawdę fajny język skryptowy, który świetnie sprawdza się w tworzeniu dynamicznych aplikacji internetowych. Jest super efektywny, kiedy trzeba połączyć się z bazami danych, takimi jak MySQL. Jako język serwerowy, daje programistom narzędzia do robienia różnych rzeczy z danymi, jak dodawanie, edytowanie czy usuwanie rekordów w bazie. Na przykład, gdy tworzysz aplikację do zarządzania użytkownikami, możesz użyć PHP do obsługi formularza rejestracyjnego, który zbiera dane od użytkowników i następnie łączy się z MySQL, by je zapisać. Do łączenia z bazą danych używa się funkcji, jak mysqli_connect() lub PDO (PHP Data Objects), co pozwala na bezpieczne i sprawne zarządzanie połączeniami oraz zapytaniami SQL. Co ważne, PHP zachęca do dobrych praktyk, jak stosowanie przygotowanych zapytań, co mocno zwiększa bezpieczeństwo aplikacji, chroniąc przed różnymi atakami, jak SQL injection.

Pytanie 36

SELECT count(*) FROM Uczniowie WHERE srednia = 5;
Wynikiem uruchomienia przedstawionego zapytania SQL jest:
A. Suma ocen uczniów, których średnia ocen wynosi 5.
B. Liczba uczniów, których średnia ocen wynosi 5.
C. Liczba wszystkich uczniów.
D. Średnia ocen wszystkich uczniów.
Poprawnie – to zapytanie zwraca liczbę uczniów, których kolumna „srednia” ma wartość równą dokładnie 5. Funkcja agregująca COUNT(*) w SQL nie liczy sumy ani średniej, tylko po prostu zlicza wiersze spełniające warunek w klauzuli WHERE. W tym przypadku tabela Uczniowie jest filtrowana warunkiem srednia = 5, więc do liczenia trafiają wyłącznie rekordy uczniów, którzy mają średnią ocen równą 5. Dopiero na takim przefiltrowanym zbiorze wykonywany jest COUNT(*), który zwraca jedną liczbę – ile takich rekordów istnieje. Moim zdaniem to jedno z najczęściej używanych połączeń: WHERE + COUNT(*), bo w praktyce non stop chcemy wiedzieć „ile jest elementów spełniających warunek”. W raportach, panelach administracyjnych, dashboardach – np. ile jest klientów z określonym statusem, ilu użytkowników ma aktywne konto, ilu pracowników ma premię powyżej jakiegoś progu itd. Warto też zauważyć, że COUNT(*) liczy wszystkie wiersze, niezależnie od tego, czy jakieś inne kolumny są NULL, a kluczowe jest tylko to, że warunek WHERE jest spełniony. Dobrą praktyką jest zawsze dokładne określanie warunku filtrowania, bo drobna zmiana, np. srednia >= 5 zamiast srednia = 5, całkowicie zmienia znaczenie zapytania. W projektowaniu baz danych i zapytań SQL takie precyzyjne myślenie o warunkach i funkcjach agregujących jest absolutną podstawą profesjonalnej pracy z danymi.

Pytanie 37

W przypadku uszkodzenia serwera bazy danych, aby jak najszybciej przywrócić pełną funkcjonalność bazy danych, należy skorzystać z

A. opisów struktur danych w tabelach.
B. kompletnej listy użytkowników serwera.
C. najnowszej wersji instalacyjnej serwera.
D. aktualnej wersji kopii zapasowej.
Wybór najnowszej wersji instalacyjnej serwera jako odpowiedzi na problem z uszkodzeniem bazy danych może prowadzić do poważnych nieporozumień. Instalacja nowej wersji oprogramowania nie rozwiązuje problemu utraty danych ani nie przywraca ich integralności. Nawet jeśli instalacja najnowszej wersji może wprowadzić nowe funkcjonalności oraz poprawki błędów, to w kontekście odzyskiwania danych jest to podejście niewłaściwe. Z kolei pełna lista użytkowników serwera, choć może być pomocna w zarządzaniu dostępem, nie ma nic wspólnego z procesem przywracania danych po awarii. Kluczowym elementem odzyskiwania danych jest sama zawartość bazy, a nie jej struktura użytkowników. Natomiast opis struktur danych w tabelach również jest nieprzydatny w sytuacji, gdy celem jest przywrócenie aktualnych danych do bazy. Takie myślenie może prowadzić do błędnych założeń, że znajomość struktury bazy danych wystarczy do jej odtworzenia, co jest dalekie od rzeczywistości. W praktyce, aby skutecznie przywrócić bazę danych, kluczowe jest posiadanie aktualnych kopii zapasowych, które można szybko wykorzystać. Ignorując ten element, ryzykujemy nie tylko utratę danych, ale również wydłużenie czasu przestoju oraz większe koszty związane z naprawą systemu.

Pytanie 38

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

A. tworzenia tabeli oraz edytowania danych w niej
B. wyświetlania zawartości tabeli
C. tworzenia tabeli i wypełniania jej danymi
D. edycji danych oraz przeglądania tabeli
Wybrane odpowiedzi, które nie są poprawne, nie uwzględniają szczególnych ograniczeń, które zostały nałożone na użytkownika Jana po wykonaniu polecenia REVOKE. W przypadku odpowiedzi sugerujących, że Jan mógłby aktualizować dane i przeglądać tabelę, brakuje zrozumienia znaczenia polecenia REVOKE, które jednoznacznie odmawia tych uprawnień. Aktualizowanie danych w tabeli wymaga posiadania uprawnienia UPDATE, które Jan utracił. Z kolei odpowiedzi sugerujące tworzenie tabeli i aktualizowanie w niej danych oraz przeglądanie tabeli są również mylące, ponieważ wykluczają kluczowy aspekt ograniczeń narzuconych przez polecenie REVOKE. Użytkownik Jan nie może przeglądać danych w tabeli, ponieważ nie ma aktualnie uprawnienia SELECT. Ponadto, w kontekście SQL, każdy użytkownik musi mieć przyznane konkretne uprawnienia do realizacji określonych operacji na danych, co w przypadku Jana oznacza, że jego uprawnienia do SELECT i UPDATE są nieodwracalnie usunięte, co czyni wszystkie te odpowiedzi nieaktualnymi.

Pytanie 39

Jakiego typu danych w bazie MySQL należy używać, aby zapisać datę oraz czas w jednym polu?

A. DATE
B. TIMESTAMP
C. YEAR
D. BOOLEAN
Wybór błędnych typów danych do przechowywania daty i czasu w MySQL może prowadzić do poważnych problemów w aplikacjach. Typ danych DATE jest zaprojektowany jedynie do przechowywania dat bez informacji o czasie, co oznacza, że nie nadaje się do sytuacji, gdzie potrzebne są dokładne informacje co do godzin i minut. Użycie DATE w tym kontekście ogranicza możliwości analizy danych związanych z czasem, na przykład w przypadku zapisywania logów zdarzeń, gdzie istotne jest zarówno data, jak i godzina wystąpienia. Z kolei typ YEAR jest jeszcze bardziej ograniczony, ponieważ pozwala na przechowywanie tylko informacji o roku. Takie podejście jest niewystarczające w większości przypadków, gdzie pełna data i czas są wymagane do prawidłowego zarządzania danymi. Typ BOOLEAN, który ma tylko dwa stany (prawda/fałsz), również nie jest odpowiedni do przechowywania daty i czasu, co jest absolutnie nieadekwatne do tego celu. Wybór niewłaściwego typu danych często wynika z braku zrozumienia, jak ważne jest precyzyjne określenie wymagań dotyczących danych w danym kontekście. Używanie typów danych, które nie są dostosowane do specyficznych potrzeb aplikacji, może prowadzić do błędów, utraty danych oraz trudności w przyszłych aktualizacjach i rozbudowach systemów.

Pytanie 40

Czym jest proces normalizacji tabel w kontekście baz danych?

A. wyłącznie stworzenie tabel oraz relacji w bazie
B. analiza i optymalizacja bazy danych
C. wprowadzenie nowych rekordów do bazy
D. wizualizacja struktury bazy danych
Podczas analizy niepoprawnych odpowiedzi, istotne jest zrozumienie, dlaczego niektóre koncepcje są mylone z procesem normalizacji. Odpowiedzi sugerujące dodawanie rekordów do bazy oraz graficzne przedstawienie bazy nie mają związku z normalizacją, która koncentruje się na organizacji istniejących danych w sposób redukujący ich duplikację. Proces dodawania rekordów odnosi się do operacji DML (Data Manipulation Language) w SQL, podczas gdy normalizacja jest bardziej związana z teorią projektowania baz danych. Odpowiedź sugerująca, że normalizacja dotyczy jedynie tworzenia tabel i relacji, ignoruje złożoność tego procesu. Tworzenie tabel to tylko jeden z kroków w procesie normalizacji, który obejmuje również identyfikację zależności między danymi oraz eliminację niepożądanych redundancji. Niezrozumienie tego może prowadzić do nieefektywnej struktury bazy danych, co w perspektywie czasu skutkuje trudnościami w zarządzaniu danymi. Natomiast stwierdzenie, że normalizacja odnosi się jedynie do optymalizacji bazy danych, pomija jej fundamentalne założenia dotyczące integralności danych oraz eliminacji anomalii, które są kluczowe dla prawidłowego funkcjonowania systemów bazodanowych. W ten sposób można zauważyć, że mylenie tych pojęć prowadzi do błędnych wniosków na temat podstawowych zasad projektowania baz danych.