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

Hasonló dokumentumok
Adatbázis rendszerek Gy: MySQL alapok

Adatbázis Rendszerek II. 3. Ea: MySQL alapok

Adatbázis Rendszerek II. 3. Ea: MySQL alapok

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

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

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

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

Adatbázis Rendszerek II. 3. SQL alapok

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

Adatbázis rendszerek SQL nyomkövetés

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

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

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

Adattípusok. Max. 2GByte

Adattípusok. Max. 2GByte

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

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

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

5. Gyakorlat. 5.1 Hálós adatbázis modell műveleti része. NDQL, hálós lekérdező nyelv:

Adatbázisok* tulajdonságai

Adatbázis rendszerek 1. 5.Gy: ER relációs konverzió

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

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

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

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

Adatbázis-kezelés alapjai 1. Ea: Kirakós. Adatbázis-kezelési alapok

Bevezetés: az SQL-be

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

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

BEVEZETÉS Az objektum fogalma

Adatbázis rendszerek Ea: Kirakós. Adatbázis-kezelési alapok

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

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

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:

BGF. 4. Mi tartozik az adatmodellek szerkezeti elemei

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

Adatbázis-kezelés. 2. Ea: Kirakós (2013) Adatbázis-kezelési alapok. v: Szűcs Miklós - ME, ÁIT. 1.o

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

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

3. Előadás. Az SQL adatbázisnyelv (Tartalom) Az SQL története. Az SQL felépítése. Adattípúsok. SQL utasítások

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

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

SQL parancsok feldolgozása

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

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ázisok. 2. gyakorlat SQL november november 12. Adatbázisok 1 / 31

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

Adatbázis-kezelés. Második előadás

Java és web programozás

Adatbázis, adatbázis-kezelő

SQL DDL-1: táblák és megszorítások

w w w. h a n s a g i i s k. h u 1

Elemi alkalmazások fejlesztése IV.

Adatmodellezés. 1. Fogalmi modell

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

Adatbázis Rendszerek II. 2. Ea: Gyakorló környezet

Adatbázis-kezelés alapok Adatbázisok című tárgyhoz, ismétlés kapcsán

ADATBÁZISKEZELÉS ADATBÁZIS

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

Java és web programozás

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

STRUCTURED QUERY LANGUAGE(SQL) - ALAPOK


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

Bevezetés az SQL-be. Tankönyv: Ullman-Widom: Adatbázisrendszerek Alapvetés Második, átdolgozott kiadás, Panem, 2009

Webfejlesztés 4. alkalom

ALAPOK. 0 és 255 közé eső számértékek tárolására. Számértékek, például távolságok, pontszámok, darabszámok.

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

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

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

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ÁZISOK gyakorlat: SQL 2. rész SELECT

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

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

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

Adatbázis tanfolyam 1. Adatbázis tervezés. Modellezés, példák

ADATBÁZIS RENDSZEREK I BEADANDÓ

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

Fogalmak: Adatbázis Tábla Adatbázis sorai: Adatbázis oszlopai azonosító mező, egyedi kulcs Lekérdezések Jelentés Adattípusok: Szöveg Feljegyzés Szám

Adatbáziskezelés. Indexek, normalizálás NZS 1

Adatbázis rendszerek 1. 4.Gy: ER modell

LBRA6i integrált rendszer

RELÁCIÓS ADATBÁZISSÉMÁK. Egyed-kapcsolat modellről átírás

Adatbázisok gyakorlat

Vizuális programozás gyakorlat

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

Adatmodellek. 2. rész

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

Adatbázis I. 11. előadás. Kulcsok az SQL ben. Hivatkozásépségi megszorítások és idegen kulcsok.

5. téma XML DB. Az adatkezelés és XML kapcsolata. Miért fontos az XML használata az adatbázis kezelésben?

Adatbázis használat I. 5. gyakorlat

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.

Adatbázis-kezelés. 3. Ea: Viszonyított betűszámtan (2013) Relációs algebra alapok (átgondolt verzió) v: Szűcs Miklós - ME, ÁIT. 1.

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:

Kilencedik témakör: Lazarus-Firebird. Készítette: Dr. Kotsis Domokos

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

Informatikai képzés Információs rendszerek dr. Hajas Csilla (ELTE IK)

Adatbázis-kezelés az Excel 2013-ban

Az SQL adatbázisnyelv: DML

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

Átírás:

Adatbázis Rendszerek II. 3. Ea: MySQL alapok B I v: T 2014.02.15 M A N 1/106

Témakörök MySQL letöltés, telepítés Beállítások, indítófájl Parancssoros használat MySQL adatbázisok MySQL adattáblák Bolt adatbázis (példa) 2/106

