Implementacja schematów i statycznej kontroli typów w systemie JLoXiM

Podobne dokumenty
Oracle PL/SQL. Paweł Rajba.

Spis tre±ci. 1 Wst p Zawarto± rozdziaªów Projekt LoXiM... 2

extensible Markup Language, cz. 4 Marcin Gryszkalis, mg@fork.pl

Przykładowy dokument XML

Spis treści. Przedmowa

Projektowanie bazy danych. Jarosław Kuchta Projektowanie Aplikacji Internetowych

Informacje wstępne Autor Zofia Kruczkiewicz Wzorce oprogramowania 4

Bazy danych. Zenon Gniazdowski WWSI, ITE Andrzej Ptasznik WWSI

Definiowanie typów dokumentów Część 3. XML Schema

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

XML Schema. Typy proste, wyprowadzanie typów, modularyzacja schematu. Patryk Czarnik. Instytut Informatyki UW

Programowanie obiektowe

Definicja obiektowego modelu danych: struktura i zachowanie

Oracle PL/SQL. Paweł Rajba.

D D L S Q L. Co to jest DDL SQL i jakie s jego ą podstawowe polecenia?

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

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

Paweł Kurzawa, Delfina Kongo

Język XML Schema. UEK w Krakowie Janusz Stal & Grażyna Paliwoda-Pękosz. UEK w Krakowie Janusz Stal & Grażyna Paliwoda-Pękosz

Program wykładu. zastosowanie w aplikacjach i PL/SQL;

Ref. 7 - Język SQL - polecenia DDL i DML

Instrukcja CREATE TABLE

Tworzenie tabel. Bazy danych - laboratorium, Hanna Kleban 1

SZKOLENIE: Administrator baz danych. Cel szkolenia

Autor: Joanna Karwowska

Podstawy Programowania Obiektowego

Oracle11g: Wprowadzenie do SQL

Kurs programowania. Wstęp - wykład 0. Wojciech Macyna. 22 lutego 2016

Paweł Rajba

Bazy danych. Bazy danych. Podstawy języka SQL. Dr inż. Paweł Kasprowski.

Specyfikacja API Runtime BAS 3.0

Blaski i cienie wyzwalaczy w relacyjnych bazach danych. Mgr inż. Andrzej Ptasznik

Obiektowe bazy danych Obiektowe i obiektowo-relacyjne bazy danych

GML w praktyce geodezyjnej

Schematy aplikacyjne UML i GML dla mapy zasadniczej oraz Modelu Podstawowego. Rozdział 1 Założenia podstawowe

Database Connectivity

Wykład 8. SQL praca z tabelami 5

PHP i MySQL dla każdego / Marcin Lis. Wyd. 3. Gliwice, cop Spis treści

Alicja Marszałek Różne rodzaje baz danych

RELACYJNE BAZY DANYCH

Model semistrukturalny

Wprowadzenie do BD Operacje na bazie i tabelach Co poza zapytaniami? Algebra relacji. Bazy Danych i Systemy informacyjne Wykład 2.

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

Projektowanie relacyjnych baz danych

Diagram klas UML jest statycznym diagramem, przedstawiającym strukturę aplikacji bądź systemu w paradygmacie programowania obiektowego.

Temat : SBQL 1 obiektowy język zapytań.

Tabela wewnętrzna - definicja

Szablony funkcji i szablony klas

PLAN WYKŁADU BAZY DANYCH MODEL DANYCH. Relacyjny model danych Struktury danych Operacje Integralność danych Algebra relacyjna HISTORIA

Programowanie obiektowe

Informatyka I. Klasy i obiekty. Podstawy programowania obiektowego. dr inż. Andrzej Czerepicki. Politechnika Warszawska Wydział Transportu 2018

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

Bazy danych 6. Klucze obce. P. F. Góra

Obiekt klasy jest definiowany poprzez jej składniki. Składnikami są różne zmienne oraz funkcje. Składniki opisują rzeczywisty stan obiektu.

