Datové a procesní modely
učiňte konceptuální model pro IS
Knihkupectvi
[ taky mohou knihy trochu půjčovat ] čiňte
řřešte ešte
pane čiteli paneuučiteli já jábysem bysem sisi zamodeloval zamodeloval
Příklad - E-R model
učiňte konceptuální model pro IS
Knihkupectvi
čiňte
řřešte ešte
pane čiteli paneuučiteli já jábysem bysem sisi zamodeloval zamodeloval
Datové a procesní modely
Škola příkladem
Datové a procesní modely
Milí ímaje Milí studenti studenti -- studentky studentky nevyj nevyjímaje zatrenujme -R modelov ání. zatrenujme sisi EE-R modelování. Navrhn ěte Enity ěji ii atributy ] pro Navrhněte Enity aa vztahy vztahy [a [a pozd později atributy] pro Knihkupectví
[i[imal á ppůjčovna] ůjčovna] malá
3
Škola příkladem
Datové a procesní modely
Knihkupectví
E-R model Autor Autor
Knihkupectví NazevKnihy NazevKnihy
Kniha Kniha
Vydání Vydání
Výtisk Výtisk
Vydavatel Vydavatel ABC ABC
4
Knihkupectví
[knihovna-půjčovna]
Datové a procesní modely
co je toto Kniha
Kniha
Kniha Kniha
Titul Titul
Vydání Vydání
Vydání Vydání
Vytisk Vytisk
Vytisk Vytisk
m írné tajemstv í projektov ání jest mírné tajemství projektování jest jednoduch é jednoduché vvěci ěci spr ávně pojmenovat správně pojmenovat
[knihovna-půjčovna]
Knihkupectví
Kniha
Titul
Nazev Kategorie
Titul Titul
Datové a procesní modely
TitulAutor
Titul Autor
Vydání Vydání Vydani
Vytisk Vytisk
PK
Vydavatel
Isbn Titul Vydavatel RokVydani PocStran Cena
Vytisk PK
IdVytisk
FK1
Vydani Stav (Isbn)
Jmeno ....
Autor
Jmeno ...
[knihovna-půjčovna]
Knihkupectví
Kniha
Titul
Nazev Kategorie
Titul Titul
Datové a procesní modely
TitulAutor
Titul Autor
Vydání Vydání
aaco je to pane uučiteli čiteli za tajnost co je to pane za tajnost Vytisk Vydani
PK
Vytisk
Titul Vydavatel RokVydani PocStran Cena
ISBN ISBN ??
Vydavatel
Isbn
Vytisk PK
IdVytisk
FK1
Vydani Stav (Isbn)
Jmeno ....
Autor
Jmeno ...
ISBN
Datové a procesní modely
International Standard Book Number
mezinárodní standardní číslo knihy
jednoznačný anumerický kód - knižního vydání
identifikace vydání !!! - ne knihy
1967 - britské knihkupectví W H Stmith počítačový systém
SNB [Standard Book Nymbering] - 9 cifer
1970 ISO převzalo
ISBN - začátek kódu označení oblasti [0 - anglicky mluvící]
10 cifer - 9 významových + 10 kontrolní
ISBN
Datové a procesní modely
od 1.1.2007 kód rozšířen na 13 cifer - znaků
ISBN 13 - stejnou strukturu jako čarový kód EAN 13
I. skupina 3 znaky
978 knihy
979 hudebniny
odpovídá standardu GS1
ISBN - čarový kód
II. skupina ISBN -
označení země či regionu
zeměpisného či jazykového
Datové a procesní modely
0, 1 anglicky mluvicí země 2 3
francouzky němčina
4 5
japonština čínština
80
Česko+Slovensko
III skupina [max 7 míst] - vydavatel
úřad regionu - úřad při národní knihovně ČR
IV skupina [max 6 cifer] vydání určuje vydavatel
V skupina - 1 cifra kontrolní
ISBN - čarový kód
II. skupina ISBN -
označení země či regionu
zeměpisného či jazykového
Datové a procesní modely
0, 1 anglicky mluvicí země 2 3
francouzky němčina
4 5
japonština čínština
978 - Region - Vydavatel - VydáníVydavatele - KontrCifr 80 Česko+Slovensko
III skupina [max 7 míst] - vydavatel úřad regionu - úřad při národní knihovně ČR
IV-skupina 6 cifer] vydání určuje vydavatel - KontrCifr 979 Region[max - Vydavatel - VydáníVydavatele
V skupina - 1 cifra kontrolní
Datové a procesní modely
aa zas ěco jiné ého jin zas nněco jiného
Databáze
[databázový systém DBS]
Datové a procesní modely
uspořádaná množina [v DB definovaných] informací
spolu s SW programem pro přístup a manipulaci s daty
Struktura dat a technika přístupu k datům
databázový model DB
Databázové modely
Hierarchická Síťová
Relační
Objektová Objektově relační
[typy databází]
Hierarchická databáze
Datové a procesní modely
Auto
Ručka
Motor
Karoserie
Dveře Levé
Dveře Pravé
Okno
Podvozek
Zámek
data jsou organizována do stromové struktury
každý záznam je uzlem ve stromové struktuře
vzájemný vztah mezi záznamy označujeme - rodič a potomek
Hierarchická databáze
Datové a procesní modely
Rodič Auto
Potomci Ručka
Motor
Karoserie
Dveře Levé
Dveře Pravé
Okno
Podvozek
Zámek
data jsou organizována do stromové struktury
každý záznam je uzlem ve stromové struktuře
vzájemný vztah mezi záznamy označujeme - rodič a potomek
rodič má 0 .. N potomků
potomek má právě jednoho rodiče
Hierarchická databáze
Datové a procesní modely
Auto
Ručka
Motor
Karoserie
Dveře Levé
Dveře Pravé
Okno
Podvozek
Zámek
Možné operace
najít určitou součástku dle čísla (levé dveře)
posunout se směrem dolů na prvního potomka (ručka)
posunout se směrem nahoru na rodiče (karoserie)
posunout se směrem do boku na sourozence (dveře pravé)
Hierarchická databáze
Datové a procesní modely
Auto
Ručka
Motor
Karoserie
Dveře Levé
Dveře Pravé
Okno
Podvozek
Zámek
ww50 111
500 11AA
Bilá
... ww80 222
Bílé
...
Světlé
Bílé 800 11BB
Modrá
Modré
Modré
....
...
Tmavé
...
....
Hierarchická databáze
Datové a procesní modely
Auto
Ručka
Motor
Karoserie
Dveře Levé
Dveře Pravé
Okno
Podvozek
Zámek
ww50 111
500 11AA
Bilá
... ww80 222
Bílé
...
Světlé
Bílé 800 11BB
Modrá
Modré
Modré
....
...
Tmavé
...
....
Hierarchická databáze Auto
Vhodné Vhodné pou ítí?? použžítí
Ručka
Datové a procesní modely
Motor
Karoserie
Dveře Levé
Dveře Pravé
Okno
Podvozek
Zámek
Kusovník produktu přirozená stromová struktura
vyhledávání dat - navigace mezi záznamy
po jednom na všechny strany jednoduchá struktura
výborný výkon uspořádání Rodič-Potomek
Hierarchický model
Datové a procesní modely Auto
data jsou organizována do stromové struktury
každý záznam je uzlem ve stromové struktuře
vzájemný vztah mezi záznamy označujeme
Motor
Karoserie
Dveře Levé
Dveře Pravé
- rodič a potomek
struktura záznamů definována ukazateli (pointery)
ukazatelem je fyzická adresa závislého záznamu
záznam (nadřazený) může mít 1..více potomků
záznam (podřízený) má jednoho rodiče
neustaven žádný standard
IMS (IBM) - nejznámější produkt
Podvozek
Síťová databáze
Datové a procesní modely
Hierarchická DB nevyhovuje: ) když data mají složitější strukturu
) ) )
zvláště, když se jedná o t.zv. vatahy N:M př: spojení obvjednávky se zákazníkem, prodejcem a výrobkem. (Objednávka má 3 rodiče)
Zák 3 Zák 2
Zákazníci
Prodejci
Výrobky
Zák 1
Prod ZZ
Výr CC
Prod YY Prod XX
Výr BB Výr AA
Obj 3 (Z 3, P ZZ, V CC)
Objednávky
Obj 2 (Z 1,P XX,V AA)
ZakObj
Obj 1 (Z 1, P YY, V CC)
ProObj VyrObj
Objednávka má několik vztahů k rodičům - sady Možné operace: ) najít určitý záznam přímo dle klíče (číslo zákazníka)
) ) )
posunout se směrem dolů na prvního potomka v sadě (Zak-Obj) tj první objednávku daného zákazníka posunout se v sadě stranou (druhá objednávka tohoto zákazníka) posunout se nahoru v jiné sadě (Prod-Obj) na prodejce teto objednávky
Síťový model
zobecnění hierarchického modelu
Datové a procesní modely Zákazníci
Prodejci
Výrobky
Objednávky
vztah mezi rodičovským záznamem a potomkem - ukazatel
potomek může mít několik rodičů Ê
učástní se několika vztahů
flexibilnější (model)
vyšší složitost
velmi nákladná údržba modelu
1972 standardizován (DBTG) v rámci CODASYL
IDMS - nejznámější produkt (na různých počítačích)
Vztah M:N
Datové a procesní modely
Hierarchické, Síťové DB
Datové a procesní modely Zákazníci
Prodejci
Výrobky
Objednávky Auto
Motor
Karoseri e
Dveře Levé
Dveře Pravé
teorie teorie ii technologie technologie DB DB -- programátoři, programátoři, informatici informatici
do do DB DB oblasti oblasti vstupuje vstupuje genius genius
algebraik algebraik Ted TedCodd Codd
Podvoze k
Edgar Frank "Ted" Codd 1923 - 2003 Narozen: Zemřel:
1923 2003
Zaměstnán:
IBM
Datové a procesní modely
1970 "A Relational Model of Data for Large Shared Data Banks" 1973 začátek projektu SYSTEM R 1985 12 Coddových pravidel pro RDB
Zaměstnanec ZaměstnanecIBM IBM IBM IBMse sepřihodilo přihodilozlaté zlatévejce vejce nepochopila nepochopilato to [nevšimli [nevšimlisi] si] ÊÊ intelektuální intelektuálníkuriozita kuriozita--nerealizovatelná nerealizovatelná konkurence konkurencetehdejšího tehdejšíhoIBM IBMDB DB--IMS IMS zbohaltli Oracle) Oracle zbohaltlijiní jiní((Oracle)
ÊÊ
Relační databáze
Datové a procesní modely
1970 Ted Codd A Relational Model of Data for Large Shared Data Banks
1972 University of California at Berkeley
1974 IBM - začátek Systém/R
1974 První publikace dotazovacího jazyka SEQUEL
1978 Testy Systém/R
1979 první komerční systém ORACLE
1981 INGRES
1981 IBM SQL/DS
1982 ANSI zahajuje standardizaci
1983 IBM ohlášení DB2
(INGRES)
začíná
(Larry Ellison, System-R) (1996->PostgreSQL )
SQL - DB
Relační model DB
Datové a procesní modely
Coddův teorém
Coddův relační kalkul Ê Ê
matematický aparátu relačních množin predikátová logiky
množina
potřeba množinu popsat
uvedení seznamu jejích prvků
určit vlastnost platnou pro všechny prvky - předpis objekt x
P(x)
{x | P(x) } 27
Relační model DB objekt objekt xx
Datové a procesní modely
P(x) P(x)
{x {x || P(x) P(x) }}
{x {x || xx kladné kladné číslo číslo menší menší než než 4} 4}
true true false false
{1,2,3} {1,2,3} {x {x celé celé číslo číslo || 00 < < xx < < 4} 4} objekt objekt xx
uspořádaná uspořádaná n-tice n-tice
(x ,..., xxNN)) (x11,, xx22,, xx33,...,
Pragmatická definice relační databáze
databáze
všechna data uspořádána do tabulek 28
12 pravidel Teda Codda
Datové a procesní modely
Codd's Codd'sTwelve TwelveCommandments Commandments 0. 0.pravidlo pravidlo 1. 1.pravidlo pravidlo 2. 2.pravidlo pravidlo 3. 3.pravidlo pravidlo 4. 4.pravidlo pravidlo 5. 5.pravidlo pravidlo 6. 6.pravidlo pravidlo 7. 7.pravidlo pravidlo 8. 8.pravidlo pravidlo 9. 9.pravidlo pravidlo 10. 10.pravidlo pravidlo 11. 11.pravidlo pravidlo 12. 12.pravidlo pravidlo
to ěch pravidel šak vvšak šak 13 čiteli tottěch pravidel je je vvšak 13 !!!!!!!, !!!!!!!, pane paneuučiteli 29
Relační DB
Datové a procesní modely
E-R model Osoba Osoba Místnost Místnost
Auto Auto
Budova Budova
Kniha Kniha
Mesto Mesto
Ulice Ulice
Nástroj Nástroj
Osoba
Auto
Budova
Kniha
Místnost
Mesto
Ulice
Nástroj
30
Relační DB
Datové a procesní modely
E-R model Osoba Osoba Místnost Místnost
Auto Auto
Budova Budova
Kniha Kniha
Mesto Mesto
Ulice Ulice
Nástroj Nástroj
Osoba
Auto
Budova
Kniha
Místnost
Mesto
Ulice
Nástroj
31
Základy RDBS
Datové a procesní modely
RELAČNÍ DATA BASE
□□□
Re álný sv ět Reálný svět
Osoba
Firma
Stat
Adresa
Komodita
Základy RDBS
Datové a procesní modely
RELAČNÍ DATA BASE
□□□
SŘDB databázový stroj
Re álný sv ět Reálný svět
Osoba
Firma
Stat
Relační DB
Adresa
Komodita
Základy RDBS
Datové a procesní modely
RELAČNÍ DATA BASE
□□□
SŘDB databázový stroj
každý objekt reálného světa Ê
je modelován jako tabulka
Re álný sv ět Reálný svět
všechna data DB Ê
jsou ve tvaru tabulek
Osoba
Firma
Stat
Adresa
Komodita
Základy RDBS
Datové a procesní modely
RELAČNÍ DATA BASE
□□□
SŘDB databázový stroj
každý objekt reálného světa Ê
je modelován jako tabulka
Katalog- Popis dat
Osoba Re álný sv ět Reálný svět Osoba popis
všechna data v DB Ê
jsou ve tvaru tabulek
Osoba
Firma
Stat
Adresa
Komodita
Základy RDBS
Datové a procesní modely
RELAČNÍ DATA BASE
□□□
SŘDB databázový stroj
každý objekt reálného světa Ê
je modelován jako tabulka
Katalog- Popis dat
Firma Re álný sv ět Reálný svět Firma popis
všechna data v DB Ê
jsou ve tvaru tabulek
Osoba
Firma
Stat
Adresa
Komodita
Adresa Adresa popis
Základy RDBS
Datové a procesní modely
RELAČNÍ DATA BASE
□□□
SŘDB databázový stroj
jména tabulek musí být unikátní
dvě různé tabulky nemohou mít stejné jméno
Katalog- Popis dat
Re álný sv ět Reálný svět
Osoba
Firma
Stat
Adresa
Komodita
Datové a procesní modely
Pepa Pepa
PEPRO Komponenty Policy Advice to Ministers & Planning
Capability Management
Advice Availability
Advice Technology Awareness
Technology Capability in Supplies
Innovative Solutions
Organizování výzkumných přírůstků
[dstl]
QinetiQ
Industry
Universities
Datové a procesní modely
ale ž se átíme kk PEPOvi ne vr ale než než se vrá vrátíme PEPOvi
trochu ání vv DB trochu o o programov programování DB (o (o obsluze obsluze DB) DB)
Povely - co to je ? Create Create Schema Schema mff_Skola; mff_Skola; Create Create Table Table ); );
Kamarad( Kamarad( Jmeno Jmeno char char (10), (10), RokNar RokNar int int
Insert Insert Into Into Kamarad Kamarad Values('Pepa',1990); Values('Pepa',1990); Insert Insert Into Into Kamarad Kamarad Values('Jana' Values('Jana' ,1986); ,1986);
Datové a procesní modely
DELETE DELETE WHERE WHERE
FROM FROM Kamarad Kamarad Jmeno="Pepa"; Jmeno="Pepa";
Update Update Kamarad Kamarad SET SET RokNar=1986 RokNar=1986 WHERE WHERE Jmeno="Jana"; Jmeno="Jana"; ALTER Kamarad ALTER TABLE TABLE Kamarad ADD ADD COLUMN COLUMN Telef Telef VarChar(20); VarChar(20);
Insert Insert Into Into Kamarad Kamarad Values('Joe' Values('Joe' ,1985); ,1985); DROP DROP TABLE TABLE Kamarad; Kamarad;
ty typovely povely CREATE, CREATE,DROP, DROP,DELETE, DELETE,INSERT INSERTatd atd co coto toje je?? ?? kam íše kamse seto toppíše 40
Povely - co to je ? PředRelační Hierarchické Hierarchické Síťové Síťové
tytypovely povely Datové a procesní modely CREATE, CREATE,DROP, DROP,DELETE, DELETE,INSERT INSERTatd atd co to je ?? co to je ?? kam íše e ppíše kamse setotopíš
jednoduchý jednoduchýdotaz dotaz==
napsat žitý program napsatslo složitý program naviga ční ppřístup řístup kkjednomu áznamu navigační jednomuzzáznamu
od ého zzáznamu áznamu bběhání ěhání po odnalezen nalezeného postromu stromu
41
Povely - co to je ? PředRelační Hierarchické Hierarchické Síťové Síťové
tytypovely povely Datové a procesní modely CREATE, CREATE,DROP, DROP,DELETE, DELETE,INSERT INSERTatd atd co to je ?? co to je ?? kam íše e ppíše kamse setotopíš
jednoduchý jednoduchýdotaz dotaz== napsat napsatsložitý složitýprogram program navigační navigačnípřístup přístupkkjednomu jednomuzáznamu záznamu od odnalezeného nalezenéhozáznamu záznamuběhání běhánípo postromu stromu
datov á nez ávislost datová nezávislost navigace ávislá na ávrhu stromu navigacevvDB DB --zcela zcelazzávislá nannávrhu stromu
42
Povely - co to je ? PředRelační Hierarchické Hierarchické Síťové Síťové
tytypovely povely Datové a procesní modely CREATE, CREATE,DROP, DROP,DELETE, DELETE,INSERT INSERTatd atd co to je ?? co to je ?? kam íše e ppíše kamse setotopíš
jednoduchý jednoduchýdotaz dotaz== napsat napsatsložitý složitýprogram program navigační navigačnípřístup přístupkkjednomu jednomuzáznamu záznamu od odnalezeného nalezenéhozáznamu záznamuběhání běhánípo postromu stromu datová datovánezávislost nezávislost navigace navigacevvDB DB --zcela zcelazávislá závislána nanávrhu návrhustromu stromu
teoretický áklad teoretickýzzáklad
žžádný ádný [v šeobecně ppřijímaný] řijímaný] [všeobecně
43
Povely - co to je ? PředRelační Hierarchické Hierarchické Síťové Síťové
tytypovely povely Datové a procesní modely CREATE, CREATE,DROP, DROP,DELETE, DELETE,INSERT INSERTatd atd co to je ?? co to je ?? kam íše e ppíše kamse setotopíš
jednoduchý jednoduchýdotaz dotaz== napsat napsatsložitý složitýprogram program navigační navigačnípřístup přístupkkjednomu jednomuzáznamu záznamu od odnalezeného nalezenéhozáznamu záznamuběhání běhánípo postromu stromu datová datovánezávislost nezávislost navigace navigacevvDB DB --zcela zcelazávislá závislána nanávrhu návrhustromu stromu teoretický teoretickýzáklad základ žádný žádný[všeobecně [všeobecněpřijímaný] přijímaný]
dotazovac í [[manipulační] manipulační] jazyk dotazovací jazyk žžádný ádný
44
Povely - co to je ? PředRelační Hierarchické Hierarchické Síťové Síťové
tytypovely povely Datové a procesní modely CREATE, CREATE,DROP, DROP,DELETE, DELETE,INSERT INSERTatd atd co to je ?? co to je ?? kam íše e ppíše kamse setotopíš
jednoduchý jednoduchýdotaz dotaz== napsat napsatsložitý složitýprogram program navigační navigačnípřístup přístupkkjednomu jednomuzáznamu záznamu od odnalezeného nalezenéhozáznamu záznamuběhání běhánípo postromu stromu datová datovánezávislost nezávislost navigace navigacevvDB DB --zcela zcelazávislá závislána nanávrhu návrhustromu stromu teoretický teoretickýzáklad základ žádný žádný[všeobecně [všeobecněpřijímaný] přijímaný]
dotazovací dotazovací[manipulační] [manipulační]jazyk jazyk žádný žádný
povely tudíž] povely[[tudíž] žžádné ádné
45
Povely - co to je ? PředRelační Hierarchické Hierarchické Síťové Síťové
tytypovely povely Datové a procesní modely CREATE, CREATE,DROP, DROP,DELETE, DELETE,INSERT INSERTatd atd co to je ?? co to je ?? kam íše e ppíše kamse setotopíš
jednoduchý jednoduchýdotaz dotaz== napsat napsatsložitý složitýprogram program navigační navigačnípřístup přístupkkjednomu jednomuzáznamu záznamu od odnalezeného nalezenéhozáznamu záznamuběhání běhánípo postromu stromu datová datovánezávislost nezávislost navigace navigacevvDB DB --zcela zcelazávislá závislána nanávrhu návrhustromu stromu teoretický teoretickýzáklad základ žádný žádný[všeobecně [všeobecněpřijímaný] přijímaný]
dotazovací dotazovací[manipulační] [manipulační]jazyk jazyk žádný žádný
povely povely[tudíž] [tudíž] žádné žádné
realizace každého] dotazu realizace[[každého] dotazu program program 46
Povely - co to je ? PředRelační Hierarchické Hierarchické Síťové Síťové
tytypovely povely Datové a procesní modely CREATE, CREATE,DROP, DROP,DELETE, DELETE,INSERT INSERTatd atd co to je ?? co to je ?? kam íše e ppíše kamse setotopíš
Auto jednoduchý jednoduchýdotaz dotaz== napsat napsatsložitý složitýprogram program
Model
navigační kkjednomu Motor Karoserie Podvozek navigačnípřístup přístup jednomuzáznamu záznamu od odnalezeného nalezenéhozáznamu záznamuběhání běhánípo postromu stromu datová Dveře nezávislost Levé datová nezávislost Dveře Pravé navigace navigacevvDB DB --zcela zcelazávislá závislána nanávrhu návrhustromu stromu A_111
teoretický teoretickýzáklad základ žádný žádný[všeobecně [všeobecněpřijímaný] přijímaný] Mo_111
Ka_111
Po_111
Mo_22
dotazovací dotazovací[manipulační] [manipulační]jazyk jazyk žádný žádný DOTAZ-Zobraz Najdi ssId= DOTAZ-Zobraz NajdiKaroserii Karoserii Id=Ka_22 Ka_22 povely [tudíž] povely [tudíž] Karoserii Ka_22] Ka_22 aanastav Karoserii[[Ka_22] nastavse seve vestromu stromu žádné žádné Čti [Karoserii -> ssdaty ČtiRodiče Rodiče [Karoserii ->Ka_22] Ka_22] datyAuta, Auta, realizace [každého] dotazu realizace [každého] dotazu Čti Dítě LevéDveře [-> Levých a Pravých Čti Dítě LevéDveře [->DL_22] DL_22] Levých a Pravých program program Dveří Čti Dveří ČtiDítě DítěPravéDveře PravéDveře[-> [->DP_22] DP_22] UF ---- Dotaz UF !!! !!! DotazRealizován Realizován DL_111
DP_111
DL_22
A_22 Data
Ka_22
Po_22
DP_22
CALL CALL(.....) (.....) CALL CALL(.....) (.....) CALL CALL(.....) (.....) CALL CALL(.....) (.....) 47
Povely - co to je ? PředRelační Hierarchické Hierarchické Síťové Síťové
tytypovely povely Datové a procesní modely CREATE, CREATE,DROP, DROP,DELETE, DELETE,INSERT INSERTatd atd co to je ?? co to je ?? kam íše e ppíše kamse setotopíš
jednoduchý jednoduchýdotaz dotaz== napsat napsatsložitý složitýprogram program navigační navigačnípřístup přístupkkjednomu jednomuzáznamu záznamu od odnalezeného nalezenéhozáznamu záznamuběhání běhánípo postromu stromu datová datovánezávislost nezávislost navigace navigacevvDB DB --zcela zcelazávislá závislána nanávrhu návrhustromu stromu teoretický teoretickýzáklad základ žádný žádný[všeobecně [všeobecněpřijímaný] přijímaný] Auto
Motor
Dveře Levé
Karoserie
Podvozek
Dveře Pravé
dotazovací dotazovací[manipulační] [manipulační]jazyk jazyk žádný žádný
povely povely[tudíž] [tudíž] žádné žádné
realizace realizace[každého] [každého]dotazu dotazu program program
laik , amat ér, .... laik, amatér, .... nebyl nebylschopen schopenssDB DBspolupracovat spolupracovat
48
Povely - co to je ? PředRelační Hierarchické Hierarchické Síťové Síťové
tytypovely povely Datové a procesní modely CREATE, CREATE,DROP, DROP,DELETE, DELETE,INSERT INSERTatd atd co to je ?? co to je ?? kam íše e ppíše kamse setotopíš
jednoduchý jednoduchýdotaz dotaz== napsat napsatsložitý složitýprogram program navigační navigačnípřístup přístupkkjednomu jednomuzáznamu záznamu od odnalezeného nalezenéhozáznamu záznamuběhání běhánípo postromu stromu datová datovánezávislost nezávislost navigace navigacevvDB DB --zcela zcelazávislá závislána nanávrhu návrhustromu stromu teoretický teoretickýzáklad základ žádný žádný[všeobecně [všeobecněpřijímaný] přijímaný] Auto
Motor
Dveře Levé
Karoserie
Podvozek
Dveře Pravé
dotazovací dotazovací[manipulační] [manipulační]jazyk jazyk žádný žádný
povely povely[tudíž] [tudíž] žádné žádné
realizace realizace[každého] [každého]dotazu dotazu vv začátcích program začátcích relační relační koncepce koncepce program opět přišel opět přišel laik, amatér, .... laik, amatér, .... nebyl nebylschopen schopenssDB DBspolupracovat spolupracovat
49
Jazyk pro ovládání relační DB
Datové a procesní modely
a informatikům - programátorům zatrh tipec Codd není určen pro matematiky nebo programátory
jednoduchý jazyk, pochopitelný lajky jazyk v přirozené a jednoduché angličtině
neprocedurální jazyk
SQL
Povely - co to je ? PředRelační Hierarchické Hierarchické Síťové Síťové
SQL SQL
SELECT SELECT Auto.*, Auto.*, Karoserie.*, Karoserie.*, LDvere.*, LDvere.*, PDvere.* PDvere.* WHERE WHERE IdKaro='Ka_22' IdKaro='Ka_22' AND AND.......; .......;
tytypovely povely Datové a procesní modely CREATE, CREATE,DROP, DROP,DELETE, DELETE,INSERT INSERTatd atd co to je ?? co to je ?? kam íše e ppíše kamse setotopíš
jednoduchý Auto jednoduchýdotaz dotaz== napsat napsatsložitý složitýprogram program
Model
navigační navigačnípřístup přístupkkjednomu jednomuzáznamu záznamu Motor Karoserie Podvozek od odnalezeného nalezenéhozáznamu záznamuběhání běhánípo postromu stromu
datová datovánezávislost nezávislost navigace v DB - zcela závislá na návrhu stromu navigace závislá Dveře Levé v DB - zcela Dveře Pravéna návrhu stromu teoretický teoretickýzáklad základ žádný přijímaný] žádný[všeobecně [všeobecně přijímaný] A_111 A_22 Data dotazovací [manipulační] jazyk dotazovací [manipulační] jazyk Mo_111 Po_111 Ka_111 Mo_22 Ka_22 žádný žádný povely [tudíž] povely [tudíž] DP_111 DL_111 žádné žádné
DL_22
realizace [každého] dotazu
realizace [každého] dotazu Najdi Karoserii Najdi KaroseriissId= Id=Ka_22 Ka_22 program program aanastav nastavse seve vestromu stromu Čti ČtiRodiče Rodiče[Karoserii [Karoserii-> ->Ka_22] Ka_22]
Čti ČtiDítě DítěLevéDveře LevéDveře [-> [->DL_22] DL_22] Čti ČtiDítě DítěPravéDveře PravéDveře[-> [->DP_22] DP_22]
Po_22
DP_22
CALL CALL(.....) (.....) CALL CALL(.....) (.....) CALL CALL(.....) (.....) CALL CALL(.....) (.....)
---- Dotaz DotazRealizován Realizován
51
Povely - co to je ? PředRelační Hierarchické Hierarchické Síťové Síťové
SQL SQL
SELECT SELECT Auto.*, Auto.*, Karoserie.*, Karoserie.*, LDvere.*, LDvere.*, PDvere.* PDvere.* WHERE WHERE IdKaro='Ka_22' IdKaro='Ka_22' AND AND.......; .......;
tytypovely povely Datové a procesní modely CREATE, CREATE,DROP, DROP,DELETE, DELETE,INSERT INSERTatd atd co to je ?? co to je ?? kam íše e ppíše kamse setotopíš
jednoduchý Auto jednoduchýdotaz dotaz== napsat napsatsložitý složitýprogram program
Model
navigační navigačnípřístup přístupkkjednomu jednomuzáznamu záznamu Motor Karoserie Podvozek od odnalezeného nalezenéhozáznamu záznamuběhání běhánípo postromu stromu
datová datovánezávislost nezávislost navigace v DB - zcela závislá na návrhu stromu navigace závislá Dveře Levé v DB - zcela Dveře Pravéna návrhu stromu teoretický teoretickýzáklad základ žádný přijímaný] žádný[všeobecně [všeobecně přijímaný] A_111 A_22 Data dotazovací [manipulační] jazyk dotazovací běhej si po DB jak chce š jazyk běhej[manipulační] si po DB jak chceš Mo_111 Po_111 Ka_111 Mo_22 Ka_22 žádný žádný
dělěj sisito jak chce š dělěj to jak chceš povely povely[tudíž] [tudíž] čti nejdřív tohle a pak zas jinohle čti žádnénejdřív tohle a pak zas jinohle
DL_111
DP_111
DL_22
žádné realizace dotazu já do[každého] toho nebudu realizace [každého] dotazu
mluvit jáKaroserii do toho nebudu mluvit Najdi s Id= Ka_22 Najdi Karoserii s Id= Ka_22 program nechci program nechcise sevvtom tomvůbec vůbecvrtat vrtat aanastav se ve stromu nastav se ve stromu klidně sisito pobíhání zoptimalizuj klidně to pobíhání zoptimalizuj Čti Rodiče [Karoserii Čti Rodiče [Karoserii-> ->Ka_22] Ka_22] kdy ž mi ddáš áš dob řeDL_22] Čti LevéDveře [-> když dobře ČtiDítě Dítěmi LevéDveře [->DL_22]
Čti ČtiDítě DítěPravéDveře PravéDveře[-> [->DP_22] DP_22] ---- Dotaz DotazRealizován Realizován
to to co co chci chci
Po_22
DP_22
CALL CALL(.....) (.....) CALL CALL(.....) (.....) CALL CALL(.....) (.....) CALL CALL(.....) (.....) 52
Povely - co to je ?
PředRelační
tytypovely povely Datové a procesní modely CREATE, CREATE,DROP, DROP,DELETE, DELETE,INSERT INSERTatd atd co to je ?? co to je ?? kam íše e ppíše kamse setotopíš
Auto
Model
Motor
Karoserie
Podvozek
Dveře Levé
Dveře Pravé
Hierarchické Hierarchické Síťové Síťové
A_22 Data
A_111
SQL SQL
SELECT SELECT Auto.*, Auto.*, Karoserie.*, Karoserie.*, LDvere.*, LDvere.*, PDvere.* PDvere.* WHERE WHERE IdKaro='Ka_22' IdKaro='Ka_22' AND AND.......; .......;
Mo_111
Ka_111
DL_111
DP_111
Po_111
Mo_22
Ka_22
DL_22
DP_22
CALL CALL(.....) (.....)
Po_22
Call ...; IF ... ELSE
CALL CALL(.....) (.....) CALL CALL(.....) (.....) CALL CALL(.....) (.....)
END IF; Call ...; IF ... ELSE END IF; 53
Jazyk pro ovládání relační DB
Datové a procesní modely
Codd není určen pro matematiky nebo programátory
jednoduchý jazyk, pochopitelný lajky jazyk v přirozené a jednoduché angličtině
neprocedurální jazyk
SQL
Sequel
Structured Query Language skládá se z povelů
základních povelů je pouze několik
každý povel začíná slovesem
Základy SQL
Datové a procesní modely
požadavek SQL může obsahovat 1 nebo více povelů
povely se oddělují středníkem
samotný povel nemusí být ukončen středníkem povel1 povel1; povel1; povel2 povel1; povel2; povel1; povel2; povel3.................; povelN
;
Základy SQL
nerozlišují se velká a malá písmena povel1 osoba; POVEL2 OSOBA; PoVeL3 OsOba...; POVel_N osoBA
aato ím pro č ?? topros prosím proč iijá ám jáse sept ptám
Datové a procesní modely
Základy SQL
Datové a procesní modely
každý povel začíná (anglickým) slovesem
za slovesem se vyskytují různé klauzule daného povelu
všech povelů je nemnoho ( asi 40)
7 základních povelů
bohatost jazyka je dána Ê různými [možnými] variantami klauzulí
povely jsou děleny do několika skupin
SQL
Datové a procesní modely
Structured Query Language
nástroj pro organizování správu a získávaní dat Ê
uložených v počítačové databázi
průmyslový standard pro počítačové DB jazyky Ê
pokud je to standard, proč je tolik různých verzí ?
nepatří žádné instituci ani jedinci
nezávislý na prodejci (?)
SQL
Structured Query Language
přenositelný mezi počítačovými systémy (?)
komplexní DB jazyk
interaktivní dotazy "ad hoc"
neprocedurální jazyk
programový přístup k databázi
Datové a procesní modely
SQL rozdělení SQL
DDL
Datové a procesní modely
Data Definition Language
Definice a údžba DB objektů
DML
Data Manipulation Language
Manipulace s daty DB
DCL
Data Control Language
Zadávání a ůdržba práv (oprá oprávně vnění)
60
SQL rozdělení SQL
Datové a procesní modely
DDL
Create
Alter
Drop
DML
Insert
Update
Delete
Select
DCL
Grant
Revoke
61
SQL rozdělení SQL
DDL
Datové a procesní modely
Create
Alter
Drop
Insert
Update
Delete
Select
Truncate
Grant
Revoke
Rename
DML
DCL
62
SQL rozdělení SQL
Datové a procesní modely
DDL
Create
Alter
Drop
DML
Insert
Update
Delete
Select
DCL
Grant
Revoke
63
Povely - kam se to píše ?
Datové a procesní modely
ty ílaj po štou typovely povelySQL SQLse sepos posílaj poštou nebo nebojak jakse sedo dote teDB DBdostanou dostanou??
zásadně technologie KLIENT-SERVER
aplikace rozdělena na spolupráci dvou počítačů Ê
počítač SERVERu – na počítači pracuje program SERVERu [DB Serveru] – program poslouchá na určitém portu na zprávu [přerušení]
Ê
počítač Klienta – na počítači pracuje program KLIENTa[DB Klienta] 64
Zadávání povelů SQL
Datové a procesní modely
Požadavek Požadavek SQL SQL
SŘDD
Výsledek Výsledek (data) (data) (chyba) (chyba)
uživatel uživatel[pomocí [pomocíklienta] klienta]zadává zadávápovel povelSQL SQL
--> -->DB DBstroji stroji[server] [server] je-li je-lipovel povelšpatně špatně
DB DBstroj strojoznačí označíchybu chybu
je-li je-lipovel poveldobře dobře je jeproveden proveden++uživatel uživateldostane dostanevýsledky výsledky
Databáze
Zadávání povelů SQL
Datové a procesní modely
Požadavek Požadavek SQL SQL
SŘDD
Databáze
Výsledek Výsledek (data) (data) (chyba) (chyba)
povel povelje jeprověřen prověřen
syntakticky syntakticky ÊÊodpovídá odpovídágramatice gramaticepovelů povelů?? semanticky semanticky ÊÊoslovuje oslovujedatabázi databáziznámé známéobjekty objekty?? ÊÊjsou jsoujména jménatakových takovýchobjektů objektůvvkatalogu kataloguDB DB??
Datové a procesní modely
aa zas ěco jiné ého jin zas nněco jiného
DB stroje [SŘDB] - výrobci
Datové a procesní modely
Placené Placené
Oracle DB2
Neplacené Neplacené
[Ellison 11g] [IBM
9.7]
SQL Server [2008] [MS] Sybase Informix
[dnes IBM]
MySQL
PostgreSQL [Ingres 8.3 9]
Firebird
[5.1 5.5
6.0]
[Interbase Borland] [2.5 3.0-vyvoj]
Oracle
multiplatformní DBS Ê
pokročilé možnosti zpracování dat
Ê
vysoký výkon
Ê
snadná škálovatelnost
jednička mezi profesiolnálními placenými DBS
Lary Ellison - jeden z nejbohatších - 1977
verze 11g
www.oracle.com
www.oracle.cz
Datové a procesní modely
DB2
Datové a procesní modely
objektově-relační DBS
původně pro sálové počítače [mainframe]
mnoho různých platforem HW - OS Ê
různé verze DB pro ruzné HW-OS - nepřehledné označování
Ê
Viper, Viper2, ...
verze 8.2, 9.1
špičková inovace spolupráce DB2- XML
pureXML
www-01.ibm.com/software/data/db2
www.db2.cz
www.ibm.com/cz/cs/
Produkty IBM - DB2
Datové a procesní modely
SQL Server
relační a analytický DBS
[1990-92] Microsoft Access a Microsoft FoxPro Ê
Datové a procesní modely
tintítka, MS nemá žádný konkurenceschopný DBS
1992 SQL SERVER - spolu se Sybase - 4.2
později přestane spolupráce se Sybase
[SQL Server 4.2 , ... 7.0, 2000, 2005, 2008]
SQL Server 2008
http://www.microsoft.com/sqlserver/cs/cz/future-editions.aspx
MySQL
Datové a procesní modely
nejrozšířenější neplacený [Open Source] relační DBS
velmi rychlý pro čtení
1995 Švédská společnost MySQL AB
2008 akvizice Sun + MySQL
2010 leden Oracle koupil Sun Microsystems
verze
5.1
stabilizovaná
5.5
před uvolněním
6.0
ve vývoji
[1 miliarda $]
PostgreSQL
Datové a procesní modely
objektově-relační DBS
free a open source software
globální komunita vývojářů a firem
Linux, Windows
Ingres - University of California, Berkeley [1882]
postIngres
mnoho ocenění [1999, 200, 2002, ..., 2008]
verze 8.3, 8.4, 9.0
www.postgresql.org
www.postgres.cz
příprava -> 9.1
Firebird
FirebirdSQL FirebirdSQL
Datové a procesní modely
multiplatformní relační databáze [linux, windows]
2000 Borland InterBase 6.0 Open Source uvolněn
open source licence nevytvořila se Borland Open Komunita
vyvíjí a spravuje Firebird Foundation prohlížeč Mozila Firebird - Mozila Firefox
ocenění 2007, 2009
Ê
SourceForge Community Choice Award: – Best Project for enterprise
www.firebirdsql.org
groups.google.com/group/firebird_cz/topics
DB stroje [SŘDB] - výrobci
Datové a procesní modely
Placené Placené
Oracle DB2
Neplacené Neplacené
[Ellison 11g] [IBM
9.7]
SQL Server [2008] [MS] Sybase Informix
[dnes IBM]
MySQL
PostgreSQL [Ingres 8.3 9]
Firebird
[5.1 5.5
6.0]
[Interbase Borland] [2.5 3.0-vyvoj]
Řádkový klient Firebird
Datové a procesní modely
77
Klient DB2 [IBM]
Datové a procesní modely
78
Klient DB2 [IBM]
Datové a procesní modely
79
Klient MySQL - Query Browser
Datové a procesní modely
80
Klient MySQL - Query Browser
Datové a procesní modely
81
Klient MySQL - Workbench
Datové a procesní modely
82
Klient MySQL - Workbench
Datové a procesní modely
83
Klient Oracle - SQL Developer
Datové a procesní modely
84
Klient Oracle - SQL Developer
Datové a procesní modely
85
Klient Oracle - Bentic Golden
Datové a procesní modely
86
Klient Oracle - Bentic Golden
Datové a procesní modely
87
Klient PostgreSQL - pgAdmin III
Datové a procesní modely
88
Neplacené verze placených DBS
i velké profesionální DB firmy neplacené verze svých DBS strojů
odpoveď na strategii neplacených DB strojů
Datové a procesní modely
Oracle Oracle
Oracle OracleExpress Express11g 11g
DB2 DB2IBM IBM
DB2 DB2Express-C Express-C 9.7 9.7
SQL SQLServer Server
Microsoft MicrosoftSQL SQLServer ServerExpress Express[SQL [SQLServer Server 2008] 2008]
Sybase Sybase
Adaptive AdaptiveServer Server15.0 15.0 ----Linux Linux
Datové a procesní modely
aa vzhů ůru dovnitř ř vzh dovnit vzhůru dovnitř
SQL
SQL SQL
Datové a procesní modely
DDL
Data Definition Language
Definice a údžba DB objektů Create
Alter
Drop
91
Sql Inside
Datové a procesní modely
Create CreateSchema SchemaNakup; Nakup;
ok ok
Drop Drop Schema SchemaNakup; Nakup;
ok ok
Create CreateSchema Schema1234; 1234;
er
92
Datové a procesní modely
kaž ždé jmé éno ka jm každé jméno m á své é sv má své jmé éno jm jméno