21
SZÁMÍTÓGÉPES ADATBÁZIS- KEZELÉS A MySQL adatbáziskezelő A PHP programozási nyelv JDBC, ODBC

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

Embed Size (px)

DESCRIPTION

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, - PowerPoint PPT Presentation

Citation preview

Adatbzisok a szmtgpen

Szmtgpes adatbzis-kezelsA MySQL adatbziskezelA PHP programozsi nyelvJDBC, ODBCAdatbzisokAdatbzis = adott formtum s rendszer szerint trolt adatok sszessge.DBMS feladatai:adatstruktra (adatbzissma) definilsa, adatok aktualizlsa (j felvtel, trls, mdosts), lekrdezsi lehetsgek, fejleszt krnyezet biztostsa clalkalmazsok ltrehozshoz.Relcis modell (1970): az adatok ktdimenzis tblzatokban troldnakMysqlMySQL: npszer, ingyenes adatbziskezel rendszer (DBMS).A ksbbiekben (PHP, JDBC, ODBC) arra ltunk majd pldkat, hogy lehet kapcsoldni hozzTbbfelhasznls, relcis alapelvekre plA kurzus keretein bell a hozz tartoz SQL nyelvjrst fogjuk hasznlnisajnos nhny gy megtanult dolog nem fog mkdni pl. Oracle hasznlatakorAdminisztrcijhoz parancssori eszkzk (mysql, mysqladmin) vagy a phpMyAdmin rendszer hasznlatosA kabinetben is elrhetMYSQL / phpmyadmin

XAMPPPHP+MySQL alap oldalak fejlesztshez kivl rendszerplatformfggetlen, Windows, Linux, Mac OS X alatt egyarnt hasznlhattartalma:Apache HTTP szerverMySQL, phpMyAdminPHP interpreter(Perl tmogats)Knnyen hasznlhat vezrlpultTelepts s elindts utn a bngszben a http://localhost cmen elrhet lesz az {xampp}/htdocs knyvtrA nyitlapot ebbe a knyvtrba helyezzk el index.php nven

Otthon telepteni! [4]PHP alapokObjektumorientlt (vagy inkbb tbbparadigmj) programozsi nyelvLnyegi mkdse: a kliens oldalrl bejv adatokat fogad, s azok ismeretben a szerver vgrehajtja a programunkat, legyrt egy weblapot, ami a felhasznlnak megjelenik.php kiterjesztssel mentsk el a programjainkatezen fjlokban tetszleges mennyisg HTML kdot helyezhetnk el, valamint specilis hatrolk () kzt a programot (st ezek tbbszr vltakozhatnak is)

PHP Test

ez itt a PHP-kd, az echo parancs kir egy szvegetPHP / Adatszerkezetek, vezrlsa vltozk tpusaival nem nagyon kell trdnnk $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; Feltteles vezrlsi szerkezet: if (felttel1) { } [elseif (felttel2) {} else { }]Diszkrt ismtls (minden elemre hajtsd vgre): foreach ($tomb as $auto) { echo $auto; }

asszociatv tmb:kulcs-rtk prok megadsvalsztringkonkatenciPHP / fggvnyek, osztlyokFggvny: function osszeado($a, $b) { return $a+$b; }Osztly: class MintaOsztaly { public $var = kezdrtk; public function ertekKiir() {echo $this->var; } }A class kulcsszval definiljuk az osztlyt.A tagvltozknak adunk lthatsgot, pl. itta $var vltoz publikus. Ha egy tagvltozra hivatkozunk metdusokban, kirjuk az aktulis objektumpldnyt jelent $this-t a vltoz neve el.Webes rlap ltrehozsaA feladat ltrehozni egy olyan rlapot, amelyen tallhat egy szvegbeviteli mez a felhasznl nevnek bekrsre, s egy Klds felirat gomb. A bevitt adatot juttassuk el a szervernek, s ha a nv Cser Lajos, jelentsnk meg egy oldalt Demonstrtor szveggel, egybknt pedig Szia XY legyen a vlasz!

tesztoldal.php

POST HTTP eljrssalaz udvozol.php-nakelkldjk az rlaponbevitt adatokat.

