Object Query Language. Daniel Fromek Miroslav Novotný

Rozměr: px
Začít zobrazení ze stránky:

Download "Object Query Language. Daniel Fromek Miroslav Novotný"

Transkript

1 Object Query Language Daniel Fromek Miroslav Novotný MFF UK 2005

2 Relace vs. Objekty Z psychologického hlediska nám jsou bližší objekty. Žijeme v objektovém světe milionům let evoluce vděčíme za to, že umíme objekty rozeznávat, přiřazovat jim jejich vlastnosti a chování. Tohoto faktu již dávno využívají různé modelovací prostředky jako nap ř. UML. Když proto budeme používat objekty na úrovni implementace databáze, snadněji se nám bude provádět mapování nějakého schématu databáze navrženého pomocí nap ř. UML na konkrétní implementaci. Při použití objektové databáze zabráníme jevu, který se v anglické literatuře označuje jako Impedance mismatch. Nastává, když chceme spojit dva systémy navzájem velmi konceptuáln ě rozdílné (když přistupujeme k relační databázi pomocí objektového programu)

3 Objektově-orientované koncepty Objektově-orientované databázové modely přejímají koncept objektově- orientovaných programovacích jazyk ů. Neexistuje však žádná dohoda o přesné definici toho, jak mají objektově- orientované systémy vypadat Následující definice jsou nejtypičtější

4 Koncepty - pokračování Komplexní objekty Databáze by měla sestávat z jednotlivých objekt ů. Tyto objekty v sob ě mohou obsahovat další objekty. Každý objekt v sob ě obsahuje unikátní interní identifikátor (OID), jež ho jednoznačn ě identifikuje. Dále obsahuje jedno nebo více externích jmen, které používají programátoři pro přístup k objektu. Vztahy, asociace, linky Objekty jsou mezi sebou propojeny konceptuálními linky (nap ř. Zaměstnanec a oddě lení jsou spojeny linkem pracuje_v). Na úrovni datových struktur se konceptuální linky realizují pomocí ukazatelů Zapouzdření, skrývání dat Data objektu jsou rozdělena na privátní a veřejná. Z vnějšku jsou vidět jen data veřejná (viz. C++)

5 Koncepty pokračování 2 Abstraktní datové typy (ADT) Třídy, typy, rozhraní Vztah mezi třídou a objektem je stejný jako v C++. K objektu se přistupuje pomocí jeho rozhraní. Rozhraní poskytuje úplnou informaci nutnou k používání daného objektu Operace, metody a zprávy S objektem je svázána sada operací (stejn ě jako v OOP se jim říká metody). Objekt danou operace vykoná po přijetí zprávy s jejím jménem a parametry Dědičnost Funguje stejn ě jako v OOP

6 Koncepty pokračování 3 Polymorfismus, přetěžování Operace, která se má provést se vybírá dynamicky poté, co objekt obdrží zprávu se jménem operace. Stejná zpráva pro různé objekty může vyvolat různé metody (viz. C++) Persistence Databázové objekty jsou persistentní mohou přežít programy, ve kterých byly vytvořeny.

7 Koncepty dokončení Různé představy vývojá řů o technických detailech, které nejsou pokryty v předchozích konceptech, ale jsou nutné při konkrétní realizaci mohou vyústit v to, že se dané koncepty (třída, typ, ADT ) v jednotlivých produktech velmi liší (jak po technické tak i po praktické stránce) Nedostatek obecn ě akceptovaných definic týkajících se objektového modelu je považována za velký nedostatek objektově-orientovaných databází.

8 ODMG Standard Object Data Management Group Standard sestává z následujících částí Object Model definuje význam základních element ů (třídy, objekty, rozhraní, vztahy viz. předchozí slajdy). Snaží se být nezávislý na konkrétním programovacím jazyku Object Definition Language (ODL) je v podstat ě rozšířením CORBA IDL. Definuje schéma databáze objekty, vztahy mezi nimi, atributy objekt ů, operace, které se s danými objekty dají provádět, atd. ODL je nezávislé na konkrétním programovacím jazyku. Object Interchange Format definuje reprezentaci objekt ů pro vzájemnou výměnu mezi různými OOSŘBD

9 ODMG Standard Object Query Language (OQL) analogie SQL pro objektov ě orientované databáze Vazby na programovací jazyky C++, Smalltalk, Java. Definuje, jak naroubovat ODL a OQL na konstrukce výše zmíněných programovacích jazyků

10 Příklady OOSŘBD + praxe Mezi čist ě objektové SŘBD můžeme zařadit: Jasmine (Fujitsu), GemStone, Odapter (HP), O2 (ODMG), ObjectStore, Poet Na druhé stran ě autoři relačních databází do svých produkt ů přidávají objektové prvky (ADT, ) a vznikají tak produkty označované jako Objektově-relační databáze Obecn ě se očekává, že oba proudy čist ě objektový i objektově-relační v budoucnosti splynou (resp. Objektově-relační proud přejde v objektový). Kdy se tak stane, se ale přesn ě neví.

11 Object Query Language

12 OQL principy OQL je nadmnožina té části SQL, která umožňuje pokládat dotazy do databáze. Tedy stejná konstrukce select která v SQL pracuje nad tabulkami může v OQL pracovat nad kolekcemi objekt ů. OQL nezahrnuje žádné modifikační operátory. O modifikaci objekt ů by se měly starat metody definované v přímo objektech. OQL může být voláno přímo z programovacích jazyk ů v kterých je definován objektový model.

13 OQL schéma class Klient public type jmeno: String, objednavka: list(tuple( nazev: String, cena: Real)) end; class Zamestnanec public type jmeno: String, datum_narozeni: Date, pozice: String, plat: Real, method age: integer end;

14 OQL schéma class Mnozina_zamestnancu public type unique set (Zamestnanec) end; class Seznam_klientu public type list (Klient) end; class Spolecnost public type jmeno: String, zamestnanci: Mnozina_zamestnancu, klient: Seznam_klientu end;

15 OQL schéma Každý dotaz do databáze potřebuje vstupní bod. Nad databází může být definováno více vstupních bod ů. Jsou to pojmenované objekty nebo hodnoty. name Globe: Spolecnost; constant name zamestnanci: Mnozina_zamestnancu;

16 OQL základní dotazy. Vracejí atomické hodnoty, struktury nebo objekty. Cesta k elementu začínajicí nějakým vstupním bodem. Příklad: Jméno prvního klienta společnosti Globe. Globe.klient[0].jmeno;

17 OQL select OQL přebírá z SQL konstrukci 'select'. Zde slouží k získání element ů splňující podmínky z kolekce dat. Výsledek je opět kolekce. Příklady kolekcí: set neuspořádaná množina bez duplikat ů. bag neuspořádaná množina s duplikáty. list uspořádaný seznam s duplikáty.

18 OQL select Příklad dotazu na zaměstnance společnosti Globe s platem větším než Výsledek dotazu je kolekce zaměstnanc ů typu 'bag'. Při použití klíčového slova distinct získáme kolekci typu 'set'. select e from e in Globe.zamestnanci where e.plat > 20000;

19 OQL select Spojovaní kolekcí join. Málo používané. Příklad: Zaměstnanci společnosti Globe, kteří mají stejné jméno jako některý z klient ů. select e from e in Globe.zamestnanci, c in Globe.klienti where e.jmeno = c.jmeno;

