I.
Wprowadzenie do  języków zapytań (1)
II.
Wprowadzenie do  języków zapytań (2)
  Wstęp
  1. Niezgodność impedancji
  2. Schemat i organizacja danych - nieodłączne cechy języka zapytań
  3. Pomiędzy złożonością modelu danych a złożonością zapytań
  4. Architektura SZBD włączająca przetwarzanie zapytań
  Podsumowanie
  Zadania
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
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ń

 

Podsumowanie

Wykształcone w latach 70-tych koncepcje dotyczące języków zapytań z definicji zakładały brak algorytmicznej uniwersalności.Ponieważ taka uniwersalność jest niezbędna do tworzenia aplikacji opartych na bazie danych, przyjęto, że języki zapytań będą "pod-językami" w środowisku wytwórczym oprogramowania.

Co za tym idzie, to środowisko powinno być oparte na popularnym języku programowania. To oznacza konieczność połączenia języka zapytań z językiem programowania, w taki sposób, aby:

  • zapytania mogły być używane wewnątrz programów;

  • zapytania mogły być parametryzowane (dynamicznie, w praktycznie dowolny sposób) przez wartości zmiennych języka programowania;

  • wyniki zapytań mogły być przetwarzane przez programy.


Różnice w koncepcji języków spowodowały znaczne trudności techniczne w realizacji tego rodzaju połączenia - niezgodność impedancji.

Są to nieodłączne cechy języka zapytań. Użytkownik języka musi być w pełni świadomy celów formułowania zapytania, związków zapytania zarówno z jego celem (biznesowym), jak i strukturą danych. Musi być świadomy technicznych i biznesowych własności struktur danych oraz technicznych i biznesowych własności zwracanego przez zapytanie wyniku.


Warunkiem koniecznym umożliwiającym formułowanie zapytań jest informacja co zawiera baza danych i jak jest zorganizowana.

  • Ta informacja musi mieć algorytmiczną precyzję.

  • Determinizm programów komputerowych (w tym zapytań) oznacza, że użytkownik lub programista posiada wiedzę o logicznej organizacji danych.

  • Terminem "logiczna" określa się organizację danych wyrażoną w terminach precyzyjnego "zewnętrznego" modelu danych, abstrahującą od fizycznej reprezentacji danych.


Im więcej informacji semantycznej znajduje się w strukturach danych, tym mniej złożone i krótsze są zapytania.

  • Jeżeli model danych nie daje możliwości zapisu pewnych informacji semantycznych, wówczas schemat danych niezbędny do rozumienia biznesowej roli danych jest prosty formalnie, ale złożony koncepcyjnie.

  • Jest mniej czytelny dla programisty, co wydłuża czas formułowania zapytań.

  • Programista formułujący zapytanie musi te zależności uwzględnić w zapytaniu, przez co jest ono bardziej złożone.


Zbyt prosty model danych powoduje dalsze straty:

  • zwiększony rozmiar programów aplikacyjnych,

  • zwiększony koszt ich tworzenia i pielęgnacji,

  • zwiększony koszt/czas ewaluacji bardziej złożonych zapytań.

    • Optymalizacji zapytań w relacyjnych SZBD zajmuje się częściowo reperowaniem tego, co zostało zepsute poprzez zgubienie informacji semantycznej.


Zbyt złożony model danych jest też niekorzystny - trudniej dopasować sytuacje w dziedzinie biznesowej do decyzji w zakresie struktur danych.

 

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