Pytania pomocnicze - INF.03
Tworzenie i administrowanie stronami i aplikacjami internetowymi oraz bazami danych
Pytania pomocnicze rozwijające tematy z pytań egzaminacyjnych. Każde pytanie ma krótką odpowiedź, która pomaga utrwalić wiedzę i przygotować się do egzaminu. Łącznie: 6221.
Strona 76 z 81.
Dlaczego kwalifikatory private, protected i public są związane z hermetyzacją?
Ponieważ określają, które pola i metody klasy są dostępne z zewnątrz, a które są ukryte. Dzięki temu można kontrolować dostęp do danych obiektu.
Czym różni się private od public?
`private` oznacza dostęp tylko wewnątrz danej klasy, natomiast `public` pozwala korzystać z elementu z dowolnego miejsca programu.
Do czego służy protected?
`protected` pozwala korzystać z pola lub metody w danej klasie oraz w klasach potomnych. Nie daje jednak dostępu z dowolnego miejsca programu.
Dlaczego nie powinno się udostępniać wszystkich pól klasy jako public?
Bo inne części programu mogłyby dowolnie zmieniać stan obiektu, często w niepoprawny sposób. Lepsze jest udostępnienie metod kontrolujących zmianę danych.
Jaka jest różnica między hermetyzacją a polimorfizmem?
Hermetyzacja dotyczy ukrywania danych i kontroli dostępu. Polimorfizm pozwala traktować różne obiekty w jednolity sposób, np. przez wspólny interfejs lub nadpisane metody.
Czy rekurencja ma związek z kwalifikatorami dostępu?
Nie. Rekurencja polega na tym, że funkcja lub metoda wywołuje samą siebie, a kwalifikatory dostępu dotyczą widoczności elementów klasy.
Czym są gettery i settery w kontekście hermetyzacji?
Gettery służą do odczytu prywatnych pól, a settery do ich kontrolowanej zmiany. Pozwalają zachować hermetyzację danych.
Czym różni się TRUNCATE TABLE od DELETE FROM bez warunku WHERE?
`TRUNCATE TABLE` usuwa wszystkie rekordy szybciej i zwykle resetuje licznik automatycznej numeracji. `DELETE FROM` usuwa wiersze jako operacja DML i może działać także z warunkiem `WHERE`.
Czym różni się TRUNCATE TABLE od DROP TABLE?
`TRUNCATE TABLE` usuwa dane, ale zostawia tabelę i jej strukturę. `DROP TABLE` usuwa całą tabelę z bazy danych.
Czy TRUNCATE TABLE pozwala usunąć tylko wybrane rekordy?
Nie. `TRUNCATE TABLE` usuwa wszystkie rekordy z tabeli i nie stosuje się z warunkiem `WHERE`.
Kiedy warto użyć TRUNCATE TABLE?
Gdy trzeba szybko opróżnić całą tabelę, ale zachować jej strukturę, np. kolumny, indeksy i definicję.
Co dzieje się z tabelą po wykonaniu TRUNCATE TABLE?
Tabela nadal istnieje w bazie danych, ale jest pusta. Jej definicja i struktura pozostają bez zmian.
Czy INSERT INTO służy do usuwania danych?
Nie. `INSERT INTO` służy do dodawania nowych rekordów do tabeli, a nie do ich usuwania.
Czy ALTER TABLE służy do usuwania wszystkich rekordów?
Nie. `ALTER TABLE` służy do modyfikowania struktury tabeli, np. dodawania, usuwania lub zmiany kolumn.
Czym jest nadmiarowość danych w bazie danych?
Nadmiarowość danych oznacza niepotrzebne powtarzanie tych samych informacji w wielu miejscach. Może prowadzić do niespójności i utrudniać aktualizację danych.
Dlaczego normalizacja poprawia spójność danych?
Normalizacja ogranicza powtarzanie danych, więc dana informacja jest przechowywana zwykle w jednym miejscu. Dzięki temu zmiana wartości nie wymaga aktualizacji wielu rekordów.
Jaki jest związek między normalizacją a relacjami między tabelami?
Normalizacja często prowadzi do podziału jednej dużej tabeli na kilka mniejszych. Tabele te łączy się za pomocą relacji, najczęściej z użyciem kluczy głównych i obcych.
Czym różni się normalizacja od tworzenia tabel?
Tworzenie tabel to techniczne definiowanie struktury w bazie danych. Normalizacja to logiczne projektowanie tej struktury tak, aby uniknąć powtórzeń i błędów.
Jakie problemy mogą wystąpić w nienormalizowanej bazie danych?
Mogą wystąpić powtórzenia danych, trudności z aktualizacją, niespójności oraz błędy przy usuwaniu lub dodawaniu rekordów. Taką bazę trudniej utrzymywać.
Co oznacza pierwsza postać normalna, czyli 1NF?
Pierwsza postać normalna wymaga, aby każda komórka tabeli zawierała pojedynczą, niepodzielną wartość. Nie powinno się przechowywać list wartości w jednej kolumnie.
Czy normalizacja zawsze przyspiesza działanie bazy danych?
Nie zawsze. Normalizacja poprawia porządek i spójność danych, ale może zwiększyć liczbę połączeń między tabelami. W niektórych systemach stosuje się później kontrolowaną denormalizację dla wydajności.
Po czym najłatwiej rozpoznać pętlę w schemacie blokowym?
Po strzałce, która wraca do wcześniejszego bloku schematu. Taki powrót oznacza możliwość ponownego wykonania części algorytmu.
Czy każdy blok decyzyjny oznacza pętlę?
Nie. Blok decyzyjny oznacza warunek, ale pętla powstaje dopiero wtedy, gdy jedna ze ścieżek prowadzi z powrotem do wcześniejszego miejsca algorytmu.
Jaką rolę pełni romb w schemacie blokowym?
Romb oznacza blok decyzyjny, czyli miejsce sprawdzenia warunku. Zwykle wychodzą z niego co najmniej dwie ścieżki, np. TAK i NIE.
Czym różni się blok operacyjny od bloku decyzyjnego?
Blok operacyjny, najczęściej prostokąt, oznacza wykonanie instrukcji lub procesu. Blok decyzyjny, czyli romb, służy do sprawdzenia warunku i wyboru dalszej ścieżki.
Dlaczego w pokazanym fragmencie algorytmu występuje jedna pętla?
Ponieważ tylko jedna ścieżka przepływu wraca do wcześniejszego punktu schematu i powoduje powtarzanie fragmentu algorytmu. Liczba rombów nie przesądza automatycznie o liczbie pętli.
Czy kilka bloków decyzyjnych może należeć do jednej pętli?
Tak. Jedna pętla może zawierać wiele warunków i wiele operacji, jeśli wszystkie znajdują się w jednym cyklu przepływu sterowania.
Jak pętla ze schematu blokowego przekłada się na kod programu?
Najczęściej odpowiada instrukcjom takim jak while, do while lub for. Ich wspólną cechą jest wielokrotne wykonywanie instrukcji zależnie od warunku.
Do jakiej grupy poleceń SQL należy GRANT?
`GRANT` należy do DCL, czyli Data Control Language. Są to polecenia służące do zarządzania uprawnieniami w bazie danych.
Czym różni się GRANT od REVOKE?
`GRANT` nadaje użytkownikowi uprawnienia, a `REVOKE` je odbiera. Oba polecenia dotyczą kontroli dostępu do bazy danych.
Jakie uprawnienie pozwala użytkownikowi odczytywać dane z tabeli?
Do odczytu danych służy uprawnienie `SELECT`. Można je nadać poleceniem `GRANT SELECT ON tabela TO użytkownik`.
Czy SELECT jest poleceniem do nadawania uprawnień?
Nie. `SELECT` służy do pobierania danych z tabeli, a nie do zarządzania uprawnieniami użytkowników.
Czy CREATE nadaje użytkownikowi uprawnienia?
Nie bezpośrednio. `CREATE` służy do tworzenia obiektów w bazie, np. tabel, ale jako uprawnienie może zostać nadane przez `GRANT`.
Jak nadać użytkownikowi wszystkie uprawnienia do bazy danych?
Można użyć `GRANT ALL PRIVILEGES ON baza.* TO użytkownik`. W praktyce należy robić to ostrożnie, zgodnie z zasadą minimalnych uprawnień.
Ile razy wykona się pętla while z warunkiem x < 10, jeśli x zaczyna od 0?
Pętla wykona się 10 razy, dla wartości x od 0 do 9. Gdy x osiągnie 10, warunek x < 10 będzie fałszywy.
Co oznacza instrukcja new Ksiazka()?
Instrukcja `new Ksiazka()` tworzy nową instancję, czyli nowy obiekt klasy `Ksiazka`. Każde jej wykonanie tworzy osobny obiekt.
Dlaczego poprawna odpowiedź mówi o dziesięciu instancjach, a nie o jednej?
Ponieważ instrukcja `new Ksiazka()` znajduje się wewnątrz pętli. Pętla wykonuje ją 10 razy, więc powstaje 10 obiektów.
Jakie indeksy tablicy są używane w pokazanym kodzie?
Używane są indeksy od 0 do 9. To typowy zakres dla tablicy mającej 10 elementów.
Czy ten kod uzupełnia książki konkretnymi danymi, takimi jak tytuł lub autor?
Nie. Kod tworzy obiekty typu `Ksiazka`, ale nie przypisuje im żadnych danych. Do tego potrzebne byłyby dodatkowe instrukcje.
Jaką rolę pełni instrukcja x++ w tej pętli?
Instrukcja `x++` zwiększa wartość zmiennej `x` o 1 po każdej iteracji. Dzięki temu pętla dojdzie do końca i nie będzie nieskończona.
Czym różni się tablica obiektów od pojedynczego obiektu?
Pojedynczy obiekt reprezentuje jedną instancję klasy. Tablica obiektów może przechowywać wiele takich instancji pod różnymi indeksami.
Do czego służy element <video> w HTML5?
Element <video> służy do osadzania plików wideo bezpośrednio na stronie internetowej, bez konieczności używania wtyczek typu Flash.
Jakie trzy formaty wideo najczęściej wskazuje się jako obsługiwane przez HTML5?
W pytaniach egzaminacyjnych najczęściej wskazuje się formaty: MP4, Ogg oraz WebM.
Dlaczego w elemencie <video> często podaje się kilka plików źródłowych?
Różne przeglądarki mogą obsługiwać różne formaty, dlatego podanie kilku źródeł zwiększa szansę poprawnego odtworzenia filmu.
Czy AVI jest standardowym formatem wideo HTML5?
Nie. AVI może być formatem pliku wideo, ale nie jest typową standardową odpowiedzią dla elementu <video> w HTML5.
Jaka jest różnica między formatem kontenera a kodekiem?
Kontener, np. MP4 lub WebM, określa sposób przechowywania danych w pliku. Kodek, np. H.264 lub VP9, odpowiada za kompresję i dekodowanie obrazu lub dźwięku.
Do czego służy atrybut controls w elemencie <video>?
Atrybut controls wyświetla wbudowane przyciski sterowania filmem, takie jak odtwarzanie, pauza, pasek postępu i regulacja głośności.
Do czego służy słowo kluczowe `const` w języku C?
`const` oznacza, że wartość zmiennej nie powinna być zmieniana po inicjalizacji. Pozwala tworzyć zmienne traktowane jako stałe.
Jaka jest różnica między `const` a `static` w C?
`const` chroni wartość przed zmianą, a `static` dotyczy czasu życia zmiennej lub jej zasięgu. `static` samo w sobie nie tworzy stałej.
Czy `#define` jest słowem kluczowym języka C?
Nie. `#define` jest dyrektywą preprocesora, a nie słowem kluczowym języka C.
Do czego służy dyrektywa `#include`?
`#include` dołącza plik nagłówkowy do programu, np. bibliotekę standardową. Nie służy do definiowania stałych.
Jak poprawnie zadeklarować stałą liczbową w C za pomocą `const`?
Przykład: `const int MAX = 100;`. Typ danych podaje się tak samo jak przy zwykłej zmiennej.
Dlaczego zapis `#CONST` nie jest poprawną odpowiedzią?
W C nie istnieje standardowa dyrektywa `#CONST`. Dodatkowo dyrektywy preprocesora nie są słowami kluczowymi języka C.
Do czego służy protokół FTP?
FTP służy do przesyłania plików między komputerem użytkownika a serwerem. W praktyce umożliwia np. publikację plików strony WWW na serwerze hostingowym.
Dlaczego FTP pasuje do publikacji strony internetowej?
Strona internetowa składa się z plików, np. HTML, CSS, JS i grafik. FTP pozwala przesłać te pliki na serwer, z którego będą udostępniane użytkownikom.
Czym różni się FTP od SMTP?
FTP służy do przesyłania plików na serwer lub z serwera. SMTP służy do wysyłania poczty elektronicznej.
Czym różni się FTP od ICMP?
FTP jest protokołem transferu plików. ICMP służy głównie do diagnostyki sieci, np. w poleceniu ping.
Czym różni się FTP od NNTP?
FTP służy do przesyłania plików. NNTP jest protokołem używanym do obsługi grup dyskusyjnych Usenet.
Jakie dane są zwykle potrzebne do połączenia FTP z serwerem?
Najczęściej potrzebne są: adres serwera FTP, login, hasło oraz numer portu. Standardowy port FTP to 21.
Jaka jest bezpieczniejsza alternatywa dla klasycznego FTP?
Bezpieczniejsze są SFTP lub FTPS, ponieważ umożliwiają szyfrowane przesyłanie danych. Klasyczny FTP przesyła dane, w tym hasło, bez szyfrowania.
Jak przeglądarka wyświetla element <select> bez atrybutu multiple?
Wyświetla go jako rozwijaną listę, z której użytkownik może wybrać jedną opcję. Domyślnie widoczna jest zwykle pierwsza opcja.
Co jest widoczne w przeglądarce dla znacznika <option value="v1">Kraków</option>?
Widoczny jest tekst `Kraków`. Wartość `v1` jest wartością przesyłaną z formularzem, ale nie jest wyświetlana jako etykieta opcji.
Co dzieje się z tekstem wpisanym do pola <input type="password">?
Wpisany tekst jest maskowany, czyli zamiast liter przeglądarka pokazuje np. kropki lub gwiazdki.
Czym różni się input typu text od input typu password?
`type="text"` pokazuje wpisane znaki normalnie. `type="password"` ukrywa je wizualnie, zastępując symbolami maskującymi.
Która opcja w elemencie select jest zaznaczona domyślnie, jeśli nie użyto atrybutu selected?
Najczęściej domyślnie zaznaczona jest pierwsza opcja na liście.
Czy <select> tworzy pola wyboru typu checkbox lub radio?
Nie. `<select>` tworzy listę rozwijaną, natomiast checkbox i radio tworzy się za pomocą elementu `<input>` z odpowiednim typem.