Sylabus przedmiotu Języki i środowiska programowania baz danych


1. Podstawowe informacje

Nazwa angielska: Languages and environments for database programming
Kod: JPS
Katedra: Inżynierii oprogramowania
Rodzaj studiów: magisterskie internetowe
Specjalizacja: wszystkie
Semestr nauczania: 2
Forma zaliczania: egz.


2. Opis


Celem wykładu jest wprowadzenie słuchaczy w teorie i zasady konstrukcji kompilatorów lub interpreterów zaawansowanych obiektowych języków zapytań. Wykład jest oparty na podejściu stosowym (SBA) i języku SBQL. Końcowe wykłady są poświecone metodom rozszerzeniu języka zapytań o konstrukcje imperatywne oraz abstrakcje programistyczne.


3. Opis po angielsku


The goal of the lecture is introduction of the students into the theory and construction of compilers or interpreters of object-oriented query languages. The lectures are founded on the stack-based approach (SBA) and the SBQL query language. Final lectures are devoted to extension of a query language with imperative constructs and programming abstractions.


4. Zakres minimalnych wymagań odnośnie wiedzy i umiejętności po ukończeniu przedmiotu przez studenta


Znajomość podstaw budowy obiektowych baz danych, znajomość wewnętrznych mechanizmów kompilatorów i interpreterów obiektowych języków zapytań i języków programowania baz danych, umiejętność skonstruowania i zaimplementowania własnego języka zapytań dla wybranych struktur danych.


5. Program przedmiotu w rozbiciu na wykłady

Nr tyg.

Wykład

1

Charakterystyka języków zapytań. Teorie języków zapytań. Semantyka języków zapytań. Założenia podejścia stosowego. Konstrukcje bazujące na zapytaniach. Perspektywy. Optymalizacja zapytań. Konstrukcje i abstrakcje programistyczne. Kontrola typologiczna. Różne poglądy na języki zapytań. Znaczenie języków zapytań. Zastosowania języków zapytań. Własności języków zapytań

2

Zasady języków zapytań. Obiektowość a języki zapytań. Niezgodność impedancji. Pojęcia języka zapytań. Schemat i organizacja danych. Język schematu danych. Złożoność modelu danych a złożoność zapytań. Architektury SZBD dla przetwarzania zapytań

3

Co to jest obiektowość? Obiekt, tożsamość obiektu, identyfikator obiektu, nazwa obiektu. Stan i atrybuty obiektu. Metody związane z obiektem. Obiekt złożony i zasada relatywizmu obiektów. Zasada wewnętrznej identyfikacji. Powiązania pomiędzy obiektami. Hermetyzacja i ukrywanie informacji. Komunikaty.

4

Klasy. Inwarianty przechowywane w ramach klas. Interfejsy. Hierarchia klas i dziedziczenie. Obywatelstwo klasy. Ekstensja klasy. Zasada otwarta-zamknieta. Zasada zamienialności. Wielokrotne dziedziczenie. Abstrakcyjne typy danych. Polimorfizm, przesłanianie, przeciążanie. Dynamiczne role obiektów. Kolekcje. Wartości zerowe, warianty, dane pół-strukturalne. Trwałość. Moduły.

5

Składnia, semantyka i pragmatyka języka formalnego. Składnia abstrakcyjna i semantyka kierowana składnią. Semantyka języka zapytań z lotu ptaka. Zapytania eliptyczne. Inne formalizacje obiektowych języków zapytań. Typowe wady teorii języków zapytań. Czego oczekiwać od teorii języków zapytań?

6

Nazwy, zakresy i wiązanie. Operacyjna semantyka zapytań i programów. Założenia składniowe języka SBQL. Abstrakcyjny model składu obiektów. Modele M0, M1, M2 i M3 składu obiektów.

7

Stos środowisk w językach programowania. Wiązanie nazw. Stos statyczny i dynamiczny. Stos środowisk w podejściu stosowym do języków zapytań. Rezultaty zwracane przez zapytania. Otwieranie nowego zakresu na stosie środowisk, funkcja nested.

8

