Knihkupectvi. učiňte konceptuální model pro IS. [ taky mohou knihy trochu půjčovat ] čiňte. řešte. pane učiteliu já jábysem si si zamodeloval

Podobné dokumenty
Datové a procesní modely. A zpět k PEPOvi

Databáze II. 1. přednáška. Helena Palovská

Databázové systémy trocha teorie

2. přednáška. Databázový přístup k datům (SŘBD) Možnost počítání v dekadické aritmetice - potřeba přesných výpočtů, např.

Databáze SQL SELECT. David Hoksza

Jazyk SQL databáze SQLite. připravil ing. petr polách

Databázové systémy úvod

předměty: ukončení: Zápočet + Zkouška / 5kb např. jméno, název, destinace, město např. student Jan Novák, narozen

Databázové systémy a SQL

Databáze I. 1. přednáška. Helena Palovská

Databázové systémy. Cvičení 6: SQL

8.2 Používání a tvorba databází

Základy informatiky. 08 Databázové systémy. Daniela Szturcová

1 Úvod. J. Zendulka: Databázové systémy - 1 Úvod 1

Inovace a zkvalitnění výuky prostřednictvím ICT. Základní seznámení s MySQL Ing. Kotásek Jaroslav

J. Zendulka: Databázové systémy - 1 Úvod Intuitivní vymezení pojmu databáze

Obchodní akademie a Jazyková škola s právem státní jazykové zkoušky Jihlava

Kurz Databáze. Obsah. Dotazy. Zpracování dat. Doc. Ing. Radim Farana, CSc.

Databázové a informační systémy Jana Šarmanová

Koncepce jazyka SQL Co je SQL

Databázové systémy. Doc.Ing.Miloš Koch,CSc.

Úvod do databází. Modelování v řízení. Ing. Petr Kalčev

Základy informatiky. 06 Databázové systémy. Kačmařík/Szturcová/Děrgel/Rapant

Inovace a zkvalitnění výuky prostřednictvím ICT Databázové systémy MySQL základní pojmy, motivace Ing. Kotásek Jaroslav

VYUŽITÍ REGIONÁLNÍCH FUNKCÍ A WWW ROZHRANÍ V INTEGROVANÉM KNIHOVNÍM SYSTÉMU KPWINSQL

RELAČNÍ DATABÁZOVÉ SYSTÉMY

Použití databází na Webu

Úvod do databázových systémů

Informační systémy 2008/2009. Radim Farana. Obsah. Jazyk SQL

Databázové a informační systémy

Základy jazyka SQL. 87 Jazyk SQL SQL je dotazovací jazyk, takže přes propojenou aplikaci se serveru odevzdá dotaz

Michal Krátký, Miroslav Beneš

Marian Kamenický. Syntea software group a.s. marian.kamenicky. MFFUK Praha 2012/13

Databáze 2013/2014. Konceptuální model DB. RNDr. David Hoksza, Ph.D.

Databázové a informační systémy

Databázové systémy úvod

Úvod do databázových systémů. Ing. Jan Šudřich

Informační systémy ve zdravotnictví. 6. cvičení

Kapitola 1: Úvod. Systém pro správu databáze (Database Management Systém DBMS) Účel databázových systémů

Obsah přednášky. Databázové systémy RDBMS. Fáze návrhu RDBMS. Coddových 12 pravidel. Coddových 12 pravidel

Relační databázový model. Vladimíra Zádová, KIN, EF, TUL- DBS

Návrh a tvorba WWW stránek 1/14. PHP a databáze

Databázové systémy úvod

Databázové systémy. - SQL * definice dat * aktualizace * pohledy. Tomáš Skopal

Modely datové. Další úrovní je logická úroveň Databázové modely Relační, Síťový, Hierarchický. Na fyzické úrovni se jedná o množinu souborů.

PL/SQL. Jazyk SQL je jazykem deklarativním, který neobsahuje procedurální příkazy jako jsou cykly, podmínky, procedury, funkce, atd.

Ukázka knihy z internetového knihkupectví

Sada 1 - PHP. 14. Úvod do jazyka SQL

Databáze v MS ACCESS

2. blok část B Základní syntaxe příkazů SELECT, INSERT, UPDATE, DELETE