MySQL letöltése (1) XAMPP http://www.apachefriends.org 3/106

MySQL letöltése (2) 4/106

XAMPP telepítése (1) 5/106

XAMPP telepítése (2) 6/106

XAMPP telepítése (3) 7/106

XAMPP telepítése (4) 8/106

XAMPP Control Panel 9/106

Témakörök MySQL letöltés, telepítés Beállítások, indítófájl Parancssoros használat MySQL adatbázisok MySQL adattáblák Bolt adatbázis (példa) 10/106

http://127.0.0.1 11/106

MySQL root jelszó beállítás (1) 12/106

MySQL root jelszó beállítás (2) Újraindítás! 13/106

MySQL indítófájl készítés 14/106

Mysql.bat 15/106

Témakörök MySQL letöltés, telepítés Beállítások, indítófájl Parancssoros használat MySQL adatbázisok MySQL adattáblák Bolt adatbázis (példa) 16/106

MySQL parancssoros felület 17/106

Néhány alapparancs Show databases; Select version(), current_date; 18/106

Témakörök MySQL letöltés, telepítés Beállítások, indítófájl Parancssoros használat MySQL adatbázisok MySQL adattáblák Bolt adatbázis (példa) 19/106

Relációs adatmodell - Alapok Építő elemek: MEZŐ REKORD RELÁCIÓ ADATBÁZIS Kód Név A3 Kovács B Dolgozó 14 S1 Munkakör Munkaidő 20/106 Szupercég

Létrehozási sorrend 1. Adatbázis, 2. Adattábla (reláció), 1. Mezők neve, típusa (sorrendiség!) 2. Megszorítások (inegritási feltételek) 3. Kapcsolatok az egyes táblák között, 4. Adatok felvitele. 21/106

Adatbázisok Create database próba; Use próba; Drop database próba; 22/106

Témakörök MySQL letöltés, telepítés Beállítások, indítófájl Parancssoros használat MySQL adatbázisok MySQL adattáblák Bolt adatbázis (példa) 23/106

A mezők jellemzése Domain (mezőtípus): értelmezési tartomány, mely megadja az elemhez tartozó értékkészletet, és meghatározza a végrehajtható műveletek körét. 24/106 Alapvető domainek (mezőtípusok): Char(n) karakteres; C(20), Number(n,m) numerikus; N(8,2), Date dátum. Mező: az adatbázis struktúra azon egysége, melyből a rekordok felépülnek. A mező a legkisebb DB struktúra egység (egyértékű, atomi). A mezők megadásánál meg kell adni a domain-t (típust) és az integritási feltételeket.

A rekordok jellemzése Rekord: adatbázis struktúra elem, mely a logikailag összetartozó, és egységként kezelhető elemi adatértékek (mezők) együttesét jelöli. A rekordszerkezet leírását az ún. séma tartalmazza: Tábla neve, Mezők neve, típusa, integritási feltételei. A rekordon belül bizonyos mezők speciális szerepet töltenek be: kulcsmező, kapcsoló mezők, index mezők, ezek paramétereit is meg kell adni a sémában. A rekordhoz integritási feltételek köthetők. 25/106

Séma leírás példa Séma leírás: Termék [ Kód, Név, Ár, Méret ] Vásárlás [ TKód, VAzon, Dátum, Darab ] Vásárló [ Azonosító, Név, Fiz_mód, Lakcím ] Kód Név Azonosító Név Vásárlás Termék Vásárló Ár Leírás Méret Dátum Darab Lakcím FizMód 26/106

A relációk jellemzői A relációk rekordjaiban tároljuk a logikailag összetartozó adatokat A relációban tárolt rekordok számát a reláció egyedszámának nevezzük. A relációk tulajdonságaiban (oszlopaiban) az azonos tulajdonságokra vonatkozó adatok jelennek meg. Egy tábla nem tartalmazhat két azonos nevű oszlopot. Az oszlopok (attribútumok) számát a reláció fokának Négyfokú reláció nevezzük. Egyedszám: kettő 27/106 Azonosító Név Évfolyam Osztály 001 Kati 11 A 002 Tibi 12 B

A relációk jellemzői 2. Egy relációra vonatkozó követelmények: 28/106 A tulajdonságok sorrendje tetszőleges lehet, de a tábla kialakítása után a mezősorrend nem változhat, így minden rekord mezőszerkezete azonos. Nem tartalmazhat két azonos tulajdonság oszlopot. Nem lehet két egyforma rekord. A rekordok sorrendje tetszőleges. Egy cellába csak egy érték kerülhet, így a modellben közvetlenül nem tárolhatók az összetett és a többértékű tulajdonságok. Az adatok viszonyára vonatkozó legfontosabb megkötés az elsődleges kulcs, amellyel a reláción belüli rekordok egyértelműen megkülönböztethetők egymástól.

