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

Hasonló dokumentumok
Adatbázis rendszerek Gy: 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

Adatbázis Rendszerek II. 3. SQL alapok

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

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

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

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 1. 5.Gy: ER relációs konverzió

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

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

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

Adatbázis rendszerek 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

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

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

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

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

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

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

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

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

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

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

Java és web programozás

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

Adatbázis, adatbázis-kezelő

Elemi alkalmazások fejlesztése IV.

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

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-kezelés alapok Adatbázisok című tárgyhoz, ismétlés kapcsán

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Á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

Webfejlesztés 4. alkalom

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

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

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.

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

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 RENDSZEREK I BEADANDÓ

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

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

LBRA6i integrált rendszer

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

Adatbázisok gyakorlat

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

Adatmodellek. 2. rész

Vizuális programozás gyakorlat

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

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.

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

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

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

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

Az SQL adatbázisnyelv: DML

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

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:

Átírás:

Adatbázis Rendszerek II. 3. Ea: MySQL alapok 106/1 B IT v: 2016.02.09 MAN

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

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

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

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

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

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

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

XAMPP Control Panel 106/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) 106/10

http://127.0.0.1 106/11

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

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

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

Mysql.bat 106/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) 106/16

MySQL parancssoros felület 106/17

Néhány alapparancs Show databases; Select version(), current_date; 106/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) 106/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ő 106/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. 106/21

Adatbázisok Create database próba; Use próba; Drop database próba; 106/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) 106/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. 106/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. 106/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 106/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ő 106/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: 106/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 106/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 106/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 106/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 106/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 106/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ó. 106/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 106/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 106/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 106/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. 106/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. 106/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 106/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. 106/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 106/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 106/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 106/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ű) 106/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! 106/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) 106/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), ); 106/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; 106/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) 106/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 106/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 106/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ő 106/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 106/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 106/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 106/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 106/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 106/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 106/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)); 106/60

Táblajáték Kategória Ellenőrzés Describe Kategória; Show create table Kategória; 106/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)); 106/62

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

Táblajáték Termék Ellenőrzés (2) Show create table termék; 106/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)); 106/65

Táblajáték Vásárló Ellenőrzés Describe Vásárló; 106/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)); 106/67

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

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

Táblajáték Vásárlás Ellenőrzés 106/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 106/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 106/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! 106/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 106/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 106/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)); 106/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); 106/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 106/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'); 106/79

Adatbevitel Fizetés Adatbevitel fájlból: LOAD DATA LOCAL INFILE c:/fizmodok.txt INTO TABLE Fizetés; 106/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'); 106/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'); 106/82

Termék tábla lista 106/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); 106/84

Vásárló tábla lista 106/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'); 106/86

Vásárlás tábla lista 106/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; 106/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 106/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 106/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? 106/91

Adatbázis Rendszerek II. Ellenőrző kérdések 106/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; 106/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 106/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 106/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 106/96

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. 106/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ó

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 106/98

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

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 106/101 A: 2 B: 3 C: 4 D: 5 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 106/102 A: 3 B: 4 C: 5 D: 6 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 106/103 A: 2 B: 3 C: 4 D: 5 Ir.sz. Város Cím

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 106/104 A: 4 B: 5 C: 6 D: 7 E: 8 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 106/105

VÉGE VÉGE 106/106