Oracle relacyjna baza danych

advertisement
Oracle – relacyjna baza
danych
Halina Tańska
Podstawowe zagadnienia
• Relacyjne bazy danych stanowią sposób
dostępu do danych i łączenia ich ze sobą
tak, aby użytkownik nie musiał wiedzieć w
jaki sposób dane zostały pobrane z
komputera.
• Użytkownik korzystając z relacyjnej bazy
danych musi mieć pojęcie jedynie o
danych, a nie o sposobie ich pobierania.
Wprowadzenie
•
•
•
•
•
Relacyjna baza danych obsługuje pojedynczą logiczną strukturę – relację (ang.
relation). Jest to dwuwymiarowa struktura danych powszechnie nazywana tabelą w
bazie danych. Atrybuty lub kolumny zawierają informację na temat struktury. Tabela
pracownik zawiera atrybuty takie jak: nazwisko pracownika, wynagrodzenie,
nazwisko kierownika itd. Bieżące wartości danych w tabeli nazywane są krotkami lub
wierszami. Między kilkoma tabelami, nawet jeśli nie zawierają one żadnych danych,
może istnieć relacja (ang. relationship).
Na podstawie relacji, jedne atrybuty mogą być grupowane z innymi atrybutami i
tworzyć klucz złożony, a nawet złożony klucz główny.
Klucz główny (primary key) to taki atrybut lub grupa atrybutów (klucz złożony), który
w sposób jednoznaczny identyfikuje wiersz w tabeli.
W Oracle dla klucza głównego automatycznie jest tworzony niepowtarzalny indeks.
Tabela może mieć tylko jeden klucz główny. Jeśli wymagana jest integralność
referencyjna, każda tabela musi mieć zdefiniowany taki klucz. Klucz główny
wykorzystywany jest jako identyfikator musi zawierać jakieś dane (nie może zawierać
wartość NULL).
W tabeli mogą istnieć jeszcze inne atrybuty o wartościach zdefiniowanych jako
niepowtarzalne (unikatowe). W odróżnieniu od kluczy głównych, klucze unikatowe
mogą zawierać wartość NULL
Integralność referencyjna
•
•
•
•
•
•
Do wyodrębnienia danych z dwóch tabel potrzebna jest taka wartość w
kolumnie, która jest wspólna dla obydwu tabel. Automatyczne utrzymywanie
i definiowanie relacji jest nazywane integralnością referencyjną.
Zasady integralności mówią, że wartości kluczy obcych (foreign key) w
jednej tabeli odpowiadają wartościom kluczy głównych w innej tabeli.
Integralność referencyjna (referential integrity) to kod SQL, który na
podstawie klucza głównego i klucza obcego wymusza relację pomiędzy
kilkoma tabelami.
Z relacji klucz klucz główny – klucz obcy oraz reguł integralności
referyncyjnej korzysta wiele narzędzi.
Tabele powiązane relacjami mają kilka ważnych zalet: łatwo się je tworzy,
łatwo się dodaje lub zmienia, łatwo można powiązać je z innymi tabelami w
celu znalezienia żądanych wyników.
Użytkownik musi tylko rozumieć, czego dotyczą jego dane, a nie musi
wiedzieć, jak uzyskać do nich dostępu.
Cechy charakterystyczne Oracle9i
•
•
•
•
•
W rodzinie produktów baz danych Oracle9i zostały wprowadzone nowe funkcje, takie
jak partycjonowane tabele i indeksy (zdolność do dzielenia każdej tabeli oraz indeksu
na części na podstawie wartości klucza i umieszczania ich na różnych napędach
dyskowych).
W wersji Oracle9i znajduje się sporo udoskonaleń, takich jak nowa umiejętność
partycjonowania, zwana partycjonowaniem list, udoskonalenie spójności odczytu,
znane jako Deja vu, dodatkowe pule buforów, wiele rozmiarów bloków i znaczne
ulepszenia narzędzia Log Miner.
W Oracle9i istnieje nowe narzędzie zwane pompą danych, które pozwala, aby plik
systemów operacyjnych były postrzegane przez Oracle jako tabela relacyjna.
Oracle9i wprowadza do środowiska baz danych Oracle również język XML, a także
obsługę Java oraz SQLJ.
W Oracle9i została zachowana obsługa zorientowanych obiektowo elementów
Oracle8. Oracle9i pozwala na definiowanie obiektów i ich typów (np. zdefiniowanie
pól danych takich jak adres, nazwa miasta, nazwa stanu oraz kod pocztowy, jako
obiektu i wielokrotne jego użycie). Pozwala stosować tabele zagnieżdżone (tabele
wewnątrz tabel).
Oracle9i obsługuje także macierze – typ obiektowy pod względem funkcjonalności
podobne do tabeli zagnieżdżonej, ale stanowiący w rzeczywistości część wiersza w
tabeli.
Programowanie zorientowane
obiektowo w Oracle9i
• Klasa stanowi sposób grupowania powiązanych ze sobą elementów.
Przykładem klasy w środowisku Oracle jest połączenie dwóch lub
więcej tabel, w wyniku czego uzyskuje się część wspólną lub
kombinacje kolumn każdej z tabel.
• Hermetyzacja (encapsulation) oznacza, że dostęp do danych może
się odbywać tylko zgodnie z określonymi zasadami. Przykładem
tego w Oracle9i będą ograniczenia referencyjne rządzące relacjami
danych pomiędzy obiektami.
• Rozszerzalność (extensibility) to zdolność tworzenia nowych
obiektów bez wywierania wpływu na inne obiekty.
• Dziedziczenie (inheritance) znaczy, że zmiana wprowadzona w
jednym powiązanym obiekcie, odzwierciedlona zostaje we
wszystkich obiektach korzystających z danego typu obiektowego.
• Polimorfizm (polymorphism) oznacza, że temu samemu obiektowi
informacja może być podawana w różnych kontekstach i jego
reakcja będzie zależna od kontekstu danych wejściowych.
Narzędzia Oracle
• Narzędzia programistyczne Oracle – obecne od wersji 4. Są one
dostępne niemal we wszystkich środowiskach obsługujących bazy
danych. Oznacza to, że programista może projektować i testować
aplikację na komputerze typu PC i umieścić ją docelowo w systemie
UNIX lub nawet na komputerach mainframe.
• Narzędzie Fast Forms - równoważnik dzisiejszego kreatora
(wspomagające użytkownika w procesie budowania podstawowego
formularza). Narzędzie do tworzenia raportów – odmiana
dzisiejszego języka SQL*Plus (User-Friendly Interface).
• Podstawowe narzędzie do budowania raportów RPT
przemianowano na SQL*Forms v2.0 i zostało dodane nowe
narzędzie piszące raporty SQL*ReportWinter v1.0. formularze w tej
wersji znacznie rozszerzyły możliwości programistyczne i
możliwości działania formularzy on-line. Oracle v7 przyniósł
znaczące zmiany w bazie danych i narzędziach. Zestaw narzędzi
nazwano Developer/2000 – bazował on w większym stopniu na
Windows.
Oracle Developer 6i
•
•
•
•
•
•
•
Komponent Project Builder służy programiście do utrzymania wszystkich elementów aplikacji,
takich jak różne formularze i kody źródłowe raportów oraz kod języka pośredniego. Project Builder
umożliwia skompilowanie pojedynczego programu lub wszystkich programów w projekcie.
Developer Oracle działa opierając się na wspólnych elementach wykorzystywane przez wszystkie
narzędzia.
Developer Oracle zawiera Object Navigator, w którego oknie można obejrzeć hierarchiczną
strukturę wszystkich obiektów aplikacji. W Object Navigatorze dostępne są dwa widoki:
Ownership oraz Visual. Obiekty w widoku Ownership są wyświetlane zgodnie z blokami
reprezentującymi wiersze tabeli. Natomiast w widoku Visual obiekty wyświetlają się w zależności
od tego, jak pojawiają się na ekranie wyjściowym.
Form Builder służy do budowania i utrzymywania aplikacji wykorzystujących formularze.
Programowanie w Developer Oracle znacznie różni się od pracy z językami trzeciej generacji.
Aplikacje buduje się tworząc na ekranie obiekty, które reprezentują elementy danych, jakie będą
wyszukiwane w bazie danych, mają szatę graficzną, służą m.in. Do nawigacji w programie.
Wybrane działania (activities) lub zdarzenia (events) są zakodowane w procedurach
wyzwalających (triggers), będących jednostkami programistycznymi, które są wykorzystywane w
chwili wystąpienia jakiegoś zdarzenia. Zdarzenia dotyczą tego, co się dzieje na ekranie.
Raport Builder jest narzędziem działającym na zasadzie kreatora i służy do tworzenia różnego
rodzaju raportów na podstawie danych znajdujących się w bazie. Jest wyposażony w
proceduralne konstruktory służące do formatowania danych, obliczania sum danych.
Grapfics Builder służy do opracowywania różnego rodzaju wykresów generowanych na podstawie
danych znajdujących się w bazie.
Oracle Developer 6i
• SQL*Plus – interaktywne narzędzie pracujące w trybie
znakowym działającym w środowisku Oracle9i RDBMS.
SQL*Plus można wykorzystywać do przetwarzania
pojedynczych instrukcji języka SQL albo do
interaktywnego przetwarzania instrukcji języka SQL z
udziałem użytkownika. Ma bardzo rozbudowane
umiejętności tworzenia raportów w trybie tekstowym,
dzięki którym z wyników zapytania można sformatować
raport. Jest także edytorem skryptów lub edytorem
tekstowym działającym w trybie znakowym. Może być
wykorzystywany do funkcji administracyjnych i ma
możliwość przyjmowania informacji wejściowych z plików
systemu operacyjnego lub skryptów SQL.
Oracle Developer 6i
SQL*Loader służy do wczytywania danych z plików zewnętrznych
do bazy danych Oracle.
SQL*Leader pełni wiele funkcji, takich jak:
• Dane można wczytywać z wielu wejściowych plików danych,
różniących się typem pliku.
• Rekordy wejściowe mogą mieć długość stałą lub zmienną.
• Podczas jednego uruchomienia można wczytać kilka tabel. Możliwe
jest także logiczne wczytanie wybranych rekordów do
poszczególnych tabel.
• Dla danych wejściowych mogą zostać stosowane funkcje SQL przed
ich wczytaniem do tabeli.
• Kilka rekordów fizycznych może zostać połączonych w jeden rekord
logiczny. I odwrotnie, SQL może pojedynczy rekord fizyczny wczytać
pod postacią kilku rekordów logicznych.
Oracle Developer 6i
• Tabele zewnętrzne to nowe udogodnienie, które sprawia,
że na użytek wczytywania jednowymiarowe pliki
wyglądają jakby były relacyjnymi tabelami. Tabele
zewnętrzne zaczynają się tam, gdzie kończy się
działanie SQL*Loader. Oracle9i postrzega jednorodny,
jednowymiarowy plik jako tabelę, dlatego transformacja
danych może zostać bez trudu przeprowadzona w SQL,
dostępne jest wczytywanie równoległe oraz możliwe
wczytywanie przy użyciu bezpośredniej ścieżki dostępu
z obsługą indeksów. To nowe udogodnienie jest
całkowicie zgodne z SQL*Loader, czyta plik sterujący
SQL*Loader i buduje poprawne DDL (Data Definition
Language) dla nowych typów obiektów.
Net8
•
•
Net8 stanowi w Oracle podstawę systemu komunikacji klient-serwer. Net8
pozwala użytkownikowi niezauważalnie pracować z prawie każdą wersją
Oracle na dowolnym komputerze i w niemal każdym środowisku, bez
konieczności programowania lub szczególnej obsługi jakichkolwiek spraw
związanych z siecią lub połączeniami. Dzięki Net8 programowanie w Oracle
jest łatwiejsze, bo programy (pisane w Oracle Forms, SQL*Plus i in.) można
tworzyć i testować w jednym środowisku komputerowym, a uruchamiać w
zupełnie innym i to bez żadnych modyfikacji. W środowisku klient-serwer
Net8 umożliwia programom rezydującym i wykonywanym na niedrogich
komputerach PC, dostęp do danych znajdujących się na komputerach
większych i szybszych. Net8 potrafi obsługiwać tysiące użytkowników
łączących się ze środowiskiem Oracle9i za pośrednictwem menedżera
połączeń z zainstalowanym komponentem technologii wielowątkowej.
Net8 jest elastycznym protokołem sieciowym potrafiącym obsługiwać różne
technologie sieciowe. Dzięki temu jest on w stanie komunikować
użytkownika z bazą Oracle, zapewniając wysoki poziom zgodności aplikacji
Oracle.
Log Miner
• Pozwala na manipulację zawartością plików log – zarówno
archiwalnych (archive log file), jak i służących do ponawiania
operacji (redo log file). Informacje te można potem wykorzystywać
do tworzenia polecenia REDO SQL wykorzystywanego do
ponawiania transmisji w innym systemie oraz polecenia UNDO SQL
pomocnego przy cofaniu błędów użytkownika. Log Miner przydaje
się przy sprawdzaniu bazy danych i wykonywaniu specjalistycznych
analiz.
• Log Miner obsługuje obiekty z wierszami złączonymi (chained) i
przemieszczonymi (migrated) oraz takimi, gdzie wykonywane było
tzw. bezpośrednie wstawianie (direct-path inserts), a także
dodatkowe typy danych, takie jak LONG, LOB i kilka typów
obiektowych, w tym DDL.
Export i Import
•
•
•
•
•
Export tworzy pliki systemu operacyjnego na podstawie danych z tabel
Oracle
Import czyta pliki systemu operacyjnego, tworzy tabele i wczytuje dane z
powrotem do tabel.
Narzędzi export i import używa się razem przede wszystkim do robienia
kopii zapasowej i odzyskiwania danych, przenoszenia danych do innych
baz Oracle, a także do konwersji danych wcześniejszych wersji Oracle.
Obsługują zarówno wszystkie obiekty w określonej przestrzeni tabel, jak i
dokonują wyszukiwania z zastosowaniem symboli wieloznacznych, w celu
wybrania obiektów tabel przeznaczonych do eksportu.
Przy użyciu narzędzi Export i Import można zapisywać dane w archiwach,
usuwać wiersze, które nie są już używane. Usunięcie ich jest równie łatwe,
jak dodanie wiersza przy użyciu narzędzia Import, gdy zajdzie taka
potrzeba.
Oba narzędzia mają zastosowanie przy tworzeniu środowisk tekstowych,
gdyż mają zdolności przechwytywania wszystkich tabel, indeksów i danych
dowolnego użytkownika oraz rekonstruowania ich w innej bazie danych
Oracle.
Projektowanie schematu relacyjnego i budowanie
bazy danych
Download