2. blok část A Jazyk SQL, datové typy

37. Indexování a optimalizace dotazů v relačních databázích, datové struktury, jejich výhody a nevýhody

SQL - trigger, Databázové modelování

Správa dat v podniku. MI-DSP 2013/14 RNDr. Ondřej Zýka, ondrej.zyka@profinit.eu

Databázové systémy, MS Access. Autor: Ing. Jan Nožička SOŠ a SOU Česká Lípa VY_32_INOVACE_1130_Databázové systémy, MS Access_PWP

Oracle XML DB. Tomáš Nykodým

Úvod do databázových systémů

SQL v14. 4D Developer konference. 4D Developer conference 2015 Prague, CZ Celebrating 30 years

Data v informačních systémech

DUM 11 téma: Databázové jazyky a servery

Jazyk S Q L základy, příkazy pro práci s daty

Databáze I. Přednáška 4

Klíčová slova: dynamické internetové stránky, HTML, CSS, PHP, SQL, MySQL,

SQL. strukturovaný dotazovací jazyk. Structured Query Language (SQL)

Jaký je rozdíl v definicicíh VARCHAR2(20 BYTE) a VARCHAR2(20 CHAR):

Analýza a modelování dat 3. přednáška. Helena Palovská

DATABÁZE, ATRIBUTY. SPŠS Č.Budějovice Obor Geodézie a Katastr nemovitostí 3.ročník

Univerzita Palackého v Olomouci Radek Janoštík (Univerzita Palackého v Olomouci) Základy programování 4 - C# 10.4.

Manipulace a restrukturalizace dat

Úvod do databázových systémů

Uložené procedury Úvod ulehčit správu zabezpečení rychleji

Databáze. Velmi stručný a zjednodušený úvod do problematiky databází pro programátory v Pythonu. Bedřich Košata

Databázové systémy Cvičení 5.2

5. POČÍTAČOVÉ CVIČENÍ

B0M33BDT Technologie pro velká data. Supercvičení SQL, Python, Linux

Stěhování aplikací. Michal Tomek, Sales Manager

Obsah přednášky. Představení webu ASP.NET frameworky Relační databáze Objektově-relační mapování Entity framework

KIV/ZIS cvičení 5. Tomáš Potužák

Analýza a modelování dat. Přednáška 8

Databázové systémy I. 1. přednáška

Obsah. Kapitola 1. Kapitola 2. Kapitola 3. Kapitola 4. Úvod 11. Stručný úvod do relačních databází 13. Platforma 10g 23

Konceptuální modelování a SQL

Nerelační databázové modely. Helena Palovská

UDS for ELO. Univerzální datové rozhraní. >> UDS - Universal Data Source

Relační databáze. V dnešní době existuje řada komerčních DBMS, nejznámější jsou:

Úvod do databázových systémů. Lekce 1

RNDr. Michal Kopecký, Ph.D. Department of Software Engineering, Faculty of Mathematics and Physics, Charles University in Prague

4IT218 Databáze. 4IT218 Databáze

Hospodářská informatika

Informační systémy 2008/2009. Radim Farana. Obsah. Obsah předmětu. Požadavky kreditového systému. Relační datový model, Architektury databází

Západočeská univerzita v Plzni Katedra informatiky a výpočetní techniky. 9. června krovacek@students.zcu.cz

Operátory ROLLUP a CUBE

Využití XML v DB aplikacích

Marketingová komunikace. 2. soustředění. Mgr. Pavel Vávra Kombinované studium Skupina N9KMK1aPH/N9KMK1bPH (um1a1ph/um1b1ph)

Databázové modelování. Analýza Návrh konceptuálního schématu

Marketingová komunikace. 1. soustředění. Mgr. Pavel Vávra Kombinované studium Skupina N9KMK3PH (vm3aph)

Analýza a modelování dat. Přednáška 9

UNIVERZITA PALACKÉHO V OLOMOUCI

OBJECT DEFINITION LANGUAGE. Jonáš Klimeš NDBI001 Dotazovací Jazyky I 2013

Databáze 2011/2012 SQL DDL (CREATE/ALTER/DROP TABLE), DML (INSERT/UPDATE/DELETE) RNDr.David Hoksza, Ph.D.

