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ń
  Wstęp
  1. Składnia, semantyka i pragmatyka języka formalnego
  2. Składnia abstrakcyjna i semantyka kierowana składnią
  3. Semantyka języka zapytań z lotu ptaka
  4. Optymalizacja zapytań
  5. Zasady języków zapytań
  6. Zapytania eliptyczne
  7. Typowe wady teorii języków zapytań
  8. Czym jest (lub powinna być) teoria języków zapytań?
  9. Założenia semantyczne podejścia stosowego
  10. Nazwy, zakresy i wiązanie
  11. Operacyjna semantyka zapytań i programów
  Podsumowanie
  Zadania
VI.
Modele składu obiektów
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ń

 

10. Nazwy, zakresy i wiązanie

Konstrukcję semantyki języka będziemy opierać na pojęciach nazywania, zakresu i wiązania (naming, scoping, binding) znanych z języków programowania i realizowanych poprzez stos środowisk. Każda nazwa występująca w zapytaniu będzie wiązana do bytu programistycznego czasu wykonania (trwałych danych i obiektów, atrybutów obiektów, procedur, metod, parametrów procedur i metod, lokalnych danych procedur itd.) zgodnie z zakresem właściwym dla tej nazwy. Reguły zakresu dla wiązania nazw będą ustalone poprzez znany stos środowisk, inaczej stos wołań (environment stack, call stack) występujący w nieomal wszystkich językach programowania.

W odróżnieniu od języków programowania, gdzie stos środowisk przechowuje również wartości zmiennych/obiektów, dla języków zapytań konieczne okazało się oddzielenie stosu środowisk (ustalającego zakresy nazw) od składu obiektów. Wynika to m.in. stąd, że odwołania do pewnego obiektu mogą jednocześnie pojawić się w kilku sekcjach stosu. Ponadto, zakresy dla pewnych nazw mogą dotyczyć bazy danych, natomiast stos jest strukturą ulotną, istniejącą tylko na czas działania danej aplikacji. Stos nie będzie więc przechowywał obiektów, a jedynie ich identyfikatory (oraz wraz z nimi inne elementy).

Ze względu na makroskopowy charakter języków zapytań, wiązanie danej nazwy (poprzez stos) może być wielowartościowe, tj. jednej nazwie może być przypisana jednocześnie pewna kolekcja bytów czasu wykonania.

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