Webfejlesztés 4. alkalom

Hasonló dokumentumok
Adatbázisok. 8. gyakorlat. SQL: CREATE TABLE, aktualizálás (INSERT, UPDATE, DELETE), SELECT október október 26. Adatbázisok 1 / 17

A relációs adatbáziskezelés szabványos nyelve Két fő csoportba sorolhatók az utasításai

Dr. Pál László, Sapientia EMTE, Csíkszereda WEB PROGRAMOZÁS 4.ELŐADÁS. Adatbázis alapú alkalmazások készítése PHP-ben

Tartalomjegyzék. Tartalomjegyzék 1. Az SQL nyelv 1 Az SQL DDL alapjai 2

Adatbázisok* tulajdonságai

SQL ALAPOK. Bevezetés A MYSQL szintaxisa Táblák, adatok kezelésének alapjai

Adatbázis-kezelés. Harmadik előadás

Adatbázis Rendszerek I. 10. SQL alapok (DML esettanulmány)

8. Gyakorlat SQL. DDL (Data Definition Language) adatdefiníciós nyelv utasításai:

Adatbázis Rendszerek II. 8. Gyakorló környezet

Adattípusok. Max. 2GByte

Adatbázis kezelés Delphiben. SQL lekérdezések

Adattípusok. Max. 2GByte

Az SQL nyelv Structured Query Language (Struktúrált lekérdező nyelv)

Adatbázisok. 8. gyakorlat. SQL: CREATE TABLE, aktualizálás (INSERT, UPDATE, DELETE) október október 22. Adatbázisok 1 / 14

BGF. 4. Mi tartozik az adatmodellek szerkezeti elemei

AB1 ZH mintafeladatok. 6. Minősítse az állításokat! I-igaz, H-hamis

Adatbázisok. 2. gyakorlat SQL november november 12. Adatbázisok 1 / 31

Java és web programozás

Adatbázisok I. Definíció: DDL: - objektum létrehozás CREATE - objektum megszüntetés DROP - objektum módosítás ALTER

B I T M A N B I v: T M A N

SQL. Táblák összekapcsolása lekérdezéskor Aliasok Allekérdezések Nézettáblák

A gyakorlat során MySQL adatbázis szerver és a böngészőben futó phpmyadmin használata javasolt. A gyakorlat során a következőket fogjuk gyakorolni:

Java és web programozás

Adatbázis, adatbázis-kezelő

Készítette: Szabóné Nacsa Rozália

Tábla létrehozása: CREATE TABLE alma( ID INT( 3 ) NOT NULL PRIMARY KEY, Leiras VARCHAR( 100 ) );

Adatbázis rendszerek SQL nyomkövetés

SQL haladó. Külső összekapcsolások, Csoportosítás/Összesítés, Beszúrás/Törlés/Módosítás, Táblák létrehozása/kulcs megszorítások

Gyakorlás: Hozzunk létre egy Alkalmazottak táblát AZO szám, Részleg szöveg, Munkakör szöveg és BelépésDátuma dátum típussal.

Adatbáziskezelés php-ben MySQL adatbáziskezelı rendszert használva

Adatbázisok elmélete 9. előadás

SQL PÉLDATÁR. készült a PTE TTK Iskolai informatika III. kurzus teljesítésére

STRUCTURED QUERY LANGUAGE(SQL) - ALAPOK

ADATBÁZIS-KEZELÉS FÉLÉVES FELADAT

Adatbázis rendszerek. Molnár Bence. Szerkesztette: Koppányi Zoltán

Elemi alkalmazások fejlesztése IV.

LBRA6i integrált rendszer

Adatbázis-lekérdezés. Az SQL nyelv. Makány György

Adatbázisok elmélete 9. előadás

Adatbázisok. 9. gyakorlat SQL: SELECT október október 26. Adatbázisok 1 / 14

BEVEZETÉS Az objektum fogalma

MySQL. Elektronikus jegyzet Széchenyi István Egyetem Távközlési tanszék

Adatbázis rendszerek. Molnár Bence. Szerkesztette: Koppányi Zoltán