Składnia SBQL. Stos rezultatów. Ogólna architektura mechanizmu przetwarzania zapytań. Procedura ewaluacji zapytań eval. Operatory algebraiczne. Operatory as oraz group as.

9

Operatory nie-algebraiczne: where, kropka, join, kwantyfikatory. SBQL - przykłady zapytań i porównania z językami SQL, OQL i XQuery.

10

Rozszerzenie SBQL w modelu M1. Wielokrotne dziedziczenie. Przykłady zapytań w modelu M1. Rozszerzenie SBQL w modelu M2. Operatory rzutowania w modelu M2. Odmienność i zalety modelu M2.

11

Operator sortowania order by. Definicja operatora order by w SBQL. Puste i wielowartościowe klucze. Sortowanie w rosnącej i malejącej kolejności. Uwzględnienie porządku alfabetycznego w językach narodowych. Zapytania zakresowe. Operator group by.

12

Nieregularne dane w modelach składu. Konstrukcje w języku zapytań obsługujące dane nieregularne. Możliwości zewnętrznych złączeń. Problem z fałszywym wiązaniem. Wartości domyślne.

13

Konstrukcje deklaratywne i imperatywne. Zasada korespondencji. Elementarne konstrukcje językowe w językach imperatywnych.

14

Definicje abstrakcji w SBQL. Parametry procedur. Procedury funkcyjne a perspektywy. Metody w SBQL. Rozszerzenie SBQL w modelu M3. Reguły zakresu.

15

Parametry procedur, funkcji i metod. Wołanie przez wartość (call-by-value). Wołanie przez referencję (call-by-reference). Ścisłe wołanie przez wartość (strict-call-by-value). Wołanie z etykietowanymi parametrami aktualnymi. Procedury rekurencyjne. Optymalizacja poprzez modyfikację zapytań.


6. Program zajęć (ćwiczeń) w gmachu uczelni

Nr zajęć

Treść

1

Formułowanie zapytań w SBQL w systemie ODRA.

2

Rozbiór semantyczny zapytań, analiza sytuacji na stosach podczas przetwarzania zapytań.

3

Zapoznanie się z technikami kompilacji zapytań, budowa wewnętrznego kodu zapytań, interpretacją kodu.

4

Analiza konstrukcji imperatywnych oraz procedur na zapytań konkretnych rozwiązań w systemie ODRA.


7. Kryteria zaliczeń

  • Zaliczenie części internetowej obejmuje:
    • Zadania domowe, których rozwiązania studenci umieszczają w Folderze zadań systemu Edu w określonych terminach. Wymagane jest oddanie wszystkich prac domowych (oddanie po terminie obniżają ocenę końcową).
    • Uzyskanie co najmniej połowy liczby punktów na testach w systemie Edu.
    • Indywidualny projekt zaliczeniowy  (wraz z dokumentacją projektową).
  • Zaliczenie części laboratoryjnej obejmuje:
    • Dokument projektowy będący rezultatem case study prowadzonego na zajęciach (przygotowany indywidualnie lub grupowo - do ustalenia)
  • Wszystkich studentów obowiązuje końcowy egzamin na miejscu w uczelni.


8. Wymagania dotyczące oprogramowania, które studenci powinni mieć zainstalowane na swoim komputerze w domu:

    • System ODRA (prototyp obiektowego SZBD z zaimplementowanym SBQL).


9. Literatura podstawowa

  • K. Subieta. Materiały do wykładów w formie elektronicznej.
  • K.Subieta. Teoria i konstrukcja obiektowych języków zapytań.
    Wydawnictwo PJWSTK, Warszawa 2004, ISBN 83-89244-29-2 (522 strony)


10. Literatura uzupełniająca

  • The Object Database Standard ODMG 3.0. R.G.G. Cattel, Ed., Morgan Kaufman 2000.


11. Wymagane przedmioty poprzedzające


Ze studiów inżynierskich:

  • podstawy relacyjnych baz danych
  • tworzenie aplikacji z relacyjnymi bazami danych
  • obiektowe języki programowania C++ i/lub Java

Ze studiów magisterskich:

  • Standardy w zakresie systemów rozproszonych i baz danych (SSR)

 

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