Opracowanie ćwiczeń dotyczących zapewniania niezawodności baz danych na przykładzie Oracle Opiekun : dr inż. Agnieszka Landowska Dyplomant : Tomasz Krzyżanowski
Cel pracy Celem pracy było rozpoznanie metod zapewniania niezawodności baz danych (od strony programisty, NIE administratora) w aplikacjach z dużymi wymaganiami jakościowymi, ze szczególnym uwzględnieniem bazy danych Oracle, Opracowanie przykładów i ćwiczeń związanych z zapewnianiem niezawodności.
Zadania do wykonania 1. Praktyczne rozpoznanie mechanizmów zapewniania niezawodności baz danych z punktu widzenia ich programisty. 2. Analiza mechanizmów zapewniania niezawodności bazy danych Oracle. 3. Opracowanie zestawów przykładów i ćwiczeń związanych z niezawodnością baz danych. 4. Opracowanie zestawu zaleceń i reguł (dobrych praktyk) związanych z niezawodnością baz danych.
Plan pracy Identyfikacja problemów związanych z niezawodnością Zaproponowanie paru rozwiązań dla każdego z problemów Implementacja rozwiązań Porównanie rozwiązań GQM Lista dobrych praktyk Opracowanie ćwiczeń
Lista problemów i rozwiązań P1. Monitorowanie zmian danych R1. Zapisywanie wszystkich zmian danych do jednej tabeli logującej R2. Wykorzystanie kontroli wersji do śledzenia zmian w konfiguracji R3. Wykorzystanie zmodyfikowanego dziennika widoku zmaterializowanego P2. Replikacja danych z poziomu programisty R1. Podstawowe operacje bazodanowe DML wykonywane jednocześnie w dwóch lokalizacjach R2. Wykorzystanie mechanizmu wyzwalaczy dla podstawowych operacji bazodanowych R3. Mechanizm perspektywy zmaterializowanej
Lista problemów i rozwiązań P3. Struktura uprawnień i kontrola użytkowników R1. Dane aplikacji przechowywane w tabelach bazy danych w osobnym schemacie R2. Wykorzystanie warstwy dostępu do danych w postaci widoków R3. Wykorzystanie warstwy dostępu do danych w postaci pakietów PL/SQL P4. Zachowanie aplikacji podczas niedostępności bazy danych P5. Połączenie z bazą danych z poziomu aplikacji i sposoby przeprowadzania transakcji w ramach tych połączeń
Przykład – definicja problemu P1. Monitorowanie zmian danych Historia zmian Możliwość odtworzenia Zabezpieczenie przed błędami użytkownika Zabezpieczenie przed umyślnymi atakami
GQM dla problemu GQM Cel (G) – Przeanalizować przestrzeń rozwiązań problemu monitorowania zmian danych z perspektywy programisty baz danych w środowisku Oracle, by zapewnić najbardziej efektywny mechanizm danego problemu. Pytania (Q) i metryki (M) Q1 : Jaka jest złożoność rozwiązania? – M1 : Linie kodu utworzonego rozwiązania [LOC] – M2 : Linie kodu mechanizmu odtwarzania [LOC] Q2 : Jaka jest zajętość pamięci? – M3 : Oszacowanie liczby wierszy tabel ze zmianami dla przykładowych wartości [liczba naturalna] – M4 : Oszacowanie średniego rozmiaru wiersza tabel ze zmianami dla przykładowych wartości [liczba naturalna] Q3 : Jaka jest wydajność rozwiązania? – M5 : Narzut czasowy wykonania operacji zmiany danych [s] – M6 : Czas wyszukania zmiany [s] – M7 : Czas odtwarzania [s]
Eksperyment Problem monitorowania zmian danych Porównanie dwóch wariantów rozwiązania R1. Zapisywanie wszystkich zmian danych do jednej tabeli logującej – R1.a - Zmiana wartości pojedynczej kolumny jako wiersz w tabeli logującej – R1.b - Zmiana danych w wierszu powoduje zapisanie starej i nowej wartości całego wiersza
Eksperyment – baza danych
Eksperyment – tabele logowania
Eksperyment – stan tabel logowania
Eksperyment - wyniki Analiza wyników pomiarów Stworzenie listy zaleceń
Podsumowanie Rozpatrzono 3 główne problemy Zaimplementowano 15 rozwiązań Wykonano 5 eksperymentów Opracowano 18 metryk Przeprowadzono 155 pomiarów Napisano 5.2 KLOC Utworzono listę dobrych praktyk Lista 16 zaleceń Zaproponowano sposób realizacji ćwiczeń w oparciu o wykonane rozwiązania Lista 22 zadań