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