20 OQL select Můžeme položit dotaz, který pracuje s více než s jednou kolekcí a spojovat je specifikováním cesty. Příklad: Názvy objednávek klienta 'Novák'. select distinct obj.nazev from k in Globe.klienti, obj in k.objednavka where k.name = 'Novák'; výsledek typu: set(string);

21 OQL konstrukce výsledk ů. Pomocí konstruktoru struct, bag, set a list můžeme ovlivnit strukturu výsledku dotazu. Příklad: select struct (zamestnanec: struct( jmeno: e.name, vek: e.vek), plat: e.plat) from e in Globe.zamestnanci; zamestnanec jmeno Novák vek 41 plat 21000

22 OQL agregační operátory Agregační operátory count, sum, max, min, avg. Aplikované na kolekce. <op>(výraz) max ( select e.plat from e in Globe.zamestnanci where e.pozice = 'reportér' ); select count(k.objednavka) from k in Globe.klienti;

23 OQL operátor define Slouží k pojmenování výsledku dotazu. Jedná se pouze o pojmenování výsledku a ne dotazu samotného. Pojmenovaný výsledek můžeme použít v dalších dotazech. define moji_zamestnanci as select e from e in Globe.zamestnaci where e.jmeno like 'N*'; select e.plat from e in moji_zamestnanci;

24 OQL operátor element Pokud máme kolekci obsahující pouze jeden element můžeme daný element získat použitím operátoru element. element ( select e from e in Globe.zamestnanci where e.jmeno = 'Svoboda');

25 OQL existenční kvantifikátor Příklad: Jména všech společností s nějakým zaměstnancem mladším 23 let. name VsechnySpolecnosti: list(spolecnost); select c.jmeno from c in VsechnySpolecnosti where exists e in c.zamestnanci: e.vek < 23;

26 OQL operátor exists operátor exists(exp), kde exp je kolekce vrací true pokud kolekce exp obsahuje alespo ň jeden prvek. operátor unique(exp) vrací true pokud kolekce obsahuje práv ě jeden prvek. Navrženy tak aby umožňovali vnořené dotazy tak jak jsme na n ě zvyklý z SQL. select c.jmeno from c in VsechnySpolecnosti where exists ( select e from e in c.zamestnanci where e.vek < 23)

27 OQL univerzální kvantifikátor Podobn ě jako existenční kvantifikátor se použije i univerzální kvantifikátor. Příklad: Test jestli všichni zaměstnanci společnosti mají alespo ň minimální plat. for all e in Globe.zamestnanci: e.plat > 10000; Vrací true pokud všichni zaměstnanci společnosti Globe mají plat větší než

28 OQL operátor group by Seskupuje objekty kolekce se stejnou hodnotou vybraných atribut ů. Ve výsledku jsou atributy podle kterých se seskupovalo a kolekce objekt ů nazvána partition. select * from e in Globe.zamestnaci group by e.plat; Výsledek je typu: bag ( struct ( plat: Real, partition: bag(zamestnanec))));

29 OQL operátor group by Objekt partition může využít pro další výpočty pro každou skupinu. select e.plat, pocet: count(partition) from e in Globe.zamestnanci group by e.plat; Výsledek je typu: bag ( struct ( plat: Real, pocet: Integer));

30 OQL operátor group by Lze sjednocovat podle více atributu. Výsledek po sjednocení lze filtrovat operátorem having. select * from e in Globe.zamestnaci group by nizky: e.plat < 10000, stredni: e.plat >= and e.plat < 50000, vysoky: e.plat >= výsledek je typu: bag ( struct ( nizky: boolean, stredni: boolean, vysoky: boolean, partition: bag(zamestnanec)));

31 OQL operátor order by Pokud chceme jako výsledek dotazu setříděný seznam místo množiny použijeme operátor order by. select e from e in Globe.zamestnanci order by e.jmeno, e.vek; Výsledek je typu: list ( zamestnanec );

32 OQL množinové operátory Množinové operátory jsou definovány na kolekcích 'set' a 'bag'. Operátory: sjednoceni (union nebo +) průnik ( intersect nebo *) rozdíl ( except nebo -) libovolný prvek ( pick ) Příklad: libovolný zaměstnanec, který není v množin ě moji_zamestnanci. pick( select e from e in Globe.zamestnanci - moji_zamestnanci);

33 OQL množinové operátory Inkluze a < b a leží v b, a se nerovná b. a < = b a leží v b. a > b a > = b Vracejí true/false moji_zamestnanci < Globe.zamestnanci; vrací true.

34 OQL konverze Konverze seznamu obsahující jeden prvek na jeden prvek. element(exp) Konverze seznamu na množinu. listtoset(list) Konverze množiny na seznam. nutno definovat uspořádaní operátorem order by. select e from e in množina order by e.a1; Odstranění duplikát ů. distinct (exp)