Szmos tovbbi vezrlltrehozhat (pl. rdigombok, jell-ngyzetek stb.)Udvozol.php

Ezen az oldalon mr PHP kdis van. Az rlap adatait a beptett$_POST tmb tartalmazza. FeladatKsztsnk PHP nyelven mini angol-magyar sztrat: a felhasznl megadhat egy szt, s ha az benne van a sztrunkban, kirjuk a magyar megfeleljt, ha nincs benne, a nincs tallat szveg jelenjen meg!

szotar.phpFeladat / fordit.php

Kapcsolds Mysql-hez php-ban (Egy egyszer megkzelts)Kapcsolat nyitsa $kapcsolat = mysql_connect("localhost", $user, $pwd);Ellenrizzk, van-e kapcsolat if (!$kapcsolat) {die ("Nem lehet csatlakozni a MySQL kiszolgalohoz!"); }Ellenrizzk, ki lehet-e vlasztani a szksges adatbzist, ha nem, hozzuk ltre azt if (!(mysql_select_db($adatbazis, $kapcsolat)) ) {mysql_query("CREATE DATABASE ...");mysql_select_db($adatbazis, $kapcsolat); }Adjunk meg SQL nyelven megfogalmazott utastsokat mysql_query($utasitas, $kapcsolat);! A gyakorlati letben nem szoktuk ezeket a fggvnyeket alkalmazsaink kifejlesztshez hasznlni, helyette szmos API, keretrendszer ll rendelkezsre, amivel hatkonyabb s biztonsgosabb eredmnyt kaphatunk. Jelen kurzus keretein bell viszont megelgsznk ezzel a megoldssal is.JDBC (Java database connectivity)alkalmazsprogramozsi interfsz (API) Java nyelven kszl programokhozjava.sql csomag tartalmazza a vonatkoz osztlyokat ezt importlni kell a programunkbanMkdsi elv: a programunkban a JDBC-nek adunk t utastsokatA DriverManager nev sszetev kezeli az egyes tpus adatbzisokhoz val kapcsoldst biztost illesztprogramokatA kapcsolat ltrehozsa eltt a megfelel drivert regisztrljukA krsnk eljut a megfelel adatbzishoz, s vgrehajtdikJDBC

JDBC / Kapcsolds MySQL-hezimport 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");

utastseredmnyek trolsra[2]a Java-nak alapjban vve nem rsze a MySQL driver, azt elszrmagunknak kell beszerezni [1]JDBC / Lekrdezs 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() fggvnyhvssal adjuk meg, mi legyen az utasts, a vgn nincs pontosvessz. (Eredmnytvisszaad utastsokhoz)addig igaz, amg van fel nem dolgozotteredmny a vlaszban, s ilyenkoregybl a kvetkezre is lpJDBC / Kapcsolat lezrsa// 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 hasonlan szmos adatbziskezelvel kpes kapcsolatot ltesteni, de nem Java krnyezetbl, hanem C-bl.A megfelel header fjlok include-olsa utn az albbi adatstruktrkkal dolgozhatunk:Krnyezet (Environment): a kliens hozza ltre a DBMS-sel val kapcsolat elksztshez. Kapcsolat (Connection): DBMS-sel val kapcsolat lersra szolgl. Egy krnyezethez tbb kapcsolat tartozhat. ODBC-utasts (Statement). Egy SQL utasts lersra szolgl. Minden ODBC-utasts valamely kapcsolathoz tartozik. Ugyanaz az ODBC-utasts klnbz idpontokban klnbz SQL-utastsokat tartalmazhat. A fentiek kezelse handle-k (az adatstruktrra mutat pointerek) segtsgvel trtnik. Ezek tpusai sorrendben SQLHENV, SQLHDBC, SQLHSTMT. [3]Megjegyzsek[1] A MySQL-hez szksges JDBC driver beszerezhet itt: http://dev.mysql.com/downloads/connector/j/[2] Nmeth Gbor pldi nyomn[3] Forrs: dr. Katona Endre: Adatbzisok http://www.inf.u-szeged.hu/~katona/db-ea1.pdf[4] Az XAMPP letlthet a kvetkez cmrl: http://www.apachefriends.org/en/xampp.html