Použití databází na Webu



Podobné dokumenty
Databáze II. 1. přednáška. Helena Palovská

Databázové a informační systémy

Návrh a tvorba WWW stránek 1/14. PHP a databáze

Michal Krátký, Miroslav Beneš

Úvod do databází. Modelování v řízení. Ing. Petr Kalčev

Základy informatiky. 08 Databázové systémy. Daniela Szturcová

5. POČÍTAČOVÉ CVIČENÍ

Databázové a informační systémy Jana Šarmanová

Databázové systémy úvod

Úvod do databázových systémů

Databáze. Velmi stručný a zjednodušený úvod do problematiky databází pro programátory v Pythonu. Bedřich Košata

8.2 Používání a tvorba databází

Základy informatiky. 06 Databázové systémy. Kačmařík/Szturcová/Děrgel/Rapant

Databázové systémy. Doc.Ing.Miloš Koch,CSc.

Inovace a zkvalitnění výuky prostřednictvím ICT. Základní seznámení s MySQL Ing. Kotásek Jaroslav

Obchodní akademie a Jazyková škola s právem státní jazykové zkoušky Jihlava

Jazyk SQL databáze SQLite. připravil ing. petr polách

Databázové systémy a SQL

Databázové systémy. Cvičení 6: SQL

Databázové systémy trocha teorie

Univerzita Palackého v Olomouci Radek Janoštík (Univerzita Palackého v Olomouci) Základy programování 4 - C# 10.4.

Inovace a zkvalitnění výuky prostřednictvím ICT Databázové systémy MySQL základní pojmy, motivace Ing. Kotásek Jaroslav

Třídy a objekty. Třídy a objekty. Vytvoření instance třídy. Přístup k atributům a metodám objektu. $z = new Zlomek(3, 5);

Ukládání a vyhledávání XML dat

Úvod do databázových systémů

Databázové systémy, MS Access. Autor: Ing. Jan Nožička SOŠ a SOU Česká Lípa VY_32_INOVACE_1130_Databázové systémy, MS Access_PWP

Informační systémy ve zdravotnictví. 6. cvičení

Sada 1 - PHP. 14. Úvod do jazyka SQL

Databázové systémy Cvičení 5.2

Oracle XML DB. Tomáš Nykodým

Databáze SQL SELECT. David Hoksza

4. lekce Přístup k databázi z vyššího programovacího jazyka

Databázové systémy. - SQL * definice dat * aktualizace * pohledy. Tomáš Skopal

Informační systémy 2008/2009. Radim Farana. Obsah. Dotazy přes více tabulek

Databázové systémy II. KIV/DB2 LS 2007/2008. Zadání semestrální práce

Obsah přednášky. Představení webu ASP.NET frameworky Relační databáze Objektově-relační mapování Entity framework

DUM 12 téma: Příkazy pro tvorbu databáze

Semestrální práce z DAS2 a WWW

Databáze v MS ACCESS

KIV/ZIS cvičení 6. Tomáš Potužák

Databáze I. 1. přednáška. Helena Palovská

SQL - trigger, Databázové modelování

7. Integrita a bezpečnost dat v DBS

7. Integrita a bezpečnost dat v DBS

Vhodnost nasazení jednotlivých webových architektur, sdílení dat, perzistence, webové služby a REST, asynchronnost, messaging

KIV/ZIS cvičení 5. Tomáš Potužák

B0M33BDT Technologie pro velká data. Supercvičení SQL, Python, Linux

Databázové systémy I. 1. přednáška

Datové modelování II

2. blok část B Základní syntaxe příkazů SELECT, INSERT, UPDATE, DELETE

Operátory ROLLUP a CUBE

Ing. Přemysl Brada, MSc., Ph.D. Ing. Martin Dostal. Katedra informatiky a výpočetní techniky, FAV, ZČU v Plzni

MBI - technologická realizace modelu

Měřící systém se vzdáleným přístupem. Databáze

Aplikace je program určený pro uživatele. Aplikaci je možné rozdělit na části:

Verzování a publikace dat na webu za pomoci PostgreSQL

Datová vrstva informačního systému. Miroslav Beneš

