Informační systémy 7. 3. 2014 Základní pojmy DTB zpracování uENTITA - OBJEKT ucelá posloupnost položek popisuje objekt. Taková struktura položek, která má ucelený význam (zachycuje všechny potřebné údaje o sledovaném objektu) se nazývá záznamem (větou, recordem). Je to obvykle skupinová položka. u uMNOŽINA ENTIT – MNOŽINA OBJEKTŮ – DATOVÝ SOUBOR – OBSAH TABULKY umnožinu záznamu stejného typu, zaznamenávající ucelenou informaci o množině sledovaných objektů a uloženou na paměťovém médiu, nazýváme datovým souborem. Množiny záznamů si můžeme snadno představit ve tvaru tabulky, kde každý objekt je popsán jedním řádkem a každý atribut objektu je v jednom sloupci. u uDATABÁZE u Množinu datových souboru, uchovávajících data o nějakém uceleném úseku reality, nazýváme databází. Základní pojmy DTB zpracování uSYSTÉM ŘÍZENÍ BÁZE DAT – SŘBD uprogramový systém (prázdný, bez datových souboru a bez aplikačních programu), umožňující definování datových struktur a datových souborů, řešící fyzické uložení dat ve vnější paměti počítače, umožňující manipulaci s daty a formátování vstupních i výstupních informací, nazýváme systémem řízení báze dat. u uAPLIKAČNÍ ÚLOHA uAplikační úlohou nad SŘBD nazýváme konkrétní program napsaný pomocí programových prostředku použitého SŘBD nad konkrétní databází, pro tuto úlohu vytvořenou. Základní pojmy DTB zpracování uINFORMAČNÍ SYSTÉM u Aplikační úlohy nad společnou databází tvoří ucelený systém, nazývaný databázovým nebo informačním systémem (dále jen IS) nad použitým SŘBD. u u V tomto pojetí tedy IS rozumíme celek, řešící rozsáhlejší oblast aplikační, naprogramovaný v jednom SŘBD s vhodně navrženými datovými strukturami tak, aby všechny aplikační úlohy k nim měly optimální přístup. Řeší uložení, uchování, zpracování a vyhledávání informací a umožňuje jejich formátování do uživatelsky přívětivého tvaru. Vztahy mezi entitami (relace) u1:1 uV relaci 1:1 odpovídá jednomu záznamu v první tabulce maximálně jeden záznam v druhé tabulce a naopak jednomu záznamu v druhé tabulce maximálně jeden záznam v první tabulce. Vztahy mezi entitami (relace) u1:N uV relaci 1:N odpovídá jednomu záznamu v první tabulce žádný, jeden nebo více záznamů v druhé tabulce a naopak jednomu záznamu v druhé tabulce maximálně jeden záznam v první tabulce. Vztahy mezi entitami (relace) uN:N —V relaci N:N odpovídá jednomu záznamu v první tabulce žádný, jeden nebo více záznamů v druhé tabulce a naopak jednomu záznamu v druhé tabulce žádný, jeden nebo více záznamů v první tabulce. —Chcete-li vyjádřit relaci typu N:N, musíte vytvořit třetí tabulku, která se často nazývá spojená tabulka, jež rozdělí relaci typu N:N na dvě relace typu 1:N. Primární klíč z těchto dvou tabulek vložíte do třetí tabulky. Výsledkem je, že třetí tabulka zaznamená každý výskyt nebo instanci relace Vztahy mezi entitami (relace) uN:N Úrovně DBS uZpůsoby pohledu na data v databázi — —FYZICKÝ (INTERNÍ) – způsob fyzického uložení dat na disk —KONCEPTUÁLNÍ – popis struktury databáze (tabulek), popis vztahů mezi uloženými daty —EXTERNÍ – popis dat z pohledu uživatele, tj. uživatelské prostředí (formuláře, sestavy,…) Datové modely uZpůsob uložení dat v databázi — —Hierarchický —Síťový —Relační —Objektový Hierarchický DM uZáznamy jsou organizovány ve stromové struktuře uVÝHODY: uŘeší snadno a rychle vztahy 1:N uNezáleží na fyzické struktuře dat uNEVÝHODY: uProblémy při řešení vztahů M:N uProblémy při změně struktury dat Síťový DM uData jsou reprezentována kolekcemi záznamů a vztahů mezi nimi. uVÝHODY: uŘeší snadno a rychle vztahy 1:N i M:N uNezáleží na fyzické struktuře dat uRychlé vyhledávání uNEVÝHODY: uProblémy při změně struktury dat Relační DM uRDBS – relační databázový systém uInformace uchovávány v jednom typu objektu jsou uchovávány v tabulkách s určitou strukturou uTabulky jsou navzájem provázány relacemi uRelace usnadňují vyhledávání různých informací uložených v těchto tabulkách uV SOUČASNOSTI NEJPOUŽÍVANĚJŠÍ MODEL Schéma entitně-relačního modelu Relační DM Číslo objednávky Název výrobku 10456 003 10456 004 10457 101 10457 002 10457 001 10457 102 10458 006 10459 001 10459 004 Id zaměstnance Jména zaměstnanců Zaměstnán od 01 Jan Novák 1.2.2005 02 Emil Král 15.2.2001 03 Václav Nový 24.8.2002 Id výrobku Název výrobku Cena výrobku 001 Fausto 155 002 Funghi 125 003 Carpaccio 135 004 Hawai 140 005 Rustica 139 006 Trapolla 155 101 Instalate Beluco 125 102 Instalate Caesar 128 Číslo objednávky Datum objednávky Id zaměstnance 10456 12.8.2005 01 10457 12.8.2005 02 10458 13.8.2005 02 10459 13.8.2005 03 Relační tabulka Id výrobku Název výrobku Cena výrobku 001 Fausto 155 002 Funghi 125 003 Carpaccio 135 004 Hawai 140 005 Rustica 139 006 Trapolla 155 101 Instalate Beluco 125 102 Instalate Caesar 128 atributy záznamy Objektový DM —Vychází z principů objektově orientovaného přístupu —Objekt – datová struktura definovaná jako třída s určitými vlastnostmi a metodami —Komunikace mezi objekty probíhá pomocí zpráv —Výhody ◦Nejen statické, ale i dynamické chování objektů ◦Možné vytváření složitějších objektů ◦Snadnější zadávání dotazů Konceptuální model uSlouží k popisu dat v databázi nezávisle na jejich fyzickém uložení uUmožňuje zobrazit a popsat objekty v databázi a vztahy mezi nimi z hlediska jejich významu a chování uVýsledkem je implementačně nezávislé schéma obecně aplikovatelné v jakémkoli prostředí uZnázorňuje se v podobě ER diagramu, který definuje entity (třídy prvků), jejich atributy a relace (vztahy) mezi nimi Pojmy v ER-modelu uENTITNÍ TYP (v diagramu ) reprezentuje třídu entit (např. Zaměstnanec). uKaždý ENTITNÍ TYP má nějaké atributy (např. Jméno), z nichž některé mohou být identifikátory (jednoznačně určují instanci entity). uPokud ET nemá žádné identifikátory explicitně označené, jsou jimi všechny atributy dohromady (tzv. složený indikátor). Identifikátory mohou být více atributové. Vztahový typ uVT (v diagramu ) popisuje vztahy mezi jednotlivými entitami – s těmi entitami, se kterými je v nějakém vztahu, je spojen čarou. uVztah může mít danou i KARDINALITU (kolik entit z každé strany do vztahu vstupuje), která může být typu 1:1, 1:n, n:n a je značená vedle čáry spojující vztahový typ s entitou. uEntity ve vztahu mohou mít navíc povinné či nepovinné členství (vstupovat do něj vždy či někdy) Vztahový typ uVztahy mohou být buď binární nebo n-ární, ale více než ternární vztahy se většinou neobjevují. Vztahy mohou být i REKURZIVNÍ, tj. do vztahů vstupují entity stejného typu. uInstance vztahového typu je jednoznačně určena identifikátory instancí ve vztahu. uNěkteré entitní typy mohou být spolu identifikovány (nebo přímo identifikovány) vztahem – pak se nazývají slabé entitní typy. Vztahové typy Obr. Ukazuje ternární vtah s různými kardinalitami – klientovi někdo dodává zboží jednou až n-krát, pracovník dodává nula až n-krát zboží (tj. jde o nepovinné členství ve vztahu, můžou existovat pracovníci, kteří nic nedodávají) a zboží je vždy dodáváno právě jednou. Na zaměstnancích je zároveň ukázán rekurzivní binární vztah. Slabý entitní typ uObr. Ukazuje slabý entitní typ – automobil je identifikován SPZ a zároveň státem, ve kterém je registrován. ISA hierarchie uISA hierarchie je rozšíření ER diagramů o dědičnost entit - tj. rozdělení entitních typů na subtypy (a přidání dalších vztahů nebo atributů pro subtypy). V ISA hierarchii se povoluje pouze jednonásobná dědičnost, navíc potomci nějakého entitního typu musí být jednoznačně identifikováni předkem (tj. všechny entity v hierarchii sdílí identifikátor). Základní pojmy uKlíč (key) uJeden nebo několik atributů tabulky určený pro setřídění záznamů podle hodnot v tomto poli (numerický, textový) uUnikátní klíč uKlíč tabulky, ve kterém se každá hodnota atributu vyskytuje nejvýše jedenkrát uDuplicitní klíč uKlíč tabulky, ve kterém se každá hodnota atributu může vyskytovat vícekrát (u více různých záznamů) Základní pojmy uJednoduchý klíč uKlíč tabulky, který je tvořen pouze jediným atributem uNejčastěji se vyskytující typ klíče uI uměle vytvořený (id) uSložený klíč uKlíč tabulky, který je tvořen alespoň dvěma atributy uČasto součást tzv. spojovací tabulky Základní pojmy uPrimární klíč (primary key) uKlíč tabulky, který slouží k jednoznačné identifikaci záznamu uMusí být unikátní uOznačuje se PK uV jedné tabulce může být nanejvýše jeden primární klíč uCizí klíč (foreign key) uKlíč tabulky, který slouží k propojení (vytvoření relace) s primárním klíčem jiné tabulky uČasto obsahuje duplicitní hodnoty uOznačuje se FK uV jedné tabulce může být i více cizích klíčů ER model (postup vytváření) u1. Určení typu entit u - zvolení množiny objektů stejného typu u - např. Objednávka, Zaměstnanec, Výrobek u2. Určení typů relací u - vztahů, do kterých mohou příslušné entity vstupovat u - např. objednávka obsahuje výrobek u3. Určení atributů u - přiřazení jednotlivým entitám a vztahům u - např. Objednávka (číslo, datum, …) u4. Určení integritních omezení u - zpřesnění navrženého modelu u - např. atribut datum je datového typu Datum a čas ER model Id výrobku Název výrobku Cena výrobku 001 Fausto 155 002 Funghi 125 003 Carpaccio 135 004 Hawai 140 005 Rustica 139 006 Trapolla 155 101 Instalate Beluco 125 102 Instalate Caesar 128 atributy záznamy Relační tabulka Číslo objednávky Název výrobku 10456 003 10456 004 10457 101 10457 002 10457 001 10457 102 10458 006 10459 001 10459 004 Id zaměstnance Jména zaměstnanců Zaměstnán od 01 Jan Novák 1.2.2005 02 Emil Král 15.2.2001 03 Václav Nový 24.8.2002 Id výrobku Název výrobku Cena výrobku 001 Fausto 155 002 Funghi 125 003 Carpaccio 135 004 Hawai 140 005 Rustica 139 006 Trapolla 155 101 Instalate Beluco 125 102 Instalate Caesar 128 Číslo objednávky Datum objednávky Id zaměstnance 10456 12.8.2005 01 10457 12.8.2005 02 10458 13.8.2005 02 10459 13.8.2005 03 PK FK FK PK PK FK QBE (Query By Example) uQBE = dotaz podle vzoru, je rozhraní pro zadávání dotazů grafickou formou. Znalost konkrétního dotazovacího jazyka není vyžadování. uLze provádět základní relační operace (selekce, projekce, spojení), ale také další operace jako třídění, součty, apod. (v závislosti na konkrétním SŘBD). u Transakce uTRANSAKCE = posloupnost operací nad objekty BÁZE DAT, které realizují jednu nebo více ucelených operací z hlediska uživatele. uTransakce začíná vykonáním prvního příkazu nebo speciálním příkazem . uTransakce může skončit úspěšně nebo neúspěšně. uNeúspěch může vzniknout: poruchou hardware, chybou programového vybavení, chybnými daty, apod. Transakce uBod, od kterého lez považovat transakci z úspěšnou se nazývá bodem potvrzení. uInformace o změnách během transakce se ukládají do tzv. žurnálového (transakčního) souboru, teprve po dosažení bodu potvrzení se promítnou do báze dat. uPři vlastní transakci se data v bázi dat nemění, tzn. při chybě nebo poruše nedojde k porušení konzistentního stavu báze dat. SQL (Structured Query Language) uSQL = strukturovaný dotazovací jazyk. uStandardizovaný dotazovací jazyk používaný pro práci s daty v relačních databázích. uVznik v 70. letech 20. století (IBM – výzkum relačních databází) jako sada příkazů pro ovládání RD – vznik jazyka SEQUEL (Structured English Query Language). uCílem bylo vytvořit jazyk, ve kterém se příkazy tvoří syntakticky a v návaznosti na přirozený jazyk (angličtina). SQL uJazyk zahrnuje nástroje pro tvorbu databází (tabulek) a dále nástroje pro manipulaci s daty (vkládání dat, mazání, vyhledávání, atd.). uSQL patří mezi tzv. DEKLARATIVNÍ PROGRAMOVACÍ JAZYKY, což znamená, že kód jazyka SQL nepíšeme v samostatném programu, ale vkládáme jej do jiného programovacího jazyka, který je již procedurální. uSe samotným SQL můžeme pracovat pouze v případě terminálového přístupu na SQL server (skrze příkazový řádek). Příkazy jazyka SQL u uSQL příkazy se dělí do 4 zákl. skupin: uPříkazy pro MANIPULACI S DATY u(např.: SELECT, INSERT, UPDATE,…) uPříkazy pro DEFINICI DAT u(např.: CREATE, DROP,…) uPříkazy pro ŘÍZENÍ PŘÍSTUPOVÝCH PRÁV u(např.: GRANT, REVOKE,…) uPříkazy pro ŘÍZENÍ TRANSAKCÍ u(např.: START TRANSACTION, COMMIT,…) SQL uSQL se skládá z několika částí: uDDL – Data Definition Language – jazyk pro vytváření databázových schémat a katalogů, uSDL – Storage Definition Language – jazyk pro definici způsobu ukládání tabulek, uVDL – View Definition Language – jazyk pro návrháře a správce, určuje vytváření pohledů na tabulky, uDML – Data Manipulation Language – jazyk obsahující základní příkazy INSERT, UPDATE, DLEETE, SELECT. u uS jazykem DML pracují nejvíce koncoví uživatelé a programátoři databázových aplikací. SQL - uplatnění uSQL plní v současnosti celou řadu úloh, např.: uInteraktivní dotazovací jazyk - uživatel zapíše příkazy SQL do interaktivního SQL programu, který najde potřebná data a zobrazí je na obrazovce. uDatabázový programovací jazyk - k použití při tvorbě databázové aplikace. uJazyk pro správu databází - správci databází využívají SQL pro definici datových struktur a kontrolu uložených dat. SQL - uplatnění uKlient/server jazyk - programy pro počítače používají SQL pro komunikaci v lokální počítačové síti (LAN) s databázovými stanicemi (database servers), kde jsou uložena sdílená data. uJazyk distribuované báze dat - systémy spravující distribuované databáze, používají SQL jako doplněk pro distribuci dat mezi několika spojenými počítačovými systémy. uKomunikační jazyk SŘBD v LAN - v síti s několika různými SRBD je SQL jedinou cestou pro jejich vzájemnou komunikaci.