I.
Wprowadzenie do  języków zapytań (1)
II.
Wprowadzenie do  języków zapytań (2)
III.
Pojęcia obiektowości w bazach danych (1)
IV.
Pojęcia obiektowości w bazach danych (2)
V.
Podstawy semantyczne języków zapytań
VI.
Modele składu obiektów
  Wstęp
  1. Założenia składniowe języka SBQL
  2. Abstrakcyjny model składu obiektów
  3. Modele M0, M1, M2 i M3 składu obiektów
  Podsumowanie
  Zadania
VII.
Stos środowisk, rezultaty zapytań, funkcja nested
VIII.
Język SBQL (Stack-Based Query Language) (1)
IX.
X.
Dalsze własności SBQL
XI.
Operatory order by i group by
XII.
Przetwarzanie struktur nieregularnych
XIII.
Rozszerzenie języków zapytań o konstrukcje imperatywne
XIV.
Procedury, procedury funkcyjne, metody, reguły zakresu
XV.
Parametry procedur i metod, procedury rekurencyjne, optymalizacja poprzez modyfikację zapytań

 

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.

Copyrights © 2006 PJWSTK
Materiały zostały opracowane w PJWSTK w projekcie współfinansowanym ze środków EFS.