egzamin pytania i odpowiedzi


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.


Wyszukiwarka