1 / 21

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

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,

Download Presentation

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

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. Számítógépesadatbázis-kezelés A MySQL adatbáziskezelő A PHP programozásinyelv JDBC, ODBC

  2. Adatbázisok • Adatbázis = adottformátumésrendszerszerinttároltadatokö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

  3. Mysql • MySQL: népszerű, ingyenesadatbáziskezelőrendszer (“DBMS”). • A későbbiekben (PHP, JDBC, ODBC) arralátunkmajdpéldákat, hogylehetkapcsolódnihozzá • Többfelhasználós, relációsalapelvekreépül • Akurzuskereteinbelül a hozzátartozó SQL nyelvjárástfogjukhasználni • sajnosnéhányígymegtanultdolognem fog működni pl. Oracle használatakor • Adminisztrációjáhozparancssorieszközök (mysql, mysqladmin) vagy a phpMyAdminrendszerhasználatos • Akabinetben is elérhető

  4. MYSQL / phpmyadmin

  5. XAMPP • PHP+MySQLalapúoldalakfejlesztéséhezkiválórendszer • platformfüggetlen, Windows, Linux, Mac OS X alattegyaránthasználható • tartalma: • Apache HTTP szerver • MySQL, phpMyAdmin • PHP interpreter • (Perl támogatás) • Könnyenhasználhatóvezérlőpult • Telepítéséselindításután a böngészőben a http://localhostcímenelérhetőleszaz{xampp}/htdocskönyvtár • A nyitólapotebbe a könyvtárbahelyezzük el index.phpnéven Otthontelepíteni! [4]

  6. PHP alapok • Objektumorientált (vagyinkábbtöbbparadigmájú) programozásinyelv • Lényegiműködése: a kliensoldalrólbejövőadatokatfogad, ésazokismeretébena szervervégrehajtjaa programunkat, “legyárt” egyweblapot, ami a felhasználónakmegjelenik • .phpkiterjesztésselmentsük el a programjainkat • ezenfájlokbantetszőlegesmennyiségű HTML kódothelyezhetünk el, valamintspeciálishatárolók (<?phpés ?>) közt a programot (sőtezektöbbszörváltakozhatnak is) <!DOCTYPE html> <meta charset=utf-8> <title>PHP Test</title> <?php echo 'HelloWorld'; ?> ezitt a PHP-kód, az echo parancskiíregyszöveget

  7. PHP / Adatszerkezetek, vezérlés asszociatívtömb: kulcs-értékpárok megadásával • a változóktípusaivalnemnagyonkelltörődnünk $valtozo = ‘Egyszoveg’; $masik = 421; $tomb = array(‘Suzuki’, ‘Fiat’, ‘Volvo’); $atomb = array(‘zero’ => ‘nulla’, ‘one’ => ‘egy’, ‘two’ => ‘kettő’); echo ‘Two is called ’ . $atomb[‘two’] . ‘ in Hungarian’; • Feltételesvezérlésiszerkezet: if (feltétel1) { … } [elseif (feltétel2) {…} else { …}] • Diszkrétismétlés (“mindenelemrehajtsdvégre”): foreach ($tomb as $auto) { echo $auto; } sztring konkatenáció

  8. PHP / függvények, osztályok • Függvény: 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óvaldefiniáljukazosztályt. A tagváltozóknakadunkláthatóságot, pl. itt a $varváltozópublikus. Ha egytagváltozórahivatkozunkmetódusokban, kiírjukazaktuálisobjektumpéldánytjelentő$this-t a változóneveelé.

  9. Webesűrlaplétrehozása A feladatlétrehozniegyolyanűrlapot, amelyentalálhatóegyszövegbevitelimezőa felhasználónevénekbekérésére, ésegy “Küldés” feliratúgomb. A bevittadatotjuttassuk el a szervernek, és ha a név “Cser Lajos”, jelenítsünk meg egyoldalt “Demonstrátor” szöveggel, egyébkéntpedig “SziaXY” legyen a válasz!

  10. tesztoldal.php POST HTTP eljárással azudvozol.php-nak elküldjükazűrlapon bevittadatokat. Számostovábbivezérlő létrehozható (pl. rádiógombok, jelölő- négyzetekstb.)

  11. Udvozol.php Ezenazoldalonmár PHP kód is van. Azűrlapadatait a beépített $_POST tömbtartalmazza.

  12. Feladat Készítsünk PHP nyelven mini angol-magyarszótárat: a felhasználómegadhategyszót, és ha az benne van a szótárunkban, kiírjuka magyarmegfelelőjét, ha nincs benne, a “nincstalálat” szövegjelenjen meg! szotar.php

  13. Feladat / fordit.php

  14. KapcsolódásMysql-hezphp-ban (Egyegyszerűmegközelítés) • Kapcsolatnyitá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életbennemszoktukezeketa függvényeketalkalmazásainkkifejlesztéséhezhasználni, helyetteszámos API, keretrendszerállrendelkezésre, amivelhatékonyabbésbiztonságosabberedménytkaphatunk. Jelenkurzuskereteinbelülviszontmegelégszünkezzel a megoldással is.

  15. JDBC (Java database connectivity) • alkalmazásprogramozásiinterfész (API) Java nyelvenkészülőprogramokhoz • java.sqlcsomagtartalmazza a vonatkozóosztályokat – eztimportálnikell a programunkban • Működésielv: • a programunkban a JDBC-nekadunkátutasításokat • A DriverManagernevűösszetevőkezeliazegyestípusúadatbázisokhozvalókapcsolódástbiztosítóillesztőprogramokat • A kapcsolatlétrehozásaelőtt a megfelelődrivertregisztráljuk • A kérésünkeljut a megfelelőadatbázishoz, ésvégrehajtódik

  16. JDBC

  17. JDBC / Kapcsolódás MySQL-hez utasítás 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"); eredményektárolására a Java-nakalapjábanvévenemrésze a MySQL driver, aztelőször magunknakkellbeszerezni [1] [2]

  18. JDBC / Lekérdezés 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); } egyExecuteQuery() függvényhívással adjuk meg, mi legyenazutasítás, a végénnincspontosvessző. (Eredményt visszaadóutasításokhoz) addigigaz, amíg van felnemdolgozott eredmény a válaszban, ésilyenkor egyből a következőre is lép

  19. JDBC / Kapcsolatlezá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(); } } }

  20. ODBC (Open database connectivity) • A JDBC-hezhasonlóanszámosadatbáziskezelővelképeskapcsolatotlétesíteni, de nem Java környezetből, hanem C-ből. • A megfelelő header fájlok include-olásautánazalábbiadatstruktúrákkaldolgozhatunk: • 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]

  21. Megjegyzések • [1] A MySQL-hezszükséges JDBC driver beszerezhetőitt: http://dev.mysql.com/downloads/connector/j/ • [2] NémethGáborpéldáinyomán • [3] Forrás: dr. KatonaEndre: 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

More Related