background image

Contents 

Podzapytanie wierszowe ................................................................................................................. 2 

Podzapytanie tablicowe .................................................................................................................. 2 

Podzapytania skorelowane.............................................................................................................. 2 

Klauzula HAVING ............................................................................................................................. 2 

Operator EXISTS ............................................................................................................................... 2 

Przywileje - przydatne pojęcia ......................................................................................................... 2 

Rodzaje przywilejów ........................................................................................................................ 3 

Autoryzacja ...................................................................................................................................... 3 

Uwierzytelnianie .............................................................................................................................. 3 

Przywileje systemowe - polecenia................................................................................................... 3 

Przywileje obiektowe - polecenia .................................................................................................... 4 

Sekwencje ........................................................................................................................................ 4 

Sekwencje - polecenia ..................................................................................................................... 4 

Tabela DUAL .................................................................................................................................... 5 

Pierwsza postać normalna ............................................................................................................... 5 

Definicja zależności funkcyjnej ........................................................................................................ 5 

Definicja pełnej zależności funkcyjnej ............................................................................................. 5 

Usuwanie zależności funkcyjnych (przechodnich): ......................................................................... 6 

Trzecia postać normalna ................................................................................................................. 6 

Struktura systemu Oracle ................................................................................................................ 6 

Baza danych ..................................................................................................................................... 6 

Instancja .......................................................................................................................................... 6 

Pliki danych ...................................................................................................................................... 7 

Pliki danych posiadają trzy poziomy organizacji ............................................................................. 7 

Pliki dziennika powtórzeń ................................................................................................................ 8 

Instancja bazy danych...................................................................................................................... 8 

Rodzaje organizacji instancji ............................................................................................................ 8 

Globalna przestrzeń systemowa ..................................................................................................... 9 

Proces punktu kontrolnego ............................................................................................................. 9 

Monitor systemu (SMON) ............................................................................................................... 9 

Monitor procesów (PMON) ............................................................................................................. 9 

Archiwizator (ARCH) ........................................................................................................................ 9 

Przestrzeń tabel może zawierać: ................................................................................................... 10 

background image

Odpowiednik ERD w UML – gdzieś z internetów .......................................................................... 10 

Relacyjny model danych: ............................................................................................................... 10 

Definicja danych: ........................................................................................................................... 10 

Podstawowe teorie dla relacyjnych baz danych: .......................................................................... 10 

Klucze główne i obce: .................................................................................................................... 10 

Reguły Codda: ................................................................................................................................ 11 

Relacyjny model danych: ............................................................................................................... 11 

Algebra relacyjna: .......................................................................................................................... 11 

Algebra relacyjna ........................................................................................................................... 11 

Złączenia zewnętrzne .................................................................................................................... 12 

 

 

 

Podzapytanie wierszowe

 zwraca co najwyżej jeden rekord, zawierający jedną lub wiele wartości. 

Dopuszcza stosowanie operatorów logicznych. 

Podzapytanie tablicowe

 zwraca zbiór rekordów zawierających jedną lub wiele wartości. Dopuszcza 

się stosowanie operatorów IN, ANY, ALL. 

Podzapytania skorelowane

  podzapytanie  wykonywane  wielokrotnie  -  raz  dla  każdego  rekordu  przeglądanego  przez 

zapytanie zewnętrzne,  

  w podzapytaniu odwołanie do wyrażenia z zapytania zewnętrznego.  

Klauzula  HAVING

  -  określa,  które  zgrupowane  rekordy  są  wyświetlane  w  instrukcji  SELECT 

zawierającej  klauzulę  GROUP  BY.  Gdy  klauzula  GROUP  BY  połączy  rekordy,  klauzula  HAVING 

wyświetla wszystkie zgrupowane rekordy, które spełniają warunki określone w klauzuli HAVING. 

Operator EXISTS

 - przyjmuje wartość prawdy gdy podzapytanie zwróci przynajmniej jeden rekord. 

Mądra literatura: Stosowany do podzapytań skorelowanych. Pozwala ustalić, czy pożądane przez nas 

dane znajdują się w wyniku podzapytania skorelowanego.  

 

sprawdza czy kolejne elementy z jednego zbioru znajdują swój odpowiednik w drugim zbiorze. 

 

Przywileje - przydatne pojęcia

  przywilej  -  prawo  wykonywania  przez  użytkownika  określonej  akcji  w  bazie  danych  lub 

