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