INFORMATIKA ÁGAZATI ALKALMAZÁSAI. Az Agrármérnöki MSc szak tananyagfejlesztése TÁMOP /1/A

A gyakorlat során MySQL adatbázis szerver és a böngészőben futó phpmyadmin használata javasolt. A gyakorlat során a következőket fogjuk gyakorolni:


Adatbázis-kezelés, információs-rendszerek

A szürke háttérrel jelölt fejezet/alfejezet szövege a CD-mellékleten található. A CD-melléklet használata. 1. Elméleti áttekintés 1

LOGISZTIKAI ADATBÁZIS RENDSZEREK JOIN, AGGREGÁCIÓ

Adatbázis. AMP! (Apache + MySql + PHP) XAMPP, LAMP, MAMP, WAMP et cetera

Access alapok. Megnevezés Művelet Minta. Új adatbázis létrehozása. Új / Üres adatbázis.. Tábla létrehozása tervező nézetben.

Adatbázisok elmélete 10. előadás

Vizuális programozás gyakorlat

Adatbáziskezelés - SQL. Forrás: dr. Kovács László: Adatbázisok tervezésének és kezelésének módszertana Computerbooks

SQL jogosultság-kezelés. Privilégiumok Grant és Revoke Grant Diagrammok

Adatbáziskezelı-szerver SQL. Relációs adatbázis-kezelık. Relációs adatszerkezet. Házi feladat

Az SQL nyelv. SQL (Structured Query Language = Strukturált Lekérdező Nyelv).

OO PDO. Tehát PDO használatával, könnyen átállhatunk egy másik adatbáziskezelőre, anélkül hogy a kódot teljes egészében újraírnánk.

Tartalomjegyzék 2. RENDSZER FELÉPÍTÉSE... 3

Adatbázisok-1 előadás Előadó: dr. Hajas Csilla

ADATBÁZIS-KEZELÉS - BEVEZETŐ - Tarcsi Ádám, ade@inf.elte.hu

Adatbázis Rendszerek I. 9. SQL alapok (DDL esettanulmány)

SQL parancsok feldolgozása

A könyv tartalomjegyzéke

ADATBÁZISOK gyakorlat: SQL 2. rész SELECT

Bevezetés: az SQL-be

Adatbázis használata PHP-ből

Az indexelés újdonságai Oracle Database 12c R1 és 12c R2

Gazdasági folyamatok térbeli elemzése. 5. elıadás

Célkitűzések Az Oracle10 g felépítésének, használatának alapszíntű megismerése

SQL- Utasítások csoportosítása Definíció: DDL: - objektum létrehozás CREATE - objektum megszüntetés DROP - objektum módosítás ALTER

MS ACCESS 2010 ADATBÁZIS-KEZELÉS ELMÉLET SZE INFORMATIKAI KÉPZÉS 1

Adatbáziskezelő-szerver. Relációs adatbázis-kezelők SQL. Házi feladat. Relációs adatszerkezet

PHP-MySQL. Adatbázisok gyakorlat

SQL*Plus. Felhasználók: SYS: rendszergazda SCOTT: demonstrációs adatbázis, táblái: EMP (dolgozó), DEPT (osztály) "közönséges" felhasználók

ADATBÁZIS RENDSZEREK I BEADANDÓ

LOGISZTIKAI ADATBÁZIS RENDSZEREK BEVEZETÉS

Adatbázisok I. Az SQL nyelv

Adatbázisok I A relációs algebra

Debreceni Egyetem Informatika Kar

Programozási technikák Pál László. Sapientia EMTE, Csíkszereda, 2009/2010

ADATBÁZISKEZELÉS ADATBÁZIS

LOGISZTIKAI ADATBÁZIS RENDSZEREK UNIÓ, ALLEKÉRDEZÉSEK

Adatbázis használat I. 5. gyakorlat

Adatbázisok webalkalmazásokban

Extrémen brutál, gyors talpaló PHP nyelvhez (database). v2.1

GEIAL Kovács László. GEIAL Kovács László GEIAL Kovács László

Választó lekérdezés létrehozása

Lekérdezések I. Egyszerű választó lekérdezések

