Temat : SBQL 1 obiektowy język zapytań.



Podobne dokumenty
Temat : SBQL 1 obiektowy język zapytań.

Języki i środowiska przetwarzania danych rozproszonych

Języki i środowiska przetwarzania danych rozproszonych

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

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

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

3. Podzapytania, łączenie tabel i zapytań

Program szkoleniowy Efektywni50+ Moduł IV Podstawy relacyjnych baz danych i język SQL

Język SQL. instrukcja laboratoryjna. Politechnika Śląska Instytut Informatyki. laboratorium Bazy Danych

Programowanie obiektowe

Informatyka I. Programowanie aplikacji bazodanowych w języku Java. Standard JDBC.

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

SZKOLENIE: Administrator baz danych. Cel szkolenia

SQL (ang. Structured Query Language)

Post-relacyjne bazy danych

Model relacyjny. Wykład II

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

Programowanie współbieżne i rozproszone

Technologie baz danych

Spis treści. Przedmowa

Bazy danych. Dr inż. Paweł Kasprowski

Informatyka I. Standard JDBC Programowanie aplikacji bazodanowych w języku Java

Język SQL Złączenia. Laboratorium. Akademia Morska w Gdyni

Programowanie obiektowe

LABORATORIUM 8,9: BAZA DANYCH MS-ACCESS

PRZEWODNIK PO PRZEDMIOCIE

Bazy danych. Andrzej Grzybowski. Instytut Fizyki, Uniwersytet Śląski

Ćwiczenie zapytań języka bazy danych PostgreSQL

Przestrzenne bazy danych Podstawy języka SQL

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

Język SQL. Rozdział 6. Podzapytania Podzapytania proste i skorelowane, podzapytania w klauzuli SELECT i FROM, operatory ANY, ALL i EXISTS.

Konstruowanie Baz Danych SQL UNION, INTERSECT, EXCEPT

Laboratorium nr 8. Temat: Podstawy języka zapytań SQL (część 2)

Bazy danych. Plan wykładu. Diagramy ER. Podstawy modeli relacyjnych. Podstawy modeli relacyjnych. Podstawy modeli relacyjnych

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

SQL w 24 godziny / Ryan Stephens, Arie D. Jones, Ron Plew. Warszawa, cop Spis treści

Przykład powyżej pokazuje, że w zapytaniu można umieszczać funkcje zarówno zdefiniowane w ramach środowiska, jak również własne.

Systemy GIS Tworzenie zapytań w bazach danych

SQL - Structured Query Language -strukturalny język zapytań SQL SQL SQL SQL

Definicje. Algorytm to:

XQTav - reprezentacja diagramów przepływu prac w formacie SCUFL przy pomocy XQuery

Paweł Rajba

1 DML - zapytania, część II Grupowanie Operatory zbiorowe DML - modyfikacja 7. 3 DCL - sterowanie danymi 9.

Algebra relacji. nazywamy każdy podzbiór iloczynu karteziańskiego D 1 D 2 D n.

Mariusz Trzaska Modelowanie i implementacja systemów informatycznych

JAVA. Platforma JSE: Środowiska programistyczne dla języka Java. Wstęp do programowania w języku obiektowym. Opracował: Andrzej Nowak

Oracle11g: Wprowadzenie do SQL

Ćwiczenie rozpocznie się od wprowadzenia do laboratorium, po którym omówimy składnię ę polecenia INSERT pozwalającego ą na wstawianie krotek do

Politechnika Krakowska im. Tadeusza Kościuszki. Karta przedmiotu. obowiązuje studentów rozpoczynających studia w roku akademickim 2013/2014

Lista zadań nr 1. Bazy danych laboratorium. dr inż. Grzegorz Bazydło, dr inż. Jacek Tkacz

Instrukcja użytkownika systemu Komornik SQL-VAT

Wykład 8. SQL praca z tabelami 5

4 Web Forms i ASP.NET Web Forms Programowanie Web Forms Możliwości Web Forms Przetwarzanie Web Forms...152

Model relacyjny. Wykład II

Rozkład materiału do nauczania informatyki w liceum ogólnokształcącym Wersja I

ZMODYFIKOWANY Szczegółowy opis przedmiotu zamówienia

Teoretyczne podstawy informatyki

Rozkład materiału do nauczania informatyki w liceum ogólnokształcącym Wersja II

PRZEWODNIK PO PRZEDMIOCIE

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

XML-owe bazy danych ćwiczenia 1

