Adatbázis rendszerek Gy: MySQL alapok

Hasonló dokumentumok
Adatbázis Rendszerek II. 3. Ea: MySQL alapok

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

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

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

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

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

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

Adatbázis Rendszerek II. 3. SQL alapok

Adatbázis rendszerek SQL nyomkövetés

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

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

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

Adattípusok. Max. 2GByte

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

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

Adattípusok. Max. 2GByte

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

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

Adatbázisok* tulajdonságai

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

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

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

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

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

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

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

Bevezetés: az SQL-be

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

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

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 ) );

BEVEZETÉS Az objektum fogalma

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:

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

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

BGF. 4. Mi tartozik az adatmodellek szerkezeti elemei

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 I. Definíció: DDL: - objektum létrehozás CREATE - objektum megszüntetés DROP - objektum módosítás ALTER

SQL parancsok feldolgozása

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

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

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

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

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

Elemi alkalmazások fejlesztése IV.

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

Webfejlesztés 4. alkalom

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

Java és web programozás

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

SQL DDL-1: táblák és 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ázis, adatbázis-kezelő

Adatmodellezés. 1. Fogalmi modell

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

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

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

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

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

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

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

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

Java és web programozás

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

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ÁZISKEZELÉS ADATBÁZIS


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

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

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

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.

STRUCTURED QUERY LANGUAGE(SQL) - ALAPOK

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

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

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

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

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

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

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

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

Adatbázisok gyakorlat

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

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

Adatmodellek. 2. rész

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

LBRA6i integrált rendszer

Adatbázis használat I. 5. gyakorlat

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

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.

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

ADATBÁZIS RENDSZEREK I BEADANDÓ

Vizuális programozás gyakorlat

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

Az SQL adatbázisnyelv: DML

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

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

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

Adatbázis-kezelés alapjai SQL 1: DDL, DML. v: B IT MAN 92/1B IT MAN

Átírás:

Adatbázis rendszerek 1. 1. Gy: MySQL alapok 103/1 B ITv: MAN 2015.09.27

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) 103/2

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

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

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

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

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

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

XAMPP Control Panel 103/9

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) 103/10

http://127.0.0.1 103/11

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

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

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

Mysql.bat 103/15

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) 103/16

MySQL parancssoros felület 103/17

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

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) 103/19

Relációs adatmodell - Alapok Építő elemek: MEZŐ REKORD RELÁCIÓ ADATBÁZIS Kód Név A3 Kovács B 14 S1 Dolgozó Munkakör Munkaidő 103/20 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. 103/21

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

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) 103/23

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. 103/24 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. 103/25

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 103/26

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ő 103/27 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: 103/28 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 Autó Sorszám Rszám Dátum Útvonal Km Rendszám Típus Fogyaszt 103/29 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 103/30 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 103/31 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 103/32 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 103/33 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ó. 103/34

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 103/35

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 103/36

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

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. 103/38

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. 103/39

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 103/40

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. 103/41

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 103/42

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 103/43

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 103/44

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ű) 103/45

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! 103/46

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) 103/47

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), ); 103/48

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; 103/49

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) 103/50

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

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 103/52

ER konverziója relációs modellre 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ő 103/53 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 103/54 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 103/55

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 103/56 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 103/57 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 103/58

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

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)); 103/60

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

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)); 103/62

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

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

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)); 103/65

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

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)); 103/67

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

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

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

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

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 103/72

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! 103/73

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 103/74

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 103/75

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)); 103/76

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); 103/77

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

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'); 103/79

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

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'); 103/81

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'); 103/82

Termék tábla lista 103/83

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); 103/84

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

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'); 103/86

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

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; 103/88

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 103/89

Ö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 103/90

Ö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? 103/91

Adatbázis rendszerek 1. Ellenőrző kérdések 103/92

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; 103/93

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 103/94

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 103/95

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 103/96 B ITI T MAN

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. 103/97 á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ó B ITI T MAN

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 103/98 B ITI T MAN

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 103/99

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; 103/100

103/101

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 103/102

VÉGE VÉGE 103/103