background image

1.  Różnie pomiędzy modelem obiektowym a relacyjnym. 

Model relacyjny – płaski, 

dane grupowane są w relacje, które reprezentowane są przez tablice, 

Relacje zgrupowane są w tzw. schematy bazy danych. Relacją może być tabela zawierająca 
dane teleadresowe 

pracowników, zaś schemat może zawierać wszystkie dane dotyczące firmy.

 

Model obiektowy – bardziej złożony 
- naturalne modelowanie encji, 
- i relacji pomiędzy nimi 
- dobra reprezentacja danych 
- szybka nawigacja (np. nie trzeba tak biegać pomiędzy tabelami) 
- dokładność modelowania 
- bezpieczeństwo – które zapewnia hermetyzacja (a to mamy dzięki obiektowości) 
- integracja z językami programowania 
- w obiektowym mamy: klasy, obiekty  
 

2.  Nazewnictwo - co jest obiektem, co klasą etc. 

Klasy – abstrakcyjna struktura danych, ma interfejs użytkownika, użytkownicy mają interfejs do 
wykorzystywania 
Obiekty – mają atrybuty, reprezentują dane i metody wykorzystywane na rzecz obiektów, wykonują 
operacje na atrybutach, 
Atrybuty – mogą być proste, lub złożone (czyli zdefiniowane przez twórców). 
 

3.  Co to jest OID (Object ID). 

ID Obiektu (OID) – jest określony przez System Zarządzania Obiektową Bazą Danych (SZOBD). 

4.  CREATE TYPE.... CREATE TABLE 

CREATE TYPE Można zdefiniować złożone typy danych i typy kolekcyjne (tabele zagnieżdżone i tablice 
VARRAY). W poleceniu tworzenia typu można określić: 
- typ nadrzędny, od którego dany typ dziedziczy (klauzula UNDER), 
- atrybuty typu obiektowego i określenia ich typu, 
- Specyfikację dziedziczenia (klauzuje OVERRIDING, FINAL, INSTANTABLE), 
- Specyfikację podprogramów (klauzule MEMBER, STATIC), 
- specyfikację funkcji MAP oraz ORDER. 
CREATE TABLE Można za jego pomocą: 
-określić wartości domyślne dla kolumn tabeli 
-zdefiniować ograniczenia dla poszczególnych kolumn tabeli, 
-określić sposoby identyfikacji obiektów (wierszy tabeli), 
-określić sposób przechowywania tabel zagnieżdżonych i tablic VARRAY 
CREATE TYPE osoba AS OBJECT 
( nazwisko VARCHAR2(30), 
  telefon VARCHAR2(30) );  

CREATE TABLE osoba_tab OF osoba; 

CREATE TABLE osoba 
(  id NUMBER (4), 
   Os osoba); 
 
 

5.  Jakie warunki musi spełniać typ tablicowy, by mógł być wykorzystany jako tabela 

zagnieżdżona? 

background image

Musi być jednowymiarowy. Można modelować tablice wielowymiarowe, tworząc tabele 
zagnieżdżone których  elementy są również tabele zagnieżdżone. 
 

6.  Jak wypełnia się tabelę zbudowaną w oparciu o obiekty? Chodzi o wykorzystanie 

konstruktora. 

INSERT INTO klinet_obj_tab VALUES( klient_typ(102,’nowak’,’223243242345’) ); 
 

7.  co to jest referencja? I jak jest realizowana? Podaj przykład. 

Referencja:  to wartość, która zawiera informacje o położeniu innej wartości w pamięci lub nośniku 
danych. 
CREATE TYPE osoba AS OBJCT 
( nazwisko VARCHAR2(30), Manager REF osoba  ); 
 

8.  Jak budujemy strukturę danych, jeśli jest referencja? Chodzi o kolejność budowania typów 

obiektowych i tabel i ich wypełniania. 

DECLARE ZamowienieRef REF TO zamowienie; 
SELECT REF (po) INTO ZamowienieRef 
FROM zamowienie_tab po 
 WHERE po.id = 1000376; 
 