Transkript:

učiňte konceptuální model pro IS Knihkupectvi [ taky mohou knihy trochu půjčovat ] čiňte řešte pane učiteliu já jábysem si si zamodeloval

Příklad - E-R R model učiňte konceptuální model pro IS Knihkupectvi čiňte řešte pane učiteliu já jábysem si si zamodeloval

Škola příklademp Milí studenti - studentky nevyjímaje zatrenujme si si E-R E R modelování. Navrhněte Enity a vztahy [a [apozději i i atributy] pro Knihkupectví [i [i malá malápůjčovna] 3

Škola příklademp Knihkupectví E-R model Knihkupectví Autor Autor NazevKnihy NazevKnihy Kniha Kniha Vydání Vydání Výtisk Výtisk Vydavatel Vydavatel ABC ABC 4

Knihkupectví [knihovna-půjčovna] ovna] 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 jest jednoduché věci správně pojmenovat

Knihkupectví [knihovna-půjčovna] ovna] Kniha Titul TitulAutor Autor Titul Titul Nazev Kategorie Titul Autor Jmeno... Vydání Vydání Vytisk Vytisk PK Vydani Isbn Titul Vydavatel RokVydani PocStran Cena Vydavatel Jmeno... Vytisk PK IdVytisk FK1 Vydani Stav (Isbn)

Knihkupectví [knihovna-půjčovna] ovna] Kniha Titul TitulAutor Autor Titul Titul Nazev Kategorie Titul Autor Jmeno... Vydání Vydání a co je to pane učiteli u za tajnost Vydani Vydavatel a co je to pane učiteli PK Isbn za tajnost Vytisk Vytisk ISBN? Titul Vydavatel RokVydani PocStran Cena Jmeno... Vytisk PK FK1 IdVytisk Vydani Stav (Isbn)

ISBN 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 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ódk II. skupina ISBN - označení země či regionu zeměpisného či jazykového 0, 1 anglicky mluvicí země 2 francouzky 3 němčina 4 japonština 5 čí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ódk II. skupina ISBN - označení země či regionu zeměpisného či jazykového 0, 1 anglicky mluvicí země 2 francouzky 3 němčina 4 japonština 5 čí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 979 IV -skupina Region[max - Vydavatel 6 cifer] vydání - VydáníVydavatele určuje vydavatel- KontrCifr V skupina - 1 cifra kontrolní

a zas něco jiného

Databáze [databázový systém m DBS] 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 [typy databází] Hierarchická Síťová Relační Objektová Objektově relační

Hierarchická databáze Auto Motor Karoserie Podvozek Dveře Levé Dveře Pravé Ručka Okno 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 Auto Rodič Motor Karoserie Podvozek Potomci Dveře Levé Dveře Pravé Ručka Okno 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 Auto Motor Karoserie Podvozek Dveře Levé Dveře Pravé Ručka Okno 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 Auto Motor Karoserie Podvozek Dveře Levé Dveře Pravé Ručka Okno 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 Motor Karoserie Podvozek Dveře Levé Dveře Pravé Ručka Okno Zámek ww50 111 500 11AA Bilá... ww80 222 Bílé... Světlé... Bílé 800 11BB Modrá... Modré Modré... Tmavé...

Hierarchická databáze použítí Vhodné? Auto Motor Karoserie Podvozek Dveře Levé Dveře Pravé Ručka Okno 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 Auto data jsou organizována do stromové struktury každý záznam je uzlem ve stromové struktuře Motor Dveře Levé Karoserie Dveře Pravé Podvozek vzájemný vztah mezi záznamy označujeme -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

Hierarchická DB nevyhovuje: když data mají složitější strukturu Síťová databáze 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ákazníci Prodejci Výrobky Zák 1 Zák 2 Zák 3 Prod ZZ Prod YY Prod XX Výr CC Výr BB Výr AA ProObj Objednávka má několik vztahů k rodičům - sady Možné operace: ZakObj Objednávky VyrObj najít určitý záznam přímo dle klíče (číslo zákazníka) Obj 3 (Z 3, P ZZ, V CC) Obj 2 (Z 1,P XX,V AA) Obj 1 (Z 1, P YY, V CC) 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 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