35 OQL konverze Zploštění kolekce flatten(exp) Přetypování (typ)exp flatten(list(set(1,2,3),set(3,4,5,6),set(7)) vrací: set(1,2,3,4,5,6,7)

36 OQL práce se seznamy Získaní i-tého prvku seznamu. list(a,b,c,d) [2] vrací c Získaní části seznamu. list(a,b,c,d) [1:2] vrací list (b,c) Získaní prvního/posledního prvku seznamu. last( list(a,b,c,d)) vrací d obdobn ě operátor first.

37 OQL - dodatky

38 Schéma class Osoba { d_string jmeno; d_date datum_narozeni; d_set< d_ref< Osoba > > rodice; d_list< d_ref< Osoba > > deti; d_ref< Byt > zije_v; }; Osoba(); int vek(); void svatba(d_ref< Osoba > chot); void porod(d_ref< Osoba > dite); virtual d_set< d_string > aktivity();

39 Schéma - pokračování class Zamestnanec : Osoba { float plat; virtual d_set< d_string > aktivity(); }; class Student : Osoba { d_string rocnik; virtual d_set< d_string > aktivity(); };

40 Schéma - pokračování class Adresa { int cislo; d_string ulice; }; class Dum { Adresa adresa; d_list< d_ref< Byt > > byty; d_ref< Byt > nejlevnejsi(); };

41 Schéma - dokončení class Byt{ int cislo; d_ref<dum> dum; d_ref<osoba> je_obyvan; }; d_set<d_ref<osoba>> Osoby; //Vsechny Osoby, Zamestnanci a studenti d_set<d_ref<byt>> Byty; //Vsechny byty d_set<d_ref<byt>> Volne; //Vsechny volne byty d_list<d_ref<byt>> Adresar; //Byty serazene podle cisel`

42 Cestování mezi objekty Pro přístup k jednotlivým položkám v objektu OQL používá tečkovou notaci (stejn ě jako C++; lze užít i -> ve stejném smyslu) Osoba.vek = Osoba->vek Vzhledem k tomu, že vztahy jsou realizovány pomocí ukazatel ů, není problém pomocí tečkové notace adresovat i je (alespo ň 1-1 vztahy, komplikovanější vztahy viz. dále) P ř. Mějme objekt p třídy Osoba (viz. schém a) p.zije_v.dum.adresa.ulice Nám dá adresu ulice, kde daná osoba (objekt p ) bydlí

43 Cestování M-N Vztahy Pokud bychom chtěli jména všech dětí osoby p, nemůžeme jednoduše napsat p.deti.jmeno, protože deti je seznam ukazatel ů (nic nám ovšem nebrání adresovat jedno konkrétní dít ě takto: p.deti[0]. jmeno). Abychom dostali seznam jmen, musíme použít select-from-where klauzuli, podobn ě jako v SQL: select c.jmeno from c in p.deti výsledek je typu Bag<String>. Pokud chceme množinu (Set), použijeme klíčové slovo distinct stejn ě jako v SQL

44 Cestování - dokončení Nyní máme k dispozici prostředky pro navigaci mezi jakýmikoli objekty přes jakékoli vztahy a umíme adresovat jakékoli členské položky objektu. Malý příklad: Chceme znát adresy všech dětí každé osoby v databázi (pojmenovaná kolekce Osoby obsahuje všechny osoby v databázi) select c.zije_v.dum.adresa from p in Osoby, c in p.deti

45 Manipulace s daty Jeden z hlavních rozdíl ů mezi OQL a SQL je ten, že OQL musí umět manipulovat s komplexními hodnotami. Díky tomu umí OQL vytvořit jakoukoli komplexní hodnotu jako výsledek dotazu anebo i uvnit ř dotazu jako mezivýsledek Při konstrukci dané komplexní hodnoty OQL využívá těchto konstruktor ů: Struct - struktura Set množina (v matematickém smyslu - prvku se neopakují) Bag uspořádání prvk ů jako u množiny, ale prvky se mohou opakovat Array pole (dynamické) List seznam (uspo ádané pole, u kterého máme metody pro ř manipulaci insert, delete, atd )

46 příklad select struct (ja: p.jmeno, moje_adresa: p.zije_v.dum.adresa moje_deti: (select struct(jmeno: c.jmeno, adresa:c.zije_v.dum.adresa) from c in p.deti)) from p in Osoby Tento dotaz nám pro každou osobu vedenou v databázi dá její jméno, adresu a jméno a adresu všech jejích dětí. Výsledek je typu: struct {String ja; Adresa moje_adresa; Bag<struct{String jmeno; Adresa adresa}> moje_deti; }

47 Manipulace a objekty OQL umí také vytvářet jednotlivé objekty. Pro vytvoření objektu nějaké třídy se použije jméno třídy jako konstruktor (čili OQL umí vytvořit jen ty objekty, jejichž třídy jsou definovány v databázi). Atributy vytvářeného objektu mohou být inicializovány libovolným platným výrazem.

48 Příklad Vytvoříme budovu se dvěma byty Předpokládejme, že ve schématu databáze je definován typ List_apart takto: Typedef List<Ref<Byt> > List_byt; Dotaz pak bude mít tento tvar: Dum( adresa: Adresa(cislo: 10, ulice: Elm Street ), byty: List_byt(list(Byt(cislo:1), Byt(cislo: 2))))

49 Vyvolávání metod Metody objekt ů se vyvolávají stejným způsobem, jako se přistupuje k ostatním položkám objektu pomocí tečkové notace. Pokud daná metoda nemá žádné parametry, vyvolání vypadá stejn ě, jako přístup k nějaké členské proměnné. dum.nejlevnejsi.je_obyvan.jmeno nám vrátí jméno osoby, která bydlí v nejlevnějším byt ě v daném dom ě. nejlevnejsi je přitom metoda objektu dum, která vrátí jako návratovou hodnotu objekt typu Byt (ten nejlevně jší byt). Kdyby v objektu dum byla členská promě nná nejlevnejsi typu Byt, dotaz by vypadal naprosto stejn ě. Pokud metoda má nějaké parametry, dávají se do závorek za jménem metody

50 Polymorfismus Filosofie polymorfismu u OQL je stejná jako u OOP. select p.aktivity from p in Osoby V předcházejícím příklad ě se polymorfismus projevuje jednak v tom, že je v podstat ě uživateli skryto, že kolekce Osoby obsahuje 3 typy objekt ů (Osoba, Zamestnanec a Student) a jednak v tom, že je vždy zavolána správná virtuální metoda aktivity (mechanismu, který to zajišťuje se říká pozdní vazba)

51 Polymorfismus - dodatek Navíc uživatel může v dotazu explicitn ě specifikovat třídu u objektu, kde nemůže být odvozena staticky. (jako to bylo u objektu p v předchozím dotazu). To se děje pomocí tzv. Indikátoru třídy Interpret musí potom za běhu ověřovat, zda daný objekt je daného typu P ř.: select ((Student)p).rocnik from p in Osoby where prubeh studia in p.aktivity

52 Kompozice operátorů Pro používání operátor ů v OQL platí jednoduché pravidlo: operátor lze umístit kdekoliv, pokud typy jeho operand ů jsou korektní. Říkáme, že pravidla pro kompozici operátor ů jsou ortogonální k typovému systému V tom se OQL liší od SQL, kde toto neplatí na 100%

53 příklad Chceme znát jméno ulice, kde žijí zaměstnanci s nejnižším průměrným platem. Budeme postupovat krok za krokem a budeme používat define pro mezivýsledky

54 Příklad pokračování 1) Vytvoříme si seznam (přesněji Bag) všech zaměstnanců Define Zamestnanci as Select (Zamestnanec)p from p in Osoby where ma praci in p.aktivity

55 Příklad pokračování 2) Roztřídíme zaměstnance podle ulic a spočítáme průměrný plat pro každou ulici define plat_map as select ulice, prumerny_plat: avg(select p.e.plat from partition p) from e in Zamestnanci group by e.zije_v.dum.adresa.ulice Výsledek dotazu má typ: Bag<struct{String ulice, float prumerny_plat;}>

56 Příklad dokončení 3) předchozí výsledek utřídíme podle platu define setrideny_plat_map as select s from s in plat_map order by s.prumerny_plat Typ výsledku je: List<struct{String ulice, float prumerny_plat;}> 4) snadno zjistíme nejmenší hodnotu v seznamu první prvek setrideny_plat_map[0].ulice

57 Příklad jednou větou (select ulice, prumerny_plat: avg (select p.e.plat from partition p) from e in (select (Zamestnanec)p from p in Osoby where has a job in p.aktivity) group by e.zije_v.dum.adresa.ulice order by avg (select p.e.plat from partition p) )[0].ulice

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

OQL. (Object Query Language) Michal Bartoš Filip Bureš OQL (Object Query Language) Michal Bartoš Filip Bureš Obsah (1) ODMG Základní vlastnosti OQL Struktura dotazu Datové typy Práce s objekty Tvorba objektů Objektová databáze Rozdíly oproti relační databázi:

Více

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

Analýza a modelování dat. Přednáška 5 Analýza a modelování dat Přednáška 5 Objektově orientované databáze Relační databáze data uložena v logicky provázaných tabulkách přes cizí klíče výhoda jednoduchost, intuitivnost, naplnění myšlenky oddělení

Více

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

OBJECT DEFINITION LANGUAGE. Jonáš Klimeš NDBI001 Dotazovací Jazyky I 2013 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,

Více

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

