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)
|