Kurz Databáze. Obsah. Dotazy. Zpracování dat. Doc. Ing. Radim Farana, CSc.

Tvorba WWW stránek. přehled technologií používaných na webu principy jednotlivých technologií a možnosti jejich vzájemného kombinování

Databáze I. Přednáška 7

Přizpůsobení JSTL pro Google App Engine Datastore

Obsah. Kapitola 1. Kapitola 2. Kapitola 3. Kapitola 4. Úvod 11. Stručný úvod do relačních databází 13. Platforma 10g 23

RELAČNÍ DATABÁZOVÉ SYSTÉMY

Databáze pro evidenci výrobků

Fyzické uložení dat a indexy

Využití XML v DB aplikacích

Základy databází. O autorech 17 PRVNÍ ČÁST. KAPITOLA 1 Začínáme 19

O Apache Derby detailněji. Hynek Mlnařík

Obsah přednášky. Databázové systémy RDBMS. Fáze návrhu RDBMS. Coddových 12 pravidel. Coddových 12 pravidel

VYSOKÁ ŠKOLA BÁŇSKÁ TECHNICKÁ UNIVERZITA OSTRAVA FAKULTA STROJNÍ DATABÁZOVÉ SYSTÉMY ARCHITEKTURA DATABÁZOVÝCH SYSTÉMŮ. Ing. Lukáš OTTE, Ph.D.

Základy relačních databází, jejich využití v programování webu

Michal Krátký. Tvorba informačních systémů, 2008/2009. Katedra informatiky VŠB Technická univerzita Ostrava. Tvorba informačních systémů

Klíčová slova: dynamické internetové stránky, HTML, CSS, PHP, SQL, MySQL,

Archivace relačních databází

předměty: ukončení: Zápočet + Zkouška / 5kb např. jméno, název, destinace, město např. student Jan Novák, narozen

1 Webový server, instalace PHP a MySQL 13

DUM 11 téma: Databázové jazyky a servery

Úvod do databázových systémů

1 Úvod. J. Zendulka: Databázové systémy - 1 Úvod 1

Databázové systémy. Datová integrita + základy relační algebry. 4.přednáška

10. Architektura klient/server a třívrstvá architektura

10. Architektura klient/server a třívrstvá architektura

2. přednáška. Databázový přístup k datům (SŘBD) Možnost počítání v dekadické aritmetice - potřeba přesných výpočtů, např.

Stručný obsah. část III Aktualizace dat Kapitola 10: Aktualizace databáze 257 Kapitola 11: Integrita dat 275 Kapitola 12: Zpracování transakcí 307

rychlý vývoj webových aplikací nezávislých na platformě Jiří Kosek

InnoDB transakce, cizí klíče, neumí fulltext (a nebo už ano?) CSV v textovém souboru ve formátu hodnot oddělených čárkou

Audit DB. Referát. Vypracoval: Zdeněk Doležal MFF UK Praha 11/5/06

A5M33IZS Informační a znalostní systémy. Relační databázová technologie

Technické informace. PA152,Implementace databázových systémů 4 / 25. Projekty. pary/pa152/ Pavel Rychlý

Databáze I. Přednáška 4

KAPITOLA 1 Představení platformy Microsoft SQL Server 2008

Marketingová komunikace. 2. soustředění. Mgr. Pavel Vávra Kombinované studium Skupina N9KMK1aPH/N9KMK1bPH (um1a1ph/um1b1ph)

Informační systémy 2008/2009. Radim Farana. Obsah. Jazyk SQL

Data v informačních systémech

Databázové systémy I

Relační DB struktury sloužící k optimalizaci dotazů - indexy, clustery, indexem organizované tabulky

J. Zendulka: Databázové systémy - 1 Úvod Intuitivní vymezení pojmu databáze

Datová vrstva informačního systému. Java Database Connectivity JDBC. Obsah přednášky JDBC. Datová vrstva informačního systému

Střední odborná škola a Střední odborné učiliště, Hořovice

DELTA - STŘEDNÍ ŠKOLA INFORMATIKY A EKONOMIE, s.r.o. Obor informační technologie AJAX ESHOP. Maturitní projekt. Třída:

Transkript:

4IZ228 tvorba webových stránek a aplikací Jirka Kosek Poslední modifikace: $Date: 2010/11/18 11:33:52 $

Obsah Co nás čeká... 3 Architektura webových databázových aplikací... 4 K čemu se používají databázové aplikace na Webu... 5 Databázové servery... 6 Pár základních pojmů... 7 Protokoly pro komunikaci s db serverem... 8 Relační model dat... 9 Základy... 10 Vztahy... 11 SQL... 12 Úvod... 13 SELECT (Výběr dat)... 14 SELECT Příklady... 15 INSERT INTO (Přidání záznamů)... 16 DELETE FROM (Mazání záznamů)... 17 UPDATE (Modifikace záznamů)... 18 CREATE TABLE (Vytvoření tabulky)... 19 Využití databáze ve skriptových prostředích... 20 Základní princip... 21 Příklad práce s databází v PHP... 22 Další možnosti přístupu k datům... 23 Alternativní úložiště dat... 24 NoSQL databáze... 25 XML databáze... 26 Objektové databáze... 27 RDF databáze... 28 Problémy... 29 Zvyšování výkonu webových databázových aplikací... 30 Řešení simultánního přístupu k datům... 31 Aplikační servery... 32 Další zdroje informací... 33 Další zdroje informací... 34

Co nás čeká architektura webových databázových aplikací k čemu se používají databázové aplikace na Webu databázové servery relační model dat jazyk SQL spolupráce webové aplikace s databází problémy webových databázových aplikací 1 / 25 (strana 3)

Architektura webových databázových aplikací typická třívrstvá architektura webový prohlížeč = velmi tenký klient webový server + webová aplikace = aplikační logika + generování prezentační vrstvy pro prohlížeč databázový server = databáze (někdy i část aplikační logiky) 2 / 25 (strana 4)

K čemu se používají databázové aplikace na Webu skoro každá webová aplikace používá nějakou databázi data je potřeba někam ukládat podnikové informační systémy nízké TCO, ZAC vyhledávací služby, katalogy, knihovny i chat je databázová aplikace jednotlivé zprávy je potřeba někam uložit nižší náklady na správu, centralizovaná údržba dat a aplikace je snazší a levnější 3 / 25 (strana 5)

Databázové servery Pár základních pojmů... 7 Protokoly pro komunikaci s db serverem... 8 (strana 6)

Pár základních pojmů SŘBD (DBMS), databáze, databázový server, SQL server přístup datům řídí server (na rozdíl od souborových databází jako MS Access, Paradox, dbase apod.) lze zajistit současnou práci více uživatelů snese i velmi vysokou zátěž komunikace se serverem většinou probíhá po síti (nejčastěji TCP/IP) Oracle, MS SQL Server, MySQL, PostgreSQL, Sybase, DB/2, PostgreSQL, Databázové servery 4 / 25 (strana 7)

Protokoly pro komunikaci s db serverem nativní každá aplikace má svůj protokol lze plně využít všechny funkce databáze přenos aplikace na jiný databázový server je komplikovaný standardizovaná rozhraní ODBC, JDBC, je přidána vrstva navíc, která odstiňuje nativní protokol při změně databázového serveru stačí změnit ovladač pro předávní příkazů se používá jazyk SQL Databázové servery 5 / 25 (strana 8)

Relační model dat Základy... 10 Vztahy... 11 (strana 9)

Základy data jsou ukládána do tabulek (relací) matematicky je model popsán relační algebrou pojmy tabulka položka/atribut/sloupec má název a typ záznam/řádek je jednoznačně identifikován hodnotou primárního klíče primární klíč nejmenší množina atributů, které jednoznačně identifikují záznam Relační model dat 6 / 25 (strana 10)

Vztahy druhy 1:1 1:N M:N musí se rozložit na dva vztahy 1:N v tabulkách se vztahy zaznamenávají pomocí primárních a cizích klíčů Relační model dat 7 / 25 (strana 11)