OQL. Jakub Kýpeť, Ondřej Heřmánek OQL Jakub Kýpeť, Ondřej Heřmánek Obsah Historie Objektový model Dotazovací jazyk Příklady Historie 1993 - vzniká standard ODMG-93 nadmnožina obecného modelu od OMG převzat definiční jazyk IDL dotazovací

Více

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

ODMG OQL. Jan Forch. Dotazovací jazyky, MFF UK ODMG OQL Jan Forch Dotazovací jazyky, MFF UK Obsah Objektově orientované databáze Úvod do ODMG-93 Motivace Idea Datový model OQL Gramatika OQL Literatura Dotazy 2 Jan Forch - ODMG OQL Objektově orientované

Více

KIV/ZIS cvičení 5. Tomáš Potužák

KIV/ZIS cvičení 5. Tomáš Potužák KIV/ZIS cvičení 5 Tomáš Potužák Úvod do SQL (1) SQL (Structured Query Language) je standardizovaný strukturovaný dotazovací jazyk pro práci s databází Veškeré operace v databázi se dají provádět pomocí

Více

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

Kurz Databáze. Obsah. Dotazy. Zpracování dat. Doc. Ing. Radim Farana, CSc. 1 Kurz Databáze Zpracování dat Doc. Ing. Radim Farana, CSc. Obsah Druhy dotazů, tvorba dotazu, prostředí QBE (Query by Example). Realizace základních relačních operací selekce, projekce a spojení. Agregace

Více

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

Úvod do databázových systémů Vysoká škola báňská Technická univerzita Ostrava Fakulta elektrotechniky a informatiky Úvod do databázových systémů Cvičení 3 Ing. Petr Lukáš petr.lukas@vsb.cz Ostrava, 2014 Opakování 4 fáze vytváření

Více

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

8.2 Používání a tvorba databází 8.2 Používání a tvorba databází Slide 1 8.2.1 Základní pojmy z oblasti relačních databází Slide 2 Databáze ~ Evidence lidí peněz věcí... výběry, výpisy, početní úkony Slide 3 Pojmy tabulka, pole, záznam

Více

PB161 Programování v jazyce C++ Přednáška 7

PB161 Programování v jazyce C++ Přednáška 7 PB161 Programování v jazyce C++ Přednáška 7 Statické položky tříd Základy OOP Nikola Beneš 6. listopadu 2018 PB161 přednáška 7: static, základy OOP 6. listopadu 2018 1 / 21 Klíčové slovo static Znáte z

Více

PB161 Programování v jazyce C++ Přednáška 7

PB161 Programování v jazyce C++ Přednáška 7 PB161 Programování v jazyce C++ Přednáška 7 Statické položky tříd Základy OOP Nikola Beneš 6. listopadu 2018 PB161 přednáška 7: static, základy OOP 6. listopadu 2018 1 / 21 Klíčové slovo static Znáte z

Více

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

Informační systémy ve zdravotnictví. 6. cvičení Vysoká škola báňská Technická univerzita Ostrava Fakulta elektrotechniky a informatiky Informační systémy ve zdravotnictví 6. cvičení Ing. Petr Lukáš petr.lukas@nativa.cz Ostrava, 2014 Opakování Relace

Více

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

Dolování v objektových datech. Ivana Rudolfová Dolování v objektových datech Ivana Rudolfová Relační databáze - nevýhody První normální forma neumožňuje vyjádřit vztahy A je podtypem B nebo vytvořit struktury typu pole nebo množiny SQL omezení omezený

Více

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

Úvod do databázových systémů Vysoká škola báňská Technická univerzita Ostrava Fakulta elektrotechniky a informatiky Úvod do databázových systémů Cvičení 5 Ing. Petr Lukáš petr.lukas@vsb.cz Ostrava, 2014 Opakování K čemu se používají

Více

Ukládání a vyhledávání XML dat

Ukládání a vyhledávání XML dat XML teorie a praxe značkovacích jazyků (4IZ238) Jirka Kosek Poslední modifikace: $Date: 2014/12/04 19:41:24 $ Obsah Ukládání XML dokumentů... 3 Ukládání XML do souborů... 4 Nativní XML databáze... 5 Ukládání

Více

7.3 Diagramy tříd - základy

