Języki i Środowiska Programowania Baz Danych 2010/2011 PJWSTK, 2010

Podobne dokumenty
KOR. Konstrukcja systemów obiektowych i rozproszonych. PJWSTK, 2010 Emil Wcisło.

Temat : SBQL 1 obiektowy język zapytań.

JPS. cwiczenia 3. Stosy, proste zapytania. Michał Lentner Polsko-Japońska Wyższa Szkoła Technik Komputerowych

SBQL. język zapytań dla obiektowych baz danych. Kamil Adamczyk. Uniwersytet Warszawski 20.IV.2009

Języki i środowiska przetwarzania danych rozproszonych

Temat : SBQL 1 obiektowy język zapytań.

SYLABUS DOTYCZY CYKLU KSZTAŁCENIA Bieżący sylabus w semestrze zimowym roku 2016/17

Przestrzenne bazy danych Podstawy języka SQL

LITERATURA. C. J. Date; Wprowadzenie do systemów baz danych WNT Warszawa 2000 ( seria Klasyka Informatyki )

Język Java i technologie Web - opis przedmiotu

Programowanie obiektowe 1 - opis przedmiotu

Programowanie obiektowe

Języki i środowiska przetwarzania danych rozproszonych

METODY REPREZENTACJI INFORMACJI

Laboratorium z przedmiotu Programowanie obiektowe - zestaw 04

Wykład 2 Składnia języka C# (cz. 1)

METODY INŻYNIERII WIEDZY ASOCJACYJNA REPREZENTACJA POWIĄZANYCH TABEL I WNIOSKOWANIE IGOR CZAJKOWSKI

Podstawy i języki programowania

KARTA PRZEDMIOTU. Egzamin / zaliczenie. Egzamin / zaliczenie. ocenę*

Produktywne tworzenie aplikacji webowych z wykorzystaniem Groovy i

PRZEWODNIK PO PRZEDMIOCIE

LITERATURA. Wprowadzenie do systemów baz danych C.J.Date; WNT Warszawa 2000

Programowanie obiektowe

Podstawy Programowania

Generatory analizatorów

WYKŁAD. Jednostka prowadząca: Wydział Techniczny. Kierunek studiów: Elektronika i telekomunikacja. Nazwa przedmiotu: Język programowania C++

Konstruowanie Baz Danych SQL UNION, INTERSECT, EXCEPT

Konwersje napis <-> liczba Struktury, unie Scanf / printf Wskaźniki

Typy wyliczeniowe Konwersje napis <-> liczba Struktury, unie Scanf / printf Wskaźniki

Zadanie polega na stworzeniu bazy danych w pamięci zapewniającej efektywny dostęp do danych baza osób.

Projektowanie, tworzenie aplikacji mobilnych na platformie Android

Programowanie Obiektowe GUI

Język SQL, zajęcia nr 2

PLAN WYNIKOWY PROGRAMOWANIE APLIKACJI INTERNETOWYCH. KL IV TI 6 godziny tygodniowo (6x15 tygodni =90 godzin ),

Zadanie nr 2: Arytmetyka liczb zespolonych

KARTA KURSU. Wstęp do programowania

Egzamin / zaliczenie na ocenę*

Model relacyjny. Wykład II

Podstawy programowania. Wykład: 12. Struktury, unie, pola bitowe. dr Artur Bartoszewski -Podstawy programowania, sem 1 - WYKŁAD

REFERAT PRACY DYPLMOWEJ. Temat pracy: Projekt i realizacja warstwy serwerowej gry internetowej

Wstęp do programowania INP001213Wcl rok akademicki 2018/19 semestr zimowy. Wykład 8. Karol Tarnowski A-1 p.

PLAN WYNIKOWY PROGRAMOWANIE APLIKACJI INTERNETOWYCH. KL III TI 4 godziny tygodniowo (4x30 tygodni =120 godzin ),

Języki i paradygmaty programowania doc. dr inż. Tadeusz Jeleniewski

PRZEWODNIK PO PRZEDMIOCIE

Zaawansowane aplikacje WWW - laboratorium

Laboratorium 1 - Programowanie proceduralne i obiektowe

Paweł Rajba

Programowanie obiektowe. Dr hab. Inż. Marta Gładysiewicz-Kudrawiec Pokój 229 A1 Operatory new delete pliki-odczyt

PHP: bazy danych, SQL, AJAX i JSON

Baza danych sql. 1. Wprowadzenie. 2. Repozytaria generyczne

Programowanie obiektowe Object programming. Elektrotechnika II stopień (I stopień / II stopień) Ogólno akademicki (ogólno akademicki / praktyczny)

Temat 1. Podstawy Środowiska Xcode i wprowadzenie do języka Objective-C

