Relační databáze 1

Transkript

Relační databáze 1
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

Podobné dokumenty

Přehled software

Přehled software strukturovanými informacemi. Data uložená v bance dat se označují jako báze dat, či databáze. Organizace dat je založena na určitém modelu. Je to buď hierarchické uspořádání, nebo síťový model a v ...

Více