sobota, 6 listopada 2010

Kurs Oracle SQL . Podstawowe definicje

Niniejszy kurs wprowadzi Cię w podstawy programowania w bazach danych Oracle. Jest to bardzo szeroka dziedzina wiedzy, zaczynamy więc od samych podstaw jakimi jest tworzenie zapytań w SQL. Oracle posiada własną wersję SQL rozbudowaną o funkcje i struktury które występują tylko w tej bazie danych. Kurs który właśnie zaczynasz może być również Twoim przewodnikiem przy nauce do certyfikatu OCA (Oracle Certified Associate). Do zdania w.w. certyfikatu niezbędna będzie wiedza z zakresu języka programowania stworzonego na potrzeby baz danych Oracle, jakim jest PL/SQL. Kolejny kurs poświęcę właśnie temu językowi.

Aby rozpocząć pracę musisz poznać kilka podstawowych definicji, które ułatwią Ci zrozumienie dalszej części kursu, a także korzystania z dokumentacji.

 

Podstawowe definicje



Baza danych - to zbiór danych zapisanych w ściśle określony sposób w strukturach odpowiadających założonemu modelowi danych. W potocznym ujęciu obejmuje dane oraz komputerowy program wyspecjalizowany do gromadzenia i przetwarzania tych danych. Baza danych jest złożona z różnych elementów. Najważniejszymi z nich jest rekord podzielony na kilka pól, w których są przechowywane informacje poszczególnych kategorii. Na przykład w książce adresowej każdy rekord to zbiór informacji na temat jednej osoby. Składa się on z kilku pól przechowujących takie informacje, jak: imię, nazwisko, adres, numer telefonu itp. W każdym polu zapisywane są dane oddzielonej kategorii. Dzięki temu komputerowe bazy danych umożliwiają szybkie sortowanie rekordów według poszczególnych kategorii lub wyszukiwanie informacji w obrębie tylko wybranych pól. Wiele systemów zarządzania bazami danych oferuje możliwość tworzenia masek wprowadzania danych, które służą do bardziej wygodnego wprowadzenia nowych informacji. Naturalnie można z nich zrezygnować i wpisywać dane do bazy wyświetlanej w postaci tabelarycznej.

RDBMS – Relational Database Management System (RDBMS, dosłownie system zarządzania relacyjną bazą danych) – to zestaw programów służących do korzystania z bazy danych opartej na modelu relacyjnym.
SQL – strukturalny język zapytań używany do tworzenia, modyfikowania baz danych oraz do umieszczania i pobierania danych z baz danych. Język SQL jest językiem deklaratywnym Decyzję o sposobie przechowywania i pobrania danych pozostawia się
systemowi zarządzania bazą danych (DBMS).Użycie SQL, zgodnie z jego nazwą, polega na zadawaniu zapytań do bazy danych. Zapytania można zaliczyć do jednego z trzech głównych podzbiorów:

• SQL DML (ang. Data Manipulation Language – „język manipulacji danymi”),
• SQL DDL (ang. Data Definition Language – „język definicji danych”),
• SQL DCL (ang. Data Control Language – „język kontroli nad danymi”).

DML

DML (Data Manipulation Language) służy do wykonywania operacji na danych – do ich umieszczania w bazie, kasowania, przeglądania, zmiany. Najważniejsze polecenia z tego zbioru to:
• SELECT – pobranie danych z bazy,
• INSERT – umieszczenie danych w bazie,
• UPDATE – zmiana danych,
• DELETE – usunięcie danych z bazy.


DDL

Dzięki DDL (Data Definition Language) można operować na strukturach, w których dane są przechowywane – czyli np. dodawać, zmieniać i kasować tabele lub bazy. Najważniejsze polecenia tej grupy to:
• CREATE (np. CREATE TABLE, CREATE DATABASE, …) – utworzenie struktury
(bazy, tabeli, indeksu itp.),
• DROP (np. DROP TABLE, DROP DATABASE, …) – usunięcie struktury,
• ALTER (np. ALTER TABLE ADD COLUMN …) – zmiana struktury (dodanie kolumny
do tabeli, zmiana typu danych w kolumnie tabeli).


