OBJECT DEFINITION LANGUAGE. Jonáš Klimeš NDBI001 Dotazovací Jazyky I 2013

Podobné dokumenty
Analýza a modelování dat. Přednáška 5

OQL. (Object Query Language) Michal Bartoš Filip Bureš

Databázové systémy. - SQL * definice dat * aktualizace * pohledy. Tomáš Skopal

Úvod do databázových systémů

Databáze I. Přednáška 4

8.2 Používání a tvorba databází

Kurz Databáze. Obsah. Dotazy. Zpracování dat. Doc. Ing. Radim Farana, CSc.

12. Postrelační databázové systémy

12. Postrelační databázové systémy

Jaký je rozdíl v definicicíh VARCHAR2(20 BYTE) a VARCHAR2(20 CHAR):

OQL. Jakub Kýpeť, Ondřej Heřmánek

Úvod do databázových systémů

Obchodní akademie a Jazyková škola s právem státní jazykové zkoušky Jihlava

Object Query Language. Daniel Fromek Miroslav Novotný

Dolování v objektových datech. Ivana Rudolfová

Databáze I. Přednáška 7

Informační systémy 2008/2009. Radim Farana. Obsah. Jazyk SQL

Informační systémy ve zdravotnictví. 6. cvičení

Databázové systémy trocha teorie

Databáze I. 1. přednáška. Helena Palovská

Databázové systémy. Cvičení 6: SQL

Databázové systémy. Doc.Ing.Miloš Koch,CSc.

B0M33BDT Technologie pro velká data. Supercvičení SQL, Python, Linux

Tvorba informačních systémů

Úvod do programovacích jazyků (Java)

Klíčová slova: dynamické internetové stránky, HTML, CSS, PHP, SQL, MySQL,

Databáze I. 5. přednáška. Helena Palovská

Tvorba informačních systémů

Úvod do databázových systémů

Konceptuální modelování a SQL

Úvod do databázových systémů

ODMG OQL. Jan Forch. Dotazovací jazyky, MFF UK

RNDr. Michal Kopecký, Ph.D. Department of Software Engineering, Faculty of Mathematics and Physics, Charles University in Prague

Databázové systémy Cvičení 5.2

04 - Databázové systémy

Ing. Igor Kopetschke TUL, NTI

Kapitola 1: Úvod. Systém pro správu databáze (Database Management Systém DBMS) Účel databázových systémů

ADT/ADS = abstraktní datové typy / struktury

7.3 Diagramy tříd - základy

2. blok část B Základní syntaxe příkazů SELECT, INSERT, UPDATE, DELETE

Úvod do databází. Modelování v řízení. Ing. Petr Kalčev

Základy jazyka C# Obsah přednášky. Architektura.NET Historie Vlastnosti jazyka C# Datové typy Příkazy Prostory jmen Třídy, rozhraní

Algoritmizace prostorových úloh

Jazyk SQL databáze SQLite. připravil ing. petr polách

Databáze SQL SELECT. David Hoksza

Algoritmizace a programování

RELAČNÍ DATABÁZOVÉ SYSTÉMY

Primární klíč (Primary Key - PK) Je právě jedna množina atributů patřící jednomu z kandidátů primárního klíče.

Databázové systémy úvod

Obsah. Kapitola 1. Kapitola 2. Kapitola 3. Kapitola 4. Úvod 11. Stručný úvod do relačních databází 13. Platforma 10g 23

Návrh a tvorba WWW stránek 1/14. PHP a databáze

DUM 12 téma: Příkazy pro tvorbu databáze

Datové typy v Javě. Tomáš Pitner, upravil Marek Šabo

Nerelační databázové modely. Helena Palovská

Databázové systémy a SQL

Databázové systémy I. 1. přednáška

7.3 Diagramy tříd - základy

Databáze 2011/2012 SQL DDL (CREATE/ALTER/DROP TABLE), DML (INSERT/UPDATE/DELETE) RNDr.David Hoksza, Ph.D.

Algoritmizace prostorových úloh

Ukázka knihy z internetového knihkupectví

Administrace Oracle. Práva a role, audit

