OCL a integritní omezení
|
|
- Vendula Kašparová
- před 10 lety
- Počet zobrazení:
Transkript
1 OCL a integritní omezení Karel Richta Katedra softwarového inženýrství Fakulta informačních technologií České vysoké učení technické v Praze richta@fel.cvut.cz, 2011 Softwarové inženýrství I., BI-SI1 04/2011, Přednáška 9 Evropský sociální fond Praha & EU: Investujeme do vaší budoucnosti richta@fel.cvut.cz (ČVUT) OCL a integritní omezení BI-SI1, 2011, Přednáška 9, 1/78
2 Proč OCL? Pomocí diagramů UML nelze popsat všechno proto je součástí specifikace UML i definice OCL. Co je zvláštní na následujícím obrázku? richta@fel.cvut.cz (ČVUT) OCL a integritní omezení BI-SI1, 2011, Přednáška 9, 2/78
3 Jiný příklad: Předměty a zkoušky class Studium bez omez... Student - jméno: string - příjmení: string studuje Předmět - kód: string - název: string si zapsal +z 1 +má Zkouškový termín - datum: Date - místnost: int richta@fel.cvut.cz (ČVUT) OCL a integritní omezení BI-SI1, 2011, Přednáška 9, 3/78
4 Předměty a zkoušky o něco lépe class Příklad Studium s omezením Student - jméno: string - příjmení: string studuje Předmět - kód: string - název: string si zapsal +z 1 Student/studentka si mohou zapsat zkouškový termín pouze z předmětů, které právě studují. {C1} +má Zkouškový termín - datum: Date - místnost: int richta@fel.cvut.cz (ČVUT) OCL a integritní omezení BI-SI1, 2011, Přednáška 9, 4/78
5 OCL -ObjectConstraintLanguage pochází z metodiky Syntropy(IBM) je čistě funkcionální (bez vedlejších efektů) není to programovací jazyk -je určen pro vyjádření invariantů - je to specifikační jazyk je silně typovaný (každý výraz OCL má definován typ) má předdefinovanou sadu typů (primitivní typy Integer, Boolean, String, Real, UnlimitedIntegera z nichutvořené kolekce) richta@fel.cvut.cz (ČVUT) OCL a integritní omezení BI-SI1, 2011, Přednáška 9, 5/78
6 Jak vypadá zápis v OCL? context <jméno> [inv pre post]: <výraz> klíčové slovo contextslouží pro definici kontextu pro výraz v OCL, např. zápis: context Osoba inv : <výraz> označuje, že uvedený výraz se vztahuje k instancikontextu (třídy) Osoba (na kterou se lze odkazovat klíčovým slovem self) klíčová slova inv, pre, postzastupují stereotypy <<invariant>>, <<precondition>>, <<postcondition>> richta@fel.cvut.cz (ČVUT) OCL a integritní omezení BI-SI1, 2011, Přednáška 9, 6/78
7 Příklad zápisu v OCL context Osoba inv: self.příjem > tento zápis vyjadřuje, že pro každou instance třídy Osoba, musí mít atribut příjem hodnotu větší než context x:osoba inv: x.příjem > označuje totéž context x:osoba inv OK : x.příjem > zavádí pro toto integritní omezení jméno (OK) Příklad popisu metody: context Osoba::pridej(kolik:Integer):Integer pre : kolik > nemá smysl přidávat méně post : result = self.příjem@pre + kolik richta@fel.cvut.cz (ČVUT) OCL a integritní omezení BI-SI1, 2011, Přednáška 9, 7/78
8 Příklad: Předměty a zkoušky class Studium v OCL Student - jméno: string - příjmení: string studuje Předmět - kód: string - název: string si zapsal {C1} «Invariant» {-- Student/studentka si mohou zapsat zkouškový termín pouze z předmětů, které právě studují. inv C1 : is-element(self.si_zapsal.z, studuje)} +z 1 +má Zkouškový termín - datum: Date - místnost: int richta@fel.cvut.cz (ČVUT) OCL a integritní omezení BI-SI1, 2011, Přednáška 9, 8/78
9 EA vygeneruje tabulky, ale integritní omezení ne. (ČVUT) OCL a integritní omezení BI-SI1, 2011, Přednáška 9, 9/78
10 Příklad: Hypotéky Uvažme příklad světa hypoték - ukázka z katalogu požadavků: 1. Každá hypotéka bude vždy pro jednu osobu. 2. Osoba si může vzít několik hypoték. 3. Každou nemovitost vlastní právě jedna osoba. 4. Osoba může vlastnit libovolný počet nemovitostí. 5. Každá hypotéka musí být zajištěna nejméně jednou nemovitostí. 6. Nemovitost může být použita k zajištění více hypoték. richta@fel.cvut.cz (ČVUT) OCL a integritní omezení BI-SI1, 2011, Přednáška 9, 10/78
11 Příklad modelu evidence hypoték class Hypotéky bez omezení Nemovitost - označení: string - hodnota: penize +je_zajištěna 1..* +vlastní +je_majetkem 1 - jméno: string - příjmení: string - příjem: peníze Osoba + žádost(peníze, Nemovitost) : boolean +pro 1 +zajišťuje +má_půjčenu Hypotéka - od: datum - do: datum - celková_částka: peníze = ,- - měsíční_splátka: peníze richta@fel.cvut.cz (ČVUT) OCL a integritní omezení BI-SI1, 2011, Přednáška 9, 11/78
12 Příklad: Hypotékyo něco lépe class Hypotéky s omezením Nemovitost - označení: string - hodnota: penize +je_zajištěna 1..* +vlastní +je_majetkem 1 - jméno: string - příjmení: string - příjem: peníze Osoba + žádost(peníze, Nemovitost) : boolean +pro 1 «Invariant» {Hypotéka může být zajištěna pouze takovými nemovitostmi, které daná osoba vlastní.} {C1} +zajišťuje +má_půjčenu Hypotéka - od: datum - do: datum - celková_částka: peníze = ,- - měsíční_splátka: peníze richta@fel.cvut.cz (ČVUT) OCL a integritní omezení BI-SI1, 2011, Přednáška 9, 12/78
13 class DDL CASE (EA) vygeneruje tabulky, ale integritní omezení ne. Nemov itost «column» označení: VARCHAR2(50) hodnota: penize *pfk nemovitostid: Integer FK je_majetkem: Integer «PK» + PK_Nemovitost(Integer) «FK» + skládá se z(integer) + FK_je_majetkem(Integer) +PK_Nemovitost (nemovitostid = nemovitostid) «FK» +Nemovitost JoinHypotékaToNemov itost «column» *FK nemovitostid: Integer *FK hypotékaid: Integer +FK_je_majetkem +Hypotéka 1..* (je_majetkem = osobaid) «FK» (hypotékaid = hypotékaid) «FK» +PK_Osoba +PK_Hypotéka 1 Osoba «column» jméno: VARCHAR2(50) příjmení: VARCHAR2(50) příjem: peníze *PK osobaid: Integer «PK» + PK_Osoba(Integer) +PK_Osoba 1 (pro = osobaid) «FK» +FK_pro Hypotéka «column» od: datum do: datum celková_částka: peníze = ,- měsíční_splátka: peníze *PK hypotékaid: Integer FK pro: Integer «FK» + Nemovitost(Integer) + Hypotéka(Integer) «PK» + PK_Hypotéka(Integer) «FK» + FK_pro(Integer) 13 richta@fel.cvut.cz (ČVUT) OCL a integritní omezení BI-SI1, 2011, Přednáška 9, 13/78
14 CASE vygenerujesql, aleio ne. DROP TABLE Hypotéka CASCADE CONSTRAINTS;... CREATE TABLE Hypotéka ( od DATE, do DATE, celková_částka NUMBER(12,2) DEFAULT ,-, měsíční_splátka NUMBER(12,2), hypotékaid Integer NOT NULL, pro Integer );... ALTER TABLE Hypotéka ADD CONSTRAINT PK_Hypotéka PRIMARY KEY (hypotékaid);... ALTER TABLE Hypotéka ADD CONSTRAINT FK_pro FOREIGN KEY (pro) REFERENCES Osoba (osobaid);... richta@fel.cvut.cz (ČVUT) OCL a integritní omezení BI-SI1, 2011, Přednáška 9, 14/78
15 Ale mohl by něco vygenerovat V popisu integritního omezení v jazyce OCL je dost informace pro vygenerování integritního omezení např. pro SQL: ALTER TABLE JoinHypotékaToNemovitost ADD CONSTRAINT C2 CHECK ( /* -- Hypotéky osoby mohou být zajištěny pouze nemovitostmi, které tato osoba vlastní. */ ); context inv: self.je_zajištěna.je_majetkem = self.pro nemovitostid.je_majetkem = hypotékaid.pro richta@fel.cvut.cz (ČVUT) OCL a integritní omezení BI-SI1, 2011, Přednáška 9, 15/78
16 Kdy použít OCL? pro vyjádření integritních omezení v datovém modelu (diagramu tříd) pro vyjádření typových omezení při definici stereotypů pro popis vstupních a výstupních podmínek operací, nebo pro popis operací (metod) ve tvaru: operace(x1,, xn) = výraz kde výrazmůže obsahovat x1,, xn jako navigační jazyk richta@fel.cvut.cz (ČVUT) OCL a integritní omezení BI-SI1, 2011, Přednáška 9, 16/78
17 self.příjem Výrazy v OCL hodnota vlastnosti objektu o kterém v daném kontextu mluvíme v tomtopřípadě se jedná o atribut a hodnotu typu peníze x.vlastní hodnota vlastnosti objektu o kterém v daném kontextu mluvíme v tomtopřípadě se jedná o vztah a hodnotu typu kolekce nemovitostí (případně prázdná) class Příklad modelu pro hypotéky skládá se z 1 Nemov itost - označení: string - hodnota: penize +vlastní +je_majetkem 1 - jméno: string - příjmení: string - příjem: peníze Osoba +je_zajištěna 1..* Nemovitost se zde chápe jako + žádost(peníze, Nemovitost) : boolean +pro 1 richta@fel.cvut.cz (ČVUT) OCL a integritní omezení BI-SI1, 2011, Přednáška 9, 17/78
18 Příklad použití OCL I. class Auta Person - name: String - birthdate: Date - /age: int + getname() : String {query} + birthday() : Date + setage(int) : int +ow ner 1 ownership Vehicle +fleet - colour: Colour «enumeration» Colour black white red Date - day: int - month: int - year: int Car Bike Kolik osob může vlastnit auto? Vlastníkem auta může být osoba, které je alespoň 18 let? context Car inv: self.owner.age >= 18 richta@fel.cvut.cz (ČVUT) OCL a integritní omezení BI-SI1, 2011, Přednáška 9, 18/78
19 Příklad použití OCLII. class Auta Person - name: String - birthdate: Date - /age: int + getname() : String {query} + birthday() : Date + setage(int) : int +ow ner 1 ownership Vehicle +fleet - colour: Colour «enumeration» Colour black white red Date - day: int - month: int - year: int Car Bike Co znamená podmínka? context Person inv: self.age >= 18 richta@fel.cvut.cz (ČVUT) OCL a integritní omezení BI-SI1, 2011, Přednáška 9, 19/78
20 Příklad modelu evidence hypoték class Příklad modelu pro hypotéky skládá se z 1 Nemov itost - označení: string - hodnota: penize +vlastní +je_majetkem 1 - jméno: string - příjmení: string - příjem: peníze Osoba +je_zajištěna 1..* Nemovitost se zde chápe jako jednotka vlatnictví. Pokud nějakou nemovitost vlatsní více osob, rozdělí se na samostatné části dle podílu vlastníků. + žádost(peníze, Nemovitost) : boolean +pro 1 +zajišťuje 1..* Hypotéka - od: datum - do: datum - celková_č ástka: peníze - měsíční_splátka: peníze +má_půjčenu richta@fel.cvut.cz (ČVUT) OCL a integritní omezení BI-SI1, 2011, Přednáška 9, 20/78
21 OCL lze použít pro navigaci class Příklad modelu pro hypotéky skládá se z 1 Chceme označit Nemov itost měsíční splátky +vlastní - označení: string hypoték osoby Q: - hodnota: penize +je_majetkem 1 - jméno: string - příjmení: string - příjem: peníze Osoba Q.má_půjčenu.měsíční_splátka +je_zajištěna 1..* Nemovitost se zde chápe jako jednotka vlatnictví. Pokud nějakou nemovitost vlatsní více osob, rozdělí se na samostatné části dle podílu vlastníků. (je to množina údajů výsledek je typu Bag(peníze) ) + žádost(peníze, Nemovitost) : boolean +pro 1 +zajišťuje 1..* Hypotéka - od: datum - do: datum - celková_č ástka: peníze - měsíční_splátka: peníze +má_půjčenu richta@fel.cvut.cz (ČVUT) OCL a integritní omezení BI-SI1, 2011, Přednáška 9, 21/78
22 Integritní omezení v OCL class Příklad modelu pro hypotéky skládá se z 1 Nemov itost - označení: string - hodnota: penize +vlastní +je_majetkem 1 - jméno: string - příjmení: string - příjem: peníze Osoba +je_zajištěna 1..* +zajišťuje Nemovitost se zde chápe jako jednotka vlatnictví. Pokud nějakou nemovitost vlatsní více osob, rozdělí se na samostatné části dle podílu vlastníků. 1..* Hypotéka - od: datum - do: datum - celková_č ástka: peníze - měsíční_splátka: peníze + žádost(peníze, Nemovitost) : boolean +pro 1 Hypotéka musí být zajištěna nemovitostí, jejíž cena není menší než celková zapůjčená částka (pokud je zajištěna +má_půjčenu jednou nemovitostí). context Hypotéka inv : self.celková_částka <= self.je_zajištěna.hodnota richta@fel.cvut.cz (ČVUT) OCL a integritní omezení BI-SI1, 2011, Přednáška 9, 22/78
23 Typy v OCL předefinované primitivní typy (s obvyklými operacemi): Integer Boolean String Real UnlimitedInteger konstruktory: Collection, Set, Bag, Sequence s operátory: collect, select, reject, forall, exists, iterate, include, count, union, intersect, isempty, notempty, isunique,... richta@fel.cvut.cz (ČVUT) OCL a integritní omezení BI-SI1, 2011, Přednáška 9, 23/78
24 Primitivní typy Typ Boolean Integer Operace and, or, xor, not, implies, if-then-else *, +, -, /, abs(), div(integer), mod(integer), min(integer), max(integer) Real String *, +, -, /, abs(), floor(), round(), max(real), min(real) size(), concat(string), toupper(), tolower(), substring(integer, Integer) (ČVUT) OCL a integritní omezení BI-SI1, 2011, Přednáška 9, 24/78
25 Operace s primitivními typy size() : Integer (počet znaků v řetězci self) substring(lower : Integer, upper : Integer) : String (podřetězec self začínající na pozici lower a končící na pozici upper. Pozice se počítají od 1 do self.size(). pre: 1 <= lower pre: lower <= upper pre: upper <= self.size() concat(s : String) : String (spojení řetězců self a s) post: result.size() = self.size() + s.size() post: result.substring(1, self.size() ) = self post: result.substring(self.size() + 1, result.size() ) = s richta@fel.cvut.cz (ČVUT) OCL a integritní omezení BI-SI1, 2011, Přednáška 9, 25/78
26 Výčtové typy context Person inv: gender = Gender::male richta@fel.cvut.cz (ČVUT) OCL a integritní omezení BI-SI1, 2011, Přednáška 9, 26/78
27 Příklad použití OCLIII. class Auta Person - name: String - birthdate: Date - /age: int + getname() : String {query} + birthday() : Date + setage(int) : int +owner 1 ow nership Vehicle +fleet - colour: Colour «enumeration» Colour black white red Date - day: int - month: int - year: int Car Bike Všechna vozidla osob jsou černá: context Person inv: self.fleet -> forall(v v.colour = Colour::black) richta@fel.cvut.cz (ČVUT) OCL a integritní omezení BI-SI1, 2011, Přednáška 9, 27/78
28 Výrazy v OCL (pokr.) x.vlastní -> isempty() test, zda hodnota typu kolekce nemovitostí je prázdná x.vlastní.hodnota kolekce hodnot typu peníze představující cenu nemovitostí, které objekt x vlastní x.vlastní.hodnota -> sum() cena nemovitostí, které objekt x vlastní, spočítaná jako součet hodnot jednotlivých nemovitostí class Pøíklad modelu pro hypotéky skládá se z 1 Nemovitost - oznaèení: string - hodnota: penize +vlastní +je_majetkem 1 - jméno: string - pøíjmení: string - pøíjem: peníze Osoba +je_zajištìna 1..* + žádost(peníze, Nemovitost) : boolean Nemovitost se zde chápe jako richta@fel.cvut.cz (ČVUT) OCL a integritní omezení BI-SI1, 2011, Přednáška 9, 28/78 jednotka vlatnictví. Pokud nějakou +pro 1
29 Vytváření kolekcí Set {2, 4, 1, 5, 7, 13, 11, 17 } OrderedSet {1, 2, 3, 5, 7, 11, 13, 17 } Sequence {1, 2, 3, 5, 7, 11, 13, 17 } Bag {1, 2, 3, 2, 1} richta@fel.cvut.cz (ČVUT) OCL a integritní omezení BI-SI1, 2011, Přednáška 9, 29/78
30 Pro všechny objekty jsou definovány metody: Typ Operace oclistypeof(t : OclType) : Boolean ocliskindof(t : OclType) : Boolean oclinstate(s : OclState) : Boolean oclisnew() : Boolean oclastype(t : OclType) : instance of OclType richta@fel.cvut.cz (ČVUT) OCL a integritní omezení BI-SI1, 2011, Přednáška 9, 30/78
31 Kolekce Typ Collection Operace ->size(), ->includes(object), ->includesall(collection), ->excludes(object), ->excludesall(collection), ->count(object), ->isempty(), ->notempty(), ->sum(), ->exists(expression), ->forall(expression), ->isunique(expression), ->sortedby(expression), ->iterate(expression), ->any(expression), ->one(expression) (ČVUT) OCL a integritní omezení BI-SI1, 2011, Přednáška 9, 31/78
32 Příklad použití OCLIV. class Auta Person - name: String - birthdate: Date - /age: int + getname() : String {query} + birthday() : Date + setage(int) : int +ow ner 1 ownership Vehicle +fleet - colour: Colour «enumeration» Colour black white red Date - day: int - month: int - year: int Car Bike Nikdo nemůže vlastnit více než 3 vozidla context Person inv: self.fleet -> size <= 3 nebo změníme násobnost v diagramu to je ale statické, nemůže se to dynamicky měnit. richta@fel.cvut.cz (ČVUT) OCL a integritní omezení BI-SI1, 2011, Přednáška 9, 32/78
33 Kolekce typu Set Typ Collection::Set Operace ->union(set), ->union(bag), ->intersection(set), ->intersection(bag), ->including(object), ->excluding(object), ->symmetricdifference(set), ->select(expression), ->reject(expression), ->collect(expression), ->count(object), ->assequence(), ->asbag() (ČVUT) OCL a integritní omezení BI-SI1, 2011, Přednáška 9, 33/78
34 Kolekce typu Bag Typ Collection::Bag Operace ->union(bag), ->union(set), ->intersection(bag), ->intersection(set), ->including(object), ->excluding(object), ->symmetricdifference(set), ->select(expression), ->reject(expression), ->collect(expression), ->count(object), ->assequence(), ->asset() (ČVUT) OCL a integritní omezení BI-SI1, 2011, Přednáška 9, 34/78
35 Kolekce typu Sequence Typ Collection::Sequence Operace ->union(bag), ->union(set), ->intersection(bag), ->intersection(set), ->including(object), ->excluding(object), ->symmetricdifference(set), ->select(expression), ->reject(expression), ->collect(expression), ->count(object), ->assequence(), ->asset() (ČVUT) OCL a integritní omezení BI-SI1, 2011, Přednáška 9, 35/78
36 Přesnější vyjádření IO class Příklad modelu pro hypotéky skládá se z 1 Nemov itost - označení: string - hodnota: penize +vlastní +je_majetkem 1 - jméno: string - příjmení: string - příjem: peníze Osoba +je_zajištěna 1..* + žádost(peníze, Nemovitost) : boolean Hypotéka musí být zajištěna +pro 1 Nemovitost se zde chápe jako nemovitostmi, jejichž součet jednotka vlatnictví. Pokud nějakou nemovitost vlatsní více osob, rozdělí cen není menší než celková se na samostatné části dle podílu vlastníků. zapůjčená částka. +zajišťuje 1..* Hypotéka - od: datum - do: datum - celková_č ástka: peníze - měsíční_splátka: peníze +má_půjčenu context Hypotéka inv : self. celková_částka <= self. je_zajištěna.hodnota -> sum() Y36SIN - Jazyk OCL richta@fel.cvut.cz (ČVUT) OCL a integritní omezení BI-SI1, 2011, Přednáška 9, 36/78 36
37 A obráceně class Příklad modelu pro hypotéky skládá se z 1 Nemov itost - označení: string - hodnota: penize +vlastní +je_majetkem 1 - jméno: string - příjmení: string - příjem: peníze Osoba +je_zajištěna 1..* +zajišťuje Nemovitost se zde chápe jako jednotka vlatnictví. Pokud nějakou nemovitost vlatsní více osob, rozdělí se na samostatné části dle podílu vlastníků. 1..* Hypotéka - od: datum - do: datum - celková_č ástka: peníze - měsíční_splátka: peníze + žádost(peníze, Nemovitost) : boolean +má_půjčenu +pro 1 Nemovitost může zajišťovat pouze tolik hypoték, jejichž součet celkových částek není větší, než cena nemovitosti. context Nemovitost inv : self.zajišťuje.celková_částka -> sum() <= self.hodnota Richta: NSWI041 - Jazyk OCL 37 richta@fel.cvut.cz (ČVUT) OCL a integritní omezení BI-SI1, 2011, Přednáška 9, 37/78
38 object Hypotéky bez hranic Důležitá podmínka class Příklad modelu pro hypotéky H-123 :Hypotéka Karlštejn :Nemovitost pro Josef :Osoba zajištěna? vlastní Bouda :Nemovitost skládá se z 1 Nemov itost - označení: string - hodnota: penize +vlastní +je_majetkem 1 - jméno: string - příjmení: string - příjem: peníze Osoba +je_zajištěna 1..* +zajišťuje Nemovitost se zde chápe jako jednotka vlatnictví. Pokud nějakou nemovitost vlatsní více osob, rozdělí se na samostatné části dle podílu vlastníků. 1..* Hypotéka - od: datum - do: datum - celková_č ástka: peníze - měsíční_splátka: peníze + žádost(peníze, Nemovitost) : boolean +má_půjčenu +pro 1 Hypotéky osoby mohou být zajištěny pouze nemovitostmi, které tato osoba vlastní. context Hypotéka inv : self.je_zajištěna.je_majetkem = self.pro Richta: NSWI041 - Jazyk OCL 38 richta@fel.cvut.cz (ČVUT) OCL a integritní omezení BI-SI1, 2011, Přednáška 9, 38/78
39 Vlastnosti operací v OCL class Příklad modelu pro hypotéky skládá se z 1 Nemov itost +vlastní - označení: string Osoby - mohou hodnota: penize žádat o hypotéky, pokud suma +je_zajištěna 1..* měsíčních splátek osoby nepřesáhne 30% příjmu osoby. +je_majetkem Nemovitost se zde chápe jako jednotka vlatnictví. Pokud nějakou nemovitost vlatsní více osob, rozdělí se na samostatné části dle podílu vlastníků. 1 - jméno: string - příjmení: string - příjem: peníze Osoba + žádost(peníze, Nemovitost) : boolean +pro 1 +zajišťuje 1..* Hypotéka - od: datum - do: datum - celková_č ástka: peníze - měsíční_splátka: peníze +má_půjčenu context Osoba::žádost(částka:peníze,zajištění:Nemovitost) pre : (self.má_půjčenu.měsíční_splátka -> sum()) + částka/počet_splátek <= self.příjem * 0.3 richta@fel.cvut.cz (ČVUT) OCL a integritní omezení BI-SI1, 2011, Přednáška 9, 39/78 39
40 Typická vlastnost hierarchie class Příklad modelu pro hypotéky skládá se z 1 Nemov itost - označení: string - hodnota: penize +vlastní +je_majetkem 1 - jméno: string - příjmení: string - příjem: peníze Osoba +je_zajištěna 1..* Nemovitost se zde chápe jako jednotka vlatnictví. Pokud nějakou nemovitost vlatsní více osob, rozdělí se na samostatné části dle podílu vlastníků. + žádost(peníze, Nemovitost) : boolean +pro 1 Nemovitost se nemůže skládat sama ze sebe. +zajišťuje 1..* Hypotéka - od: datum - do: datum - celková_č ástka: peníze - měsíční_splátka: peníze +má_půjčenu context Nemovitost inv : not (self.skládá_se_z iselement(self)) richta@fel.cvut.cz (ČVUT) OCL a integritní omezení BI-SI1, 2011, Přednáška 9, 40/78
41 Příklad použití OCLV. class Auta Person - name: String - birthdate: Date - /age: int + getname() : String {query} + birthday() : Date + setage(int) : int +ow ner 1 ownership Vehicle +fleet - colour: Colour «enumeration» Colour black white red Date - day: int - month: int - year: int Car Bike Nikdo nevlastní víc než 3 černá vozidla: context Person inv: self.fleet -> select(v v.colour = Colour::black)-> size <= 3 richta@fel.cvut.cz (ČVUT) OCL a integritní omezení BI-SI1, 2011, Přednáška 9, 41/78
42 Příklad použití OCLVI. class Auta Person - name: String - birthdate: Date - /age: int + getname() : String {query} + birthday() : Date + setage(int) : int +owner 1 ownership Vehicle +fleet - colour: Colour «enumeration» Colour black white red Date - day: int - month: int - year: int Car Bike Co znamená podmínka? context Person inv: self.fleet -> iterate(v ; acc:integer=0 if (v.colour = Colour::black) then acc+1 else acc endif) <= 3 richta@fel.cvut.cz (ČVUT) OCL a integritní omezení BI-SI1, 2011, Přednáška 9, 42/78
43 Příklad použití OCLVII. class Auta Person - name: String - birthdate: Date - /age: int + getname() : String {query} + birthday() : Date + setage(int) : int +owner 1 ownership Vehicle +fleet - colour: Colour «enumeration» Colour black white red Date - day: int - month: int - year: int Car Bike Co znamená podmínka? context Person inv: self.fleet -> age < 18 implies forall(v not v.ocliskindof(car)) richta@fel.cvut.cz (ČVUT) OCL a integritní omezení BI-SI1, 2011, Přednáška 9, 43/78
44 Příklad použití OCLVIII. class Auta Person - name: String - birthdate: Date - /age: int + getname() : String {query} + birthday() : Date + setage(int) : int +owner 1 ownership Vehicle +fleet - colour: Colour «enumeration» Colour black white red Date - day: int - month: int - year: int Car Bike Existuje červené auto: context Car inv: Car.allInstances -> exists(c c.colour = Colour::red) richta@fel.cvut.cz (ČVUT) OCL a integritní omezení BI-SI1, 2011, Přednáška 9, 44/78
45 Příklad použití OCLIX. class Auta Person - name: String - birthdate: Date - /age: int + getname() : String {query} + birthday() : Date + setage(int) : int +owner 1 ownership Vehicle +fleet - colour: Colour «enumeration» Colour black white red Date - day: int - month: int - year: int Car Bike Metoda setage třídy Person pro nezáporný argument newage nastaví atribut age: context Person::setAge(newAge:Integer):Integer pre: newage >= 0 post: self.age = newage richta@fel.cvut.cz (ČVUT) OCL a integritní omezení BI-SI1, 2011, Přednáška 9, 45/78
46 Příklad použití OCLX. class Auta Person - name: String - birthdate: Date - /age: int + getname() : String {query} + birthday() : Date + setage(int) : int +owner 1 ownership Vehicle +fleet - colour: Colour «enumeration» Colour black white red Date - day: int - month: int - year: int Car Bike Vyvolání metody birthday třídy Person zvýší věk osoby o 1: context Person::birthday() post: self.age = self.age@pre + 1 richta@fel.cvut.cz (ČVUT) OCL a integritní omezení BI-SI1, 2011, Přednáška 9, 46/78
47 Příklad použití OCLXI. class Auta Person - name: String - birthdate: Date - /age: int + getname() : String {query} + birthday() : Date + setage(int) : int +owner 1 ownership Vehicle +fleet - colour: Colour «enumeration» Colour black white red Date - day: int - month: int - year: int Car Bike Výsledek volání metodygetnametřídy Person je hodnota atributu name: context Person::getName():String post: result = self.name nebo, protože getname je {query}: context Person inv: self.getname = self.name richta@fel.cvut.cz (ČVUT) OCL a integritní omezení BI-SI1, 2011, Přednáška 9, 47/78
48 Úrovně modelů (ČVUT) OCL a integritní omezení BI-SI1, 2011, Přednáška 9, 48/78
49 Příklad využití OCL (metamodeluml) (ČVUT) OCL a integritní omezení BI-SI1, 2011, Přednáška 9, 49/78
50 Příklad podmínky v OCL (metamodel) class Model elementu «metaclass» Element - mustbeowned: boolean +owner 0..1 Element, který musí mít vlastníka, musí mít vlastníka. +ownedelement context Element inv: self.mustbeowned() implies owner->notempty() richta@fel.cvut.cz (ČVUT) OCL a integritní omezení BI-SI1, 2011, Přednáška 9, 50/78
51 Příklad: definice odvozené vlastnosti Elementy, které vlastní daný element (je to odvozené sjednocení). /ownedelement: Element[*] (ČVUT) OCL a integritní omezení BI-SI1, 2011, Přednáška 9, 51/78
52 Příklad: definice odvozené vlastnosti Element, který vlastní tento element (owner) je to odvozené sjednocení (union). /owner: Element [0..1] (ČVUT) OCL a integritní omezení BI-SI1, 2011, Přednáška 9, 52/78
53 Příklad: popis operace v OCL Operace allownedelements() vrací všechny elementy, které přímo či nepřímo vlastní daný element context Element::allOwnedElements(): Set(Element) post: result = ownedelement -> union( ownedelement->collect(e e.allownedelements() ) richta@fel.cvut.cz (ČVUT) OCL a integritní omezení BI-SI1, 2011, Přednáška 9, 53/78
54 Příklad: podmínky v OCL Element nemůže přímo, nebo nepřímo vlastnit sám sebe context Element inv: not self.allownedelements() -> includes(self) richta@fel.cvut.cz (ČVUT) OCL a integritní omezení BI-SI1, 2011, Přednáška 9, 54/78
55 The End (ČVUT) OCL a integritní omezení BI-SI1, 2011, Přednáška 9, 55/78
Jazyk OCL a modelem řízený vývoj 1
Jazyk OCL a modelem řízený vývoj 1 Karel Richta Katedra softwarového inženýrství, MFF UK Malostranské nám.25, 118 00, Praha 1 Tel: 221917316 e-mail: richta@ksi.mff.cuni.cz www: http://www.ksi.mff.cuni.cz/~richta/
Rekonstrukce OCL z SQL *
Rekonstrukce OCL z SQL * Karel RICHTA 1 1 Katedra softwarového inženýrství, MFF UK Praha Malostranské nám. 25, 118 00 Praha karel.richta@mff.cuni.cz Abstrakt. Jednou z často citovaných zkratek poslední
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
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
Databáze I. Přednáška 4
Databáze I Přednáška 4 Definice dat v SQL Definice tabulek CREATE TABLE jméno_tab (jm_atributu typ [integr. omez.], jm_atributu typ [integr. omez.], ); integritní omezení lze dodefinovat později Definice
Databáze 2011/2012 SQL DDL (CREATE/ALTER/DROP TABLE), DML (INSERT/UPDATE/DELETE) RNDr.David Hoksza, Ph.D. http://siret.cz/hoksza
Databáze 2011/2012 SQL DDL (CREATE/ALTER/DROP TABLE), DML (INSERT/UPDATE/DELETE) RNDr.David Hksza, Ph.D. http://siret.cz/hksza Osnva Seznámení s SQL Server Management Studiem (SSMS) Základní architektura
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
2. blok část B Základní syntaxe příkazů SELECT, INSERT, UPDATE, DELETE
2. blok část B Základní syntaxe příkazů SELECT, INSERT, UPDATE, DELETE Studijní cíl Tento blok je věnován základní syntaxi příkazu SELECT, pojmům projekce a restrikce. Stručně zde budou představeny příkazy
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
Vzorové příklady SQL. Tabulka: Kniha CREATE TABLE kniha (id INTEGER, název VARCHAR(50), PRIMARY KEY (id))
Vzorové příklady SQL Tabulka: Kniha CREATE TABLE kniha název VARCHAR(50, PRIMARY KEY (id Tabulka: Autoři CREATE TABLE autoři jméno VARCHAR(10, příjmení VARCHAR(20, titul VARCHAR(7, prostřední VARCHAR(10,
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
Infrastruktura UML. Modelování struktury v UML. Superstruktura UML. Notace objektů. Diagramy objektů
Infrastruktura UML v UML Karel Richta listopad 2011 Richta: B101TMM - v UML 2 Superstruktura UML Směr pohledu na systém dle UML Diagramy popisující strukturu diagramy tříd, objektů, kompozitní struktury,
Informační systémy 2008/2009. Radim Farana. Obsah. Jazyk SQL
4 Vysoká škola báňská Technická univerzita Ostrava Fakulta strojní, Katedra automatizační techniky a řízení 2008/2009 Radim Farana 1 Obsah Jazyk SQL, datové typy, klauzule SELECT, WHERE, a ORDER BY. Doporučená
Transformace konceptuálního modelu na relační
Transformace konceptuálního modelu na relační Michal Valenta Katedra softwarového inženýrství Fakulta informačních technologií České vysoké učení technické v Praze c Michal Valenta, 2016 BI-DBS, LS 2015/16
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ý'
Ú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
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
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ý'
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ý'
Konceptuální modelování a SQL
Konceptuální modelování a SQL přednáška č.? 1/90 Vytváření IS Analýza Návrh Implementace Testování Předání SW Jednotlivé fáze mezi sebou iterují 2/90 Proč modelovat/analyzovat? Standardizované pracovní
DBS Transformace konceptuálního schématu na
DBS Transformace konceptuálního schématu na relační Michal Valenta Katedra softwarového inženýrství FIT České vysoké učení technické v Praze c Michal Valenta, 2012 BI-DBS, ZS 2012/13 https://edux.fit.cvut.cz/courses/bi-dbs/
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,
Gymnázium a Střední odborná škola, Rokycany, Mládežníků 1115
Gymnázium a Střední odborná škola, Rokycany, Mládežníků 1115 Číslo projektu: Číslo šablony: Název materiálu: Ročník: Identifikace materiálu: Jméno autora: Předmět: Tématický celek: Anotace: CZ.1.07/1.5.00/34.0410
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í
Obsah. Předmluva 13 Zpětná vazba od čtenářů 14 Zdrojové kódy ke knize 15 Errata 15
Předmluva 13 Zpětná vazba od čtenářů 14 Zdrojové kódy ke knize 15 Errata 15 KAPITOLA 1 Úvod do programo vání v jazyce C++ 17 Základní pojmy 17 Proměnné a konstanty 18 Typy příkazů 18 IDE integrované vývojové
SQL. strukturovaný dotazovací jazyk. Structured Query Language (SQL)
SQL strukturovaný dotazovací jazyk Structured Query Language (SQL) SQL - historie 1974-75 - IBM - 1.prototyp - SEQUEL od 1979 - do praxe - ORACLE (1979) IBM - SQL/DS (1981), DB/2 (1983) postupně přijímán
Abstraktní třídy, polymorfní struktury
Karel Müller, Josef Vogel (ČVUT FIT) Abstraktní třídy, polymorfní struktury BI-PA2, 2011, Přednáška 9 1/32 Abstraktní třídy, polymorfní struktury Ing. Josef Vogel, CSc Katedra softwarového inženýrství
6. SQL složitější dotazy, QBE
6. SQL složitější dotazy, QBE Příklady : Veškeré příklady budou dotazy nad databází KONTAKTY nebo KNIHOVNA nebo FIRMA Databáze KONTAKTY OSOBA (Id_osoba, Příjmení, Jméno, Narození, Město, Ulice, PSČ) EMAIL
Programování v jazyce JavaScript
Programování v jazyce JavaScript Katedra softwarového inženýrství Fakulta informačních technologií České vysoké učení technické v Praze Pavel Štěpán, 2011 Operátory a příkazy BI-JSC Evropský sociální fond
Návrh a tvorba WWW stránek 1/14. PHP a databáze
Návrh a tvorba WWW stránek 1/14 PHP a databáze nejčastěji MySQL součástí balíčků PHP navíc podporuje standard ODBC PHP nemá žádné šablony pro práci s databází princip práce s databází je stále stejný opakované
Michal Krátký. Úvod do programovacích jazyků (Java), 2006/2007
Úvod do programovacích jazyků (Java) Michal Krátký Katedra informatiky VŠB Technická univerzita Ostrava Úvod do programovacích jazyků (Java), 2006/2007 c 2006 Michal Krátký Úvod do programovacích jazyků
Semestrální práce z DAS2 a WWW
Univerzita Pardubice Fakulta elektrotechniky a informatiky Semestrální práce z DAS2 a WWW Databázová část Matěj Trakal 8.12.2009 Kapitola 1: Obsah KAPITOLA 1: OBSAH 2 KAPITOLA 2: ZÁKLADNÍ CHARAKTERISTIKA
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ý
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í
Gymnázium a Střední odborná škola, Rokycany, Mládežníků 1115
Gymnázium a Střední odborná škola, Rokycany, Mládežníků 1115 Číslo projektu: Číslo šablony: Název materiálu: Ročník: Identifikace materiálu: Jméno autora: Předmět: Tématický celek: Anotace: CZ.1.07/1.5.00/34.0410
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
Platforma Java. Petr Krajča. Katedra informatiky Univerzita Palackého v Olomouci. Petr Krajča (UP) KMI/PJA: Seminář V. 27. říjen, / 15
Platforma Java Objektově relační mapování II Petr Krajča Katedra informatiky Univerzita Palackého v Olomouci Petr Krajča (UP) KMI/PJA: Seminář V. 27. říjen, 2016 1 / 15 Dotazování vyhledání objektu podle
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ů
UNIVERZITA PARDUBICE. Fakulta elektrotechniky a informatiky. Využití jazyka OCL v modelech Enterprise Architect Petr Bludský
UNIVERZITA PARDUBICE Fakulta elektrotechniky a informatiky Využití jazyka OCL v modelech Enterprise Architect Petr Bludský Diplomová práce 2013 Prohlášení autora Prohlašuji, že jsem tuto práci vypracoval
PL/SQL. Jazyk SQL je jazykem deklarativním, který neobsahuje procedurální příkazy jako jsou cykly, podmínky, procedury, funkce, atd.
PL/SQL Jazyk SQL je jazykem deklarativním, který neobsahuje procedurální příkazy jako jsou cykly, podmínky, procedury, funkce, atd. Rozšířením jazyka SQL o proceduralitu od společnosti ORACLE je jazyk
Databázové systémy II. KIV/DB2 LS 2007/2008. Zadání semestrální práce
Databázové systémy 2 Jméno a příjmení: Jan Tichava Osobní číslo: Studijní skupina: čtvrtek, 4 5 Obor: ININ SWIN E-mail: jtichava@students.zcu.cz Databázové systémy II. KIV/DB2 LS 2007/2008 Zadání semestrální
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í
Úvod do programovacích jazyků (Java)
Úvod do programovacích jazyků (Java) Michal Krátký Katedra informatiky VŠB Technická univerzita Ostrava Úvod do programovacích jazyků (Java), 2007/2008 c 2006 2008 Michal Krátký Úvod do programovacích
PODOBÁ SE JAZYKU C S NĚKTERÝMI OMEZENÍMI GLOBÁLNÍ PROMĚNNÉ. NSWI162: Sémantika programů 2
PI JE JEDNODUCHÝ IMPERATIVNÍ PROGRAMOVACÍ JAZYK OBSAHUJE PODPORU ANOTACÍ NEOBSAHUJE NĚKTERÉ TYPICKÉ KONSTRUKTY PROGRAMOVACÍCH JAZYKŮ JAKO JSOU REFERENCE, UKAZATELE, GLOBÁLNÍ PROMĚNNÉ PODOBÁ SE JAZYKU C
Object Constraint Language OCL
Object Constraint Language OCL Tomáš Černý : Object contraint language OCL Intro Flight Airplane type : enum of cargo, passenger flights type : enum of cargo, passenger {context Flight inv: type = #cargo
Preprocesor. Karel Richta a kol. katedra počítačů FEL ČVUT v Praze. Karel Richta, Martin Hořeňovský, Aleš Hrabalík, 2016
Preprocesor Karel Richta a kol. katedra počítačů FEL ČVUT v Praze Karel Richta, Martin Hořeňovský, Aleš Hrabalík, 2016 Programování v C++, A7B36PJC 4/2016, Lekce 9b https://cw.fel.cvut.cz/wiki/courses/a7b36pjc/start
Databázové systémy. Integritní omezení. Vilém Vychodil. V. Vychodil (KMI/DATA1, Přednáška 9) Integritní omezení Databázové systémy 1 / 33
Databázové systémy Integritní omezení Vilém Vychodil KMI/DATA1, Přednáška 9 Databázové systémy V. Vychodil (KMI/DATA1, Přednáška 9) Integritní omezení Databázové systémy 1 / 33 Přednáška 9: Přehled 1 Relační
Návrh - návrhové třídy a vzory
Návrh - návrhové třídy a vzory Ing. Jiří Mlejnek Katedra softwarového inženýrství Fakulta informačních technologií České vysoké učení technické v Praze Jiří Mlejnek, 2011 jiri.mlejnek@fit.cvut.cz Softwarové
- sloupcové integritní omezení
CREATE TABLE - CREATE TABLE = definice tabulek a jejich IO - ALTER TABLE = změna definice schématu - aktualizace - INSERT INTO = vkládání - UPDATE = modifikace - DELETE = mazání CREATE TABLE Základní konstrukce
Obchodní akademie a Jazyková škola s právem státní jazykové zkoušky Jihlava
Obchodní akademie a Jazyková škola s právem státní jazykové zkoušky Jihlava Šablona 32 VY_32_INOVACE_038.ICT.34 Tvorba webových stránek SQL stručné minimum OA a JŠ Jihlava, VY_32_INOVACE_038.ICT.34 Číslo
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í
Konceptuální modelování. Pavel Tyl 21. 3. 2013
Konceptuální modelování Pavel Tyl 21. 3. 2013 Vytváření IS Vytváření IS Analýza Návrh Implementace Testování Předání Jednotlivé fáze mezi sebou iterují Proč modelovat a analyzovat? Standardizované pracovní
Měřící systém se vzdáleným přístupem. Databáze
ČESKÉ VYSOKÉ UČENÍ TECHNICKÉ V PRAZE FAKULTA ELEKTROTECHNICKÁ KATEDRA MĚŘENÍ Měřící systém se vzdáleným přístupem Databáze Jiří Javůrek 2003/2005 0. Obsah 0. Obsah...1 1. Požadavky...2 2. Struktura databáze...2
7. Integrita a bezpečnost dat v DBS
7. Integrita a bezpečnost dat v DBS 7.1. Implementace integritních omezení... 2 7.1.1. Databázové triggery... 5 7.2. Zajištění bezpečnosti dat... 12 7.2.1. Bezpečnostní mechanismy poskytované SŘBD... 13
7. Integrita a bezpečnost dat v DBS
7. Integrita a bezpečnost dat v DBS 7.1. Implementace integritních omezení... 2 7.1.1. Databázové triggery... 5 7.2. Zajištění bezpečnosti dat... 12 7.2.1. Bezpečnostní mechanismy poskytované SŘBD... 13
Jazyk PL/SQL Úvod, blok
Jazyk PL/SQL Úvod, blok 1 Bc. Tomáš Romanovský Procedural Language for Structured Query Language Součást systému Oracle, rozšíření SQL o procedurální rysy Prostředky pro vytváření a spouštění programových
PG 9.5 novinky ve vývoji aplikací
PG 9.5 novinky ve vývoji aplikací P2D2 2016 Antonín Houska 18. února 2016 Část I GROUPING SETS, ROLLUP, CUBE Agregace Seskupení řádků tabulky (joinu) do podmnožin podle určitého kĺıče. Za každou podmnožinu
Jazyk C# a platforma.net
Jazyk C# a platforma.net Katedra softwarového inženýrství Fakulta informačních technologií České vysoké učení technické v Praze Pavel Štěpán, 2011 Syntaxe jazyka C# - 2. část BI-DNP Evropský sociální fond
Transformace ER SQL. Ing. Michal Valenta PhD. Databázové systémy BI-DBS ZS 2010/11, P edn. 9
Transformace ER SQL Ing. Michal Valenta PhD. Katedra softwarového inºenýrství Fakulta informa ních technologií ƒeské vysoké u ení technické v Praze c Michal Valenta, 2010 Databázové systémy BI-DBS ZS 2010/11,
Datové typy v Javě. Tomáš Pitner, upravil Marek Šabo
Datové typy v Javě Tomáš Pitner, upravil Marek Šabo Úvod k datovým typům v Javě Existují dvě základní kategorie datových typů: primitivní a objektové Primitivní v proměnné je uložena přímo hodnota např.
Ú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
Jazyk SQL slajdy k přednášce NDBI001
Jazyk SQL slajdy k přednášce NDBI001 Jaroslav Pokorný MFF UK, Praha pokorny@ksi.mff.cuni.cz Dotazovací jazyky 1 Přehled SQL92 1) jazyk pro definici dat, 2) interaktivní jazyk pro manipulaci dat, 3) jazyk
Tabulka fotbalové ligy
Semestrální práce na X36DB2 Michal Rezler Jan Zmátlík Tabulka fotbalové ligy a tabulka střelců 8. prosinec 2011 Obsah 1 Zadání....................................................... 3 1.1 Stručný popis.............................................
DBS Konceptuální modelování
DBS Konceptuální modelování Michal Valenta Katedra softwarového inženýrství FIT České vysoké učení technické v Praze Michal.Valenta@fit.cvut.cz c Michal Valenta, 2010 BIVŠ DBS I, ZS 2010/11 https://users.fit.cvut.cz/
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
Sada 1 - PHP. 03. Proměnné, konstanty
S třední škola stavební Jihlava Sada 1 - PHP 03. Proměnné, konstanty Digitální učební materiál projektu: SŠS Jihlava šablony registrační číslo projektu:cz.1.09/1.5.00/34.0284 Šablona: III/2 - inovace a
Databázové modelování. Analýza Návrh konceptuálního schématu
Databázové modelování Analýza Návrh konceptuálního schématu 1 Vytváření IS Analýza Návrh Implementace Testování Předání SW Jednotlivé fáze mezi sebou iterují 2 Proč modelovat/analyzovat? Standardizované
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
A5M33IZS Informační a znalostní systémy. Relační databázová technologie
A5M33IZS Informační a znalostní systémy Relační databázová technologie Přechod z konceptuálního na logický model Entitní typ tabulka Atribut entitního typu sloupec tabulky Vztah: vazba 1:1 a 1:N: Vztah
- znakové konstanty v apostrofech, např. a, +, (znak mezera) - proměnná zabírá 1 byte, obsahuje kód příslušného znaku
Znaky - standardní typ char var Z, W: char; - znakové konstanty v apostrofech, např. a, +, (znak mezera) - proměnná zabírá 1 byte, obsahuje kód příslušného znaku - v TP (často i jinde) se používá kódová
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é
Michal Krátký. Tvorba informačních systémů, 2008/2009. Katedra informatiky VŠB Technická univerzita Ostrava. Tvorba informačních systémů
Tvorba informačních systémů 1/40 Tvorba informačních systémů Michal Krátký Katedra informatiky VŠB Technická univerzita Ostrava Tvorba informačních systémů, 2008/2009 Tvorba informačních systémů 2/40 Úvod
Jazyk SQL 3 - DML, DDL, TCL, DCL
Jazyk SQL 3 - DML, DDL, TCL, DCL Michal Valenta Katedra softwarového inženýrství FIT České vysoké učení technické v Praze c Michal Valenta, 2012 BI-DBS, ZS 2012/13 https://edux.fit.cvut.cz/courses/bi-dbs/
Databáze I. 5. přednáška. Helena Palovská
Databáze I 5. přednáška Helena Palovská palovska@vse.cz SQL jazyk definice dat - - DDL (data definition language) Základní databáze, schemata, tabulky, indexy, constraints, views DATA Databáze/schéma
Kapitola 6: Omezení integrity. Omezení domény
- 6.1 - Omezení domény Referenční integrita Aserce Spouštěče (Triggers) Funkční závislosti Kapitola 6: Omezení integrity Omezení domény Omezení integrity zabraňují poškození databáze; zajišťují, že autorizované
SII - Informatika. 1. Atribut relace, jehož hodnota jednoznačně určuje prvek v jiné relaci, se nazývá:
SII - Informatika Způsob vyhodnocení: Při vyhodnocení budou za nesprávné odpovědi strhnuty body. 1. Atribut relace, jehož hodnota jednoznačně určuje prvek v jiné relaci, se nazývá: a) sekundární klíč b)
Registrační číslo Hodnocení - část A Hodnocení - část B Hodnocení - část A+B
PŘIJÍMACÍ TEST Z INFORMATIKY A MATEMATIKY NAVAZUJÍCÍ MAGISTERSKÉ STUDIUM V OBORU APLIKOVANÁ INFORMATIKA FAKULTA INFORMATIKY A MANAGEMENTU UNIVERZITY HRADEC KRÁLOVÉ ČÁST A Registrační číslo Hodnocení -
ŘÍKÁME, ŽE FUNKCE JE ČÁSTEČNĚ SPRÁVNÁ (PARTIALLY CORRECT), POKUD KDYŽ JE SPLNĚNA PRECONDITION
ŘÍKÁME, ŽE FUNKCE JE ČÁSTEČNĚ SPRÁVNÁ (PARTIALLY CORRECT), POKUD KDYŽ JE SPLNĚNA PRECONDITION FUNKCE PŘI JEJÍM ZAVOLÁNÍ, JEJÍ POSTCONDITION JE SPLNĚNA PŘI NÁVRATU Z FUNKCE (POKUD NASTANE) OBECNĚ FUNKCE
Dotazy v SQL. Výraz relační algebry R1( )[A1,A2,...,Aj] lze zapsat takto: SELECT A1,A2,...,Aj FROM R1 WHERE. Výraz (R1, R2... Rk)( )[A1,A2,...
Jazyk SQL 1 Přehled SQL 1) jazyk pro definici dat (DDL), 2) jazyk pro manipulaci dat (DML), 3) jazyk pro definice pohledů 4) jazyk pro definice IO 5) jazyk pro přiřazení přístupových práv (DCL) 6) řízení
SQL v14. 4D Developer konference. 4D Developer conference 2015 Prague, CZ Celebrating 30 years
SQL v14 4D Developer konference Obsah části SQL Porovnání 4D a SQL Nové příkazy SQL Upravené příkazy SQL Optimalizace SQL SQL v14 porovnání Definice dat - struktury Manipulace s daty Definice dat Vytvoření
Souhrn Apendixu A doporučení VHDL
Fakulta elektrotechniky a informatiky Univerzita Pardubice Souhrn Apendixu A doporučení VHDL Práce ke zkoušce z předmětu Programovatelné logické obvody Jméno: Jiří Paar Datum: 17. 2. 2010 Poznámka k jazyku
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é
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é
Statické proměnné a metody. Tomáš Pitner, upravil Marek Šabo
Statické proměnné a metody Tomáš Pitner, upravil Marek Šabo Úvod Se statickou metodou jsme se setkali už u úplně prvního programu - Hello, world! public class Demo { public static void main(string[] args)
Databázové systémy úvod
Databázové systémy úvod Michal Valenta Katedra softwarového inženýrství Fakulta informačních technologií České vysoké učení technické v Praze c Michal Valenta, 2016 BI-DBS, LS 2015/16 https://edux.fit.cvut.cz/courses/bi-dbs/
Programovací jazyk Pascal
Programovací jazyk Pascal Syntaktická pravidla (syntaxe jazyka) přesná pravidla pro zápis příkazů Sémantická pravidla (sémantika jazyka) pravidla, která každému příkazu přiřadí přesný význam Všechny konstrukce
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:
Skripty základy VB, vestavěné objekty, příklady
Skripty základy VB, vestavěné objekty, příklady Tento dokument popisuje základy VB, vestavěné objekty, jejich metody a vlastnosti. Na závěr jsou uvedeny typické příklady použití. Stav ke dni: 9.12.2006
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
7. přednáška - třídy, objekty třídy objekty atributy tříd metody tříd
7. přednáška - třídy, objekty třídy objekty atributy tříd metody tříd Algoritmizace (Y36ALG), Šumperk - 7. přednáška 1 Třída jako zdroj funkcionality Třída v jazyku Java je programová jednotka tvořená
UML - Unified Modeling Language
UML - Unified Modeling Language Martin Molhanec Katedra elektrotechnologie, ČVUT - Fakulta elektrotechnická, Technická 2, 166 21 PRAHA 6 e-mail: molhanec@fel.cvut.cz Abstrakt UML Unified Modeling Language
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ář
Přehled probírané látky
OOPR_04 1 Přehled probírané látky asociace (relace) mezi třídami popis množiny spojení mezi objekty skládání objektů - upřesněný typ asociace, vazba mezi objekty kompozice objektů (velmi pevná vazba mezi
Západočeská univerzita v Plzni Katedra informatiky a výpočetní techniky. 9. června 2007. krovacek@students.zcu.cz
Databáze čajových sáčků Martina Málková Západočeská univerzita v Plzni Katedra informatiky a výpočetní techniky Databázové systémy 2 9. června 2007 krovacek@students.zcu.cz 1 1 Datová analýza V původním
Dotazovací jazyk SQL I
Dotazovací jazyk SQL I Historický vývoj I IBM - 70. léta - prototyp relačního DBMS - System R 80. léta - základ 2 komerčních DBMS: SQL/DS, DB2 SQL jako standard Standardizační instituce ANSI: American
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
POSTUP PRO VYTVOŘENÍ STRUKTUR PRO UKLÁDÁNÍ RDF DAT V ORACLE
POSTUP PRO VYTVOŘENÍ STRUKTUR PRO UKLÁDÁNÍ RDF DAT V ORACLE Upozornění: Pro práci s RDF Oracle daty je třeba mít nainstalován Oracle Spatial Resource Description Framework (RDF). 1. Vytvoření tabulkového
Relace x vztah (relationship)
Relace x vztah (relationship) Peter Chen, Peter Pin-Shan (March 1976): "The Entity-Relationship Model Toward a Unified View of Data". ACM Transactions on Database Systems 1. E-R diagram v Chennově notaci
Databázové systémy I
2015 Databázové systémy I PROJEKT 2 ČÁST MIROSLAV POKORNÝ Stránka 0 z 21 Zadání Implementujte datový model vytvořený v první části projektu do relační databáze a vytvořte pohledy a uloženou proceduru dle
Model podnikových procesu. Model objektu. Model funkcí. Akce. Proces Objekt (trída) Událost Atribut. Akce. Akce. Funkce
Model podnikových procesu Model objektu Akce Proces Objekt (trída) Událost Atribut Akce Akce Funkce Model funkcí Souvislosti klícových nástroju a pojmu v konceptuálním modelu IS Model podnikových procesu