SQL Úvod... 13 SELECT (Výběr dat)... 14 SELECT Příklady... 15 INSERT INTO (Přidání záznamů)... 16 DELETE FROM (Mazání záznamů)... 17 UPDATE (Modifikace záznamů)... 18 CREATE TABLE (Vytvoření tabulky)... 19 (strana 12)

Úvod SQL Structured Query Language jednoduchý dotazovací jazyk většina databází implementuje standard plus nějaká rozšíření výběr dat, přidávání záznamů, mazání záznamů, modifikace záznamů, práce se strukturou databáze, s uživateli a právy, SQL 8 / 25 (strana 13)

SELECT Výběr dat příkaz SELECT vybírá data z tabulek vrací zase tabulku SELECT seznam výstupních položek FROM seznam tabulek WHERE podmínka GROUP BY seznam položek HAVING skupinová podmínka ORDER BY kritéria třídění SQL 9 / 25 (strana 14)

SELECT Příklady SELECT * FROM Zamestnanci; SELECT Jmeno, Plat FROM Zamestnanci WHERE Plat > 10000; SELECT * FROM Zamestnanci WHERE Jmeno LIKE 'Nov%'; SELECT * FROM Zamestnanci WHERE (Plat < 7000) AND NOT (Jmeno LIKE 'Novák %'); SELECT * FROM Zamestnanci ORDER BY Jmeno; SELECT Nazev, Jmeno FROM Odberatele, Zamestnanci WHERE Odberatele.Zastupce = Zamestnanci.OsobniCislo SQL 10 / 25 (strana 15)

INSERT INTO Přidání záznamů INSERT INTO jméno tabulky (jméno položky, jméno položky, ) VALUES (hodnota, hodnota, ) INSERT INTO jméno tabulky VALUES (hodnota, hodnota, ) INSERT INTO Zamestnanci VALUES (1023, 'Novák Jan', '561220/0235', 'Levá 13, Praha 4', 12000) SQL 11 / 25 (strana 16)

DELETE FROM Mazání záznamů DELETE FROM jméno tabulky WHERE podmínka DELETE FROM jméno tabulky DELETE FROM Zamestnanci WHERE OsobniCislo = 1023; SQL 12 / 25 (strana 17)

UPDATE Modifikace záznamů UPDATE jméno tabulky SET jméno položky = hodnota položky, jméno položky = hodnota položky,... jméno položky = hodnota položky WHERE podmínka UPDATE Zamestnanci SET Jmeno = 'Procházková Alena' WHERE OsobniCislo = 1168; SQL 13 / 25 (strana 18)

CREATE TABLE Vytvoření tabulky CREATE TABLE název tabulky ( název položky typ, název položky typ, název položky typ, název položky typ, ) CREATE TABLE Zamestnanci ( OsobniCislo int NOT NULL PRIMARY KEY, Jmeno varchar(40), RC char(11), Adresa varchar(60), Plat decimal(10,2)) CREATE TABLE Proj_Zam ( ID_Projektu char(6) NOT NULL, OsobniCislo int NOT NULL, PRIMARY KEY (ID_Projektu, OsobniCislo)) SQL 14 / 25 (strana 19)

Využití databáze ve skriptových prostředích Základní princip... 21 Příklad práce s databází v PHP... 22 Další možnosti přístupu k datům... 23 (strana 20)

Základní princip vytvoření připojení k databázi zaslání SQL příkazu k provedení zpracování výsledku odpojení od databáze Využití databáze ve skriptových prostředích 15 / 25 (strana 21)