DCL

DCL (Data Control Language) ma zastosowanie do nadawania uprawnień do obiektów bazodanowych. Najważniejsze polecenia w tej grupie to:
• GRANT (np. GRANT ALL PRIVILEGES ON EMPLOYEE TO PIOTR WITH GRANT OPTION) – przyznanie wszystkich praw do tabeli EMPLOYEE użytkownikowi PIOTR z opcją pozwalającą mu nadawać prawa do tej tabeli.
• REVOKE – odebranie użytkownikowi wszystkich praw do tabeli, które zostały
przyznane poleceniem GRANT.
• DENY.





Architektura


Instancja i SGA

Baza danych przechowuje dane w plikach na dysku twardym i umożliwia dostęp do tych plików za pośrednictwem systemu operacyjnego.
Aby umożliwić efektywne operowanie danymi, Oracle używa pamięci współdzielonej, dostępnej dla wszystkich użytkowników bazy danych, nazywanej Globalnym Obszarem Współdzielonym (SGA – System Global Area).
Instancja Oracle to właśnie wymienione wyżej uruchomione procesy tła oraz zalokowany globalny obszar współdzielony SGA. Użytkownik podłączając się do bazy danych, nie pobiera danych bezpośrednio z pliku bazy danych. Polecenie języka SQL wystosowane przez użytkownika trafia do odpowiedniego bufora w strukturze SGA, a następnie, po jego przetworzeniu i zanalizowaniu pobierane są bloki z pliku danych do obszaru SGA. Dopiero stąd informacja przekierowana zostaje do użytkownika. W przypadku, kiedy dane, do których odwołuje się użytkownik znajdują się już w obszarze SGA, pomijana jest faza pobierania danych z pliku i od razu informacja zwracana jest użytkownikowi. Relacyjna baza danych Oracle posługuje się standardowym językiem zapytań SQL, oraz posiada wbudowany wewnętrzny język tworzenia procedur składowanych PL/SQL. Od wersji 8i jako języka tworzenia procedur składowanych w bazach danych Oracle można używać również języka Java.


 Sesja i transakcje

Architektura klient – serwer bazy danych Oracle zapewnia wielu użytkownikom równoczesny dostęp do tej samej bazy. Operacje odczytu tych samych danych przez wielu użytkowników równocześnie nie powodują konfliktów ani niespójności. Inaczej rzecz się ma w przypadku modyfikacji tych samych danych. Wówczas mogłyby wystąpić niespójności. W celu zachowania spójności danych w czasie równoczesnej próby ich modyfikacji wprowadzono mechanizm transakcji, jako jednostki, w ramach, której użytkownicy wykonują swoje operacje w bazie danych. W sytuacjach konfliktowych system zarządzania bazą danych (DBMS) szereguje operacje różnych transakcji w taki sposób, aby nie powstały niespójności danych. Moment podłączenia się użytkownika do bazy danych jest jednocześnie początkiem sesji danego użytkownika. Trwa ona aż do momentu zakończenia pracy z bazą danych. Równolegle jeden użytkownik może mieć otwartych więcej niż jedną sesję. W ramach jednej sesji użytkownik może realizować jedną lub więcej transakcji, jedna po drugiej. Transakcja jest jednostką interakcji użytkownika z bazą danych i składa się z pojedynczych operacji realizowanych w bazie danych. Użytkownik realizuje swoje transakcje albo przez polecenia języka SQL, które kierowane są bezpośrednio do systemu zarządzania bazą danych (DBMS), albo pośrednio – przy użyciu wcześniej przygotowanych aplikacji bazy danych, odwołujących się do DBMS.


Mechanizm blokowania danych