9.  Co robią polecenia związane z referencjami: 

- IS DANGLING- sprawdzenie warunku, czy dana referencja jest zawieszona 
- DEREF- dereferencja – dostęp do obiektu wskazywanego przez referencję 

 

10. Dziedziczenie w typach obiektowych: 

- UNDER- klauzula- typ nadrzędny, od którego dany typ dziedziczy 

- OVERRIDING- Specyfikację dziedziczenia. W przeładowaniu metody wykorzystujemy słowo 
kluczowe OVERRIDING 

- FINAL- Specyfikację dziedziczenia. Domyślnie typy obiektowe są traktowane jako FINAL. 

- INSTANTABLE- Specyfikację dziedziczenia. Domyślnie typ obiektowy jest INSTANTIABLE - można na 
jego podstawie tworzyć obiekty. 

11. Wartość NULL: obiekt o wartości NULL i obiekt zawierający wartości NULL - przedstaw i 
opisz różnice. 

Obiekt o wartości NULL to tzw. „atomowy NULL” (który nie istnieje) to nie to samo, co obiekt 
zawierający atrybuty o wartości NULL.(ten ma puste atrybuty).  
CRATE TYPE osoba AS OBJECT  
(  name VARCHAR2(30), 
   telefon VARCHAR2(30)  ); 
CRATE TABLE kontakty  
( kontakt osoba, 
  data DATE ); 
INSERT INTO kontakty VALUES (osoba(NULL,NULL),’23-jan-1020’);  

background image

INSERT INTO kontakty VALUES ( NULL, ’23-jan-2010’); 
 

12. Klauzula DEFAULT przy tworzeniu tabel - jak działa i jak zaimplementować (czyli: napisz 
linijkę jak to ma wyglądać). 

Określanie wartości domyślnej – przy deklaracji kolumny tabeli (jeśli ta kolumna jest obiektem lub 
kolekcją!) Jak działa? to wywołanie konstruktora 
CREATE TABLE kontakty ( 
Kontakt osoba DEFAULT osoba (‘Kowalski’,’235r4235324’) 
); 
 

13. Jak możemy zaimplemetować kolekcje w Oracle obiektowym? (odp. tabele zagnieżdżone i 
tabele zmiennej długości, proszę znać również nazwy angielskie). 

- tabele zagnieżdżone (ang. nested tables) To nieuporządkowany zbiór elementów tego samego 
typu. Mają jedną kolumnę typu prostego lub obiektowego zdefiniowanego przez użytkownika. Gdy 
kolumna jest obiektowa  tabela ta może być traktowana jako wielokolumnowa (poszczególne 
kolumny odpowiadają atrybutom typu obiektowego). 
 
-tabele o zmiennej długości (ang. varray) VARRAY – to wielopoziomowe tablice o zmiennej długości. 
Mogą być przechowywane na dwa sposoby: 1) może to być tablica VARRAY elementów typu VARRAY 
2) albo tablica VARRAY tablic zagnieżdżonych. Jeśli ma mniej niż 4 000 bajtów  jest przechowywana 
razem z wierszem tabeli. Tablice o większych rozmiarach przechowywane są w obiekcie typu LOB 
(ang. Large Object). 

 

14. Wymień 2 cechy tabel zagnieżdżonych (slajd numer 3) 

1. Mogą mieć dowolną liczbę elementów (wierszy), nie jest określona ich liczba i porządek. 2. 
Dodawanie, usuwanie i pobieranie wierszy – jak w relacyjnej. 

 

15. Wymień 2 cechy tabel zmiennej długości (slajd numer 4) 

1. To uporządkowana kolekcja elementów. 2. Każdy ma swój indeks (numer) identyfikujący 

16. Jak traktowana jest tabela zagnieżdżona? kiedy jako jednokolumnowa, a kiedy jako 
wielokolumnowa? 

Gdy kolumna jest obiektowa  tabela ta może być traktowana jako wielokolumnowa (poszczególne 
kolumny odpowiadają atrybutom typu obiektowego). 
 