7.3 Diagramy tříd - základy 7.3 Diagramy tříd - základy - popisuje typy objektů a statické vztahy mezi nimi Objednávka -datumpřijetí -předplacena -číslo -cena +vyřiď() +uzavři() {if Objednávka.zákazník.charakteristika = 'nejistý'

Více

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

Databázové systémy. Cvičení 6: SQL Databázové systémy Cvičení 6: SQL Co je SQL? SQL = Structured Query Language SQL je standardním (ANSI, ISO) textovým počítačovým jazykem SQL umožňuje jednoduchým způsobem přistupovat k datům v databázi

Více

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

Databáze I. Přednáška 6 Databáze I Přednáška 6 SQL aritmetika v dotazech SQL lze přímo uvádět aritmetické výrazy násobení, dělení, sčítání, odčítání příklad z minulé přednášky: zdvojnásobení platu všem zaměstnancům UPDATE ZAMESTNANEC

Více

Databáze SQL SELECT. David Hoksza http://siret.cz/hoksza

Databáze SQL SELECT. David Hoksza http://siret.cz/hoksza Databáze SQL SELECT David Hoksza http://siret.cz/hoksza Osnova Úvod do SQL Základní dotazování v SQL Cvičení základní dotazování v SQL Structured Query Language (SQL) SQL napodobuje jednoduché anglické

Více

7.3 Diagramy tříd - základy

7.3 Diagramy tříd - základy 7.3 Diagramy tříd - základy - popisuje typy objektů a statické vztahy mezi nimi Objednávka -datumpřijetí -předplacena -číslo -cena +vyřiď() +uzavři() {if Objednávka.zákazník.charakteristika = 'nejistý'

Více

6. blok část C Množinové operátory

6. blok část C Množinové operátory 6. blok část C Množinové operátory Studijní cíl Tento blok je věnován problematice množinových operátorů a práce s množinovými operátory v jazyce SQL. Čtenáři se seznámí s operátory, UNION, a INTERSECT.

Více

Dědění, polymorfismus

Dědění, polymorfismus Programování v jazyce C/C++ Ladislav Vagner úprava Pavel Strnad Dědění. Polymorfismus. Dnešní přednáška Statická a dynamická vazba. Vnitřní reprezentace. VMT tabulka virtuálních metod. Časté chyby. Minulá

Více

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

Úvod do databázových systémů Vysoká škola báňská Technická univerzita Ostrava Fakulta elektrotechniky a informatiky Katedra informatiky Database Research Group Úvod do databázových systémů Cvičení 3 Ing. Petr Lukáš petr.lukas@vsb.cz

Více

Databázové systémy I

Databázové systémy I Databázové systémy I Přednáška č. 8 Ing. Jiří Zechmeister Fakulta elektrotechniky a informatiky jiri.zechmeister@upce.cz Skupinové a souhrnné dotazy opakování Obsah Pohledy syntaxe použití význam Vnořené

Více

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

Databáze I. Přednáška 7 Databáze I Přednáška 7 Objektové rozšíření SQL Objektově relační databáze SQL:1999 objektové rozšíření SQL vztahuje se k objektově relačním databázovým systémům ukládají objekty do relační databáze umožňují

Více

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

12. Postrelační databázové systémy 12. Postrelační databázové systémy 12.1. Nové oblasti aplikací databázových technologií... 2 12.2. Objektově-orientované databáze... 5 12.3. Objektově-relační databáze... 12 12.4. Další typy databází a

Více

IB111 Programování a algoritmizace. Objektově orientované programování (OOP)

IB111 Programování a algoritmizace. Objektově orientované programování (OOP) IB111 Programování a algoritmizace Objektově orientované programování (OOP) OP a OOP Objekt Kombinuje data a funkce a poskytuje určité rozhraní. OP = objektové programování Vše musí být objekty Např. Smalltalk,

Více

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

12. Postrelační databázové systémy 12. Postrelační databázové systémy 12.1. Nové oblasti aplikací databázových technologií... 2 12.2. Objektově-orientované databáze... 5 12.3. Objektově-relační databáze... 12 12.4. Další typy databází a

Více

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

Informační systémy ve zdravotnictví. 8. cvičení Vysoká škola báňská Technická univerzita Ostrava Fakulta elektrotechniky a informatiky Informační systémy ve zdravotnictví 8. cvičení Ing. Petr Lukáš petr.lukas@nativa.cz Ostrava, 2014 Opakování Klauzule

Více

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

Informační systémy ve zdravotnictví. 10. cvičení Vysoká škola báňská Technická univerzita Ostrava Fakulta elektrotechniky a informatiky Informační systémy ve zdravotnictví 10. cvičení Ing. Petr Lukáš petr.lukas@nativa.cz Ostrava, 2014 Opakování K čemu

Více

Informační systémy 2008/2009. Radim Farana. Obsah. Dotazy přes více tabulek

Informační systémy 2008/2009. Radim Farana. Obsah. Dotazy přes více tabulek 5 Vysoká škola báňská Technická univerzita Ostrava Fakulta strojní, Katedra automatizační techniky a řízení 2008/2009 Radim Farana 1 Obsah Jazyk SQL, Spojení tabulek, agregační dotazy, jednoduché a složené

Více

Diagramy tříd - základy

Diagramy tříd - základy Diagramy tříd - základy - popisuje typy objektů a statické vztahy mezi nimi Objednávka Zákazník -datumpřijetí -předplacena -číslo -cena +vyřiď() +uzavři() {if Objednávka.zákazník.charakteristika = 'nejistý'

Více

Databázové systémy. Doc.Ing.Miloš Koch,CSc. koch@fbm.vutbr.cz

Databázové systémy. Doc.Ing.Miloš Koch,CSc. koch@fbm.vutbr.cz Databázové systémy Doc.Ing.Miloš Koch,CSc. koch@fbm.vutbr.cz Vývoj databázových systémů Ukládání dat Aktualizace dat Vyhledávání dat Třídění dat Výpočty a agregace 60.-70. léta Program Komunikace Výpočty

Více

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

B0M33BDT Technologie pro velká data. Supercvičení SQL, Python, Linux B0M33BDT Technologie pro velká data Supercvičení SQL, Python, Linux Sergej Stamenov, Jan Hučín 18. 10. 2017 Osnova cvičení Linux SQL Python 2 SQL pro uživatele aneb co potřebuje znát a umět bigdatový uživatel:

Více

Databázové systémy trocha teorie

Databázové systémy trocha teorie Databázové systémy trocha teorie Základní pojmy Historie vývoje zpracování dat: 50. Léta vše v programu nevýhody poměrně jasné Aplikace1 alg.1 Aplikace2 alg.2 typy1 data1 typy2 data2 vytvoření systémů

Více

7.5 Diagram tříd pokročilé techniky

7.5 Diagram tříd pokročilé techniky 7.5 Diagram tříd pokročilé techniky Stereotypy - jeden ze základních prostředků rozšiřitelnosti UML - pro modelovací konstrukce neexistující v UML, ale podobné předdefinované v UML definované uživatelem

Více

1. Dědičnost a polymorfismus

1. Dědičnost a polymorfismus 1. Dědičnost a polymorfismus Cíl látky Cílem této kapitoly je představit klíčové pojmy dědičnosti a polymorfismu. Předtím však je nutné se seznámit se základními pojmy zobecnění neboli generalizace. Komentář

Více

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

Úvod do databázových systémů Vysoká škola báňská Technická univerzita Ostrava Fakulta elektrotechniky a informatiky Úvod do databázových systémů Cvičení 4 Ing. Petr Lukáš petr.lukas@vsb.cz Ostrava, 2014 Opakování Klauzule příkazu

Více

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

Jaký je rozdíl v definicicíh VARCHAR2(20 BYTE) a VARCHAR2(20 CHAR): Mezi příkazy pro manipulaci s daty (DML) patří : 1. SELECT 2. ALTER 3. DELETE 4. REVOKE Jaké vlastnosti má identifikující relace: 1. Je relace, která se využívá pouze v případě modelovaní odvozených entit

Více

UML. Unified Modeling Language. Součásti UML

UML. Unified Modeling Language. Součásti UML UML Unified Modeling Language 1995 počátek 1997 verze 1.0 leden dnes verze 2.0 (vývoj stále nedokončen) Standardní notace OMG podpora velkých firem (Microsoft, IBM, Oracle, HP ) popisuje struktury popisuje

Více

11.5.2012. Obsah přednášky 9. Skrývání informací. Skrývání informací. Zapouzdření. Skrývání informací. Základy programování (IZAPR, IZKPR) Přednáška 9

11.5.2012. Obsah přednášky 9. Skrývání informací. Skrývání informací. Zapouzdření. Skrývání informací. Základy programování (IZAPR, IZKPR) Přednáška 9 Obsah přednášky 9 Základy programování (IZAPR, IZKPR) Přednáška 9 Základy dědičnosti, přístupová práva Ing. Michael Bažant, Ph.D. Katedra softwarových technologií Kancelář č. 03 022, Náměstí Čs. legií

Více

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

Úvod do databázových systémů Vysoká škola báňská Technická univerzita Ostrava Fakulta elektrotechniky a informatiky Úvod do databázových systémů Cvičení 8 Ing. Petr Lukáš petr.lukas@vsb.cz Ostrava, 2014 Opakování Entita Entitní typ

Více

Kapitola 4: SQL. Základní struktura

Kapitola 4: SQL. Základní struktura - 4.1 - Kapitola 4: SQL Základní struktura Množinové operace Souhrnné funkce Nulové hodnoty Vnořené poddotazy (Nested sub-queries) Odvozené relace Pohledy Modifikace databáze Spojené relace Jazyk definice

Více

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

Úvod do databází. Modelování v řízení. Ing. Petr Kalčev Úvod do databází Modelování v řízení Ing. Petr Kalčev Co je databáze? Množina záznamů a souborů, které jsou organizovány za určitým účelem. Jaké má mít přínosy? Rychlost Spolehlivost Přesnost Bezpečnost

Více

7.5 Diagram tříd pokročilé techniky

7.5 Diagram tříd pokročilé techniky 7.5 Diagram tříd pokročilé techniky Stereotypy - jeden ze základních prostředků rozšiřitelnosti UML - pro modelovací konstrukce neexistující v UML, ale podobné předdefinované v UML definované uživatelem

Více

6 Objektově-orientovaný vývoj programového vybavení

6 Objektově-orientovaný vývoj programového vybavení 6 Objektově-orientovaný vývoj programového vybavení 6.1 Co značí objektově-orientovaný - organizace SW jako kolekce diskrétních objektů, které zahrnují jak data tak chování objekt: OMG: Objekt je věc (thing).

Více

PB161 Základy OOP. Tomáš Brukner

PB161 Základy OOP. Tomáš Brukner PB161 Základy OOP Tomáš Brukner Sylabus - Co je to OOP? Jaké jsou základní principy OOP? Jak se projevují v C++? https://cs.wikipedia.org/wiki/strahovská_knihovna SELECT * FROM books WHERE pages < 250

Více

Operátory ROLLUP a CUBE

Operátory ROLLUP a CUBE Operátory ROLLUP a CUBE Dotazovací jazyky, 2009 Marek Polák Martin Chytil Osnova přednášky o Analýza dat o Agregační funkce o GROUP BY a jeho problémy o Speciální hodnotový typ ALL o Operátor CUBE o Operátor

Více

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

Databázové systémy. - SQL * definice dat * aktualizace * pohledy. Tomáš Skopal Databázové systémy - SQL * definice dat * aktualizace * pohledy Tomáš Skopal Osnova přednášky definice dat definice (schémat) tabulek a integritních omezení CREATE TABLE změna definice schématu ALTER TABLE

Více

Databáze. Velmi stručný a zjednodušený úvod do problematiky databází pro programátory v Pythonu. Bedřich Košata

Databáze. Velmi stručný a zjednodušený úvod do problematiky databází pro programátory v Pythonu. Bedřich Košata Databáze Velmi stručný a zjednodušený úvod do problematiky databází pro programátory v Pythonu Bedřich Košata K čemu jsou databáze Ukládání dat ve strukturované podobě Možnost ukládat velké množství dat

Více

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

14.4.2010. Obsah přednášky 7. Základy programování (IZAPR) Přednáška 7. Parametry metod. Parametry, argumenty. Parametry metod. Základy programování (IZAPR) Přednáška 7 Ing. Michael Bažant, Ph.D. Katedra softwarových technologií Kancelář č. 229, Náměstí Čs. legií Michael.Bazant@upce.cz Obsah přednášky 7 Parametry metod, předávání

Více

Dotazování v relačním modelu a SQL

Dotazování v relačním modelu a SQL Databázové systémy Dotazování v relačním modelu a SQL Petr Krajča Katedra informatiky Univerzita Palackého v Olomouci Petr Krajča (UP) KMI/YDATA: Přednáška II. 14. říjen, 2016 1 / 35 Opakování Relační

Více

Základy objektové orientace I. Únor 2010

Základy objektové orientace I. Únor 2010 Seminář Java Základy objektové orientace I Radek Kočí Fakulta informačních technologií VUT Únor 2010 Radek Kočí Seminář Java Základy OO (1) 1/ 20 Téma přednášky Charakteristika objektově orientovaných

Více

10 Balíčky, grafické znázornění tříd, základy zapozdření

10 Balíčky, grafické znázornění tříd, základy zapozdření 10 Balíčky, grafické znázornění tříd, základy zapozdření Studijní cíl Tento studijní blok má za cíl pokračovat v základních prvcích jazyka Java. Konkrétně bude věnována pozornost příkazům balíčkům, grafickému

Více

Programování v C++ 3, 3. cvičení

Programování v C++ 3, 3. cvičení Programování v C++ 3, 3. cvičení úvod do objektově orientovaného programování 1 1 Fakulta jaderná a fyzikálně inženýrská České vysoké učení technické v Praze Zimní semestr 2018/2019 Přehled Dokončení spojového

Více

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

Pascal. Katedra aplikované kybernetiky. Ing. Miroslav Vavroušek. Verze 7 Pascal Katedra aplikované kybernetiky Ing. Miroslav Vavroušek Verze 7 Proměnné Proměnná uchovává nějakou informaci potřebnou pro práci programu. Má ve svém oboru platnosti unikátní jméno. (Připadne, musí

Více

Úvod do databázových systémů 3. cvičení

Úvod do databázových systémů 3. cvičení Vysoká škola báňská Technická univerzita Ostrava Fakulta elektrotechniky a informatiky Úvod do databázových systémů 3. cvičení Ing. Petr Lukáš petr.lukas@nativa.cz Ostrava, 2012 Klauzule příkazu Klauzule

Více

Algoritmizace prostorových úloh

Algoritmizace prostorových úloh INOVACE BAKALÁŘSKÝCH A MAGISTERSKÝCH STUDIJNÍCH OBORŮ NA HORNICKO-GEOLOGICKÉ FAKULTĚ VYSOKÉ ŠKOLY BÁŇSKÉ - TECHNICKÉ UNIVERZITY OSTRAVA Algoritmizace prostorových úloh Datové struktury Daniela Szturcová

Více

Tvorba informačních systémů

Tvorba informačních systémů Tvorba informačních systémů Michal Krátký 1 1 Katedra informatiky VŠB Technická univerzita Ostrava Tvorba informačních systémů, 2005/2006 c 2006 Michal Krátký Tvorba informačních systémů 1/35 Konceptuální

Více

KIV/ZIS - SQL dotazy. stáhnout soubor ZIS- 04_TestovaciDatabaze250312.accdb. SQL dotazy. budeme probírat pouze SELECT

KIV/ZIS - SQL dotazy. stáhnout soubor ZIS- 04_TestovaciDatabaze250312.accdb. SQL dotazy. budeme probírat pouze SELECT KIV/ZIS - SQL dotazy stáhnout soubor ZIS- 04_TestovaciDatabaze250312.accdb SQL dotazy textové příkazy pro získání nebo manipulaci s daty SELECT - výběr/výpis INSERT - vložení UPDATE - úprava DELETE - smazání

Více

InterSystems Caché Post-Relational Database

InterSystems Caché Post-Relational Database InterSystems Caché Post-Relational Database Martin Holoubek xholoub@fi.muni.cz Úvod InterSystems byla založena shodou okolností ve stejném roce jako její největší konkurent Oracle 1978 Caché je velmi vyspělý

Více

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

Nerelační databázové modely. Helena Palovská Nerelační databázové modely Helena Palovská palovska@vse.cz Různé modely pro databázovou strukturu databázové modely 1960 SŘBD hierarchický, síťový relační 1970 1980 hierarchické, síťové relační objektový

Více

Programování v C++ 2, 4. cvičení

Programování v C++ 2, 4. cvičení Programování v C++ 2, 4. cvičení statické atributy a metody, konstruktory 1 1 Fakulta jaderná a fyzikálně inženýrská České vysoké učení technické v Praze Zimní semestr 2018/2019 Přehled Přístupová práva

Více

KIV/ZIS - SELECT, opakování

KIV/ZIS - SELECT, opakování KIV/ZIS - SELECT, opakování soubor 4_databaze.accdb (lze použít ten z minula) http://home.zcu.cz/~krauz/zis/4_databaze.accdb minule: SELECT FROM WHERE ORDER BY SELECT sloupce jaké sloupce chceme vybrat

Více

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

Základní pojmy. Úvod do programování. Základní pojmy. Zápis algoritmu. Výraz. Základní pojmy Úvod do programování Michal Krátký 1,Jiří Dvorský 1 1 Katedra informatiky VŠB Technická univerzita Ostrava Úvod do programování, 2004/2005 Procesor Procesorem je objekt, který vykonává algoritmem popisovanou

Více

Common Object Request Broker Architecture

Common Object Request Broker Architecture Common Object Request Broker Architecture Tvorba aplikací, jejichž komponenty budou komunikovat přes počítačovou síť Programátor jedné aplikace volá metody vzdálených objektů podobně jako u sebe lokální

Více

Třída. Atributy. Operace

Třída. Atributy. Operace Class Diagrams Třída Atributy Operace Třída Třída je jakýsi prototyp objektů. Za třídou si můžeme představit množinu jejích instancí. Každý objekt dané třídy má stejnou množinu atributů (proměnných) a

Více

6. blok část B Vnořené dotazy

6. blok část B Vnořené dotazy 6. blok část B Vnořené dotazy Studijní cíl Tento blok je věnován práci s vnořenými dotazy. Popisuje rozdíl mezi korelovanými a nekorelovanými vnořenými dotazy a zobrazuje jejich použití. Doba nutná k nastudování

Více

3. Je defenzivní programování technikou skrývání implementace? Vyberte jednu z nabízených možností: Pravda Nepravda

3. Je defenzivní programování technikou skrývání implementace? Vyberte jednu z nabízených možností: Pravda Nepravda 1. Lze vždy z tzv. instanční třídy vytvořit objekt? 2. Co je nejčastější příčinou vzniku chyb? A. Specifikace B. Testování C. Návrh D. Analýza E. Kódování 3. Je defenzivní programování technikou skrývání

Více

Dynamicky vázané metody. Pozdní vazba, virtuální metody

Dynamicky vázané metody. Pozdní vazba, virtuální metody Dynamicky vázané metody Pozdní vazba, virtuální metody Motivace... class TBod protected: float x,y; public: int vrat_pocet_bodu() return 1; ; od třídy TBod odvodíme: class TUsecka: public TBod protected:

Více

TÉMATICKÝ OKRUH Softwarové inženýrství

TÉMATICKÝ OKRUH Softwarové inženýrství TÉMATICKÝ OKRUH Softwarové inženýrství Číslo otázky : 24. Otázka : Implementační fáze. Postupy při specifikaci organizace softwarových komponent pomocí UML. Mapování modelů na struktury programovacího

Více

Unifikovaný modelovací jazyk UML

Unifikovaný modelovací jazyk UML Unifikovaný modelovací jazyk UML Karel Richta katedra počíta tačů FEL ČVUT Praha richta@fel fel.cvut.czcz Motto: Komunikačním m prostředkem informační komunity se postupem času stala angličtina. Chcete-li

Více

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

Databázové systémy Cvičení 5 Databázové systémy Cvičení 5 Dotazy v jazyce SQL SQL jako jazyk pro manipulaci s daty Aktualizace dat v SQL úprava záznamů v relacích (tabulkách) vložení záznamu INSERT INTO oprava záznamu UPDATE vymazání

Více

MATURITNÍ OTÁZKY ELEKTROTECHNIKA - POČÍTAČOVÉ SYSTÉMY 2003/2004 PROGRAMOVÉ VYBAVENÍ POČÍTAČŮ

MATURITNÍ OTÁZKY ELEKTROTECHNIKA - POČÍTAČOVÉ SYSTÉMY 2003/2004 PROGRAMOVÉ VYBAVENÍ POČÍTAČŮ MATURITNÍ OTÁZKY ELEKTROTECHNIKA - POČÍTAČOVÉ SYSTÉMY 2003/2004 PROGRAMOVÉ VYBAVENÍ POČÍTAČŮ 1) PROGRAM, ZDROJOVÝ KÓD, PŘEKLAD PROGRAMU 3 2) HISTORIE TVORBY PROGRAMŮ 3 3) SYNTAXE A SÉMANTIKA 3 4) SPECIFIKACE