Příklad práce s databází v PHP <?php try { // připojení k databázi $db = new PDO("mysql:host=localhost;dbname=test", "jméno", "heslo"); // zaslání dotazu a čtení výsledku foreach ($db->query("select * FROM Zamestnanci ORDER BY Jmeno") as $radka) { // zpracování jednotlivých řádek výsledku echo $radka["osobnicislo"], " ", $radka["jmeno"], "<br>\n"; } } catch (PDOException $e) { // obsluha případné chyby při práci s databází echo "Při práci s databází došlo k chybě: ". $e->getmessage(); }?> Využití databáze ve skriptových prostředích 16 / 25 (strana 22)

Další možnosti přístupu k datům ORM (Object-Relational Mapping) aplikace nepracuje přímo s databází, ale používá se mezivrstva, která zajišťuje transparentní mapování a perzistenci objektů v paměti na data v databázi programátor pracuje s objekty, nepíše přímo SQL kód jednodušší vývoj, menší riziko chyby a překlepu v SQL kódu v mezních případech může automatické mapování generovat pomalé dotazy a je nutný ruční zásah Využití databáze ve skriptových prostředích 17 / 25 (strana 23)

Alternativní úložiště dat NoSQL databáze... 25 XML databáze... 26 Objektové databáze... 27 RDF databáze... 28 (strana 24)

NoSQL databáze typicky jednoduché úložiště klíč/hodnota hodnota může obsahovat cokoliv, například strukrovaný datový záznam zapsaný pomocí JSON dotazy je potřeba dělat ručně, protože NoSQL nepodporuje dotazovací jazyk, spojení tabulek, díky jednoduchosti oproti SQL-databázím teoreticky umožňuje lepší škálovatelnost kromě samostatných produktů tento přístup často používají cloudová úložiště (Amazon S3, Google Storage, ) Alternativní úložiště dat 18 / 25 (strana 25)

XML databáze relační datový model je umělý, datový model XML je v mnoha případech mnohem bližší modelované realitě do databáze se ukládají jednotlivé XML dokumenty např. stránky v CMS, faktury, objednávky, k dispozici jsou speciální dotazovací jazyky pro XML XQuery, XPath, hodí se pro aplikace, které pracují se silně strukturovanými daty, pro které se nehodí relační datový model Alternativní úložiště dat 19 / 25 (strana 26)

Objektové databáze databáze rovnou ukládá objekty, se kterými pracuje aplikace technologie se nikdy příliš nerozšířila Alternativní úložiště dat 20 / 25 (strana 27)

RDF databáze sémantický web databáze ukládá přímo logické výroky existují speciální dotazovací jazyky SPARQL pro produkční nasazení nevyspělá technologie Alternativní úložiště dat 21 / 25 (strana 28)

Problémy Zvyšování výkonu webových databázových aplikací... 30 Řešení simultánního přístupu k datům... 31 Aplikační servery... 32 (strana 29)

Zvyšování výkonu webových databázových aplikací perzistentní spojení (connection pooling) pozor, může dojít k překročení limitu spojení do databáze použití databází optimalizovaných na čtení portály v případě potřeby předgenerovat co se dá do souborů nebo sdílené paměti v žádném případě nepoužívat MS Access a podobné rádoby databáze Problémy 22 / 25 (strana 30)

Řešení simultánního přístupu k datům nelze použít klasické zamykání záznamů, protože prohlížeč (klient) se po každém požadavku odpojí problém se řeší jinak vítězí, kdo přišel první zamknutí záznamu s identifikací uživatele a časovým limitem vhodné pro systémy, kde je možnost kolize vysoká vítězí, kdo první provede změnu kontrola změny dat před jejich konečnou modifikací jednodušší na implementaci vhodné pouze pro případy, kdy je pravděpodobnost kolizí malá Problémy 23 / 25 (strana 31)

Aplikační servery označení poměrně široké skupiny produktů nabízejí infrastrukturu potřebnou pro tvorbu rozsáhlejších aplikací sdílení přístupu k databázi (connection pooling) podpora uživatelských relací (session state management) transakční zpracování vyrovnávací paměti řízení přístupu k aplikaci příklady: implementace J2EE, ASP.NET, Zope, Problémy 24 / 25 (strana 32)

Další zdroje informací Další zdroje informací... 34 (strana 33)

Další zdroje informací DiBi Knihovna pro transparentní práci s různými databázemi v PHP 1 NotORM další zajímavý nástroj pro jednoduchou práci s databází v PHP 2 Seriál o ORM frameworku Doctrine 2 pro PHP 3 Série článků o různých nerelačních databází 4 1 http://dibiphp.com/ 2 http://www.notorm.com/ 3 http://zdrojak.root.cz/serialy/doctrine-2/ 4 http://zdrojak.root.cz/serialy/nerelacni-databaze/ Další zdroje informací 25 / 25 (strana 34)