Systemy baz danych w zarządzaniu przedsiębiorstwem. W poszukiwaniu rozwiązania problemu, najbardziej pomocna jest znajomość odpowiedzi

Instrukcja do pracowni specjalistycznej z przedmiotu. Obiektowe programowanie aplikacji

Extensible Markup Language (XML) Wrocław, Java - technologie zaawansowane

3. Opracować program kodowania/dekodowania pliku tekstowego. Algorytm kodowania:

Podstawy programowania. Wprowadzenie

Programowanie obiektowe

Informatyka I. Typy danych. Operacje arytmetyczne. Konwersje typów. Zmienne. Wczytywanie danych z klawiatury. dr hab. inż. Andrzej Czerepicki

Wykład Ćwiczenia Laboratorium Projekt Seminarium

Relacyjne bazy danych. Podstawy SQL

Zaawansowane programowanie obiektowe - wykład 5

KARTA PRZEDMIOTU. Aplikacje mobilne i wbudowane, D1.8

Rok akademicki: 2013/2014 Kod: JFT s Punkty ECTS: 5. Poziom studiów: Studia I stopnia Forma i tryb studiów: Stacjonarne

PRZEWODNIK PO PRZEDMIOCIE

Programowanie w Javie nazwa przedmiotu SYLABUS A. Informacje ogólne

Dziedziczenie. Streszczenie Celem wykładu jest omówienie tematyki dziedziczenia klas. Czas wykładu 45 minut.

XML-owe bazy danych ćwiczenia 1

Zadanie 2: Arytmetyka symboli

Programowanie w Javie cz. 1 Wstęp. Łódź, 24 luty 2014 r.

Programowanie w Javie 1 Wykład i Ćwiczenia 2 Przegląd podstawowych klas w Javie (elementy programowania obiektowego) Płock, 16 października 2013 r.

Projektowanie oprogramowania

Nazwa wariantu modułu (opcjonalnie): Laboratorium programowania w języku C++

Systemy Robotów Autonomicznych

Języki i metody programowania Java. Wykład 2 (część 2)

Systemy Rozproszone Technologia ICE

Biorąc udział w projekcie, możesz wybrać jedną z 8 bezpłatnych ścieżek egzaminacyjnych:

Jeśli chcesz łatwo i szybko opanować podstawy C++, sięgnij po tę książkę.

Teoretyczne podstawy informatyki

SYLABUS/KARTA PRZEDMIOTU

PRZEWODNIK PO PRZEDMIOCIE

Wykład 7 Implementacja języka SQL w systemach baz danych Oracle sortowanie, funkcje agregujące i podzapytania.

OPIS MODUŁU KSZTAŁCENIA (SYLABUS)

Platformy programistyczne:.net i Java L ABORATORIUM 7,8: HACKATHON - JTTT

dr inż. Jarosław Forenc

Wykład XII. optymalizacja w relacyjnych bazach danych

Programowanie. programowania. Klasa 3 Lekcja 9 PASCAL & C++

Wykład 8: klasy cz. 4

Specyfikacja implementacyjna aplikacji mobilnej

PRZEWODNIK PO PRZEDMIOCIE

Wstęp do programowania INP001213Wcl rok akademicki 2017/18 semestr zimowy. Wykład 8. Karol Tarnowski A-1 p.

Referat Pracy Dyplomowej

Programowanie obiektowe

Programowanie obiektowe

Wzorce projektowe. dr inż. Marcin Pietroo

Rok akademicki: 2012/2013 Kod: JFM s Punkty ECTS: 3. Poziom studiów: Studia I stopnia Forma i tryb studiów: Stacjonarne

Projektowanie oprogramowania

Informatyka I stopień (I stopień / II stopień) Ogólnoakademicki (ogólno akademicki / praktyczny)

Interpreter Języka Zapytań SBQL dla Office Object Portal

Transkrypt:

JPS Języki i Środowiska Programowania Baz Danych 2010/2011 PJWSTK, 2010 Emil Wcisło