dostępu do określonego obiektu, 

background image

  użytkownik - osoba lub aplikacja, która jest uprawniona do dostępu do danych zgromadzonych 

w bazie danych, 

  schemat - zbiór logicznych struktur danych, przypisany jest do każdego użytkownika, należy 

rozumieć go jako konto użytkownika. 

Rodzaje przywilejów

  systemowe  -  prawa  wykonania  określonej  akcji  lub  operacji  na  wskazanym  typie  obiektu                   

w schemacie bazy danych np.: 

  create session, 

  create table, 

  create any table, 

  select any table - pozyskiwanie danych z dowolnej tabeli, 

  insert any table - dopisywanie danych, 

  drop any view, 

  obiektowe  -  prawa  wykonania  określonej  operacji  na  wskazanym  obiekcie  w  określonym 

schemacie bazy danych np.: 

 

select on wypożyczenia 

  alter on klienci 

  execute on wyszukaj_samochod, 

  references on klienci. 

 

Autoryzacja

  proces  weryfikacji  uprawnień  użytkownika  do  wykonywania  określonych  operacji  na  bazie 

danych, 

  ograniczenia mogą dotyczyć operacji, obiektów i wykorzystania zasobów systemowych bazy 

danych. 

 

Uwierzytelnianie

  weryfikacja tożsamości użytkownika bazy danych, 

  metody realizacji uwierzytelnień: przez SZBD, przez system operacyjny, przez usługę sieciową, 

wielowarstwowe. 

 

Przywileje systemowe - polecenia

  nadawanie przywilejów: 

GRANT <przywileje> 

TO <użytkownicy> | PUBLIC 

background image

[WITH ADMIN OPTION]; 

  PUBLIC służy do nadania przywilejów wszystkim użytkownikom, 

 

WITH ADMIN OPTION umożliwia przekazanie przywileju innym użytkownikom. 

 

  odbieranie przywilejów: 

REVOKE <przywileje> 

FROM <użytkownicy> | PUBLIC; 

  przykład: 

GRANT CREATE SESSION, SELECT ANY TABLE TO B;  

GRANT CREATE TABLE TO A;  

REVOKE SELECT ANY TABLE FROM B. 

 

Przywileje obiektowe - polecenia

  nadawanie przywilejów: 

GRANT <przywileje> | ALL ON <obiekt> 

TO <użytkownicy> | PUBLIC 

[WITH GRANT OPTION]; 

  odbieranie przywilejów: 

REVOKE <przywileje> | ALL ON <obiekt> 

FROM <użytkownicy> | PUBLIC; 

[CASCADE CONSTRAINTS]; 

  przykład: 

GRANT SELECT ON klienci TO B;  

GRANT UPDATE(marka, model) ON samochody TO A;  

REVOKE DELETE ON klienci FROM B. 

 

Sekwencje

  automatyczny licznik generujący nową wartość liczbową przy każdym jej wywołaniu, 

  obiekty upraszczające proces tworzenia jednoznacznych identyfikatorów rekordów w bazie, 

  stosowanie  sekwencji  pozwala  na  generowanie  niepowtarzalnych  numerów,  co  upraszcza 

tworzenie kluczy głównych o wartościach unikatowych. 

 

Sekwencje - polecenia

  tworzenie sekwencji: 

CREATE SEQUENCE nazwa sekwencji  

background image

[START WITH liczba całkowita] – deklaruje wartość liczbową od której ma    

 

 

 

 

 

 

zaczynać sie numeracja  

[INCREMENT BY liczba całkowita] – o ile zwiększona będzie wartość  

 

 

 

 

sekwencji przy każdym kolejnym jej wywołaniu  

[MINVALUE liczba całkowita]  

[MAXVALUE liczba całkowita] 

  sprawdzanie aktualnej wartości sekwencji: 

SELECT nazwa_sekwencji.CURRVAL  

FROM DUAL 

  generacja i zwrot kolejnej wartości sekwencji: 

SELECT nazwa_sekwencji.NEXTVAL  

FROM DUAL. 

 

Tabela DUAL

  jest tworzona automatycznie przez bazę danych w ramach słownika danych, 

  znajduje  sie  ona  w  schemacie  użytkownika  SYS,  ale  jest  dostępna  pod  nazwą  DUAL  dla 

wszystkich pozostałych użytkowników, 

  składa sie z jednej kolumny DUMMY – wykorzystywana jest w instrukcjach SELECT. 

