1 / 21

Databázové systémy

Databázové systémy. Přístup k databázím z WWW.

casey
Download Presentation

Databázové systémy

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Databázové systémy Přístup k databázím z WWW

  2. Síť WWW je v současné době místem pro dynamické, často databázemi řízené webové aplikace. Tvorba webového serveru pomocí statických souborů HTML je nepřijatelná. Dynamické webové prezentace jsou flexibilní výtvory s velkou kapacitou a lze je popsat spíše jako aplikace, než pouze jako stránky. K tvorbě dynamických webových aplikací slouží mnoho různých technologií. Nejčastěji se používají: • Microsoft ASP (Aktive Server Pages) • JSP (Java Server Pages) • ColdFusion • PHP

  3. Je potřeba skloubit přednosti technologie WWW s databázovou technologii – otázka komunikace WWW a DBs Používané přístupy: • CGI (Common Gateway Interface)prostředky • CGI script je externí program, který je na požadavek od uživatele spuštěny WWW serverem jako samostatný proces. • CGI scripty jsou často vytvářeny ve scriptovem jazyce Perl nebo v některem shellu OS Unix, z programovacich jazyku se pouziva napr. jazyk C nebo C++,C#, Visual Basic.

  4. 2. Použití aplikace ve tvaru DLL – Dynamic Link Library - snížení režie spouštění procesů oproti CGI aplikacím 3. Vyhodnocení dokumentu na WWW serveru - formou přidaných direktiv 4. Přístup k databázím z jazyka JAVA - přímý přístup

  5. Internet Information Server Podpora pro přístup k databázi: CGI aplikace, Internet Database Connector, Active Server Pages Active Server Pages (ASP) Skripty se vykonávají na straně serveru a provádějí před odesláním stránky klientovi • klientské a serverovské skripty lze kombinovat • Zabudované objekty : • • Request- získání informací od uživatele. • • Response- zaslání informací uživateli. • • Server- práce s ActiveX komponentami (pro Access - ADO). • • Session- uchování informací o uživatelově sezení. • • Application- uchování informací o uživatelích dané aplikace.

  6. Přístup k databázím z Jazyka JAVA Možnosti přístupu k databázi z prostředí jazyka Java: • JDBC • vložený SQL (SQLJ) JDBC - Java API pro styk s relačními databázemi, rozhraní „nízké“ úrovně • typické kroky při přístupu k databázi: • Např. vytvoření spojení: Connection con = DriverManager.getConnection ("jdbc:odbc:db", "login", "password");

  7. SQLJ Standardní způsob vkládání SQL. Zvláštnosti prostředí jazyka Java oproti hostitelským jazykům pro SQL: • objektová orientace, • automatická správa paměti, • existence odlišitelné prázdné hodnoty (null) pro složené datové typy, • binární přenositelnost, • podpora pro spolupráci komponent různých výrobců

  8. Porovnání SQLJ s JDBC SQLJ - vyšší úroveň statické vazby se schématem DB Důsledky: • SQLJ program je kratší, • možnost spojení s databází v době překladu pro typovou kontrolu, • jednodušší práce s hostitelskými proměnnými, možnost použití výrazů, • typování výsledků dotazů a návratových hodnot, JDBC předává hodnoty do/z SQL bez typové kontroly v době překladu, • volání uložených procedur a funkcí je v SQLJ také jednodušší než v JDBC.

  9. PHP PHP – Personal Home Page. Technologii vytvořil v r. 1994 Rasmus Lerdorf. PHP se označuje jako „vložený skriptovací jazyk“ – znamená to, že je-li vložen do HTML, lze jej přímo interpretovat v kódu HTML. PHP je technologie nezávislá na platformě, je určena pro servery – vše, co se v kódu PHP odehrává, se odehrává na serveru, nikoli na klientském počítači. Jazyk PHP lze používat na většině operačních systémů (Windows, Unix, Linux, Macintosh). Oficiální webovou aplikaci lze najít na stránkách www.php.net.

  10. Proč používat PHP? • Jazyk PHP je jedním z nejlepších kompromisů mezi tím, jak snadno jej můžou používat začátečníci a jak širokou škálu možností využití nabízí zkušeným programátorům. • K přednostem technologie PHP patří výkon, stabilita, přenositelnost, těsná integrace s většinou databázových systémů a téměř neomezené možnosti rozšiřování – to vše prakticky zdarma (PHP je dodáván s veřejným zdrojovým kódem).

  11. Jak funguje propojení PHP+MySQL? Začleněním databáze do webové aplikace lze určitá data generovaná PHP načítat z databáze MySQL. Obsah stránek přestává být statický (napevno zapsaný) a stává se flexibilním. To je pak klíčem k dynamickým webovým prezentacím.

  12. Sserver Kklient Ppožadavek skriptu Ppožadavek na URL adresu ddotaz PPHP MySQL ddata HHTML HHTML

  13. Základní funkce jazyka PHP pro práci s databázemi MySQL Připojení k DB serverua zrušení spojení mysql_connect- otevře spojení s databázovým serverem MySQL, vrací identifikátor spojení mysql_pconnect- otevře trvalé spojení s MySQL serverem (neukončuje se při ukončení skriptu ani funkcí) mysql_close() - vrací identifikátor spojení mysql_select_db- nastaví aktuální aktivní databázi pro dané spojení s databázovým serverem mysql_close- uzavře spojení s databázovým serverem MySQL

  14. Příklad: připojení a výběr databáze mysql_connect( [string server [, string uziv_jmeno [, string heslo [, bool nove_spojeni [, int nastaveni_klienta]]]]]) mysql_select_db ( string jmeno_databaze [, resource spojeni]) <?php # mysql_spojit.php // Vytváření připojení k serveru MySQL $spojeni = mysql_connect ('localhost','root','root'); // Výběr pracovní databáze mysql_select_db ('studijni_agenda'); ?>

  15. Nebo pomocí definice konstant <?php # mysql_spojit.php //Vytvoření připojení k serveru MySQL a vyběr pracovní databáze. // Nastavte informace pro přístup k databázi jako konstanty. DEFINE ('DB_UZIVATEL', 'root'); DEFINE ('DB_HESLO', 'root'); DEFINE ('DB_HOSTITEL', 'localhost'); DEFINE ('DB_DATABAZE', 'studijni_agenda'); // Připojení a výběr pracovní databázi. $spojeni = mysql_connect (DB_HOSTITEL, DB_UZIVATEL, DB_HESLO); mysql_select_db (DB_DATABAZE); ?>

  16. Vytvoření a zrušení databáze mysql_create_db- vytvoří databázi spravovanou serverem MySQL mysql_drop_db - zruší databázi spravovanou serverem MySQL Práce s kurzorem mysql_query - pošle zadaný příkaz současné aktivní databázi serveru MySQL, pro INSERT, UPDATE a DELETE vrací příznak úspěšnosti, pro SELECT číslo kurzoru mysql_db_query - vrátí číslo kurzoru pro zadaný dotaz pro danou databázi mysql_affected_rows- vrátí počet řádků ovlivněných posledním příkazem INSERT, UPDATE nebo DELETE mysql_fetch_array - vrátí řádek kurzoru jako asociativní pole (výběr podle jména sloupce)

  17. Ošetření chyb mysql_error - vrátí text chybového hlášení poslední operace mysql_errno- vrátí číslo chyby poslední operace MySQL Přístup k metadatům mysql_list_dbs - vrátí kurzor obsahující seznam dostupných databází, k procházení slouží funkce mysql_tablename mysql_list_tables- vrátí kurzor obsahující seznam tabulek dané databáze, k procházení slouží funkce mysql_tablename mysql_tablename - vrátí jméno tabulky s daným pořadovým číslem prostřednictvím kurzoru vráceného funkcí mysql_list_tables mysql_fetch_field - vrátí objekt, který nese informaci o daném sloupci daného kurzoru mysql_field_seek - nastaví ukazatel kurzoru na daný sloupec mysql_field_name - vrátí jméno daného sloupce kurzoru …

  18. Příklad: Ošetření chyb mysql_errno ( [resource spojeni]) mysql_error ( [resource spojeni]) <?php mysql_connect("localhost", "root", "root"); mysql_select_db("neexististujicidb"); echo mysql_errno() . ": " . mysql_error(). "\n"; mysql_select_db("databaze"); mysql_query("SELECT * FROM neexististujicitabulka"); echo mysql_errno() . ": " . mysql_error() . "\n"; ?> Předchozí příklad by zobrazil následující výstup: 1049: Unknown database 'neexististujicidb' 1146: Table 'databaze.neexististujicitabulka' doesn't exist

  19. Příklad: Zpuštění dotazu mysql_query ( string query [, resource spojeni]) // Sestavte dotaz. $dotaz = "SELECT CONCAT(prijmeni, ' ', jmeno) AS jmeno, rod_cislo, obor, DATE_FORMAT(datum_zapisu, '%d.%m.%Y') AS datum FROM student ORDER BY prijmeni"; $vysledek = @mysql_query ($dotaz); // Spusťte dotaz.

  20. Příklad: Načtení výsledků dotazů mysql_fetch_array ( resource výsledek [, int result_type]) $dotaz = mysql_query("SELECT id, jmeno FROM Student"); while ($zaznam =mysql_fetch_array($dotaz)) { echo $zaznam["id"]; echo $zaznam["jmeno"]; } mysql_free_result($dotaz); mysql_fetch_row ( resource výsledek [, int result_type]) $dotaz = mysql_query("SELECT id, jmeno FROM Student"); while ($zaznam =mysql_fetch_row($dotaz)) { echo $zaznam[0]; echo $zaznam[1]; } mysql_free_result($dotaz);

More Related