Podcast
Questions and Answers
Który z poniższych elementów nie jest obecny w grafie pierwszeństwa używanym do testowania szeregowalności harmonogramu?
Który z poniższych elementów nie jest obecny w grafie pierwszeństwa używanym do testowania szeregowalności harmonogramu?
- Węzeł reprezentujący każdą transakcję.
- Krawędź skierowana od Ti do Tj, jeśli Tj zapisuje wartość po przeczytaniu jej przez Ti.
- Krawędź skierowana od Ti do Tj, jeśli Tj czyta wartość zapisaną przez Ti.
- Krawędź skierowana od Ti do Tj, jeśli Tj zapisuje wartość po usunięciu jej przez Ti. (correct)
Co oznacza obecność cyklu w grafie pierwszeństwa?
Co oznacza obecność cyklu w grafie pierwszeństwa?
- Harmonogram jest szeregowalny, ponieważ transakcje są wykonywane w kolejności zdefiniowanej w cyklu.
- Harmonogram jest szeregowalny, ponieważ cykl reprezentuje prawidłową kolejność zapisu i odczytu danych.
- Harmonogram **nie** jest szeregowalny, ponieważ cykl oznacza konflikt między transakcjami, który narusza spójność danych. (correct)
- Obecność cyklu w grafie pierwszeństwa nie jest istotna dla szeregowalności harmonogramu.
Który z poniższych protokołów harmonogramowania jest bardziej optymistyczny?
Który z poniższych protokołów harmonogramowania jest bardziej optymistyczny?
- Protokół pesymistyczny.
- Oba protokoły są równie optymistyczne.
- Nie ma możliwości określenia optymizmu protokołów harmonogramowania.
- Protokół optymistyczny. (correct)
W jakiej sytuacji protokół pesymistyczny może prowadzić do zmniejszenia przepustowości?
W jakiej sytuacji protokół pesymistyczny może prowadzić do zmniejszenia przepustowości?
Jak można scharakteryzować protokół pesymistyczny w kontekście harmonogramowania?
Jak można scharakteryzować protokół pesymistyczny w kontekście harmonogramowania?
Które z poniższych operacji NIE są rejestrowane w pliku dziennika?
Które z poniższych operacji NIE są rejestrowane w pliku dziennika?
Które z poniższych działań jest realizowane w przypadku awarii systemu?
Które z poniższych działań jest realizowane w przypadku awarii systemu?
Co to jest punkt kontrolny (checkpoint) w kontekście pliku dziennika?
Co to jest punkt kontrolny (checkpoint) w kontekście pliku dziennika?
Jaki jest cel 'before images' w pliku dziennika?
Jaki jest cel 'before images' w pliku dziennika?
Które z poniższych stwierdzeń dotyczących strategii zapisu do przodu (write ahead log) jest fałszywe?
Które z poniższych stwierdzeń dotyczących strategii zapisu do przodu (write ahead log) jest fałszywe?
Który z poniższych typów awarii nie wymaga odtwarzania danych z pliku dziennika?
Który z poniższych typów awarii nie wymaga odtwarzania danych z pliku dziennika?
Jaki jest główny cel pliku dziennika w kontekście zarządzania transakcjami?
Jaki jest główny cel pliku dziennika w kontekście zarządzania transakcjami?
Dlaczego plik dziennika jest niezbędny w zarządzaniu transakcjami?
Dlaczego plik dziennika jest niezbędny w zarządzaniu transakcjami?
Jaki jest wpływ strategii opróżniania bufora bazy danych na odtwarzanie systemu?
Jaki jest wpływ strategii opróżniania bufora bazy danych na odtwarzanie systemu?
Jakie są główne rodzaje awarii systemów baz danych?
Jakie są główne rodzaje awarii systemów baz danych?
Które z poniższych stwierdzeń nie jest prawdziwe w odniesieniu do protokołu 2PL (dwufazowego blokowania)?
Które z poniższych stwierdzeń nie jest prawdziwe w odniesieniu do protokołu 2PL (dwufazowego blokowania)?
W rygorystycznym wariancie protokołu 2PL (Rigorous 2PL), kiedy transakcja zwalnia swoje blokady?
W rygorystycznym wariancie protokołu 2PL (Rigorous 2PL), kiedy transakcja zwalnia swoje blokady?
Które z poniższych stwierdzeń najlepiej opisuje zaletę statycznego 2PL (Static 2PL) nad rygorystycznym 2PL (Rigorous 2PL)?
Które z poniższych stwierdzeń najlepiej opisuje zaletę statycznego 2PL (Static 2PL) nad rygorystycznym 2PL (Rigorous 2PL)?
Problem "utraconej aktualizacji" (Lost Update Problem) występujący przy blokowaniu, wynika z:
Problem "utraconej aktualizacji" (Lost Update Problem) występujący przy blokowaniu, wynika z:
Jaki jest podstawowy problem związany z "niezatwierdzonymi zależnościami" (Uncommitted Dependency Problem) w kontekście blokowania?
Jaki jest podstawowy problem związany z "niezatwierdzonymi zależnościami" (Uncommitted Dependency Problem) w kontekście blokowania?
Kaskadowe wycofywanie (Cascading Rollback) jest stosowane, aby rozwiązać problem:
Kaskadowe wycofywanie (Cascading Rollback) jest stosowane, aby rozwiązać problem:
Które z poniższych stwierdzeń najlepiej opisuje, kiedy kaskadowe wycofywanie jest konieczne?
Które z poniższych stwierdzeń najlepiej opisuje, kiedy kaskadowe wycofywanie jest konieczne?
Jaki jest główny minus kaskadowego wycofywania?
Jaki jest główny minus kaskadowego wycofywania?
Które z poniższych działań najlepiej zapobiega kaskadowemu wycofywaniu?
Które z poniższych działań najlepiej zapobiega kaskadowemu wycofywaniu?
Który z poniższych protokołów blokowania najlepiej radzi sobie z problemem "niezatwierdzonych zależności"?
Który z poniższych protokołów blokowania najlepiej radzi sobie z problemem "niezatwierdzonych zależności"?
Jeśli transakcja T1 uzyskuje wyłączną blokadę na obiekt A, a transakcja T2 próbuje uzyskać współdzieloną blokadę na ten sam obiekt A, co się stanie?
Jeśli transakcja T1 uzyskuje wyłączną blokadę na obiekt A, a transakcja T2 próbuje uzyskać współdzieloną blokadę na ten sam obiekt A, co się stanie?
Które z poniższych stwierdzeń nie jest prawdziwe w odniesieniu do "zagłodzenia" (Starvation) w kontekście zarządzania blokadami?
Które z poniższych stwierdzeń nie jest prawdziwe w odniesieniu do "zagłodzenia" (Starvation) w kontekście zarządzania blokadami?
Jakie są dwa główne warianty protokołu 2PL?
Jakie są dwa główne warianty protokołu 2PL?
Jaki jest główny powód używania tabeli blokad przez menadżera blokad?
Jaki jest główny powód używania tabeli blokad przez menadżera blokad?
W jakim przypadku "uczciwość" (fairness) w planowaniu transakcji jest szczególnie ważna?
W jakim przypadku "uczciwość" (fairness) w planowaniu transakcji jest szczególnie ważna?
Które z poniższych stwierdzeń najlepiej opisuje problem zakleszczenia (Deadlock)?
Które z poniższych stwierdzeń najlepiej opisuje problem zakleszczenia (Deadlock)?
Co oznacza atomowość (Atomicity) w kontekście transakcji?
Co oznacza atomowość (Atomicity) w kontekście transakcji?
Jaką odpowiedzialność posiada deweloper w kontekście spójności (Consistency) transakcji?
Jaką odpowiedzialność posiada deweloper w kontekście spójności (Consistency) transakcji?
Izolacja (Isolation) w transakcjach oznacza, że:
Izolacja (Isolation) w transakcjach oznacza, że:
Które z poniższych stwierdzeń opisuje trwałość (Durability) transakcji?
Które z poniższych stwierdzeń opisuje trwałość (Durability) transakcji?
Jak powinny być zwalniane blokady według protokołu MGL?
Jak powinny być zwalniane blokady według protokołu MGL?
Co powoduje zakleszczenie w systemie transakcji?
Co powoduje zakleszczenie w systemie transakcji?
Jak można zapobiec zakleszczeniu w systemie transakcji?
Jak można zapobiec zakleszczeniu w systemie transakcji?
Czym jest graf oczekiwań w kontekście zakleszczeń?
Czym jest graf oczekiwań w kontekście zakleszczeń?
Jakie są cechy blokady długoterminowej?
Jakie są cechy blokady długoterminowej?
Który poziom izolacji jest najniższy i nie uwzględnia długoterminowych blokad?
Który poziom izolacji jest najniższy i nie uwzględnia długoterminowych blokad?
Jakie konsekwencje wiążą się z użyciem krótkoterminowych blokad?
Jakie konsekwencje wiążą się z użyciem krótkoterminowych blokad?
Dlaczego ograniczona ilość inferencji może być akceptowalna w systemach transakcji?
Dlaczego ograniczona ilość inferencji może być akceptowalna w systemach transakcji?
Co wykazuje obecność cyklu w grafie oczekiwań?
Co wykazuje obecność cyklu w grafie oczekiwań?
Jakie są główne zalety stosowania protokołu wielokrotnej ziarnistości (MGL)?
Jakie są główne zalety stosowania protokołu wielokrotnej ziarnistości (MGL)?
Który z wymienionych typów blokad koliduje tylko z blokadami wyłącznymi (x-lock)?
Który z wymienionych typów blokad koliduje tylko z blokadami wyłącznymi (x-lock)?
Która reguła musi być spełniona, aby transakcja mogła uzyskać s-lock na obiekcie x?
Która reguła musi być spełniona, aby transakcja mogła uzyskać s-lock na obiekcie x?
Jakie ograniczenie wprowadza protokół MGL dla dodatkowych blokad?
Jakie ograniczenie wprowadza protokół MGL dla dodatkowych blokad?
Jakie jest zadanie blokady intencyjnej do zapisu (ix-lock)?
Jakie jest zadanie blokady intencyjnej do zapisu (ix-lock)?
Jak powinny być umieszczane blokady intencji na większych ziarnistościach obiektów?
Jak powinny być umieszczane blokady intencji na większych ziarnistościach obiektów?
Które blokady są w konflikcie ze wszystkimi innymi typami blokad, z wyjątkiem is-lock?
Które blokady są w konflikcie ze wszystkimi innymi typami blokad, z wyjątkiem is-lock?
Co stanowi główną cechę protokołu wielokrotnej ziarnistości w kontekście relacji między transakcjami?
Co stanowi główną cechę protokołu wielokrotnej ziarnistości w kontekście relacji między transakcjami?
Flashcards
Atomowość (Atomicity)
Atomowość (Atomicity)
Zapewnia, że operacje w transakcji są traktowane jako jedna jednostka, niepodzielna.
Spójność (Consistency)
Spójność (Consistency)
Transakcja przekształca bazę z jednego spójnego stanu w inny spójny stan.
Izolacja (Isolation)
Izolacja (Isolation)
Wiele transakcji działa tak, jakby były wykonywane oddzielnie.
Trwałość (Durability)
Trwałość (Durability)
Signup and view all the flashcards
Protokół MGL
Protokół MGL
Signup and view all the flashcards
Zakleszczenie
Zakleszczenie
Signup and view all the flashcards
Graf oczekiwań
Graf oczekiwań
Signup and view all the flashcards
Cykl w grafie
Cykl w grafie
Signup and view all the flashcards
Rygorystyczne 2PL
Rygorystyczne 2PL
Signup and view all the flashcards
Blokada długoterminowa
Blokada długoterminowa
Signup and view all the flashcards
Blokada krótkoterminowa
Blokada krótkoterminowa
Signup and view all the flashcards
Niezatwierdzony odczyt
Niezatwierdzony odczyt
Signup and view all the flashcards
Poziom izolacji
Poziom izolacji
Signup and view all the flashcards
Aktualizacja salda
Aktualizacja salda
Signup and view all the flashcards
Zarządzanie transakcjami
Zarządzanie transakcjami
Signup and view all the flashcards
Plik dziennika
Plik dziennika
Signup and view all the flashcards
Punkty kontrolne
Punkty kontrolne
Signup and view all the flashcards
Strategia zapisu dziennika do przodu
Strategia zapisu dziennika do przodu
Signup and view all the flashcards
Rodzaje awarii
Rodzaje awarii
Signup and view all the flashcards
Odtwarzanie systemu
Odtwarzanie systemu
Signup and view all the flashcards
Obrazy przed (before images)
Obrazy przed (before images)
Signup and view all the flashcards
Obrazy po (after images)
Obrazy po (after images)
Signup and view all the flashcards
Strategia UNDO / REDO
Strategia UNDO / REDO
Signup and view all the flashcards
Ziarnistość blokad
Ziarnistość blokad
Signup and view all the flashcards
is-lock
is-lock
Signup and view all the flashcards
ix-lock
ix-lock
Signup and view all the flashcards
six-lock
six-lock
Signup and view all the flashcards
Hierarchiczne blokowanie
Hierarchiczne blokowanie
Signup and view all the flashcards
Kompatybilność w macierzy
Kompatybilność w macierzy
Signup and view all the flashcards
Zasady uzyskiwania blokad
Zasady uzyskiwania blokad
Signup and view all the flashcards
Graf pierwszeństwa
Graf pierwszeństwa
Signup and view all the flashcards
Harmonogram nie szeregowalny
Harmonogram nie szeregowalny
Signup and view all the flashcards
Protokół optymistyczny
Protokół optymistyczny
Signup and view all the flashcards
Protokół pesymistyczny
Protokół pesymistyczny
Signup and view all the flashcards
Planowanie transakcji
Planowanie transakcji
Signup and view all the flashcards
Menadżer blokad
Menadżer blokad
Signup and view all the flashcards
Protokół dwufazowego blokowania (2PL)
Protokół dwufazowego blokowania (2PL)
Signup and view all the flashcards
Faza wzrostu
Faza wzrostu
Signup and view all the flashcards
Faza zmniejszania
Faza zmniejszania
Signup and view all the flashcards
Statyczny 2PL
Statyczny 2PL
Signup and view all the flashcards
Problem utraconej aktualizacji
Problem utraconej aktualizacji
Signup and view all the flashcards
Problem niezatwierdzonych zależności
Problem niezatwierdzonych zależności
Signup and view all the flashcards
Kaskadowe wycofywanie
Kaskadowe wycofywanie
Signup and view all the flashcards
Czas w transakcji
Czas w transakcji
Signup and view all the flashcards
Blokada wyłączająca (x-lock)
Blokada wyłączająca (x-lock)
Signup and view all the flashcards
Transakcja
Transakcja
Signup and view all the flashcards
Commit
Commit
Signup and view all the flashcards
Rollback
Rollback
Signup and view all the flashcards
Study Notes
Plan
- Transakcje, odtwarzanie i kontrola współbieżności
- Transakcje i zarządzanie transakcjami
- Odtwarzanie
- Kontrola współbieżności
- Własności ACID transakcji
Transakcje, odtwarzanie i kontrola współbieżności
- Większość baz danych przeznaczonych dla wielu użytkowników (multi user databases)
- Równoczesny dostęp do tych samych danych może powodować anomalie
- Błędy mogą wystąpić w DBMS lub jego środowisku
- DBMS musi wspierać własności ACID (Atomicity, Consistency, Isolation, Durability)
Transakcje, odtwarzanie i kontrola współbieżności
- Transakcja to zbiór operacji bazy danych wywoływany przez użytkownika lub aplikację, traktowany jako jedna niepodzielna jednostka pracy (np. transfer między rachunkami bankowymi)
- Transakcja powinna zakończyć się sukcesem lub niepowodzeniem w całości
- Transakcja przenosi bazę danych ze stanu spójnego do innego stanu spójnego
Rodzaje błędów
- Awaria dysku twardego
- Awaria aplikacji/DBMS
- Dzielenie przez 0
- Inne błędy
Odtwarzanie
- działanie polegające na przywróceniu bazy danych do spójnego stanu po awarii bez utraty danych, niezależnie od źródła problemu
- Awaria transakcji z błędów logicznych
- Awaria systemu operacyjnego
- Awaria nośnika
Odtwarzanie systemu
- W przypadku awarii systemu występują dwa rodzaje transakcji: te, które osiągnęły zatwierdzenie i te, które są nadal aktywne.
- Plik dziennika jest niezbędny do uwzględnienia aktualizacji i śledzenia zmian, do odtworzenia stanu bazy danych przy użyciu operacji UNDO i REDO.
- Strategia opróżniania bufora bazy danych wpływa na operacje UNDO i REDO
Odtwarzanie systemu (graf)
- Punkt kontrolny (checkpoint) oznacza moment opróżnienia bufora przez menadżera bufora bazy danych na dysk.
- W przypadku awarii systemowej, operacje REDO i UNDO umożliwiają odtworzenie bazy danych do ostatniego punktu kontrolnego.
Odtwarzanie nośników
- Odzyskiwanie nośników opiera się na pewnym typie nadmiarowości danych
- Dwa rodzaje odzyskiwania nośników: mirroring dysku i archiwizacja
- Kompromis między kosztami utrzymania danych a czasem potrzebnym na przywrócenie systemu
Mirroring dysku
- podejście w czasie rzeczywistym, w którym dane są zapisywane na dwóch dyskach
- ograniczony czas przełączania awaryjnego, ale droższe niż archiwizacja
- negatywny wpływ na wydajność zapisu, ale możliwość równoległego dostępu do odczytu
Archiwizacja
- okresowe kopiowanie danych na inne nośniki (np. taśma, dysk twardy).
- kompromis między częstotliwością kopii zapasowych a kosztem utraty danych
- pełna lub przyrostowa kopia zapasowa
Kontrola współbieżności
- Typowe problemy z interferencją w współbieżności.
- Harmonogramy i harmonogramy seryjne
- Harmonogramy serializowalne
- Harmonogramy optymistyczne i pesymistyczne
- Blokowania i protokoły blokowania
Typowe problemy ze współbieżnością
- Scheduler odpowiada za planowanie wykonywania transakcji i ich operacji.
- Proste wykonanie seryjne byłoby bardzo nieefektywne.
- Scheduler zapewnia, że operacje transakcji mogą być wykonywane z przeplotem.
- Problem utraconej aktualizacji: udana aktualizacja danych przez transakcję jest nadpisywana przez inną transakcję, która nie była świadoma pierwszej aktualizacji.
Typowe problemy ze współbieżnością - kontynuacja
- Problem niezatwierdzonych zależności (uncommitted dependency problem/dirty read problem): Transakcja odczytuje dane, które są aktualizowane przez inną, wciąż niezatwierdzoną transakcję.
- Problem analizy niespójności (incosistent analysis problem): Transakcja odczytuje częściowe wyniki innej transakcji, która równolegle działa na tych samych danych.
- Niepowtarzalny odczyt (nonrepeatable read): Transakcja odczytuje ten sam wiersz wiele razy, ale uzyskuje różne wartości, ponieważ inna transakcja zaktualizowała ten wiersz w międzyczasie.
- Odczyt fantomów (phantom reads): Transakcja wykonuje operacje na wstawieniach lub usunięciach wierszy odczytanych przez inną transakcję.
Harmonogramy i harmonogramy szeregowe
- Definiowanie harmonogramu S jako zbioru n transakcji i sekwencyjne uporządkowanie instrukcji tych transakcji. Własność: instrukcja s₁ poprzedzająca s₂ w T musi nastąpić przed s₂ w S.
Harmonogramy szeregowalne
- Harmonogram S jest szeregowy, jeżeli wszystkie instrukcje samej transakcji T są zaplanowane kolejno bez przeplotu z instrukcjami z innej transakcji. Szeregowe harmonogramy uniemożliwiają równoległe wykonywanie transakcji. Potrzeba nieszeregowych poprawnych harmonogramów.
Harmonogramy szeregowalne (graf pierwszeństwa)
- Graf pierwszeństwa do testowania harmonogramu pod kątem szeregowalności: węzły dla transakcji, krawędzie (T1 → T2) jeśli T2 odczytuje/zapisuje po zapisaniu przez T1. Cykl w grafie oznacza nieszeregowalność.
Harmonogramy optymistyczne i pesymistyczne
- Scheduler wykorzystuje protokół harmonogramowania. Protokoły: optymistyczny i pesymistyczny.
- Protokuł optymistyczny: konflikty rzadkie, operacje transakcji planowane bez opóźnień, weryfikacja konfliktów po zakończeniu transakcji.
- Protokuł pesymistyczny: konflikty prawdopodobne, operacje opóźnione do czasu możliwej kompatybilności
Blokowanie i protokoły blokowania
- Cele blokowania, Two-Phase Locking Protocol (2PL), Kaskadowe wycofywania (Cascading Rollbacks), Radzenie sobie z zakleszczeniami (Deadlocks), Poziomy izolacji, Ziarnistość blokad
- Blokada na wyłączność (x-lock) i współdzielona (s-lock). Macierz kompatybilności
Protokół dwufazowego blokowania (2PL)
- Protokół 2PL: faza wzrostu (uzyskiwanie blokad), faza zmniejszania (zwalnianie blokad). Rygorystyczny i Statyczny 2PL
Protokół dwufazowego blokowania (2PL) - problemy
- Problem utraconej aktualizacji i niezatwierdzonych zależności z blokowaniem. Ilustracja z przykładami i tabelami przedstawiające problem.
Kaskadowe wycofywania
- Problemy z niezatwierdzonymi zależnościami.
- Algorytmy radzenia sobie z nimi w protokole 2PL
Radzenie sobie z zakleszczeniami
- Zapobieganie zakleszczeniom za pomocą statycznego 2PL.
- Wykrywanie i rozwiązywanie zakleszczeń (graf oczekiwań).
Poziomy izolacji
- Niezatwierdzony odczyt (Read uncommited)
- Odczyt zatwierdzonych danych (Read committed)
- Powtarzalne odczyty (Repeatable read)
- Serializowalny (Serializable)
- Tabela porównawcza poziomów izolacji
Ziarnistość blokad
- Wielkość blokowanych obiektów (krotka, kolumna, tabela), kompromis między kosztem blokowania a wydajnością transakcji w wielu DBMS. Protokół wielokrotnej ziarnistości (MGL)
Ziarnistość blokad (kontynuacja)
- Protokół MGL wprowadza dodatkowe blokady intencyjne (is-lock, ix-lock, itd) dla skoordynowanego dostępu do różnych poziomów ziarnistości. Tabela kompatybilności dla MGL.
Własności ACID transakcji
- Atomicity (atomowość), Consistency (spójność, utrzymanie spójnego stanu bazy danych), Isolation (izolacja, oddzielność transakcji), Durability (trwałość, wynik transakcji na stałe w bazie danych).
Studying That Suits You
Use AI to generate personalized quizzes and flashcards to suit your learning preferences.