|
1. fejezet: A program tervezése, Mysql alapok |
---|
Bevezető:
|
Egy webshop rendszert fogunk felépíteni a tanfolyam tíz leckéjén keresztül. Az első
lecke témája a program tervezése és a mysql alapok áttekintése lesz.
A mai rohamosan fejlődő internetes piac egyre jobban terjedő és gyakorlatias terjesztési és
termékmenedzselési formája a webshop. A mai online áruházak ősei eleinte csak megjelenítették
a különböző árucikkeket és esetenként azokról valamilyen formában információkat közöltek,
esetleg árakat is. A vásárló ezután elment az üzletbe és megvásárolta a terméket. A kényelmi
szempontok azonban további fejlesztésekre sarkallták a szakembereket, és létrejött a webshop.
Az ősökhöz hasonlóan itt is megjelennek az árucikkek, leírások, ismertetők, de ebben a
rendszerben már lehetősége van a látogatóknak a vásárlásra.
Természetesen a fizetés és a
termék eljuttatása a felhasználókhoz már az üzletek beállítottságától függ és változik. Az ideális
megoldásnak ma már azt tekintik, ha a felhasználó a webshop-ban vásárol, majd csengetnek a
lakásában és megkapja a terméket. Fizetés a kézbesítőnek, vagy bankkártyával a weben
keresztül. Mi is egy ehhez hasonlót fogunk felépíteni. A program kódjának elkészítéséhez mindenki
tetszőlegesen használhat bármilyen szerkesztői felületet, akár egy Notepad-del is el lehet
készíteni az egészet. Én a szemléltetések alatt a Dreamweaver nevezetű Macromedia programot
fogom használni és javaslom azoknak, akik rendelkeznek vele.
|
A program tervezése:
|
Egy összetett alkalmazás elkészítésénél nélkülözhetetlen lépés a tervezés. Természetesen
vannak, aki spontán készítik el a kódokat, de ennek nagy hátránya, hogy a folyamat során
fellépő módosítások kihatással lehetnek a már meglévő kódrészekre, így módosítani kell mindent,
ami addig elkészült. Ezért javasolt a tervezés. Átgondoljuk, hogy mit is szeretnénk készíteni.
A programnak milyen funkciói lesznek és ezeket hogyan jelenítjük meg. Milyen kapcsolat és
összefüggés lesz az egyes programrészek között és ezeket a kapcsolatokat hogyan fűzzük
össze.
A tervezéshez tudnunk kell előre, hogy mit is várunk el a kész programtól. Azt szeretnénk,
ha a shop két felhasználói csoportot különböztetne meg egymástól. Az első csoport a
látogatók, akik megnézhetik a termékeket, adatokat, de nem vásárolhatnak. A második
csoport, akik regisztráltak, és meg is vásárolhatják a termékeket. Ezen kívül szeretnénk,
ha a termékek megjelennének, szelektív szűrők alapján lehetne választani az egyes
csoportok között és a regisztrált felhasználók egy kosár rendszeren tudjanak vásárolni.
Készítettem egy kis grafikus vázlatot a könnyebb áttekinthetőség érdekében.
Ahogy az az ábrán is látható, a látogatók nem tudnak vásárolni, csak akkor, ha előtte
regisztráltak, majd belépnek a programba. Így oszlik két részre a felhasználók csoportja.
A termékek listáját és a leírásokat, árakat mindkét csoport el tudja érni, de vásárolni már
csak a belépett felhasználónak van lehetősége.
A belső részben található a kosár, amiről szintén érdemes egy rövid vázlatot készíteni. A
termékek listájában minden áruhoz tartozik egy 'Kosárba Teszem' gomb, ami a
kiválasztott terméket a felhasználó saját kosarába teszi. Ez még nem egyenlő a vásárlással,
mindössze egy kiválasztás. Amikor a felhasználó a kosár menübe lép, még szelektálhatja
az általa összegyűjtött termékeket. Törölheti azt, amire nincs szüksége, megnézheti az
összesített árakat, beállíthatja a darabszámot és ha minden rendben van, akkor leadhatja
a rendelését.
Természetesen a leadott rendelések teljesítésében a regisztrációkor begyűjtött
adatok szolgálnak segítségül. Törekedni kell arra, hogy a regisztrációnál csak a legfontosabb
adatokat kérjük el, de legyen meg minden ahhoz, hogy a rendelést teljesíteni lehessen.
Erről bővebben majd a regisztrációról szóló leckében beszélünk.
|
A webszerver:
|
A webshop program alkalmazásához, futtatásához szükség van bizonyos szerver oldali
összetevőkre. Jelen esetünkben kell egy webszerver (Apache), egy php értelmező környezet
és egy adatbázis (Mysql). A bemutató fejezetben leírtuk egy helyi gépre telepíthető komplett rendszer beszerzési lehetőségét. A gyakorlást és a teszteléseket végezhetjük saját
gépünkön, ha a leírásokat követve telepítjük a mellékelt összetevőket. Természetesen nem
mindenkinek adott a lehetőség arra, hogy a gyakorlatokat saját gépén végezze. Regisztrálhatóak
különböző ingyenes szolgáltatóknál tárhelyek (pl.: http://uw.hu/ vagy http://www.cjb.hu/ stb...),
ahol lehetőség van php-mysql használatára. A webszerver, jelen esetünkben az Apache,
teszi hozzáférhetővé a látogatók számára, a webshop oldalait. A webszerver kijelölt
könyvtárában (alap esetben : c:\Program Files\Apache Grup\Apache\htdocs) másoljuk azokat a
fájlokat, amelyeket a látogatók számára is elérhetővé szeretnénk tenni.
Természetesen alap
könyvtárnak bármi mást is megadhatunk. A webszerver tartalmát a látogatók böngészők
segítségével tudják megtekinteni. Minden szerver rendelkezik valamilyen elérési úttal, címmel,
domain-el és a tartalom ezek alapján lesz elérhető (ez lehet a kiszolgáló gép ip címe is). A
szerveren lévő tartalomra ezután már a hagyományos módon hivatkozhatunk, a tároló alkönyvtárakat
is belefűzve az elérési útvonalba (pl.: http://www.valami.hu/webshop/index.html). Természetesen
ez még magában kevés, hiszen a program nagy részét php-ban írjuk meg, így szükséges egy php
értelmező program (pl: PHP 4.3.4). A php értelmező automatikusan lefut, ha a webszerveren php fájlt
futtatnak és végrehajtja, értelmezi a php kódokat. A harmadik összetevőnk az adatbázis. Jelen
esetünkben a Mysql nevezetű adatbázis programot fogjuk használni. Az adatbázisban tároljuk el a
webshop által használt összetevőket és adatokat. Az adatok bevitele, kiolvasása, módosítása vagy
éppen törlése php segítségével fog történni. A mysql és a mysql-php alapjairól bővebben is szót ejtünk.
|
A MySql és a parancsok áttekintése:
|
A webshop működéséhez szükséges adatokat egy adatbázisban tároljuk. Az adatbázis adatainak karbantartásához a MySql adatbázis kezelő programot használjuk. A MySql az egyik legszélesebb körben alkalmazott ingyenes adatbázis kezelő program.
Az adatbázisban tárolt adatok tárolási struktúrája a táblázat.
A táblázat azonos típusú és azonos szerkezetű dolgok halmaza. A táblázat sorokból és oszlopokból áll.
A sor vagy másképpen rekord egy konkrét dologra vonatkozó, azonos struktúrájú, szerkezetű adatokból áll.
Az oszlop a dolgokra vonatkozó azonos típusú, tulajdonságú adatok halmaza.
A fent említett típusok közül a leggyakrabban használt adattípusok a következők:
DEFINÍCIÓ |
TULAJDONSÁG |
|
|
TINYINT |
Kis méretű egész számok tárolására alkalmas. Kijelölt tartomány: -128-tól 127-ig. Szinonímái: BIT
és BOOL . |
SMALLINT |
Kis méretű egész számok tárolására alkalmas. Kijelölt tartomány: -32768-tól 32767-ig.
|
MEDIUMINT |
Közepes méretű egész számok tárolására alkalmas. Kijelölt tartomány: -8388608-tól 8388607-ig.
|
INT |
Normál méretű egész számok tárolására alkalmas. Kijelölt tartomány: -2147483648-tól
2147483647-ig. Szinonímája: INTEGER .
|
BIGINT |
Nagy méretű egész számok tárolására alkalmas. Kijelölt tartomány:
-9223372036854775808-tól 9223372036854775807-ig.
|
FLOAT |
Lebegőpontos (tizedes) számok tárolására alkalmas. A megjelenési méret és a
tizedesek száma nincs definiálva.
|
DOUBLE |
Normál méretű lebegőpontos (tizedes) számok tárolására alkalmas.
|
DATE |
Dátum tárolására alkalmas, év-hónap-nap formában, stringként vagy számként
(YYYY-MM-DD , 2004-01-25).
|
TIME |
Idő paraméter tárolására alkalmas, óra:perc:másodperc formában,
stringként vagy számként (HH:MM:SS , 15:22:35).
|
DATETIME |
Dátum és idő paraméterek kombinált tárolására alkalmas,
év-hónap-nap óra:perc:másodperc formában, stringként vagy
számként (YYYY-MM-DD HH:MM:SS , 2004-01-25 15:22:35).
|
VARCHAR |
Meghatározott hosszúságú string tárolására alkalmas.
Kijelölt tartomány: 0-255 karakter. Szinonímája: CHAR .
|
BLOB |
Szöveges állományok tárolására alkalmas (string), maximum 65535
karakterig. Szinonímája: TEXT .
|
MEDIUMBLOB |
Szöveges állományok tárolására alkalmas (string), maximum 16777215
karakterig. Szinonímája: MEDIUMTEXT .
|
LONGBLOB |
Szöveges állományok tárolására alkalmas (string), maximum 4294967295
karakterig. Szinonímája: LONGTEXT .
|
Az adatbázist SQL utasításokkal kezelhetjük. Minden műveletnek megvan a saját utasítása,
amiket akár kombinálhatunk is a helyzettől függően. Egyszerű gyakorlati példákon keresztül
fogjuk átnézni a leggyakrabban használt utasításokat. Az utasításokat egy mysql terminálban
(dos jellegű ablak) alkalmazzuk.
A terminál elindítására leginkább saját szerveren (localhost) van lehetőség.
Keressük meg a mysql/bin/mysql.exe fájlt és indítsuk el. Ha a terminál nem jelenik meg,
akkor a mysql szerver nem fut, a telepítési leírásnak megfelelően indítsuk el. Azok, akik
nem saját szerveren gyakorolnak, kipróbálhatják az utasításokat bármilyan mysql admin
program segítségével (lásd később mysql front).
A következő rész független a webshop feladattól, az SQL utasítások ismertetése a cél egyszerű példákon keresztül.
Az SQL utasításokat, parancsokat négy csoportba foglalva nézzük át.
DDL parancsok (Data Definition Language), adat definiáló,
adatszerkezet módosító parancsok -> CREATE, ALTER, DROP
DML parancsok (Data Manipulation Language), adat módosító
parancsok -> SELECT, UPDATE, INSERT, DELETE
DCL parancsok (Data Control Language) adat felügyelő,
felhasználókat és a jogokat kezelő parancsok -> GRANT, REVOKE
Egyéb parancsok -> SHOW, USE, CLOSE
A MySql terminál parancsai a \h begépelése után a láthatók:
A MySql terminál ablakban hozzunk létre egy proba nevű adatbázist!
A parancsokat mindig ';' karakterrel zárjuk le az előtt!
Nézzük meg a MySql által kezelt adatbázisokat!
Látható, hogy a proba adatbázison kívül további két adatbázist is kezel a MySql:
- a mysql adatbázisban, különféle táblákban tartja nyilván az adatbázis felhasználókat,
tábla neveket és a hozzájuk rendelt jogosultságokat, pl. a root nevű adatbázis-adminisztrátornak
teljes jogköre van az adatok és jogosultságok manipulálására
- a test adatbázis tesztelési célokat szolgál
Vegyük használatba a proba adatbázist és vizsgáljuk meg a tárolt adatokat!
A proba adatbázis üres, nem tartalmaz sem adattáblát, sem adatot, ezért hozzunk létre egy
telefon táblát, melyben telefonszámokat és címeket tartunk nyilván!
Listázzuk ki a telefon tábla adatait!
Miután látjuk, hogy a telefon tábla üres, töltsük fel adatokkal!
INSERT INTO telefon VALUES("Elso Elelemer", "Bp", "2234567");
INSERT INTO telefon VALUES("Masodik Mihaly", "Vac", "26123456");
INSERT INTO telefon VALUES("Harmadik Henrik", "Vac", "26234567");
INSERT INTO telefon VALUES("Negyedik Nora", "Bp", "3456789");
INSERT INTO telefon VALUES("Otodik Odon", "God", "23345678");
INSERT INTO telefon VALUES("Hatodik Hugo", "Bp", "4567891");
A fenti SQL parancsok kimenthetők egy SQL script-be, pl. a vágólap és
a notepad segítségével (fájlnév.sql).
Mentsük ki egy inserttel.sql fájlba a c:\httpd:\htdocs útvonalra!
Ezt követőleg adjuk ki az Execute SQL script file parancsot (\.) a fenti paraméterekkel!
Majd listázzuk ki a telefon tábla minden adatát!
Módosítsuk Hatodik Hugó címét Bp-ről Vac-ra, majd listázzuk ki a nevét és címét!
Listázzunk ki minden budapesti adatot, majd listázzunk ki minden vidéki adatot!
Listázzuk ki, milyen városok szerepelnek a telefonjegyzékben (csak egyszer szerepeljen a listában)!
Töröljük ki azokat a személyeket (rekordokat), akik God-ön laknak, majd kontrolláljuk az eredményt!
Készítsünk összesítő lekérdezéseket! Ehhez ismerni kell az aggregát függvényeket:
- COUNT megszámlálás valamilyen tulajdonság szerint
- SUM összegzés (csak szám adattípusokat)
- AVG átlagszámítás (csak szám adattípusokat)
- MIN, MAX szélsőértékek (csak szám adattípusokat)
Számláljuk meg a budapesti adatokat, majd a vidékieket!
A fenti lekérdezésben a '%' jel helyettesítő karakter szerepét tölti be, ha pl. a budapestieket
'Bp'-, vagy 'Bp.' jelsorozattal írtuk volna, mindkettőre szűri.
A telefon táblánk struktúrájával van egy alapvető gond, hogy bármelyik oszlopot
nézzük, mindegyikben előfordulhatnak adatismétlődések. Például ha több Nagy Lajos nevű
ismerősünk van, vagy két ismerősünknek azonos a telefon elérhetősége. Szükség van a rekordok
egyértelmű meghatározásához egy olyan oszlopra, amelyben minden adat biztosan különböző.
(pl. sorszám, személyi szám, TB szám, vagy hasonló logika alapján bármilyen más algoritmussal
képzett, a feltételnek megfelelő adat)
Az ilyen tulajdonsággal rendelkező jellemzőt (mezőt, oszlopnevet) kulcsnak, vagy
elsődleges kulcsnak nevezzük. A kulcs lehet több mező összevonása is.
A következő részben módosítsuk a tábla struktúráját, azaz definiáljunk egy újabb oszlopot,
amit elsődleges kulcsnak definiálunk és az egyszerűség kedvéért legyen sorszám!
A NOT NULL tulajdonság azt jelenti, hogy az adatfeltöltés során ez az adat soha nem
lehet kitöltetlen.
Elsődleges kulcsot természetesen a tábla létrehozásakor a CREATE TABLE parancsban
is definiálhattunk volna.
Módosítsuk a telefon tábla struktúráját, töröljük ki a cim oszlopot!
A rendszergazda adatbázis felhasználókat hozhat létre, különféle adatkezelési
jogosultságokkal. Hozzunk létre egy Panni nevű felhasználót, Pannika jelszóval, a
telefon táblára olvasási joggal!
A megadható jogok listája:
Select Insert Update DeleteCreateDropReferencesIndexAlter,
illetve az összes jog ALL
Adjunk Panni-nak minden jogot, a jogok továbbadásának lehetőségével!
Vonjuk vissza Panni-tól a CREATE, DROP és ALTER jogokat!
Vonjunk vissza Pannitól minden jogot!
Végezetül semmisítsük meg minden eddigi munkánkat, töröljük ki a telefon táblát!
A következőkben több tábla közötti kapcsolatokkal, azok fajtáival foglalkozunk.
Nézzük meg a következő táblázatot, ahol különféle munkahelyeken dolgozó személyeket
tartunk nyilván.
Látható, hogy az azonos munkahelyen dolgozók munkahelyi adatok ismétlődnek,
redundánsak, így az adatkarbantartása ezeknek körülményessé válik. A tábla is
tervezési hibás, mert egyszerre tartalmazza az emberek jellemzőit (oszlopokat) és a
munkahelyek jellemzőit (oszlopait). A helyes tervezési módszer, két külön táblába tervezni
a személyeket a jellemző tulajdonságaikkal (oszlopokkal) és a munkahelyeket a jellemző
tulajdonságaikkal (oszlopokkal), valamint kapcsolatot kell biztosítanunk a két tábla között.
Ezt a folyamatot normalizálásnak hívjuk.
A fenti ábrán a két normalizált táblát és a nyíllal jelölt kapcsoló mezőket (oszlopokat) láthatjuk.
A munkahely táblában az mkod jellemző (mező, oszlop) alkalmas elsődleges kulcsnak.
A személy táblában a szemelyisz jellemző (mező) alkalmas elsődleges kulcsnak.
A kapcsolatot vonallal jelöltük, megvalósítása az munkahely tábla mkod mezőjén és a
személy tábla munkahely mezőjén keresztül valósul meg. A kapcsolat típusát a munkahely és
személy tábla között egy a többhöz (1:N) típusúnak nevezzük, mert a munkahely oldalon
elsődleges kulcs a kapcsolatot megvalósító mező, a személy oldalon lévő kapcsolatban
résztvevő mezőt idegen kulcsnak nevezzük.
Ebben az oszlopban a munkahely tábla kulcsértékei ismétlődésekkel szerepelnek.
(feltételezzük, hogy egy embernek csak egy munkahelye lehet).
A táblák tervezésekor törekednünk kell arra, hogy közöttük a kapcsolatok típusa
1:N legyen.
Ha két tábla között a kapcsolat több a többhöz (M:N) típusú (pl. egy személy több
munkahelyen is dolgozhat), akkor egy közvetítő, az M:N kapcsolatot feloldó táblát is kell
definiálnunk (pl. munkaszerződés táblát). Így az M:N kapcsolat két tábla között feloldható
három tábla közötti két 1:N típusú kapcsolatra.
Hozzuk létre a két táblát és töltsük fel adatokkal!
Mentsük el az alábbi CREATE ill. INSERT INTO parancsokat "*.sql" típusú fájlokba, majd ezt
követőleg adjuk ki az Execute SQL script file parancsot, paraméterként a létrehozott script fájlokat adjuk meg!
Tábla létrehozás (create.sql)
DROP TABLE IF EXISTS szemely;
CREATE TABLE `szemely` (
`nev` varchar(25) NOT NULL default '',
`szemelyisz` varchar(11) NOT NULL default '',
`helyseg` varchar(25) NOT NULL default '',
`mkod` varchar(10) NOT NULL default '',
`fizetes` int(6) NOT NULL default '0'
) TYPE=MyISAM;
DROP TABLE IF EXISTS munkahely;
CREATE TABLE `munkahely` (
`mkod` varchar(10) NOT NULL default '',
`megnev` varchar(30) NOT NULL default '',
`irszam` smallint(4) NOT NULL default '0',
`helyseg` varchar(20) NOT NULL default '',
`cim` varchar(30) NOT NULL default '',
PRIMARY KEY (`mkod`)
) TYPE=MyISAM;
Feltöltés adatokkal (insert.sql)
INSERT INTO szemely VALUES("Aba Samu", "15602111234", "Budapest", "BBRT", "54800");
INSERT INTO szemely VALUES("Atzél Károly", "14811232222", "Érd", "PB", "22000");
INSERT INTO szemely VALUES("Baló Tamásné", "27408283777", "Százhb", "KHB", "53800");
INSERT INTO szemely VALUES("Búzás Erika", "26412118765", "Érd", "KHB", "56200");
INSERT INTO szemely VALUES("Dobos Ildikó", "25610175466", "Kálóz", "PB", "53700");
INSERT INTO szemely VALUES("Drexler István", "16310245673", "Érd", "KHB", "22700");
INSERT INTO szemely VALUES("Erős Elek", "14812138822", "Csömör", "KHB", "60700");
INSERT INTO szemely VALUES("Halász Mihály", "17107302239", "Ercsi", "PB", "52800");
INSERT INTO szemely VALUES("Hegedűs Róbert", "17208136634", "Ercsi", "KHB", "68000");
INSERT INTO szemely VALUES("Herendi Ágnes", "26312277791", "Budapest", "PB", "38000");
INSERT INTO szemely VALUES("Józsa Tamás", "16210293309", "Budapest", "BBRT", "35100");
INSERT INTO szemely VALUES("Karsai Judit", "27010203217", "Budapest", "KHB", "20600");
INSERT INTO szemely VALUES("Kovács Csaba", "17503232444", "Budapest", "BBRT", "46500");
INSERT INTO szemely VALUES("Kun Tibor", "13912045508", "Göd", "KHB", "57900");
INSERT INTO szemely VALUES("Lehel László", "15205056060", "Vác", "PB", "65300");
INSERT INTO szemely VALUES("Molnár Tamás", "15304281132", "Budapest", "KHB", "66600");
INSERT INTO szemely VALUES("Náday Zsolt", "14411227720", "Tura", "KHB", "35000");
INSERT INTO szemely VALUES("Nagy Anna", "25101032405", "Budapest", "BBRT", "48600");
INSERT INTO szemely VALUES("Németh Judit", "25409184377", "Isaszeg", "KHB", "36500");
INSERT INTO szemely VALUES("Papp Géza", "16910085538", "Budapest", "PB", "56200");
INSERT INTO szemely VALUES("Révész László", "15606178888", "Budapest", "BBRT", "34200");
INSERT INTO szemely VALUES("Rózsa Béla", "17512087325", "Budapest", "KHB", "41300");
INSERT INTO szemely VALUES("Simon Gábor", "14907149955", "Bugyi", "KHB", "27600");
INSERT INTO szemely VALUES("Szabó Vilmos", "17011182855", "Budapest", "BBRT", "36500");
INSERT INTO szemely VALUES("Tasnádi Ágnes", "26907093305", "Vác", "PB", "45800");
INSERT INTO szemely VALUES("Tordai Edit", "25904072311", "Budapest", "KHB", "23400");
INSERT INTO szemely VALUES("Tóth Gábor", "16709135533", "Dunakeszi", "KHB", "66100");
INSERT INTO szemely VALUES("Urbán Imre", "15912166655", "Göd", "KHB", "68800");
INSERT INTO szemely VALUES("Varga György", "16408307793", "Budaörs", "PB", "23800");
INSERT INTO szemely VALUES("Wéber József", "15812307758", "Budapest", "KHB", "47800");
INSERT INTO szemely VALUES("Zilahi Ágota", "27007051999", "Budapest", "PB", "34500");
INSERT INTO szemely VALUES("Zima Imre", "17311153556", "Budapest", "BBRT", "38400");
INSERT INTO munkahely VALUES("BBRT", "Budapest Bank Rt", "1051", "Budapest", "Nádor u. 1.");
INSERT INTO munkahely VALUES("KHB", "Kereskedelmi és Hitelbank Rt", "1062", "Budapest", "Anker köz 2.");
INSERT INTO munkahely VALUES("PB", "Postabank Rt", "2003", "Vác", "Duna sétány 3.");
mysql>execute sql create.sql
mysql> execute sql insert.sql
Készítsünk lekérdezést a személyek neve, munkahelyük pontos megnevezése, és fizetésük legyen a listában!
Ebben az SQL lekérdezésben a kapcsolatot a 'WHERE munkahely.mkod = szemely.mkod'
mezők egyenlősége adja meg.
Ha egyéb szűrőfeltételeket is meg szeretnénk adni, akkor azokat AND logikai
művelettel kell a kapcsolat megadásához fűznünk.
A fenti lekérdezés az 50000 Ft felett kereső személyeket listázza ki a
munkahelyük pontos megnevezésével.
Számoljuk ki munkahelyenként az átlagfizetést!
A gyakorlatban egy egyszerű feladatnál is öt-tíz tábla és a közöttük definiált kapcsolatrendszer
szükséges. A következő leckében a php-mysql kapcsolatát vesszük át, majd megtervezzük
a webshop adatbázist és értelmezzük a szükséges műveleteket.
|
Feladatok:
- Mi a szerepe, előnye a program és az adatbázis előre tervezésének?
- Mi a feladata az adatbázis kezelő programnak (MySql)?
- Hogyan csoportosíthatjuk az SQL parancsokat?
- Hogyan hozunk létre egy adatbázis (MySql) felhasználót?
- Mi a redundancia jelentése és mik a redundáns adattárolás hátrányai?
- Mi az elsődleges kulcs szerepe egy adattáblában?
- Mit jelent két adattábla között az 1:N kapcsolat?
- Gyakorlat 1: Készítsd el a lecke során látott adatbázist és táblákat
és végezd el a látott műveleteket.
- Gyakorlat 2: Az adatbázis elemek létrehozását és az elvégzett
műveleteket archiváld egy teszt.sql fájlban!
- Személyes kérdés: Zavaró-e a tegező hangnem az oktatás alatt?
|
|
A Pentaschool Oktatási Központ bármely dokumentumának vagy dokumentum
részletének másolása kizárólag a tulajdonos írásos engedélyével történhet!
Copyright 2002-2003 Pentaschool Bt.
Minden jog fenntartva.
|
|
|