SQL DDL-2 (aktív elemek) triggerek

Adatmodellezés. 1. Fogalmi modell

Relációs algebra áttekintés és egy táblára vonatkozó lekérdezések

SQL. 1.rész. 1.elıadás // Adatbázisok-1 elıadás // Ullman-Widom (Stanford) tananyaga alapján // Hajas Csilla (ELTE IK) 1

A gyakorlat során MySQL adatbázis szerver és a böngészőben futó phpmyadmin használata javasolt. A gyakorlaton a következőket fogjuk gyakorolni:

Az SQL*Plus használata

2 Access 2016 zsebkönyv

Az SQL adatbázisnyelv: DML

Relációsémák létrehozása SQL nyelvben

Adatbázis tartalmának módosítása

Átírás:

Webfejlesztés 4. alkalom Adatbázis kezelés, SQL alapismeretek, MySQL és a PHPMyAdmin használata

Adatbázis kezelési alapok Az adatbázisok alapvetően adatkiszolgálást, illetve különböző szűréi, szeparálási lehetőséget biztosítanak a felhasználók számára Sokféle adatbázis típus, illetve koncepció létezett, létezik, de manapság a leghatékonyabb, a relációs adatmodell illetve az ehhez kapcsolódó, relációs adatbázis a legelterjedtebb és széle körben használatos

A Relációs adatmodell I. A relációs adatmodell elterjedését, a felépítésének köszönheti, mely egy egyszerű, ámbár nagyon jól használható szerkezet. Alap fogalmak: Adatbázis Egy kategóriába tartozó, illetve egyazon adathalmazhoz tartozó táblák összessége. Tábla Relációs formában tárolt rekordok összessége. Rekord Egy a relációnak eleget tevő bejegyzés a táblában. Tulajdonság Azon adatok összessége, melyekből a rekord áll. Ezek alkotják a tábla szerkezetét. Kulcs A rekordot pontosan meghatározó elem pl.: Embernél a személyi szám

További fontos fogalmak Kapcsolat Két tábla valamelyik kulcsa alapján létrehozott egybefüggés, mely azt jelzi, hogy a két tábla valamilyen relációban áll egymással Szűrők Olyan speciális beállítások, melyekkel elérhető, hogy csak az adott kritériumnak eleget tevő rekordokat lássuk a táblából. Pl.: csak a kutyákat lássuk az állítok táblából Index Olyan jelzés, mellyel biztosíthatunk egy adat gyors elérést, ha arra sűrűn és gyorsan van szükségünk Ekkor a rendszer automatikusan a memóriába tölti az adatot, így azt gyorsan ki tudja nekünk szolgálni. Roll Back Visszapörgetés, az adatbázis visszaállítása egy bizonyos esemény hibás lefutása esetén. Banki rendszerek

Relációs adatmodell szerkezet III. Adatbázis Tábla Tulajdonság Tulajdonság Tulajdonság Tulajdonság Tulajdonság Tábla Tulajdonság Tulajdonság Tulajdonság Tábla Tulajdonság Tulajdonság

Relációs tábla szerkezete: Az alábbi szerkezet tartozhat például egy személyek táblához: Azonosító Név Kor Város 123456JA Gipsz Jakab 45 Budapest 321654EW Major Anna 21 Miskolc

Adatbázis tervezés folyamata 1. Feladat meghatározása 1. Milyen feladatokra fog kelleni az adatbázis 2. Szükséges táblák meghatározása 1. Szükséges adatmezők meghatározása 1. Az egyes adatmezők megszabása, melyek biztosan kelleni fognak a táblában és azok méretének megszabása 2. Kulcsok meghatározása, mely egyedileg azonosítja a rekordot 3. Normalizálás, az optimalizált teljesítményért 3. Létrehozás

Normalizálás Normalizálás alatt azt értjük, hogy az adott adatbázist teljesítmény optimalizáljuk, melynek pontos lépései vannak. Ezek a normálformák, melyek olyan ajánlott optimalizálási műveleteket tartalmaznak, mellyel könnyebben kezelhetővé és gyorsabbá tehetjük az adatbázis lekérdezését. Fontos ez? Lásd Facebook!