Hierarchické,, SíťovS ové DB Zákazníci Prodejci Výrobky Objednávky Auto Motor Karoseri e Podvoze k Dveře Levé Dveře Pravé teorie i i technologie DB - programátoři, informatici do do DB oblasti vstupuje genius algebraik Ted Codd

Edgar Frank "Ted" Codd 1923-2003 Narozen: 1923 Zemřel: 2003 Zaměstnán: IBM 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 IBM IBM IBM IBM se se přihodilo zlaté zlatévejce nepochopila to to [nevšimli si] si] intelektuální kuriozita --nerealizovatelná konkurence tehdejšího IBM IBM DB DB --IMS IMS zbohaltli jiní jiní (Oracle)

Relační databáze 1970 Ted Codd A Relational Model of Data for Large Shared Data Banks 1972 University of California at Berkeley (INGRES) začíná 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 (Larry Ellison, System-R) 1981 INGRES (1996->PostgreSQL ) 1981 IBM SQL/DS 1982 ANSI zahajuje standardizaci SQL - DB 1983 IBM ohlášení DB2

Relační model DB Coddův v teorém Coddův 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 x P(x) {x P(x) } true {x x kladné číslo menší než 4} false {1,2,3} {x celé číslo 0 < x < 4} objekt x uspořádaná n-tice (x 1, x 2, x 3,..., x N ) Pragmatická definice relační databáze databáze všechna data uspořádána do tabulek 28

12 pravidel Teda Codda Codd's Twelve Commandments 0. 0. pravidlo 1. 1. pravidlo 2. 2. pravidlo 3. 3. pravidlo 4. 4. pravidlo 5. 5. pravidlo 6. 6. pravidlo 7. 7. pravidlo 8. 8. pravidlo 9. 9. pravidlo 10. 10. pravidlo 11. 11. pravidlo 12. 12. pravidlo to to těch t pravidel je je však v však v 13 13!!!!!!!, pane učiteliu 29

Relační DB E-R model Osoba Osoba Auto Auto Budova Budova Kniha Kniha Místnost Místnost Mesto Mesto Ulice Ulice Nástroj Nástroj Osoba Auto Budova Kniha Místnost Mesto Ulice Nástroj 30

Relační DB E-R model Osoba Osoba Auto Auto Budova Budova Kniha Kniha Místnost Místnost Mesto Mesto Ulice Ulice Nástroj Nástroj Osoba Auto Budova Kniha Místnost Mesto Ulice Nástroj 31

Základy RDBS RELAČNÍ DATA BASE Reálný svět Osoba Firma Adresa Stat Komodita

Základy RDBS RELAČNÍ DATA BASE SŘDB databázový stroj Reálný svět Osoba Firma Adresa Stat Komodita Relační DB

Základy RDBS RELAČNÍ DATA BASE SŘDB databázový stroj každý objekt reálného světa všechna data DB je modelován jako tabulka jsou ve tvaru tabulek Reálný svět Firma Stat Osoba Komodita Adresa

Základy RDBS RELAČNÍ DATA BASE SŘDB databázový stroj Katalog- Popis dat každý objekt reálného světa všechna data v DB je modelován jako tabulka jsou ve tvaru tabulek Osoba Osoba popis Reálný svět Firma Stat Osoba Komodita Adresa

Základy RDBS RELAČNÍ DATA BASE SŘDB databázový stroj Katalog- Popis dat každý objekt reálného světa všechna data v DB je modelován jako tabulka jsou ve tvaru tabulek Firma Firma popis Reálný svět Firma Stat Osoba Adresa Komodita Adresa popis

Základy RDBS RELAČNÍ DATA BASE SŘDB databázový stroj Katalog- Popis dat jména tabulek musí být unikátní dvě různé tabulky nemohou mít stejné jméno Reálný svět Firma Osoba Adresa Stat Komodita

Pepa PEPRO Komponenty Advice to Ministers Policy & 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

ale než se vrátíme k PEPOvi trochu o programování v DB (o obsluze DB)

