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
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 ...