Wykład i ćwiczenia z JPS są poświęcone obiektowym bazom danych. Studenci poznają podstawowe założenia podejścia stosowego (SBA, Stack -Based Approach) wykorzystywanego w obiektowych bazach danych. Prezentowany zostanie język SBQL (Stack Based Query Language), zarówno od strony użytkowej, semantyki jak i implementacyjnej. Zaprezentowany zostanie również projekt SBQL4J rozszerzenie języka Java o mechanizm zapytań, zbudowany w oparciu o SBA. Zdobyta wiedza powinna posłużyć do zbudowania własnego mechanizmu obiektowej bazy danych z własnym językiem zapytań opartym o zasady SBA. Ćwiczenia Ćwiczenia z JPS w roku 2010/2011 w semestrze zimowym odbywać się będą: Dla studiów niestacjonarnych: Wprowadzenie Dla grupy G1: niedziela, godzina 08:00, sala 224 Dla grupy G2: sobota, godzina 14:45, sala 224 Ćwiczenia będą odbywać się do połowy semestru (tj. : 2-3, 16-17, 30-31 października, 13-14 listopada), w drugiej połowie będą prowadzone zajęcia z KOR. Podczas semestru, każdy ze studentów zobowiązany jest przedstawiać w kolejnych terminach mini-projekty które ostatecznie złożą się na duży projekt. Składowe oceny są następujące: Cały projekt Mini-projekt 1 (DataStore, QueryResult) Mini-projekt 2 (ENVS, Visitor) Mini-projekt 3 (AST, Operatory) Mini-projekt 4 (Lekser i parser) 15 pkt 15+10 pkt 10+10 pkt 10+10 pkt 10 pkt

Obowiązkowe jest oddanie wszystkich mini-projektów z wyjątkiem ostatniego. Osoby które oddadzą projekt składający się z 6 mini-projektów mogą liczyć najwyżej na ocenę 4.5 na koniec ćwiczeń. Przewiduje się standardową drabinkę ocen tzn. 5,0 > 90pkt 4,5 81-90pkt 4,0 71-80pkt 3,5 61-70pkt 3,0 51-60pkt 2,0 <51pkt Terminarz oddawania projektów Każdy mini-projekt należy oddawać w terminie, zgodnie z kalendarzem poniżej. Każdy tydzień zwłoki oznacza pięć punktów mniej możliwe do uzyskania. 2-3. X - ćwiczenia 16-17. X - ćwiczenia, termin oddania mini-projektu 1 (DataStore, QueryResult) 30-31. X - ćwiczenia, termin oddania mini-projektu 2 (ENVS, Visitor) 13-14. XI - ćwiczenia, termin oddania mini-projektu 3 (AST, Operatory) 28. XI - termin oddania mini-projektu 4 (Lekser i parser) 15. I 2011 - termin oddania całości projektu 22-23. I 2011 - obrona projektu, wpisy ZAŁOŻENIA PROJEKTU W ramach ćwiczeń każdy student zobowiązany jest przedstawić prototyp systemu obiektowej bazy danych opartej o SBA. Baza danych powinna być w stanie wczytać do pamięci dane przechowywane w pliku XML a następnie odpowiadać na zapytania do niej kierowane zawierające kilka podstawowych operatorów. Całe rozwiązanie może być prostą aplikacją konsolową. W przypadku gdy student nie zdecyduje się na stworzenie parsera i leksera konieczne jest stworzenie mechanizmu pozwalającego przekazywanie do programu drzewa AST dowolnego zapytania. Na wyższą ocenę projekt powinien obejmować podstawową integrację z językiem programowania. Ma polegać ona na możliwości przekazywania do wnętrza zapytania obiektów języka programowania (np. za pomocą parametrów zapytań). Na obiektach tych, o dowolnej złożoności, powinna być możliwość wykonywania zapytań, podobnie jak na danych XML. W tym przypadku aplikacja będzie posiadać interfejs API pozwalający na zdefiniowaniu zapytania (za pomocą Stringu), przekazaniu parametrów i uruchomienia. Przydział operatorów studentom w ramach grup odbędzie się podczas jednych z kolejnych ćwiczeń.

Projekt może być zrealizowany w języku Java lub C#. Każdy inny język programowania musi zostać uzgodniony z prowadzącym zajęcia. W szczególności należy się upewnić co do dostępności dla niego narządzi potrzebnych do wykonania leksera i parsera flex i bison. MINI-PROJEKTY 1. DataStore Należy utworzyć strukturę klas zdolną przechowywać w pamięci programu dane, zgodnie z modelem składu AS0 (M0). Klasy muszą być wyposażone w zestaw metod pozwalających na dodawanie danych do składu i wyszukiwanie obiektów za pomocą identyfikatora (OID). Ponadto należy stworzyć mechanizm pozwalający na odczyt danych wejściowych z pliku XML. Można się w tym celu posłużyć się narzędziami dostępnymi w danej platformie (np. JAXB lub JDOM dla Javy czy API System.XML dla.net). DataStore powinien mieć możliwość wczytywania obiektów języka programowania i "rzutowania" ich do modelu składu AS0. W tym celu należy wykorzystać mechanizm RTTI (Run-time type information) odpowiedni dla danego języka programowania (np. mechanizmu refleksji dla języka Java), aby generycznie odczytać strukturę obiektu i utworzyć odpowiednie podobiekty. Analiza struktury obiektu powinna obejmować co najmniej pola publiczne analizowanej klasy. Przykładowy plik XML z danymi: <baza> <test>10</test> <osoba> <numer>s0000</numer> <grupa>123</grupa> <spec>g</spec> <imie>anna</imie> <nazwisko>kowalska</nazwisko> <adres> <ulica>al. Jerozolimskie</ulica> <kod>00-000</kod> <miasto>warszawa</miasto> </adres> <ksiazka> <autor>adam Mickiewicz</autor> <tytul>pan Tadeusz</tytul> <egzemplarz>1234</egzemplarz> <bibliotekarz>hanna Kowalska</bibliotekarz> </ksiazka> </osoba> <osoba> <numer>s0001</numer> <grupa>123</grupa> <spec>g</spec> <imie>jan</imie> <nazwisko>nowak</nazwisko> <adres> <ulica>koszykowa 15</ulica> <kod>01-123</kod> <miasto>warszawa</miasto> </adres> <ksiazka> <autor>juliusz Słowacki</autor> <tytul>kordian</tytul> <egzemplarz>1236</egzemplarz> <bibliotekarz>hanna Kowalska</bibliotekarz> </ksiazka> </osoba> </baza>