Pierwsza postać normalna

  tabela jest w pierwszej postaci normalnej, wtedy i tylko wtedy, gdy każdy atrybut niekluczowy 

jest funkcjonalnie zależny od klucza głównego, 

  zabrania definiowania złożonych atrybutów, które są wielowartościowe, 

  tabele, które dopuszczają definiowanie złożonych atrybutów to tabele zagnieżdżone (koncepcja 

ta nie mieści się w ramach klasycznego relacyjnego modelu). 

 

Definicja zależności funkcyjnej

Atrybut  B  tabeli  R jest funkcyjnie  zależny  od  atrybutu  A  tej tabeli,   jeżeli    zawsze  każdej  wartości                  

a trybutu A odpowiada nie więcej niż jedna wartość b atrybutu B. 

 

Definicja pełnej zależności funkcyjnej

Atrybut A jest w pełni zależny funkcjonalnie od zbioru atrybutów B, gdy jest zależny funkcjonalnie od 

całego zbioru, a nie od podzbioru atrybutów z B. 

 

Druga postać normalna: 

  tabela R jest w drugiej postaci normalnej, jeśli jest w pierwszej postaci normalnej i każdy atrybut 

niekluczowy jest w pełni funkcyjnie zależny od klucza głównego. 

background image

 

Usuwanie zależności funkcyjnych (przechodnich): 

 

 

Trzecia postać normalna

  tabela jest w trzeciej postaci normalnej, jeżeli jest w drugiej postaci normalnej i każdy atrybut 

niekluczowy jest w zależny bezpośrednio od klucza głównego. 

 

Struktura systemu Oracle

  procesy drugoplanowe, 

  obszar globalny systemu (SGA), 

  pliki bazy danych, 

  pliki dziennika powtórzeń, 

  pliki kontrolne, 

  pliki startowe. 

Baza danych

  odnosi  się  do  fizycznego  składowania  informacji,  jest  bytem  fizycznym  –  składa  się              

z plików zapisanych na dyskach. 

Instancja

  odnosi  się  do  oprogramowania  działającego  na  serwerze,  zapewniającego  dostęp  do 

informacji  w  bazie  danych,  jest  bytem  logicznym  –  składa  się  ze  struktur  w  pamięci  i  procesów  na 

serwerze. 

pliku  kontrolnym

  zawarte  są  informacje  dotyczące  położenia  innych  plików  fizycznych 

tworzących bazę danych – plików danych i plików dziennika powtórzeń oraz kluczowe 

informacje dotyczące treści i statusu bazy danych: 

  nazwa bazy danych i czas jej utworzenia,  

  nazwy i położenie plików danych i plików dziennika powtórzeń, 

  informacje o przestrzeniach tabel, 

  historia dziennika, archiwalne informacje dziennika, 

  informacje o zestawie kopii zapasowych, 

background image

  informacje o kopiach plików danych, 

   informacje o punktach kontrolnych. 

Pliki danych

  każdy plik składa się z bloków bazy danych Oracle, złożonych z bloków SO na dysku, 

  rozmiar bloku Oracle waha się od 2KB do 32KB (parametr DB_BLOK_SIZE), 

  rozmiar bloku to najmniejsza ilość danych, którą można zapisać lub odczytać, 

  pierwszy  blok  każdego  pliku  danych  to  nagłówek  pliku  danych  –  zawiera  on  najważniejsze 

informacje, konieczne do utrzymania spójności baz danych, 

  Najważniejszy element nagłówka to struktura punktu kontrolnego – logiczny znacznik czasu, 

wskazujący moment zapisania ostatniej zmiany w pliku danych, 

  Ma on kluczowe znaczenie w procesie odtwarzania bazy danych, ponieważ określa, z których 

dzienników powtórzeń należy skorzystać przy doprowadzaniu  pliku danych do stanu sprzed 

awarii, 

  z punktu widzenia warstwy fizycznej, plik danych jest składowany jako zbiór bloków systemu 

operacyjnego. 

Pliki danych posiadają trzy poziomy organizacji

  bloki danych, 

  ekstenty, 

  segmenty, 

 

każda przestrzeń tabel składa się z jednego lub więcej segmentów,  

 

każdy segment składa się z jednego lub wielu ekstentów,  

  każdy ekstent składa się ze spójnego ciągu bloków alokowanych  jako całość. 

 