Více

PROSTOROVÉ DOTAZOVACÍ JAZYKY. (Maroš Kasinec, Jakub Kúdela)

PROSTOROVÉ DOTAZOVACÍ JAZYKY. (Maroš Kasinec, Jakub Kúdela) PROSTOROVÉ DOTAZOVACÍ JAZYKY (Maroš Kasinec, Jakub Kúdela) ÚVOD dotazovací jazyk hlavní prostředek interakce s databází klíčoví požadavek SŘBD (DBMS) SQL populární, komerční dotazovací jazyk pro relační

Více

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

Marketingová komunikace. 2. soustředění. Mgr. Pavel Vávra 9103@mail.vsfs.cz. Kombinované studium Skupina N9KMK1aPH/N9KMK1bPH (um1a1ph/um1b1ph) Marketingová komunikace Kombinované studium Skupina N9KMK1aPH/N9KMK1bPH (um1a1ph/um1b1ph) 2. soustředění Mgr. Pavel Vávra 9103@mail.vsfs.cz http://vavra.webzdarma.cz/home/index.htm Minulé soustředění úvod

Více

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

Databázové systémy Cvičení 5.3 Databázové systémy Cvičení 5.3 SQL jako jazyk pro manipulaci s daty SQL jako jazyk pro manipulaci s daty Aktualizace dat v SQL úprava záznamů v relacích (tabulkách) vložení záznamu INSERT INTO oprava záznamu

