BDII Opracowania egzamin, Bazy danych II


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

0x01 graphic


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)

0x01 graphic


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

0x01 graphic


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:

  1. opisz architekture wzorcową RSZBD.

0x01 graphic

  1. 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

  1. 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

  1. 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

  1. 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??

  1. 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.

0x01 graphic

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.

0x01 graphic

  1. 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.


  1. 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];

  1. 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:

  1. 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)

  1. 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

  1. 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

  1. 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.

  1. 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.



Wyszukiwarka