background image

 

Pliki dziennika powtórzeń

:  

  zawierają nagranie zmian dokonywanych w bazie, będących efektem transakcji                                 i 

wewnętrznych operacji Oracle, 

  zapisanie zmian w dzienniku transakcji pozwala odtworzyć zmiany utracone na skutek awarii, 

zabezpieczając dzięki temu spójność transakcji, 

  każda  z  instancji  Oracle  używa  wątku  powtórzeń  w  celu  zapisania  zmian  dokonywanych                  

w bazie, 

  Oracle utrzymuje wiele kopi dziennika powtórzeń, dokonuje zapisu do wszystkich elementów 

dziennika powtórzeń synchronicznie, 

  po  zapełnieniu  jednego  pliku  dziennika  powtórzeń,  automatycznie  rozpoczyna  korzystanie                  

z następnego.  

Instancja  bazy  danych

  –  zbiór  procesów  oraz  obszar  pamięci  współdzielonej  zwanej  Globalnym 

Obszarem Systemowym (SGA) obsługujący jedną bazę danych. 

Rodzaje organizacji instancji

  single-process, 

  multiple-process. 

background image

   

Globalna przestrzeń systemowa

:  

  instancja  jest  metodą  wykorzystywaną  do  dostępu  do  danych,  składającą  się  z  procesów                     

i pamięci współdzielonej, 

  instancja (suma buforów pod wspólną nazwą Globalna przestrzeń systemowa SGA) – obszar 

pamięci  współużytkowanej  wykorzystywany  przez  Oracle’a  do  przechowywania  informacji 

kontrolnych instancji Oracle’a, 

  SGA jest przydzielana podczas uruchamiania instancji i zwalniana podczas jej zatrzymywania,  

  bufory pamięci podręcznej bazy danych  – przechowują ostatnio używane bloki danych; gdy 

użytkownik chce uzyskać dostęp do bloku danych, który nie znajduje się w pamięci podręcznej, 

blok ten musi zostać wczytany z dysku i w niej zapisany, 

  bufory  dziennika  powtórzeń  –  czyli  zmian  wprowadzonych  do  bazy  –  wykorzystywane  do 

odtwarzania po awarii systemu, 

  pula współużytkowania  – buforowane są różnego rodzaju obiekty, którymi  mogą się dzielić 

użytkownicy np. zapytania i fragmenty zapytań SQL oraz ich wyniki, informacje ze słownika 

danych, 

  Oracle automatycznie zarządza pamięcią alokowaną w globalnym obszarze programu (Program 

Global Area) instancji. 

Proces punktu kontrolnego

 (CKPT) może przejąć zadanie realizacji punktu kontrolnego normalnie 

wykonywanego przez LGWR. 

Monitor systemu (SMON)

 – odpowiedzialny jest za porządki, do jego obowiązków należy: 

  odtwarzanie systemu po awarii w czasie uruchamiania instancji, 

  usuwanie niepotrzebnych segmentów tymczasowych, 

  aktualizowanie pliku kontrolnego bazy, 

  scalanie wolnych rozszerzeń  w ramach segmentu. 

Monitor procesów (PMON)

 – zajmuje się odtwarzaniem procesów usługowych, które uległy awarii, 

odpowiedzialny jest za: 

  usuwanie nienormalnie zakończonych połączeń, 

  wycofywanie niezatwierdzonych transakcji, 

  czyszczenie buforów, 

  zwalnianie zajętych zasobów, 

  wykrywanie  wewnętrznych  zakleszczeń  pomiędzy  blokadami  zakładanymi  na  dane  bazy                   

i automatyczne wycofywanie transakcji. 

Archiwizator (ARCH)

 dokonuje archiwizacji online plików dziennika powtórzeń. 

background image

Przestrzeń tabel może zawierać: 

  segment danych, 

  segment indeksu, 

  segment przywracania, 

  segment tymczasowy. 

 

Odpowiednik ERD w UML – gdzieś z internetów 

Diagram  związków  encji  ERD  (ang.  Entity  Relationship  Diagram)  wywodzi  się  z  podejścia 

strukturalnego, diagram klas (ang. class diagram) jest diagramem języka UML (ang. Unified Modeling 

Language), który wspiera podejście obiektowe. 

Diagram  związków  encji  jest  statyczną,  konceptualną  reprezentacją  modelu  danych  systemu.  ERD 

