datové a procesní modely
TRANSCRIPT
![Page 1: Datové a procesní modely](https://reader034.vdocuments.mx/reader034/viewer/2022042209/62593541dc22ac3d2918606b/html5/thumbnails/1.jpg)
Datové a procesní modely
1
Datové a procesní modely
[ Relační databáze ]
Přednáška 2
Marian Kamenický
Syntea software group a.s.
MFFUK Praha
2019/20
![Page 3: Datové a procesní modely](https://reader034.vdocuments.mx/reader034/viewer/2022042209/62593541dc22ac3d2918606b/html5/thumbnails/3.jpg)
Datové a procesní modely
Roztroušené Soubory
Žádná SW evidence
Krátké opakování
Počátek – doba SW kamenná
Metadada
?
DECLARE 1 VETA,
2 A CHAR(10), 2 B CHAR(20), 2 C DECIMAL
(6,2), ....................
D a t a b á z e
Jednotný sklad Popis dat všech dat metadata
Hierarchická DB
Katalog
SŘDB databázový stroj Auto
Motor Karoserie Podvozek
Dveře Levé
Dveře Pravé
![Page 4: Datové a procesní modely](https://reader034.vdocuments.mx/reader034/viewer/2022042209/62593541dc22ac3d2918606b/html5/thumbnails/4.jpg)
Datové a procesní modely
Roztroušené Soubory
Žádná SW evidence
Krátké opakování
Počátek – doba SW kamenná
Metadada
?
DECLARE 1 VETA,
2 A CHAR(10), 2 B CHAR(20), 2 C DECIMAL
(6,2), ....................
D a t a b á z e
Jednotný sklad Popis dat všech dat metadata
Síťová DB
Katalog
SŘDB databázový stroj
![Page 5: Datové a procesní modely](https://reader034.vdocuments.mx/reader034/viewer/2022042209/62593541dc22ac3d2918606b/html5/thumbnails/5.jpg)
Datové a procesní modely
Roztroušené Soubory
Žádná SW evidence
Krátké opakování
Počátek – doba SW kamenná
Metadada
?
DECLARE 1 VETA,
2 A CHAR(10), 2 B CHAR(20), 2 C DECIMAL
(6,2), ....................
D a t a b á z e
Jednotný sklad Popis dat všech dat metadata
Relační DB
Katalog
SŘDB databázový stroj
Dům Kůň
Muž Auto
SQL
neprocedurální
![Page 6: Datové a procesní modely](https://reader034.vdocuments.mx/reader034/viewer/2022042209/62593541dc22ac3d2918606b/html5/thumbnails/6.jpg)
Datové a procesní modely
6
DDL
DML
DCL
SQL
SQL rozdělení
Data Definition Language
Definice a údžba DB objektů
Data Manipulation Language
Manipulace s daty DB
Data Control Language
Zadávání a ůdržba práv (oprávnění)
![Page 7: Datové a procesní modely](https://reader034.vdocuments.mx/reader034/viewer/2022042209/62593541dc22ac3d2918606b/html5/thumbnails/7.jpg)
Datové a procesní modely
7
DDL
DML
DCL
SQL Alter
Update
Revoke
Drop Create
Delete
Select
Insert
Grant
SQL rozdělení
![Page 8: Datové a procesní modely](https://reader034.vdocuments.mx/reader034/viewer/2022042209/62593541dc22ac3d2918606b/html5/thumbnails/8.jpg)
Datové a procesní modely
8
DDL
DML
DCL
SQL Alter
Update
Revoke
Drop Create
Delete
Select
Insert
Truncate
Grant
Rename
SQL rozdělení
![Page 9: Datové a procesní modely](https://reader034.vdocuments.mx/reader034/viewer/2022042209/62593541dc22ac3d2918606b/html5/thumbnails/9.jpg)
Datové a procesní modely Sql Inside
Povel: Insert
Cíl : Vložení jednoho / či více řádek do jedné tabulky
Insert Into Tabulka | Tabulka(Sloupec1, Sloupec2,...)
Values (Hodnota1, hodnota2,...) , -- pro 1 radku
(Hodnota1, hodnota2,...) , -- pro 2 radku
(Hodnota1, hodnota2,...) , -- pro 3 radku
(Hodnota1, hodnota2,...) ; -- pro 4 radku
Insert Into Tabulka |
Tabulka (Sloupec1, Sloupec2,...)
Values (Hodnota1, hodnota2,...) ;
Oracle - nelze
![Page 10: Datové a procesní modely](https://reader034.vdocuments.mx/reader034/viewer/2022042209/62593541dc22ac3d2918606b/html5/thumbnails/10.jpg)
Datové a procesní modely Sql Inside
Povel: Insert
Cíl : Vložení jednoho / či více řádek do jedné tabulky
Insert Into Tab (sl1,sl2,..) Values (Hodnota1, hodnota2,...) ; -- pro 1 radku
Insert Into Tab (sl1,sl2,..) Values (Hodnota1, hodnota2,...) ; -- pro 2 radku
Insert Into Tab (sl1,sl2,..) Values (Hodnota1, hodnota2,...) ; -- pro 3 radku
Insert Into Tab (sl1,sl2,..) Values (Hodnota1, hodnota2,...) ; -- pro 4 radku
Insert Into Tab (sl1,sl2,..) Values (Hodnota1, hodnota2,...) ; -- pro 5 radku
……
Insert Into Tabulka |
Tabulka (Sloupec1, Sloupec2,...)
Values (Hodnota1, hodnota2,...) ;
Oracle
![Page 11: Datové a procesní modely](https://reader034.vdocuments.mx/reader034/viewer/2022042209/62593541dc22ac3d2918606b/html5/thumbnails/11.jpg)
Datové a procesní modely Sql Inside
Povel: Select
Cíl : Výpis údajů z tabulky/ tabulek
SELECT Konstanta | Sloupec | Výraz | PodDotaz | * [, položka2, položka3,....]
From Tabulka
[ Where Výraz-VýběruŘádek ]
[Order By SloupecA | , SloupecB ,....
| 3 , 1 , čísloPoložkyDotazu , ... ]
Select * From Tab
Select „Pepa“, 13, True,… From Tab
Select a, b, Jmeno, Město, … From Tab
Select 13+5, a+b, Cena*Mnoz + Sqrt (16),… From Tab
Select a, b, Select ..,..,.. From ….. Where From Tab
![Page 12: Datové a procesní modely](https://reader034.vdocuments.mx/reader034/viewer/2022042209/62593541dc22ac3d2918606b/html5/thumbnails/12.jpg)
Datové a procesní modely
Povel: Update
Cíl : Změna jednoho či více sloupců
jednoho , více, či všech řádek tabulky
Update Tabulka
Set Sloupec1=výraz
[ , Sloupec2=Výraz ]
……
[ Where VýrazVýběruŘádek ]
Sql Inside
Update Tab
Set Jmeno =“Karel”;
Update Tab
Set Jmeno =“Pavla”
Where Prijmeni=“Dlabalová” ;
![Page 13: Datové a procesní modely](https://reader034.vdocuments.mx/reader034/viewer/2022042209/62593541dc22ac3d2918606b/html5/thumbnails/13.jpg)
Datové a procesní modely Sql Inside
Povel: Delete
Cíl : Výmaz jednoho, více , všech řádek tabulky
Delete
From Tabulka
[ Where PodminkaRušeníŘádku ]
Delete From Tab;
Delete From Tab
Where Prijmeni=“Dlabalová” ;
Delete From Tab
Where Pohlavi=“Z” ;
![Page 14: Datové a procesní modely](https://reader034.vdocuments.mx/reader034/viewer/2022042209/62593541dc22ac3d2918606b/html5/thumbnails/14.jpg)
Datové a procesní modely Sql Inside
Select 5 + 8 + 3 * 4 , ‘Hola’, 55, Select … From … Where .,.. As Vyraz
From Dual;
DDUALDual
Dummy
X
5 + 8 + 3 * 4 Hola 55 Vyraz
25 Hola 55 …………
![Page 15: Datové a procesní modely](https://reader034.vdocuments.mx/reader034/viewer/2022042209/62593541dc22ac3d2918606b/html5/thumbnails/15.jpg)
Datové a procesní modely Sql Inside
Select 5 + 8 + 3 * 4 , ‘Hola’, 55, Select … From … Where .,.. As Vyraz
From Dual;
DDUALDual
Dummy
X
5 + 8 + 3 * 4 Hola 55 Vyraz
25 Hola 55 …………
![Page 16: Datové a procesní modely](https://reader034.vdocuments.mx/reader034/viewer/2022042209/62593541dc22ac3d2918606b/html5/thumbnails/16.jpg)
Datové a procesní modely Povel: Select - náhradní názvy - alias
Každá položka dotazu může mít zádáno náhradní jméno pomocí as
SELECT Konstanta | Sloupec | Výraz | PodDotaz | * [položka2, položka3,....]
From Tabulka
[ Where Výraz-VýběruŘádek ]
[Order By SloupecA | , SloupecB ,....
| 3 , 1 , čísloPoložkyDotazu , ... ]
Select Jm as Jmeno, Pr as "Příjmení",
Plat + 100 as "NovýPlat", 'Dnes', 12345
From Osoba;
Order By Plat;
Osoba
Jmeno Příjmení NovýPlat Dnes 12345
Bobo Velky 20 100 Dnes 12345
Pepa Novak 30 100 Dnes 12345
Hana Mala 40 100 Dnes 12345
![Page 17: Datové a procesní modely](https://reader034.vdocuments.mx/reader034/viewer/2022042209/62593541dc22ac3d2918606b/html5/thumbnails/17.jpg)
Datové a procesní modely Povel: Select - náhradní názvy - alias
Každá položka dotazu může mít zádáno náhradní jméno pomocí as
SELECT Konstanta | Sloupec | Výraz | PodDotaz | * [položka2, položka3,....]
From Tabulka
[ Where Výraz-VýběruŘádek ]
[Order By SloupecA | , SloupecB ,....
| 3 , 1 , čísloPoložkyDotazu , ... ]
Select Jm Jmeno, Pr "Příjmení",
Plat + 100 "NovýPlat", 'Dnes', 12345
From Osoba;
Order By Plat;
Osoba
Jmeno Příjmení NovýPlat Dnes 12345
Bobo Velky 20 100 Dnes 12345
Pepa Novak 30 100 Dnes 12345
Hana Mala 40 100 Dnes 12345
![Page 18: Datové a procesní modely](https://reader034.vdocuments.mx/reader034/viewer/2022042209/62593541dc22ac3d2918606b/html5/thumbnails/18.jpg)
Datové a procesní modely Povel: Select - náhradní názvy - alias
Tabulka ve From může mít náhradní jméno
SELECT Konstanta | Sloupec | Výraz | PodDotaz | * [položka2, položka3,....]
From Tabulka
[ Where Výraz-VýběruŘádek ]
[Order By SloupecA | , SloupecB ,....
| 3 , 1 , čísloPoložkyDotazu , ... ]
Select Jm Jmeno, Pr "Příjmení",
Plat + 100 "NovýPlat", 'Dnes', 12345
From Osoba as Oso;
Order By Plat;
Oso
Jmeno Příjmení NovýPlat Dnes 12345
Bobo Velky 20 100 Dnes 12345
Pepa Novak 30 100 Dnes 12345
Hana Mala 40 100 Dnes 12345
![Page 19: Datové a procesní modely](https://reader034.vdocuments.mx/reader034/viewer/2022042209/62593541dc22ac3d2918606b/html5/thumbnails/19.jpg)
Datové a procesní modely Povel: Select - náhradní názvy - alias
Tabulka ve From může mít náhradní jméno
SELECT Konstanta | Sloupec | Výraz | PodDotaz | * [položka2, položka3,....]
From Tabulka
[ Where Výraz-VýběruŘádek ]
[Order By SloupecA | , SloupecB ,....
| 3 , 1 , čísloPoložkyDotazu , ... ]
Select Jm Jmeno, Pr "Příjmení",
Plat + 100 "NovýPlat", 'Dnes', 12345
From Osoba Oso;
Order By Plat';
Oso
Jmeno Příjmení NovýPlat Dnes 12345
Bobo Velky 20 100 Dnes 12345
Pepa Novak 30 100 Dnes 12345
Hana Mala 40 100 Dnes 12345
![Page 20: Datové a procesní modely](https://reader034.vdocuments.mx/reader034/viewer/2022042209/62593541dc22ac3d2918606b/html5/thumbnails/20.jpg)
Datové a procesní modely
Konec krátkého opakování
![Page 21: Datové a procesní modely](https://reader034.vdocuments.mx/reader034/viewer/2022042209/62593541dc22ac3d2918606b/html5/thumbnails/21.jpg)
Datové a procesní modely Povel: Select - dotaz z více tabulek
V klauzuli From lze uvést více tabulek
mezi tabulkami dojde ke kartézskému součinu
každá řádka z tabulky1 se spojí s každou řádkou tabulky2
SELECT Konstanta | Sloupec | Výraz | PodDotaz | * [položka2, položka3,....]
From Tabulka1, Tabulka2,...
[ Where Výraz-VýběruŘádek ]
[Order By SloupecA | , SloupecB ,....
| 3 , 1 , čísloPoložkyDotazu , ... ]
![Page 22: Datové a procesní modely](https://reader034.vdocuments.mx/reader034/viewer/2022042209/62593541dc22ac3d2918606b/html5/thumbnails/22.jpg)
Datové a procesní modely Povel: Select - dotaz z více tabulek
V klauzuli From lze uvést více tabulek
Select Oso.Jm, Oso.Pr, Mesto.Nazev, Mesto.Zeme,
From Oso , Mesto ;
Mesto
Nazev Zeme
Praha CZ
Brno CZ
Berlin DE
Oso
Jm Pr
Bobo Velky
Pepa Novak
Hana Mala
![Page 23: Datové a procesní modely](https://reader034.vdocuments.mx/reader034/viewer/2022042209/62593541dc22ac3d2918606b/html5/thumbnails/23.jpg)
Datové a procesní modely Povel: Select - dotaz z více tabulek
V klauzuli From lze uvést více tabulek
Select O .Jm, O .Pr, M .Nazev, M .Zeme,
From Oso as O, Mesto as M;
Mesto
Nazev Zeme
Praha CZ
Brno CZ
Berlin DE
Oso
Jm Pr
Bobo Velky
Pepa Novak
Hana Mala
![Page 24: Datové a procesní modely](https://reader034.vdocuments.mx/reader034/viewer/2022042209/62593541dc22ac3d2918606b/html5/thumbnails/24.jpg)
Datové a procesní modely Povel: Select - dotaz z více tabulek
V klauzuli From lze uvést více tabulek
Select O .Jm, O .Pr, M .Nazev, M .Zeme,
From Oso O, Mesto M;
Mesto
Nazev Zeme
Praha CZ
Brno CZ
Berlin DE
Oso
Jm Pr
Bobo Velky
Pepa Novak
Hana Mala
![Page 25: Datové a procesní modely](https://reader034.vdocuments.mx/reader034/viewer/2022042209/62593541dc22ac3d2918606b/html5/thumbnails/25.jpg)
Datové a procesní modely Povel: Select - dotaz z více tabulek
V klauzuli From lze uvést více tabulek
Select O .* , M *
From Oso O, Mesto M;
Mesto
Nazev Zeme
Praha CZ
Brno CZ
Berlin DE
Oso
Jm Pr
Bobo Velky
Pepa Novak
Hana Mala
Jm Pr Nazev Zeme
Bobo Velky Praha CZ
Pepa Novak Praha CZ
Hana Mala Praha CZ
Bobo Velky Brno CZ
Pepa Novak Brno CZ
Hana Mala Brno CZ
Bobo Velky Berlin DE
Pepa Novak Berlin DE
Hana Mala Berlin DE
![Page 26: Datové a procesní modely](https://reader034.vdocuments.mx/reader034/viewer/2022042209/62593541dc22ac3d2918606b/html5/thumbnails/26.jpg)
Datové a procesní modely Povel: Select - dotaz z více tabulek
V klauzuli From lze uvést více tabulek
Select O.*, M.*,
From Oso O, Mesto M;
Jm Pr Nazev Zeme
Bobo Velky Praha CZ
Pepa Novak Praha CZ
Hana Mala Praha CZ
Bobo Velky Brno CZ
Pepa Novak Brno CZ
Hana Mala Brno CZ
Bobo Velky Berlin DE
Pepa Novak Berlin DE
Hana Mala Berlin DE
Mesto
Nazev Zeme
Praha CZ
Brno CZ
Berlin DE
Oso
Jm Pr
Bobo Velky
Pepa Novak
Hana Mala
![Page 27: Datové a procesní modely](https://reader034.vdocuments.mx/reader034/viewer/2022042209/62593541dc22ac3d2918606b/html5/thumbnails/27.jpg)
Datové a procesní modely Povel: Select - dotaz z více tabulek
V klauzuli From lze uvést více tabulek
Select O.*, M.*,
From Oso O, Mesto M;
Jm Pr Nazev Zeme
Bobo Velky Praha CZ
Pepa Novak Praha CZ
Hana Mala Praha CZ
Bobo Velky Brno CZ
Pepa Novak Brno CZ
Hana Mala Brno CZ
Bobo Velky Berlin DE
Pepa Novak Berlin DE
Hana Mala Berlin DE
Mesto
Nazev Zeme
Praha CZ
Brno CZ
Berlin DE
Oso
Jm Pr
Bobo Velky
Pepa Novak
Hana Mala
![Page 28: Datové a procesní modely](https://reader034.vdocuments.mx/reader034/viewer/2022042209/62593541dc22ac3d2918606b/html5/thumbnails/28.jpg)
Datové a procesní modely Povel: Select - dotaz z více tabulek
V klauzuli From lze uvést více tabulek
Select O.*, M.*,
From Oso O, Mesto M;
Jm Pr Nazev Zeme
Bobo Velky Praha CZ
Pepa Novak Praha CZ
Hana Mala Praha CZ
Bobo Velky Brno CZ
Pepa Novak Brno CZ
Hana Mala Brno CZ
Bobo Velky Berlin DE
Pepa Novak Berlin DE
Hana Mala Berlin DE
Mesto
Nazev Zeme
Praha CZ
Brno CZ
Berlin DE
Oso
Jm Pr
Bobo Velky
Pepa Novak
Hana Mala
![Page 29: Datové a procesní modely](https://reader034.vdocuments.mx/reader034/viewer/2022042209/62593541dc22ac3d2918606b/html5/thumbnails/29.jpg)
Datové a procesní modely
a zas něco jiného
![Page 30: Datové a procesní modely](https://reader034.vdocuments.mx/reader034/viewer/2022042209/62593541dc22ac3d2918606b/html5/thumbnails/30.jpg)
Datové a procesní modely
a zas něco jiného - někdy však pro určitý sloupec žádnou hodnotu nemám
- [ nedodali, neví se , … ]
- v dané řádce a sloupci však NĚCO musí být
- to něco musí označovat, že tam nic NENÍ
- potřebujeme na to nějakou PSEUDO HODNOTU
-
- existuje zvláštní hodnota označená literálem NULL - implementace hodnoty nás nezajímá
- jde o to, jak se hodnota NULL porovná jinými hodnotami
![Page 31: Datové a procesní modely](https://reader034.vdocuments.mx/reader034/viewer/2022042209/62593541dc22ac3d2918606b/html5/thumbnails/31.jpg)
Datové a procesní modely
SELECT 3*4;
SELECT 2=5;
SELECT 3=Null;
Opertace s NULL
2=5 2<>5 2=3 2<>3 2=NULL 2<>NULL
0 1 0 1 0 1
12
0
???
?
![Page 32: Datové a procesní modely](https://reader034.vdocuments.mx/reader034/viewer/2022042209/62593541dc22ac3d2918606b/html5/thumbnails/32.jpg)
Datové a procesní modely
SELECT 3*4;
SELECT 2=5;
SELECT 3=Null;
Opertace s NULL
2=5 2<>5 2=3 2<>3 2=NULL 2<>NULL
0 1 0 1 NULL NULL
12
0
???
NULL=NULL NULL<>NULL 2 <=> 2 NULL<=>NULL 2 <=> 3 2 <=> NULL
NULL NULL 1 1 0 1
MySQL
![Page 33: Datové a procesní modely](https://reader034.vdocuments.mx/reader034/viewer/2022042209/62593541dc22ac3d2918606b/html5/thumbnails/33.jpg)
Datové a procesní modely
WHERE a IS DISTINCT FROM b ...
WHERE a IS NOT DISTINCT FROM b ...
Operátor <=> dle SQL normy
WHERE a<=>b; ( MySQL )
Implementováno
IBM DB2
[PostgreSQL]
![Page 34: Datové a procesní modely](https://reader034.vdocuments.mx/reader034/viewer/2022042209/62593541dc22ac3d2918606b/html5/thumbnails/34.jpg)
Datové a procesní modely
A Is Null
A Is Not Null
A Is Distinct From B
A Is Not Distinct From B
Null Is Not Distinct From Null
operátor - ANSI Norma Sql
PostgreSQL implementoval
Specielní operátory porovnání [hodnoty Null]
True - hodnota A je Null - neznáma
True - hodnota je známa
True - hodnoty jsou známé a různé
True - jedna hodnota známa, druhá Null
True - obě hodnoty známé a stejné
True - obe hodnoty neznámé
Vždy True. Obě hodnoty neznámé
V tomto smyslu nejsou rozdílné
![Page 35: Datové a procesní modely](https://reader034.vdocuments.mx/reader034/viewer/2022042209/62593541dc22ac3d2918606b/html5/thumbnails/35.jpg)
Datové a procesní modely Porovnání s hodnotami NULL
1
0
Null
Null
Null
1
0
0
1
0
1
1
0
0
1
Select 5 = 5 From Dual;
Select 5 = 8 From Dual;
Select Null = 5 From Dual;
Select Null = Null From Dual;
Select Null <> Null From Dual;
Select Null Is Null From Dual;
Select 0 Is Null From Dual;
Select Null Is Not Null From Dual;
Select 0 Is Not Null From Dual;
Select Null Is Distinct From Null From Dual;
Select Null Is Not Distinct From Null From Dual;
Select Null Is Distinct From 5 From Dual;
Select Null Is Not Distinct From 5 From Dual;
Select 5 Is Distinct From 5 From Dual;
Select 5 Is Not Distinct From 5 From Dual;
![Page 36: Datové a procesní modely](https://reader034.vdocuments.mx/reader034/viewer/2022042209/62593541dc22ac3d2918606b/html5/thumbnails/36.jpg)
Datové a procesní modely
a zas něco jiného