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ń

 

8. Czym jest (lub powinna być) teoria języków zapytań?

Podane poprzednio zasady języków zapytań oraz opisywane dalej podejście stosowe mogą być uważane za próbę budowy nowej teorii dla języków zapytań. Autor jest zdania, że budowanie teorii jest niezbędne. Teoria jest w stanie ustalić pewne reguły, paradygmaty danej dziedziny, które mogą być nauczane i które mogą efektywnie służyć do budowy, analizy, porównania i rozwoju produktów wytwarzanych w danej dziedzinie. Sama znajomość produktów informatyki (np. biegła znajomość SQL, OQL lub C++) jest niewystarczająca, gdyż w krótkim czasie mogą one być zastąpione przez inne produkty, zaś wiedza o nich przejdzie do historii. Potrzebne jest wyodrębnienie z tych produktów pojęciowych niezmienników, abstrakcji, faktów, wniosków, klasyfikacji, które będą trwałe w dłuższym horyzoncie czasowym.

Niestety, pojecie teorii jest wypaczone przez matematyków działających w obszarze informatyki. Występuje nieuzasadnione zawłaszczenie terminu teoria wyłącznie dla tworów intelektualnych używających zaawansowanej matematyki. Biorąc ich stosunek do praktyki, większość z nich nie zasługuje jednak na to miano. Teorie informatyczne, polegające na przyjęciu a priori aksjomatów i definicji i następnie udowadnianiu twierdzeń, najczęściej do niczego nie służą oprócz naukowych karier ich twórców i wobec tego muszą budzić sprzeciw nie tylko z naukowego, ale również z etycznego punktu widzenia. Etyczne wątpliwości dotyczą również sytuacji, gdy matematyk  budujący "teorię" jest niekompetentny w zakresie jej przedmiotu, gdyż nie miał jakichkolwiek doświadczeń z systemami informatycznymi, dla których tworzy teorię. Przypomina to sytuację, gdy ktoś próbuje tworzyć teorię gry na skrzypcach, ale nigdy nie trzymał skrzypiec w ręku, nie ma słuchu muzycznego, nigdy nie oglądał orkiestry i nigdy nie był w sali koncertowej.

W informatyce istnieje kilka rodzajów tworów intelektualnych, zwanych teoriami. Tym mianem są najczęściej oznaczane nie teorie, lecz zmatematyzowane ideologie, które nie dotyczą istniejącej rzeczywistości, lecz proponują nową rzeczywistość, dotąd nieznaną. Do takich teorii można zaliczyć model relacyjny baz danych, dedukcyjne bazy danych, programowanie w logice, metody matematyczne w inżynierii oprogramowania, większość teorii dotyczących wartości zerowych i niekompletnej informacji w bazach danych i większość teorii z dziedziny sztucznej inteligencji. Teorie te nie są w ogóle teoriami, ponieważ nie opisują rzeczywistości istniejącej, lecz rzeczywistość potencjalną, powstałą po wdrożeniu danej "teorii". Najczęściej tworzone są przez ludzi posiadających kompetencje dotyczące formy badań (matematyki), lecz nie posiadających kompetencji w zakresie przedmiotu badań (informatycznej praktyki). Są więc najczęściej nieadekwatne w stosunku do praktyki, proponują rzeczywistość okrojoną z wielu kluczowych cech, utopijną, nie mającą szans na zaistnienie. Ponoszą główną odpowiedzialność za złą reputację badań teoretycznych w informatyce. Jest ona konsekwencją faktu, że środowiska akademickie wykształciły formalistyczny stereotyp terminu teoria jako czegoś, co ma konotacje matematyczne i jest nieprzydatne w praktyce. Jest to nie tylko zniekształcenie znaczenia terminu "teoria": jest to również sprzeczne z duchem, etosem oraz etyką nauki.

Terminowi teoria należy przywrócić właściwe znaczenie w informatyce, wolne od fałszywych stereotypów. W informatyce, tak jak w innych dziedzinach, istnieje wiele autentycznych teorii, które powstały w wyniku syntezy praktycznych metod, rozwiązań i produktów. Do nich można zaliczyć teorię gramatyk, teorię automatów skończonych, teorię budowy kompilatorów, teorię języków programowania, zasady budowy komputerów, sieci komputerowych, systemów graficznych itd. Matematyka jest o tyle ważna, o ile jest pragmatycznie skuteczna. W większości, wspomniane teorie nie są zmatematyzowane. Są one syntetycznym zapisem tych wszystkich faktów z danej dziedziny, które mogą służyć do kształcenia specjalistów z tego zakresu, efektywnej budowy produktów tej dziedziny oraz do jej rozwoju. Obecność matematyki jest i powinna być drugorzędna i usługowa. Istotne jest, czy dana teoria w weryfikowalny i obiektywny sposób prowadzi nowicjuszy do wiedzy w danej dziedzinie, umożliwiając im samodzielną efektywną pracę w tej dziedzinie oraz jej rozwój. Jest oczywiste, że konieczna jest praktyczna weryfikacja takiej teorii, czyli obiektywne świadectwo, że teoria jest efektywna w konkretnych praktycznych sytuacjach. Wobec szybkiego postępu w zakresie technologii istotą skutecznego naukowego działania w kluczowych dziedzinach informatyki jest jak najszybsze skonfrontowanie koncepcji z rzeczywistością. Jest to możliwe prawie wyłącznie poprzez eksperymenty polegające na budowie prototypów systemów i prób wdrożenia tych prototypów. Matematyczne teorie są w tym względzie zbyt bezwładne, ograniczone i przez to nieskuteczne.

W naukach inżynierskich, do których należy informatyka, teorie mają charakter normujący, a nie opisowy. Oznacza to, że teoria nie służy wyłącznie do biernego opisu faktów z rzeczywistości i do wyciągania wniosków na podstawie tych opisów, lecz zajmuje się oceną samych faktów, wartościowaniem ich jakości. To różni informatykę od fizyki, astronomii, biologii lub medycyny, które w większości nie krytykują zastanego świata, ponieważ taka krytyka nie miałaby sensu. Teoria informatyczna nie może sprowadzać się do biernej rejestracji faktów i wnioskowania, ponieważ produkty działalności ludzkiej, w tym produkty informatyki, nie stanowią rzeczywistości obiektywnej, niezależnej od ich woli. W odróżnieniu od praw fizyki i przyrody, które ludzie mogą badać i wykorzystywać, ale nie mogą ich dowolnie kształtować, w zakresie produktów ludzkiej działalności istnieje duża swoboda w zakresie ich formy, funkcjonalności i budowy. Dotyczy to szczególnie produktów informatyki, gdzie istnieje niespotykana gdzie indziej elastyczność materiału konstrukcyjnego, m.in. sposobu konstrukcji oprogramowania. Tak samo jak normą w budownictwie jest fakt, że każdy budynek musi mieć fundament, tak samo pewne zasady i kanony powinny obowiązywać dla tworów informatyki.

Podane wyżej zasady oraz całe podejście stosowe są próbą stworzenia tego rodzaju norm dla języków zapytań. Normy takie umożliwiają ocenę produktów z punktu widzenia obiektywnych kryteriów. Ciągle zmieniający się charakter produktów informatyki powoduje, że wszelkie zasady stają się niestabilne i kwestionowalne. Niemniej obowiązkiem świata akademickiego jest praca nad doskonaleniem norm i zasad oraz wzmacnianie ich autorytetu w świecie informatyki praktycznej. Autor ma nadzieję, że elementem tego rodzaju normy dla języków zapytań stanie się podejście stosowe.

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