Klasyfikacja języków zapytań : przykładowe języki zapytań, charakterystyka, języki deklaratywne i proceduralne
Języki zapytań są to mechanizmy umożliwiające wyszukiwanie
Do najważniejszych cech języka zapytań należą
siła ekspresji – określa zakres tego co w danym języku można zrobić
pełność – oznacza, że język zapytań musi mieć tę cechę, że w języku zapytań można zapisać taką kwerendę, która pozwoli odszukiwać w bazie danych dowolne informacją jednostkową lub zestaw informacji jednostkowych w bazie danych o ile te dane się tam znajdują
rozszerzalność operacyjna języka – jest to wyposażenie języka zapytań w takie mechanizmy które pozwolą
zapisać różnorodne operacje arytmetyczne
użycie funkcji agregujących
możliwość korzystania z wyrażeń warunkowych
możliwość nadawania nowopowstałym relacjom arbitralnych nazw
prezentacja (wydruk lub wyświetlanie) wskazanych relacji
elastyczność języka , dotyczy to przede wszystkim czasu oczekiwania na odpowiedź po zadaniu pytania. Dotyczy to również rozmiaru pamięci roboczej potrzebnej do obsługi kwerend
Cennym rozszerzeniem języka zapytań jest jego zanurzenie w językach programowania, co pozwala profesjonalnemu użytkownikowi bazy danych dołączać do zdań języka zapytań zdań zapisanych w języku programowania
Jednym z ważniejszych kryteriów języków zapytań jest procedularność. Przykładem języka proceduralnego jest język oparty na algebrze zapytań. W proceduralnych językach zapytań użytkownik buduje kwerendę w postaci procedury, którą można przedstawić jako ciąg kroków takich jak, selekcja, rzut, złączenie itd. Kwerenda jest tu zarówno opisem tego o co pytamy jak i metodą prowadzącą do uzyskania odpowiedzi.
Języki nieproceduralne. W tych językach kwerenda zapisana jest żądaniem użytkownika. Każde jego żądanie składa się z dwóch części
pierwsza część opisuje żądany schemat relacji wynikowej
druga jest opisem warunków jakie muszą spełniać krotki relacji
Klasyfikacja języków zapytań (dotyczy ona abstrakcyjnych języków zapytań, które w swojej czystej postaci nie są implementowane). Klasyfikacja jest dwustopniowa.
Na pierwszym poziomie języki zapytań dzieli się na
języki algebraiczne (ISBL)
języki oparte na rachunku predykatów
Języki oparte na rachunku predykatów, to języki nie proceduralne, w których kwerenda określa kształt (schemat) relacji wynikowej oraz warunek (predykat), który musi być spełniony przez krotki składające się na relacje wynikową.
Na drugim poziomie języków algebraicznych nie dzieli się. Dalszemu podziałowi ulegają języki oparte na rachunków predykatów
języki oparte na relacyjnym rachunku krotek (QUEL)
języki oparte na relacyjnym rachunku dziedzin (QBE)
Opis poszczególnych języków
Język ISBL jest językiem algebry relacji, do których zalicza się iloczyn i różnicę mnogościową oraz selekcję projekcję (rzutowanie) i łączenie.
Język QUEL jest językiem opartym o relacyjny rachunek krotek. Przedstawicielem systemu DBMS , który działa z takim językiem zapytań jest system INGRES. System ten działa w środowisku UNIX. Inspiracją był rachunek predykatów zaproponowany w abstrakcyjnym języku ALPHA. W języku tym można zadawać pytania dotyczące dwóch lub więcej relacji. Można usuwać, dodawć, sortować krotki. Można używać funkcji agregujących typu sumownie, wyznaczanie wartości największej i najmniejszej. Można QUEL zanużyć w programach napisanych w języku C.
Język QBE oparty na relacyjnym języku dziedzin. Twórca IBM. Język zyskał popularność ze względu na swój dialogowy i wizualny charakter.Zakresem zmiennej jest wartość atrybutu a nie zbiór krotek. W tym języku można określać warunki wyszukiwania dla określonych atrybutów np. X<J+3. Istotnym rozszerzeniem tego języka było wprowadzenie funkcji agregujących SUM, AVG, MIN, MAX, CNT (ilość). Język jest wyposarzony w mechanizmy typowe dla DML.
zmienianie zawartości tabel (pól, krotek)
definiowanie nowych tabel
dodawanie pól lub atrybutów lub ich usuwanie
Język SQL jest językiem łączącym w sobie cechy języków algebraicznych i języka rachunku krotek. Został opracowany przez IBM w eksperymentalnym systemie SYSTEM R. Język ten stał się standardem w systemach b.d. Język ten zawiera w sobie część typu DML oraz DDL. Podstawowa formuła zapytania w języku SQL
SELECT Ri1A1...,Rik...Ak
FROM R1...Rj
WHERE ;
W formie tej lista Ri,A1...Rik...Ak określa atrybuty relacji wynikowej zaś określa warunki wyszukiwania. Formuła ta może być osiągnięta z użyciem złożenia operacji relacyjnych projekcji z selekcją. SQL pozwala tworzyć bardziej złożone konstrukcje niż QUEL. SQL wyposażony jest w operatory agregujące. Ma dodatkowe mechanizmy do aktualizacji b.d, zmiany wartości atrybutów, dopisywania krotek do relacji lub usuwania ich.
To nie jest wszystko, będzie zaktualizowane.