1. Normálforma Az elsődleges, egyedi kulcsok létrehozása. Az egyes rekordok minden tulajdonságában egy attribútum szerepeljen. Azonosító Név Tevékenység 1 Gipsz Jakab Festő, Kőműves 1. Normálformára hozás után: Azonosító Név Tevékenység 1 Gipsz Jakab Festő 2 Gipsz Jakab Kőműves

2. Normálforma Ez a normálforma csak akkor érvényes, ha több mező, tulajdonság alkotja a kulcsot. Ekkor olyan mező nem szerepelhet a táblában ami csak az egyik kulcstól függ: Azonosító Név Névnap 1 Gipsz Jakab Május 1. 2. Normálformára hozás után: Azonosító Név 1 Gipsz Jakab

3. Normálforma Minden a táblában lévő elem teljesen függ a kulcstól, még akkor is ha abból több is van, vagy csak 1 ezzel biztosítva, hogy az egyes rekordok pontosan meghatározhatók a kulcs kiválasztásával. Így a kulcs azonosítja a továbbiakban a rekordot.

Adatbázis használata I. Az SQL

Az SQL Standard Query Language Olyan szabvány nyelv, melynek segítségével könnyen, és szabványosan kezelhetjük az adatbázist. Az SQL alapú adatbázisok, csak kis mértékben térnek el egymástól, így könnyen át kódolható egy meglévő kód, másik nyelvre.

SQL alapok Az SQL nyelvben használatos alap parancsok: CREATE USE SELECT INSERT UPDATE DELETE DROP TRUNCATE

CREATE parancs A CREATE prancsot létrehozásra használjuk: CREATE DATABASE [adatbázisnév]; CREATE TABLE [táblanév] ([mezőnév] [típus], [mezőnév] [típus],,primary KEY [mezőnév], UNIQUE KEY [mezőnév]); Mint láthatjuk, mind adatbázist, mind pedig táblát ezzel a paranccsal hozunk létre. A táblánál kötelezően fel kell sorolni a rekord tulajdonságokat is.

USE parancs A USE parancs adja meg, hogy melyik adatbázist szeretnénk kezelni. USE [adatbázisnév]; A USE használata nem kötelező a legtöbb SQL alapú nyelvben, azonban ha nincs megadva melyik adatbázissal dolgozunk, minden lekérdezésben meg kell adni a tábla elérését.

SELECT parancs A SELECT parancs a lekérdezésre szolgál, mellyel kérhetünk adatokat az adatbázisból. SELECT [tulajdonságok amik kellenek] FROM [táblanév]; A tulajdonságokat vesszővel tagolva kell felsorolni, ha minden tulajdonságra szükségünk van, akkor * jelet kell rakni a helyére.

INSERT parancs Az INSERT parancs rekord beszúrásra szolgál. INSERT INTO [táblanév] ([tulajdonságok, amiket meg fogunk adni]) VALUES ([az értékek, abban a sorrendben ahogy felsoroltuk]); Csak úgy mint a SELECT esetében, minden tulajdonság típust vesszővel választunk el, az értékeket is

UPDATE parancs Az UPDATE egy vagy több meglévő rekordot frissít az adatbázisban. UPDATE [táblanév] SET([tul.név]=[újérték],[tul.név]=[újérték] ); Ez a szintaxis az összes rekordnak ami a táblában van az adott tulajdonságoknál új értéket ad.

DELETE parancs A DELETE parancs rekord törlésére van DELETE FROM [táblanév] WHERE [tul.név]=[érték]; Az adott feltételnek eleget tevő rekordokat törli

DROP parancs A DROP parancs tábla illetve adatbázis törlését valósítja meg. DROP DATABASE [adatbázisnév]; DROP TABLE [táblanév];

TRUNCATE parancs A TRUNCATE parancs kiűriti a táblát amit megadunk neki, és mindet alaphelyzetbe állít. TRUNCATE TABLE [táblanév];

Adatbázis használata II. Szűrők

