|
1. Założenia składniowe języka SBQL
Przy podanych wyżej założeniach będziemy starali się zdefiniować składnię i semantykę pewnego modelowego języka SBQL (Stack-Based Query Language). Język SBQL jest formalną idealizacją wielu języków zapytań, w szczególności SQL, ODMG OQL oraz języków zapytań zdefiniowanych dla XML. W języku SBQL będziemy opierali się na abstrakcyjnej składni, starając się wyeliminować zbędny lukier syntaktyczny oraz uczynić operatory języka w maksymalny sposób ortogonalnymi w stosunku do siebie. Podstawowe założenia syntaktyczne i semantyczne SBQL są następujące:
-
Literały reprezentujące wartości atomowe, takie jak 2, "Nowak", 1000, są elementarnymi zapytaniami;
-
Nazwy zmiennych lub obiektów programowych, takie jak x, y, z, są elementarnymi zapytaniami;
-
Dowolne nazwy użyte do konstrukcji schematu bazy danych, takie jak Osoba, Nazwisko, Zarobek, są elementarnymi zapytaniami;
-
Wyróżnimy pewną liczbę binarnych operatorów, takich jak +, *, <, =, where, ., złączenie itd., oraz unarnych operatorów, takich jak sum, count, sqrt,itd. Operatory będą podzielone na operatory algebraiczne (które nie zmieniają stosu środowisk i nie działają na tym stosie) oraz niealgebraiczne (których definicja bazuje na odpowiednim zachowaniu się stosu środowisk).
- Operatory będą służyć do łączenia zapytań w większe zapytania. Np. zapytaniami będą wyrażenia:
P6.1. |
2+2
(x+y)*z
x < 5
Zarobek = 1000
Osoba.Nazwisko
Osoba where (Zarobek = 1000)
Osoba where (x + Zarobek < 1000 * z) |
- Każde tego rodzaju zapytanie (w szczególności, np. Zarobek = 1000), będzie posiadało semantykę niezależną od kontekstu. Jest to zasadnicza różnica koncepcyjna w stosunku do SQL i OQL, gdzie tego rodzaju zapytanie nie jest samodzielne i może wystąpić wyłącznie jako człon pewnego większego zapytania. Tę własność SBQL osiągniemy dzięki temu, że każde zapytanie będzie ewaluowane relatywnie w stosunku do stosu środowisk. Własność ma zasadnicze znaczenie dla prostoty definicji, rozszerzeń, kontroli nad uniwersalnością języka oraz możliwości metod optymalizacyjnych.
Pozostałe założenia naszego podejścia oraz jego szczegóły zostaną wyjaśnione w dalszej części książki. |