Kapcsolatok A modell nem tárolja külön elemként a kapcsolatokat, hanem az egymással összefüggésben lévő relációkban megismétli valamelyik mezőt, és a kapcsolatot a mezőbe beírt adatok értékegyezősége adja. Két reláció között értelmezett a kapcsoló (idegen) kulcs, amely olyan értékeket tartalmaz, amely egy másik tábla elsődleges kulcsával megegyezik, így megvalósítva a két tábla közötti kapcsolatot. Útnyilvántartás Sorszám Rszám Dátum Útvonal Km Autó Rendszám Típus Fogyaszt 29/106 Kapcsoló kulcs Elsődleges kulcs

Kapcsolatok 2. Ha a kapcsoló kulcsot nem kötelező megadni, akkor olyan 1:1 kapcsolatot hozhatunk létre a két tábla között, amelyben nem minden rekordnak van párja a kapcsolt táblában. Útnyilvántartás Autó Sorszám Rszám Dátum Útvonal Km Rendszám Típus Fogyaszt Nem mindegyik autóhoz tartozik útnyilvántartás! Sorszám Rszám Dátum 1 ABC-123 14.02.21 2 14.02.16 30/106 Rendszám Típus Fogyaszt ABC-123 Opel 8,5 FFF-663 Renault 7,2 EIS-104 Lada 12,4 DCT-432 Suzuki 6,4

Kapcsolatok 3. Ha a kapcsoló kulcsot kötelező megadni, és nem ismétlődhet az értéke, akkor olyan 1:1 kapcsolat van a két tábla között, amelyben minden rekordnak van párja a kapcsolt táblában. Útnyilvántartás Autó Sorszám Rszám Dátum Útvonal Km Rendszám Típus Fogyaszt Az útnyilvántartásnak autóhoz kell tartoznia! Sorszám Rszám Dátum 1 ABC-123 14.02.21 2 EIS-104 14.02.16 31/106 Rendszám Típus Fogyaszt ABC-123 Opel 8,5 FFF-663 Renault 7,2 EIS-104 Lada 12,4 DCT-432 Suzuki 6,4

Kapcsolatok 4. Ha a kapcsoló kulcsot kötelező megadni, és ismétlődhet az értéke, akkor 1:N kapcsolat van a két tábla között, vagyis minden rekordhoz több rekord is kapcsolódhat a kapcsolt táblában. Az ilyen típusú kapcsoló kulcsot nevezik általában idegen kulcsnak. Útnyilvántartás Sorszám Rszám Dátum Útvonal Autó Rendszám Típus Fogyaszt Az útnyilvántartásnak autóhoz kell tartoznia, de egy autóhoz több útnyilvántartás is tartozhat. Km Sorszám Rszám Dátum 1 ABC-123 14.02.21 2 ABC-123 14.02.16 32/106 Rendszám Típus Fogyaszt ABC-123 Opel 8,5 FFF-663 Renault 7,2 EIS-104 Lada 12,4 DCT-432 Suzuki 6,4

Kapcsolatok 5. Ha a két tábla között N:M típusú kapcsolat van, akkor a kapcsolatot külön táblával (kapcsolótábla) valósítjuk meg. Termék Vásárlás Vásárló TKód TNév Ár TKód VKód VKód Név Cím TKód TNév Ár VKód Név Cím T01 Tej 220 V01 Rozi Kő u 11 T02 Vaj 210 T03 Tea 550 T04 Só 145 TKód T01 T04 VKód V01 V01 V02 Peti Só u 32 V03 Miki Bő u 17 V04 Évi Lé u 46 T02 V03 T04 V01 T03 V04 33/106 T02 V04

Index kulcsok A táblázatok rekordjai fizikailag abban a sorrendben helyezkednek el a merevlemezen, amilyen sorrendben begépelték őket. Az adatok rendezettségét az index kulcs biztosítja, mely a fizikai táblázat rekordjainak logikai elrendezését határozza meg. Az index kulcsok lehetővé teszik az adatok gyorsabb hozzáférését. Az index létrehozása egy új táblázatot eredményez, melynek egyik oszlopában az indexelt mező elemei szerepelnek rendezetten, a másik oszlopában a rekordok elsődleges kulcsa található. 34/106

Index kulcsok 2. Index tábla Rendszám Kód ABC123 A04 BER666 A01 CDR420 A06 DGZ531 A03 LEM597 A05 RTW285 A02 Autó tábla Kód Rendszám Típus Szín A01 BER666 Fiat zöld A02 RTW285 Opel kék A03 DGZ531 Suzuki kék A04 ABC123 Mercedes fekete A05 LEM597 Opel fehér A06 CDR420 Nissan piros Index kulcs 35/106