2. QueryRes ult Należy stworzyć strukturę klas zdolną przechowywać wszystkie przewidziane przez SBA możliwe rezultaty zapytań. Dodatkowo należy stworzyć klasy odpowiedzialne za stos rezultatów (QRES). Prezentację możliwości stosu należy pokazać poprzez zapisanie w kodzie operacji odpowiednich dla protego wyrażenia algebraicznego (np. dodawanie i odejmowanie od siebie kolejno kilku liczb). 3. E N V S Należy przygotować klasy pozwalające realizować stos środowiskowy zgodnie z SBA. Dodatkowo należy stworzyć metody realizujące metody: bind i nested. Zasadę działania należy pokazać implementując operator niealgebraiczny kropki i symulując w kodzie zachowanie stosu dla zapytania typu obiekt.podobiekt (np. osoba.numer ). 4. V i s i t o r Należy przedstawić zasadę działania wzorca projektowego Visitor (Wizytator). Przykład powinien być możliwie złożony. Na dowolnej strukturze (np. drzewo rezultatów SBQL, przykładowo zbiór w którym znajdują się struktury składające się z różnych elementów prostych typu int, double itp.) powinny operować co najmniej dwaj różni wizytatorzy (dla naszego przykładu jeden drukujący wynik jako prosty tekst a drugi w postaci XML) 5. AST Należy przygotować klasy pozwalające przechowywać drzewo składniowe zapytania. Poprawność rozwiązania należy udowodnić budując przykładowe drzewo w kodzie. 6. O p e r a t o r y Drzewo AST należy rozszerzyć o klasy reprezentujące odpowiednie jedno - i dwuargumentowe operatory. Do obowiązkowych należy kropka (z mini-projektu trzeciego), where oraz podstawowe algebraiczne (dodawanie, odejmowanie, mnożenie, dzielenie). Dodatkowe operatory zostaną przydzielone na zajęciach. Dostępne są: Algebraiczne: >, <, ==,!= (różne), or, and, not, +, -, *, /, %, przecinek, bag, sequence, union, minus, intersect, in sum, avg, min, max, count, as, group as, Nie-algebraiczne: all, any, order by, join, where Dodatkowo należy stworzyć, korzystając ze wzorca Visitor, interpreter który będzie przechodził przez drzewo AST i korzystając z ENVS i QRES dokona ewaluacji zapytania.

Poprawność rozwiązania należy udowodnić wywołując wyliczenie dla drzewa stworzonego w kodzie (podobnie jak w mini-projekcie 5.) 7. Lekser i parser Należy opracować lekser i parser oraz przerobić projekt tak, by potrafił wczytywać zapytania z konsoli i by generowanie drzewa AST tego zapytania odbywało się automatycznie na podstawie gramatyki parsera. Dla języka Java rekomendowane jest użycie leksera JFlex wraz z generatorem parserów CUP. MATERIAŁY 1. Książka: K.Subieta. Teoria i konstrukcja obiektowych języków zapytań. Wydawnictwo PJWSTK, Warszawa 2004, ISBN 83-89244-29-2 2. Strona WWW z informacjami o SBA i SBQL www.sbql.pl 3. Wykłady prof. Subiety w wersji elektronicznej: www.si.pjwstk.edu.pl/dydaktyka/jps/ 4. Opis i podręcznik użytkownika ODRY www.ipipan.eu/staff/k.subieta/sbasbql/various/odra/odramanual.html 5. Strona projektu SBQL4J - http://code.google.com/p/sbql4j/ KONTAKT emil.wcislo@gmail.com (proszę o JPS w tytule maila by nie trafił do spamu)