1 / 18

Adatbázisok gyakorlat

Adatbázisok gyakorlat. 2. gyakorlat. MySQL elérése számítógépen (JDBC, ODBC, PHP). Kötelező program. moodle (teszt, kérdések, válaszlehetőségek, válaszok) családfa (személyek, kapcsolatok, események, házasságok) csapatsportok (csapatok, versenyzők, mérkőzések, pontszerzők/góllövők)

awena
Download Presentation

Adatbázisok gyakorlat

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. Adatbázisok gyakorlat 2. gyakorlat MySQL elérése számítógépen (JDBC, ODBC, PHP)

  2. Kötelező program • moodle (teszt, kérdések, válaszlehetőségek, válaszok) • családfa (személyek, kapcsolatok, események, házasságok) • csapatsportok (csapatok, versenyzők, mérkőzések, pontszerzők/góllövők) • egyéni sportok (bajnokságok, versenyzők, résztvevők, mérkőzések) • imdb (filmek, színészek, szereplések, filmstúdiók) • műsorújság (tv csatornák, műsorok, szereplők, időpontok) • publikációk (közlemények, szerzők, folyóiratok, kiadók) • etr (oktatók, kurzusok, termek, hallgatók) • bugzilla (hibajelentések, fejlesztők, szerepkörök, javítások) • szavazatszámláló (szavazások/fordulók, jelöltek, szavazók, szavazatok) • vállalat (részlegek, osztályok, dolgozók, fizetések) • raktár (áruk, készlet, mozgások) • könyvtár (olvasók, könyvek, kiadók, szerzők) • órarend (osztályok, tantárgyak, termek, órarend) • munkahely (helyiségek, számítógépek, telefonok, dolgozók) • városi tömegközlekedés (buszjáratok, megállók, menetrend) • pizzéria (pizzák, ügyfelek, rendelések, feltétek) • bank (folyószámlák, ügyfelek, átutalások) • ingatlan (telkek, épületek, tulajdonosok) • busz, vasút, repülő helyfoglalás (járatok, városok, ügyfelek, foglalás) • gyakorlatvezetővel előre egyeztetett saját téma Antal Gábor

  3. Kötelező program • Egy feladatot legfeljebb két hallgató választhat. A felsorolt fogalmakat mindenképpen be kell építeni a programba, de nem táblákat jelölnek. • Az alkalmazás értékelése: • Alapkövetelmények: 8-10 pont • További pontok adhatók az alábbiakra (témánként 1-2 pont, kivételes esetben 3 pont): • Négynél több tábla • Nagyobb mennyiségű, feltöltött valós adat • Nemtriviális (nem szokványos) alkalmazás • Diagramok, képek használata • Jelentések (formázott listák) készítése • JDBC vagy ODBC (és egyéb, PHP-n kívüli eszköz) • Plusz pontok csak az alapkövetelmények teljesítése esetén adhatók. • A dokumentáció értékelése: • Alapkövetelmények: 2-3 pont. • Összesen további max. 4 pont adható az alábbiakra: • Az E-K modell nemtriviális és hibátlan: 1-2 pont • A relációs modell nemtriviális és hibátlan: 1-2 pont • A dokumentáció külalakja: 1 pont • A dokumentáció terjedelemben lényegesen meghaladja a minimális követelményeket: 1 pont Antal Gábor

  4. MySQL (mint DBMS) • Ingyenes adatbáziskezelő ( DBMS = Database Management System) rendszer • Egyik legnépszerűbb (nagyon kicsi adatbázisokhoz Access, nagyokhoz Oracle, minden másra jó a MySQL) • Rendkívül támogatott, minden platformról elérhető • Többfelhasználós • Relációs alapelvekre épül • JDBC, ODBC, PHP driver is elérhető hozzá • Az ehhez tartozó „nyelvjárást” fogjuk használni (ám az itt megtanultak közül nem minden működik pl. Oracle-ben) • Adminisztrációhoz: mysql, mysqladmin, vagy pedig a webes phpMyAdmin • A kabinetben is elérhető  Antal Gábor

  5. JDBC (Java Database Connectivity API) • Java alkalmazásprogramozási interfész (API) • Csomagba van rendezve, melyet importálni kell minden fájlba, ahol használjuk (import java(x).sql.* ) • A programhoz csatolni kell a kapcsolódást szolgáló drivert. (Nem csak MySQL-hez kapcsolódhatunk a segítségével) Antal Gábor

  6. JDBC • Megfelelő driver regisztrálása • Kapcsolat létrehozása DriverManager segítségével • Átadjuk az utasításokat, melyeket az adatbázis végre tud hajtani (vagy nem) • Mivel nem biztos sem a kapcsolat, sem az utasítás lefutásának sikeressége, ezért mindig try-catch blokkot kell használni Antal Gábor

  7. JDBC működése Antal Gábor

  8. JDBC Példakód try { Statement stmt=null; //Utasítás ResultSet rs=null; //Eredmény tárolása Class.forName("com.mysql.jdbc.Driver"); //Driver regisztrálása String url = "jdbc:mysql://localhost:3306/test"; //Egyszerű String Connection con = DriverManager.getConnection(url, "nev", "jelszo"); //Kapcsolat létrehozása stmt = con.createStatement(); //Inicializálás stmt = con.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_READ_ONLY); rs = stmt.executeQuery("SELECT * from adatb"); //Lekérés végrehajtása //Eredményt visszaadó utasításnál System.out.println("Eredmeny:"); //Nincs pontosvessző!! while(rs.next()){ String szoveg = rs.getString("text"); //Az eredményből kikérjük a text System.out.println("text mezo tartalma: " + szoveg); // értékét } con.close(); //Kapcsolat lezárása FONTOS!! }catch( Exception e ) { //Hibakezelés FONTOS!! } Antal Gábor

  9. ODBC (Open Database Connectivity) • Microsoft fejlesztette ki • Számos adatbáziskezelővel képes kapcsolatot teremteni, C környezetből • Megfelelő header fájlokat includeolni kell, utána használható adatstruktúrák: • Environment (Környezet): Kliens hozza létre, a kapcsolat előkészítéséhez • Connection (Kapcsolat): Adatbázishoz való kapcsolat leírására szolgál. Több is lehet egy környezetben • Statement (Utasítás): SQL-utasítás leírására szolgál. Minden ODBC-utasítás valamely kapcsolathoz tartozik. Egy ODBC-utasítás különböző SQL utasításokat tartalmazhat. • Ezek kezelése handle-k segítségével történik (adatstruktúrára mutató pointer). Típusai: • SQLHENV, SQLHDBC, SQLHSTMT Antal Gábor

  10. PHP • A PHP (PHP: Hypertext Preprocessor) egy objektumorientált programozási nyelv, főbb felhaszálása: dinamikus weboldalak létrehozása • A PHP kód egy webszerveren fut, ahol a PHP-értelmező értelmezi (futtatja a parancsokat, lekéréseket), és ezek eredményét HTML-szövegként küldi ki a kliens böngésző felé. • <?php és ?> közé kell írni a PHP-kódokat. • Ezeken kívüli kódokat automatikusan HTML-ként értelmezi a böngésző • A PHP és HTML részek szabadon váltakozhatnak, többször is. Antal Gábor

  11. PHP Alapok • Változók deklarálása: $valt = 231.1; • Típusuk dinamikus, kiírni semmilyen esetben nem kell, a PHP tudja $valt = ‘RED’; • Kiíratás: echo $valt; • Parancsokat pontosvessző választja el • Összefűzés: echo ”Taylor Swift legújabb albuma a ” . $valt . ”címet viseli”; • Tömbök lehetnek egyszerű, valamint asszociatív tömbök Antal Gábor

  12. PHP Alapok • Egyszerű tömb felsorolással: (Kezdőszám: 0) • $eloadok = array(”Taylor Swift”, ”KORN”, ”Nine Inch Nails”); //$eloadok[2] = ”Nine Inch Nails” • Egyszerű tömb elemenként megadva: • $eloadok[0] = ”Taylor Swift”; $eloadok[1] = ”KORN”; • Asszociatív tömb felsorolással: • $albumok = array(”elso” => ”Taylor Swift”, ”masodik” => ”Fearless” ); • Asszociatív tömb elemenként megadva: • $albumok[”elso”] = ”Taylor Swift”; $albumok[”legujabb”] = ”RED”; Parancs: echo ”Taylor Swift legújabb albuma a ”. $albumok[”legujabb”]; Eredmény: Taylor Swift legújabb albuma a RED címet viseli Antal Gábor

  13. PHP • Egyszerű feltételes szerkezet: • Diszkrét ismétléses szerkezet: (Tömb minden elemére végrehajtódik) if(feltétel) { parancs } elseif(feltétel2) { parancs2 } else { parancs3 } Eredmény: Jó album a Taylor Swift Jó album a Fearless Jó album a RED foreach ($albumok as $lemezcim) { echo ”Jó album a”. $lemezcim; } Antal Gábor

  14. PHP Osztályon belül ugyanúgy láthatóságot kell adni az osztályváltozóknak, függvényeknek, akárcsak Javaban. Hasonlóan, függvényen belül $this->counter-rel lehet hivatkozni az aktuális objektum attribútumaira. Ugyanígy, az osztály nevével jelzett publikus függvény lesz az osztály konstruktora. (Újabb PHP verziókban pedig a __construct függvényt kell megvalósítani ehhez.) • Osztály: • Függvény: class ElsoOsztaly{ public $counter=0; public function fgv() { } } function invertalas( $ezt ){ return -1*$ezt; } Antal Gábor

  15. PHP Példakód <?php $link = mysql_connect('localhost', 'user', 'pass'); //Kapcsolódjon a szerverhez if (!$link) { die('Nem sikerult: ' . mysql_error()); //Ha nem sikerül, hibaüzenet } mysql_select_db($adatbazis, $link); //Válasszunk ki egy adatbázist $utasitas = "SELECT * FROM adatb"; //Hozzunk létre egy utasítást $result=mysql_query($utasitas, $link); //Amelyet futtatunk while($sor = mysql_fetch_assoc($result) ){ //Amíg van sora echo $sor["integer"]. $sor["text"]. $sor["char"] ."<br>"; //Írjuk ki } mysql_close($link); //Miután végeztünk az adatbáziskapcsolattal, //minden esetben zárjuk le. FONTOS!! ?> Antal Gábor

  16. XAMPP • Az elnevezése egy betűszó, mégpedig • X (=platformfüggetlen [Windows, Linux, Mac]) • Apache webszerver • MySQL (Adatbázis) • PHP • Perl • További előnye, hogy egyszerű kezelőfelületről vezérelhető, konfigurálható • Otthoni telepítés ajánlott (segítség CooSpace-en) Antal Gábor

  17. Megjegyzések • Adatbázisok. Előadás jegyzet, • www.inf.u-szeged.hu/~katona, • pub/Adatbázisok/ • Cser Lajos diái alapján • Németh Gábor példakódjai • XAMPP telepítési segédlet: • CooSpace • http://www.houg.hu/oraclejunior Antal Gábor

  18. Megjegyzések • MySQL Driverek: • http://www.mysql.com/products/connector/ • Tutorialok rekordok aktualizálására: • http://www.mkyong.com/jdbc/jdbc-preparestatement-example-update-a-record/ • http://www.tutorialspoint.com/mysql/mysql-update-query.htm • Teljes, ingyenes PHP-MySQL videóanyag példákkal: • http://thenewboston.org/list.php?cat=11 • http://thenewboston.org/list.php?cat=49 Antal Gábor

More Related