KWALIFIKACJA INF3 - STYCZEŃ 2024 (test 2)

PYTANIE NR 18.
Jednym z pól tabeli ksiazki jest status czyWypozyczona przyjmujący dwie wartości true lub false. Optymalny typ dla tego pola, to
A.
B.
C.
D.
Wyjaśnienie poprawnej odpowiedzi:
Pole, które może przyjąć tylko dwie wartości logiczne (prawda/fałsz), powinno mieć typ logiczny.
Typ BOOLEAN jest do tego przeznaczony i ogranicza zakres do dwóch stanów. Typy liczbowe (DOUBLE) oraz tekstowe (CHAR, VARCHAR) są mniej optymalne, bo dopuszczają więcej wartości i zwykle zajmują więcej miejsca.

Pełne wyjaśnienie:

Jeżeli atrybut tabeli może przyjmować wyłącznie dwie wartości: true albo false, to semantycznie jest to informacja logiczna (tak/nie). Najlepszym doborem typu jest więc BOOLEAN, bo:

  • odzwierciedla znaczenie pola (wartość logiczna),
  • ułatwia walidację i czytelność schematu,
  • ogranicza ryzyko zapisu niepoprawnych danych (np. przypadkowego tekstu).

Odpowiedź DOUBLE jest niepoprawna, ponieważ jest to typ liczbowy zmiennoprzecinkowy służący do wartości ułamkowych. Użycie go do stanu wypożyczenia nie jest optymalne: dopuszcza ogromny zakres liczb, a wartości 0/1 to tylko umowa, która nie niesie jednoznacznej semantyki.

Odpowiedź CHAR (stała długość) także nie jest optymalna. Wymuszałaby zapis tekstu (np. 'T'/'N' lub 'true'/'false'), co jest mniej wygodne w zapytaniach i podatne na niespójności (różne warianty zapisu, wielkość liter, spacje).

Odpowiedź VARCHAR(5) wygląda kusząco, bo słowo "false" ma 5 znaków, ale to nadal typ tekstowy. Pozwala na wiele innych wartości (np. 'abc'), a dodatkowo wybór długości na podstawie aktualnych napisów jest kruchy (zależy od konwencji). W projektowaniu baz danych dobiera się typ do dziedziny wartości, a nie do przypadkowego sposobu zapisu.

W praktyce spotyka się też implementacje, w których BOOLEAN jest mapowany na mały typ liczbowy, ale z punktu widzenia projektowania i czytelności schematu nadal właściwą odpowiedzią egzaminacyjną jest typ logiczny.

Dodatkowe pytania

Dodatkowe pytania (FAQ):

BOOLEAN to typ danych przeznaczony do przechowywania wartości logicznych: prawda/fałsz.

Stosuje się go dla pól opisujących stan, np. czy rekord jest aktywny, czy element jest dostępny, czy książka jest wypożyczona.

VARCHAR przechowuje tekst, więc dopuszcza dowolne napisy, nie tylko true/false.

To zwiększa ryzyko błędów (np. literówki, różne warianty zapisu) i zwykle jest mniej wydajne niż typ logiczny.

Tak, często spotyka się zapis 0/1 jako umowną reprezentację fałsz/prawda.

Jednak w projektowaniu schematu lepiej używać typu logicznego, bo poprawia czytelność i jasno określa dziedzinę wartości.

BOOLEAN lepiej opisuje znaczenie danych i ogranicza zakres do dwóch stanów.

DOUBLE jest typem zmiennoprzecinkowym do liczb ułamkowych, dopuszcza wiele wartości i nie jest semantycznie związany ze stanem tak/nie.

CHAR stosuje się do krótkich, stałej długości kodów tekstowych (np. identyfikatory, symbole), a nie do logiki.

Dla pól true/false użycie CHAR wymaga umownego kodowania i bywa źródłem niespójności danych.

W wielu systemach baz danych w definicji tabeli podaje się typ BOOLEAN (lub równoważny).

Warto pamiętać, że szczegóły składni i implementacji mogą zależeć od konkretnego silnika bazy danych.

Nie zawsze. Część systemów ma typ logiczny, a część realizuje go jako synonim małego typu liczbowego lub przez reguły dopasowania typów.

Na egzaminie zwykle liczy się dobór właściwej dziedziny: true/false → BOOLEAN.

Najczęściej wybiera się typ tekstowy, bo wartości są kojarzone ze słowami "true" i "false".

Drugim błędem jest wybór typu liczbowego "na wszelki wypadek" zamiast typu odpowiadającego ograniczonej dziedzinie.

To typ, który najlepiej pasuje do dziedziny danych: minimalizuje ryzyko błędów, jest czytelny i zwykle wydajniejszy.

Dla dwóch stanów logicznych optymalny jest typ logiczny, a nie tekst lub liczby zmiennoprzecinkowe.

Ćwicz mapowanie dziedzin na typy: liczby całkowite → INT, tekst → VARCHAR, data → DATE, true/false → BOOLEAN.

Rozwiązuj zadania z tworzenia tabel i analizuj, jakie wartości mogą realnie trafić do kolumny.

info

Około 81% zdających odpowiada poprawnie na to pytanie. średnio łatwe

W praktyce zawodowej kluczowe jest to, że pole, które może przyjąć tylko dwie wartości logiczne (prawda/fałsz), powinno mieć typ logiczny.Typ BOOLEAN jest do tego przeznaczony i ogranicza zakres do dwóch stanów.

Źródła:

  • MySQL 8.0 Reference Manual: Data Types - Boolean Type (BOOL, BOOLEAN), https://dev.mysql.com/doc/refman/8.0/en/boolean-literals.html (dostęp: 2026-03-01)
  • PostgreSQL Documentation: Data Types - Boolean Type, https://www.postgresql.org/docs/current/datatype-boolean.html (dostęp: 2026-03-01)
  • SQLite Documentation: Datatypes in SQLite (type affinity; brak natywnego BOOLEAN), https://www.sqlite.org/datatype3.html (dostęp: 2026-03-01)

Materiały:

  • Dokumentacja systemu bazy danych używanego na zajęciach (sekcja o typach danych)
  • Materiały z projektowania relacyjnych baz danych (dobór typów, normalizacja)
  • Ćwiczenia SQL: tworzenie tabel i dobór typów pól

Aktualizacja pytania: 31.03.2026



Aktualizacja pytania: 31.03.2026
📡 Brak połączenia internetowego