Az adatbázis kezelése Az előzőekben tanult parancsok semmilyen szűrési lehetőségre nem adnak lehetőséget, habár az adatbázis lényege, hogy csak azt/azokat az adatokat érjük el, módosítsuk, írjuk be, amelyik nekünk szükséges, és így nem kell külön odafigyelni a többi adatra. Az ilyen feladatokra használunk szűrőket.

Alapvető kisegítő parancsok, szűrők SET WHERE ORDER BY GROUP BY HAVING LIMIT VALUES JOIN

A SET parancs A SET az angol nevéből jól ismert beállítást takarja, és az UPDATE parancsnál fogjuk használni. Pl.: UPDATE [táblanév] SET [tul.név]=[újérték];

A WHERE parancs A WHERE azt adja meg, hogy melyik értékekre alkalmazzunk egy bizonyos parancsot. Pl.: SELECT * FROM [táblanév] WHERE [tul.név]=[érték]; Pl.: UPDATE [táblanév] SET [tul.név]=[újérték] WHERE [tul.név]=[érték]; Egyszóval kiszűri azokat az elemeket a táblából ami számunka szükséges, és csak ezekre lesz alkalmazva a konkrét parancs.

Az ORDER parancs Az ORDER parancsot sorba rendezésre használjuk. Összetevői: BY [tul.név]: kijelöli a tulajdonságot ami alapján sorba kell rendezni az értékeket ASC/DESC: A-tól Z-ig vagy Z-től A-ig való sorbarendezést adja meg Tehát pl.: SELECT * FROM [táblanév] ORDER BY [tul.név] DESC

A GROUP parancs A GROUP parancs sorba szervezésre szolgál, ami azt jelenti, hogy, egy adott tulajdonság alapján sorba rendezi a sorozatot, de úgy, hogy a tulajdonság csak egyszer szerepel, és az elemek alatta helyezkednek el. Pl.: SELECT * FROM [táblanév] GROUP BY [tul.név]; PHP-ban nem jellemző a használata, mivel a feldolgozáskor mi tudjuk szűrni az adatokat.

A HAVING parancs A HAVING célja ugyan az mint a WHERE parancsnak, azonban kitüntetett különbség van a kettő között. A HAVING csak a GROUP BY után állhat a WHERE pedig csak a GROUP BY előtt. Pl.: SELECT * FROM [táblanév] WHERE [tul.név]=[érték] GROUP BY [tul.név] HAVING [tul.név]=[érték];

A LIMIT parancs A LIMIT, ahogy a neve is takarja limitálja a kimentet, így azt csak SELECT esetén használjuk. Pl.: SELECT * FROM [táblanév] LIMIT 1 Ekkor mindössze egy elem fog visszajönni válaszul még akkor is, ha éppen 50 rekord van a táblában.

A VALUES parancs Az INSERT parancs alá tartozik, feladata, hogy a felsorolt tulajdonság nevek mellé szolgáltassa az értékeket is. Pl.: INSERT INTO [táblanév] ([tulajdonságok]) VALUES ([értékek, ugyan abban a sorrenben ahogy a tulajdonságok vannak]);

A JOIN parancs A JOIN két vagy több táblát meglévő értékeik alapján tud összekapcsolni, így azokat egybe lehet használni. Típusai: LEFT JOIN: Ekkor a baloldali táblához kapcsolja a jobb oldali tábla adatait. RIGHT JOIN: Ekkor pontosan fordítva jár el CROSS JOIN: Mind a két táblát összekapcsolja a másik elemével Pl.: SELECT * FROM [táblanév1] LEFT JOIN [táblanév2] ON ([táblanév1].[tul.név]=[táblanév2].[tul.név]);

A sorrend is fontos! Az SQL szintaxisnak az alábbi sorrend felel meg: Kiolvasásnál: SELECT [tul.név] FROM [táblanév] WHERE [feltétel] GROUP BY [tul.név] HAVING [feltétel] ORDER BY [tul.név] LIMIT [mennyi]; Beírásnál: INSERT INTO [táblanév] ([tulajdonságok]) VALUES ([értékek]); Frissítésnél: UPDATE [táblanév] SET [tul.név]=[újérték] WHERE [tul.név]=[érték];

