Przejdź do głównej treści

Kwalifikacja: INF.03 - Tworzenie i administrowanie stronami i aplikacjami internetowymi oraz bazami danych

Zawód: Technik informatyk, Technik programista

Kategorie: Bazy danych Algorytmy i podstawy informatyki

Jednym z pól tabeli ksiazki jest status czyWypozyczona przyjmujący dwie wartości true lub false. Optymalny typ dla tego pola, to

A. DOUBLE
B. CHAR
C. VARCHAR(5)
D. BOOLEAN

Pytanie z egzaminu CKE, styczeń 2024 (arkusz EE.09-SG-24.01).

Pole czyWypozyczona opisuje stan logiczny: książka jest wypożyczona albo nie jest wypożyczona. Dlatego najbardziej optymalnym typem jest BOOLEAN, bo dokładnie pasuje do dwóch możliwych wartości: true i false. To jest zgodne z dobrą praktyką projektowania baz danych: typ kolumny powinien jak najlepiej odzwierciedlać znaczenie przechowywanej informacji, a nie tylko jakoś ją zmieścić. W praktyce taka kolumna ułatwia pisanie zapytań, np. SELECT * FROM ksiazki WHERE czyWypozyczona = true, oraz zmniejsza ryzyko wpisania przypadkowych wartości typu tak, nie, FALSEE albo pustego tekstu. Warto wiedzieć, że w niektórych systemach, np. MySQL, BOOLEAN jest technicznie aliasem dla TINYINT(1), ale z punktu widzenia modelu danych nadal oznacza wartość logiczną. Moim zdaniem to ważne, bo czytelność struktury tabeli jest potem mega pomocna przy utrzymaniu aplikacji bibliotecznej.
Jeżeli pole ma przechowywać tylko informację typu tak/nie, prawda/fałsz, wypożyczona/niewypożyczona, to używanie typów liczbowych zmiennoprzecinkowych albo tekstowych jest po prostu nietrafione projektowo. DOUBLE służy do przechowywania liczb rzeczywistych, na przykład ceny, wyniku pomiaru albo wartości z częścią dziesiętną. Dla statusu logicznego byłby to przerost formy nad treścią i jeszcze mógłby sugerować, że w kolumnie wolno zapisać wartości typu 0.5 albo 12.75, co nie ma żadnego sensu w kontekście wypożyczenia książki. CHAR i VARCHAR(5) też dałyby się technicznie wykorzystać, na przykład zapisując true lub false jako tekst, ale to gorsze rozwiązanie. Tekst zajmuje więcej miejsca, wymaga porównywania napisów i otwiera furtkę do literówek oraz niespójności, np. True, false, FALSE, tak, nie. Typowym błędem jest myślenie: skoro wartości wyglądają jak słowa true i false, to trzeba użyć typu znakowego. W bazach danych ważniejsze jest jednak znaczenie danych niż ich wygląd na ekranie. BOOLEAN jasno komunikuje, że kolumna jest flagą logiczną, upraszcza zapytania SQL i lepiej współpracuje z aplikacją, np. w PHP czy JavaScripcie, gdzie wartości logiczne są normalnym typem danych. To taka mała decyzja w projekcie tabeli, ale później oszczędza sporo bałaganu.

Wymagane logowanie

Ocenianie trudności pytań jest dostępne tylko dla zalogowanych użytkowników. Zaloguj się, aby skorzystać z pełni możliwości platformy.

Twoja ocena pomoże innym uczniom w przygotowaniu do egzaminu, a Tobie pozwoli na dostęp do spersonalizowanych statystyk.

Zgłoś błąd w pytaniu

Rozwiń sekcję i zmień pole, którego dotyczy błąd. Wysłane zostaną tylko zmienione sekcje.

Błędna kwalifikacja
Błąd w treści pytania
Błąd w treści odpowiedzi
Błąd w obrazie
Dane kontaktowe (opcjonalnie)
Podaj email, jeśli chcesz otrzymać informację o rozpatrzeniu zgłoszenia.