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: 28 kwietnia 2026 15:02
  • Data zakończenia: 28 kwietnia 2026 15:38

Egzamin zdany!

Wynik: 34/40 punktów (85,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

W języku PHP nie można zrealizować

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

Pytanie 2

Tabele Osoby i Adresy są połączone relacją jeden do wielu. Jakie zapytanie SQL należy zapisać, aby korzystając z tej relacji, prawidłowo wyświetlić nazwiska oraz przyporządkowane im miasta?

Ilustracja do pytania
A. SELECT nazwisko, Miasto FROM Osoby, Adresy;
B. SELECT nazwisko, Miasto FROM Osoby, Adresy WHERE Osoby.id = Adresy.id;
C. SELECT nazwisko, Miasto FROM Osoby.Adresy_id = Adresy.id FROM Osoby, Adresy;
D. SELECT nazwisko, Miasto FROM Osoby JOIN Adresy ON Osoby.Adresy_id = Adresy.id;
Prawidłowa odpowiedź opiera się na instrukcji SELECT z użyciem JOIN, co jest bardzo ważne przy pracy z relacyjnymi bazami danych. W tym przypadku, zapytanie SELECT jest używane do wyboru dwóch kolumn - 'nazwisko' i 'Miasto' - z połączonych tabel 'Osoby' i 'Adresy'. Wykorzystuje się tutaj złączenie (JOIN), które jest kluczowym konceptem w SQL umożliwiającym łączenie danych z różnych tabel w jednym zapytaniu. Odpowiednia składnia JOIN wymaga określenia dwóch tabel do połączenia oraz warunku łączenia, który w tym przypadku jest 'Osoby.Adresy_id = Adresy.id'. Ten warunek oznacza, że rekordy z obu tabel będą połączone, gdy wartość kolumny 'Adresy_id' w tabeli 'Osoby' będzie równa wartości kolumny 'id' w tabeli 'Adresy'. Jest to typowe użycie klucza obcego ('Adresy_id') do odwołania się do klucza głównego w innej tabeli ('id' w tabeli 'Adresy'). To jest dobry przykład pokazujący, jak praktycznie wykorzystuje się relacje pomiędzy tabelami w SQL.

Pytanie 3

Jakie zapytanie umożliwi Administratorowi odebranie uprawnień do przeglądania oraz edytowania danych w bazie gazeta, dla użytkownika redaktor?

A. REVOKE SELECT, UPDATE ON gazeta.* FROM 'redaktor'@'localhost';
B. GRANT SELECT, ALTER ON gazeta.* TO 'redaktor'@'localhost';
C. GRANT SELECT, UPDATE ON gazeta.* TO 'redaktor'@'localhost';
D. REVOKE SELECT, ALTER ON gazeta.* FROM 'redaktor'@'localhost';
Odpowiedź jest poprawna, ponieważ zapytanie REVOKE SELECT, UPDATE ON gazeta.* FROM 'redaktor'@'localhost'; skutecznie odbiera użytkownikowi redaktor prawa do przeglądania (SELECT) oraz aktualizacji (UPDATE) danych w tabeli gazeta. W kontekście zarządzania uprawnieniami w systemach baz danych, kluczowym elementem jest kontrola dostępu. Standard SQL definiuje polecenie REVOKE jako sposób na cofnięcie przyznanych wcześniej uprawnień. W praktyce, administratorzy baz danych muszą ścisle zarządzać uprawnieniami użytkowników, aby zapewnić bezpieczeństwo danych i zgodność z politykami ochrony informacji. Przykładem zastosowania mogłoby być ograniczenie dostępu do poufnych danych w przypadku, gdy użytkownik przestaje pełnić określoną rolę w organizacji. Rezygnacja z uprawnień powinna być zawsze udokumentowana i przeprowadzona zgodnie z procedurami, by zapobiec nieautoryzowanemu dostępowi do danych. Zarządzanie uprawnieniami to kluczowy aspekt administrowania bazami danych, który wpływa na bezpieczeństwo i integralność informacji.

Pytanie 4

$x = mysql_query('SELECT * FROM mieszkanci'); if (!$x) echo "??????????????????????????????"; W podanym kodzie PHP, w miejscu znaków zapytania powinien wyświetlić się komunikat:

A. Błąd w trakcie przetwarzania zapytania
B. Zapytania zakończono sukcesem
C. Nieprawidłowa nazwa bazy danych
D. Złe hasło do bazy danych
W przedstawionym kodzie PHP mamy do czynienia z próbą wykonania zapytania SQL do bazy danych przy pomocy funkcji mysql_query. Ta funkcja zwraca wartość false, jeśli wystąpił błąd w trakcie przetwarzania zapytania. W kontekście tego kodu, komunikat 'Błąd przetwarzania zapytania.' jest odpowiedni, ponieważ wskazuje, że zapytanie nie zostało poprawnie wykonane. Istotne jest, aby programista zrozumiał, że błędy mogą wynikać z różnych przyczyn, takich jak błędna składnia SQL, problemy z połączeniem do bazy danych lub inne czynniki techniczne. Ważną praktyką jest dodawanie mechanizmów obsługi błędów, które mogą dać więcej informacji na temat problemu, np. użycie mysql_error() do uzyskania szczegółowych informacji o błędzie. Standardy dotyczące programowania w PHP oraz najlepsze praktyki wskazują na konieczność stosowania try-catch dla lepszej kontroli błędów oraz logowania, co może pomóc w diagnozowaniu problemów na etapie produkcyjnym. Warto zaznaczyć, że mysql_query jest przestarzałą funkcją, a obecnie zaleca się użycie mysqli lub PDO do komunikacji z bazą danych, co poprawia bezpieczeństwo i wydajność aplikacji.

Pytanie 5

W języku SQL przedstawiony warunek jest równoważny warunkowi

liczba >= 10 AND liczba <= 100
A. NOT (liczba < 10 AND liczba > 100)
B. liczba IN (10, 100)
C. liczba LIKE '10%'
D. liczba BETWEEN 10 AND 100
Dobra robota! Twoja odpowiedź jest na pewno poprawna. Warunek 'liczba >= 10 AND liczba <= 100' w SQL oznacza, że musimy znaleźć liczbę, która jest większa lub równa 10 i mniejsza lub równa 100. Można to również zapisać jako 'liczba BETWEEN 10 AND 100', co po prostu definiuje zakres wartości od 10 do 100, łącznie z tymi granicami. Używanie operatorów takich jak BETWEEN jest naprawdę przydatne w SQL, bo ułatwia nam życie przy pisaniu zapytań i sprawia, że łatwiej jest zrozumieć, co ten kod właściwie robi. Fajnie umieć takie rzeczy, bo to naprawdę klucz do efektywnej pracy z bazami danych.

Pytanie 6

Jakie polecenie pozwala na dodanie kolumny zadanie kompletne do tabeli zadania?

A. CREATEINDEX zadania ADD COLUMN zadanie_kompletne int
B. ADD COLUMN zadanie kompletne WITH zadania
C. ALTER TABLE zadania ADD COLUMN zadaniekompletne int
D. INSERT INTO zadania VALUES zadania kompletne
Odpowiedź 'ALTER TABLE zadania ADD COLUMN zadaniekompletne int' jest na pewno trafna. To polecenie ALTER TABLE to taki standard do zmiany struktury tabeli w relacyjnych bazach, jak MySQL czy PostgreSQL. Dzięki temu możemy dodać nową kolumnę do tabeli, co w tym przypadku robimy, dodając 'zadaniekompletne' jako kolumnę typu całkowitego (int). To jest super, gdy chcemy przechowywać liczby, na przykład ile zadań zostało już ukończonych. Warto pamiętać, że dobrze jest, żeby nazwy kolumn były jasne i jednoznaczne, bo to potem bardzo ułatwia pracę z danymi. Przykład: jak mamy tabelę 'zadania' i chcemy widzieć, jak sobie radzą użytkownicy, to dodanie kolumny 'zadaniekompletne' pozwoli nam śledzić, ile rzeczy zostało ukończonych, co pomoże w ocenie efektywności działań. Można też pomyśleć, żeby zamiast liczby używać flagi boolowskiej, ale to już zależy od systemu. Jeśli chcesz dalej rozwijać swoje umiejętności, to warto zajrzeć do dokumentacji SQL różnych baz, żeby lepiej złapać różnice w działaniu.

Pytanie 7

Jakie informacje można uzyskać na temat normalizacji tej tabeli?

Ilustracja do pytania
A. Tabela znajduje się w trzeciej postaci normalnej
B. Tabela znajduje się w pierwszej postaci normalnej
C. Tabela jest w drugiej postaci normalnej
D. Tabela nie jest znormalizowana
Tabela przedstawiona w pytaniu nie spełnia wymogów żadnej z trzech podstawowych postaci normalnych co oznacza że nie jest znormalizowana. Pierwsza postać normalna wymaga aby wszystkie wartości w tabeli były atomowe co oznacza że kolumna Adres powinna być podzielona na kilka kolumn takich jak ulica miasto i kod pocztowy. Druga postać normalna wymaga że wszystkie atrybuty niekluczowe muszą być deterministycznie zależne od całego klucza głównego co w tym przypadku nie ma zastosowania ponieważ tabela zawiera tylko dwa atrybuty i brak jest klucza złożonego. Trzecia postać normalna eliminuje wszelkie przejściowe zależności funkcyjne pomiędzy atrybutami niekluczowymi co również nie ma zastosowania w tej prostej strukturze. Typowe błędy myślowe prowadzące do niewłaściwych wniosków mogą obejmować niepełne zrozumienie zasad atomowości danych oraz błędne założenie że nieskomplikowana struktura tabeli automatycznie spełnia zasady normalizacji. Dlatego kluczowe jest aby dokładnie rozumieć i identyfikować zależności między danymi oraz jak te zależności wpływają na integralność i efektywność bazy danych co jest szczególnie istotne w dużych systemach gdzie dane są intensywnie modyfikowane i wykorzystywane przez wiele aplikacji jednocześnie. Właściwa normalizacja pozwala na optymalizację czasu dostępu do danych oraz minimalizację redundancji co jest uznawane za dobrą praktykę w branży projektowania baz danych. W kontekście projektowania systemów informatycznych poprawna normalizacja jest nieodłącznym elementem cyklu życia projektu zapewniającym że struktura danych jest odporna na zmiany w wymaganiach użytkowników oraz skalowalna w przypadku wzrostu ilości danych do obsługi przez system. Dlatego zrozumienie i prawidłowe stosowanie zasad normalizacji jest kluczowe dla przyszłych profesjonalistów w dziedzinie IT którzy będą odpowiedzialni za projektowanie i utrzymanie złożonych systemów bazodanowych.

Pytanie 8

Jakie parametry trzeba przekazać do polecenia PHP, aby wprowadzić dane do bazy?

mysqli_query($zm1, $zm2);
A. NULL w $zm1, aby baza mogła zapisać tam kod błędu oraz zapytanie SELECT w $zm2
B. id wiersza w $zm1 oraz zapytanie INSERT INTO w $zm2
C. identyfikator połączenia z bazą danych w $zm1 oraz zapytanie INSERT INTO w $zm2
D. identyfikator połączenia z bazą danych w $zm1 oraz zapytanie SELECT w $zm2
Problem ze zrozumieniem jak należy przekazywać parametry do funkcji mysqli_query może wynikać z niezrozumienia struktury połączenia z bazą danych i operacji jakie można na niej wykonywać. Pierwszy błędny pomysł zakłada użycie zapytania SELECT które służy do pobierania danych a nie ich dodawania. Stąd nie pasuje do kontekstu wstawiania danych. Identyfikator połączenia to kluczowy element oznaczający uchwyt do sesji z bazą a nie id wiersza który w tym kontekście nie ma zastosowania. Próba użycia NULL jako parametru wskazuje na błędne zrozumienie mechanizmów obsługi błędów w PHP. Bazy danych nie zapisują kodów błędów w zmiennej przekazywanej do zapytania. Takie podejście świadczy o braku świadomości jak zarządzać błędami w programowaniu z wykorzystaniem PHP gdzie standardem jest analiza wartości zwracanych przez funkcje i wykorzystanie funkcji takich jak mysqli_error do diagnozowania problemów. W kontekście wstawiania danych do bazy poprawne rozumienie mechanizmu polega na znajomości struktury SQL i obsługi połączeń z bazą co jest fundamentalne dla efektywnej pracy z bazami danych w PHP. Zrozumienie tych koncepcji pozwala na bezpieczne i skuteczne wykonywanie operacji na danych a także na efektywne diagnozowanie i obsługę błędów dzięki czemu aplikacje są bardziej odporne na awarie i ataki zewnętrzne co jest kluczowe dla ich stabilności i bezpieczeństwa.

Pytanie 9

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

A. archiwizację bazy
B. kwerendę aktualizującą
C. defragmentację bazy
D. więzy integralności
W celu zapewnienia spójności danych w bazie programu Microsoft Access kluczowe jest zastosowanie więzów integralności. Więzy integralności to zasady, które definiują warunki, jakie muszą być spełnione, aby dane w bazie były spójne i zgodne z określonymi regułami. Przykładowo, więzy te mogą obejmować ograniczenia unikalności, które zapobiegają wprowadzaniu zduplikowanych wartości w kolumnie, oraz więzy klucza obcego, które zapewniają, że wartości w jednej tabeli muszą odpowiadać wartościom w innej tabeli. Zastosowanie więzów integralności jest zgodne z zasadami normalizacji baz danych, które mają na celu minimalizowanie redundancji danych oraz eliminowanie niezgodności. Z perspektywy praktycznej, gdy tworzymy aplikacje bazodanowe, ustanowienie odpowiednich więzów integralności od samego początku pozwala uniknąć wielu problemów związanych z błędnymi danymi, co przynosi korzyści w kontekście analizy danych i raportowania. W związku z tym, więzy integralności są kluczowym elementem w projektowaniu baz danych, który znacząco wpływa na jakość i trwałość przechowywanych informacji.

Pytanie 10

Kwerenda umożliwiająca wprowadzenie zmian w wielu rekordach lub przeniesienie ich za pomocą jednej operacji nosi nazwę kwerendy

A. parametrycznej
B. krzyżowej
C. funkcjonalnej
D. wybierającej
Kwerenda parametryczna to rodzaj kwerendy, która umożliwia użytkownikowi wprowadzenie parametrów w celu wykonania zapytania. Choć parametry mogą być wykorzystywane do modyfikacji danych, nie są one odpowiednie do wprowadzania masowych zmian, ponieważ wymagają interakcji użytkownika w celu ustalenia wartości parametrów. Z kolei kwerenda wybierająca, której celem jest pobieranie danych z bazy, nie wprowadza ani nie modyfikuje informacji, a jedynie prezentuje dane zgodnie z określonymi kryteriami. To sprawia, że nie można jej używać do wprowadzania zmian w rekordach. Kwerenda krzyżowa natomiast, która jest wykorzystywana do analizy danych w formie tabel przestawnych, również nie działa w kontekście masowych aktualizacji lub przeniesień rekordów. Zamiast tego, kwerendy krzyżowe agregują dane w celu analizy, co sprawia, że są one skuteczne do raportowania, ale nie do operacji modyfikujących bazę danych. Wszystkie te trzy typy kwerend mają swoje specyficzne zastosowania, lecz w kontekście pytania, to kwerenda funkcjonalna jest jedynym odpowiednim narzędziem do wprowadzania zmian w wielu rekordach jednocześnie.

Pytanie 11

Wskaż zapytanie, w którym dane są uporządkowane.

A. SELECT AVG(ocena) FROM uczniowie WHERE klasa = 2;
B. SELECT nazwisko FROM firma WHERE pensja > 2000 LIMIT 10;
C. SELECT imie, nazwisko FROM mieszkancy WHERE wiek > 18 ORDER BY wiek;
D. SELECT DISTINCT produkt, cena FROM artykuly;
Odpowiedź wskazująca na zapytanie "SELECT imie, nazwisko FROM mieszkancy WHERE wiek > 18 ORDER BY wiek;" jest prawidłowa, ponieważ zawiera klauzulę ORDER BY, która służy do sortowania rekordów w wynikach zapytania. W tym przypadku dane są sortowane według kolumny 'wiek', co pozwala na uzyskanie uporządkowanej listy mieszkańców, którzy mają więcej niż 18 lat. Sortowanie danych jest kluczowym aspektem w zarządzaniu bazami danych, umożliwiającym łatwiejsze wyszukiwanie oraz analizę informacji. Przykładem zastosowania może być generowanie raportów, gdzie istotne jest uporządkowanie danych, na przykład według wieku, aby zobaczyć, jak rozkłada się wiek mieszkańców w danej grupie. Dodatkowo, stosowanie sortowania zgodnie z przyjętymi standardami SQL zwiększa czytelność oraz efektywność zapytań, a także ułatwia rozwiązywanie problemów związanych z przetwarzaniem danych.

Pytanie 12

W języku SOL komenda INSERT INTO

A. modyfikuje rekordy ustaloną wartością
B. tworzy tabelę
C. wprowadza pola do tabeli
D. wprowadza dane do tabeli
W odpowiedziach, które nie są poprawne, można zaobserwować pewne powszechne nieporozumienia dotyczące funkcji polecenia INSERT INTO. Odpowiedź sugerująca, że to polecenie aktualizuje rekordy, myli funkcje INSERT i UPDATE, które mają zupełnie różne cele. INSERT INTO służy do dodawania nowych danych, podczas gdy UPDATE jest używane do modyfikacji istniejących rekordów. Z kolei stwierdzenie, że polecenie dodaje pola do tabeli, odnosi się do innej komendy, jaką jest ALTER TABLE. Ta komenda służy do zmiany struktury tabeli, a nie do wprowadzania danych. Wreszcie, odpowiedź mówiąca o dodawaniu tabeli dotyczy również ALTER TABLE, a nie INSERT INTO. Te nieporozumienia mogą wynikać z braku zrozumienia podstawowej architektury baz danych oraz różnorodności poleceń SQL, które są zaprojektowane do realizacji różnych zadań. Dlatego ważne jest, aby przed przystąpieniem do pracy z bazami danych zrozumieć, jak różne polecenia wpływają na strukturę i zawartość bazy danych oraz jakie są ich zastosowania w praktyce. Zrozumienie tych różnic jest kluczowe dla efektywnego zarządzania danymi i unikania błędów w codziennej pracy z bazami danych.

Pytanie 13

Tworząc raport w systemie zarządzania relacyjnymi bazami danych, umożliwia się

A. aktualizowanie danych w tabelach
B. usuwanie danych z tabel
C. dodawanie danych do tabel
D. analizę wybranych danych
Analiza wybranych danych w systemie obsługi relacyjnych baz danych jest kluczowym aspektem raportowania. Umożliwia to zrozumienie wzorców i trendów, co jest niezbędne dla podejmowania świadomych decyzji biznesowych. Poprzez odpowiednie zapytania SQL, użytkownicy mogą selektywnie wybierać dane, które są dla nich istotne, a następnie przetwarzać je w celu generowania raportów. Przykładem może być analiza sprzedaży w danym okresie czasu, co pozwala na identyfikację najlepiej sprzedających się produktów. Praktyczne zastosowanie raportów obejmuje również monitoring efektywności działań marketingowych, co jest zgodne z najlepszymi praktykami w dziedzinie zarządzania danymi. W kontekście standardów branżowych, raportowanie powinno opierać się na zasadzie przejrzystości, co oznacza, że użytkownicy powinni mieć łatwy dostęp do zrozumiałych i czytelnych wyników analizy. Umożliwia to nie tylko identyfikację problemów, ale również wykorzystanie danych do prognozowania i planowania przyszłych działań.

Pytanie 14

Która z funkcji agregujących dostępnych w SQL służy do obliczania średniej z wartości znajdujących się w określonej kolumnie?

A. COUNT
B. MIN
C. AVG
D. SUM
Funkcja AVG w języku SQL jest wbudowaną funkcją agregującą, która służy do obliczania średniej wartości we wskazanej kolumnie. Oblicza ona średnią arytmetyczną z wartości liczbowych w danej kolumnie, co jest niezwykle przydatne w analizie danych. Na przykład, jeśli mamy tabelę z wynikami sprzedaży, możemy użyć zapytania SQL: SELECT AVG(sprzedaż) FROM tabela_sprzedaży; aby uzyskać średnią sprzedaż. Dobrą praktyką jest stosowanie tej funkcji w połączeniu z klauzulą GROUP BY, co pozwala na obliczenie średnich wartości w różnych grupach danych, na przykład średnia sprzedaż według kategorii produktowej. Przy stosowaniu funkcji AVG warto pamiętać, że ignoruje ona wartości NULL, co wpływa na wynik obliczeń. W kontekście analizy danych w SQL, znajomość takich funkcji jak AVG jest kluczowa dla efektywnego przetwarzania i analizy informacji, co stanowi fundament dobrego zarządzania danymi.

Pytanie 15

Na zaprezentowanej tabeli dotyczącej samochodów wykonano zapytanie SQL SELECT ```SELECT model FROM samochody WHERE rocznik=2016;``` Jakie wartości zostaną zwrócone w wyniku tego zapytania?

Ilustracja do pytania
A. Fiat, Opel, Toyota
B. Czerwony, grafitowy
C. Punto, Corsa, Corolla
D. Punto, Corsa, Astra, Corolla, Yaris
Zapytanie SQL, które podałeś, czyli SELECT model FROM samochody WHERE rocznik=2016, jest zaprojektowane tak, żeby wyciągnąć z tabeli samochody wszystkie modele aut z rocznika 2016. To ogranicza wynik tylko do tych modeli, które spełniają ten właśnie warunek. Patrząc na dostarczoną tabelę, widzimy, że modele z rocznika 2016 to Punto, Corsa i Corolla. Więc z tego zapytania otrzymamy tylko te trzy modele. W realnym świecie, zapytania SQL są mega przydatne przy filtrowaniu danych w bazach. Zrozumienie, jak pisać zapytania SELECT, jest naprawdę ważne, zwłaszcza dla analityków i administratorów. Dobrze jest znać zasady budowania zapytań, żeby były one jasne i precyzyjne, bo to pozwala lepiej zarządzać i analizować dane. Ta wiedza to podstawa w analizie danych, gdzie umiejętność wyciągania odpowiednich informacji jest kluczowa do podejmowania dobrych decyzji biznesowych.

Pytanie 16

Utworzono bazę danych z tabelą mieszkancy, która zawiera pola: nazwisko, imie, miasto. Następnie zrealizowano poniższe zapytanie do bazy: ```SELECT nazwisko, imie FROM mieszkancy WHERE miasto="Poznań" UNION ALL SELECT nazwisko, imie FROM mieszkancy WHERE miasto="Kraków"``` Wskaż zapytanie, które zwróci te same dane:

A. SELECT nazwisko, imie FROM mieszkancy WHERE miasto="Poznań" OR miasto="Kraków"
B. SELECT nazwisko, imie FROM mieszkancy AS "Poznań" OR "Kraków"
C. SELECT nazwisko, imie FROM mieszkancy WHERE miasto HAVING "Poznań" OR "Kraków"
D. SELECT nazwisko, imie FROM mieszkancy WHERE miasto BETWEEN "Poznań" OR "Kraków"
Wybrana odpowiedź jest poprawna, ponieważ wykorzystuje operator logiczny OR do połączenia dwóch warunków w klauzuli WHERE. W wyniku tego zapytania zostaną zwrócone wszystkie rekordy z tabeli 'mieszkancy', gdzie miasto to 'Poznań' lub 'Kraków'. To podejście jest zgodne z zasadami SQL, gdzie operator OR umożliwia łączenie warunków, co jest powszechnie stosowane w praktyce. Warto zauważyć, że zapytanie z wykorzystaniem operatora UNION ALL, które było pierwotnie zdefiniowane, również łączy wyniki z dwóch zapytań, ale każdy SELECT działa osobno. Użycie OR w tym przypadku jest bardziej efektywne, ponieważ pozwala na jedno zapytanie, co może przyspieszyć wykonanie w porównaniu do kilku zapytań UNION. W praktycznych zastosowaniach, gdy mamy do czynienia z wieloma kryteriami, stosowanie operatorów logicznych jest kluczowe dla uzyskania precyzyjnych wyników.

Pytanie 17

Klucz obcy w tabeli jest ustanawiany w celu

A. zapewnić jednoznaczną identyfikację rekordu w tabeli
B. opracować formularz do wprowadzania danych do tabeli
C. określić relację 1..n powiązującą go z kluczem głównym innej tabeli
D. wiązać go z innymi kluczami obcymi w tabeli
Klucz obcy (foreign key) w bazach danych jest fundamentalnym elementem w modelowaniu relacji pomiędzy tabelami. Jego podstawowym celem jest zdefiniowanie relacji 1..n pomiędzy tabelą, w której się znajduje, a kluczem głównym innej tabeli. Oznacza to, że jeden rekord w tabeli, która zawiera klucz główny, może być powiązany z wieloma rekordami w tabeli z kluczem obcym. Na przykład, w systemie zarządzania zamówieniami, tabela 'Klienci' może mieć klucz główny 'ID_klienta', a tabela 'Zamówienia' może zawierać klucz obcy 'ID_klienta', co pozwala na powiązanie wielu zamówień z jednym klientem. To nie tylko ułatwia strukturalne organizowanie danych, ale również wspiera integralność referencyjną; czyli zapewnia, że każdy wpis w tabeli 'Zamówienia' odnosi się do istniejącego klienta. W praktyce, dobre praktyki projektowania baz danych zalecają używanie kluczy obcych do zachowania spójności danych i ułatwienia ich analizy, co odzwierciedla większą efektywność w strumieniu pracy oraz w raportowaniu.

Pytanie 18

Jedną z charakterystyk relacyjnej bazy danych jest

A. używanie języka zapytań OQL
B. obecność klas, obiektów i metod
C. stosowanie kluczy głównych do identyfikacji rekordów w tabelach
D. zdefiniowanie jej stanu według obiektowego modelu danych
Relacyjne bazy danych opierają się na koncepcji tabel, gdzie dane są przechowywane w wierszach i kolumnach. Klucze główne odgrywają kluczową rolę w zapewnieniu unikalności rekordów w tabelach i umożliwiają ich identyfikację. Klucz główny to kolumna (lub zestaw kolumn), której wartości są unikalne w obrębie tabeli i nie mogą być puste. Przykładem może być tabela 'Użytkownicy', w której identyfikatorem użytkownika (kluczem głównym) może być numer PESEL lub unikalny ID. Dzięki kluczom głównym, można łatwo odnaleźć konkretne rekordy, a także powiązać je z innymi tabelami przy pomocy kluczy obcych, co jest fundamentalne dla relacyjnej struktury bazy danych. Standardy takie jak SQL (Structured Query Language) dostarczają narzędzi do definiowania, modyfikowania i manipulowania danymi z wykorzystaniem kluczy głównych, co jest podstawą projektowania baz danych zgodnie z najlepszymi praktykami. Dobre praktyki projektowe sugerują również, aby klucze główne były proste, stabilne i unikalne, co ułatwia zarządzanie danymi w relacyjnych systemach zarządzania bazą danych (RDBMS).

Pytanie 19

W SQL, aby w tabeli Towar dodać kolumnę rozmiar typu znakowego z maksymalną długością 20 znaków, jakie polecenie należy wykonać?

A. ALTER TABLE Towar DROP COLUMN rozmiar varchar(20)
B. ALTER TABLE Towar ADD rozmiar varchar(20)
C. ALTER TABLE Towar CREATE COLUMN rozmiar varchar(20)
D. ALTER TABLE Towar ALTER COLUMN rozmiar varchar(20)
Odpowiedź 'ALTER TABLE Towar ADD rozmiar varchar(20);' jest poprawna, ponieważ polecenie ALTER TABLE jest używane do modyfikacji struktury istniejącej tabeli. W tym przypadku chcemy dodać nową kolumnę o nazwie 'rozmiar', a typ 'varchar(20)' oznacza, że kolumna ta będzie przechowywać dane tekstowe o maksymalnej długości 20 znaków. Jest to standardowa praktyka w języku SQL, która pozwala na elastyczne zarządzanie danymi w bazach danych. Przykładem zastosowania może być sytuacja, w której w tabeli 'Towar' chcemy przechowywać informacje o rozmiarze odzieży, co pomaga w lepszym zarządzaniu stanem magazynowym. Prawidłowe zweryfikowanie typów kolumn i ich ograniczeń jest kluczowe dla zapewnienia integralności danych. Warto także pamiętać o tym, że operacje na strukturze bazy danych powinny być przeprowadzane z zachowaniem odpowiednich zasad, takich jak wykonywanie kopii zapasowych przed wprowadzeniem zmian oraz testowanie zmian w środowisku deweloperskim przed wdrożeniem ich w środowisku produkcyjnym.

Pytanie 20

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. przeglądania tabeli klienci i dodawania do niej rekordów
B. aktualizowania danych oraz przeglądania tabeli klienci
C. usunięcia tabeli lub jej danych
D. tworzenia tabeli klienci oraz wprowadzania do niej danych
Użytkownik adam po wykonaniu poleceń GRANT i REVOKE nie będzie miał wszystkich przywilejów na tabeli klienci, co wymaga szczegółowej analizy. Gdy polecenie GRANT ALL PRIVILEGES ON klienci TO adam zostało wykonane, użytkownik zyskał pełne prawa do tabeli klienci, w tym usuwania, aktualizowania, wstawiania, a także przeglądania danych. Następnie, polecenie REVOKE SELECT, INSERT, UPDATE ON klienci FROM adam odebrało mu możliwość przeglądania (SELECT), wstawiania (INSERT) oraz aktualizowania (UPDATE) danych w tej tabeli. Jednakże, usunięcie (DELETE) nie zostało wymienione w poleceniu REVOKE, co oznacza, że użytkownik adam wciąż ma prawo do usunięcia rekordów w tabeli klienci. To zjawisko jest zgodne z zasadami zarządzania uprawnieniami w systemach baz danych SQL, gdzie uprawnienia mogą być przyznawane i odbierane niezależnie, co pozwala na precyzyjne zarządzanie dostępem do danych. W praktyce, sytuacja ta może prowadzić do niebezpieczeństw związanych z bezpieczeństwem danych, dlatego ważne jest, aby administratorzy baz danych dokładnie analizowali przyznawane i odbierane uprawnienia.

Pytanie 21

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. INTEGER(11)
C. ENUM
D. DECIMAL(10, 2)
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 22

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

GRANT ALL PRIVILEGES ON klienci TO jan;
REVOKE SELECT, INSERT, UPDATE, DELETE ON klienci FROM jan;
A. Będzie mógł zmieniać strukturę tabeli klienci.
B. Będzie mógł przeszukiwać dane w tabeli klienci.
C. Będzie mógł eliminować rekordy z tabeli klienci.
D. Będzie mógł dodawać rekordy do tabeli klienci.
Wybór odpowiedzi, że jan będzie mógł usuwać rekordy z tabeli klienci, jest błędny. Polecenie REVOKE SELECT, INSERT, UPDATE, DELETE nałożone na użytkownika jan oznacza, że pozbawiono go możliwości wykonywania operacji, które są kluczowe dla zarządzania danymi w tej tabeli. W praktyce, zasady przyznawania uprawnień w bazach danych wymagają, aby użytkownicy mieli określone uprawnienia do przeprowadzenia operacji na danych. Usuwanie rekordów jest operacją, która wymaga posiadania odpowiednich uprawnień, a ponieważ jan został pozbawiony uprawnienia DELETE, nie może on już usuwać żadnych danych z tabeli klienci. Podobnie, stwierdzenie, że jan będzie mógł wyszukiwać dane, również jest błędne, ponieważ uprawnienie SELECT zostało odjęte. W kontekście administracji bazą danych, kluczowe jest zrozumienie, że przyznawanie lub odbieranie uprawnień powinno być zgodne z zasadą najmniejszych uprawnień, co oznacza, że użytkownicy powinni mieć tylko te uprawnienia, które są niezbędne do wykonywania ich pracy. W tym przypadku jan ma pełne uprawnienia do zmiany struktury tabeli, ale nie ma żadnej możliwości interakcji z danymi. Zatem, odpowiedzi dotyczące możliwości wstawiania rekordów również są błędne, ponieważ uprawnienie INSERT zostało zabrane, co uniemożliwia janowi dodawanie nowych danych do tabeli. W związku z powyższym, wybór odpowiedzi na pytanie egzaminacyjne powinien opierać się na dokładnej analizie przyznanych uprawnień oraz ich wpływu na możliwości działania użytkowników w systemie baz danych.

Pytanie 23

Aby utworzyć tabelę w języku SQL, należy użyć polecenia

A. ALTER TABLE
B. ADD TABLE
C. CREATE TABLE
D. INSERT TABLE
Odpowiedź 'CREATE TABLE' jest poprawna, ponieważ w języku SQL to polecenie jest używane do tworzenia nowych tabel w bazie danych. Umożliwia definiowanie struktury tabeli, w tym nazw kolumn, typów danych oraz ograniczeń, takich jak klucze główne czy unikalność. Przykładowe użycie polecenia 'CREATE TABLE' może wyglądać następująco: 'CREATE TABLE pracownicy (id INT PRIMARY KEY, imie VARCHAR(50), nazwisko VARCHAR(50));'. W tym przykładzie tworzymy tabelę 'pracownicy' z trzema kolumnami: 'id', 'imie' oraz 'nazwisko'. Warto zaznaczyć, że zgodnie z najlepszymi praktykami, przed wykonaniem polecenia warto sprawdzić, czy tabela o danej nazwie już istnieje, aby uniknąć błędów związanych z podwójnym tworzeniem. Zapewnienie odpowiedniej struktury bazy danych już na etapie jej tworzenia przekłada się na lepszą wydajność oraz łatwiejsze zarządzanie danymi w przyszłości.

Pytanie 24

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

Pytanie 25

Atrybut autor w tabeli ksiazka oznacza

CREATE TABLE ksiazka (
  id INT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY,
  tytul VARCHAR(200),
  autor SMALLINT UNSIGNED NOT NULL,
  CONSTRAINT `dane` FOREIGN KEY (autor) REFERENCES autorzy(id)
);
A. atrybut typu tekstowego zawierający informacje o autorze
B. kluczem obcym powiązanym z tabelą autorzy
C. atrybut używany w relacji z tabelą dane
D. kluczem podstawowym tabeli ksiazka
Pole autor w tabeli ksiazka jest zdefiniowane jako klucz obcy co oznacza że tworzy relację z inną tabelą w bazie danych w tym przypadku z tabelą autorzy która zawiera id autorów W relacyjnych bazach danych klucz obcy jest mechanizmem który pozwala na utrzymanie integralności danych pomiędzy powiązanymi tabelami Jest to szczególnie ważne w kontekście modelowania rzeczywistości gdzie różne encje takie jak książki i autorzy są zależne od siebie W powyższym przykładzie pole autor odwołuje się do pola id w tabeli autorzy umożliwiając przypisanie konkretnego autora do danej książki Taka konstrukcja bazy danych jest zgodna z zasadami normalizacji które dążą do minimalizacji redundancji danych i zapewnienia ich spójności Klucze obce są powszechnie stosowaną praktyką w projektowaniu baz danych dzięki której złożone relacje mogą być reprezentowane i zarządzane w sposób efektywny Umożliwiają one implementację mechanizmu kaskadowego aktualizowania lub usuwania danych co pomaga w zachowaniu spójności w całej bazie danych

Pytanie 26

Aby skutecznie stworzyć relację typu m…n, która będzie wolna od redundancji danych, konieczne jest

A. uporządkowanie przynajmniej jednej z tabel.
B. zaprojektowanie tabeli pomocniczej.
C. bezpośrednie połączenie kluczy podstawowych obu tabel.
D. bezpośrednie połączenie kluczy obcych z obu tabel.
Bezpośrednie połączenie kluczy obcych obu tabel w relacji m:n nie jest wystarczające, aby uniknąć redundancji danych. W rzeczywistości, klucze obce mają swoje zastosowanie w relacjach jeden do wielu, gdzie jedna z tabel zawiera odniesienia do drugiej. W przypadku relacji m:n, takie podejście prowadziłoby do powstania złożonych i nieczytelnych struktur, w których dane byłyby przetrzymywane wielokrotnie, co naruszałoby zasady normalizacji. Na przykład, gdybyśmy spróbowali bezpośrednio połączyć klucze obce studentów i kursów, każda kombinacja studenta i kursu byłaby wprowadzana do tej samej tabeli, co prowadziłoby do powielania informacji i wzrostu rozmiaru bazy danych bez rzeczywistej wartości. Ponadto, sortowanie jednej z tabel nie ma wpływu na strukturę relacji m:n; sortowanie jest operacją na poziomie zapytań, a nie na poziomie architektury bazy danych. Łączenie kluczy podstawowych także nie rozwiązuje problemu redundancji, ponieważ nie tworzy połączenia, które umożliwiłoby wielokrotne przypisanie tych samych elementów między tabelami. Właściwe podejście wymaga utworzenia tabeli pomocniczej, co jest powszechną praktyką w projektowaniu baz danych i zapewnia przejrzystość oraz efektywność operacyjną.

Pytanie 27

Aby odzyskać bazę danych z kopii zapasowej na serwerze MSSQL, należy użyć polecenia

A. RESTORE DATABASE
B. BACKUP DATABASE
C. UNBACKUP DATABASE
D. EXPORT DATABASE
Aby przywrócić bazę danych z kopii zapasowej na serwerze MSSQL, trzeba użyć polecenia RESTORE DATABASE. To bardzo ważna komenda, bo pozwala nam na odzyskanie danych do stanu sprzed jakiejś awarii czy utraty informacji. Można to robić w różnych sytuacjach, na przykład przywracając bazę z pełnej kopii zapasowej albo jakiejś różnicowej. Przykład użycia wygląda tak: RESTORE DATABASE [NazwaBazyDanych] FROM DISK = 'C:\Backup\KopiaZap.pdf' WITH REPLACE; co zastąpi starą bazę nową. Fajnie też wspomnieć, że standardy jak ISO 27001 pokazują, jak ważne są regularne kopie zapasowe, żeby zachować integralność danych i ciągłość działania. A tak przy okazji, przed przywracaniem warto zablokować dostęp do bazy, żeby nie było żadnych konfliktów.

Pytanie 28

W SQL polecenie ALTER TABLE służy do

A. usuwania tabeli z bazy danych
B. zmiany danych w rekordach tabeli
C. zmiany kolumn w tabeli
D. dodawania tabeli do bazy danych
Polecenie ALTER TABLE w języku SQL jest kluczowym narzędziem do modyfikacji struktury tabeli w bazie danych. Umożliwia dodawanie, modyfikowanie oraz usuwanie kolumn, co jest niezbędne w przypadku zmieniających się wymagań biznesowych lub technicznych. Na przykład, jeśli firma decyduje się na dodanie nowego atrybutu do produktu, można to zrobić za pomocą ALTER TABLE, co zapewni elastyczność w zarządzaniu danymi. Przykładowe polecenie może wyglądać tak: ALTER TABLE produkty ADD COLUMN kolor VARCHAR(30); Warto podkreślić, że zmiany wprowadzone za pomocą ALTER TABLE są trwałe i mogą wpływać na już istniejące dane, dlatego przed ich zastosowaniem zaleca się wykonanie kopii zapasowej bazy danych. Praktyki związane z właściwym używaniem ALTER TABLE powinny obejmować także testowanie w środowisku developerskim przed wdrożeniem zmian w produkcji, aby uniknąć nieprzewidzianych problemów.

Pytanie 29

W systemie MySQL przyznanie roli o nazwie DBManager umożliwia użytkownikowi wykonywanie

A. wszystkie operacje związane z bazami danych oraz użytkownikami serwera
B. wszystkie operacje na bazach danych serwera
C. nadzór nad serwerem
D. zakładanie użytkowników serwera oraz definiowanie ich haseł
Odpowiedź wskazująca na to, że rola DBManager przyznaje użytkownikowi prawa do wszelkich operacji na bazach danych serwera jest poprawna, ponieważ rola ta umożliwia pełen zakres działań związanych z zarządzaniem bazami danych. Użytkownik z tą rolą ma możliwość tworzenia, modyfikowania i usuwania baz danych, a także wykonywania zapytań na tych bazach. W praktyce oznacza to, że osoba z rolą DBManager może na przykład zarządzać strukturą tabel, definiować relacje między danymi oraz optymalizować wydajność zapytań. Tego rodzaju uprawnienia są kluczowe dla administratorów baz danych, którzy muszą zapewnić, że dane są przechowywane, przetwarzane i zabezpieczone zgodnie z najlepszymi praktykami branżowymi. Ponadto, rola DBManager wspiera standardy bezpieczeństwa i integralności danych, pozwalając na stosowanie zasad dotyczących dostępu i uprawnień do danych w sposób zgodny z regulacjami prawnymi i wewnętrznymi politykami organizacji.

Pytanie 30

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 dwóch pól
B. Z czterech pól
C. Z jednego pola
D. Z trzech pól
Kod PHP wyświetla dane z bazy danych przy użyciu funkcji mysqli_fetch_row, która zwraca wiersz danych jako tablicę. W tym przypadku, wiersz zawiera trzy elementy: '$wiersz[0]', '$wiersz[1]' oraz '$wiersz[2]'. Pierwszy element '$wiersz[0]' odpowiada nazwisku klienta, drugi '$wiersz[1]' to imię klienta, a trzeci '$wiersz[2]' to adres. Wyświetlanie danych w formacie HTML (znacznik <p>) wskazuje, że wszystkie trzy elementy są używane do stworzenia czytelnej prezentacji. W praktyce, korzystanie z mysqli_num_rows do określenia liczby zwróconych wierszy pozwala na dynamiczne przetwarzanie danych z bazy danych, co jest zgodne z najlepszymi praktykami programowania PHP. Zastosowanie pętli for umożliwia iterację przez wszystkie wiersze wynikowe i wyświetlenie ich w odpowiedniej formie. Takie podejście jest powszechnie stosowane przy budowaniu aplikacji webowych, gdzie wyświetlanie danych z bazy jest kluczowym elementem interakcji z użytkownikiem.

Pytanie 31

Została stworzona baza danych z tabelą podzespoły, która zawiera pola: model, producent, typ, cena. Aby uzyskać listę wszystkich modeli pamięci RAM od firmy Kingston uporządkowanych od najniższej do najwyższej ceny, należałoby użyć kwerendy:

A. SELECT model FROM podzespoły WHERE typ='RAM' AND producent='Kingston' ORDER BY cena ASC
B. SELECT model FROM podzespoły WHERE typ='RAM' OR producent='Kingston' ORDER BY cena DESC
C. SELECT model FROM producent WHERE typ='RAM' OR producent='Kingston' ORDER BY podzespoły ASC
D. SELECT model FROM podzespoły WHERE typ='RAM' AND producent='Kingston' ORDER BY cena DESC
Wybrana kwerenda jest poprawna, ponieważ dokładnie spełnia wymagania zadania. Użycie klauzuli SELECT do wyboru pola 'model' z tabeli 'podzespoły' pozwala na uzyskanie właściwych informacji. Warunek WHERE ogranicza wyniki do tych, które dotyczą pamięci RAM (typ='RAM') oraz producenta Kingston (producent='Kingston'). Kluczowym elementem tej kwerendy jest zastosowanie ORDER BY cena ASC, które sortuje wyniki według ceny w porządku rosnącym, co jest zgodne z wymaganiem wyświetlenia modeli od najtańszej do najdroższej. Przykłady zastosowania takiej kwerendy mogą obejmować systemy zarządzania zapasami, gdzie klienci poszukują najlepszych ofert, czy aplikacje e-commerce, które chcą dostarczyć użytkownikom najbardziej korzystne opcje zakupowe. Stosowanie jasnych i precyzyjnych kwerend SQL, według dobrych praktyk branżowych, jest kluczowe dla wydajności i przejrzystości danych.

Pytanie 32

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. obcego
C. złożonego
D. głównego
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 33

W PHP, aby połączyć się z bazą danych MySQL przy użyciu biblioteki mysqli, w zapisie zamieszczonym poniżej, w miejscu litery 'c' powinno się wpisać

Ilustracja do pytania
A. nazwę bazy danych
B. lokalizację serwera bazy danych
C. nazwę użytkownika
D. hasło użytkownika
W języku PHP używając biblioteki mysqli do połączenia z bazą danych MySQL, jako drugi argument funkcji mysqli należy podać nazwę użytkownika. Konstruktor mysqli przyjmuje pięć głównych argumentów: lokalizację serwera, nazwę użytkownika, hasło użytkownika, nazwę bazy danych oraz opcjonalne port i socket. Nazwa użytkownika jest kluczowa, ponieważ określa, który użytkownik bazy danych będzie używany do połączenia. Najczęściej używanym użytkownikiem przy lokalnych połączeniach testowych jest 'root', ale w środowiskach produkcyjnych stosuje się bardziej restrykcyjne podejście, tworząc dedykowane konta z ograniczonymi uprawnieniami dostępowymi. Korzystając z odpowiednich danych uwierzytelniających, można także lepiej logować działania i zarządzać prawami dostępu. Dobra praktyka wymaga, aby hasło było przechowywane bezpiecznie, np. w plikach konfiguracyjnych poza dostępem zewnętrznym, a dane użytkownika zawsze były szyfrowane przy przesyłaniu. Znajomość poprawnej konfiguracji połączenia z bazą danych jest kluczowa dla bezpieczeństwa i wydajności aplikacji.

Pytanie 34

W tabeli pracownicy utworzono klucz główny typu INTEGER z atrybutami NOT NULL oraz AUTO-INCREMENT. Dodatkowo zdefiniowano pola imie oraz nazwisko. W przypadku użycia przedstawionej w ramce kwerendy SQL wprowadzającej dane, gdzie pominięto pole klucza, w bazie danych MySQL dojdzie do

Ilustracja do pytania
A. wprowadzenia rekordu do tabeli, dla klucza głównego zostanie przypisana kolejna wartość naturalna
B. błędu związane z nieprawidłową liczbą pól
C. zignorowania polecenia, tabela nie ulegnie zmianie
D. wprowadzenia rekordu do tabeli, dla klucza głównego zostanie przypisana wartość NULL
W przypadku bazy danych MySQL, klucz główny zdefiniowany z atrybutem AUTO-INCREMENT pełni ważną funkcję automatycznego przydzielania unikalnych wartości liczbowych dla każdego nowego rekordu. Jest to szczególnie przydatne w dużych bazach danych, gdzie ręczne przypisywanie wartości klucza mogłoby prowadzić do błędów czy konfliktów. W przedstawionym przypadku, query SQL typu INSERT INTO pracownicy (imie, nazwisko) VALUES ('Anna', 'Nowak'); pomija pole klucza głównego. Dzięki zastosowaniu AUTO-INCREMENT, MySQL automatycznie przydzieli nową wartość klucza głównego, która będzie kolejną w sekwencji, zapewniając integralność danych. Tego rodzaju mechanizm jest standardem w zarządzaniu relacyjną bazą danych, co pozwala na efektywne i bezpieczne operowanie danymi bez ryzyka wystąpienia błędów związanych z ręcznym zarządzaniem kluczami. Dobre praktyki sugerują, aby w takich przypadkach polegać na funkcji AUTO-INCREMENT, co nie tylko ułatwia pracę z bazą danych, ale również minimalizuje możliwość wystąpienia duplikatów czy niespójności w danych. To podejście jest szeroko stosowane w branży IT, szczególnie w przypadkach systemów wymagających dużego wolumenu danych.

Pytanie 35

Fragment kodu SQL wskazuje, że klucz obcy

FOREIGN KEY (imie) REFERENCES obiekty (imiona) …
A. jest odniesieniem do siebie samego
B. wiąże się z kolumną imiona
C. znajduje się w tabeli obiekty
D. jest przypisany do kolumny obiekty
Odpowiedź wskazująca, że klucz obcy łączy się z kolumną 'imiona' jest prawidłowa, ponieważ definicja klucza obcego w SQL stanowi, że odwołuje się on do kolumny w innej tabeli, w tym przypadku do kolumny 'imiona' w tabeli 'obiekty'. Klucz obcy jest używany do ustanowienia relacji między dwiema tabelami, co poprawia integralność danych i umożliwia tworzenie bardziej złożonych zapytań. Na przykład, jeśli mamy tabelę 'uczniowie' z kolumną 'imie', a tabela 'obiekty' zawiera kolumnę 'imiona' jako klucz podstawowy, to możemy użyć klucza obcego, aby zapewnić, że każde imię w tabeli 'uczniowie' odnosi się do istniejącego rekordu w tabeli 'obiekty'. Dobrą praktyką jest zawsze stosowanie kluczy obcych w celu minimalizacji błędów danych i zapewnienia ich spójności. Użycie kluczy obcych jest zgodne z zasadami normalizacji baz danych, które dążą do eliminacji redundancji i poprawy organizacji danych.

Pytanie 36

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

A. Z zasadami
B. Z przywilejami systemowymi
C. Z przywilejami obiektowymi
D. Z właściwościami
Zarządzanie kontami, użytkownikami i uprawnieniami w kontekście baz danych opiera się na przywilejach systemowych, które umożliwiają kontrolowanie dostępu do zasobów i operacji w systemie bazodanowym. Przywileje systemowe są definiowane jako zestaw uprawnień przypisanych do użytkowników lub ról, które decydują o tym, jakie operacje mogą być wykonywane na poziomie systemu, takie jak tworzenie, modyfikowanie i usuwanie baz danych oraz zarządzanie danymi. Przykłady przywilejów systemowych obejmują 'CREATE USER', 'DROP USER' czy 'GRANT ALL PRIVILEGES', które pozwalają na pełne zarządzanie użytkownikami oraz ich uprawnieniami. Standardy takie jak SQL92 czy ISO/IEC 9075 określają zasady dotyczące definiowania i stosowania przywilejów w systemach zarządzania bazami danych, co sprawia, że są one kluczowe dla zapewnienia bezpieczeństwa oraz integralności danych. Właściwe zarządzanie tymi przywilejami jest niezbędne do minimalizacji ryzyka nieautoryzowanego dostępu oraz do ochrony wrażliwych informacji przed potencjalnymi zagrożeniami.

Pytanie 37

Kolumna, która pełni funkcję klucza głównego w tabeli, powinna

A. zawierać wartości liczbowe
B. zawierać unikalne wartości
C. być innego rodzaju niż inne kolumny
D. posiadać ciągłą numerację
Klucz główny w tabeli bazy danych to naprawdę ważny element. To taki unikalny identyfikator, który pozwala na jednoznaczne rozróżnianie rekordów. Dzięki temu unikamy dublowania danych, co jest istotne, żeby wszystko było jasne i klarowne, bo jak byśmy mieli dwa takie same rekordy, to mogłoby być sporo zamieszania. Na przykład w tabeli 'Klienci' klucz główny to np. numery PESEL czy jakieś unikalne identyfikatory klientów. W praktyce stosuje się też różne standardy, jak SQL, które pomagają ustawić te klucze jako ograniczenia. To sprawia, że nasze dane są bezpieczniejsze i bardziej poprawne. No i tak z doświadczenia, najlepiej jest, jak klucz główny jest prosty, może jako liczba całkowita, bo wtedy wszystko działa szybciej. Podsumowując, unikalność klucza głównego to podstawa, żeby mieć pewność, że nasze dane są spójne i wiarygodne. To kluczowe w każdym systemie bazodanowym.

Pytanie 38

W poleceniu CREATE TABLE zastosowanie klauzuli PRIMARY KEY przy definiowaniu kolumny tabeli spowoduje, że ta kolumna stanie się

A. kluczem podstawowym
B. indeksem unikalnym
C. indeksem klucza
D. kluczem obcym
Użycie klauzuli PRIMARY KEY w instrukcji CREATE TABLE pozwala na zdefiniowanie unikalnego identyfikatora dla każdego rekordu w tabeli. Klucz podstawowy zapewnia, że żadne dwa wiersze nie mogą mieć tej samej wartości w kolumnie, co jest kluczowe dla zachowania integralności danych. Przykładem praktycznym może być stworzenie tabeli użytkowników, gdzie 'id_użytkownika' jest kluczem podstawowym. Taki klucz może być typu INTEGER z automatycznym inkrementowaniem, co oznacza, że dla każdego nowego użytkownika wartość 'id_użytkownika' wzrasta automatycznie. Standardy branżowe zalecają definiowanie klucza podstawowego dla każdej tabeli, aby upewnić się, że rekordy można w sposób jednoznaczny zidentyfikować, co jest niezbędne dla relacyjnych baz danych. Dodatkowo, klucz podstawowy automatycznie tworzy indeks na tej kolumnie, co przyspiesza operacje wyszukiwania. Ważne jest, aby klucz podstawowy był dobrze przemyślany, ponieważ jego zmiana w przyszłości może wiązać się z dużymi komplikacjami w bazie danych.

Pytanie 39

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 imie, nazwisko FROM uczniowie WHERE data_ur like "2001-%-%"
D. SELECT * FROM uczniowie WHERE data_ur == 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 40

W poniższym kodzie PHP wykonano operację na bazie danych. Której funkcji należy użyć, aby pobrać liczbę zmienionych w tabeli wierszy?

$zapytanie="UPDATE kadra SET stanowisko='Programista' WHERE id < 10";
mysqli_query($db, $zapytanie);
A. mysqli_field_count()
B. mysqli_num_rows()
C. mysqli_affected_rows()
D. mysqli_use_result()
Gratulacje! Wybrałeś poprawną odpowiedź, która jest funkcją mysqli_affected_rows(). Ta funkcja jest specyficzna dla języka PHP i jest używana do zwracania liczby wierszy, które zostały zmienione, dodane lub usunięte przez ostatnie wywołanie funkcji mysqli_query() na serwerze MySQL. W kontekście operacji takich jak INSERT, UPDATE, REPLACE lub DELETE, mysqli_affected_rows() jest nieocenionym narzędziem do śledzenia ilości wykonanych zmian w bazie danych. Dlatego właśnie w przypadku przedstawionego pytania, gdzie w kodzie PHP wykonano operację UPDATE na bazie danych, idealnym rozwiązaniem jest użycie funkcji mysqli_affected_rows() do pobrania liczby zmienionych wierszy. Jest to kluczowe zrozumienie, aby efektywnie manipulować danymi w bazach danych MySQL za pomocą języka PHP.