Számítógépes adatbázis-kezelés

Slides:



Advertisements
Hasonló előadás
© Kozsik Tamás Különböző nyelvekhez igazítás Internationalization - i18n.
Advertisements

Szerver oldali programozás
Tananyag: konzultáció
© Kozsik Tamás Adatbáziskezelés •Relációs adatbáziskezelők •Noha a Java objektum-elvű, egyelőre nem az objektum-elvű adatbáziskezelőket támogatja.
Felhasználói felületek és üzleti logika Bollobás Dávid ASP.NET
1Szegedi Tudományegyetem Természettudományi és Informatikai KarAntal Gábor Adatbázisok gyakorlat 2. gyakorlat MySQL elérése számítógépen (JDBC, ODBC, PHP)
2012. tavaszi félév Vitéz Gergely. A diasor ismerete nem helyettesíti a tankönyvet, és a példatárat. A diasor ismerete szükséges, de nem elégséges feltétele.
DFAN-INF-524 és DFAL-INF-524 kurzus hallgatói számára
A DBMS fő feladatai: - adatstruktúra (adatbázisséma) definiálása,
megismerése, mintaadatbázis létrehozása
Bevezetés a Java programozásba
Bevezetés a Java programozásba
Fájlkezelés, IO Kivételkezelés Belső osztályok
UNIVERSITY OF SZEGED D epartment of Software Engineering UNIVERSITAS SCIENTIARUM SZEGEDIENSIS Programozás II. 9. Gyakorlat Alap file műveletek.
Programozás II. 3. Gyakorlat C++ alapok.
Követelmények Bevezetés a Javába Első java program írása Dokumentációk
Parancssori argumentumok Primitív típusok Operátorok Vezérlési szerkezetek Tömbök Ürmös Beáta, 2011.
Fejlett Programozási Technológiák II. Világos Zsolt 7. gyakorlat.
Tömbök ismétlés Osztályok Java-ban Garbage collection
A Java programozási nyelvSoós Sándor 1/20 Java programozási nyelv 11. rész – Adatbázis-programozás Nyugat-Magyarországi Egyetem Faipari Mérnöki Kar Informatikai.
WEB Technológiák Dr. Pance Miklós – Kolcza Gábor Miskolci Egyetem.
6. előadás: PHP-MySQL Barabás Péter
PHP Webprogramozás alapjai
Oktassunk adatbázis-kezelést! Micskei Zoltán Microsoft Referencia Iskola.
C++ Alapok, első óra Elemi típusok Vezérlési szerkezetek
Delphi programozás 8. ELŐADÁS ADO ActiveX Data Objects.
Vizuális és web programozás II.
Kivételkezelés.
WEB Technológiák ISAPI ME Általános Informatikai Tsz. dr. Kovács László.
PHP I. Alapok. Mi a PHP? PHP Hypertext Preprocessor Szkriptnyelv –Egyszerű, gyors fejlesztés –Nincs fordítás (csak értelmező) Alkalmazási lehetőségek:
PHP III. Fájlok, űrlapok.
PHP VII Sütik, munkamenetek. Sütik Mi az a süti? A süti (cookie) állapotot tárol a felhasználó böngészőjében. Pl. ha egy oldalon beállítható, hogy milyen.
P ROGRAMOZÁS C# - BAN Kivételkezelés. P ÉLDA I. Nullával való osztás miatt kapjuk a hibaüzenetet.
A PHP (PHP: Hypertext Preprocessor) nyílt forráskódú, számítógépes szkriptnyelv, legfőbb felhasználási területe a dinamikus weboldalak készítése. Emiatt.
Java – adatbázisok elérése
1.3. Pascal program felépítése Az els ő program. Program ; … Begin … End. Program fej Deklarációs rész Végrehajtó rész.
A barátságos MySQL Papp Szabolcs INFO ÉRA november 18.
Felhasználók és jogosultságok
PHP szkriptek alkalmazása a webes adatbázis kezelésére
Objektum orientált programozás a gyakorlatban
1 Hernyák Zoltán Programozási Nyelvek II. Eszterházy Károly Főiskola Számítástudományi tsz.
Hernyák Zoltán Programozási Nyelvek II.
1 Hernyák Zoltán Web: Magasszintű Programozási Nyelvek I. Eszterházy.
Készítette: Lipp Marcell
APEX BMF, II. félév.
1Szegedi Tudományegyetem Természettudományi és Informatikai KarAntal Gábor Programozás I. 1. gyakorlat.
3. előadás.  Apache szerver tudnivalók  Az index.php .htaccess – web-szerverünk beállításai  Konfigurációs állományok  Adatbázis kapcsolódás beállítása.
Visual Basic 2008 Express Edition
Komoróczy Tamás 1 Java programozási nyelv A nyelv alapjai.
Java programozási nyelv Adatbekérés konzolról
WEB Technológiák WEB-DB és XML ME Általános Informatikai Tsz. dr. Kovács László.
Web fejlesztés V. Illés Zoltán ELTE Informatikai Kar
Adatbázis-kezelés Tarcsi Ádám január. 15. MySQL és PHP.
Objektum orientált programozás
Webprogramozó tanfolyam
Webprogramozó tanfolyam
Számítógépes adatbázis-kezelés
HTML ÉS PHP (Nagyon) rövid áttekintés. ADATBÁZISRENDSZEREK MŰKÖDÉSI SÉMÁJA Felh. interakció DB Connector MySQL ? A gyakorlaton:
Illés Zoltán ELTE Informatikai Kar
Violet nails Készítette: Csőke Vivien. Bevezetés Téma: Violet nails - műkörömkészítő weblapjának elkészítése A weboldal elérhető az alábbi címen: violetnails.atw.hu.
Webprogramozó tanfolyam
1Szegedi Tudományegyetem Természettudományi és Informatikai KarAntal Gábor Programozás I. 1. gyakorlat.
1Szegedi Tudományegyetem Természettudományi és Informatikai KarAntal Gábor Programozás I. 1. gyakorlat.
Gráfadatbázisok Rácz Gábor.
1Szegedi Tudományegyetem Természettudományi és Informatikai KarAntal Gábor Programozás I. 6. gyakorlat.
TÁMOP /1-2F JAVA programozási nyelv NetBeans fejlesztőkörnyezetben I/13. évfolyam Osztályok, objektumok definiálása és alkalmazása. Saját.
PHP függvények MySQL adatbázisok kezelésére
Alkalmazásfejlesztés gyakorlat
Adatbázis használat a webszervernél
MySQL története, részei, felhasználhatóság, PHPMyAdmin
Előadás másolata:

Számítógépes adatbázis-kezelés A MySQL adatbáziskezelő A PHP programozási nyelv JDBC, ODBC

Adatbázisok Adatbázis = adott formátum és rendszer szerint tárolt adatok összessége. DBMS feladatai: adatstruktúra (adatbázisséma) definiálása, adatok aktualizálása (új felvétel, törlés, módosítás), lekérdezési lehetőségek, fejlesztő környezet biztosítása célalkalmazások létrehozásához. Relációs modell (1970): az adatok kétdimenziós táblázatokban tárolódnak

Mysql MySQL: népszerű, ingyenes adatbáziskezelő rendszer (“DBMS”). A későbbiekben (PHP, JDBC, ODBC) arra látunk majd példákat, hogy lehet kapcsolódni hozzá Többfelhasználós, relációs alapelvekre épül A kurzus keretein belül a hozzá tartozó SQL nyelvjárást fogjuk használni sajnos néhány így megtanult dolog nem fog működni pl. Oracle használatakor Adminisztrációjához parancssori eszközök (mysql, mysqladmin) vagy a phpMyAdmin rendszer használatos A kabinetben is elérhető

MYSQL / phpmyadmin

XAMPP PHP+MySQL alapú oldalak fejlesztéséhez kiváló rendszer platformfüggetlen, Windows, Linux, Mac OS X alatt egyaránt használható tartalma: Apache HTTP szerver MySQL, phpMyAdmin PHP interpreter (Perl támogatás) Könnyen használható vezérlőpult Telepítés és elindítás után a böngészőben a http://localhost címen elérhető lesz az {xampp}/htdocs könyvtár A nyitólapot ebbe a könyvtárba helyezzük el index.php néven Otthon telepíteni! [4]

