1. Wyjaśnij pojęcie transakcji. Właściwości transakcji. Transakcja - sekwencja logicznie powiązanych operacji na bazie danych , która przeprowadza bazę danych z jednego stanu spójnego w inny stan spójny. Typy operacji na bazie danych obejmują: odczyt o zapis danych oraz zakończenie i akceptację (zatwierdzenie), lub wycofanie transakcji. ACID - zbiór właściwości, które gwarantują poprawne przetwarzanie transakcji w bazach danych (atomicity, consistency, isolation, durability) atomowość - gdy część transakcji zawodzi, cała transakcja nie dochodzi do skutku - stan bazy danych pozostaje niezmieniony. spójność - każda transakcja musi przeprowadzać bazę z jednego poprawnego stanu do innego. Każda wykonana operacja musi spełniać wszystkie zdefiniowane ograniczenia (constrainty, kaskady, triggery izolacja - współbieżne wykonanie transakcji powinno skutkować stanem systemu, który mógłby powstać w sytuacji gdyby transakcje te były wykonywane jedna po drugiej. trwałość - po zatwierdzeniu (commit) transakcji, rezultaty muszą być trwale zachowane (niezależnie od błędów, awarii itd).
2. Realizacja przetwarzania transakcyjnego przez serwery baz danych Przetwarzanie transakcji przebiega w dwóch fazach. Pierwsza z nich to inicjalizacja rozpoczęcie transakcji. Po zainicjalizowaniu transakcji wszystkie kolejne wyrażenia SQL traktowane są jako część transakcji, aż do momentu jej zakończenia. Transakcję rozpoczyna wykonanie pierwszej instrukcji języka SQL. Drugą fazą jest zatwierdzenie lub wycofanie transakcji. Jest ono równoznaczne z jej zakończeniem i sprawia, że wszelkie wprowadzone przez nią modyfikacje są na stałe zapisywane lub anulowane w bazie danych. Do momentu, kiedy transakcja nie zostanie zatwierdzona, wprowadzone przez nią zmiany nie są widoczne dla innych użytkowników korzystających z tej samej bazy danych. Transakcja może być zakończona poprzez: Jawne jej zatwierdzenie instrukcją COMMIT; zmiany są nieodwracalnie wprowadzone do bazy. Jawne jej wycofanie instrukcją ROOLBACK; zmiany są odrzucone, a baza wraca do stanu sprzed rozpoczęcia transakcji. Zakończenie sesji, w ramach której rozpoczęliśmy transakcję; zmiany powinny być wycofane. Przerwanie sesji (np. w wyniku awarii zasilania lub sieci); zmiany są odrzucone, a baza wraca do stanu sprzed rozpoczęcia transakcji.
3. Polecenia SQL zwiÄ…zane z przetwarzaniem transakcyjnym • BEGIN lub BEGIN WORK - rozpoczÄ™cie transakcji; • COMMIT - zatwierdzenie zmian wykonanych w obrÄ™bie transakcji; • ROLLBACK - odrzucenie zmian wykonanych w obrÄ™bie transakcji; • SAVEPOINT nazwa - zdefiniowanie punktu poÅ›redniego o okreÅ›lonej nazwie; • RELEASE SAVEPOINT nazwa - skasowanie punktu poÅ›redniego (nie wpÅ‚ywa w żaden sposób na stan transakcji); • ROLLBACK TO SAVEPOINT nazwa - wycofanie transakcji do stanu zapamiÄ™tanego w podanym punkcie poÅ›rednim;
4. WIelodostęp do baz danych
5. Blokady realizowane przez serwer baz danych
6. Wyjaśnij pojęcie zakleszczenia (dead lock) i zagłodzenia (starvation) Zakleszczenie, blokada wzajemna (ang. deadlock) jest pojęciem opisującym sytuację, w której co najmniej dwie różne akcje czekają na siebie nawzajem, więc żadna nie może się zakończyć. Zakleszczenie może być zobrazowane przykładem ludzi rysujących wykresy. Dwie osoby pragną narysować wykres, do czego jest potrzebna linijka i ołówek. W momencie, kiedy jedna z nich zabierze ołówek, druga zaś linijkę dochodzi do sytuacji konfliktowej. Pierwsza osoba potrzebuje linijki, drugi zaś ołówka. Oba żądania nie mogą być spełnione powstaje zakleszczenie
zagłodzenie, trwałe zablokowanie sytuacja w środowisku wielozadaniowym, w której dany proces nie jest w stanie zakończyć działania, ponieważ nie ma dostępu do procesora lub innego współdzielonego zasobu. Występuje najczęściej na skutek niewłaściwej pracy algorytmu szeregowania, którego zadaniem jest sprawiedliwy przydział zasobów, lub nadmiernego obciążenia systemu.
7. Sklasyfikuj złączenia tabel. Podaj składnie złączenia w SQL99
8. Scharakteryzuj system uprawnień w Oracle Mechanizm zarządzania uprawnieniami składa się z kilku kluczowych elementów. Zarządzanie użytkownikami umożliwia zakładanie kont w aplikacji Project Server, co z kolei pozwala na nadawanie użytkownikom (kontom) uprawnień do określonych działań (np. budowy zespołów dla nowych projektów) i konsumpcję informacji w systemie (np. przeglądanie harmonogramu projektu). Zarządzanie grupami umożliwia łączenie użytkowników w grupy, tak aby łatwiej nadawać im uprawnienia i przypisywać im kategorie. Grupy w programie Project Server mogą być synchronizowanie z grupami Active Directory lub są zarządzane niezależnie. Zarządzanie kategoriami wpływa bezpośrednio na możliwość konsumpcji (przeglądanie) określonej porcji informacji. Kategorie zawierają określone (predefiniowane przez Microsoft , lub zdefiniowane przez administratora systemu) widoki, np. widok Podsumowanie w Centrum projektów. Przypisując użytkowników lub grupy do kategorii, zezwalamy im na przeglądanie określonych informacji. Zarządzanie uprawnieniami globalnymi wpływa bezpośrednio na możliwość podejmowania określonych działań w systemie, niezwiązanych bezpośrednio z konsumpcją informacji (przeglądaniem widoków). Przykłady uprawnień globalnych to uprawnienie do logowanie się, definiowania nowych przydziałów czy budowanie nowego projektu.
Podstawowym miejscem, w którym zarządza się powyższymi elementami, jest sekcja Zabezpieczenia, dostępna po zalogowaniu się do systemu EPM i wybraniu polecenia Ustawienia serwera (patrz rysunek poniżej).
9. Nadawanie i usuwanie uprawnień w Oracle Nadawanie: GRANT UPRAWNIENIE TO UZYTKOWNIK; Usuwanie: REVOKE UPRAWNIENIE FROM UZYTKOWNIK;
Przykładowe uprawnienia systemowe CREATE TABLE tworzenie nowych tabeli CRATE SESSION łączenie się z bazą danych CREATE VIEW tworzenie widoku CREATE USER tworzenie użytkownika DROP USER usuwanie użytkownika
10. Wyjaśnij pojęcie roli Role są zbiorami uprawnień które możemy nadawać lub odbierać użytkownikom niejako "w pakiecie". Role możemy tworzyć, ale dla wygody użytkownika projektanci Oracle stworzyli predefiniowane role które jako administrator bazy możemy nadawać. Najważniejsze predefiniowane role: DBA Rola jaką ma użytkownik system. Posiada wszystkie podstawowe uprawnienia niezbędne do administrowania bazą danych. CONNECT, RESOURCE Te dwie role zazwyczaj nadajemy użytkownikom zaraz po ich stworzeniu. Pozwalają na łączenie się z bazą danych (CONNECT), oraz tworzenie obiektów w obrębie swojego schematu. PUBLIC Ta rola nadawana jest domyślnie każdemu użytkownikowi przez system. Nadając jakieś uprawnienie tej roli otrzymają ją wszyscy.
11. PorzÄ…dkowanie. Omów zagadnienia zwiÄ…zane z porzÄ…dkowaniem baz danych(sortowanie, indeksowanie) Dane nieuporzÄ…dkowane przeszukiwanie liniowe, zÅ‚ożoność O(n) Dane uporzÄ…dkowane można zastosować np. przeszukiwanie binarne O(log2n) Sortowanie Wady: • Duplikacja danych - podczas sortowania tworzona jest nowa tabela z uporzÄ…dkowanymi danymi • Potrzebne nowe sortowanie po każdej zmianie w tabeli Indeksowanie Zalety: • Samoczynna modyfikacja indeksów serwer utrzymuje aktualne indeksy • Nie przestawia wierszów tabeli okreÅ›la kolejność operacji na wierszach
12. Wyjaśnij budowę indeksu dla tabeli której liczba wartości klucza indeksowania jest zbliżona do ilości wierszy w tabeli.
13. Wyjaśnij budowę i działanie indeksu bitmapującego. Indeksy bitmapowe uzupełniają inne dostępne schematy indeksowania, w tym standardowe indeksy w postaci B-tree, tabele klastrowe i klastry haszowane. Indeksy w postaci B-tree (drzewa binarnego) mogą stanowić najbardziej efektywny sposób wyszukiwania danych za pomocą unikalnego identyfikatora. Indeksy w postaci mapy bitowej nadają się szczczególnie do wyszukiwania danych opartego na dużo ogólniejszych kryteriach. Daje to zwiększoną wydajność w aplikacjach hurtowni danych.
14. Porównaj właściwości systemów OLTP i OLAP Transakcje OLTP: Duża ilość prostych transakcji zapisu i odczytu, OLAP: Nieliczne ale złożone instrukcje odczytu Miara efektywności OLTP: Ilość transakcji w jednostce czasu, OLAP: Czas odpowiedzi Struktury danych OLTP: Złożone struktury danych (3 postać normalna), OLAP: Wielowymiarowy model danych, proste struktury. Indeksy OLTP: Niewielka liczna (serwer tworzy klucze główne), OLAP: Wiele Złączenia OLTP: Wiele, OLAP: Niewiele Dane zduplikowane OLTP: Nie występuje (3 postać normalna), OLAP: dane zdenormalizowane Analizy danych OLTP: Niezbyt często, OLAP: bardzo często
15. Przedstaw architektury hurtowni danych Schemat gwiazdy - złożony z tabeli centralnej - tabeli faktów (lub miar) - zawierającej klucze obce do tabel wymiarów oraz własne atrybuty zwane miarami. Tabele wymiarów dla schematu gwiazdy posiadają postać zdenormalizowaną - w wielu wierszach powtarzane są te same dane. Płatek śniegu - tabele wymiarów są znormalizowane (tzn posiadają strukturę hierarchiczną) Konstelacji faktów - schemat gwiazdy lub płatka śniegu w którym ten sam wymiar jest powiązany z wieloma tabelami faktów Schemat gwiazdy-płatka śniegu - schemat w którym część wymiarów ma postać znormalizowaną a część ma postać zdenormalizowaną. Schemat gwiazdy kaskadowej - tabele wymiarów same w sobie mogą stanowić tabele faktów dla innych tabel
16. Przedstaw struktury baz danych hurtowni Tabela faktów: • Zawiera numeryczne miary • Posiada wieloatrybutowy klucz główny zÅ‚ożony z kluczy obcych odwoÅ‚ujÄ…cych siÄ™ do wymiarów • NajwiÄ™kszy rozmiar spoÅ›ród tabel tworzÄ…cych gwiazdÄ™ (typowo zawiera ponad 90% danych) • Jej rozmiar szybko siÄ™ powiÄ™ksza Tabele wymiarów: • ZawierajÄ… atrybuty opisowe • NadajÄ… znaczenie faktom (definiujÄ… przestrzeÅ„ faktów) • ZawierajÄ… dane rzadko podlegajÄ…ce zmianom (zmiany typu: pojawianie siÄ™ nowych klientów, produktów) Tabela wymiarów jest jednym z zestawu tabel odnoszÄ…cych do tabeli faktów. W tabeli faktów klucze obce, odnoszÄ… siÄ™ do kluczy w tabelach wymiarów. W przeciwieÅ„stwie do tabel faktów, tabele wymiarów zawierajÄ… atrybuty opisowe (lub pola), które zazwyczaj sÄ… polami tekstowymi lub liczbami dyskretnymi, które zachowujÄ… siÄ™ jak tekst. Te atrybuty majÄ… sÅ‚użyć dwóm celom: zapytaniom ograniczajÄ…cym / filtrowaniu wyników.