Více

Marketingová komunikace. 2. a 3. soustředění. Mgr. Pavel Vávra 9103@mail.vsfs.cz. Kombinované studium Skupina N9KMK3PH (vm3aph)

Marketingová komunikace. 2. a 3. soustředění. Mgr. Pavel Vávra 9103@mail.vsfs.cz. Kombinované studium Skupina N9KMK3PH (vm3aph) Marketingová komunikace Kombinované studium Skupina N9KMK3PH (vm3aph) 2. a 3. soustředění Mgr. Pavel Vávra 9103@mail.vsfs.cz http://vavra.webzdarma.cz/home/index.htm Co nás čeká: 2. soustředění 16.1.2009

Více

Informační systémy 2008/2009. Radim Farana. Obsah. Nástroje business modelování. Business modelling, základní nástroje a metody business modelování.

Informační systémy 2008/2009. Radim Farana. Obsah. Nástroje business modelování. Business modelling, základní nástroje a metody business modelování. 3 Vysoká škola báňská Technická univerzita Ostrava Fakulta strojní, Katedra automatizační techniky a řízení 2008/2009 Radim Farana 1 Obsah Business modelling, základní nástroje a metody business modelování.

Více

Objektové programování

Objektové programování Objektové programování - přináší nové možnosti a styl programování - vytváří nový datový typ, který umí vše co standardní datové typy + to co ho naučíme - překladač se k tomuto typu chová stejně jako k

Více

typová konverze typová inference

typová konverze typová inference Seminář Java Programování v Javě II Radek Kočí Fakulta informačních technologií VUT Únor 2008 Radek Kočí Seminář Java Programování v Javě (2) 1/ 36 Téma přednášky Rozhraní: použití, dědičnost Hierarchie

Více

Jazyk SQL 2. Michal Valenta. Katedra softwarového inženýrství FIT České vysoké učení technické v Praze c M.Valenta, 2011 BI-DBS, ZS 2011/12

