Marketingová komunikace Kombinované studium Skupina N9KMK3PH (vm3aph) 1. soustředění Mgr. Pavel Vávra 9103@mail.vsfs.cz http://vavra.webzdarma.cz/home/index.htm
Co nás čeká I. Úvod do teorie DB systémů II. Vývoj a perspektivy, DB systémy v marketingovém prostředí III. Relační databáze IV. Vlastní práce v databázovém nástroji V. Databáze jako informační zdroj pro manažera Pohodlný život a lehko získané požitky ani nepřinášejí tělu prospěch, jak potvrdí každý učitel tělocviku, ani nevštípí duši nějaké hodnotné vědomosti. Naproti tomu vytrvalá námaha nás připraví k ušlechtilým a dobrým činům, jak tvrdí mudrci. - Sókratés -
Literatura Teorie Palovská H.: Databáze, http://nb.vse.cz/~palovska/uds/ Pokorný J.: Databázové systémy a jejich použití v informačních systémech akademia, 1992 Pro experty: Jeffrey D. Ullman and Jennifer Widom: A First Course in Database Systems, Prentice Hall, 1997 (Kniha má přidělenu WWW stránku se slidy, cvičeními a dalšími infromacemi ke kurzu: http://wwwdb.stanford.edu/~ullman/fcdb.html) MS Access a databáze Northwind Palovská H.: Databáze jako informační zdroj pro uživatele, Praha, Vysoká škola ekonomická, 2004 Dostupné z WWW: http://nb.vse.cz/~palovska/uzida/skripta.zip knihovna VŠFS MS Access (obecný pohled): Písek S., Databáze v Accessu v rekordním čase, Praha: Grada Publishing, 2003. ISBN 80-247-0572-9. MS Access (2007 nová verze): Kruczek A., Microsoft Office Access 2007 : podrobná uživatelská příručka, Brno : Computer Press, 2007. ISBN 978-80-251-1608-1. Poděkování za cenné zdroje informací RNDr. Heleně Palovské, Ph.D.
Podmínky úspěšného ukončení předmětu Vytvoření databáze dle návrhu (při cvičení na soustředění) vypracování zadaných úloh (samostudium) Dotazy k organizaci? Kontakt v ISu: 9103@mail.vsfs.cz
Co nás čeká: 1. soustředění 12.12.2009 Úvod do teorie databázové systémů Historie a vývoj DB systémů, architektury, modely Relační databázový model Perspektivy, další typy databázových systémů Využití DB systémů v marketingovém prostředí Relační databáze Návrh datové základny E-R diagram, převod do relačního schématu Normalizace databázového schématu Úvod do jazyka SQL MS Access Úvod do prostředí nástroje Vytvoření vlastní databáze dle zpracovaného návrhu Vytváření dotazů
Úvod do teorie databázových systémů Historie Architektura Modely
Cílem Cílem předmětu je získat přehled o možnostech a principech databázového zpracování, získat v tomto směru znalosti potřebné pro manažerské rozhodování a strategické řízení.
Informace vs. znalosti Pro rozhodování a strategické řízení potřebujeme: Znalosti Vzdělání Zkušenosti Informace Data Informovat = podporovat rozhodování a řízení, závislé na znalostech ve vztahu ke konkrétnímu rozhodovacímu postupu výjimky v datech se ignorují.
Informační systém Informace - strategickým zdrojem pro fungování systémů. Informační systémy - založeny na datech. Podnikové procesy - propojeny s funkcemi informačního systému. Informačním systémem - organizace údajů vhodná pro systémové zpracování dat Zpracování dat - sběr, uložení a uchování, zpracování, vyhledávání a vydávání informací o nich, to vše pro účely rozhodování
Databázový systém?
Databázový systém Systém pro ukládání dat a jejich následné zpracování Data + vztahy Účelně členěno
Historický vývoj DB systémů Manuální zpracování dat kartotéky sčítání lidu v USA (1880), 36 otázek, 7 let, 500 úředníků (65 mil.) Strojové Děrnoštítkové stroje Počítačové Vynález transistoru systémy pro hromadné zpracování dat.
Papírové kartotéky nedávná historie http://www.ustrcr.cz
Dnes? Multimediální databáze
Dnes? Multimediální databáze Opravdu?
Počítačové zpracování dat Historie agendové zpracování (ad-hoc naprogramované úlohy) Problémy Nároky na zpracovatele Redundance Integrita Dosažitelnost Izolovanost Současný sdílený přístup Ochrana proti zneužití Řešení?
Počítačové zpracování dat Oddělení programu na zpracování dat a dat samotných => databázové zpracování dat
Databázový systém DBS = SŘBD + data + technické prostředky SŘBD - systém řízení báze dat spravuje datovou základnu Datová základna velké množství persistentních (trvale dostupných) spolehlivých a sdílených dat Cílem: odstínění uživatele (aplikace) od technických detailů
Služby SŘBD sdílení dat, paralelní přístup nezávislost aplikací na fyzickém uložení dat jazyk přístupu k datům ochrana před neoprávněným přístupem a poruchami kontrola konzistence dat integritní omezení transakce velké objemy dat
Další přínosy zavedení SŘBD Vznik důmyslných architektur DB systémů při snaze zaručit: Dosažitelnost Neizolovanost dat přímo do programů Současný sdílený přístup Systém ochrany proti zneužití Transakce Distribuované transakce Vznik různých modelů SŘBD, k zajištění: Redundance Integrita Vznik standardů pro jazyky na: Manipulace s daty řízení přístupu (ochrany proti zneužití) automatizace úloh
1. Architektury DB systémů A) Architektura typu mainframe
1. Architektury DB systémů B) Architektura typu PC file server
1. Architektury DB systémů C) Architektura klient/server (dvouvrstvá)
1. Architektury DB systémů D) Architektura vrstvená (vícevrstvá)
1. Architektury DB systémů E) Distribuovaný databázový systém
2. Modely SŘBD Popisuje uspořádání dat v SŘBD a vztahy mezi nimi 1960 1970 hierarchický, síťový 1970-1980 relační 1990 -> objektový, objektově-relační
2. Modely SŘBD - hierarchický Data jsou organizována do stromové struktury. Každý záznam představuje uzel ve stromové struktuře, vzájemný vztah mezi záznamy je typu rodič/potomek. ODDĚLENÍ číslo oddělení, jméno oddělení, vedoucí MÍSTNOST číslo místnosti, počet židlí ZAMĚSTNANEC číslo zam., jméno zam., dat. nar., vzdělání, FUNKČNÍ HISTORIE datum, funkce DĚTI jméno dítěte, datum narození
2. Modely SŘBD - hierarchický Konkrétní struktura dat pak může vypadat takto:
2. Modely SŘBD - hierarchický Použití hierarchického modelu je vhodné tam, kde i zájmová realita má hierarchickou strukturu. Nevýhody modelu: v některých případech nepřirozená organizace dat složité operace vkládání a rušení záznamů duplicity
2. Modely SŘBD - síťový Zobecněný hierarchický FAKULTA jméno_fak, adresa zaměstnává vychovává ZAMĚSTNANEC č_zam, STUDENT č_st, přednáší si_zapsal PŘEDNÁŠKA č_před, název ZÁPIS č_před,č_st, známka je_zapsána
2. Modely SŘBD - síťový Zobecněný hierarchický Nevýhody modelu: obtížná změna jeho struktury duplicity MFF,Ke Karlovu 3, Praha 2 B65,... J45,... T32,... A81,...
2. Modely SŘBD - relační 1970 Edgar Fred Codd (později IBM) Relační - model vychází z matematického pojmu relace Mnoho implementací dnes s úpravami základem pro většinu komerčních SŘBD Později, po rozvoji objektových modelů objektověrelační
2. Modely SŘBD - relační Operace relační algebry sjednocení R S průnik R S rozdíl R S kartézský součin R S projekce R [Ai, Aj,,Ak] (restrikce) selekce R (podmínka) (join) spojení R (podmínka spojení) S
2. Modely SŘBD - objektový Díky rozmach objektově orientovaných programovacích jazyků Objekt vs. třída, dědění Nejen data, ale i metody Objekty mohou být složité Výhoda snadná práce pro programátory Nevýhoda nesnadná práce pro uživatele
2. Modely SŘBD objektověrelační Dnes nejpoužívanější model Rozšířené standardní relační databáze Rozšířené o některé objektové rysy Řízení chování dat v reakci na jejich změny Triggery uložené procedury nové datové typy pohled na řádky tabulek jako na objekty
2. Modely SŘBD objektověrelační Rozšíření nabídky datových typů BLOB velké binární datové objekty (obrázky, audio, video, technická data) Dlouhé texty CLOB (XML) Časová razítka Časové intervaly Logické odkazy Možnost uživatelsky definovaných typů => obrovský prostor pro kustomizaci Doplňující balíky možnost dokoupení dalších objektových a datových typů
3. Databázové jazyky Centrální popis dat Formalizovaný popis přístupu k datům Uživatel <-> SŘBD Závislý na Modelu SŘBD (hierarchický, síťový, relační, objektový) Samotné implementaci SŘBD Dotazovací jazyky (např.) Relační: SQL (Structured Query Language) Objektový: OQL (Object query language)
3. Databázové jazyky Příklady SQL: SELECT isbn FROM kniha, výtisk WHERE kniha.id = výtisk.kniha_id AND výtisk.rok_vydání > 2008 (Co je výsledkem?) OQL: SELECT STRUCT(Pracovník: Z.Jméno, Dítě: D.Jméno, ŠkolaDítěte: D.Navštěvuje.Název, AdresaŠkolyDítěte: D.Navštěvuje.Adresa) FROM Z IN Zaměstnanec, D IN Z.Děti WHERE Z.Plat<15000 (Výsledkem dotazu je multi-množina struktur)
Perspektivy Další typy databázových systémů
Další typy databázových systémů Perspektivy Multimediální databáze XML databáze XML formát? Fulltextové databáze Fuzzy dotazování Prostorová data Temporární databáze, verzování
Využití databázových systémů v marketingovém prostředí
Postavení systému řízení báze dat Informační systémy bez databáze? Marketingové informační systémy bez databáze?
Marketingové informační systém Marketingový informační systém (marketing information system) zahrnuje: Lidi Zařízení postupy zajišťující shromažďování třídění, analyzování, vyhodnocování včasnou distribuci potřebných a přesných informací pro pracovníky, kteří činí marketingová rozhodnutí.
Marketingové informační systémy orientace na systematický proces poskytování informací potřebných pro účinné řízení marketingové strategie Úkolem: vhodná aplikace výzkumných metodologií využití existujících zdrojů dat zpracování informací => pro strategická rozhodování
Marketingové informační systémy Podpora plánování, optimalizace a realizace kampaní Integrace s CRM komunikační kanály Customer profiling každý zákazník je jedinečný profilová databáze Cílený marketingový obsah založený na metadatech v internetových službách
Marketingové informační systémy Databázový marketing Datové sklady (data warehouse) Analytické nástroje demografická a obchodní charakteristika zákazníka Data mining predikce vývoje do budoucnosti Analýza asociací analýza nákupního koše spotřebitele Základem většinou relační databáze
Relační databázový model
Relační (objektově-relační) DB systémy Oracle MS SQL Server Sybase PostgreSQL IBM DB2
Relační model Struktura Struktura je dána jednoduchou tabulkou. Tabulka se skládá z řádků a sloupců. Sloupce datové typy Relace - vztah mezi dvěma tabulkami. Pomocí relací můžeme vyjádřit vztah mezi entitami.
Relační model datové typy Datové typy Text Měna Malé celé číslo Text zvolené maximální délky Číslo se zvolenou přesností Datum Logické ano/ne atd. (závislé na konkrétní implementaci SŘBD)
Relační model relace Relace Obecně vztah mezi množinami entit: Vztah 1:1 X "je vedoucím katedry Y (vedoucím katedry může být právě jedna osoba, vést lze pouze jednu katedru) Vztah 1:M X1, X2,, Xn "je členem katedry Y (za předpokladu, že každý vyučující může být členem právě jedné katedry, katedra obsahuje více vyučujících) Vztah M:N X1, X2,, Xn učí předmět Y1, Y2,, Yn (učitel může učit více předmětů, předmět může vyučovat více učitelů)
Relační model vztahy Další typy vztahů Unární 1:1, 1:M, M:N N-ární Vztahy mezi více entitami stejného typu Např.: učitelé učí předměty ve třídách, vztahy učitel a předmět (M:N) učitel a třída (M:N) Předmět a třída (M:N) => vztah tří entit: učí (učitel, předmět, třída)
Relační model integrita Integrita Entitní Jednoznačnost unikátní klíč záznamů v tabulce Doménová každá hodnota v daném sloupci má vyžadovaný typ Referenční cizí klíče (foreign key) integrita záznamů ve více tabulkách pouze jedním směrem dceřiná tabulka
Návrh datové základny relační databáze E-R diagram
Relační databáze - připomenutí 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ů
Relační databáze Čtyři základní operace 1. Výběr záznamů 2. Přidávání nových záznamů 3. Změna stávajících záznamů 4. Mazání záznamů Záznamy vkládány do tabulek, mezi záznamy se vytvářejí vazby pomocí cizích klíčů
Relační databáze Atomické položky
Relační databáze Triggery Uložené procedury Použit jazyk SQL
Relační model návrh Životní cyklus návrhu databáze (datové základny) 1. Zadání 2. Sběr požadavků 3. Analýza pochopení požadavků, vyjasnění --- 4. Návrh konceptuální model --- 5. Implementace návrhu 6. Testování, předání do provozu --- 7. Rutinní provoz
Relační model návrh 4. Návrh - Identifikace entit - Zjištění vlastností entit - Identifikace vztahů mezi entitami Výstupem: Konceptuální model E-R diagram (Entity Relationship)
Relační model návrh Příklad: učitel(é) vyučuj(e/í) předmět(y) a) Identifikace entit Entity: učitel, předmět
Relační model návrh Příklad: učitel(é) vyučuj(e/í) předmět(y) b) Zjištění vlastností Učitel: Učo, jméno, příjmení Předmět: kód, název
Relační model návrh Příklad: učitel(é) vyučuj(e/í) předmět(y) c) Identifikace vztahů mezi entitami Učitel vyučuje Předmět (učitel ale nutně nemusí vyučovat každý předmět čárkovaně)
Relační model návrh Příklad: učitel(é) vyučuj(e/í) předmět(y) c) Identifikace vztahů mezi entitami Předmět je vyučován Učitelem (Předmět musí mít alespoň jednoho učitele plná čára)
Relační model návrh Příklad: učitel(é) vyučuj(e/í) předmět(y) c) Identifikace vztahů mezi entitami Předmět může být vyučován i více učiteli Učitel může vyučovat i více předmětů => vztah N:M
Relační model návrh 5. Implementace návrhu Převod konceptuálního schématu do relačního schéma: 1. Odvozené atributy 2. Absorpce/separace typů entit 3. Identifikace (klíče) 4. Pro každý typ entity tabulku 5. Vztahy 1:1 do samotné tabulky 6. Vztahy N:M do samotné tabulky (složený klíč) 7. Vztahy 1:N do cizích klíčů 8. Vícehodnotové atributy umělý entitní typ a stejně jako 1:N 9. Složené atributy rozdělení do sloupců (někdy nový entitní typ) 10. Integritní omezení převod do SQL (triggery apod.) tzv. postup shora dolů
Relační model návrh 5. Implementace návrhu Převod konceptuálního schématu do relačního schéma: Viz 3 a 4 Tabulka Učitel, primární klíč učo Tabulka Předmět, primární klíč kód Viz 6 Vztah N:M => tabulka Učitel_Předmět
Relační model návrh - příklad
Relační model návrh Proč konceptuální model? Srozumitelný a věcně správný model, na jehož základě bude databáze navržena srozumitelný, přehledný vše podstatné věcně správný Společný základ pro chápání objektů aplikace uživateli, analytikem, správcem databáze i programátory Dokumentace
Relační model normalizace Pokud jsou data v tabulkách uložena, tak, že nesplňují požadavky tzv. normálních forem => nenormalizované tabulky Normalizace proces odstraňování nedostatků (redundance, nemožnost správné aktualizace dat apod.) = změna relačního schématu databáze tzv. postup zdola nahoru Běžně uváděno 5 normálních forem (v praxi většinou tabulky v třetí normální formě)
Relační model normalizace 1. Každý atribut obsahuje pouze atomické hodnoty 2. Každý neklíčový atribut je plně závislý na primárním klíči 3. Všechny neklíčové atributy musí být vzájemně nezávislé 4. Tabulka popisuje pouze příčinnou souvislost mezi klíčem a atributy 5. Relaci již není možno bezztrátově rozložit
Relační model 1. normální forma 1. NF = Každý atribut obsahuje pouze atomické hodnoty pouze výslovným zopakováním požadavku relačního databázového modelu, že atributy jsou atomické Jinak je tabulka v nulté normální formě.
Relační model 1. normální forma 1. NF = Každý atribut obsahuje pouze atomické hodnoty
Relační model 2. normální forma 2. NF = 1. NF + každý neklíčový atribut je plně závislý na primárním klíči Tzn. data závisí na celém klíči (ne jen na jeho části) Jméno (klíč) Škola (klíč) WWW školy Funkce Fakulta Jan Novák VŠE www.vse.cz Rektor FI Jan Novák VŠFS www.vsfs.cz Učitel KME Problém: www adresa školy je závislá pouze na části složeného klíče (jen Škola, ne Jméno + Škola) Řešení: rozpad na dvě tabulky: Učitel a Škola
Relační model 3. normální forma 3. NF = 2. NF + Všechny neklíčové atributy musí být vzájemně nezávislé Tzn. neklíčová data jsou závislá jen na klíči a ne mezi sebou = není žádná funkční závislost mimo klíč Učo (primární klíč) Jméno Zařazení Škola WWW školy 1 Jan Novák Učitel VŠE www.vse.cz 2 Jan Novák Rektor VŠFS www.vsfs.cz Problém: neklíčové atributy Škola a WWW školy jsou mezi sebou závislé Řešení: rozpad na dvě tabulky: Učitel a Škola
Relační model normální formy Další NF jen pro případné zájemce Viz skripta RNDr. Heleny Palovské, Ph.D. Popř. WWW
Úvod do jazyka SQL Structured Query Language
SQL jazyk 4 základní operace relační databáze které to jsou?
SQL jazyk 4 základní operace relační databáze Výběr záznamů Přidávání nových záznamů Změna stávajících záznamů Mazání záznamů
SQL jazyk 4 základní operace relační databáze Výběr záznamů - SELECT Přidávání nových záznamů Změna stávajících záznamů Mazání záznamů
SQL jazyk 4 základní operace relační databáze Výběr záznamů - SELECT Přidávání nových záznamů - INSERT Změna stávajících záznamů Mazání záznamů
SQL jazyk 4 základní operace relační databáze Výběr záznamů - SELECT Přidávání nových záznamů - INSERT Změna stávajících záznamů - UPDATE Mazání záznamů
SQL jazyk 4 základní operace relační databáze Výběr záznamů - SELECT Přidávání nových záznamů - INSERT Změna stávajících záznamů - UPDATE Mazání záznamů - DELETE
SQL jazyk Konstrukce příkazu pro výběru záznamů SELECT seznam polí FROM seznam tabulek WHERE podmínky Vyber Jméno z tabulky Učitel, kde Jméno je Novák SELECT Jméno FROM Učitel WHERE Jméno= Novák
SQL jazyk Konstrukce příkazu pro výběru záznamů SELECT seznam polí FROM seznam tabulek WHERE podmínky Vyber Jméno z tabulky Učitel, kde Jméno je Novák SELECT Jméno FROM Učitel WHERE Jméno= Novák
SQL jazyk Konstrukce příkazu pro výběru záznamů SELECT seznam polí FROM seznam tabulek WHERE podmínky Vyber Jméno z tabulky Učitel, kde Jméno je Novák SELECT Jméno FROM Učitel WHERE Jméno= Novák
SQL jazyk Konstrukce příkazu pro výběru záznamů SELECT seznam polí FROM seznam tabulek WHERE podmínky Vyber Jméno z tabulky Učitel, kde Jméno je Novák SELECT Jméno FROM Učitel WHERE Jméno= Novák SELECT Učo FROM Učitel WHERE NOT Jméno= Novák SELECT Jméno, Příjmení FROM Učitel WHERE Učo>1000 SELECT U.Jméno, U.Příjmení FROM Učitel U, Škola S WHERE S.Učo_Učitele=U.Učo AND NOT S.Funkce= Rektor
SQL jazyk Dobrá zpráva DB nástroje mají často nástroj pro vizuální sestavování dotazů Špatná zpráva Může vést k zavádějícím výsledkům, pokud použito nesprávně
Databázové systémy v prostředí firmy
Databázové systémy v prostředí firmy
Pokročilé DB uživatelské nástroje Správa a analýza transakčních dat Business Intelligence Reporting transakční data DWH Analytické BI nástroje Databázové systémy pro osobní použití (MS Access)
MS Access jak k datům?
MS Access jak k datům?
MS Access jak k datům? 3. Možnost Samostatná izolovaná databáze pouze na disku PC Osobní použití Použijeme pro účely výuky
MS Access úvod Seznámení s prostředím DB nástroje MS Access Použijte databázi Northwind - stáhněte ji prohlížečem z adresy http://vavra.webzdarma.cz/download/nw_reduced.mdb vytvořte kopii souboru na disk do složky R:\MK_UDS_D, pojmenujte ji podle vzoru UČO.mdb (např. 10123.mdb) Databázi otevřete
MS Access - prostředí Tabulky Dotazy Formuláře Sestavy Stránky Makra Moduly Skupiny Zástupci
MS Access - prostředí Nástroje Relace Správa databáze Možnosti
Vytvoření vlastní MS Access databáze dle zpracovaného návrhu
MS Access vlastní DB Vytvoření vlastní MS Access databáze dle zpracovaného návrhu
MS Access vlastní DB Konceptuální schéma Relační schéma: Tabulka Učitel, primární klíč učo Tabulka Předmět, primární klíč kód Vztah N:M => tabulka Učitel_Předmět
Tabulka Učitel
Tabulka Předmět
Tabulka Učitel_předmět Složený klíč
MS Access relace
MS Access referenční integrita
Analytická dokumentace
Analytická dokumentace
Analytická dokumentace Výsledkem: automaticky generovaná sestava
MS Access referenční integrita
MS Access referenční integrita
Jednoduchý dotaz Nový jednoduchý dotaz (návrhové zobrazení) Přidání tabulky Učitel Jak by vypadal SQL SELECT?
SQL Jak by vypadal SQL SELECT? SELECT Učitel.Učo, Učitel.Jméno, Učitel.Příjmení FROM Učitel WHERE Učitel.Jméno="Jan" OR Učitel.Jméno="Pavel";
Dotaz přes více tabulek Nový dotaz (návrhové zobrazení) Přidání všech tří tabulek
Dotaz přes více tabulek Výběr polí Kód, Název z tabulky Předmět Učo, Jméno z tabulky Učitel
Dotaz přes více tabulek Spuštění uloženého dotazu
Vytvoření formuláře Průvodce formulářem
Vytvoření formuláře Návrh formuláře