Povely - co to je? Create Schema mff_skola; Create Table Kamarad( Jmeno char (10), RokNar int ); Insert Into Kamarad Values('Pepa',1990); Insert Into Kamarad Values('Jana',1986); DELETE FROM Kamarad WHERE Jmeno="Pepa"; Update Kamarad SET RokNar=1986 WHERE Jmeno="Jana"; ALTER TABLE Kamarad ADD COLUMN Telef VarChar(20); Insert Into Kamarad Values('Joe',1985); DROP TABLE Kamarad; ty ty povely CREATE, DROP, DELETE, INSERT atd co co to to je je???? kam se se to to ppíše 40

Povely - co to je? PředRelační Hierarchické Síťové Síťové jednoduchý dotaz = ty ty povely povely CREATE, CREATE, DROP, DROP, DELETE, DELETE, INSERT INSERT atd atd co co to to je je???? kam kam se se to to píšp píše íše napsat napsat složitý program navigační přístup k jednomu záznamuz znamu od od nalezeného záznamu z znamu běháníb běhánípo po stromu 41

Povely - co to je? PředRelační Hierarchické Síťové Síťové ty ty povely povely CREATE, CREATE, DROP, DROP, DELETE, DELETE, INSERT INSERT atd atd co co to to je je???? kam kam se se to to píšp píše íše jednoduchý dotaz dotaz = napsat napsat složitý složitý program navigační přístup přístup k jednomu záznamu od od nalezeného záznamu běhání běhánípo po stromu stromu datová nezávislost navigace v DB DB --zcela zcela závislz závislá na na návrhu n stromu 42

Povely - co to je? PředRelační Hierarchické Síťové Síťové ty ty povely povely CREATE, CREATE, DROP, DROP, DELETE, DELETE, INSERT INSERT atd atd co co to to je je???? kam kam se se to to píšp píše íše jednoduchý dotaz dotaz = napsat napsat složitý složitý program navigační přístup přístup k jednomu záznamu od od nalezeného záznamu běhání běhánípo po stromu stromu datová datovánezávislost navigace v DB DB --zcela zcela závislá závislána na návrhu návrhu stromu stromu teoretický základz žádný [všeobecně přij přijímaný] 43

Povely - co to je? PředRelační Hierarchické Síťové Síťové ty ty povely povely CREATE, CREATE, DROP, DROP, DELETE, DELETE, INSERT INSERT atd atd co co to to je je???? kam kam se se to to píšp píše íše jednoduchý dotaz dotaz = napsat napsat složitý složitý program navigační přístup přístup k jednomu záznamu od od nalezeného záznamu běhání běhánípo po stromu stromu datová datovánezávislost navigace v DB DB --zcela zcela závislá závislána na návrhu návrhu stromu stromu teoretický základ základ žádný žádný [všeobecně přijímaný] dotazovací [manipulační] jazyk žádný 44

Povely - co to je? PředRelační Hierarchické Síťové Síťové co to je? ty povely ty povely CREATE, CREATE, DROP, DROP, DELETE, DELETE, INSERT INSERT atd atd co co to to je je???? kam kam se se to to píšp píše íše jednoduchý dotaz dotaz = napsat napsat složitý složitý program navigační přístup přístup k jednomu záznamu od od nalezeného záznamu běhání běhánípo po stromu stromu datová datovánezávislost navigace v DB DB --zcela zcela závislá závislána na návrhu návrhu stromu stromu teoretický základ základ žádný žádný [všeobecně přijímaný] dotazovací [manipulační] jazyk jazyk žádný žádný povely [tudíž] žádn žádné 45

Povely - co to je? PředRelační Hierarchické Síťové Síťové ty ty povely povely CREATE, CREATE, DROP, DROP, DELETE, DELETE, INSERT INSERT atd atd co co to to je je???? kam kam se se to to píšp píše íše jednoduchý dotaz dotaz = napsat napsat složitý složitý program navigační přístup přístup k jednomu záznamu od od nalezeného záznamu běhání běhánípo po stromu stromu datová datovánezávislost navigace v DB DB --zcela zcela závislá závislána na návrhu návrhu stromu stromu teoretický základ základ žádný žádný [všeobecně přijímaný] dotazovací [manipulační] jazyk jazyk žádný žádný povely povely [tudíž] [tudíž] žádné žádné realizace [každého] dotazu program 46