SQL - DDL. 1 Tabele systemowe. 2 Typy danych

Program nauczania. Systemy baz danych. technik informatyk

Kurs programowania. Wykład 2. Wojciech Macyna. 17 marca 2016

Laboratorium z przedmiotu Programowanie obiektowe - zestaw 04

XML Schema. Motywacja, struktura schematu, typy złożone. Patryk Czarnik. Instytut Informatyki UW

Obiektowość BD Powtórka Czas odpowiedzi. Bazy Danych i Systemy informacyjne Wykład 14. Piotr Syga

Plan wykładu: Relacyjny model danych: opis modelu, podstawowe pojęcia, ograniczenia, więzy.

Projektowanie systemów informatycznych. Roman Simiński siminskionline.pl. Modelowanie danych Diagramy ERD

Programowanie współbieżne i rozproszone

Platformy Programistyczne Podstawy języka Java

Zdalna edycja i przeglądanie dokumentacji medycznej.

Język SQL. Rozdział 10. Perspektywy Stosowanie perspektyw, tworzenie perspektyw prostych i złożonych, perspektywy modyfikowalne i niemodyfikowalne.

Bazy danych Ćwiczenia projektowe

Bazy danych Wykład zerowy. P. F. Góra

Komputerowe Systemy Przemysłowe: Modelowanie - UML. Arkadiusz Banasik arkadiusz.banasik@polsl.pl

BAZY DANYCH model obiektowy. Opracował: dr inż. Piotr Suchomski

PRZESTRZENNE BAZY DANYCH WYKŁAD 2

Cel przedmiotu. Wymagania wstępne w zakresie wiedzy, umiejętności i innych kompetencji 1 Język angielski 2 Inżynieria oprogramowania

Typy sparametryzowane

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

OfficeObjects e-forms

Wybrane problemy z dziedziny modelowania i wdrażania baz danych przestrzennych w aspekcie dydaktyki. Artur Krawczyk AGH Akademia Górniczo Hutnicza

Administracja i programowanie pod Microsoft SQL Server 2000

Język SQL. Rozdział 9. Język definiowania danych DDL, część 2.

UML cz. II. UML cz. II 1/38

Informatyka I. Dziedziczenie. Nadpisanie metod. Klasy abstrakcyjne. Wskaźnik this. Metody i pola statyczne. dr inż. Andrzej Czerepicki

Oracle PL/SQL. Paweł Rajba.

MATERIAŁY DO ZAJĘĆ II

Definicje klas i obiektów. Tomasz Borzyszkowski

1 XML w bazach danych

Perspektywy Stosowanie perspektyw, tworzenie perspektyw prostych i złożonych, perspektywy modyfikowalne i niemodyfikowalne, perspektywy wbudowane.

Abstrakcyjny typ danych

Język Java część 2 (przykładowa aplikacja)

Wyzwalacze. do automatycznego generowania wartości kluczy głównych. Składnia instrukcji tworzacej wyzwalacz

Plan. Raport. Tworzenie raportu z kreatora (1/3)

KOLEKCJE - to typy masowe,zawierające pewną liczbę jednorodnych elementów

Administracja i programowanie pod Microsoft SQL Server 2000

Projekt i implementacja narzędzia do analizy modeli spójności F R Y D E R Y K R A C Z Y K K O N R A D S Z A Ł K O W S K I

Monika Kruk Mariusz Grabowski. Informatyka Stosowana WFiIS, AGH 13 grudzień 2006

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

DSL w środowisku Eclipse. Grzegorz Białek Architekt techniczny, Sygnity S.A.

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

1 Wstęp do modelu relacyjnego

Ogólny plan przedmiotu. Strony WWW. Literatura BAZY DANYCH. Materiały do wykładu:

Wykład 8: klasy cz. 4

Programowanie obiektowe

Transkrypt:

Paweł Mantur Implementacja schematów i statycznej kontroli typów w systemie JLoXiM projekt rozwiązania 2009-11-12