17. Podaj jak definiujemy tabelę zagnieżdżoną (przykład) 

CREATE TYPE nazwa_typu AS TABLE OF typ_kolumny;      (AS TABLE nie AS OBJECT !!!) 

18. Gdzie jest przechowywana tabela  zagnieżdżona? (slajd numr 7) 

Oracle przechowuje dane tabeli zagnieżdżonej dla wszystkich wierszy (obiektów) tabeli nadrzędnej w 
jednej odrębnej tabeli (w tzw. tabeli składowej, ang. stored table). 

19. Podaj przykład wykorzsytania tabeli zgnieżdżonej (czyli deklaracja typów obiektowych, 
tablicowego i tabeli). 

CREATE TYPE szczegóły_typ AS OBJECT ( 
towar  CHAR(15), 

background image

ilosc  NUMBER, 
cena   NUMBER  ); 
  
CREATE TYPE szczegoly_typtab AS TABLE OF szczegoly_typ; 
  
CREATE TABLE zamowienia ( 
nr_zam  CHAR(10), 
klient  CHAR (15), 
data    DATE, 
szczegoly_zam szczegoly_typtab) 
NESTED TABLE szczegoly_zam STORE AS tabela_skladowa;  
 

20. Co to sa kolekcje wielopoziomowe? 

Typy kolekcji wielopoziomowych to takie typy, których elementami są inne kolekcje: 
- tabela zagnieżdżona w tabeli zagnieżdżonej, 
- tabela zagnieżdżona w tabeli VARRAY, 
- tablica VARRAY typu tabela zagnieżdżona, 
- tablica VARRAY typu tablica VARRAY, 
- tabela zagnieżdżona lub tablica VARRAY typu zdefiniowanego przez użytkownika, zawierająca 
atrybut typu tabela zagnieżdżona lub VARRAY. 
Tak samo, jak typy jednopoziomowe, typy wielopoziomowe mogą być używane dla kolumn tabel 
relacyjnych oraz dla atrybutów tabel obiektowych. 
 

21. Jakie są kombinacje dotyczące przechowywania tablic zmiennej długości? (slajd numer 15) i 
jakie ograniczenia? 

Mogą być przechowywane na dwa sposoby: 1) może to być tablica VARRAY elementów typu VARRAY 
2) albo tablica VARRAY tablic zagnieżdżonych. 

 

22. Co to jest metoda i do czego służy (w kontekście Oracle obiektowego). 

Związane bezpośrednio z danym obiektem. Dzięki nim aplikacje uzyskują dostęp do atrybutów 
obiektu. Mają wbudowany parametr SELF – wskazujący na instancję obiektu, dla którego metoda 
została wywołana.Mogą odwoływać się do atrybutów i metod obiektu bez kwalifikatora SELF. 
Przy definiowaniu – wskazuje na typ metody i nazwę, treść metody jest w CREATE TYPE BODY. 
 

23. Zasady implementacji metody MEMBER. 

W Create type jest ona implemetowana a w create body zostaje opisany sposób jej działania 

24. Podaj przykład metody do wskazanego typu obiektowego. 

 CREATE TYPE liczba_wymierna AS OBJECT 
