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

Słowa kluczowe: DCL w SQL DDL w SQL DML w SQL DQL w SQL SELECT w SQL

Do którego podzbioru języka SQL zalicza się polecenia START TRANSACTION, COMMIT i ROLLBACK, sterujące transakcjami?

A. SQL DML (ang. Data Manipulation Language).
Źle. DML to polecenia zmieniające dane w wierszach: INSERT, UPDATE, DELETE.
B. SQL DDL (ang. Data Definition Language).
Źle. DDL tworzy i zmienia strukturę bazy, na przykład CREATE TABLE.
C. SQL TCL (ang. Transaction Control Language).
Dobrze. TCL steruje transakcjami: COMMIT zatwierdza zmiany, a ROLLBACK je wycofuje.
D. SQL DCL (ang. Data Control Language).
Źle. DCL zarządza uprawnieniami użytkowników (GRANT, REVOKE).

Polecenia, które grupują operacje w transakcję i decydują o jej losie, tworzą podzbiór TCL (Transaction Control Language). START TRANSACTION otwiera transakcję, COMMIT zatwierdza wszystkie zmiany wykonane od jej początku, a ROLLBACK je wycofuje. Do tej grupy należy też SAVEPOINT, który zapisuje punkt pośredni.

Typowy przykład to przelew: zmniejszenie salda jednego konta i zwiększenie drugiego muszą wykonać się razem. Jeśli drugie UPDATE się nie powiedzie, ROLLBACK cofa pierwsze. W MySQL transakcje obsługuje silnik InnoDB, a bez jawnej transakcji każde polecenie zatwierdzane jest od razu (tryb autocommit).

Bez transakcji każda pomyłka w połowie operacji zostawiłaby bazę w niespójnym stanie.

Najczęściej myli się tu TCL z DML, bo transakcja obejmuje zwykle polecenia INSERT czy UPDATE. Te polecenia rzeczywiście należą do DML, ale COMMIT i ROLLBACK same niczego w wierszach nie zmieniają - decydują tylko, czy wcześniejsze zmiany zostaną utrwalone.

DDL to definiowanie struktury bazy: CREATE, ALTER, DROP. Z transakcjami łączy go tylko to, że w MySQL takie polecenie niejawnie zatwierdza otwartą transakcję. DCL zajmuje się uprawnieniami, czyli GRANT i REVOKE, i słowo Control w nazwie bywa tu mylące.

Sterowanie transakcją ma własną nazwę: Transaction Control Language, w skrócie TCL.

Dobrym sprawdzianem jest pytanie, co polecenie robi samo w sobie. Jeśli nie tworzy obiektów, nie zmienia wierszy i nie nadaje praw, a jedynie zamyka lub cofa rozpoczętą grupę operacji, to należy do sterowania transakcjami.

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.