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: Programowanie webowe Bazy danych

Który z obiektów relacyjnej bazy danych, będący kodem języka SQL, może być wywoływany w zapytaniach modyfikujących kolumny danych widoczne jako tabela, bez względu na to, czy jest tworzony programowo, czy dynamicznie?

A. Funkcja zdefiniowana.
Dobrze. Funkcja zwraca wartość, więc można ją wywołać w SELECT, WHERE czy UPDATE.
B. Reguła.
Źle. Reguła przepisuje zapytanie albo pilnuje poprawności danych, nie wywołuje się jej w zapytaniu.
C. Procedura składowana.
Źle. Procedurę składowaną uruchamia się osobno poleceniem CALL, a nie wewnątrz zapytania.
D. Wyzwalacz.
Źle. Wyzwalacz uruchamia się automatycznie przy zmianie danych w tabeli, nie wywołuje go zapytanie.

Pytanie z egzaminu CKE, czerwiec 2014 (arkusz E.14-X-14.05).

Poprawna jest odpowiedź „funkcja zdefiniowana”, czyli funkcja napisana przez użytkownika bazy. Jej wyróżnikiem jest to, że zwraca wartość, więc można ją wywołać wewnątrz zapytania, tak jak funkcje wbudowane: w liście kolumn SELECT, w warunku WHERE albo w UPDATE ... SET. Funkcja może zwracać pojedynczą wartość albo cały zestaw wierszy, który zapytanie traktuje jak tabelę.

Do zapamiętania: w MySQL funkcję tworzy się poleceniem CREATE FUNCTION z klauzulą RETURNS, np. funkcja brutto(cena) wywoływana jako SELECT nazwa, brutto(cena) FROM towary;. Procedurę uruchamia się osobno, poleceniem CALL, a wyzwalacz uruchamia się sam przy zmianie danych.

Każda z błędnych odpowiedzi to obiekt bazy zapisany w SQL, ale żadnego z nich nie wstawia się do zapytania jak wyrażenia. Wyzwalacz (trigger) nie jest w ogóle wywoływany przez użytkownika: serwer uruchamia go automatycznie, gdy w tabeli zajdzie INSERT, UPDATE lub DELETE. Procedura składowana to zapisany na serwerze zestaw instrukcji, który wykonuje się poleceniem CALL nazwa(). Może zmieniać dane i zwracać wyniki przez parametry, ale nie da się jej użyć wewnątrz SELECT czy WHERE.

Reguła to mechanizm niektórych serwerów (np. PostgreSQL), który przepisuje zapytanie przed wykonaniem, albo po prostu warunek poprawności danych. Też nie jest kodem wywoływanym w zapytaniu. Kluczem do pytania są słowa „może być wywoływany w zapytaniach” - tę cechę ma tylko funkcja, bo zwraca wartość, którą zapytanie od razu wykorzystuje.

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.