Wykonując raport w systemie obsługi relacyjnych baz danych, umożliwia się
A. dodawanie danych w tabelach.
B. analizę wybranych danych.
C. aktualizowanie danych w tabelach.
D. usuwanie danych w tabelach.
Pytanie z egzaminu CKE, styczeń 2019 (arkusz E.14-X-19.01).
Raport w systemie obsługi relacyjnych baz danych służy przede wszystkim do prezentacji i analizy wybranych danych, więc odpowiedź o analizie jest właściwa. W praktyce raport pobiera dane najczęściej z tabel albo kwerend, czyli zapytań SELECT, a potem pokazuje je w czytelnej formie: tabeli, zestawienia, podsumowania, wydruku PDF czy wykresu. Można w nim grupować rekordy, liczyć sumy, średnie, filtrować zakres dat, sortować wyniki, np. przygotować raport sprzedaży za miesiąc, listę uczniów z ocenami albo zestawienie stanów magazynowych. Moim zdaniem to jest jedna z ważniejszych funkcji baz danych, bo sama baza przechowuje dane, ale raport pomaga wyciągnąć z nich sens. Zgodnie z dobrą praktyką raport nie powinien przypadkowo modyfikować danych produkcyjnych. Do zmian używa się formularzy, poleceń INSERT, UPDATE, DELETE albo specjalnych procedur z kontrolą uprawnień. Raport ma raczej wspierać decyzje, audyt i kontrolę poprawności informacji.
W tym pytaniu łatwo pomylić raport z innymi elementami systemu bazodanowego, bo wszystkie pracują na tych samych tabelach. Jednak raport nie jest narzędziem przeznaczonym do usuwania, dodawania ani aktualizowania rekordów. Takie operacje należą do modyfikacji danych, czyli do działań typu DML w SQL: INSERT dodaje rekordy, UPDATE zmienia istniejące wartości, a DELETE usuwa dane z tabeli. W aplikacjach robi się to zwykle przez formularze, kontrolki edycyjne, procedury składowane albo przygotowane zapytania, najlepiej z transakcjami i sprawdzaniem uprawnień użytkownika. Raport ma inną rolę: odczytuje dane i przedstawia je w uporządkowanej postaci. Może korzystać z zapytań SELECT, filtrów, sortowania, grupowania i agregacji, na przykład COUNT, SUM czy AVG. Typowy błąd myślowy polega na tym, że skoro raport pokazuje dane z tabel, to pewnie też pozwala je zmieniać. W dobrze zaprojektowanym systemie rozdziela się jednak odczyt od zapisu, bo to zwiększa bezpieczeństwo i zmniejsza ryzyko przypadkowego skasowania informacji. Z mojego doświadczenia, w firmowych bazach raporty często dostają nawet osobne konto tylko do odczytu, żeby użytkownik mógł analizować wyniki, ale nie zepsuł danych operacyjnych. To prosta, ale bardzo sensowna praktyka.