Schematy w bazach danych Relacyjne bazy danych: tabele, kolumny, typy danych, klucze itp. 2

Schematy w bazach danych Relacyjne bazy danych: tabele, kolumny, typy danych, klucze itp. XML: DTD, XMLSchema 3

Schematy w bazach danych Relacyjne bazy danych: tabele, kolumny, typy danych, klucze itp. XML: DTD, XMLSchema Obiektowe bazy danych: OMG IDL, ODMG ODL 4

Rola schematów Definiowanie zawartości bazy danych 5

Rola schematów Definiowanie zawartości bazy danych Opisywanie zawartości 6

Rola schematów Definiowanie zawartości bazy danych Opisywanie zawartości Więzy integralności 7

Rola schematów Definiowanie zawartości bazy danych Opisywanie zawartości Więzy integralności Użyteczne przy optymalizacji 8

Rola schematów Definiowanie zawartości bazy danych Opisywanie zawartości Więzy integralności Użyteczne przy optymalizacji Umożliwiają kontrolę typów 9

Komponenty System typów 10

Komponenty System typów Schemat zewnętrzny: język do definiowania schematów 11

Komponenty System typów Schemat zewnętrzny: język do definiowania schematów Reprezentacja wewnętrzna: metabaza 12

Komponenty System typów Schemat zewnętrzny: język do definiowania schematów Reprezentacja wewnętrzna: metabaza Store + schema 13

Komponenty System typów Schemat zewnętrzny: język do definiowania schematów Reprezentacja wewnętrzna: metabaza Store + schema Sygnatury 14

Komponenty System typów Schemat zewnętrzny: język do definiowania schematów Reprezentacja wewnętrzna: metabaza Store + schema Sygnatury Aparat statycznej kontroli typów 15

Komponenty System typów Schemat zewnętrzny: język do definiowania schematów Reprezentacja wewnętrzna: metabaza Store + schema Sygnatury Aparat statycznej kontroli typów Schema code writer 16

System typów Typy proste atomowe: string boolean int, decimal, real date, time, datetime binary object 17

System typów Restrykcje typów prostych create constraint PositiveInteger restricts int { minvalue: 0; defaultvalue: 1; } 18

System typów Restrykcje typów prostych create constraint PositiveInteger restricts int { minvalue: 0; defaultvalue: 1; } restrykcje tworzą nowe typy atomowe 19

System typów Restrykcje typów prostych create constraint PositiveInteger restricts int { minvalue: 0; defaultvalue: 1; } restrykcje tworzą nowe typy atomowe opcje zależą od typu bazowego, który ograniczamy 20

System typów Restrykcje typów prostych create constraint PositiveInteger restricts int { minvalue: 0; defaultvalue: 1; } restrykcje tworzą nowe typy atomowe opcje zależą od typu bazowego, który ograniczamy np. dla typu string: length, regex, maxlength... 21

System typów Klasy pola 22

System typów Klasy pola metody 23

System typów Klasy pola metody wielodziedziczenie 24

System typów Klasy pola metody wielodziedziczenie role 25

System typów Klasy pola metody wielodziedziczenie role nazwa obiektów będących instancj 26

System typów Klasy pola metody wielodziedziczenie role nazwa obiektów będących instancją lista eksportowa 27

System typów Klasy pola metody wielodziedziczenie role nazwa obiektów będących instancją lista eksportowa więzy integralności 28

System typów Liczebności [0..1] albo? - wartość opcjonalna 29

System typów Liczebności [0..1] albo? - wartość opcjonalna [1..1] - wartość wymagana (domyślne) 30

System typów Liczebności [0..1] albo? - wartość opcjonalna [1..1] - wartość wymagana (domyślne) [0..*] - kolekcja 31

System typów Liczebności [0..1] albo? - wartość opcjonalna [1..1] - wartość wymagana (domyślne) [0..*] - kolekcja [1..*] - niepusta kolekcja 32