Adatintegritás Az adatintegritás az adatok érvényességét, jóságát jelenti. Hitelesség, megbízhatóság, pontosság, ellentmondás mentesség. Hibás adatok: 2 azonos kulcs, elírt érték, szám helyett szöveg Elkerülése: Ellenőrzött adatbevitel, Kulcsértékek figyelése, Hivatkozások figyelése 36/106

Az adatintegritás szintjei Mező szintű megszorítások Rekord szintű megkötések Kód A3 Név Kovács B 14 S1 Reláció szintű előírások Adatbázis szintű ellenőrzések Dolgozó Munkakör Munkaidő Szupercég 37/106

Mező szintű megkötések A3 Kovács B 14 S1 Egy mezőre vonatkozó érvényes érték előfordulások körét lehet megadni: A megkötés lehet logikai kifejezés, amely minden lehetséges értékre igaz vagy hamis értéket ad vissza Check Kor>0 A megkötés vonatkozhat arra, hogy a mezőben tárolt érték nem lehet üres (kötelező megadni) Kód Not Null Előírható egy sablon, mely az adat külalakjára vonatkozik Rendszámban 3 betű, aztán kötelező, végül 3 számjegy Az adatbázisba csak olyan mezőértékek vihetők be, melyek a megadott szabályoknak eleget tesznek. 38/106

Rekord szintű megkötések A3 Kovács B 14 S1 Egy teljes rekord elfogadhatóságát kell eldönteni Az ellenőrzési feltételben a reláció sémájában szereplő mezők szerepelhetnek Az integritási feltétel célja az egy rekordon belül egymáshoz kapcsolódó mezők értékeinek vizsgálata Ha a végzettség középfokú, a fizetés > 80000 Ft. Ha a kategória élelmiszer, az áfa 10 vagy 15 % lehet. Ha a kód A vagy B betűvel kezdődik, a tárolási hely a E vagy az F rekesz lehet. 39/106

Reláció és adatbázis szint Reláció szint A teljes relációt, vagyis az összes rekord előfordulást át kell vizsgálni Az adott mezőben ugyanaz az érték nem fordulhat elő többször a relációban (egyediség) Kód Unique Elsődleges kulcs mező (mezők) Kód Primary key Adatbázis szint A feltétel több relációban, szétszórtan elhelyezkedő mezőkre vonatkozik, az ellenőrzéshez több reláció adatait is át kell olvasni Idegen kulcs mező (csak egy másik táblában szereplő értékeket vehet fel) Ha az A táblában a kód A7, a B táblában az érték csak 10 és 20 között lehet 40/106

Egyed integritási szabály Minden relációban legyen egyedi értékű kulcs (mező vagy mezőcsoport), ami egyértelműen meghatározza a rekord előfordulásokat. A kulcs mező (mezők) értékét kötelező kitölteni, vagyis és a kulcs nem lehet üres. A kulcs lehet egyszerű (egy mező, pl. autó rendszáma vagy személy adószáma) vagy összetett (több mező, pl. tanfolyam címe, időpontja, repülőjárat száma és a dátum). Hivatkozás integritási szabály Minden kapcsoló kulcs mező értéke vagy üres, vagy egy létező, hivatkozott táblabeli elsődleges kulcsértékre mutat. 41/106

Adattáblák létrehozása (1) Create table táblanév( oszlopnév mezőtípus definíciók, oszlopnév mezőtípus definíciók,... kulcsok, indexek, megszorítások ); Ékezetes mezőnevek? Inkább ne használjuk! Not null, default, primary key, auto_increment, unique, comment 42/106

Numerikus mezőtípusok (1) Egész típusú: TINYINT 1 byte SMALLINT 2 byte MEDIUMINT 3 byte INT (INTEGER) 4 byte BIGINT 8 byte Mindegyik lehet előjeles, vagy előjel nélküli: UNSIGNED 43/106

Numerikus mezőtípusok (2) Lebegőpontos típusú: FLOAT(M,D) 24 tizedesig DOUBLE(M,D) (Real) 53 tizedesig DECIMAL(M,D) 1 byte/jegy NUMERIC(M,D) 1 byte/jegy Mindegyik előjeles 44/106

Dátum, idő mezőtípusok DATE: ÉÉÉÉ_HH_NN DATETIME: ÉÉÉÉ-HH-NN ÓÓ:PP:MM TIMESTAMP(méret): ÉÉÉÉHHNNÓÓPPMM (14 jegyű) ÉÉHHNNÓÓPPMM (12 jegyű) ÉÉÉÉHHNN (8 jegyű) ÉÉHHNN (6 jegyű) TIME: ÓÓ:PP:MM YEAR: 1901-2155 (4 jegyű) (19)70-(20)69 (2 jegyű) 45/106