przedstawia encje oraz związki między nimi. Encja jest jednoznacznie identyfikowalnym składnikiem 

analizowanej dziedziny przedmiotu, o której informacja jest lub może być zbierana i przechowywana. 

Diagram związków encji stanowi podstawę dla utworzenia schematu bazy danych. Diagram klas  jest 

statyczną  reprezentacją  systemu.  Diagram  przedstawia  klasy  systemu,  ich  zawartość  oraz  związki 

między  klasami.  Klasa  jest  uogólnieniem  zbiorów  obiektów,  które  mają  takie  same  właściwości,                   

tj. atrybuty, operacje, związki i znaczenie. 

Odpowiednikiem ERD w języku UML jest stereotypowany diagram klas – stereotyp klasy <<table>>, 

który  zawiera  wyłącznie  klasy  analityczne  (takie,  których  obiekty  będą  lub  mogą  być  utrwalane                     

i przechowywane w bazie danych systemu). 

Relacyjny model danych: 

  relacyjny model danych został opracowany przez E. F. Codda w latach 70-80,  

  od połowy lat 80 stał się podstawą architektury większości popularnych SZBD. 

Definicja danych: 

  model relacyjny oparty jest na tylko jednej podstawowej strukturze danych – relacji, 

  pojęcie relacji można uważać za pewną abstrakcję intuicyjnego pojęcia tabeli, 

  relacyjna baza danych zawiera kolekcję tablic (relacji). 

Podstawowe teorie dla relacyjnych baz danych: 

  algebra relacyjna, 

  rachunek relacyjny, 

  teoria normalizacji. 

Klucze główne i obce: 

  jeden lub wiele atrybutów K, które spełniają unikalność (nie istnieją dwie krotki, które posiadają 

tą samą wartość dla K), 

  klucz główny – jeden z kluczy kandydatów, 

background image

  klucz obcy – jeden z atrybutów, który wskazuje klucz główny innej lub tej samej relacji, 

  integralność referencyjna – wartości kluczy obcych, muszą być określone na podstawie zbioru 

korespondujących kluczy. 

Reguły Codda: 

  reguła informacyjna, 

  reguła gwarantowanego dostępu, 

  uporządkowana obsługa wartości NULL, 

  aktywny katalog dostępny na bieżąco, oparty na modelu relacyjnym, 

  reguła dotycząca podjęzyka obsługi danych o pełnych możliwościach, 

  reguła aktualizacji perspektyw, 

  polecenia wstawiania, aktualizacji oraz usuwania w języku wysokiego poziomu, 

  fizyczna niezależność danych, 

  logiczna niezależność danych, 

  niezależność integralnościowa, 

  niezależność dystrybucyjna, 

  reguła nieprowadzenia "działalności wywrotowej". 

Relacyjny model danych: 

  atrybut musi mieć unikalną nazwę, 

  atrybut krotki nie może być wielowartościowy, 

  wartość atrybutu nie może być złożona, 

  wartością atrybutu nie może być wskaźnik, 

  wartości kolumn są tego samego typu, 

  nie mogą istnieć dwie identyczne krotki. 

Algebra relacyjna: 

  zwyczajne działania algebry zbiorów: suma, przecięcie i różnica zastosowane do tabeli, 

  operacje zawężania tabeli: 

 

selekcja, 

 

projekcja, 

  operacje tworzenia wierszy z innych wierszy pochodzących z różnych tabel: 

 

iloczyn kartezjański, 

 

operacje złączenia, 

  operacje przemianowania. 

Algebra relacyjna

 - tabele R i S, do których można zastosować operacje teoriomnogościowe, muszą 

spełniać następujące warunki: 

  schematy tabel R i S muszą mieć identyczne zbiory atrybutów, 

background image

  należy  uporządkować  atrybuty  tabeli  R  i  S  w  ten  sposób,  aby  w  obu  tabelach  kolejność 

atrybutów była taka sama. 

Złączenia zewnętrzne

  złączenie lewostronne, 

  złączenie prawostronne, 

  złączenie obustronne, 

  półzłączenia. 

 

TRANSFORMACJA MODELU LOGICZNEGO DO FIZYCZNEGO 

Obiekty modelu logicznego 

Obiekty modelu fizycznego 

encja 

tabela 

atrybut encji 

kolumna tabeli 

identyfikator encji 

klucz główny tabeli 

związek 

klucz obcy i reguły integralności