System typów Predefiniowane typy złożone xml wymuszanie struktury XML wsparcie dla DOM, XSLT, Xquery 33

System typów Predefiniowane typy złożone xml wymuszanie struktury XML wsparcie dla DOM, XSLT, Xquery any luźna struktuta brak narzyconej struktury schemat dynamiczny 34

System typów Enumeratory create enum AtomicType { } int, string, bool, datetime, binary = 7 wewnętrznie jest to int domyślna numeracja od 0 35

System typów Constraints (więzy integralności) Wewnątrz definicji klasy constraint cardinalityconstraint "minoccurences <= maxoccurences" on maxoccurences, minoccurences; 36

System typów Constraints (więzy integralności) Wewnątrz definicji klasy constraint cardinalityconstraint "minoccurences <= maxoccurences" on maxoccurences, minoccurences; Poza definicją klasy constraint cardinalityconstraint restricts FieldType "minoccurences <= maxoccurences" on maxoccurences, minoccurences; 37

Schemat zewnętrzny Nieoficjalana nazwa JLoXiM ODL 38

Schemat zewnętrzny Nieoficjalna nazwa JLoXiM ODL Rozszerzenie istniejącej gramatyki 39

Schemat zewnętrzny Nieoficjalna nazwa JLoXiM ODL Rozszerzenie istniejącej gramatyki Tworzenie/usuwanie klas, enumeratorów, restrykcji, więzów 40

Schemat zewnętrzny Nieoficjalna nazwa JLoXiM ODL Rozszerzenie istniejącej gramatyki Tworzenie/usuwanie klas, enumeratorów, restrykcji, więzów Gtramatyka dostępna na wiki: http://jloxim.mimuw.edu.pl/redmine/wiki/jloxi m/schemagrammar 41

Metabaza Część składu obiektów, gdzie pamiętamy definicje wprowadzone za pomocą schematu zewnętrznego 42

Metabaza Część składu obiektów, gdzie pamiętamy definicje wprowadzone za pomocą schematu zewnętrznego Zdefiniowanie schematu dla składu obiektów poprzez określenie typu (zazwyczaj klasy) dla korzenia 43

Metabaza Część składu obiektów, gdzie pamiętamy definicje wprowadzone za pomocą schematu zewnętrznego Zdefiniowanie schematu dla składu obiektów poprzez określenie typu (zazwyczaj klasy) dla korzenia Możliwość automatycznego dodania przestrzeni systemowej (metabazy) do schematu zewnętrznego 44

Organizacja metabazy Odpytywanie metabazy: sys.classes where name = MojaKlasa sys.schemainfo.rootclass.name 45

Organizacja metabazy Odpytywanie metabazy: sys.classes where name = MojaKlasa sys.schemainfo.rootclass.name Schemat metabazy w postaci diagramu UML... 46

47

Organizacja metabazy Odpytywanie metabazy: sys.classes where name = MojaKlasa sys.schemainfo.rootclass.name Schemat metabazy w postaci diagramu UML Schemat metabazy zapisany w JLoXiM ODL na wiki 48

Store + schema Skład obiektów ze świadomością posiadania schematu 49

Store + schema Skład obiektów ze świadomością posiadania schematu Kontrola operacji modyfikujących dane 50

Store + schema Skład obiektów ze świadomością posiadania schematu Kontrola operacji modyfikujących dane Odczytywanie informacji o typach z metabazy 51

Sygnatury Podczas kontroli statycznej nie znamy wartości obiektów, ale znamy ich sygnatury 52

Sygnatury Podczas kontroli statycznej nie znamy wartości obiektów, ale znamy ich sygnatury Sygnatury opisują wartości przetwarzane w czasie wykonania 53

Sygnatury Podczas kontroli statycznej nie znamy wartości obiektów, ale znamy ich sygnatury Sygnatury opisują wartości przetwarzane w czasie wykonania Niosą informację o typie lub możliwych typach obiektów 54

