DRUGI TERMIN
1. Recovery transakcji
Polecenie ROLLBACK - potwierdza wycowanie i aktywuje czynności:
- odtwarza stan bazy danych i przywraca jej status do stanu po ostatniej operacji COMMIT
- zmiany wprowadzane do bazy danych po ostatniej operacji COMMIT są odwracane
Zarządzanie transakcjami rozproszonymi
- długą transakcję można podzielić na mniejsze, logicznie spójne fragmenty. Wprowadzamy do
transakcji tzw. punkty zachowania (SAVEPOINTS)
- transakcję taką można wykonać do wskazanych punktów zachowania
SAVEPOINT nazwa_pz; - wprowadzenie punktu zachowania gdzie nazwa_pz - oznacza nadaną przez użytkownika nazwę punktu
RELEASE SAVEPOINT nazwa_pz; - usunięcie punktu bezpieczeństwa
ROLLBACK TO SAVEPOINT nazwa_pz; - wycowanie do wskazanego punktu zachowania
PUNKTY BEZPIECZEŃSTWA TRANSAKCJI
- transakcja pozostaje aktywna
- zmiany, wprowadzone przez operacje, zrealizowane między punktem bezpieczeństwa a poleceniem ROLLBACK są anulowane
- punkty bezpieczeństwa, ustawione pomiędzy punktem wskazanym a poleceniem ROLLBACK zostają usunięte
2. Słownik (metadane)
sposób zapisywania metadanych czyli danych na temat danych, znajduje się w katalogu systemowym, przechowuje: opis relacji (nazwy relacji, typy danych kolumn i ich nazwy), deklaracje kluczy głównych i obcych, opis perspektyw, deklaracje grup użytkowników i uprawnień, informacje o indeksach i rozmiarach plików, strukturze plików
3. Anomalie współbieżnego dostępu
- brudny odczyt (ang. Dirty read) - kiedy pozwalamy na odczyt danych modyfikowanych przez
transakcję jeszcze nie zatwierdzoną, może się nie wykonać
- utracona modyfikacja (ang. Lost update) - kiedy dwie transakcje modyfikują te same dane
- niepowtarzalny odczyt (ang. Non-repeatable read) - gdy transakcja składa się z poleceń, które wielokrotnie odczytują ten sam rekord z bazy, a my odczytujemy inne dane; na 1 komórce; niby odczytujemy jedną wartość, a tak naprawdę wiele
- fantomy (ang. Phantoms) - wykonujemy polecenie select na bazie danych, za każdym razem wykonujemy coraz więcej, za każdym razem select coraz więcej wyświetla
Brudny odczyt i utracona modyfikacja - poważne zagrożenia, nie do zaakceptowania
Niepowtarzalny odczyt i fantomy - mniej poważne, tolerowane
Poziomy izolacji transakcji
- odczyt niezatwierdzonych danych (ang. Read uncommitted)
- odczyt zatwierdzonych danych (ang. Read committed)
- powtarzalny odczyt (ang. Repeatable read)
- uszeregowalny (ang. Serializable)
4. model danych relacyjny,
Relacyjny model danych - relacje:
każda relacja w bazie ma jednoznaczną nazwę
każda kolumna w relacji ma jednoznaczną nazwę
wszystkie wartości w kolumnie są tego samego typu, zbiór wszystkich możliwych typów to dziedzina
kolumny relacji tworzą zbiór nieuporządkowany, kolumny nazywane bywają również atrybutami
wiersze relacji tworzą nieuporządkowany zbiór, nie powtarzają się, wiersze są nazywane encjami
każde pole leżące na przecięciu kolumny i wiersza powinno mieć wartość atomową (wartość z dziedziny albo NULL)
każda relacja zawiera klucz główny - kolumnę której wartość jednoznacznie definiuje wiersze (nie powtarzają się), wartość klucza głównego nie może być NULL
Cechy modelu relacyjnego
dane przechowywane są w tabelach o określonej ilości kolumn i dowolnej liczbie wierszy
każda kolumna zawiera dane określonego typu
typy danych są ustalone na etapie projektowania bd
każda tabela zawiera zidentyfikowany klucz, który jednoznacznie definiuje każdy wiersz
Zalety:
oparte na solidnych podstawach teoretycznych
stabilna pozycja na rynku
optymalizacja zapytań
dobrze zdefiniowany mechanizm dostępu do danych
Wady:
z góry ustalony konstruktor, brak złożonych obiektów i abstrakcyjnych typów danych, problemy z danymi multimedialnymi
brak środków hermetyzacji i modularyzacji (brak możliwości oddzielenia implementacji od specyfikacji), brak agregacji i generalizacji
brak środków do przechowywania informacji proceduralnych
języki baz danych różnią się od języków programowania
brak transakcji długotrwałych
niezgodność modelu pojęciowego z modelem implementacyjnym
Stosowanie:
proste dane, które łatwo umieścić w tabeli
wymagane wyszukiwanie według różnorodnych kryteriów
5. normalizacja,
proces tworzenia tabel i powiązań między nimi zgodnie z określonym zbiorem reguł (pola powinny być atomowe - nie mogą być już dalej podzielone, wszystkie pola muszą odwoływać się do pola klucza podstawowego lub obcego, pola jednej tabeli muszą być niezależne względem siebie), proces przekształcania projektu bd przez postacie normalne, proces tworzenia schematu który nie podlega anomaliom
Postać normalna - stanowi sposób klasyfikowania tabel w oparciu o występujące w nich zależności funkcyjne
Zależność funkcyjna - oznacza, że znając jeden atrybut, zawsze możemy określić wartość drugiego
Zależność wielowartościowa - oznacza, że znając wartość jednego atrybutu, możemy określić wartość zbioru innego atrybutu
1NF - każdy atrybut niekluczowy jest funkcyjnie zależny od klucza głównego, każde pole jest atomowe
2NF - relacja jest w 1NF i każdy atrybut niekluczowy jest w pełni funkcyjnie zależny od klucza głównego (dla tabel z kluczami złożonymi stawiamy pytanie czy element niekluczowy jest jednoznacznie identyfikowany przez część klucza złożonego)
3NF - relacja jest w 2NF i każdy niekluczowy atrybut jest pośrednio zależny od klucza głównego, usuwamy tzw. zależności przechodni między danymi (dla każdej pary niekluczowych elementów zadajemy pytanie czy wartości obu pól zależą od siebie, jeżeli tak to przenosimy powiązane elementy do oddzielnej tabeli)
4NF - niedozwolone niektóre relacje między kluczem podstawowym a polami niekluczowymi
5NF - postać normalna złączenie-rzut, tabela jest w takiej postaci jeżeli nie występują anomalia złączenia-rzutu, brak redundancji
Postać normalna Boyce'a-Codda - występuje gdy dla wszystkich XY, X jest kluczem
Anomalia wynikające z nieprawidłowego zaprojektowania tabeli:
redundancja - niepotrzebne powtarzanie się tej samej informacji
anomalie przy modyfikacji - zmiana wartości atrybutu pociąga za sobą konieczność zmiany w wielu wierszach tabeli
anomalia przy usuwaniu - usunięcie informacji o obiekcie pociąga za sobą niepożądane usunięcie innych danych
Denormalizacja - stosuje się czasami aby zwiększyć wydajność aplikacji, powoduje to że nie będą wymuszone wszystkie nałożone ograniczenia - dlatego konieczne jest pisanie dodatkowych linii kodu, normalizacja redukuje więc nakład pracy związanej z oprogramowaniem bazy
6. tabela tymczasowa a perspektywa
WIDOK - tabela wirtualna, nie jest pamiętana fizycznie i jest obliczana dynamicznie
-- TABELA TYMCZASOWA - jest obliczana tylko raz i jest usuwana automatycznie po zakończenie sesji
Cechy widoku:
- widok pozwala na prezentowanie użytkownikowi danych z jednej lub wielu tabel, danych wyliczanych (ulatwie odczytanie danych)
- ogranicza dostep do poufnych danych, ukrywa strukture tabel (poufność danych)
- ulatwia zarzadzanie uprawnieniami uzytkownikow
- widok nie może dotyczyć tabel tymczasowych
- widoki nie są usuwane razem z tabelą trzeba je usunąć oddzielnie; można dla nich tworzyć triggery
- widoki pamiętają ograniczenia obowiązujące w tabelach bazowych
- możliwe jest (z pewnymi ograniczeniami) modyfikowanie danych w tabelach bazowych poprzez widok
- definicja widoku nie moze zawierac ORDER BY (chyba ze zawiera TOP n), COMPUTE, INTO
Cechy Tabeli tymczasowej:
Tabela tymczasowa (migawka/snapshot/materializowana perspektywa) to zrzut wyników jakiegoś zapytania do tabeli.
- szybki dostęp do danych (dane są fizycznie w bazie);
- trzeba ją co pewien czas odświeżać. Jeśli odświeżanie będzie za częste, baza danych będzie bez sensu obciążana; jeśli za rzadkie - użytkownik będzie operował na nieaktualnych danych.
TRZECI TERMIN
1.model hierarchiczny
W modelu hierarchicznym dane są przechowywane na zasadzie rekordów nadrzędnych-podrzędnych, tzn. rekordy przypominają strukturę drzewa. Każdy rekord (z wyjątkiem głównego) jest związany z dokładnie jednym rekordem nadrzędnym.
Dane w takim modelu są znajdowane na zasadzie wyszukiwania rekordów podrzędnych względem rekordu nadrzędnego. Przykładem takiego modelu może być struktura katalogów na dysku twardym komputera.
Hierarchiczna forma przechowywania danych zakłada grupowanie danych w formie kolejnych poziomów drzewa danych. Począwszy od zbioru podstawowego, będącego korzeniem drzewa (np. w przypadku podziału struktury służby zdrowia można rozpocząć od Regionalnej Kasy Chorych) poprzez kolejne podzbiory - rozgałęzienia (np. szpitale i przychodnie z którymi dana kasa ma podpisaną umowę) dochodzi się do ostatnich zbiorów danych - liści (np. zbiory oddziałów, pracowni czy gabinetów). System hierarchiczny jest często przedstawiany poprzez model rodzic-potomek. Rodzic posiada pewną liczbę potomków, potomkowie ci mogą mieć swoich potomków, ci z kolei ... Zbiór danych w tym modelu (najczęściej w formie pojedynczej tabeli) jest powiązany (ma relacje) z innymi zbiorami w tym samym drzewie (w tej samej rodzinie). Wyszukiwanie danych polega więc na kolejnym zagłębianiu się w coraz to kolejne zbiory danych. System hierarchiczny budowany jest przeważnie w formie indukcyjnej tzn. dane są grupowane od ogółu do szczegółu. Oznacza to prostą formę wyszukiwania danych danej klasy przechodząc poprzez kolejne poziomy szczegółowości. Specyficzna budowa takiej bazy danych umożliwia tworzenie prostych kryteriów wyszukiwania danych i w miarę potrzeby uszczegółowiania tych kryteriów wraz ze znajdywaniem kolejnych partii danych. Doskonałym przykładem hierarchii są wszelkie systemy klasyfikacji (np. chorób czy procedur medycznych). Często wadą tego modelu jest brak możliwości budowania relacji pomiędzy rekordami różnych drzew. Hierarchiczna baza danych zakłada podstawowe warunki integralności danych:
każdy rekord (z wyjątkiem pierwszego i drugiego rodzica - korzeni drzewa) musi posiadać własnego, jednego rodzica
jeżeli dany rekord posiada więcej rodziców niż jeden musi być skopiowany dla każdego rodzica oddzielnie tak, aby prawdziwa była powyższa zasada,
jeżeli usunięty zostaje dany rekord oznacza to, że usunięte zostają również wszystkie wywodzące się z niego rekordy - potomkowie.
2.model relacyjny
Relacyjny model danych - relacje:
- każda relacja w bazie ma jednoznaczną nazwę
- każda kolumna w relacji ma jednoznaczną nazwę
- wszystkie wartości w kolumnie są tego samego typu, zbiór wszystkich możliwych typów to
dziedzina
- kolumny relacji tworzą zbiór nieuporządkowany, kolumny nazywane bywają również
atrybutami
- wiersze relacji tworzą nieuporządkowany zbiór, nie powtarzają się, wiersze są nazywane
encjami
- każde pole leżące na przecięciu kolumny i wiersza powinno mied wartośd atomową (wartośd
z dziedziny albo NULL)
- każda relacja zawiera klucz główny - kolumnę której wartośd jednoznacznie definiuje wiersze
(nie powtarzają się), wartośd klucza głównego nie może byd NULL
Cechy modelu relacyjnego
• dane przechowywane są w tabelach o określonej ilości kolumn i dowolnej liczbie wierszy
• każda kolumna zawiera dane określonego typu
• typy danych są ustalone na etapie projektowania bd
• każda tabela zawiera zidentyfikowany klucz, który jednoznacznie definiuje każdy wiersz
Zalety:
• oparte na solidnych podstawach teoretycznych
• stabilna pozycja na rynku
• optymalizacja zapytao
• dobrze zdefiniowany mechanizm dostępu do danych
Wady:
• z góry ustalony konstruktor, brak złożonych obiektów i abstrakcyjnych typów danych,
problemy z danymi multimedialnymi
• brak środków hermetyzacji i modularyzacji (brak możliwości oddzielenia implementacji od
specyfikacji), brak agregacji i generalizacji
• brak środków do przechowywania informacji proceduralnych
• języki baz danych różnią się od języków programowania
• brak transakcji długotrwałych
• niezgodnośd modelu pojęciowego z modelem implementacyjnym
3.wlasciwosci tranzakcji-opisac
Właściwości transakcji:
- niepodzielność - transakcja musi być wykonana od początku do końca, albo cała transakcja
zostaje wykonana albo w całości jest anulowana
- spójność - transakcje modyfikujące nie mogą pozostawić bd w stanie niespójnym
- izolacja - jeżeli dane są współdzielone podczas ich modyfikacji dane nie mogą byd dostępne
dla innych transakcji
- trwałość - jeżeli transakcja się kooczy wszystkie dane związane z wykonaniem transakcji
muszą być zachowane, nawet w przypadku awarii sprzętu lub oprogramowania
- spójność - transakcje modyfikujące nie mogą pozostawić bd w stanie niespójnym
4.algebra relacji-opisac
Algebra relacji to zbiór operatorów, które biorą jako argument 1 lub kilka relacji i produkują relację
jako wynik.Operacje można podzielid na cztery kategorie:
- zwyczajne działania algebry zbiorów: suma, przecięcie i różnica zastosowana do tabel
- operacje zawężania tabeli:
- selekcja - operacja jednoargumentowa, określona przez warunek dotyczący wartości
kolumny danej relacji, wynikiem jest relacja zawierająca te wszystkie wiersze, które spełniały
warunek
- rzut - operacja jednoargumentowa określona przez podzbiór zbioru kolumn danej relacji,
dająca w wyniku tabelę składającą się z tych kolumn
- operacje złączenia (tworzenia wierszy z 2 lub więcej tabel):
- iloczyn kartezjaoski - argumentami są dwie relacje, wynikiem relacja której wiersze są
zbudowane ze wszystkich kombinacji wierszy relacji wyjściowych
- równozłączenie - argumentami są dwie relacje, posiadające kolumny to tych samych
dziedzinach, np. klucz główny jednej i klucz obcy w drugiej, wynikiem jest tabela otrzymana z
iloczynu kartezjaoskiego poprzez selekcje za pomocą warunku równości tych wspólnych
atrybutów
- złączenie naturalne - powstaje z równozłączenia dwóch poprzez rzutowanie usuwające
powtarzające się kolumny złączenia
- złączenie zewnętrzne (lewostronne, prawostronne, obustronne)
- operacje „przemianowania”, które nie zmieniają wierszy tabeli, ale jej schemat, tzn. nazwy
atrybutów lub (i ) samej tabeli
5.etapy przetwarzania zapytan
6.anomalie bd i 2PN
2NF - relacja jest w 1NF i każdy atrybut niekluczowy jest w pełni funkcyjnie zależny od klucza
głównego (dla tabel z kluczami złożonymi stawiamy pytanie czy element niekluczowy jest
jednoznacznie identyfikowany przez częśd klucza złożonego)
Anomalia wynikające z nieprawidłowego zaprojektowania tabeli:
• redundancja - niepotrzebne powtarzanie się tej samej informacji
• anomalie przy modyfikacji - zmiana wartości atrybutu pociąga za sobą koniecznośd zmiany w wielu wierszach tabeli
• anomalia przy usuwaniu - usunięcie informacji o obiekcie pociąga za sobą niepożądane usunięcie innych danych
7. Słownik danych (co zawiera)
Słownik danych - sposób zapisywania metadanych czyli danych na temat danych, znajduje się w katalogu systemowym, przechowuje: opis relacji (nazwy relacji, typy danych kolumn i ich nazwy), deklaracje kluczy głównych i obcych, opis perspektyw, deklaracje grup użytkowników i uprawnień, informacje o indeksach i rozmiarach plików, strukturze plików
8.awaria i jak system reaguje(byl pkt kontrolny narysowany )
błędy w oprogramowaniu aplikacyjnym
awarie procesów użytkownika
awarie drugoplanowych procesów instalacji bazy danych
awarie sieci komputerowej
awarie zasilania
awarie sprzętu (procesor, pamięć operacyjna, nośniki danych)
jeżeli awaria któregoś z węzłów nastąpiła w czasie realizowania transakcji rozproszonej, wówczas
taka transakcja będzie w tzw. STANIE ZAWIESZENIA do momentu usunięcia awarii, nawiązywania
połączenia ze zdalnym węzłem i doprowadzenia transakcji do końca.
Transakcje w stanie zawieszenia można odtworzyć na dwa sposoby:
o AUTOMATYCZNIE - uruchamiając dedykowany do tego celu proces systemowy
o MANUALNIE - przeszukując węzły i zatwierdzając lub wycofując ich lokalne
transakcje
Automatyczne odtwarzanie transakcji
Odtwarzaniem transakcji zajmuje się tzw. drugoplanowy proces odtwarzający RECO - jest to
proces instalacji bazy danych.
Proces RECO będzie automatycznie odtwarzał transakcje rozproszone w stanie zawieszenia jeżeli
w bazie danych włączono odtwarzanie automatyczne.
STAN WĘZŁA W SYSTEMIE
węzeł zatwierdzania zatwierdził swoją lokalną transakcję; stan transakcji rozproszonej
przechowywany w WZ określony jest jako zatwierdzona
koordynator globalny odebrał potwierdzenie zatwierdzenia transakcji od WZ
uczestnik odebrał komunikat commit od koordynatora globalnego - po jego odebraniu węzeł
uległ awarii (np. z powodu zaniku napięcia zasilania) - węzeł nie opowiedział komunikatem
committed
Automatyczne odtwarzanie transakcji - akcje
RECO okresowo próbuje nawiązać połączenie z węzłem BANK 3
Po ponownym uruchomieniu bazy danych BANK3, baza ta jest odtwarzana za pomocą
standardowych mechanizmów systemowych
Nawiązane zostaje połączenie między procesem RECO a bazą BANK3
Korzystając z informacji o stanie transakcji rozproszonej, przechowywanej przez węzeł
zatwierdzania, tj. transakcji zatwierdzona, proces RECO powoduje zatwierdzenie lokalnej
transakcji w węźle BANK3
Manualne odtwarzanie transakcji
Jeżeli w systemie wyłączono automatyczne odtwarzanie transakcji, wówczas jedynym sposobem
doprowadzenia zawieszonej transakcji do końca jest interwencja administratora systemu
Musi on przeszukać węzły, stwierdzić, które transakcje są w stanie zawieszenia, i zatwierdzić lub
wycofać je za pomocą poleceń SQL, zgodnie ze stanem transakcji rozproszonej przechowywanym
w węźle zatwierdzania
pytania z roku A:
opisz architekture wzorcową RSZBD.
optymalizatory.
Optymalizacja zapytań
- Kiedy użytkownik wykonuje polecenie SQL, jeden z komponentów systemu bazy danych zwany
optymalizatorem musi podjąć decyzję dotyczącą najlepszego sposobu dostępu do danych,
którymi polecenie to operuje.
System Oracle zawiera dwa optymalizatory:
- optymalizator regułowy (rule-based optimizer - wprowadzony jako pierwszy)
- optymalizator kosztowy (cost-based optimizer).
User nie podejmuje drogi - różne dane w różnej formie zwróconej userowi; optymalizacja = najlepszy
plan realizacji danego zadania
W celu określenia optymalnego scenariusza wykonania optymalizatory biorą pod uwagę
następujące kwestie:
- składnia wydanego polecenia;
- warunki, które muszą spełniać dane (wyrażenia WHERE);
- tabele bazy danych, do których dostępu wymaga polecenie;
- wszystkie możliwe indeksy, jakie mogą być wykorzystane do pobrania danych z tabeli;
- wersja systemu zarządzania bazą danych Oracle;
- bieżący tryb optymalizatora;
- wskazówki polecenia SQL;
- wszystkie dostępne statystyki dotyczące obiektów (utworzone za pomocą polecenia ANALYZE);
- fizyczna lokalizacja tabel (rozproszony SQL);
- ustawienia w pliku IN1T.ORA (zapytania równoległe, asynchroniczne operacje wejścia-wyjścia
itd.).
Działanie optymalizatora regułowego
- Optymalizatory regułowe dysponują zbiorem reguł postępowania (odnoszących do konkretnych
rodzajów zapytań), przy pomoc których wskazują najlepszy plan wykonania zapytania.
Przykład - użytkownik dokonuje selekcji rekordów tabeli, dla której dostępny jest indeks.
- indeks zostanie użyty (niezależnie od rozmiarów tabeli i indeksu czy od selektywności warunku
WHERE), gdyż tak mówi jedna z reguł.
- Zaletami optymalizatorów regułowych są:
- prostota budowy
- duża szybkość działania
Działanie optymalizatora regułowego
- optymalizator regułowy w celu określenia ścieżki dostępu do danych korzysta z reguł
pierwszeństwa.
- Reguły te pozwalają optymalizatorowi określić ścieżkę wykonania danego polecenia,
podpowiadają kiedy wykorzystać jedne indeks zamiast drugiego, a kiedy przeprowadzić przegląd
całej tabeli.
- Reguły są niezmienne, ustalone odgórnie i nie mają na nie wpływu czynnik zewnętrzne (rozmiary
tabel, rozkłady indeksów, itd.).
// Optymalizator regułowy podejmuje decyzje w oparciu o pierwszeństwo; 15-20 złotych reguł,
decyduje które zostaną zrealizowane; te reguły są raz ustawione, niezależnie jak duże tabele indeksów
Jądro SO zarządzania bazą danych korzysta z optymalizatora regałowego gdy:
- w pliku INIT.ORA znajduje się wpis OPTIMIZER_MODE = RULE:
- w pliku INIT.ORA znajduje się wpis OPTIMIZER_MODE = CHOOSE oraz dla żądanej
tabeli związane z wykonywanym poleceniem nie utworzono statystyk;
- wydano polecenie ALTER SESSION SET OPTIMIZER
Działanie optymalizatora kosztowego
- Optymalizatory kosztowe dokonują wyboru posługując się oszacowaniem czasu realizacji każdego
z możliwych planów wykonania zapytania.
- Oznacza to, że dla danego zapytania najpierw muszą zostać wygenerowane wszystkie
alternatywne plany, a następnie dla każdego z nich zostaje analitycznie wyliczony przybliżony czas
jego wykonania.
- W ostatnim kroku, optymalizator kosztowy wybiera ten plan, dla którego wyliczony oczekiwany
czas wykonania jest najmniejszy.
- Aby uniezależnić się od czasu rzeczywistego, na który wpływa wiele czynników niezależnych,
zamiast pojęcia czasu wykonania zapytania, posługujemy się zwykle pojęciem kosztu wykonania
zapytania (query cost)
- W systemie Oracle jednostka kosztu odpowiada w przybliżeniu czasowi wykonania jednej operacji
I/O w systemie operacyjnym.
Analityczne wyznaczenie kosztu dla wybranego planu wykonania zapytania wymaga znajomości wielu
parametrów bazy danych:
- liczba rekordów, jakie zostaną znalezione,
- rozmiar łączonych tabel,
- liczby poziomów indeksu B* - drzewo,
- Optymalizator kosztowy posługuje się statystycznymi modelami tych obiektów bazy danych,
których dotyczy zapytanie
- Modele te przechowywane są w tabelach słownika danych
Modele statystyczne - statystyki dotyczące obiektów bazy danych, np. tabele, indeksy
opisz parametry wyzwalacza
Moment uruchamiania:
- BEFORE - wyzwalacze utworzone ze słowem BEFORE uruchamiają się wykonaniem
określonego polecenia na wybranej tabeli
- AFTER - wyzwalacze utworzone ze słowem AFTER uruchamiają się po wykonaniu określonego
polecenia na wybranej tabeli
- INSTED OF - powoduje, że polecenia wyzwalacza wykonywane zamiast zdarzenia
wyzwalającego
Zdarzenie uruchamiające:
- polecenie DML: INSERT, UPDATE, DELETE
- polecenie DDL: CREATE, ALTER
- zdarzenie w bazie danych zalogowanie/wylogowanie użytkownika, błąd, uruchomienie
/zatrzymanie bazy danych
Częstotliwość uruchamiania:
- wyzwalacz wierszowy - jednokrotnie dla każdego rekordu, przetworzonego przez polecenie
- wyzwalacz polecenia - jednokrotnie dla polecenia
WYZWALACZ POLECENIA
- Uruchamiany jednokrotnie dla polecenia
- Nie może bezpośrednio odwoływać się do atrybutów tabeli (perspektywy) wyzwalacza
WYZWALACZ WIERSZOWY
- Uruchamiany jednokrotnie dla każdego rekordu, przetworzonego przez polecenie
- Zawiera klauzulę FOR EACH ROW
- Nie może wykonywać zapytania ani żadnej operacji modyfikującej relację (perspektywę), na której
założono wyzwalacz
- Może odwoływać się bezpośrednio do wartości atrybutów rekordu, dla którego został uruchomiony
Odwołanie do wartości atrybutów tabeli:
- :OLD.nazwa_atrybutu - sprzed wykonania polecenia
- :NEW.nazwa_atrybutu - po wykonaniu polecenia
opisz używanie kursora oraz jego parametry
Kursory
- W celu wykonania rozkazu SQL system tworzy pewien obszar roboczy nazywany przestrzenią
kontekstu.
- W przestrzeni tej przechowywane są informacje o przetwarzanym programie w PL/SQL.
- PL/SQL pozwala nazwad przestrzeo kontekstu i odwoływad się do zawartych w niej danych za
pomocą mechanizmu nazywanego kursorem.
- Jeżeli zapytanie zwraca wiele wierszy, to możliwe jest utworzenie kursora, który będzie
umożliwiał dostęp do pojedynczych wierszy ze zwracanej listy.
- Kursory jawne są jedyną metodą umożliwiającą w programie PL/SQL odczyt zbioru rekordów.
Sposób użycia kursora:
- zadeklarowanie w sekcji DECLARE.
- otwarcie, czyli wykonanie zapytania związanego z kursorem - odczytane z bazy danych
rekordy trafią do pamięci.
- Pobieranie kolejnych rekordów. (po pobrani wskaźnik przesuwa się o 1)
- Zamknięcie kursora - zwolnienie obszaru pamięci przydzielonego do kursora.
DECLARE
CURSOR nazwa_kursora[(lista_parametrow)] IS {zapytanie | RETURN typ_recordowy}
[FOR UPDATE [OF lista_atrybutow]];
nazwa_parametru type [{ := | DEFAULT } wartośd domyślna
def. transakcji wspolbieznej oraz węzły biorące w niej udział
jeśli chodzi o WSPÓŁBIEŻNOŚĆ TRANSAKCJI to:
Sytuacja w której kilka transakcji wykonuje równoległe operacja na tych samych danych.
Zarządzanie współbieżnością
Algorytmy:
- Optymistyczne - wykorzystanie znaczników czasowych; nie eliminuje anomalii, ale problemy
rozwiązuje dynamicznie - znacznikami czasowymi
- Pesymistyczne - blokowanie, najczęściej stosują algorytmy blokowania dwufazowe (2PL);
przydział zasobów do zadania; zapobieganie anomalii poprzez ich wyeliminowanie
Blokada - przydzielanie zasobu do zadania
Rodzaje blokad:
- Wyłączne - zasób może być przydzielany tylko do 1 zadania
- Współdzielone - zasób może zostać przydzielony jednemu z wielu zadaniom
Węzły??
statyczny i dynamiczny schemat przetwarzania zapytan
-Statyczny schemat ma przede wszystkim zastosowanie w przypadku poziomej fragmentacji danych, np. rozbicia obiektów Pracownik na wiele podzbiorów o takiej samej budowie przechowywanych na poszczególnych serwerach.
-W tym przypadku dekompozycja zapytania oznacza po prostu jego skopiowanie: Z = Z1 = Z2 = ... = Zk
-Scalenie wyników polega na sumie mnogościowej wyników cząstkowych.
Dynamiczny schemat przetwarzania zapytań
1. Klient realizuje zapytanie Z odwołujące się do danych na serwerach S1, S2,..., Sk
2. Klient dokonuje odwzorowania zapytania Z na podzapytanie Z1 adresowane do serwera S1 (na podstawie schematu S1). Z1jest konstruowane z Z w taki sposób, aby jego wynik W1 uzyskany z S1 wystarczył do realizacji zapytania Z.
3. Z1jest kierowane do serwera S1, gdzie jest wykonywane. Serwer S1 zwraca do klienta wynik W1 podzapytania Z1.
4. Na podstawie znajomości W1 klient konstruuje z Z kolejne podzapytanie Z2 kierowane do serwera S2. Może do tego serwera skierować pewien fragment W1, nazwijmy go F1;
.... proces jest powtarzany dla wszystkich serwerów, aż do uzyskania rezultatu.
programy składowane omówic
This chapter discusses stored programs and views, which are database objects defined in terms of SQL code that is stored on the server for later execution.
Stored programs include these objects:
-Stored routines, that is, stored procedures and functions. A stored procedure is invoked using the CALL statement. A procedure does not have a return value but can modify its parameters for later inspection by the caller. It can also generate result sets to be returned to the client program. A stored function is used much like a built-in function. you invoke it in an expression and it returns a value during expression evaluation.
-Triggers. A trigger is a named database object that is associated with a table and that is activated when a particular event occurs for the table, such as an insert or update.
-Events. An event is a task that the server runs according to schedule.
Views are stored queries that when referenced produce a result set. A view acts as a virtual table.
PROCEDURY SKŁADOWANE - Procedura składowana (ang. stored procedure) jest nazwanym zbiorem poleceń w języku SQL, który jest przechowywany na serwerze baz danych i jest kompilowany przy pierwszym wykonaniu. |
|
W systemie zarządzania bazami danych wykonanie dowolnego fragmentu kodu języka SQL wiąże się z pewnym ciągiem czynności - począwszy od sprawdzenia składni, aż po kompilację i wykonanie. Procedury składowane wnoszą do środowiska bazodanowego przetwarzanie warunkowe i możliwości programistyczne. Wykonywanie procedur składowanych odbywa się inaczej niż wykonywanie pojedyncz zapytania SQL. Proces wykonania pojedynczego zapytania w języku T-SQL w Microsoft SQL Server 2008 dzieli się na etapy: -Sprawdzenie i rozdzielenie kodu na fragmenty - dokonywany jest podział kodu na fragmenty nazywane symbolami. Proces ten nazywamy często nazywany jest analizą leksykalną. -Sprawdzenie kodu pod względem poprawności semantycznej i syntaktycznej - dokonywana jest kontrola poprawności semantycznej, czyli sprawdzenie, czy kod nie odwołuje się do nieistniejących obiektów lub nie używa nieistniejących poleceń oraz kontrola poprawności syntaktycznej, podczas której sprawdzana jest poprawność użytej składni. -Standaryzacja wyodrębnionej części kodu - silnik wykonywania zapytań zapisuje kod w jednoznacznej postaci. -Optymalizacja - Microsoft SQL Server posiada wewnętrzny proces zwany Optymalizatorem Zapytań, który wybiera optymalny sposób dostępu do danych, tzn. taki plan wykonania zapytania, w którym serwer będzie przeszukiwał najmniejszą ilość stron danych optymalizację szczególny wpływ ma struktura indeksów oraz sposób łączenia tabel. -Kompilacja i wykonanie - zapytanie jest kompilowane według optymalnego planu wykonania i w takiej postaci wykonywane. -Zwrócenie wyników - wyniki zapytania zwracane są do klienta. |
|
przywileje uzytkownikow + przyklady
Przywilej - prawo wykonywania przez użytkownika określonej akcji w bazie danych dostępu do
określonego obiektu
Rodzaje przywilejów:
- systemowe
- obiektowe
Przywileje systemowe
- prawa wykonania określonej akcji lub wykonania określonej operacji na wskazanym typie obiektu w
schemacie bazy danych
Przykład:
- CREATE SESSION
// tworzenie sesji, przyłączanie do BD, nie precyzujemy który obiekt konkretnie
- CREATE TABLE
// utworzenie tabeli w schemacie danego użytkownika
- CREATE ANY TABLE
// utworzenie dowolnej tabeli w dowolnym schemacie, niekoniecznie nasz
- SELECT ANY TABLE
// pozyskiwanie danych z dowolnej tabeli
- INSERT ANY TABLE
// wprowadzanie danych do dowolnych tabel
- DROP ANY VIEW
// usunięcie dowolnej perspektywy, niekon. tej w naszym schemacie
- Polecenie GRANT służy do nadawania użytkownikowi przywilejów systemowych
- PUBLIC służy do nadawania przywilejów wszystkim użytkownikom
- WITH ADMIN OPTION umożliwia użytkownikowi, który otrzymał przywilej przekazania go dalej
innym użytkownikom
przykład:
GRANT CREATE SESSION, SELECT ANY TABLE TO B;
GRANT CREATE TABLE TO A;
REVOKE SELECT ANY TABLE FROM B;
Przywileje obiektowe - prawa wykonania określonej operacji na wskazanym obiekcie w określonym schemacie bazy danych
- SELECT ON wypozyczenia
- ALTER ON samochody
- EXECUTE ON Wyszukaj_samochod
- REFERENCES ON samochody
GRANT <przywileje> | ALL ON <obiekt>
TO <użytkownicy> | PUBLIC
[WITH GRANT OPTION];
procesy drugoplanowe
Podstawowymi procesami drugoplanowymi wymaganymi przez
bazę danych są:
DBWR - Data Base WRiter - zapisuje bloki bazy danych z pamięci podręcznej bufora SGA do plików
dyskowych
LGWR - LoG WRiter - przechowuje informacje o powtórzeniach z bufora dziennika w SGA do
wszystkich kopii bieżącego pliku dziennika powtórzeo na dysku.
PMON - Process MONitor - monitoruje procesy oraz zarządza zasobami bazy.
SMON - System MONitor - monitoruje system zarządzający pamięcią SGA.
ARCn - Archiver - odczytuje pliki dziennik powtórzeo po ich zapełnieniu przez Oracle i zapisuje ich
kopie.
+3 z SQL których nie pamiętam i nie chce pamiętać >.> ogolnie trzeba znac jakas funkcje(wyrównywanie w wydrukach tak zeby powstawaly rowne kolumny) która cudowna pani P. przerabiala na swoich labkach ale pan N. z nami jednak nie raczył
Z zadań:
napisz procedurę, która obliczy koszt wypożyczenia auta (pozycja koszt_dnia z tabeli samochody) z uwagi na datę wypożyczenia i zwrócenia (pozycje data_wyp i data_zwr z tabeli wypozyczenia), a następnie koszt ten wpisze do odpowiadającego rekordu w tabeli wypożyczenia.
napisz wyzwalacz z sekwencją, którą będzie nadawał nowym rekordom w tabeli wypożyczenia identyfikatory przed ich utworzeniem.
napisz procedurę, która jako parametry przyjmie wartości kolumn tabeli samochody poza kosztem za dzień (pozycja koszt_dnia), który powinna obliczyć i uzupełnić przy wstawianiu nowego rekordu (de facto funkcja wstawiająca nowy rekord).
Może pogubię kolejność, ale ja pamiętam takie pytania:
Omów charakterystykę RSZBD
Charakterystyka rozproszonych baz danych
Skalowalność
Dostępność
Łatwość zarządzania
Bezpieczeństwo
Skalowalność - dostęp do systemu może być nieograniczony; budowa systemu nie powinna sprawiać
problemów, aktualizacja programu głównego; rozwój nie sprawia problemów, wystarczy
aktualizacja, przy rozbudowie wystarczy dodać dodatkowy węzeł - w systemie homogenicznym nie
będzie problemów, natomiast w heterogenicznym (mającym np. inne struktury danych, systemy
zarządzania itd) może być pewien problem.
Dostępność - ciągły, 24-godzinny dostęp do bazy; dostęp do wielu mediów, rozwój telefonii
Łatwość zarządzania - panele administracyjne realizowane przez strony internetowe, proste, łatwe
narzędzia dostarczane przez producenta zarządzania danym systemem bazy danych.
Bezpieczeństwo - skomplikowane bezpieczeństwo, metody autoryzacji; bezpieczeństwo dostępu do
informacji, ale też transferu danych między węzłem, a użytkownikiem (użyte w tym celu metody
kryptograficzne).
Cechy i właściwości rozproszonego SZBD
zbiór logicznie powiązanych współużytkowanych danych
dane są podzielone na fragmenty (części; replikacja, fragmentacja)
poszczególne fragmenty mogą być powielane
fragmenty są rozmieszczone na rożnych komputerach
komputery są połączone za pomocą sieci komunikacyjnej
dane znajdujące sie w każdym z węzłów systemu znajdują sie pod kontrola lokalnego SZBD
każdy lokalny SZBD może niezależnie uruchamiać lokalne aplikacje
każdy SZBD jest wykorzystywany w co najmniej jednej aplikacji globalnej
Wykorzystywana jest Architektura ANI/SPARC.
- Powielanie danych w rozproszonych bazach danych jest procesem naturalnym.
Przypomnienie - w przypadku baz stacjonarnych mieliśmy 3 poziomy:
- fizyczny
Dane przechowywane
dokładnie w jednym miejscu
- koncepcyjny
- widoki użytkowników (jedni tylko czytają, a inni mają pewne prawa modyfikacji - chodzi generalnie
o role)
W systemie rozproszonym musi być przynajmniej jedna aplikacja globalna, która kontroluje całość
systemu rozproszonego (fragmentacja i replikacja są czym naturalnym)
Natomiast w stacjonarnych bazach danych było troszeczkę inaczej:
- bezpieczeństwo danych
- współbieżność dostępu
- niepowielanie danych - 1 fakt modyfikowanej rzeczywistości występuje tylko raz w bazie danych, tu
replikacja
Zalety RSZBD
+ odzwierciedlenie struktury organizacyjnej
+ większe możliwości współużytkowania danych oraz lokalna autonomia
+ zwiększenie dostępności danych
+ większa wiarygodność (kwestia dostępności danych)
+ większa wydajność systemu
+ rozwój modularny
Zwiększenie dostępności danych - jeśli serwer uszkodzi się, to nie korzysta z danych z bazy danych
węzła; tu dane mogą być replikowane w inne miejsce; Użytkownik nie zauważa różnicy, bowiem
wszystko działa tak samo - no może trochę wolniej.
Większa wydajność systemu - wszystkie zapytania lądują do 1 serwera, w związku z czym tworzy się
wąskie gardło - niekorzystne działanie; rozwiązaniem jest rozłożenie między węzłami, zostaje
zwiększona wydajność systemu
Rozwój modularny - gdy system homogeniczny, to dołączenie nowego węzła (rozumianego jako np.
nowy oddział banku) nie stanowi problemu
Wady RSZBD
- złożoność
- koszty
- trudniejsze zapewnienie bezpieczeństwa
- trudniejsza kontrola integralności
- brak standardów
- brak doświadczenia
- bardziej skomplikowane projektowanie bazy danych
z brakiem standardów i doświadczenia to nie do końca prawda, bo były już próby ujednolicenia
Co do trudniejszego projektowania bazy danych:
- dodatkowo bierze się pod uwagę podział danych, alokację danych, zapisywanie poszcz. kopii itd.
Czemu trudniej zapewnić bezpieczeństwo w takiej bazie?
- problem autoryzacji, dostępu do kopii, konieczność pilnowania
- bezpieczeństwo transferu danych
- trudniejsza kontrola integralności, zmiana oryginału wiąże się ze zmianą kopii
Problemy rozproszonych baz danych
- modyfikacja danych rozproszonych (realizacja transakcji rozproszonych)
- odtwarzanie poprawnego stanu bazy po awarii
- optymalizacja zapytań bardziej złożona niż w przypadku danych scentralizowanych
- kontrola współbieżna dostępu do danych (zwłaszcza w kontekście wielu kopii poj.tabeli)
- potencjalna niejednorodność systemów lokalnych (modele danych, języki zapytań, systemy
operacyjne, platformy sprzętowe)
Co to jest Migawka i jej parametry
Migawka
- Replika implementowana jako tzw. migawka (ang. snapshot), zwana również perspektywą
zmaterializowaną (ang. materialized view).
- W swojej definicji zawiera zapytanie udostępniające rekordy tabeli źródłowej.
- Uprawnienia systemowe użytkownika umożliwiające tworzenie migawek (min. CREATE
SNAPSHOT, CREATE MATERIALIZED VIEW)
- Fizyczne przechowywana jako tabela z indeksem.
- Stowarzyszony z migawką proces odświeżania.
W standardowy przypadku definicja migawki składa się z następujących elementów:
- nazwy migawki
- momentu wypełnienia migawki danymi
- specyfikacji sposobu odświeżania
- specyfikacji momentu rozpoczęcia automatycznego odświeżania
- specyfikacji częstotliwości odświeżania
- typu migawki
- zapytania określającego zakres danych dostępnych w migawce.
CREATE SNAPSHOT nazwa_migawki
BUILD moment_wypelnienia_danymi
REFRESH sposob_odswiezenia
START WITH data_rozpoczecia_odswiezania
NEXT okres_odswiezania
WITH identyfikacja_rekordow
AS zapytanie
Tworzenie kursorów i jego atrybuty
Kursory
W celu wykonania rozkazu SQL system tworzy pewien obszar roboczy nazywany przestrzenią
kontekstu.
W przestrzeni tej przechowywane są informacje o przetwarzanym programie w PL/SQL.
PL/SQL pozwala nazwad przestrzeo kontekstu i odwoływad się do zawartych w niej danych za
pomocą mechanizmu nazywanego kursorem.
Jeżeli zapytanie zwraca wiele wierszy, to możliwe jest utworzenie kursora, który będzie
umożliwiał dostęp do pojedynczych wierszy ze zwracanej listy.
Kursory jawne są jedyną metodą umożliwiającą w programie PL/SQL odczyt zbioru rekordów.
Sposób użycia kursora:
zadeklarowanie w sekcji DECLARE.
otwarcie, czyli wykonanie zapytania związanego z kursorem - odczytane z bazy danych
rekordy trafią do pamięci.
Pobieranie kolejnych rekordów. (po pobrani wskaźnik przesuwa się o 1)
Zamknięcie kursora - zwolnienie obszaru pamięci przydzielonego do kursora.
DECLARE
CURSOR nazwa_kursora[(lista_parametrow)] IS {zapytanie | RETURN typ_recordowy}
[FOR UPDATE [OF lista_atrybutow]];
nazwa_parametru type [{ := | DEFAULT } wartośd domyślna
Statystyka i Histogramy w Oraclu
Statystyki
dla relacji:
- liczba rekordów
- liczba bloków,
- średnia długość rekordu
bloki tworzą spójny obszar -> extent -> segment -> perspektywa BD
dla atrybutów relacji:
- liczba różnych wartości,
- liczba rekordów, w których atrybut ma wartość pustą
- rozkład wartości (histogram),
dla indeksu:
- liczna bloków-liści,
- wysokość drzewa,
- wskaźnik zgrupowania indeksu,
statystyki systemowe:
- wykorzystanie procesora,
- liczba operacji we/wy.
Histogramy
Histogram - szczegółowa statystyka opisująca rozkład wartości określonej kolumny relacji
Rodzaje histogramów:
histogram o zrównoważonej wysokości - zbiór wartości kolumny dzielony, jest na przedziały o tej
samej ( w przybliżeniu) liczbie rekordów; przykład (zakres wartości <1,100>, l. przedziałów: 10);
histogramy częstotliwości - każda wartość kolumny odpowiada jednemu przedziałowi, każdy
przedział zawiera liczbę wystąpień tej wartości - tworzony wtedy, gdy liczba wartości kolumny
jest mniejsza bądź równa żądanej liczbie przedziałów histogramu,
Histogramy należy tworzyć tylko dla kolumn z nierównomiernym rozkładem wartości często
używanych w warunkach zapytania
gdy zmieni się rozkład danych kolumny, koniecznie jest ponowne wygenerowanie histogramu.
Przywileje użytkowników
Przywilej - prawo wykonywania przez użytkownika określonej akcji w bazie danych dostępu do
określonego obiektu
Rodzaje przywilejów:
- systemowe
- obiektowe
Przywileje systemowe
- prawa wykonania określonej akcji lub wykonania określonej operacji na wskazanym typie obiektu w
schemacie bazy danych
Przykład:
- CREATE SESSION
// tworzenie sesji, przyłączanie do BD, nie precyzujemy który obiekt konkretnie
- CREATE TABLE
// utworzenie tabeli w schemacie danego użytkownika
- CREATE ANY TABLE
// utworzenie dowolnej tabeli w dowolnym schemacie, niekoniecznie nasz
- SELECT ANY TABLE
// pozyskiwanie danych z dowolnej tabeli
- INSERT ANY TABLE
// wprowadzanie danych do dowolnych tabel
- DROP ANY VIEW
// usunięcie dowolnej perspektywy, niekon. tej w naszym schemacie
- Polecenie GRANT służy do nadawania użytkownikowi przywilejów systemowych
- PUBLIC służy do nadawania przywilejów wszystkim użytkownikom
- WITH ADMIN OPTION umożliwia użytkownikowi, który otrzymał przywilej przekazania go dalej
innym użytkownikom
przykład:
GRANT CREATE SESSION, SELECT ANY TABLE TO B;
GRANT CREATE TABLE TO A;
REVOKE SELECT ANY TABLE FROM B;
Przywileje obiektowe - prawa wykonania określonej operacji na wskazanym obiekcie w określonym schemacie bazy danych
- SELECT ON wypozyczenia
- ALTER ON samochody
- EXECUTE ON Wyszukaj_samochod
- REFERENCES ON samochody
GRANT <przywileje> | ALL ON <obiekt>
TO <użytkownicy> | PUBLIC
[WITH GRANT OPTION];
6.
7.
8. Struktura fizyczna Oracle
Na bazę danych składa się kilka podstawowych elementów. Poza samymi plikami danych przechowującymi informacje gromadzone w bazie danych, mamy do czynienia jeszcze z takimi rodzajami plików jak:
Pliki kontrolne
Zawierają informacje o bazie danych jako takiej. Przechowują informacje o ostatnim SCN, o strukturze bazy. Są bardzo ważne, bez nich nie uruchomimy instancji.
Plik parametrów
Zawiera parametry niezbędne do pracy instancji -np. wielkość buforów w SGA. Czytany jest przy starcie instancji.
Pliki dziennika powtórzeń
Do nich zapisywane są informacje o zmianach w bazie danych, zanim jeszcze te zmiany zostaną uwzględnione w plikach danych. W sytuacji gdy nastąpi awaria i dane które występowały tylko pod postacią tzw. brudnych bloków w buforze db_cache mogą zostać odtworzone na podstawie tych plików.
Zarchiwizowane pliki dziennika powtórzeń
Są kopiami plików dziennika powtórzeń które nie są potrzebne do samego działania instancji, za to są wykorzystywane przy tworzeniu kopii zapasowych i odtwarzaniu bazy danych.
Pliki backupu
Pliki kopii zapasowych są plikami wykorzystywanymi do odtworzenia bazy danych po awarii.
Pliki trace i alert log
Alert log jest plikiem do którego pisane są informacje o ewentualnych problemach instancji lub ważnych wydarzeniach - takich jak wyłączenie czy włączenie bazy danych. Do trace file zapisywane są szczegóły błędów, a także informacje nie istotne dla samego działania instancji - takie jak wyniki śledzenia sesji pod kątem stosowanych planów wykonania zapytań.
9. Dwufazowy schemat zatwierdzania transakcji
Nie będę kopiował tutaj połowy notatek z wykładu. Informacje na ten temat w notatkach z wykładu 9.
Pytania z 2. terminu dla wyjeżdżających na Erasmus:
Wymień zawartość katalogu globalnego.
Opisz schematy rozproszonych baz danych.
Co zawiera SGA?
Podaj przykłady pętli z kursorem i pętli z podzapytaniem.
Wymień i opisz tryby przekazywania parametrów.
Opisz różnice między migawkami prostymi a złożonymi.
Opisz parametry wyzwalacza.
Opisz statystyki i histogramy, tworzone na potrzeby optymalizatora kosztowego.
Napisz funkcję, która będzie uzupełniać tabelę WYPOŻYCZENIA kolejnymi rekordami, każdemu przypisze identyfikator wypożyczenia z sekwencji, tylko dla samochodów Opel Astra o koszcie dnia mniejszym niż 200 zł, jeśli nie będzie klienta o podanym identyfikatorze, to uzupełni również tabelę KLIENCI.
Napisz funkcję, która będzie wczytywać od użytkownika tekst i liczbę, wypisywać tekst tyle razy ile wynosi wartość podanej liczby, a jeśli wartość tej liczby jest mniejsza niż 1 lub większa niż 10, to wypisze komunikat "Błędny zakres liczby" przy pomocy rzuconego wyjątku użytkownika.
student z magisterki - egzamin 2007 rok napisał(a):
10 pytań teoretycznych + 2 zadania, wyświetlane na slajdach (strasznie mało czasu). Pytania były takie jak - parametry kursora, statyczne i dynamiczne sieci rsbd, pakiety, węzły w zapytaniach rozproszonych. Zadania były z wykładów - napisać pakiet wraz z 2 funkcjami, które tłumaczyły temperaturę oraz napsiać program wykorzystujący kursor do wyświetlenia trzech osób (tabele na slajdach), które najczęściej wynajmowały samochody (największy koszt)."
"Zadanie teoretyczne:
1. Omów propagację wyjątków w PL/SQL.
2. Omów sekwencję, poda definicję utworzenia.
3. Sposób tworzenia kursora, omów atrybuty kursora.
4. Omów schemat statyczny przetwarzania zapytań rozproszonych.
5. Omów schemat dynamiczny przetwarzania zapytań rozproszonych.
6. Omów parametry wyzwalaczy.
7. Przybliż pojęcie pakietu oraz podaj kroki, które należy wykonać potrzebne przy jego tworzeniu.
8. Omów transakcje rozproszoną oraz węzły uczestniczące w takiej transakcji.
9. Omów strukturę logiczną bazy danych Oracle.
10. Komunikacja aplikacja baza danych - dostęp do zbioru nazw usług.
zestaw 1 napisał(a):
1. Charakterystyka rozproszonych baz danych.
2. Programy składowane omówić.
3. Jak pobierane są rekordy z kursora.
4. Struktura fizyczna i logiczna Oracle.
5. Omówić przywileje użytkowników.
6. nie pamiętam
7. Transakcja rozproszona, omówić węzły występujące w tej transakcji.
1. Struktura Oracle
2. Logiczna struktura.
3. Procesy drugoplanowe
4. Tabela dual.
5. Anomalie transakcji współbieżnych.
6. Transakcje rozproszone.
7. Migawki- definicja, co jest w definicji
8. Co zrobić z drugą transakcja współbiezna
9. Parametry transakcji
10. Do czego służy klauzula WHERE CURRENT OF
11. &TYPE oraz %ROWTYPE
12. Kursor niejawny
13. Definicja kursora oraz co wyswietla liczbe rekordów
14. Parametry wyzwalacza
15. jak przekazujemy parametry do programu
1. Opisać kursory i dzięki czemu mamy dostęp do licznika wartości pobranych z kursora
2. Opisać schemat bazy danych Orace
3. Opisać schemat logiczny
4. Coś o tranzakcjach był - jak przebiega
5. Opisać $TYPE, %ROWTYPE
6. Opisać parametry migawki
7. Parametry wyzwalacza
8. Czego nie można używać w bloku PL/SQL
1. struktura logiczna systemu oracle
2. co można zrobić z długą transakcją (- to był hit )
3. opisać kursor niejawny
2003 rok napisał(a):
Pytania z egazminu z baz danych (w skrĂłcie):
1. Wymień klasyczne modele danych i omów jeden z nich.
2. Omów składniki SZBD.
3. Wymień operacje jakie można wykonać na relacyjnej BD.
4. Jakie własno�ci powinna mieć każda transakcja?
5. OmĂłw katalog systemowy.
6. Po co normalizować, 1PN, 2PN.
7. Wymienić cechy OBD - omówić dwie.
8. Zadanie z SQL (utworzyć serię zapytań modyfikujšcych i wyszukujšcych informacje w bazie danych).
2009 rok napisał(a):
1. Napisac modyfikacje rekordow spelniajacych warunek w VB
2. Wlasciwosci transakcji
3. Co opisuje model
4. Po co normalizowac, cechy normalizacji
5. Czym jest nazwa w standardzie SQL
6. Cechy ERD w UML
7. Architektura ANSI/SPARC
8. Czym sie rozni tabela tymczasowa od perspektywy
9. Na czym polega analiza semantyczna zapytania
10. Sposoby optymalizacji
11. Co przechowuj katalog systemowy
12. Rodzaje operacji w algebrze relacji
13. Na czym polega kompilacja zapytania (?)
14. Współbieznosc w transakcjach i anomalie z tym zwiazane.
-algebra relacji,
-kompilacja
-słownik, katalog systemowy (mam nadzieje to to samo ;])
-coĹ› z anomaliami transakcji
Pytania 1 termin
Grupa A
1.
2. Omów strukturę logiczną oraz fizyczną bazy danych Oracle
3. Omów sekwencje - podaj definicje utworzenia sekwencji
4. Omów schemat statyczny i dynamiczny przetwarzania zapytań rozproszonych
5. Omów sposoby pobieranie rekordów z kursorów
6. Omów przywileje użytkowników
7. Omów propagację wyjątków, podaj sposób definiowania wyjątków
8. Zdefiniuj kursor, dzięki któremu będzie można wyświetlić trzech klientów mających zamówienia o największej wartości. Dołącz obsługę wyjątków
Grupa B
1.
2. Omów propagację wyjątków, podaj sposób definiowania wyjątków
3. Sposób tworzenia kursorów, omów atrybuty kursora
4. Do czego służą atrybuty %TYPE oraz %ROWTYPE
5. Omów parametry wyzwalaczy
6. Przybliż pojęcie pakietu oraz podaj kroki, które należy wykonać potrzebne przy jego tworzeniu
7. Omów transakcję rozproszoną oraz węzły uczestniczące w takiej transakcji
8. Zdefiniuj kursor, dzięki któremu będzie można wyświetlić trzech klientów mających zamówienia o największej wartości. Dołącz obsługę wyjątków
praktyczne II st
Tabele:
SAMOCHODY (ID_SAM, ID_KLI, MODEL, MARKA, DAT_WYPRODUK, ?, ?, KOSZT_DNIA)
KLIENCI (ID_KLI, NAZWISKO, IMIE, NR_DOWODU, MIEJSCOWOSC, ULICA)
WYPOZYCZENIA (ID_WYP, ID_SAM, ID_KLI, DATA_WYP, DATA_ZWR, KOSZT)
Pytania:
1. Wyświetl liczbę samochodów dostępnych w wypożyczalni w każdym przedziale cenowym
2. Napisz procedurę która dla podanej marki samochodu wyświetli imiona i nazwiska wszystkich klientów, którzy wypożyczali samochody tej marki. Wykorzystaj pętlę FOR z kursorem Wyeliminuj powtarzających się klientów. Dane mają być posortowane alfabetycznie według nazwisk.
3. Napisz funkcję która będzie wstawiała dane do tabeli WYPOZYCZENIA. Przy jej wywołaniu podawane będą wartości wszystkich atrybutów z wyjątkiem wartości atrybutu KOSZT. Wartość ta będzie wyliczana na podstawie wartości DATA_WYP, DATA_ZWR z tabeli WYPOZYCZENIA oraz wartości KOSZT_DNIA z tabeli SAMOCHODY.
4. Napisz kursor wprowadzający do tabeli WYPOZYCZENIA rekordy rejestrujące nowe WYPOZYCZNEIA. Dotyczy ono wszystkich samochodów marki OPEL ASTRA których KOSZT_DNIA nie przekracza 200 zł. Aby można było zarejestrować wypożyczenie należy wcześniej wprowadzić do tabeli KLIENT nowego klienta napisz wyzwalacz dla tabeli WYPOZYCZENIA oraz KLIENCI, którzy korzystając z ?????????????? wypożyczeniom kolejne numery identyfikacyjne
5. Napisać procedurę, która samochodom marki FORD wyprodukowanym przed 2000 rokiem obniża koszt całkowitego wypożyczenia o 10%, natomiast wypożyczonym po 2000 roku, ale przed 2007 podnosi koszt całkowitego wypożyczenia o 7% Dodaj do powyższej procedury obsługę błędów, jeśli nie będzie wypożyczonych samochodów.
Treść pytania 4 z praktycznych:
Napisz procedurę wprowadzającą do tabeli WYPOZYCZENIA rekordy rejestrujące nowe WYPOZYCZENIA. Dotyczy ono wszystkich samochodó marki OPEL ASTRA, których koszt_dnia nie przekracza 200 zł. Aby można było zarejstrować wypożyczenie, należy wcześniej wprowadzić do tabeli KLIENT nowego klienta jeśli takiego nie ma w bazie. Napisz wyzwalacz dla tabeli WYPOZYCZENIA oraz KLIENCI, który korzystając z sekwencji, nadawać będzie wprowadzonym wypożyczeniom oraz klientom kolejne numery identyfikacyjne.