Povely - co to je? PředRelační Hierarchické Síťové Síťové DOTAZ-Zobraz Karoserii [Ka_22] s s daty daty Auta, Auta, Levých Levých a Pravých Dveří Dveří ty ty povely povely CREATE, CREATE, DROP, DROP, DELETE, DELETE, INSERT INSERT atd atd co co to to je je???? kam kam se se to to píšp píše íše jednoduchý dotaz dotaz = Auto Model napsat napsat složitý složitý program navigační Motor přístup přístup Karoserie k jednomu záznamu Podvozek od od nalezeného záznamu běhání běhánípo po stromu stromu datová datová Dveře nezávislost Levé Dveře Pravé navigace v DB DB --zcela zcela závislá závislána na návrhu návrhu stromu stromu A_111 Data A_22 teoretický základ základ Mo_111 Ka_111 Po_111 žádný žádný [všeobecně přijímaný] DL_111 DP_111 DL_22 DP_22 dotazovací [manipulační] jazyk jazyk žádný žádný Najdi povely Najdi Karoserii s povely [tudíž] s Id= Id= Ka_22 Ka_22 CALL CALL (...) (...) [tudíž] a žádné nastav nastav se se ve ve stromu stromu Čti žádné realizace ČtiRodiče [Karoserii [každého] -> dotazu -> Ka_22] Ka_22] CALL CALL (...) (...) Čti dotazu ČtiDítě DítěLevéDveře [-> [-> DL_22] DL_22] CALL CALL (...) (...) program Čti ČtiDítě DítěPravéDveře [-> [-> DP_22] DP_22] CALL CALL (...) (...) -- -- Dotaz Dotaz Realizován UF!!! Mo_22 Ka_22 Po_22 47

Povely - co to je? PředRelační Hierarchické Síťové Síťové ty ty povely povely CREATE, CREATE, DROP, DROP, DELETE, DELETE, INSERT INSERT atd atd co co to to je je???? kam kam se se to to píšp píše íše jednoduchý dotaz dotaz = napsat napsat složitý složitý program navigační přístup přístup k jednomu záznamu od od nalezeného záznamu běhání běhánípo po stromu stromu datová datovánezávislost navigace v DB DB --zcela zcela závislá závislána na návrhu návrhu stromu stromu Auto teoretický základ základ žádný žádný [všeobecně přijímaný] dotazovací [manipulační] jazyk jazyk žádný žádný povely povely [tudíž] [tudíž] žádné žádné realizace [každého] dotazu dotazu program Dveře Levé Dveře Pravé laik, amatér,...... nebyl nebyl schopen s DB DB spolupracovat Motor Karoserie Podvozek 48

Povely - co to je? PředRelační Hierarchické Síťové Síťové ty ty povely povely CREATE, CREATE, DROP, DROP, DELETE, DELETE, INSERT INSERT atd atd co co to to je je???? kam kam se se to to píšp píše íše jednoduchý dotaz dotaz = napsat napsat složitý složitý program navigační přístup přístup k jednomu záznamu od od nalezeného záznamu běhání běhánípo po stromu stromu datová datovánezávislost navigace v DB DB --zcela zcela závislá závislána na návrhu návrhu stromu stromu Auto teoretický základ základ Motor Karoserie Podvozek žádný žádný [všeobecně přijímaný] dotazovací [manipulační] jazyk jazyk žádný žádný povely povely [tudíž] [tudíž] žádné žádné realizace [každého] dotazu dotazu Dveře Levé Dveře Pravé program v začátcích relační koncepce laik, laik, amatér,... opět... přišel nebyl nebyl schopen s s DB DB spolupracovat 49

Jazyk pro ovládání relační DB 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 a informatikům - programátorům zatrh tipec