Sygnatury Podczas kontroli statycznej nie znamy wartości obiektów, ale znamy ich sygnatury Sygnatury opisują wartości przetwarzane w czasie wykonania Niosą informację o typie lub możliwych typach obiektów Można symulować wykonanie zapytania wykonując je na metabazie 55

Sygnatury Podczas kontroli statycznej nie znamy wartości obiektów, ale znamy ich sygnatury Sygnatury opisują wartości przetwarzane w czasie wykonania Niosą informację o typie lub możliwych typach obiektów Można symulować wykonanie zapytania wykonując je na metabazie Zamiast na rzeczywistych wartościach operujemy na sygnaturach 56

Statyczna kontrola typów Symulowanie wykonania: statyczny stos środowisk i statyczny stos rezultatów 57

Statyczna kontrola typów Symulowanie wykonania: statyczny stos środowisk i statyczny stos rezultatów Zamiast wartości sygnatury 58

Statyczna kontrola typów Symulowanie wykonania: statyczny stos środowisk i statyczny stos rezultatów Zamiast wartości sygnatury Wnioskowanie o typie wyniku na podstawie tabel decyzyjnych 59

Statyczna kontrola typów Symulowanie wykonania: statyczny stos środowisk i statyczny stos rezultatów Zamiast wartości sygnatury Wnioskowanie o typie wyniku na podstawie tabel decyzyjnych Nie o wszystkim da się zdecydować podczas kontroli statycznej 60

Statyczna kontrola typów Symulowanie wykonania: statyczny stos środowisk i statyczny stos rezultatów Zamiast wartości sygnatury Wnioskowanie o typie wyniku na podstawie tabel decyzyjnych Nie o wszystkim da się zdecydować podczas kontroli statycznej Pół-mocna kontrola typów 61

Tablice decyzyjne Tablica decyzyjna dla każdego operatora 62

Tablice decyzyjne Tablica decyzyjna dla każdego operatora Wnioskowanie o typie wyniku na podstawie typu argumentów 63

Tablice decyzyjne Tablica decyzyjna dla każdego operatora Wnioskowanie o typie wyniku na podstawie typu argumentów Czasami zbiór możliwych typów (wariant) 64

Tablice decyzyjne Tablica decyzyjna dla każdego operatora Wnioskowanie o typie wyniku na podstawie typu argumentów Czasami zbiór możliwych typów (wariant) Czasami odłożenie sprawdzenia poprawności typologicznej do czasu wykonania 65

Tablice decyzyjne Tablica decyzyjna dla każdego operatora Wnioskowanie o typie wyniku na podstawie typu argumentów Czasami zbiór możliwych typów (wariant) Czasami odłożenie sprawdzenia poprawności typologicznej do czasu wykonania Łatwa zmiana zachowania aparatu kontroli, poprzez zmianę tabel decyzyjnych 66

Tablice decyzyjne Tablica decyzyjna dla każdego operatora Wnioskowanie o typie wyniku na podstawie typu argumentów Czasami zbiór możliwych typów (wariant) Czasami odłożenie sprawdzenia poprawności typologicznej do czasu wykonania Łatwa zmiana zachowania aparatu kontroli, poprzez zmianę tabel decyzyjnych Wiele decyzji to kwestia upodobań 67

Schema code writer Eksport metabazy do postaci zewnętrznej 68

Schema code writer Eksport metabazy do postaci zewnętrznej Generowanie bibliotek klienckich 69

Schema code writer Eksport metabazy do postaci zewnętrznej Generowanie bibliotek klienckich Dostarczenie API umożliwiającego pisanie plug-in'ów generujących różne formaty (XML, Java, C#, UML,...) 70

Schema code writer Eksport metabazy do postaci zewnętrznej Generowanie bibliotek klienckich Dostarczenie API umożliwiającego pisanie plug-in'ów generujących różne formaty (XML, Java, C#, UML,...) Implementacja eksportu do JLoXiM ODL 71

Dziękuję. 72