Podzapytania. Rozdział 5. Podzapytania. Podzapytania wyznaczające wiele krotek (1) Podzapytania wyznaczające jedną krotkę

Wykład XII. optymalizacja w relacyjnych bazach danych

LINQ TO XML. Autor ćwiczenia: Marcin Wolicki

RBD Relacyjne Bazy Danych

Język SQL podstawy zapytań

Przykłady najlepiej wykonywać od razu na bazie i eksperymentować z nimi.

Wstęp 5 Rozdział 1. Podstawy relacyjnych baz danych 9

Podstawy i języki programowania

Podstawy języka T-SQL : Microsoft SQL Server 2016 i Azure SQL Database / Itzik Ben-Gan. Warszawa, Spis treści

Informatyka sem. III studia inżynierskie Transport 2018/19 LAB 2. Lab Backup bazy danych. Tworzenie kopii (backup) bazy danych

Karta (sylabus) modułu/przedmiotu Mechanika i Budowa Maszyn Studia I stopnia

Podzapytania. Rozdział 5. Podzapytania. Podzapytania wyznaczające wiele krotek (1) Podzapytania wyznaczające jedną krotkę

Plan. Wprowadzenie. Co to jest APEX? Wprowadzenie. Administracja obszarem roboczym

Podzapytania. Rozdział 5. Podzapytania. Podzapytania wyznaczające wiele krotek (1) Podzapytania wyznaczające jedną krotkę

I. KARTA PRZEDMIOTU CEL PRZEDMIOTU

Wstęp do SQL. copyright: KGiIS WGGiOŚ AGH

Użycie Visual Basic for Applications ("VBA")

Instytut Mechaniki i Inżynierii Obliczeniowej Wydział Mechaniczny technologiczny Politechnika Śląska

1 Wstęp do modelu relacyjnego

koledzy, Jan, Nowak, ul. Niecała 8/23, , Wrocław, , ,

PHP może zostać rozszerzony o mechanizmy dostępu do różnych baz danych:

Instytut Mechaniki i Inżynierii Obliczeniowej fb.com/groups/bazydanychmt/

Hurtownie danych - przegląd technologii

Instytut Mechaniki i Inżynierii Obliczeniowej Wydział Mechaniczny technologiczny Politechnika Śląska

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

1: 2: 3: 4: 5: 6: 7: 8: 9: 10:

Interpreter Języka Zapytań SBQL dla Office Object Portal

Autor: Joanna Karwowska

Zadania SELECT do schematu EDS (EMP, DEPT, SALGRADE)

Podstawy języka SQL cz. 2

T-SQL dla każdego / Alison Balter. Gliwice, cop Spis treści. O autorce 11. Dedykacja 12. Podziękowania 12. Wstęp 15

Wprowadzenie do baz danych

Wstęp Wprowadzenie do BD Podstawy SQL. Bazy Danych i Systemy informacyjne Wykład 1. Piotr Syga

Instytut Mechaniki i Inżynierii Obliczeniowej Wydział Mechaniczny Technologiczny Politechnika Śląska

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

Struktura bazy danych

Bazy danych. Zenon Gniazdowski WWSI, ITE Andrzej Ptasznik WWSI

Transkrypt:

Laboratorium Języki i środowiska przetwarzania danych rozproszonych Temat : SBQL 1 obiektowy język zapytań. Historia zmian Data Wersja Autor Opis zmian 23.4.2012 1.0 Tomasz Kowalski Utworzenie dokumentu na podstawie materiałów z 2011. 11.5.2012 1.1 Tomasz Kowalski Wskazówki do zadań. 14.11.2013 1.2 Tomasz Kowalski Aktualizacja formy 1 Stack-Based Query Language