Transakcje wykonujące operacje odczytu nie wpływają na siebie wzajemnie, ich działania nie kolidują ze sobą. Problem pojawia się w przypadku operacji zmieniających dane w bazie. Jeśli dwóch użytkowników zmienia jednocześnie dwa różne obiekty w bazie danych, nie wywołuje to konfliktu. Jeśli natomiast te dwie operacje dotyczyć będą tego samego obiektu, powstaje sytuacja konfliktowa. Aby uniknąć zakleszczeń będących efektem takich sytuacji Oracle opracował złożony mechanizm zakładania blokad na obiekty. W przypadku kiedy rozpocznie się transakcja pierwszego użytkownika, drugi użytkownik może odczytywać dane właśnie modyfikowane przez pierwszego, ale nie może
ich zmieniać do czasu zakończenia transakcji pierwszego użytkownika. Polecenie drugiego użytkownika zostanie skolejkowane jako oczekujące na wykonanie.


Użytkownicy i schematy

Kiedy użytkownik bazy danych tworzy obiekt, jednocześnie staje się jego właścicielem. Obiekty te tworzone są w tak zwanym schemacie użytkownika, czyli logicznej przestrzeni bazy danych. Schemat użytkownika jest tworzony automatycznie podczas definiowania użytkownika i posiada on unikalną nazwę, która jest identyczna z nazwą użytkownika. Nazwa schematu wykorzystywana jest do wskazania obiektów bazy danych stanowiących własność danego użytkownika. Odwołanie do obiektu znajdującego się w innym schemacie umożliwia następująca składnia:

NAZWA_UŻYTKOWNIKA.NAZWA_OBIEKTU

Nazwy obiektów muszą być unikalne w obrębie schematu. Dwóch użytkowników może posiadać obiekt o tej samej nazwie w swoich schematach, natomiast różnie będą się do nich odwoływać. Jeśli użytkownik Kowalski oraz Nowak mają w swoich schematach obiekty o nazwie Towary mogą się do nich odwoływać (przy założeniu że mają do tego uprawnienia) dodając nazwę użytkownika kolegi przed nazwą obiektu. Użytkownik Kowalski odnosząc się do swojego obiektu wywołuje go :

TOWARY

Jeśli zechce odnieść się do obiektu kolegi:

NOWAK.TOWARY



Obiekty bazy danych

W bazie danych Oracle istnieje wiele różnych obiektów zarówno do przechowywania samych danych, jak i pełniących funkcje wspomagające zarządzaniem tymi danymi. Wszystkie obiekty tworzone są przez użytkowników bazy danych. Użytkownik musi mieć jednak przypisane uprawnienie tworzenia danego rodzaju obiektu. W systemie Oracle można zdefiniować następujące rodzaje obiektów do przechowywania danych:

Tabele – służą do przechowywania danych.
Indeksy – są strukturami danych zwiększającymi prędkość wykonywania operacji na tabeli.
Klastry – Struktura organizacyjna bloków
Segmenty wycofania – przechowują dane z przed ich zmodyfikowania przez nie zatwierdzona˛ transakcje
Tabele tymczasowe – Służą do przechowywania danych potrzebnych na czas jednej transakcji lub jednej sesji oraz do wspomagania zarządzania tymi danymi:
Widoki – to logiczna struktura, wirtualna tabela wyliczana w locie, określona przez zapytanie SQL, umożliwia dostęp do podzbioru kolumn i wierszy tabeli lub tabel.
Sekwencje – Sekwencja to obiekt bazy danych generujący kolejne liczby. Sekwencje są stosowane przede wszystkim do tworzenia kolejnych
wartości sztucznych kluczy podstawowych
Wyzwalacz – jest to procedura wykonywana automatycznie jako reakcja na pewne zdarzenia w tabeli bazy danych.
Pakiety, procedury i funkcje i inne


Tabela
Tabela to nieuporządkowany zbiór rekordów, informacji tego samego typu. Pole to pojedynczy niepodzielny element informacji, zawierający:
Nazwę – identyfikującą pole,
Typ – określający zbiór wartości, które to pole może przyjąć,
Wartość – będącą informacją zapisaną w polu.
Rekord to uporządkowany zbiór różnych pól.
Kolumna to zbiór pól tego samego rodzaju z zakresu wszystkich rekordów





Brak komentarzy:

Prześlij komentarz