( licznik INTEGER, mianownik INTEGER, MEMBER PROCEDURE normalizacja, …. ); 
CREATETYPE BODY liczba_wymierna AS               --dla typu 
MEMBER PROCEDURE normalizacja IS                 --wypisujemy treść procedury 
g INTEGER; 
BEGIN 
g := gcd(SELF.num, SELF.den;             --lub: g:= gcd(num,den); 
num := num/g; 
den := den/g; 
END normalizacja; 

background image

….  
 END; 
 

25. Zasady implementacji metody MAP. 

– można porównywać obiekty poprzez odwzorowanie (mapowanie, ang. mapping) instancji obiektu 
na wartość skalarną DATE, NUMBER lub VARCHAR2 
     – Przy wywołaniu metody, dla każdego obiektu (każdej instancji obiektu) poszczególne obiekty są 
‘rzutowane’ na oś – porządkowane zgodnie z klasycznymi mechanizmami porządkowania 
     – Funkcja MAP MEMBER jest baz parametrów, zwraca wartość skalarną jednego z typów prostych 
 – Jest wywoływana automatycznie przez system w momencie wykonywania poleceń SQL 
zawierających klauzule DISTINCT, GROUP BY i ORDER BY. 
 

26. Podaj przykład metody MAP do wskazanego typu obiektowego. 

metoda MAP MEMBER o nazwie pole() – porównywanie info o prostokątach na podstawie pola 
powierzchni: 
CREATE TYPE prostokat_typ AS OBJECT 
( dlugosc NUMBER, szerokosc NUMBER, MAP MEMBER FUNCTION pole RETURN NUMBER, …. ); 
CREATETYPE BODY prostokat_typ AS MAP MEMBER FUNCTION pole RETURN NUMBER IS 
BEGIN 
  RETURN dlugosc*szerokosc; 
END POLE; 
… 
END; 
 

27. Zasady implementacji metody ORDER. 

ORDER (ang.order methods) do bezpośredniego porównywania 2-ch obiektów (bieżącego z drugim, 
przekazanym jako parametr), przechowują info, który obiekt jest ‘mniejszy’ a który ‘większy’ albo czy 
‘równe’ na podstawie podanego kryterium. Metody zwracają: liczbę dodatnią (+), liczbę ujemną(-) 
albo 0  ta liczba wskazuje, czy aktualny obiekt (SELF) jest większy, mniejszy czy równy temu z 
parametrem. Metoda wykonywana automatycznie zawsze wtedy, gdy wykonywana jest operacja 
porównywania obiektów. W typie obiektowym można zadeklarować co najwyżej jedną metodę 
ORDER (lub MAP). Metodę ORDER można zadeklarować jedynie w takim typie obiektowym, który nie 
jest dziedziczony z innego typu (czyli nie można deklarować w typie pochodnym) 
 

28. Podaj przykład metody ORDER do wskazanego typu obiektowego. 

CREATE TYPE klient_typ AS OBJECT 
( id NUMBER, nazwisko VARCHAR2(30), adres VARCHAR2(30), 
ORDER MEMBER FUNCTION porownaj (k klient_typ) RETURN INTEGER ); 
CREATE TYPE BODY klient_typ AS 
ORDER MEMBER FUNCTION porownaj (k klient_typ) RETURN INTEGER IS 
  BEGIN 
     IF id < k.id THEN 
         RETURN -1;       --moze byc dowolna liczba ujemna 
    ELSIF id > k.id THEN 
          RETURN 1;         --moze byc dowolna dodatnia 
    ELSE 
       RETURN 0; 

background image

    ENDIF;                        --jak widać składnia podoba do tej z bash’a linuksowego 
  END; 
END 
 

29. Zasady implementacji metod typu STATIC. 

Związane są z określonym typem obiektowym -  a nie z instancją typu (czyli analogicznie:  tak jakby 
dotyczą całej klasy, a nie pojedynczych obiektów). Wykorzystywane do operacji globalnych dla typu 
obiektowego, bez odwoływania się do konkretnej instancji. 
Nie jest wykorzystywany parametr SELF. 
Wywołanie:  
nazwa_typu.metoda(parametry); 
 

30. Zasady dziedziczenia  

FINAL/NOT FINAL,  
Aby umożliwić dziedziczenie z danego typu obiektowego, polecenie definicji typu musi zawierać 
słowo kluczowe NOT FINAL:  
CREATE TYPE osoba_objtyp AS OBJECT(  
id              NUMBER,  
nazwisko        VARCHAR2(30),  
adres           VARCHAR2(100)) NOT FINAL; 
Jeżeli   słowo   kluczowe   NOT FINAL nie  będzie  dołączone   do   definicji  typu,  to  system przyjmie 
domyślnie parametr FINAL co oznacza, że na podstawie tego typu nie będą mogły być tworzone typy 
podrzędne  
Parametr FINAL/NOT FINAL może być zmieniony za pomocą polecenia ALTER  TYPE, np.:  
ALTER TYPE osoba_objtyp FINAL;  
Zmianę parametru NOT FINAL na FINAL można wykonać jedynie w przypadku, gdy dany typ nie 
posiada typów pochodnych. 
UNDER. 
Tworzenie     typu   podrzędnego     odbywa    się  przy  pomocy     polecenia   CREATE      TYPE     z  
parametrem UNDER:  
CREATE TYPE student_objtyp UNDER osoba_objtyp(  
id_wydz         NUMBER,  
kierunek        VARCHAR2(30)) NOT FINAL;  
Powyższe polecenie   tworzy    typ  o   nazwie    student_objtyp    jako  typ   podrzędny    typu 
ooba_objtysp. Typ ten dziedziczy   wszystkie atrybuty   zdefiniowane    w   definicji  typu  
osoba_objtyp lub odziedziczone przez ten typ, oraz wszystkie metody zdefiniowane w typie 
osoba_objtyp i odziedziczone przez ten typ. 

 

31. Zasady dziedziczenia po typie podrzędnym. 

UNDER. 
Tworzenie     typu   podrzędnego     odbywa    się  przy  pomocy     polecenia   CREATE      TYPE     z  
parametrem UNDER:  
CREATE TYPE student_objtyp UNDER osoba_objtyp(  
id_wydz         NUMBER,  
kierunek        VARCHAR2(30)) NOT FINAL;  
Powyższe polecenie   tworzy    typ  o   nazwie    student_objtyp    jako  typ   podrzędny    typu 
ooba_objtysp. Typ ten dziedziczy   wszystkie atrybuty   zdefiniowane    w   definicji  typu  

background image

osoba_objtyp lub odziedziczone przez ten typ, oraz wszystkie metody zdefiniowane w typie 
osoba_objtyp i odziedziczone przez ten typ. 

 

32. Podaj przykład referencji obiektowej. 

Rozumiemy jak wskaźnik do obiektu wierszowego. 
CREATE TABLE osoba 
(  id NUMBER (4), 
   nazw_obj nazw_obj_typ, 
   adres_ref  REF adres_obj_typ SCOPE IS adres_obj_tab); 

 

33. co to jest OID? (pytanie jak w pliku z pytaniami numer W01) 

ID Obiektu (OID) – jest określony przez System Zarządzania Obiektową Bazą Danych (SZOBD). 

34. Co robi klauzula SCOPE FOR przy referencji? 

ogranicza do przechowywania referencji wyłącznie do  jednej tabeli obiektowej. 
Podczas   gdy   referencje   o   nieograniczonym   zakresie   wymagają  co najmniej   36   bajtów,    
referencje   o  ograniczonym      zakresie   wymagają  tylko   tyle   bajtów   ile zawiera OID obiektu 
wskazywanego i mogą zawierać mniej niż 16 bajtów (dla OID opartych na kluczu głównym). 
 

35. Default i konstruktory - pytanie jak w pliku z pytaniami numer W01 

Default 
Określanie wartości domyślnej – przy deklaracji kolumny tabeli  
(jeśli ta kolumna jest obiektem lub kolekcją!)  
Jak działa? to wywołanie konstruktora 
CREATE TABLE kontakty ( 
Kontakt osoba DEFAULT osoba (‘Kowalski’,’235r4235324’) 
); 
Konstruktory 
Nazwa konstruktora = nazwa typu obiektowego, parametry = atrybuty typu. 
CREATE TYPE klient_typ AS OBJECT 
( id NUMBER, 
  nazwisko  VARCHAR2(30), 
  tel VARCHAR2(30) ); 
Cust=klient_typ(103,’kowalski’,’344545234532’); 
CREATE TABLEklient_obj_tab OF klient_typ; 
INSERT INTO klinet_obj_tab VALUES 
( klient_typ(102,’nowak’,’223243242345’) ); 
 

36. Co to jest PLSQL 

PL/SQL (Procedural Language/SQL). Rozszerzenie języka SQL. Umożliwia wykorzystanie rozkazów  SQL 
do wykonywania operacji  na danych i realizowania zapytań w strukturze proceduralnych bloków. 
Narzędzie programowania transakcji (m.in.) 

 

37. Jak są realizowane polecenia PLSQL? 

PL/SQL nie jest samodzielnym produktem ORACLE,  a stanowi technologię zaimplementowaną w 
RDBMS  i w niektórych programach narzędziowych ORACLE.  

background image

Bloki PL/SQL są przekazywane i przetwarzane przez maszynę PL/SQL, która rezyduje albo w 
programie narzędziowym albo w samym RDBMS.  
O tym, która maszyna zostanie zastosowana decyduje miejsce wywołania PL/SQL. 
Maszyna PL/SQL wykonuje rozkazy proceduralne, a rozkazy SQL przesyła do wykonania do 
wykonawcy poleceń SQL w RDBMS.  
Filtruje rozkazy SQL, pozostawiając do wykonania przez swojego wykonawcę pozostałe proceduralne 
rozkazy. 
 

38. Jak są realizowane wyjątki? Podaj przykład. 

Wyjątki są identyfikatorami w PL/SQL, które mogą wystąpić podczas wykonania bloku, jako 
zakończenie wykonywania głównej grupy działań . Wykonanie bloku zawsze jest kończone gdy wystąpi 
sytuacja wyjątkowa, mamy jednak możliwość określenia procedury obsługi wyjątków dla wykonania 
działań końcowych poprzedzających to zakończenie. Obsłużona  sytuacja wyjątkowa nie 
rozprzestrzenia się na blok lub środowisko, w którym działa. 
DECLARE 
 

V_ENAME 

EMP.ENAME%TYPE; 

 

V_JOB   

EMP.JOB%TYPE; 

BEGIN 
 

SELECT  ENAME,JOB 

 

INTO   

v_ename, V_JOB 

 

FROM   

EMP 

 

WHERE HIREDATE BETWEEN '01-JAN-92' AND '31-DEC-92'; 

EXCEPTION 
 

WHEN NO_DATA_FOUND 

 

THEN INSERT INTO ERROR_TAB VALUES('Nobody in 92'); 

 

 

 

WHEN TOO_MANY_ROWS 

 

THEN INSERT INTO ERROR_TAB VALUES('More then one person'); 

END; 

39. co to jest serwer BD? (nazwy angielskie poproszę) 

Serwer bazy danych Oracle (ang. database server) motor bazy + zaangażowane w obsługę danych 
zasoby sprzętowe, pliki bazodanowe, dzienniki powtórzeń etc. 

40. Co to jest silnik bazy danych? 

Motor bazy (ang. database engine) określa zbiór procesów  czy programów realizujących funkcje 
związane z obsługą danych 

41. Jakie zadania ma  spełniać serwer BD? (slajd 5) 

1.Praca w środowisku klient-serwer(przetwarzanie rozproszone) 
 

Oddzielenie funkcji serwera bazy od zadań wykonywanych przez klienta 
Serwer  do składowania i zarządzania zbiorem danych 
Klient  formułowanie i wysyłanie zapytań o dane, 

            

przetworzenia danych, 

            

prezentacja danych, 

            

modyfikowanie danych składowanych na serwerze 

Funkcje klienckie może przejąć serwer (przechowuje i wykonuje elementy kodu aplikacji) 
zalety: 

background image

Słabsze maszyny jako klient 
Zmniejszenie natężenia ruchu sieciowego 

2.Praca w środowisku wielowarstwowym (serwery aplikacji) 

Trójwarstwowa architektura 

  

(MVC – Model-View-Controller): 

3.Składowanie i zarządzania dużymi bazami danych 

–  Wykorzystania wysokowydajnych metod asynchronicznego zapisu na dyski 
–  Zapewnienia dostępu metodą raw devices 
–  Uporządkowania zasobów sprzętowych, buforów, PaO, procesorów 

4.Obsługa wielu użytkowników jednocześnie  
 5.Możliwość przenoszenia danych 
6.Zapewnienie dużej dostępności danych 

w systemach produkcyjnych często 24 godziny/dobę 
nie wymaga przerw w pracy bazy na kopie zapasowe, usuwania awarii systemu 

7.Zapewnienie możliwości kontroli dostępu do danych 

kontrola: role i przywileje 
kontrola na poziomie dostępu 
do tabeli i wiersza 

8.Wymuszenie spójności danych 

ważny: jednoczesny dostęp do danych bez zaburzenia logicznej struktury oraz zawartości 

9.Realizacja przetwarzania rozproszonego Grid Computing 

możliwe jest łączenie danych (składowanych fizycznie na różnych komputerach) w jedną 
(logicznie) strukturę danych 

10.Replikacja danych 

replikacja obiektów, albo zbiorów danych, 
przenoszenie części danych do innej instancji bazy danych Oracle, jak i do pokrewnych 
magazynów danych (np. Oracle Lite) 

 

42. co to jest INSTANCJA Oracle? 

Grupa buforów Obszar globalny systemu (ang. System Global Area - SGA) wykorzystywana do obsługi 
bazy 
Procesy drugoplanowe (ang. Background Processes) działają asynchronicznie, wykonują czynności 
związane z obsługą bazy i zapytaniami użytkowników 
Inaczej: programy rezydujące w pamięci operacyjnej komputera, który pracuje jako serwer Oracle 
Zazwyczaj: 1 instancja dla 1 bazy 
jest możliwe otwarcie wielu instancji pracujących na danych jednaj bazy przy użyciu serwera 
równoległego (ang. Parallel Server Option
 

43. Co to jest SGA? I do czego służy? 

System Global Area – Globalny obszar systemu.

 

jest obszarem pamięci współużytkowanej 

wykorzystywanym przez Oracle’a do przechowywania informacji kontrolnych instancji Oracle’a. SGA 
jest przydzielana podczas uruchamiania instancji i zwalniana podczas jej zatrzymywania 

44. Wymień procesy działające na serwerze BD i ich zadania (podział z grubsza, nie wymieniać 
wszystkich). 

proces usługowy. Jego rolą jest obsługa żądań użytkowników 

background image

45. Jakie pliki sa wykorzystywane w BD Oracle i co przechowują? 

pliki konfiguracyjne (init files) 
pliki kontrolne (control files) — binarne, bardzo ważne, zawierają informacje o położeniu 
WSZYSTKICH plików bazy danych wraz z datą i godziną ich zamknięcia  
pliki danych (data files) — przechowują dane w postaci binarnej, z danych w nich zawartych korzysta 
się za pośrednictwem procesów serwera (tła)  
pliki  dziennika  powtórzeń  (redo-log  files) — rejestrują wszystkie operacje wykonane na bazie 
 

46. Co to są ekstenty? 

Ekstent jest zbiorem ciągłych bloków. Taki zbiór bloków jest tworzony za każdym razem, kiedy do 
obiektu wymagana jest dodatkowa przestrzeń 

47. Zależności pomiędzy segmentami, ekstentami a blokami danych. 

Segmenty są po prostu zbiorem ekstentów  

48. Jakie znasz typy segmentów? Wymień 4. 

Segment danych, indeksu, przywracania, tymczasowy 

49. co to jest Process Global Area? 

PGA – Process Global Area pamięć przydzielona każdemu procesowi, W niej są zawarte prywatne 
obszary SQL. Ich maksymalna liczba to OPEN_CURSORS 
 

50. Jak dzielimy język SQL (chodzi o DDL i DML). 

Instrukcje manipulowania danymi  (DML – ang. Data Manipulation Language)  
Instrukcje definiowania danych (DDL – ang. Data Definition Language) 

51. Omów działanie komend DDL. Wymień przykładowe komenty DDL. 

Definiowanie obiektów BD (CREATE) 
Zmiana struktury BD (ALTER) 
Usuwania elementów BD (DROP) 
Zmiana nazwy obiektów BD (RENAME) 
Kasowanie danych bez usuwania obiektu (TRUNCATE) 
Nadawanie i odbieranie uprawnień i ról (GRANT, REVOKE) 
Włączanie/wyłączanie mechanizmów monitorowania BD (AUDIT, NOAUDIT) 
Komentowanie obiektów BD (COMMENT) 

52. Omów działanie komend DMmL. Wymień przykładowe komenty DML. 

Do modyfikowania zawartości bazy (INSERT, UPDATE, DELETE) 
Odczytywania zawartości (SELECT) 
Blokowania dostępu (LOCK TABLE) 
Wyświetlenia planu wykonania instrukcji (EXPLAIN PLAN) 
Instrukcje definiowania danych 

53. Wymień i omów własności transakcji (nazwy po polsku i ang.) 

background image

Atomowość (atomicity) - w ramach jednej transakcji wykonują się albo wszystkie operacje, albo żadna 
Spójność (consistency) - o ile transakcja zastała bazę danych w spójnym stanie, po jej zakończeniu stan 
jest również spójny. (W międzyczasie stan może być chwilowo niespójny) 
Izolacja (isolation) - transakcja nie wie nic o innych transakcjach i nie musi uwzględniać ich działania. 
Czynności wykonane przez daną transakcję są niewidoczne dla innych transakcji aż do jej zakończenia. 
Trwałość (durability) - po zakończeniu transakcji jej skutki są na trwale zapamiętane (na dysku) i nie 
mogą być odwrócone przez zdarzenia losowe (np. wyłączenie prądu) 

54. Co zaczyna transakcję w systemie Oracle? 

pierwsze polecenie DML lub DDL 

55. Co kończy transakcję w systemie Oracle? 

COMMIT/ROLLBACK, 
rozkaz DDL, 
pewien typ błędu (np. zakleszczenie - „deadlock”), 
zakończenie sesji (exit), 
awaria komputera. 

56. Podaj przykład transakcji (to pytanie będzie doszczegółowione). 

polecenie przelewu pieniędzy pomiędzy kontami realizuje się przez odjęcie danej sumy z jednego 
konta  
i dodanie tej samej sumy do drugiego konta.  
Obie czynności muszą być razem wykonane pomyślnie lub muszą zostać razem odwołane !!! 

 

57. Zasady transakcji. 

By zapamiętać zmiany  należy je zatwierdzić (rozkaz COMMIT) 
Zmiany, które nie zostały jeszcze zatwierdzone  mogą być odwołane rozkazem ROLLBACK. 
Rozkaz ROLLBACK powoduje, że baza wraca do stanu początkowego (czyli stanu, w jakim była po 
ostatnim COMMIT) 
Gdy poważny błąd (awaria systemowa), aktualna transakcja jest automatycznie odwoływana 
 Zapobiega to dopuszczeniu do wykonania częściowych zmian w bazie danych i przywraca stan tabel z 
chwili ostatnio wykonanego COMMIT 

58. Zasady działania COMMIT, ROLLBACK. Podaj przykład. 

Commit-zatwierdza zmiany 
Rollback-zmiany które nie zostały jeszcze zatwierdzone zostaną odwołane 
polecenie przelewu pieniędzy pomiędzy kontami realizuje się przez odjęcie danej sumy z jednego 
konta  
i dodanie tej samej sumy do drugiego konta.  
Obie czynności muszą być razem wykonane pomyślnie lub muszą zostać razem odwołane !!! 

59. Zasady działania SAVEPOINT. 

Ustawia punkt bezpieczeństwa  

60. Zasady działania ROLLBACK TO SAVEPOINT. 

Wycofuje do punktu bezpieczeństwa 

61. Co to są transakcje tylko do odczytu? 

zapewnia spójność na poziomie transakcji, nie można w nich dokonywać żadnych modyfikacji danych, 
korzystają  z mechanizmu wielowersyjności