Povely - co to je? PředRelační Hierarchické Síťové Síťové SQL SQL SELECT Auto.*, Auto.*, Karoserie.*, LDvere.*, PDvere.* WHERE WHERE IdKaro='Ka_22' AND AND...;...; ty ty povely povely CREATE, CREATE, DROP, DROP, DELETE, DELETE, INSERT INSERT atd atd co co to to je je???? kam kam se se to to píšp píše íše jednoduchý jednoduchý dotaz dotaz = Auto Model napsat napsat složitý složitý program program navigační navigační přístup přístup k k jednomu jednomu záznamu záznamu od Motor od nalezeného nalezeného záznamu Karoserie záznamu běhání běhání po po stromu Podvozek stromu datová datová nezávislost nezávislost navigace navigace v v DB DB - - zcela zcela závislá závislá na na návrhu návrhu stromu Dveře Levé Dveře Pravé stromu teoretický teoretický základ základ žádný žádný [všeobecně [všeobecně přijímaný] A_111 přijímaný] Data A_22 dotazovací dotazovací [manipulační] [manipulační] jazyk jazyk Mo_111 Ka_111 Po_111 žádný žádný povely povely [tudíž] DL_111 [tudíž] DP_111 DL_22 DP_22 žádné žádné realizace realizace [každého] [každého] dotazu dotazu program program Mo_22 Ka_22 Po_22 Najdi Najdi Karoserii s s Id= Id= Ka_22 Ka_22 CALL CALL (...) (...) a nastav nastav se se ve ve stromu stromu Čti ČtiRodiče [Karoserii -> -> Ka_22] Ka_22] CALL CALL (...) (...) Čti ČtiDítě DítěLevéDveře [-> [-> DL_22] DL_22] CALL CALL (...) (...) Čti ČtiDítě DítěPravéDveře [-> [-> DP_22] DP_22] CALL CALL (...) (...) -- -- Dotaz Dotaz Realizován 51

Povely - co to je? PředRelační Hierarchické Síťové Síťové SQL SQL SELECT Auto.*, Auto.*, Karoserie.*, LDvere.*, PDvere.* WHERE WHERE IdKaro='Ka_22' AND AND...;...; ty ty povely povely CREATE, CREATE, DROP, DROP, DELETE, DELETE, INSERT INSERT atd atd co co to to je je???? kam kam se se to to píšp píše íše jednoduchý jednoduchý dotaz dotaz = Auto Model napsat napsat složitý složitý program program navigační navigační přístup přístup k k jednomu jednomu záznamu záznamu od Motor od nalezeného nalezeného záznamu Karoserie záznamu běhání běhání po po stromu Podvozek stromu datová datová nezávislost nezávislost navigace navigace v v DB DB - - zcela zcela závislá závislá na na návrhu návrhu stromu Dveře Levé Dveře Pravé stromu teoretický teoretický základ základ žádný žádný [všeobecně [všeobecně přijímaný] A_111 přijímaný] Data A_22 dotazovací dotazovací [manipulační] [manipulační] jazyk běhej běhej si si po po DB DB jak jak jazyk chceš chceš Mo_111 Ka_111 Po_111 žádný žádný dělěj dělěj si si to to jak jak chceš chceš povely povely [tudíž] DL_111 [tudíž] DP_111 DL_22 DP_22 čti žádné čti nejdřív nejdřív tohle tohle a pak pak zas zas jinohle jinohle žádné realizace realizace [každého] [každého] dotazu já jádo do toho toho nebudu nebudu dotazu mluvit mluvit program program nechci se v tom vůbec vrtat Mo_22 Ka_22 Po_22 Najdi Najdi Karoserii s s Id= Id= Ka_22 Ka_22 CALL CALL (...) (...) nechci se v tom vůbec vrtat a nastav nastav se se ve ve stromu stromu klidně klidněsi Čti ČtiRodiče si to to pobíhání [Karoserii zoptimalizuj -> -> Ka_22] Ka_22] CALL CALL (...) (...) když Čti ČtiDítě mi Dítěmi LevéDveře dášd dobře [-> [-> DL_22] DL_22] CALL CALL (...) (...) Čti ČtiDítě DítěPravéDveře [-> [-> DP_22] DP_22] CALL CALL (...) (...) -- to co -- Dotaz chci Dotaz Realizován 52

Povely - co to je? PředRelační Hierarchické co to je? ty povely Auto ty povely CREATE, CREATE, DROP, DROP, DELETE, DELETE, INSERT INSERT atd atd co co to to je je???? kam kam se se to to píšp píše íše Model Síťové Síťové Motor Karoserie Podvozek Dveře Levé Dveře Pravé SQL SQL SELECT Auto.*, Auto.*, Karoserie.*, LDvere.*, PDvere.* WHERE WHERE IdKaro='Ka_22' AND AND...;...; A_111 Mo_111 Ka_111 Po_111 DL_111 DP_111 Data A_22 Mo_22 Ka_22 Po_22 DL_22 DP_22 CALL CALL (...) (...) Call...; IF... ELSE CALL CALL (...) (...) END IF; CALL CALL (...) (...) Call...; IF... CALL CALL (...) (...) ELSE END IF; 53