Operátorok Természetesen csak úgy mint a PHP-ban egy szűrő, feltétel itt is lehet többrétű. Itt az angol elnevezések a fontosak, így itt: És kapcsolat: AND Vagy kapcsolat: OR Kizáró vagy: XOR Érvényesek.

Típusok Az adatbázisban alapvetően az alábbi típusokat használjuk legtöbbször: INT([hossz]) Integer, egész szám a hossza a karakter hosszát jelöli VARCHAR([hossz]) Bármilyen karakterhalmaz a hossza a karakterhossz TEXT Szöveg, mérete korlátlan ENUM Választás, két vagy több opció között BOOL Logikai érték DATE Dátum MySQL formátum: ÉÉÉÉ-HH-NN DATETIME Dátum+idő ÉÉÉÉ-HH-NN ÓÓ:PP:MM DATETIMESTAMP az aktuális dátum+idő

Markerek AUTO INCREMENT Automata növelés, akkor érdekes, mikor az id egy szám és az azonosítja az egész rekordot, így az mindig egyedi kulcs lesz. NULL/NOT NULL Az érték lehet nulla vagy nem lehet nulla, ez akkor érdekes, amikor a NULL operátort használjuk egy érték kinullázására Default Alapértelmezett érték, ha nem adja meg a felhasználó Index Az indexelt tulajdonság mindig a memóriában van, hogy könnyen hozzáférhető legyen.

Ennyi volna? Nos nem, az SQL ennél sokkal kiterjedtebb nyelv. Bonyolultsága felér, akár egy rendes programozási nyelvel, mint pl.: PHP, így ezt csak mint kisegítőt fogjuk használni. Bonyolultságát jól tükrözi, hogy a komolyabb weboldalaknál, cégeknél, már külön adatbázis rendszergazdák végzik a karbantartását, kezelését. További referencia leírások: http://dev.mysql.com/doc/

MySQL a PHP-ban Parancsok, elérés, PHPMyAdmin

MySQL a PHP-ban A PHP-nak a fő adatbázis kiszolgálója a MySQL, így a kezelése a relatív egyszerűbbnek mondható. Fontos, hogy a MySQL ebben az esetben egy külön program, amit el kell érjünk, így annak megfelelően telepítve kell legyen a gépünkön, ha ez nem történt meg, a PHP képtelen lesz elérni azt.

A PHPMyAdmin A PHPMyAdmin a MySQL szerver egyik legkedveltebb adatbázis szerkesztője, mely weben keresztül kényelmesen elérhető. Használata egyszerű, mivel grafikus felületen keresztül engedi szerkeszteni, létrehozni a táblákat, és azokban esetleges adatokat elhelyezni, törölni, stb.

Adatbázis kezelő funkciók I. Mysql_connect( hely, név, jelszó ); Csatlakozik az adatbázis szerverhez. Mysql_select_db( adatbázisnév ); Kiválasztja az adatbázist. Ritkán használjuk! Mysql_query( parancs ); SQL szintaxist ad át a MySQL-nek mely lefuttatja azt. Mysql_num_rows(visszatérési érték) Megadja, hogy hány rekordot adott vissza a szerver.

Adatbázis kezelő funkciók II. Mysql_fetch_array(visszatérési érték) Szétválogatja a MySQL által visszaadott adatokat tömbösítve. Mysql_fetch_assoc(visszatérési érték) Szétválogatja a MySQL által visszaadott adatokat asszociatív tömbösítve. Mysql_close(kapcsolat) Lezárja a MySQL kapcsolatot.

Feladat I. Az előző órákon megírt bejelentkezést írjuk át adatbázis alapúra! A regisztrációt is igazítsuk hozzá! A tábla szerkezete: Name VARCHAR(64) Password VARCHAR(64) (SHA1-ben titkosítva)

Feladat II. Vendégkönyv készítése az előzőek alapján. A tábla szerkezete a következő: Name VARCHAR(64); IP VARCHAR(15); Quality INT(1); Comment TEXT; *Az értékelésnek megfelelő csillag jelenjen meg az oldalon, tehát mondjuk 5-ös értékelés esetén 5 csillag