1. Cel laboratorium Głównym celem laboratoriów jest zapoznanie się podstawami obiektowego języka zapytań SBQL (Stack-based Query Language) wywodzącego się z podejścia stosowego (SBA 2 ) do języków zapytań i baz danych autorstwa prof. Kazimierza Subiety z PJWSTK 3. Ze względu na kompozycyjność języka SBQL, pojęcie zapytania w systemie ODRA odnosi się praktycznie do wszystkich wyrażeń spotykanych w językach programowania. Zapytaniem jest proste wyrażenie składające się z np. z liczby ciągu znaków czy nazwy. Bardziej skomplikowane zapytania budowane są poprzez łączenie pod-zapytań za pomocą operatorów. Ważną cechą języka SBQL jest iż, poza znanymi z języków programowania operatorami, wprowadza on również zestaw tzw. operatorów nie-algebraicznych, które umożliwiają wykonywanie operacji na kolekcjach. To właśnie ta grupa operatorów wprowadza na poziom języka programowania, znane z języków zapytań, konstrukcje takie jak selekcja projekcja, złączenie czy kwantyfikatory. Co bardzo istotne, semantyka tych operatorów została zdefiniowana za pomocą tych samych elementów co pozostałe elementy języka (z technicznego punktu widzenia, podstawowym wyróżnikiem operatorów niealgebraicznych jest wpływ na środowisko przetwarzania reprezentowane przez stos środowisk). Umożliwia to wykorzystanie pełnej mocy języka programowania oraz języka zapytań (włącznie z operacjami aktualizacji) w jednym, homogenicznym środowisku przetwarzania. Cecha ta jest inherentna dla semantyki architektury stosej i opartego na nim języka SBQL. 2. Zasoby 2.1. Wymagane oprogramowanie Polecenia laboratorium będą dotyczyły podstaw programowania przy użyciu platformy ODRA. Wersję ODRA przygotowana na potrzeby laboratoriów należy wyeksportować z repozytorium svn: http://team.kis.p.lodz.pl:8080/svn/samples/trunk/odra2 Do uruchomienia systemu ODRA potrzebne będzie środowisko uruchomieniowe JRE (Java Runtime Environment). 2.1. Materiały pomocnicze Materiały dostępne w Internecie: http://www.sbql.pl/ http://www.sbql.pl/sba_sbql_description.html http://www.sbql.pl/various/odra/odra_manual_sbql_queries.html 3. Laboratorium: 1. Do nowego folderu wyeksportuj z repozytorium svn platformę ODRA. 2. Zapoznaj się ze strukturą plików pobranej wersji ODRA. 3. Uruchom edytor notepad++. Zaimportuj styl języka platformy ODRA z pliku notepadsbqlcli.xml. (Widok->Definiowanie własnego stylu->import). Zrestartuj edytor. 4. Użyj skryptu easystart.bat w celu utworzenia bazy, uruchomienia serwera ODRA oraz interfejsu poleceń CLI (Command Line Interface). 2 Stack-based Architecture 3 Polsko-Japońska Wyższa Szkoła Technik Komputerowych

Schemat relacyjny Adres NrP Miasto Ulica NrDomu Ilustracja 1: Przykładowy schemat relacyjnej bazy danych Na ilustracji 1 przedstawiony jest przykładowy schemat relacyjnej bazy danych. Jego obiektowy odpowiednik znajduje się na ilustracji 2. Oba schematy są zgodne z modelem AS0, więc można je odpytywać za pomocą języka SBQL, natomiast języka SQL można używać tylko odnośnie schematu relacyjnego. Schemat obiektowy (diagram klas) Prac[0..*] Nazwisko Stan Zar Adres [0..1] Miasto Ulica NrDomu Prac NrP Nazwisko Stan Zar PracujeW PracujeW[0..1] Kieruje[0..1] Dział NrD Nazwa Szef Zatrudnia[0..*] Szef Ilustracja 2: Przykładowy schemat obiektowej bazy danych Lokacje NrD Lokacja Strzałki modelują asocjacje; prowadzą od klucza obcego do głównego Dział [0..*] Nazwa Lokacja[1..*] Asocjacje są zrealizowane jako (bliźniacze) obiekty pointerowe Uruchom skrypt ODRA znajdujący się w pliku res/lab1/batch/my1stdb.cli tak, aby utworzył on bazę danych o schemacie przedstawionym na ilustracji 2. Twoim zadaniem jest ułożenie zapytań do załączonych schematów oraz analiza zapytań. Zadania domyślnie dotyczą schematu obiektowego. Zakładamy, że platforma ODRA wykonuję automatycznie operację dereferencji na finalnym rezultacie. Potencjalnemu użytkownikowi domyślnie zależy na sprawdzeniu wartości obiektów, a nie ich referencji. 3.1. Proste zapytania 1. Podaj pełną informację o pracownikach. (analogicznie do zapytania SQL: select * from Prac) Co zwraca zapytanie SQL? Co zwraca zapytanie SBQL? (bez dereferencji i z dereferencją) 2. Podaj nazwiska wszystkich pracowników. Jaki jest odpowiednik SQL? Wskaż lukier syntaktyczny zapytania SQL. Co zwraca zapytanie SBQL? 3. Podaj pełną informację o Kowalskim.