PHP alapok Objektumorientált (vagy inkább többparadigmájú) programozási nyelv Lényegi működése: a kliens oldalról bejövő adatokat fogad, és azok ismeretében a szerver végrehajtja a programunkat, “legyárt” egy weblapot, ami a felhasználónak megjelenik .php kiterjesztéssel mentsük el a programjainkat ezen fájlokban tetszőleges mennyiségű HTML kódot helyezhetünk el, valamint speciális határolók (<?php és ?>) közt a programot (sőt ezek többször váltakozhatnak is) <!DOCTYPE html> <meta charset=utf-8> <title>PHP Test</title> <?php echo 'Hello World'; ?> ez itt a PHP-kód, az echo parancs kiír egy szöveget

PHP / Adatszerkezetek, vezérlés a változók típusaival nem nagyon kell törődnünk $valtozo = ‘Egy szoveg’; $masik = 421; $tomb = array(‘Suzuki’, ‘Fiat’, ‘Volvo’); $atomb = array(‘zero’ => ‘nulla’, ‘one’ => ‘egy’, ‘two’ => ‘kettő’); echo ‘Two is called ’ . $atomb[‘two’] . ‘ in Hungarian’; Feltételes vezérlési szerkezet: if (feltétel1) { … } [elseif (feltétel2) {…} else { …}] Diszkrét ismétlés (“minden elemre hajtsd végre”): foreach ($tomb as $auto) { echo $auto; } asszociatív tömb: kulcs-érték párok megadásával sztring konkatenáció

PHP / függvények, osztályok function osszeado($a, $b) { return $a+$b; } Osztály: class MintaOsztaly public $var = ’kezdőérték’; public function ertekKiir() echo $this->var; A class kulcsszóval definiáljuk az osztályt. A tagváltozóknak adunk láthatóságot, pl. itt a $var változó publikus. Ha egy tagváltozóra hivatkozunk metódusokban, kiírjuk az aktuális objektumpéldányt jelentő $this-t a változó neve elé.

Webes űrlap létrehozása A feladat létrehozni egy olyan űrlapot, amelyen található egy szövegbeviteli mező a felhasználó nevének bekérésére, és egy “Küldés” feliratú gomb. A bevitt adatot juttassuk el a szervernek, és ha a név “Cser Lajos”, jelenítsünk meg egy oldalt “Demonstrátor” szöveggel, egyébként pedig “Szia XY” legyen a válasz!

tesztoldal.php POST HTTP eljárással az udvozol.php-nak elküldjük az űrlapon bevitt adatokat. Számos további vezérlő létrehozható (pl. rádiógombok, jelölő- négyzetek stb.)

Udvozol.php Ezen az oldalon már PHP kód is van. Az űrlap adatait a beépített $_POST tömb tartalmazza.

Feladat Készítsünk PHP nyelven mini angol-magyar szótárat: a felhasználó megadhat egy szót, és ha az benne van a szótárunkban, kiírjuk a magyar megfelelőjét, ha nincs benne, a “nincs találat” szöveg jelenjen meg! szotar.php

Feladat / fordit.php

Kapcsolódás Mysql-hez php-ban (Egy egyszerű megközelítés) Kapcsolat nyitása $kapcsolat = mysql_connect("localhost", $user, $pwd); Ellenőrizzük, van-e kapcsolat if (!$kapcsolat) { die ("Nem lehet csatlakozni a MySQL kiszolgalohoz!"); } Ellenőrizzük, ki lehet-e választani a szükséges adatbázist, ha nem, hozzuk létre azt if (!(mysql_select_db($adatbazis, $kapcsolat)) ) mysql_query("CREATE DATABASE ..."); mysql_select_db($adatbazis, $kapcsolat); Adjunk meg SQL nyelven megfogalmazott utasításokat mysql_query($utasitas, $kapcsolat); ! A gyakorlati életben nem szoktuk ezeket a függvényeket alkalmazásaink kifejlesztéséhez használni, helyette számos API, keretrendszer áll rendelkezésre, amivel hatékonyabb és biztonságosabb eredményt kaphatunk. Jelen kurzus keretein belül viszont megelégszünk ezzel a megoldással is.