Jazyk pro ovládání relační DB 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 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 a to to prosím m proč? i i jáj jáse ptám

Základy SQL 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 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 lní jazyk programový přístup k databázi

SQL rozdělen lení SQL DDL 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ávnění) 60

SQL rozdělen lení SQL DDL Create Alter Drop DML Insert Update Delete Select DCL Grant Revoke 61

SQL rozdělen lení SQL DDL Create Alter Drop Rename DML Insert Update Delete Select Truncate DCL Grant Revoke 62

SQL rozdělen lení SQL DDL Create Alter Drop DML Insert Update Delete Select DCL Grant Revoke 63

Povely - kam se to píšp íše e? ty ty povely SQL se se posílaj poštou nebo jak se se do do te te DB 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 Požadavek Požadavek SQL SQL SŘDD Databáze Výsledek Výsledek (data) (data) (chyba) (chyba) uživatel [pomocí klienta] zadává povel SQL SQL --> --> DB DB stroji [server] je-li je-li povel špatně DB DB stroj stroj označí chybu je-li je-li povel dobře je je proveden + uživatel dostane výsledky

Zadávání povelů SQL Požadavek Požadavek SQL SQL SŘDD Databáze Výsledek Výsledek (data) (data) (chyba) (chyba) povel je je prověřen syntakticky odpovídá gramatice povelů? semanticky oslovuje databázi známé objekty? jsou jsou jména takových objektů v katalogu DB DB?

a zas něco jiného

DB stroje [SŘDB] - výrobci Placené Neplacené Oracle [Ellison 11g] DB2 [IBM 9.7] SQL Server[2008] [MS] Sybase Informix [dnes IBM] MySQL [5.1 5.5 6.0] PostgreSQL [Ingres 8.3 9] Firebird [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

DB2 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

SQL Server relační a analytický DBS [1990-92] Microsoft Access a Microsoft FoxPro 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 nejrozšířenější neplacený [Open Source] relační DBS velmi rychlý pro čtení 1995 Švédská společnost MySQL AB 2008 akvizice Sun + MySQL [1 miliarda $] 2010 leden Oracle koupil Sun Microsystems verze 5.1 stabilizovaná 5.5 před uvolněním 6.0 ve vývoji

PostgreSQL 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 příprava -> 9.1 www.postgresql.org www.postgres.cz

Firebird FirebirdSQL FirebirdSQL 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 Placené Neplacené Oracle [Ellison 11g] DB2 [IBM 9.7] SQL Server[2008] [MS] Sybase Informix [dnes IBM] MySQL [5.1 5.5 6.0] PostgreSQL [Ingres 8.3 9] Firebird [Interbase Borland] [2.5 3.0-vyvoj]

Řádkový klient Firebird 77

Klient DB2 [IBM] 78

Klient DB2 [IBM] 79

Klient MySQL - Query Browser 80

Klient MySQL - Query Browser 81

Klient MySQL - Workbench 82

Klient MySQL - Workbench 83

Klient Oracle - SQL Developer 84

Klient Oracle - SQL Developer 85

Klient Oracle - Bentic Golden 86

Klient Oracle - Bentic Golden 87

Klient PostgreSQL - pgadmin III 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ů Oracle Oracle Oracle Oracle Express 11g 11g DB2 DB2 IBM IBM DB2 DB2 Express-C 9.7 9.7 SQL SQL Server Server Microsoft SQL SQL Server Server Express [SQL [SQL Server Server 2008] 2008] Sybase Sybase Adaptive Server Server 15.0 15.0 -- --Linux

a vzhůru dovnitř SQL

SQL SQL DDL Data Definition Language Definice a údžba DB objektů Create Alter Drop 91

Sql Inside Create Create Schema Nakup; Nakup; ok Drop Drop Schema Nakup; Nakup; ok Create Create Schema 1234; 1234; er 92

každé jméno má své jméno