Zápis programu v jazyce C#

Strukturované typy a ukazatele. Úvod do programování 1 Tomáš Kühr

SQL - trigger, Databázové modelování

Kurz Databáze. Přechod na SQL server. Obsah. Vytvoření databáze. Lektor: Doc. Ing. Radim Farana, CSc.

Michal Krátký. Úvod do programovacích jazyků (Java), 2006/2007

Databázové systémy. Datová integrita + základy relační algebry. 4.přednáška

Temporální databáze. Jan Kolárik Miroslav Macík

Diagramy tříd - základy

Inovace a zkvalitnění výuky prostřednictvím ICT. Základní seznámení s MySQL Ing. Kotásek Jaroslav

Databázové systémy. * relační kalkuly. Tomáš Skopal. - relační model

Obsah. Předmluva 13 Zpětná vazba od čtenářů 14 Zdrojové kódy ke knize 15 Errata 15

Platforma Java. Petr Krajča. Katedra informatiky Univerzita Palackého v Olomouci. Petr Krajča (UP) KMI/PJA: Seminář V. 27. říjen, / 15

Informační systémy 2008/2009. Radim Farana. Obsah. Obsah předmětu. Požadavky kreditového systému. Relační datový model, Architektury databází

Michal Krátký. Tvorba informačních systémů, 2008/2009. Katedra informatiky VŠB Technická univerzita Ostrava. Tvorba informačních systémů

Marketingová komunikace. 2. soustředění. Mgr. Pavel Vávra Kombinované studium Skupina N9KMK1aPH/N9KMK1bPH (um1a1ph/um1b1ph)

Univerzita Palackého v Olomouci Radek Janoštík (Univerzita Palackého v Olomouci) Základy programování 4 - C# 10.4.

Michal Krátký. Úvod do programovacích jazyků (Java), 2006/2007

Relační databáze. V dnešní době existuje řada komerčních DBMS, nejznámější jsou:

Transformace konceptuálního modelu na relační

Úvod do programovacích jazyků (Java)

Základní pojmy. Úvod do programování. Základní pojmy. Zápis algoritmu. Výraz. Základní pojmy

J. Zendulka: Databázové systémy 4 Relační model dat 1

Pascal. Katedra aplikované kybernetiky. Ing. Miroslav Vavroušek. Verze 7

2. přednáška. Databázový přístup k datům (SŘBD) Možnost počítání v dekadické aritmetice - potřeba přesných výpočtů, např.

Objektově relační databáze a ORACLE 8

Maturitní otázky z předmětu PROGRAMOVÁNÍ

Univerzita Palackého v Olomouci Radek Janoštík (Univerzita Palackého v Olomouci) Základy programování 4 - C# 3.4.

Obsah přednášky. 12. Dokumentace zdrojového kódu Tvorba elektronické dokumentace UML. Co je diagram tříd. Ing. Ondřej Guth

Marketingová komunikace. 1. soustředění. Mgr. Pavel Vávra Kombinované studium Skupina N9KMK3PH (vm3aph)

1. Relační databázový model

Sada 1 - Základy programování

5 Přehled operátorů, příkazy, přetypování

Počítačové laboratoře bez tajemství aneb naučme se učit algoritmizaci a programování s využitím robotů CZ.1.07/1.3.12/

Teoretické minimum z PJV

Analýza dat a modelování. Přednáška 3

Obsah přednášky 7. Základy programování (IZAPR) Přednáška 7. Parametry metod. Parametry, argumenty. Parametry metod.

SQL. strukturovaný dotazovací jazyk. Structured Query Language (SQL)

Inovace a zkvalitnění výuky prostřednictvím ICT Databázové systémy MySQL základní pojmy, motivace Ing. Kotásek Jaroslav

SQL SQL-SELECT. Informační a znalostní systémy. Informační a znalostní systémy SQL- SELECT

Transkript:

OBJECT DEFINITION LANGUAGE Jonáš Klimeš NDBI001 Dotazovací Jazyky I 2013

