KWALIFIKACJA INF3 - STYCZEŃ 2015

PYTANIE NR 22.
W algebrze relacji operacja selekcji polega na
A.
B.
C.
D.
Wyjaśnienie poprawnej odpowiedzi:
Selekcja w algebrze relacji to operator filtrujący: zwraca tylko te krotki (wiersze) relacji, które spełniają podany warunek (predykat). Nie dotyczy "usuwania pustych wierszy", wartości NULL ani eliminowania duplikatów — to inne zagadnienia niż definicja selekcji.

Pełne wyjaśnienie:

W algebrze relacji selekcja (często zapisywana symbolem σ) jest operacją, która wybiera podzbiór krotek z danej relacji na podstawie warunku (predykatu). Wynikiem jest relacja o tym samym schemacie (tych samych atrybutach), ale zawierająca tylko te wiersze, które spełniają kryterium.

Odpowiedź "wybraniu krotek spełniających określone warunki" jest poprawna, bo opisuje dokładnie istotę operatora: filtrowanie rekordów według predykatu (np. "wiek > 18", "status = 'aktywny'"). W praktyce jest to odpowiednik idei klauzuli WHERE w SQL.

Pozostałe odpowiedzi są błędne, bo opisują inne problemy/operacje:

  • "wyeliminowaniu pustych wierszy" – w modelu relacyjnym nie ma standardowego pojęcia "pustego wiersza" jako celu selekcji; selekcja nie jest operacją czyszczącą dane, tylko wyborem na podstawie predykatu.
  • "wybraniu krotek niezawierających wartości NULL" – to szczególny przypadek filtrowania warunkiem (można zbudować predykat o braku NULL), ale nie stanowi definicji selekcji. Selekcja nie jest ograniczona do NULL i nie musi ich dotyczyć.
  • "wyeliminowaniu krotek z powtarzającymi się polami" – eliminacja duplikatów to odrębne zagadnienie (w zależności od formalizmu: własność relacji jako zbioru lub dodatkowe operatory). Nie jest to istota selekcji, bo selekcja nie porównuje wierszy między sobą, tylko sprawdza warunek dla każdego wiersza.

Wskazówka egzaminacyjna: jeśli w treści pojawia się "spełniające warunek", "filtr", "predykat", myśl o selekcji. Jeśli mowa o "wyborze kolumn", to zwykle projekcja, a jeśli o "duplikatach", to nie selekcja.

Dodatkowe pytania

Dodatkowe pytania (FAQ):
Selekcja to operacja, która zwraca tylko te krotki (wiersze) relacji, które spełniają zadany warunek (predykat). Nie zmienia zestawu kolumn, a jedynie filtruje rekordy. Wynikiem jest relacja o tym samym schemacie, ale z mniejszą liczbą wierszy.
Selekcja filtruje wiersze na podstawie warunku, np. "status = aktywny". Projekcja wybiera kolumny (atrybuty), np. tylko "imie, email". W skrócie: selekcja = które rekordy, projekcja = które pola w rekordach.
Bo oba mechanizmy realizują tę samą ideę: ograniczają wynik do rekordów spełniających predykat. W SQL zapisujesz warunek w WHERE, a w algebrze relacji opisujesz go jako selekcję. Różni się zapis formalny, ale cel filtrowania jest ten sam.
Nie "usuwa" NULL automatycznie. Selekcja jedynie wybiera wiersze spełniające warunek. Jeśli zbudujesz warunek typu "atrybut nie jest NULL", to w wyniku będą wiersze bez NULL w tym atrybucie, ale jest to efekt predykatu, a nie definicja selekcji.
Dla relacji Uzytkownicy(id, wiek, status) selekcja może zwrócić tylko osoby pełnoletnie, np. warunek "wiek >= 18". Wynik zawiera te same kolumny (id, wiek, status), ale tylko wiersze spełniające warunek, czyli przefiltrowanych użytkowników.
Gdy filtrujesz listy w systemie: zamówienia z danego dnia, produkty z ceną poniżej limitu, użytkowników o określonej roli. W warstwie bazy danych odpowiada temu zapytanie z warunkiem (np. WHERE), a na poziomie teorii można to opisać operacją selekcji.
Nie. Selekcja zachowuje schemat relacji (zestaw atrybutów) i zmienia tylko liczbę wierszy, bo filtruje rekordy według predykatu. Jeśli chcesz zmienić liczbę kolumn, używasz projekcji albo innych operacji, a nie selekcji.
Najczęściej myli się selekcję z projekcją (wiersze vs kolumny) oraz z "czyszczeniem danych" (usuwanie pustych wierszy, NULL, duplikatów). Pomaga zapamiętać: selekcja zawsze wiąże się z warunkiem logicznym i filtrowaniem rekordów.
Krotka to pojedynczy rekord relacji, czyli w praktyce jeden wiersz tabeli. Składa się z wartości atrybutów (kolumn). Operacja selekcji działa na zbiorze krotek, wybierając te, które spełniają predykat, np. warunek na wartościach w kolumnach.
Ćwicz rozpoznawanie operatorów po opisie: selekcja = warunek/filtr, projekcja = wybór kolumn, złączenie = łączenie relacji. Rób krótkie zadania: zapisz opis słowny jako wyrażenie algebry relacji, a potem spróbuj przetłumaczyć je na SQL.
info

Około 57% zdających odpowiada poprawnie na to pytanie. średnie

W praktyce zawodowej kluczowe jest to, że selekcja w algebrze relacji to operator filtrujący: zwraca tylko te krotki (wiersze) relacji, które spełniają podany warunek (predykat).

Źródła:

  • Silberschatz, Korth, Sudarshan, "Database System Concepts" (rozdział o algebrze relacji – operator selekcji), wydania nowsze
  • Ramakrishnan, Gehrke, "Database Management Systems" (część o algebrze relacji i operatorach selekcji/projekcji), wydania nowsze
  • Elmasri, Navathe, "Fundamentals of Database Systems" (rozdziały o modelu relacyjnym i algebrze relacji – definicja selekcji), wydania nowsze

Materiały:

  • Podręczniki akademickie z baz danych (model relacyjny i algebra relacji)
  • Materiały kursowe o algebrze relacji i mapowaniu na SQL
  • Zadania praktyczne: tłumaczenie wyrażeń algebry relacji na zapytania SQL

Aktualizacja pytania: 31.03.2026



Aktualizacja pytania: 31.03.2026
📡 Brak połączenia internetowego