Szöveges mezőtípusok CHAR: max 255 karakter, fix hossz VARCHAR: max 255 karakter, változó hossz BLOB: max 65535 krt, case sensitive TEXT: max 65535 krt, nem case sensitive TINYBLOB/TEXT: max 255 karakter MEDIUMBLOB/TEXT: max 16777215 karakter LONGBLOB/TEXT: max 4294967295 karakter ENUM: lista max 65535 értékkel Karakterszámot lehet, de nem kell megadni! 46/106

Adattáblák létrehozása Definíciók Create table táblanév( oszlopnév mezőtípus definíciók,... Not null Nem maradhat üresen a cella Default Alapérték (egyeznie kell a mezőtípussal) Auto_increment Automatikusan növelt mezőérték Unique Egyediség, nem lehet egyforma érték a mezőben Comment Megjegyzés Primary key Elsődleges kulcs (jobb külön sorban megadni) 47/106

Adattáblák létrehozása Megszorítások Create table Melós( IDM int, IDM int Primary key, Check (IDM > 1000), Unique (IDM), Index (IDM), Foreign key (IDM) references Munkakör(Mkód), ); 48/106

Példák CREATE TABLE pld1 ( id INT PRIMARY KEY, nev VARCHAR(100), datum DATE, suly FLOAT(8,5)); CREATE TABLE pld2 ( az INT PRIMARY KEY, hely VARCHAR(100), darab INT(10) UNSIGNED, Foreign key (az) references pld1(id)); CREATE TABLE pld1 ( id INT NOT NULL AUTO_INCREMENT PRIMARY KEY, nev VARCHAR(50) NOT NULL, darab INT(10) unsigned not null default '0', idopont TIMESTAMP(8) DEFAULT NOW(), Unique (nev) ) TYPE=innodb; 49/106

Témakörök MySQL letöltés, telepítés Beállítások, indítófájl Parancssoros használat MySQL adatbázisok MySQL adattáblák Bolt adatbázis (példa) 50/106

Bolt adatbázis (példa) ER modell Táblák létrehozása Táblák módosítása Adatok feltöltése 51/106

Bolt ER modell Kkód Név Tkód Név Ár Kategória K-T Termék Leírás Sorszám Vásárlás Időpont Darab Név VID Vásárló Cím Fizmód 52/106

ER konverziója relációs modellre 53/106 ER elemek Egyed Normál Gyenge Tulajdonság Elemi Kulcs Összetett Többértékű Származtatott Kapcsolatok 1:1 1:N N:M kötelező Relációs elemek Reláció reláció kulcs mezővel reláció kulcs mező nélkül Mező mező kulcs mező több mezőre bontjuk szét külön relációba kerül csak a képletet tároljuk Kapcsolatok egyedi kapcsoló kulcs kapcsoló kulcs kapcsoló tábla nem üres kapcsoló kulcs

Bolt: ER modell > Relációs konverzió (1) Kkód Név Kategória K-T Kkód Elsődleges kulcs, fix hossz! Név Kötelező, egyedi, változó hossz Kategória-Termék kapcsolat Termék táblában idegen (kapcsoló) kulcs mező, mely a Kategória(Kkód) mezőre mutat Tkód Név 54/106 Termék Ár Leírás Tkód Elsődleges kulcs, fix hossz Név Nem lehet null értékű Ár Egész, nem lehet negatív Leírás Változó hossz +Kategória Idegen kulcs

Bolt: ER modell > Relációs konverzió (2) Kkód Név Tkód Név Ár Kategória K-T Termék Leírás Kategória Kkód Név Termék Kategória Tkód Név Ár Leírás 55/106

Bolt: ER modell > Relációs konverzió (3) Sorszám Vásárlás Időpont Darab Sorszám Pozitív egész, növekedjen automatikusan Időpont Alapérték az aktuális időpont +Tkód, VID Kapcsoló mezők Név VID 56/106 Vásárló Cím Fizmód VID Elsődleges kulcs Név Kötelező, változó h, nem egyedi Cím Változó hossz Fizmód Csak bizonyos értékeket vehet fel, fix hossz

Bolt Struktúra Kategória Kkód Név Termék Kategória Tkód Név Ár Leírás Termék Vásárlás Tkód Sorszám Időpont Darab VID Sorszám Vásárlás Időpont Darab Vásárló Név VID Név Cím Fizmód VID 57/106 Vásárló Cím Fizmód

Bolt Táblák létrehozási sorrendje Kkód Név Kategória K-T Tkód Név Termék Ár Leírás 2 1 Sorszám Vásárlás Időpont 4 Darab Név VID Vásárló Cím Fizmód 3 58/106

Bolt adatbázis (példa) ER modell Táblák létrehozása Táblák módosítása Adatok feltöltése 59/106

Táblajáték Kategória Create database bolt; Use bolt; Create table Kategória( Kkód char(3) primary key, Név varchar(20) not null, Unique (Név)); 60/106

Táblajáték Kategória Ellenőrzés Describe Kategória; Show create table Kategória; 61/106

Táblajáték Termék Create table Termék( Tkód char(3) primary key, Név varchar(20) not null, Ár int unsigned, Leirás varchar(20), Kategória char(3) not null, Foreign key (Kategória) references Kategória(Kkód)); 62/106

Táblajáték Termék Ellenőrzés (1) Describe termék; 63/106

Táblajáték Termék Ellenőrzés (2) Show create table termék; 64/106

Táblajáték Vásárló Create table Vásárló( VID char(3) primary key, Név varchar(30) not null, Cím varchar(30), Fizmód char(4)); 65/106

Táblajáték Vásárló Ellenőrzés Describe Vásárló; 66/106

Táblajáték Vásárlás Create table Vásárlás( Sorszám int unsigned Auto_Increment, Időpont timestamp Default Current_Timestamp, Tkód char(3) not null, Darab smallint, VID char(3) not null, Primary key (Sorszám), Foreign key (Tkód) references Termék(Tkód), Foreign key (VID) references Vásárló(VID)); 67/106

Táblajáték Vásárlás 68/106

Táblajáték Vásárlás Ellenőrzés 69/106

Táblajáték Vásárlás Ellenőrzés 70/106

Bolt adatbázis (példa) ER modell Táblák létrehozása Táblák módosítása Adatok feltöltése 71/106

Bolt ER modell (bővítés) Kkód Név Tkód Név Ár Kategória K-T Termék Leírás Sorszám Vásárlás Időpont Név Darab Fkód Leírás Vásárló V-F Fizetés VID Cím Fizmód 72/106

Bolt: ER modell > Relációs konverzió (3) Fkód Leírás Fizetés V-F Fkód Elsődleges kulcs, fix hossz! Leírás Kötelező, egyedi, változó hossz Vásárló-Fizetés kapcsolat Vásárló táblában idegen (kapcsoló) kulcs mező, mely a Fizetés(Fkód) mezőre mutat Fkód Legyen Tinyint (1-Bankkártya, 2-Készpénz, 3-Átutalás, 4-Utánvét) Emiatt módosítani kell a mezőtípust és a megszorítást a Vásárló táblában! 73/106

Bolt adatbázis Kkód Név Tkód Név Ár Kategória K-T Termék Leírás Sorszám Vásárlás Időpont Név Darab Fkód Leírás Vásárló V-F Fizetés VID Cím 74/106

Bolt Struktúra Kategória Kkód Név Termék Kategória Tkód Név Ár Leírás Vásárlás Tkód Sorszám Időpont Darab VID Vásárló Fizetés VID Név Cím Fizmód Fkód Leírás 75/106

Táblajáték Fizetés Create table Fizetés( Fkód tinyint(1) primary key, Leírás varchar(20) not null, Unique (Leírás)); 76/106

Táblajáték Vásárló módosítás alter table vásárló modify column Fizmód tinyint(1) not null; alter table vásárló add constraint Foreign key (Fizmód) references Fizetés(Fkód); 77/106

Bolt adatbázis (példa) ER modell Táblák létrehozása Táblák módosítása Adatok feltöltése 78/106

Adatbevitel Kategória insert into Kategória values('k01', 'Kaja'); insert into Kategória values('k02', 'Pia'); insert into Kategória values('k03', 'Ruha'); insert into Kategória values('k04', 'Egyéb'); 79/106

Adatbevitel Fizetés Adatbevitel fájlból: LOAD DATA LOCAL INFILE c:/fizmodok.txt INTO TABLE Fizetés; 80/106

Adatbevitel Termék (1) insert into Termék values('t01', 'sör', 200, 'világos', 'k02'); insert into Termék values('t02', 'bor', 200, 'vörös', 'k02'); insert into Termék values('t03', 'zsömle', 20, 'kerek', 'k01'); insert into Termék values('t04', 'zsír', 100, 'disznó', 'k01'); insert into Termék values('t05', 'paprika', 100, 'zöld', 'k01'); insert into Termék values('t06', 'csipsz', 300, 'sajtos', 'k01'); insert into Termék values('t07', 'csipsz', 400, 'retkes', 'k01'); insert into Termék values('t08', 'mackó felső', 8000, 'Adidasss', 'k03'); insert into Termék values('t09', 'mackó alsó', 8000, 'Adidasss', 'k03'); insert into Termék values('t10', 'mackó póló', 5000, 'Adidasss', 'k03'); 81/106

Adatbevitel Termék (2) insert into Termék values('t11', 'Fű', 5000, 'KO', 'k04'); insert into Termék values('t12', 'AB2 puska', 5000, 'Mert megérdemled', 'k04'); insert into Termék values('t13', 'Benzin', 250, 'Óccsó', 'k04'); insert into Termék values('t14', 'Nő', 10000, 'Szőke', 'k04'); insert into Termék values('t15', 'Nő', 20000, 'Barna', 'k04'); insert into Termék values('t16', 'Óvszer', 2000, 'Családi csomag', 'k04'); 82/106

Termék tábla lista 83/106

Adatbevitel Vásárló insert into Vásárló values('v01', 'Kék Alma', 'Mc. Kék u.12', 2); insert into Vásárló values('v02', 'Zöld Gabi', 'Mc. Hó u.72', 3); insert into Vásárló values('v03', 'Feke Farkas', 'Mc. Kő u.25', 1); insert into Vásárló values('v04', 'Korcs Éva', 'Eger. Lap u.4',1); insert into Vásárló values('v05', 'Kis Béla', 'Eger. Bé u.9', 2); insert into Vásárló values('v06', 'Kis Jenő', 'Eger. Cé u.11', 3); insert into Vásárló values('v07', 'Kis Noé', 'Eger. Cé u.11', 4); insert into Vásárló values('v08', 'Kis Tas', 'Eger. Cé u.11', 1); insert into Vásárló values('v09', 'Hó Manó', 'Nyék. Tó u.74', 2); insert into Vásárló values('v10', 'Ká Rozi', 'Nyék. Ká u.5', 3); insert into Vásárló values('v11', 'Víz Jenő', 'Mc. Út u.39', 3); 84/106

Vásárló tábla lista 85/106

Adatbevitel Vásárlás insert into Vásárlás (Tkód, Darab, VID) values('t14', 1, 'v06'); insert into Vásárlás (Tkód, Darab, VID) values('t15', 1, 'v06'); insert into Vásárlás (Tkód, Darab, VID) values('t16', 1, 'v06'); insert into Vásárlás (Tkód, Darab, VID) values('t03', 4, 'v01'); insert into Vásárlás (Tkód, Darab, VID) values('t04', 1, 'v01'); insert into Vásárlás (Tkód, Darab, VID) values('t02', 2, 'v02'); insert into Vásárlás (Tkód, Darab, VID) values('t06', 2, 'v02'); insert into Vásárlás (Tkód, Darab, VID) values('t07', 4, 'v02'); insert into Vásárlás (Tkód, Darab, VID) values('t08', 1, 'v03'); insert into Vásárlás (Tkód, Darab, VID) values('t09', 1, 'v03'); insert into Vásárlás (Tkód, Darab, VID) values('t11', 3, 'v04'); insert into Vásárlás (Tkód, Darab, VID) values('t12', 1, 'v04'); insert into Vásárlás (Tkód, Darab, VID) values('t13', 100, 'v05'); 86/106

Vásárlás tábla lista 87/106

Lista: Ki mikor mit vett? Select V.név, Időpont, T.név from Vásárló AS V inner join Vásárlás AS VS ON V.VID=VS.VID inner join Termék AS T ON VS.Tkód=T.Tkód; 88/106

Bolt adatbázis (példa) ER modell Táblák létrehozása Táblák módosítása Adatok feltöltése Táblák újabb módosítása 89/106

Ötlet Bolt adatbázis továbbfejlesztés Kkód Név Tkód Név Ár RHkód Kategória K-T Termék Leírás T-R Raktár Sorszám Vásárlás Időpont RDB BDB Név Darab Fkód Leírás Vásárló V-F Fizetés VID Cím 90/106

Ötlet Bolt adatbázis továbbfejlesztés RHkód Raktár RDB BDB RHkód Elsődleges kulcs, fix hossz! RDB Raktári darabszám BDB Bolti darabszám A két darabszám összege a teljes készlet! T-R Termék-Raktár kapcsolat Valamelyik táblában kell egy idegen (kapcsoló) kulcs mező, mely a másik tábla elsődleges kulcs mezőjére mutat Kérdés: Inkább bővítsük a Termék táblát a szükséges mezőkkel? 91/106

Adatbázis Rendszerek II. Ellenőrző kérdések 92/106

Ellenőrző kérdések 1. 1. Hogyan kell bejelentkezni a mysql parancssorban: A: use mysql username -p B: login mysql -u -p C: mysql -u username -p D: mysql login -u username password 2. Hogyan íratjuk ki a használható adatbázisok listáját? A: show databases; B: select databases; C: show user_databases; D: select user_databases; 93/106

Ellenőrző kérdések 2. 3. Ha a bolt adatbázisban van termék tábla, akkor a select * from bolt.termék; parancs: A: Helyes B: Helytelen 4. Melyik létező mysql adattípus? A: tinyint E: bigint B: smallint F: longint C: mediumint G: integer D: int H: numeric 94/106

Ellenőrző kérdések 3. 5. Melyik paranccsal lehet létrehozni adatbázis táblát? A: BUILD B: CONSTRUCT C: CREATE D: MAKE E: PREPARE 6. Melyik paranccsal lehet törölni adatbázis táblát? A: CLOSE B: DELETE C: CLEAR D: DROP E: KILL 7. Helyes az alábbi parancs? SELECT az, count(*) FROM vásárló WHERE az='az'; A: Igen B: Nem 95/106

Ellenőrző kérdések 4. 8. Melyik paranccsal lehet kiíratni azokat a termékeket, melyeknek üres a leírás mezője? A: select név from termék where leírás =' '; B: select név from termék where leírás = NULL; C: select név from termék where leírás IS NULL; D: select név from termék where leírás EMPTY; E: select név from termék where leírás LIKE ' '; 9. Helyes az alábbi parancs? SELECT terméknév FROM termék WHERE ár > 200 and < 500; A: Igen B: Nem 96/106

Ellenőrző kérdések 5. 10. Melyik kulcsszó hiányzik a parancsokból? SELECT név FROM 1. termék WHERE 2. ár > 1000; UPDATE termék SET 3. 97/106 ár=ár*1.1; 4. SELECT név, ár FROM termék ORD SELECT count(*) FROM vásárló 5. ; SELECT count(*) INSERT 7. 6. név; A FROM vásárló; termék values (23, Retekmag ); A: TO B: SET C: WHERE D: FROM E: GROUP BY F: SHORT BY G: INTO H: ORDER BY I: Nem hiányzik kulcsszó

Ellenőrző kérdések 6. 11. Alakítson kategóriákat, és sorolja az alábbi parancsokat az egyes kategóriákba! Kategóriák: Parancsok: A: insert B: select C: grant D: create E: update F: modify G: drop H: delete I: revoke 98/106

Ellenőrző kérdések 7. 12. Milyen szintű megszorítások az alábbiak: Unique Not null Primary key Foreign key Check (a>30) Check (a>30 and b<10); A: mező B: rekord C: tábla D: adatbázis 99/106

Ellenőrző kérdések 8. 13. Írja be a hiányzó kifejezéseket! ALTER 1. TABLE vásárló MODIFY COL 2. TINYINT(1) NOT 3. NULL; fizmód ALTER TABLE VÁSÁRLÓ ADD CONS 4. FOREIGN KEY (FIZMÓD) REFE 5. FIZETÉS(FKÓD); LOAD LOCAL INFILE c:/f.txt INTO 6. 7. 8. TABLE Fizetés; 100/106

Ellenőrző kérdések 9. 14. Az ER->Relációs modell konverziójánál hány darab tábla keletkezik? Kód Név Azon Név Vásárlás Termék Vásárló Ár Leírás Méret Darab Dátum Lakcím FizMód A: 2 B: 3 C: 4 D: 5 101/106 Ir.sz. Város Cím

Ellenőrző kérdések 10. 15. Az ER->Relációs modell konverziójánál hány darab mező lesz a Termék táblában? Kód Név Azon Név Vásárlás Termék Vásárló Ár Leírás Méret Darab Dátum Lakcím FizMód A: 3 B: 4 C: 5 D: 6 102/106 Ir.sz. Város Cím

Ellenőrző kérdések 11. 16. Az ER->Relációs modell konverziójánál hány darab mező lesz a Vásárlás táblában? Kód Név Azon Név Vásárlás Termék Vásárló Ár Leírás Méret Darab Dátum Lakcím FizMód A: 2 Ir.sz. Város Cím B: 3 C: 4 D: 5 103/106

Ellenőrző kérdések 12. 17. Az ER->Relációs modell konverziójánál hány darab mező lesz a Vásárló táblában? Kód Név Azon Név Vásárlás Termék Vásárló Ár Leírás Méret Darab Dátum Lakcím FizMód A: 4 B: 5 C: 6 D: 7 E: 8 104/106 Ir.sz. Város Cím

Felhasznált irodalom bitman.uw.hu Eskúel (elektronikus jegyzet) bitman.uw.hu F1-Pl/Sql feladatok (elektronikus jegyzet) www.w3school.com SQL Tutorial www.tizag.com MySQL Tutorial www.tutorialspoint.com MySQL Tutorial 105/106

VÉGE V É G E 106/106