2. přednáška Databáze, využití MS Excel Úvod do databázových systémů B Ing. David Chudán 2. přednáška Databáze, využití MS Excel
Obsah přednášky Teoretické základy databázových systémů (slajdy 3-34) MS Excel (slajdy 35-39) Příklady na cvičení (slajdy 40-41) Zdroje (slajd 42) 2
Co je to databáze <<< Kartotéka Informace neuspořádané
Pojem databáze Databáze (DB) = množina dat (báze dat, zakódované informace) a nástrojů, které s těmito daty manipulují. Data jsou organizovány v tabulkách Databáze je uložená na disku v souboru V přeneseném smyslu pojmem databáze označuje i databázový informační systém Databáze lze vytvářet v programech MS Access, MS SQL Server, FoxPro, Sybase, Oracle, MySQL, OpenOffice.org Base, aj.
Příklady databází Pacienti (jméno, zdravotní stav, léky, …) Knihy (název, autor, rok vydání, …) Sklad (název, číselný kód, množství, …) Obyvatelé města (jméno, bydliště, …) Pozemky (číslo, místo, vlastník, …) Sbírka (název, datum získání, …) Zákazníci (jméno, nákup, …)
Role běžný uživatel pokročilý uživatel aplikační programátoři běžná uživatelka správce databáze
Přístup k datům DATA aplikace Sdílení dat aplikacemi, paralelní přístup DATA aplikace Obrázek ilustruje a vysvětluje podstatu databázového přístupu. Vrstva odstiňující aplikace od ukládání dat a chránící data.
Technologická architektura aplikační server tenký klient tlustý klient SQL DATA SŘBD data SQL data Zeptat se na jejich zkušenosti SŘBD (DBMS) – systém řízení báze dat (database management system) – říká se mu databázový server – např. IBM DB2, Oracle, Informix, MS SQL Server, Sybase, …, MySQL, PostgreSQL, Firebird …
Tenký klient : např. web browser Aplikační server: např. Apache s PHP databázový server SQL data DATA Tenký klient : např. web browser Aplikační server: např. Apache s PHP Databázový server: např. MySQL
Aplikační logika je v tlustém klientovi: databázový server SQL tlustý klient DATA data Aplikační logika je v tlustém klientovi: –programován v C, Javě …, nebo v proprietárním prostředí příslušném k db serveru, nebo to může být i např. aplikace v MS Access. Databázový server může být např. Oracle…
„Klientská databáze“ např. MS Access, Paradox, DBase file server operační systém Datový soubor „klientská databáze“ „Klientská databáze“ např. MS Access, Paradox, DBase
Databázový server vs. file server Přístup k jednotlivým datovým položkám záznamů, nikoli k celému souboru názvy pro různé objekty databázové struktury na strukturu je možno se dotázat... Specifická přístupová práva k jednotlivým typům záznamů pro různé uživatele v rámci OS má k datovému souboru přístup pouze SŘBD
Databázový server vs. file server Zajišťování integrity a konzistence dat Validace vstupu Obnova po poruchách až k poslednímu konzistentnímu stavu Efektivní správa velkého objemu dat Konzistence - data jsou v souladu s explicitně formulovanými pravidly, zamýšlenými jako odraz zákonitostí fungujících ve skutečném světě, v té části, kterou data modelují. Centrální popis dat realizován a nazýván různě: datové slovníky, katalog dat, data repozitory (jeho součást). Popis dat umožňuje další, nové, předem neplánované užití dat.
Databázový systém (maximální) požadavky sdílení dat, paralelní přístup nezávislost aplikací na fyzickém uložení dat, logický přístup k datům, centrální popis dat ochrana před neoprávněným přístupem před poruchami kontrola konzistence dat velké objemy dat Konzistence - data jsou v souladu s explicitně formulovanými pravidly, zamýšlenými jako odraz zákonitostí fungujících ve skutečném světě, v té části, kterou data modelují. Centrální popis dat realizován a nazýván různě: datové slovníky, katalog dat, data repozitory (jeho součást). Popis dat umožňuje další, nové, předem neplánované užití dat.
Různé modely pro databázovou strukturu
Databázová struktura obecně Definují se typy záznamů výčet položek, jejich typů (domén) a jmen V typu záznamu může být určen primární klíč skupina položek k jednoznačné identifikaci záznamu užití v relačních a objektových databázích Záznamy mohou být vyhledávány navigací podle odkazů mezi záznamy v síťových a objektových databázích Vyhledávat se může také sekvenčně hierarchických databázích když to nejde jinak
Data a vztahy mezi nimi Praha 4 Jan Sládkovičova 13 690318/1478 Adresa-město Jméno 690318/1478 Praha 4 Sládkovičova 13 Jan 54 800 Kč Adresa-ulice Sídlo-ulice Má vedoucího Foto 31 Havlova 3 Prodej Je zaměstnán v Oddělení Základní plat Číslo dveří Adresa-město Jméno 855912/0671 Sezimovo Ústí Kollárova 4 Anna 22 400 Kč Je zaměstnána v Adresa-ulice Foto Základní plat
Relace, relační tabulky Relační databáze Zaměstnenec RČ Jméno Adresa-město Adresa-ulice Základní plat Foto Oddělení 690318/1478 Jan Praha 4 Sládkovičova 13 54 800 Kč Prodej 855912/0671 Anna Sezimovo Ústí Kollárova 4 22 400 Kč Relace, relační tabulky Oddělení Číslo dveří Název Sídlo-ulice Vedoucí Prodej Havlova 3 31 690318/1478 Cizí klíče Primární klíče
Relační databáze Data jsou organizována do tabulek Jeden záznam = jeden řádek nějaké tabulky Sloupce tabulky tvoří pole/položky záznamů Položky jsou atomické nejsou složeny z částí, které by nesly nějaký význam (ve světě aplikace) není v nich více údajů
Struktura relačního modelu Data v databázi jsou organizovány v tabulkách Jedna databáze může obsahovat i více tabulek Vztahy a vazby mezi tabulkami popisují tzv. relace Každá tabulka tvořena jednotlivými záznamy (řádek tabulky) Jeden záznam pro každého pacienta, knihu, pracovníka, … Každý záznam se skládá z určitých datových polí (sloupce tabulky), označují se též jako položky nebo atributy Např. jméno, příjmení, datum narození, atd., pro pacienta Struktura tabulky = jaká datová pole tabulka obsahuje Struktura databáze = jaké tabulky (a vztahy mezi nimi) tvoří celou databázi
Tabulka
Relační databáze Položky v relační databázi jsou atomické nejsou složeny z částí, které by nesly nějaký význam (ve světě aplikace) není v nich více údajů
Co jsou atomické položky? Nejsou atomické: Vysoká škola ekonomická W.Churchilla 4, 130 00 Praha 3 224-095-111 Vysoká škola finanční a správní Estonská 500, 101 00 Praha 10 210-088-800 271-741-597 Vnitřní struktura významů. Více hodnot se stejným významem.
Svět aplikace databázová struktura relační databáze Číslo objednávky Zákazník Zaměstnanec Datum objednávky Dodat dne 11074 SIMOB King, Robert 06.05.1998 03.06.1998 11075 RICSU Callahan, Laura 11076 BONAP Peacock, Margaret databázová struktura Číslo objednávky Výrobek Jednotková cena Množství Sleva 11074 16 436,25 Kč 14 5,00% 11075 2 475,00 Kč 10 15,00% 46 300,00 Kč 30 76 450,00 Kč 11076 6 625,00 Kč 20 25,00% 581,25 Kč 19 230,00 Kč Číslo výrobku Název výrobku Dodavatel 1 Chai Aux joyeux ecclésiastiques 2 Chang Exotic Liquids … 46 Spegesild Lyngbysild 76 Lakkalikööri Karkki Oy Objekt objednávky je rozlomen do dvou tabulek Efektivní zaznamenávání – výrobky, zákazníci Kód zákazníka Firma Adresa Město Země RICAR Ricardo Adocicados Av. Copacabana, 267 Rio de Janeiro Brazílie RICSU Richter Supermarkt Grenzacherweg 237 Ženeva Švýcarsko ROMEY Romero y tomillo Gran Vía, 1 Madrid Španělsko relační databáze
Datová pole vs. datové typy Pole tabulky mohou být, podle charakteru údaje, který obsahují, různého druhu (datového typu): Text Číslo (celé, reálné) Automatické číslo Datum Logická hodnota (ANO / NE) Memo (poznámka) Objekt OLE (např. obrázek) Hypertextový odkaz
Vlastnosti datového pole 1 Pole mají definovanou určitou délku, danou počtem znaků nebo míst u čísel, a taky formát Lze také definovat masku pole, tj. jak mají zadávané hodnoty vypadat (např. rodné číslo) S hodnotami v polích typu číslo lze provádět všechny aritmetické operace Hodnoty v polích typu číslo, text či datum lze uspořádat (vzestupně či sestupně) Pokud při výpočtu vznikne číslo, které se do pole nevejde, dojde k chybě Volitelná vlastnost „Nutno zadat (required) hodnotu“
Vlastnosti datového pole 2 „Primární klíč“ – speciální vlastnost, označení nějakého jiného pole Obvykle celé kladné číslo nebo automatické číslo, jedinečné pro každý záznam v celé tabulce Pole mohou mít určena omezení na zadávané hodnoty (tzv. ověřovací pravidlo) Omezovací text se vypíše, když pravidlo není splněno Předdefinovaná hodnota (default) Automaticky vyplněná hodnota, uživatel ji může přepsat Povolení nulové délky hodnoty (prázdné políčko) Indexování podle pole Pro rychlejší vyhledávaní
Relace Databáze jsou tvořeny jednotlivými tabulkami, vztahujícími se k určitému předmětu (osobě, činnosti) V DB knihovny je např. vhodné mít tabulky pro knihy, autory, apod. Tabulky jsou mezi sebou propojeny přes určitá pole, tomuto propojení se říká relace Relace zpřehledňuje databázi, zabraňuje vícenásobnému zadávání stejných údajů K propojení polí v záznamech v různých tabulkách se používají tzv. sekundární klíče V tabulce je pole, jehož hodnota se „odvolává“ na primární klíč v jiné tabulce
Typy relací Relace 1 : 1 Relace 1 : N Relace M : N 1 kniha – 1 autor (nepraktické a zbytečné) Relace 1 : N 1 autor – více knih Relace M : N Více autorů – více knih (rozšířeni relace 1 : N i „opačným“ směrem – 1 knihu může být i od více autorů) MS Access nabízí k zobrazení relacemi propojených záznamů v tabulkách tzv. vnořené datové listy U propojených záznamů v relaci 1 : N se po kliknutí na záznam na straně 1 relace otevřou záznamy z jiné tabulky
Význam databází Z předešlého stručného výčtu nasazení databázových aplikaci je zřejmý jejich obrovský význam. Dnešní společnost eviduje v databázích téměř všechno. Co není v databázích, vlastně neexistuje. (Parafráze na starý latinský výrok: „Qout non in actis est non in mundis.“) Problematika ochrany dat v databázích je velmi závažná! Více než 90% peněz v ekonomice nejsou fyzické peníze (bankovky, mince), ale jen čísla na účtech podniků a občanů, uložená v nějaké databázi v počítači nějaké banky. Databáze pacientů u lékařů obsahují často citlivé údaje, které mohou být proti nim zneužity.
Význam databází Současný rozvoj a masové rozšíření počítačů jsou v hlavní míře zásluhou nasazování DB aplikací. Vývoj počítačů stál (a stojí) stamiliardy dolarů, musela proto existovat oblast jejich nasazení, která tyto peníze byla (a je) schopna vydělat. Touto oblastí jsou právě databáze – firmy a instituce jsou za kvalitní, rychlou a dostupnou evidenci toho co potřebují ke své činnosti zaplatit nemalou částku. Žádné jiné využití (textové a tabulkové zpracování dat, grafika, multimédia, modelování a simulace, hry) by tyto částky na vývoj a hromadnou levnou velkovýrobu ICT v jejich počátcích nezajistilo.
MS Excel a databáze MS Excel nabízí databázové funkce, pomocí kterých je možné vypočítat například sumu, průměr, maximum, minimum a počet. Rozdíl oproti standardnímu použití těchto funkcí spočívá možnosti definovat určité podmínky, například maximum. Hodnoty nad toto maximum do výpočtu nebudou zahrnuty. Příklad: funkce DAVERAGE
Příklad – funkce DPRŮMĚR DPRŮMĚR(databáze;pole;kritéria) Databáze je oblast buněk, která tvoří seznam nebo databázi. Databáze je seznam souvisejících dat, ve kterých řádky souvisejících informací představují záznamy a sloupce dat jsou pole. První řádek seznamu obsahuje popisky sloupců. Pole určuje, který sloupec je ve funkci používán. Argument pole může být zadán jako text s popiskem sloupce v uvozovkách, například "Stáří" nebo "Výnos", nebo jako číslo představující umístění sloupce v seznamu: hodnota 1 představuje první sloupec, hodnota 2 druhý sloupec atd. Kritéria je oblast buněk, která obsahuje zadaná kritéria. Pro argument kritéria můžete použít libovolnou oblast, která zahrnuje nejméně jeden popisek sloupce a nejméně jednu buňku pod popiskem sloupce určující podmínku sloupce.
Řešený příklad, funkce DPOČET Vytvořte databázovou funkci, která vrátí počet hodnot, jejichž spotřeba je menší než 10 litrů a průměrná rychlost je větší než 55km/h.
Řešený příklad
Požadované DB funkce DPOČET - vrátí počet buněk obsahující čísla v poli (sloupci) záznamů databáze, které splňují zadaná kritéria. DPRŮMĚR – viz předchozí slide DSUMA – sečte čísla v poli (sloupci) záznamů databáze, která splňují zadaná kritéria
Procvičení I. V souboru Excel_DB: Vytvořte databázovou funkci, která vrátí počet hodnot, jejichž záznam v poli „tankováno“ je větší než 50. Vytvořte databázovou funkci, která vrátí počet hodnot, jejichž záznam v poli „průměrná rychlost“ je menší než 50 a zároveň „spotřeba“ je větší než 11.
Procvičení II. V souboru Excel_DB: Vytvořte databázovou funkci, která vrátí průměr hodnot sloupce „spotřeba“, jejichž záznam v poli „průměrná rychlost“ je větší než 80. Vytvořte databázovou funkci, která vrátí součet hodnot sloupce „km“, jejichž záznam v poli „spotřeba“ je menší než 9.
Procvičení III. Vytvořte vlastní tabulku, která bude obsahovat alespoň 4 číselné sloupce a 10 řádků. Tabulka a sloupce by měly být smysluplné, vyplněné hodnoty mohou být náhodné. Nad vytvořenou tabulkou vymyslete zadání alespoň 3 příkladů a příklady vyřešte.
Zdroje Kubačák, Martin. Tvorba databáze & MS Access 1,2 Dostupné na: dec52.lf1.cuni.cz/~mkuba/vyuka/files/P08-INF2009-2010-Databaze.ppt Palovská, Helena. Slajdy k předmětu Databázové systémy. Dostupné na: http://nb.vse.cz/~palovska/uds/databazove_systemy.pdf DPRŮMĚR. MS Office Excel. Dostupné na: http://office.microsoft.com/cs-cz/excel-help/dprumer-HP005209045.aspx