JDBC (Java database connectivity) alkalmazásprogramozási interfész (API) Java nyelven készülő programokhoz java.sql csomag tartalmazza a vonatkozó osztályokat – ezt importálni kell a programunkban Működési elv: a programunkban a JDBC-nek adunk át utasításokat A DriverManager nevű összetevő kezeli az egyes típusú adatbázisokhoz való kapcsolódást biztosító illesztőprogramokat A kapcsolat létrehozása előtt a megfelelő drivert regisztráljuk A kérésünk eljut a megfelelő adatbázishoz, és végrehajtódik

JDBC

JDBC / Kapcsolódás MySQL-hez import java.sql.*; public class Jdbc { public static void main(String args[]){ try { Statement stmt; ResultSet rs; Class.forName("com.mysql.jdbc.Driver"); // driver regisztralasa MySQL-hez. String url = "jdbc:mysql://localhost:3306/test"; Connection con = DriverManager.getConnection(url, ”usr", ”pass"); utasítás eredmények tárolására a Java-nak alapjában véve nem része a MySQL driver, azt először magunknak kell beszerezni [1] [2]

JDBC / Lekérdezés egy ExecuteQuery() függvényhívással stmt = con.createStatement(); stmt = con.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_READ_ONLY); rs = stmt.executeQuery("SELECT * from proba"); // irassuk ki az eredmenyeket System.out.println("Display all results:"); while(rs.next()){ String id = rs.getString("id"); String vnev = rs.getString("Vezeteknev"); String knev = rs.getString("Keresztnev"); System.out.println(id + " | " + vnev + " | "+ knev); } egy ExecuteQuery() függvényhívással adjuk meg, mi legyen az utasítás, a végén nincs pontosvessző. (Eredményt visszaadó utasításokhoz) addig igaz, amíg van fel nem dolgozott eredmény a válaszban, és ilyenkor egyből a következőre is lép

JDBC / Kapcsolat lezárása // zarjuk a kapcsolatot con.close(); // hiba eseten irassuk ki a stack-et (az egesz program egy try blokkban // volt) }catch( Exception e ) { e.printStackTrace(); }

ODBC (Open database connectivity) A JDBC-hez hasonlóan számos adatbáziskezelővel képes kapcsolatot létesíteni, de nem Java környezetből, hanem C-ből. A megfelelő header fájlok include-olása után az alábbi adatstruktúrákkal dolgozhatunk: Környezet (Environment): a kliens hozza létre a DBMS-sel való kapcsolat előkészítéséhez. Kapcsolat (Connection): DBMS-sel való kapcsolat leírására szolgál. Egy környezethez több kapcsolat tartozhat. ODBC-utasítás (Statement). Egy SQL utasítás leírására szolgál. Minden ODBC-utasítás valamely kapcsolathoz tartozik. Ugyanaz az ODBC- utasítás különböző időpontokban különböző SQL-utasításokat tartalmazhat. A fentiek kezelése handle-k (az adatstruktúrára mutató pointerek) segítségével történik. Ezek típusai sorrendben SQLHENV, SQLHDBC, SQLHSTMT. [3]

Megjegyzések [1] A MySQL-hez szükséges JDBC driver beszerezhető itt: http://dev.mysql.com/downloads/connector/j/ [2] Németh Gábor példái nyomán [3] Forrás: dr. Katona Endre: Adatbázisok http://www.inf.u-szeged.hu/~katona/db-ea1.pdf [4] Az XAMPP letölthető a következő címről: http://www.apachefriends.org/en/xampp.html