Jazyk SQL 2. Michal Valenta. Katedra softwarového inženýrství FIT České vysoké učení technické v Praze c M.Valenta, 2011 BI-DBS, ZS 2011/12 Jazyk SQL 2 Michal Valenta Katedra softwarového inženýrství FIT České vysoké učení technické v Praze c M.Valenta, 2011 BI-DBS, ZS 2011/12 https://edux.fit.cvut.cz/courses/bi-dbs/ M.Valenta (FIT ČVUT) Jazyk

Více

PŘETĚŽOVÁNÍ OPERÁTORŮ

PŘETĚŽOVÁNÍ OPERÁTORŮ PŘETĚŽOVÁNÍ OPERÁTORŮ Jazyk C# podobně jako jazyk C++ umožňuje přetěžovat operátory, tj. rozšířit definice některých standardních operátorů na uživatelem definované typy (třídy a struktury). Stejně jako

Více

11 Diagram tříd, asociace, dědičnost, abstraktní třídy

11 Diagram tříd, asociace, dědičnost, abstraktní třídy 11 Diagram tříd, asociace, dědičnost, abstraktní třídy Studijní cíl Tento studijní blok má za cíl pokračovat v základních prvcích jazyka Java. Konkrétně bude věnována pozornost diagramům tříd, asociaci,

Více

Základní přehled SQL příkazů

Základní přehled SQL příkazů Základní přehled SQL příkazů SELECT Základní použití Příkaz SELECT slouží k získání dat z tabulky nebo pohledu v požadované podobě. Získání všech řádků a sloupců z tabulky SELECT * FROM Person.Contact

Více

Objektově orientované databáze. Miroslav Beneš

Objektově orientované databáze. Miroslav Beneš Objektově orientované databáze Miroslav Beneš Obsah přednášky Motivace Vlastnosti databázových systémů Logické datové modely Nevýhody modelů založených na záznamech Co potřebujeme modelovat? Identifikace

Více

Abstraktní datové typy: zásobník

Abstraktní datové typy: zásobník Abstraktní datové typy: zásobník doc. Ing. Miroslav Beneš, Ph.D. katedra informatiky FEI VŠB-TUO A-1007 / 597 324 213 http://www.cs.vsb.cz/benes Miroslav.Benes@vsb.cz Abstraktní datové typy omezené rozhraní

Více

Třídy. Instance. Pokud tento program spustíme, vypíše následující. car1 má barvu Red. car2 má barvu Red. car1 má barvu Blue.

Třídy. Instance. Pokud tento program spustíme, vypíše následující. car1 má barvu Red. car2 má barvu Red. car1 má barvu Blue. 23. Třídy, generické třídy, instance, skládání, statické metody a proměnné. Zapouzdření, konstruktory, konzistence objektu, zpřístupnění vnitřní implementace, modifikátory public a private. Polymorfismus,

Více

Generické programování

Generické programování Generické programování Od C# verze 2.0 = vytváření kódu s obecným datovým typem Příklad generická metoda, zamění dva parametry: static void Swap(ref T p1, ref T p2) T temp; temp = p1; p1 = p2; p2 =

Více

Tvorba informačních systémů

Tvorba informačních systémů Tvorba informačních systémů Michal Krátký Katedra informatiky VŠB Technická univerzita Ostrava Tvorba informačních systémů, 2007/2008 c 2005 2008 Michal Krátký Tvorba informačních systémů 1/39 Konceptuální

Více

24. listopadu 2013, Brno Připravil: David Procházka

24. listopadu 2013, Brno Připravil: David Procházka 24. listopadu 2013, Brno Připravil: David Procházka Dědičnost Základy objektového návrhu Časná a pozdní vazba Strana 2 / 22 Obsah přednášky 1 Časná a pozdní vazba 2 Rozhraní pro dědičnost 3 Konstruktory

Více

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

Obsah přednášky. 12. Dokumentace zdrojového kódu Tvorba elektronické dokumentace UML. Co je diagram tříd. Ing. Ondřej Guth Evropský sociální fond. 12. Dokumentace zdrojového kódu Tvorba elektronické dokumentace Ing. Ondřej Guth Katedra teoretické informatiky Fakulta informačních technologií České vysoké učení technické v Praze

Více

8 Třídy, objekty, metody, předávání argumentů metod

8 Třídy, objekty, metody, předávání argumentů metod 8 Třídy, objekty, metody, předávání argumentů metod Studijní cíl Tento studijní blok má za cíl pokračovat v základních prvcích jazyka Java. Konkrétně bude věnována pozornost třídám a objektům, instančním

Více

Programování v C++ 1, 6. cvičení

Programování v C++ 1, 6. cvičení Programování v C++ 1, 6. cvičení dědičnost, polymorfismus 1 1 Fakulta jaderná a fyzikálně inženýrská České vysoké učení technické v Praze Zimní semestr 2018/2019 Přehled 1 2 3 Shrnutí minule procvičené

Více

2) Napište algoritmus pro vložení položky na konec dvousměrného seznamu. 3) Napište algoritmus pro vyhledání položky v binárním stromu.

2) Napište algoritmus pro vložení položky na konec dvousměrného seznamu. 3) Napište algoritmus pro vyhledání položky v binárním stromu. Informatika 10. 9. 2013 Jméno a příjmení Rodné číslo 1) Napište algoritmus pro rychlé třídění (quicksort). 2) Napište algoritmus pro vložení položky na konec dvousměrného seznamu. 3) Napište algoritmus

Více

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

Objektově relační databáze a ORACLE 8 Objektově relační databáze a ORACLE 8 Ludmila Kalužová VŠB - TU Ostrava, Ekonomická fakulta, Katedra informatiky v ekonomice, Sokolská 33, 701 21 Ostrava 1 Abstrakt V současné době existuje velký počet

Více

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

Základy jazyka C# Obsah přednášky. Architektura.NET Historie Vlastnosti jazyka C# Datové typy Příkazy Prostory jmen Třídy, rozhraní Základy jazyka C# doc. Ing. Miroslav Beneš, Ph.D. katedra informatiky FEI VŠB-TUO A-1007 / 597 324 213 http://www.cs.vsb.cz/benes Miroslav.Benes@vsb.cz Obsah přednášky Architektura.NET Historie Vlastnosti

Více

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

Databázové systémy Cvičení 5.2 Databázové systémy Cvičení 5.2 SQL jako jazyk pro definici dat Detaily zápisu integritních omezení tabulek Integritní omezení tabulek kromě integritních omezení sloupců lze zadat integritní omezení jako

Více

Vyřešené teoretické otázky do OOP ( )

Vyřešené teoretické otázky do OOP ( ) Vyřešené teoretické otázky do OOP (16. 1. 2013) 1) Vyjmenujte v historickém pořadí hlavní programovací paradigmata a stručně charakterizujte každé paradigma. a) Naivní chaotičnost, špatná syntaxe a sémantika

Více

Teoretické minimum z PJV

Teoretické minimum z PJV Teoretické minimum z PJV Pozn.: následující text popisuje vlastnosti jazyka Java zjednodušeně pouze pro potřeby výuky. Třída Zavádí se v programu deklarací třídy což je část programu od klíčových slov

Více