4. Podaj zarobek Kowalskiego. Jaki jest odpowiednik SQL? Użyj rezultat zapytania (bez dereferencji) do aktualizacji zarobku Kowalskiego. Jaki jest odpowiednik aktualizacji w SQL? 5. Podaj nazwiska i stanowiska pracowników zarabiających więcej niż 3000. 6. Podaj referencje do obiektu PracujeW dla pracownika Kowalskiego. Dokanaj jawnej dereferencji rezultatu tego zapytania. Wyjaśnij sens rezultatu. 3.2. Wyrażenia ścieżkowe 1. Podaj pełne dane o dziale, w którym pracuje Kowalski, bez jawnego użycia operatora dereferencji. 2. Podaj nazwę działu, w którym pracuje Kowalski. Napisz wersje zapytania z prawostronnym i lewostronnym nawiasowaniem operatora kropki. Jaki wpływ ma nawiasowanie na rezultat, a jaki wpływ na stos ENVS w trakcie przetwarzania zapytania. 3. Podaj nazwisko szefa pracownika Bleja. 4. Podaj nazwisko i miasto zamieszkania pracowników pracujących w Radomiu. Czy wyświetlono wszystkich pracowników pracujących w Radomiu? Jeżeli nie, to wyjaśnij dlaczego? 5. *Czy wyrażenia ścieżkowe są specjalną konstrukcją SBQL? Odpowiedź uzasadnij. 3.3. Zapytania złożone 1. Podaj wszystkie informacje o pracownikach zarabiających więcej od Kowalskiego. Wskazówka I: Wykorzystaj zapytanie 3.1.4 jako podzapytanie. wskazówka II: Napisz zapytanie podające informacje o pracownikach zarabiających więcej niż 2000 (możesz skorzystać z 3.1.5). 2. Przeanalizuj zapytanie Prac join (PracujeW.Dzial). Co ono zwraca? Co zwraca zapytanie SBQL bez dereferencji? Ułóż to samo zapytanie do schematu relacyjnego w SBQL i SQL. 3. Podaj informację o działach i średnich zarobkach pracowników w działach. Wskazówka I: Napisz zapytanie zwracające zarobek pracowników w dziale Magazyn. Wskazówka II: Napisz zapytanie zwracające średni zarobek pracowników w dziale Magazyn. Użyj funkcji agregującej avg tak aby jej argumentem było możliwie najmniejsze zapytanie. 4. Podaj średnią liczbę pracowników w działach (dla schematu obiektowego i relacyjnego). Wskazówka I: Napisz zapytanie zwracające wszystkich pracowników w dziale Magazyn. Wskazówka II: Napisz zapytanie zwracające liczbę wszystkich pracowników w dziale Magazyn. Użyj operatora count tak aby jego argumentem było możliwie najmniejsze

zapytanie. Wskazówka III: Zmodyfikuj poprzednie zapytanie, żeby zwracało kolekcję złożoną z liczb pracowników dla wszystkich działów. 5. Co oznaczają następujące zapytania i jaka jest między nimi różnica: Prac where forsome(adres)(miasto = Warszawa ) Prac where forall(adres)(miasto = Warszawa ) 6. Sprawdź czy wszyscy szefowie są zatrudnieni w działach, którymi kierują. Uwaga: zapytanie powinno zwrócić odpowiedź typu boolean (true lub false). Wskazówka I: Napisz zapytanie zwracające wszystkich szefów. Wskazówka II: Napisz zapytanie zwracające szefa oraz dział, którym kieruje. (Dopisz do poprzedniego zapytania operator join oraz opowiednie zapytanie po prawej stronie.) Wskazówka III: Napisz zapytanie zwracające szefa oraz dział, w którym pracuje. Wskazówka IV: Zbuduj zapytanie przy użyciu operatora forall. 7. Sprawdź poprawność bliźniaczych asocjacji, tzn.: czy szef działu nim kieruje, czy pracownik jest zatrudniony w dziale, w którym pracuje. Uwaga: zapytania powinny zwrócić odpowiedź typu boolean (true lub false). połącz oba zapytania w jedno. 8. Za pomocą konstrukcji imperatywnych dokonaj zmian w referencjach tak, aby dwa poprzednie zapytania zwróciły odpowiedź fałsz. 9. Podaj nazwiska i zarobki techników zarabiających więcej od swoich szefów. Wskazówka I: Napisz zapytanie zwracające techników. Wskazówka II: Napisz zapytanie zwracające szefów techników. Wskazówka III: Napisz zapytanie zwracające pracowników zarabiających więcej od swoich szefów.