ODL a OQL ODL Objektové Object Definition Language popis objektového schéma SQL DDL Relační Data Definition Language příkazy CREATE, DROP, ALTER OQL Object Query Language dotazovací jazyk SQL DML Data Manipulation Language příkazy SELECT, INSERT, UPDATE, DELETE

Obsah Úvod Definice schématu v jazyce ODL Vytváření instancí Shrnutí

Object Definition Language 1991 založena skupina Object Database Management Group konsorcium vůdčích osobností OOSŘDB 1993 návrh standardu ODMG 1.0 2001 skupina rozpuštěna standard ODMG 3.0 obsahuje ODL a OQL

DEFINICE SCHÉMATU

UML schéma používaného příkladu

Definice třídy a atributů class <název třídy> { attribute <datový typ> <jméno atributu>; // komenář class Student { attribute string name; attribute Date dateofbirth; attribute string address; attribute string phone;

Datové typy Objekt instance třídy má jednoznačný identifikátor obsah se může měnit Literál neměnný typy: atomický literál kolekce složený literál

Atomický literál Konstanta, kterou nelze rozdělit na menší části string (řetězec) char (znak) boolean (true nebo false) float (reálné číslo) short (krátké celé číslo) long (dlouhé celé číslo) enum (výčet) class CourseOffering { attribute string term; attribute enum section {1, 2, 3, 4, 5, 6, 7, 8

Složené literály Složeny z pevného počtu pojmenovaných literálů nebo objektů Předdefinované složené literály: Date, Interval, Time, Timestamp Definice: struct <jméno>{ <datový typ> <jméno elementu>;... struct Address { string street_address; string city; string state; string zip; class Student { attribute string name; attribute Date dateofbirth; // uživatelem definovane atributy attribute Address address; attribute Phone phone;

Kolekce Kolekce literálů nebo objektů stejného typu set: Neuspořádaná kolekce bez duplicit bag: Neuspořádaná kolekce s duplicitami list: Uspořádaný seznam elementů array: Uspořádaná kolekce elementů s danou pozicí (velikost pole se dynamicky přizpůsobuje) dictionary: Neuspořádaná kolekce dvojic klíč-hodnota bez duplicit Definice: list <long> set <Date>

Operace Třída může mít definované operace <návratový typ> <název> (); <návratový typ> <název> (<typ parametru> <název parametru>,...); Ve striktní verzi ODL jsou parametry označeny jako vstupní, výstupní nebo vstupně-výstupní klíčová slova in, out, inout před datovým typem parametru class Student { attribute string name; attribute Date dateofbirth; // uživatelem definované složené atributy attribute Address address; attribute Phone phone; // operace short age( ); float gpa( ); boolean register_for(string crse, short sec, string term);

Relace Vztahy mezi objekty Unární nebo binární Jsou vždy obousměrné - pro každou relaci je nutné definovat i inverzní relaci Relace se vztahem více ku více (n:n) se definují pomocí kolekcí set, list, bag, array OSŘBD zajišťuje referenční integritu mazání neplatných odkazů vytváření inverzních vztahů

Relace - syntaxe class CourseOffering { attribute string term; attribute enum section {1, 2, 3, 4, 5, 6, 7, 8 // vztah více ku více mezi CourseOffering a Student relationship set <Student> taken_by inverse Student::takes; // vztah jeden ku více mezi CourseOffering and Course relationship Course belongs_to inverse Course::offers;

Klíčové slovo extent Určuje množinu všech instancí dané třídy v databázi Využití: dotazování unikátní klíče class Student { ( extent students) // atributy, relace, operace

Klíče Každý objekt v databázi je unikátní -> není potřeba definovat primární klíč Klíč v ODL = klíčový atribut je unikátní Klíč musí mít definovaný rozsah Klíčové slovo key class Student { ( extent students key stu_number) attribute long stu_number; class Employee{ ( extent employees key{name, address}) attribute string name; attribute string address;

Jednosměrná relace Atributu objektového typu Není udržována referenční integrita class Course { // hodnota atributu dept je identifikátor objektu attribute Department dept;... class Department { attribute short dept_number; attribute string dept_name; attribute string office_address;

Generalizace Třída může dědit od jedné jiné třídy Klíčové slovo extends class SalariedEmployee extends Employee{ ( extent salariedemployees) attribute long annualsalary; attribute string stockoption;

VYTVÁŘENÍ INSTANCÍ

Vytváření instancí I. Při vytvoření instance je vždy přiřazen unikátní identifikátor Uživatel může identifikátor specifikovat Vytvoření instance: MBA669 course ( ); Atributy: Cheryl student (name: Cheryl Davis, dateofbirth: 4/5/77); Složené atributy: Jack student ( name: Jack Warner, dateofbirth: 2/12/74, address: {street_address 310 College Rd, city Dayton, state Ohio, zip 45468}, phone: {area_code 937, personal_number 228 2252} );

Vytváření instancí II. Kolekce: Dan employee ( emp_id: 3678, ); name: Dan Bellon, skills: { Database design, OO Modeling } Vztahy: Cheryl student (takes: {OOAD99F, Telecom99F, Java99F });

SHRNUTÍ

Shrnutí class Osoba{ attribute string jmeno; attribute Date datumnarozeni; attribute Adresa adresa; short vek(); class Zamestnanec extends Osoba{ (extent zamestnanci key zamestanecid) // atributy attribute long zamestanecid; attribute enum typ {Manazer, Odborar attribute RidicskyPrukaz ridicskyprukaz; struct Adresa{ string ulice; string mesto; short PSC; class RidicskyPrukaz{ attribute long cislo; attribute set<char> skupiny; // relace relationship set<schopnost> umi inverse Schopnost::muze_byt_vykonavana; relationship Zamestnanec ma_sefa inverse Zamestnanec::je_sefem; relationship set<zamestnanec> je_sefem inverse Zamestnanec::ma_sefa;

Shrnutí class Osoba{ attribute string jmeno; attribute Date datumnarozeni; attribute Adresa adresa; short vek(); class Zamestnanec extends Osoba{ (extent zamestnanci key zamestanecid) // atributy attribute long zamestanecid; attribute enum typ {Manazer, Odborar attribute RidicskyPrukaz ridicskyprukaz; struct Adresa{ string ulice; string mesto; short PSC; class RidicskyPrukaz{ attribute long cislo; attribute set<char> skupiny; // relace relationship set<schopnost> umi inverse Schopnost::muze_byt_vykonavana; relationship Zamestnanec ma_sefa inverse Zamestnanec::je_sefem; relationship set<zamestnanec> je_sefem inverse Zamestnanec::ma_sefa;

Shrnutí class Osoba{ attribute string jmeno; attribute Date datumnarozeni; attribute Adresa adresa; short vek(); class Zamestnanec extends Osoba{ (extent zamestnanci key zamestanecid) // atributy attribute long zamestanecid; attribute enum typ {Manazer, Odborar attribute RidicskyPrukaz ridicskyprukaz; struct Adresa{ string ulice; string mesto; short PSC; class RidicskyPrukaz{ attribute long cislo; attribute set<char> skupiny; // relace relationship set<schopnost> umi inverse Schopnost::muze_byt_vykonavana; relationship Zamestnanec ma_sefa inverse Zamestnanec::je_sefem; relationship set<zamestnanec> je_sefem inverse Zamestnanec::ma_sefa;

Shrnutí class Osoba{ attribute string jmeno; attribute Date datumnarozeni; attribute Adresa adresa; short vek(); class Zamestnanec extends Osoba{ (extent zamestnanci key zamestanecid) // atributy attribute long zamestanecid; attribute enum typ {Manazer, Odborar attribute RidicskyPrukaz ridicskyprukaz; struct Adresa{ string ulice; string mesto; short PSC; class RidicskyPrukaz{ attribute long cislo; attribute set<char> skupiny; // relace relationship set<schopnost> umi inverse Schopnost::muze_byt_vykonavana; relationship Zamestnanec ma_sefa inverse Zamestnanec::je_sefem; relationship set<zamestnanec> je_sefem inverse Zamestnanec::ma_sefa;

Dotazy?

Děkuji za pozornost