47
 Adatbázisok használata 1. Az adatbázis megtervezése Az adatbázis sémája:  járatok <FORGALMI_SZÁM, VISZONYLAT, KEZDÉSI_IDŐ, BEFEJEZÉSI_IDŐ, PÁLYASZÁM, TÍPUS, ÜLŐHELYEK_SZÁMA, ÁLLÓHELYEK_SZÁMA, VEZETŐ_NEVE, ANYJA_NEVE, BEOSZTÁS, MENETID Ő, TÁV, PIHENŐIDŐ, DÁTUM, FORDULÓSZÁM, INDULÁSI_IDŐ, ÉRKEZÉSI_IDŐ, UTASSZÁM> ahol feltételezzük hogy: a) a járműve zet őt VEZ ETŐ_ NEV E és ANYJA _NEV E együtt egy értelm űen azon osítja .  b) az egye s meneteket a VEZET Ő_NEV E, ANYJ A_NE VE, FORG ALM I_SZÁ M, DÁTU M és FORDUL ÓSZÁM attribútumok egyértelműen azonosítják. c) az ad ott villamosvo nalak(viszonylato k) mindké t irányban, minden időben ug yanolyan tulajdonságok kal és forgalmi paraméterek kel rendelkeznek. d) egy forga lmi számot naponta c sak eg yszer ad nak ki, és csak egy villam osvezet őnek . Az adatbázis átalakítása BCNF alakra: 1. lépés: A tárolandó attribútumo k kijelölése – az ősmodell relációsémá ja  járatok <FORGALMI_SZÁM, VISZONYLAT, KEZDÉSI_IDŐ, BEFEJEZÉSI_IDŐ, PÁLYASZÁM, TÍPUS, ÜLŐHELYEK_SZÁMA, ÁLLÓHELYEK_SZÁMA, VEZETŐ_NEVE, ANYJA_NEVE, BEOSZTÁS, MENETIDŐ, TÁV, PIHENŐIDŐ, DÁTUM, FORDULÓSZÁM, INDULÁSI_IDŐ, BEÉRKEZ ÉSI_IDŐ, UTASSZ ÁM> 2. lépés: A függ ő ségek felismerése Az attribútumok szöveg esen megadott kapcsolatai alapján felismerhet ő összefügg ések: A járművezet őt VEZETŐ_NE VE és ANYJA_N EVE együtt egyértelműe n azonosítja: ƒ vezet ő = {VEZETŐ_NEVE, ANYJA_NEVE} {BEOSZTÁS} Az egyes meneteket a VEZETŐ_NEVE, ANYJA_NEVE, FORGALMI_SZÁM, DÁTUM és FORDUL ÓSZÁM attribútumok egyértelműen azonosítják: ƒ menetek = {VEZETŐ_NEVE, ANYJA_NEVE, FORGALMI_SZÁM, DÁTUM, FORDULÓSZÁM} {PÁLYASZÁM, INDULÁSI_IDŐ, ÉRKEZÉSI_IDŐ, UTASSZÁM} Az adott villamosvonala k(viszonylatok) mindkét irányban, minden időben ugyanolyan tulajdonságokkal és forgalmi paramétere kkel rendelkezne k: ƒ viszonylatok = {VISZONYL AT}{MENET IDŐ, TÁV, PIHENŐIDŐ} Egy forgalmi számot naponta csak egyszer adnak ki, és csak egy villamosvezet ő nek: ƒ  járat = {FORGALMI_SZÁM} {VISZONYLAT, KEZDÉSI_IDŐ, BEFEJEZÉSI_IDŐ} További összefüggések: ƒ villamos = {PÁLYASZÁM} {TÍPUS, ÜLŐHELYEK_SZÁMA, ÁLLÓHELYEK_SZÁMA} ƒ típus = {TÍPUS} {ÜLŐHELYEK_SZÁMA, ÁLLÓHELYEK_SZÁMA} - 1 -

Adatbázis tervezés példa

  • Upload
    boyak01

  • View
    394

  • Download
    1

Embed Size (px)

Citation preview

5/14/2018 Adatbázis tervezés példa - slidepdf.com

http://slidepdf.com/reader/full/adatbazis-tervezes-pelda 1/47

 

Adatbázisok használata 1.

Az adatbázis megtervezése

Az adatbázis sémája:

 járatok <FORGALMI_SZÁM, VISZONYLAT, KEZDÉSI_IDŐ, BEFEJEZÉSI_IDŐ, PÁLYASZÁM, TÍPUS,ÜLŐHELYEK_SZÁMA, ÁLLÓHELYEK_SZÁMA, VEZETŐ_NEVE, ANYJA_NEVE, BEOSZTÁS,

MENETIDŐ, TÁV, PIHENŐIDŐ, DÁTUM, FORDULÓSZÁM, INDULÁSI_IDŐ, ÉRKEZÉSI_IDŐ,UTASSZÁM>

ahol feltételezzük hogy:a) a járművezetőt VEZETŐ_NEVE és ANYJA_NEVE együtt egyértelműen azonosítja.

 b) az egyes meneteket a VEZETŐ_NEVE, ANYJA_NEVE, FORGALMI_SZÁM, DÁTUM ésFORDULÓSZÁM attribútumok egyértelműen azonosítják.

c) az adott villamosvonalak(viszonylatok) mindkét irányban, minden időben ugyanolyan tulajdonságokkal ésforgalmi paraméterekkel rendelkeznek.

d) egy forgalmi számot naponta csak egyszer adnak ki, és csak egy villamosvezetőnek.

Az adatbázis átalakítása BCNF alakra:

1. lépés: A tárolandó attribútumok kijelölése – az ősmodell relációsémája járatok <FORGALMI_SZÁM, VISZONYLAT, KEZDÉSI_IDŐ, BEFEJEZÉSI_IDŐ, PÁLYASZÁM, TÍPUS,

ÜLŐHELYEK_SZÁMA, ÁLLÓHELYEK_SZÁMA, VEZETŐ_NEVE, ANYJA_NEVE, BEOSZTÁS,MENETIDŐ, TÁV, PIHENŐIDŐ, DÁTUM, FORDULÓSZÁM, INDULÁSI_IDŐ,BEÉRKEZÉSI_IDŐ, UTASSZÁM>

2. lépés: A függőségek felismeréseAz attribútumok szövegesen megadott kapcsolatai alapján felismerhető összefüggések:

A járművezetőt VEZETŐ_NEVE és ANYJA_NEVE együtt egyértelműen azonosítja:ƒvezető = {VEZETŐ_NEVE, ANYJA_NEVE}→{BEOSZTÁS}

Az egyes meneteket a VEZETŐ_NEVE, ANYJA_NEVE, FORGALMI_SZÁM, DÁTUM ésFORDULÓSZÁM attribútumok egyértelműen azonosítják:ƒmenetek = {VEZETŐ_NEVE, ANYJA_NEVE, FORGALMI_SZÁM, DÁTUM, FORDULÓSZÁM}→{PÁLYASZÁM, INDULÁSI_IDŐ, ÉRKEZÉSI_IDŐ, UTASSZÁM}

Az adott villamosvonalak(viszonylatok) mindkét irányban, minden időben ugyanolyan tulajdonságokkal ésforgalmi paraméterekkel rendelkeznek:

ƒviszonylatok = {VISZONYLAT}→{MENETIDŐ, TÁV, PIHENŐIDŐ}

Egy forgalmi számot naponta csak egyszer adnak ki, és csak egy villamosvezetőnek:ƒ járat = {FORGALMI_SZÁM}→{VISZONYLAT, KEZDÉSI_IDŐ, BEFEJEZÉSI_IDŐ}

További összefüggések:

ƒvillamos = {PÁLYASZÁM}→{TÍPUS, ÜLŐHELYEK_SZÁMA, ÁLLÓHELYEK_SZÁMA}ƒtípus = {TÍPUS}→{ÜLŐHELYEK_SZÁMA, ÁLLÓHELYEK_SZÁMA}

- 1 -

5/14/2018 Adatbázis tervezés példa - slidepdf.com

http://slidepdf.com/reader/full/adatbazis-tervezes-pelda 2/47

 

Adatbázisok használata 1.

3. lépés: A függőségek normailzálása

Az ƒvezető függőség vizsgálata:1NF: az ƒvezető 1NF-ben van, mivel nincs benne összetett attribútum.2NF: az ƒvezető 2NF-ben van, mivel mindegyik másodlagos attribútum az összes elsődleges attribútumtól függ.3NF: az ƒvezető 3NF-ben van, mivel csak egy másodlagos attribútuma van.

BCNF: mivel az ƒvezető már 3NF alakban van, és az elsődleges attribútumok egyetlen valódi részhalmaza semfügg egyetlen elsődleges vagy másodlagos attribútumtól sem, ezért a függőség BCNF alakban van.

Az ƒmenetek függőség vizsgálata:1NF: az ƒmenetek 1NF-ben van, mivel nincs benne összetett attribútum.2NF: az ƒmenetek 2NF-ben van, mivel mindegyik másodlagos attribútum az összes elsődleges attribútumtól függ.3NF: az ƒmenetek 3NF-ben van, mivel a másodlagos attribútumok között sem megadott, sem feltételezető

függőség nincs.BCNF: mivel az ƒmenetek már 3NF alakban van, és az elsődleges attribútumok egyetlen valódi részhalmaza sem

függ egyetlen elsődleges vagy másodlagos attribútumtól sem, ezért a függőség BCNF alakban van.

Az ƒviszonylatok függőség vizsgálata:1NF: az ƒviszonylatok 1NF-ben van, mivel nincs benne összetett attribútum.2NF: az ƒviszonylatok 2NF-ben van, mivel mindegyik másodlagos attribútum az összes elsődleges attribútumtól

függ.3NF: az ƒviszonylatok 3NF-ben van, mivel a másodlagos attribútumok között sem megadott, sem feltételezető

függőség nincs.BCNF: mivel az ƒviszonylatok már 3NF alakban van, és az elsődleges attribútumok egyetlen valódi részhalmaza

sem függ egyetlen elsődleges vagy másodlagos attribútumtól sem, ezért a függőség BCNF alakban van.

Az ƒ járat függőség vizsgálata:1NF: az ƒ járat 1NF-ben van, mivel nincs benne összetett attribútum.

2NF: az ƒ járat 2NF-ben van, mivel mindegyik másodlagos attribútum az összes elsődleges attribútumtól függ.3NF: az ƒ járat 3NF-ben van, mivel a másodlagos attribútumok között sem megadott, sem feltételezető függőség

nincs.BCNF: mivel az ƒ járat már 3NF alakban van, és az elsődleges attribútumok egyetlen valódi részhalmaza sem

függ egyetlen elsődleges vagy másodlagos attribútumtól sem, ezért a függőség BCNF alakban van.

Az ƒvillamos függőség vizsgálata:1NF: az ƒvillamos 1NF-ben van, mivel nincs benne összetett attribútum.2NF: az ƒvillamos 2NF-ben van, mivel mindegyik másodlagos attribútum az összes elsődleges attribútumtól függ.3NF: az ƒvillamos nincs 3NF-ben, mivel a másodlagos attribútumok között az. ƒtípus függőség, mint belső függés

található. Ezt kiemelve kapjuk azƒvillamos1= {PÁLYASZÁM}→{TÍPUS} függőséget, mely már 3NF-ben van.

BCNF: mivel az ƒvillamos1 már 3NF alakban van, és az elsődleges attribútumok egyetlen valódi részhalmaza semfügg egyetlen elsődleges vagy másodlagos attribútumtól sem, ezért a függőség BCNF alakban van.

- 2 -

5/14/2018 Adatbázis tervezés példa - slidepdf.com

http://slidepdf.com/reader/full/adatbazis-tervezes-pelda 3/47

 

Adatbázisok használata 1.

Az ƒtipus függőség vizsgálata:1NF: az ƒtipus 1NF-ben van, mivel nincs benne összetett attribútum.2NF: az ƒtipus 2NF-ben van, mivel mindegyik másodlagos attribútum az összes elsődleges attribútumtól függ.3NF: az ƒtipus 3NF-ben van, mivel a másodlagos attribútumok között sem megadott, sem feltételezető függőség

nincs.

BCNF: mivel az ƒtipus már 3NF alakban van, és az elsődleges attribútumok egyetlen valódi részhalmaza semfügg egyetlen elsődleges vagy másodlagos attribútumtól sem, ezért a függőség BCNF alakban van.

4. lépés: Az eredmény függőségek összefoglalása

ƒvezető = {VEZETŐ_NEVE, ANYJA_NEVE}→{BEOSZTÁS}

ƒmenetek = {VEZETŐ_NEVE, ANYJA_NEVE, FORGALMI_SZÁM, DÁTUM, FORDULÓSZÁM}→{PÁLYASZÁM, INDULÁSI_IDŐ, ÉRKEZÉSI_IDŐ, UTASSZÁM}

ƒviszonylatok = {VISZONYLAT}→{MENETIDŐ, TÁV, PIHENŐIDŐ}

ƒ járat = {FORGALMI_SZÁM}→{VISZONYLAT, KEZDÉSI_IDŐ, BEFEJEZÉSI_IDŐ}

ƒvillamos1= {PÁLYASZÁM}→{TÍPUS}

ƒtípus = {TÍPUS}→{ÜLŐHELYEK_SZÁMA, ÁLLÓHELYEK_SZÁMA}

5. lépés: Az eredmény adatmodell felírása

Az eredmény függőségek alapján az adatmodell, valamint az elsődleges és az idegen kulcsok az alábbi módonírhatók fel:

vezetők<VEZETŐ_NEVE, ANYJA_NEVE, BEOSZTÁS>

menetek<VEZETŐ_NEVE, ANYJA_NEVE, FORGALMI_SZÁM, DÁTUM, FORDULÓSZÁM, PÁLYASZÁM , INDULÁSI_IDŐ, ÉRKEZÉSI_IDŐ, UTASSZÁM>

viszonylatok<VISZONYLAT, MENETIDŐ, TÁV, PIHENŐIDŐ>

 járatok<FORGALMI_SZÁM, VISZONYLAT , KEZDÉSI_IDŐ, BEFEJEZÉSI_IDŐ>

villamosok<PÁLYASZÁM,TÍPUS >

típusok<TÍPUS, ÜLŐHELYEK_SZÁMA, ÁLLÓHELYEK_SZÁMA>

Az elsődleges kulcsok aláhúzással, az idegen kulcsok dőlt betűvel vannak megjelölve.

- 3 -

5/14/2018 Adatbázis tervezés példa - slidepdf.com

http://slidepdf.com/reader/full/adatbazis-tervezes-pelda 4/47

 

Adatbázisok használata 1.

Az adattáblák létrehozása

CREATE TABLE VEZETOK(VEZETO_NEVE VARCHAR2(20),ANYJA_NEVE VARCHAR2(20),

BEOSZTAS VARCHAR2(15));

CREATE TABLE MENETEK(VEZETO_NEVE VARCHAR2(20),ANYJA_NEVE VARCHAR2(20),FORGALMI_SZAM NUMBER(5),DATUM DATE,FORDULOSZAM NUMBER(2),PALYASZAM NUMBER(4),INDULASI_IDO NUMBER(4),ERKEZESI_IDO NUMBER(4),UTASSZAM NUMBER(3));

CREATE TABLE VISZONYLATOK(VISZONYLAT NUMBER(2),MENETIDO NUMBER(4),TAV NUMBER(6),PIHENOIDO NUMBER(4));

CREATE TABLE JARATOK(FORGALMI_SZAM NUMBER(5),VISZONYLAT NUMBER(2),KEZDESI_IDO NUMBER(4),BEFEJEZESI_IDO NUMBER(4));

CREATE TABLE VILLAMOSOK(PALYASZAM NUMBER(4),TIPUS VARCHAR2(20));

CREATE TABLE TIPUSOK(TIPUS VARCHAR2(20),ULOHELYEK_SZAMA NUMBER(4),ALLOHELYEK_SZAMA NUMBER(4));

- 4 -

5/14/2018 Adatbázis tervezés példa - slidepdf.com

http://slidepdf.com/reader/full/adatbazis-tervezes-pelda 5/47

 

Adatbázisok használata 1.

A megszorítások hozzáadása

--elsődleges kulcs

ALTER TABLE vezetok

ADD CONSTRAINT vezetok_pri PRIMARY KEY (vezeto_neve, anyja_neve);

ALTER TABLE menetekADD CONSTRAINT menetek_pri PRIMARY KEY (vezeto_neve, anyja_neve,

forgalmi_szam, datum, forduloszam);

ALTER TABLE viszonylatokADD CONSTRAINT viszonylatok_pri PRIMARY KEY(viszonylat);

ALTER TABLE jaratokADD CONSTRAINT jaratok_pri PRIMARY KEY(forgalmi_szam);

ALTER TABLE villamosokADD CONSTRAINT villamosok_pri PRIMARY KEY(palyaszam);

ALTER TABLE tipusokADD CONSTRAINT tipusok_pri PRIMARY KEY(tipus);

--idegen kulcs

ALTER TABLE menetekADD CONSTRAINT menetek_for FOREIGN KEY (palyaszam) REFERENCES

villamosok(palyaszam);

ALTER TABLE jaratokADD CONSTRAINT jaratok_for FOREIGN KEY (viszonylat) REFERENCES

viszonylatok(viszonylat);

ALTER TABLE villamosokADD CONSTRAINT villamosok_for FOREIGN KEY (tipus) REFERENCES tipusok(tipus) ON

DELETE CASCADE;

--check

ALTER TABLE menetekADD CONSTRAINT menetek_che CHECK(erkezesi_ido > indulasi_ido);

--NOT NULL

ALTER TABLE villamosokMODIFY tipus CONSTRAINT villamosok_nnul NOT NULL;

- 5 -

5/14/2018 Adatbázis tervezés példa - slidepdf.com

http://slidepdf.com/reader/full/adatbazis-tervezes-pelda 6/47

 

Adatbázisok használata 1.

Az adattáblák feltöltése

--vezetokINSERT INTO vezetok VALUES('Kiss Pista', 'Veres Mária', 'főállású');INSERT INTO vezetok VALUES('Kecskés Judit', 'Kovács Ilona', 'főállású');INSERT INTO vezetok VALUES('Nagy Ferenc', 'Illés Zsuzsanna', 'főállású');

INSERT INTO vezetok VALUES('Hordós László', 'Zöld Mariann', 'besegítő');INSERT INTO vezetok VALUES('Berkes Orsolya', 'Vass Katalin', 'főállású');INSERT INTO vezetok VALUES('Erdős Eszter', 'Kun Dorottya', 'besegítő');

--viszonylatok

INSERT INTO viszonylatok VALUES(1,40,15000,5);INSERT INTO viszonylatok VALUES(2,20,6000,5);INSERT INTO viszonylatok VALUES(3,53,20000,7);INSERT INTO viszonylatok VALUES(4,30,12500,2);INSERT INTO viszonylatok VALUES(6,30,12000,5);INSERT INTO viszonylatok VALUES(17,12,5000,10);

--típusokINSERT INTO tipusok VALUES('CSMG2',40,126);INSERT INTO tipusok VALUES('KCSV7',36,126);INSERT INTO tipusok VALUES('T5C5',75,210);INSERT INTO tipusok VALUES('TW6000',46,130);INSERT INTO tipusok VALUES('COMBINO',64,289);

--villamosokINSERT INTO villamosok VALUES(1301,'CSMG2');INSERT INTO villamosok VALUES(1302,'CSMG2');

INSERT INTO villamosok VALUES(1304,'CSMG2');INSERT INTO villamosok VALUES(1305,'CSMG2');INSERT INTO villamosok VALUES(1306,'CSMG2');INSERT INTO villamosok VALUES(1307,'CSMG2');INSERT INTO villamosok VALUES(1308,'CSMG2');INSERT INTO villamosok VALUES(1309,'CSMG2');INSERT INTO villamosok VALUES(1310,'CSMG2');INSERT INTO villamosok VALUES(1311,'CSMG2');INSERT INTO villamosok VALUES(1312,'CSMG2');INSERT INTO villamosok VALUES(1313,'CSMG2');INSERT INTO villamosok VALUES(1325,'KCSV7');INSERT INTO villamosok VALUES(1326,'KCSV7');

INSERT INTO villamosok VALUES(1347,'KCSV7');INSERT INTO villamosok VALUES(1356,'KCSV7');INSERT INTO villamosok VALUES(4202,'T5C5');INSERT INTO villamosok VALUES(4203,'T5C5');INSERT INTO villamosok VALUES(4204,'T5C5');INSERT INTO villamosok VALUES(4205,'T5C5');INSERT INTO villamosok VALUES(4206,'T5C5');INSERT INTO villamosok VALUES(4207,'T5C5');INSERT INTO villamosok VALUES(4208,'T5C5');INSERT INTO villamosok VALUES(4209,'T5C5');INSERT INTO villamosok VALUES(4210,'T5C5');INSERT INTO villamosok VALUES(4211,'T5C5');INSERT INTO villamosok VALUES(4212,'T5C5');INSERT INTO villamosok VALUES(4213,'T5C5');INSERT INTO villamosok VALUES(4214,'T5C5');

- 6 -

5/14/2018 Adatbázis tervezés példa - slidepdf.com

http://slidepdf.com/reader/full/adatbazis-tervezes-pelda 7/47

 

Adatbázisok használata 1.

INSERT INTO villamosok VALUES(4215,'T5C5');INSERT INTO villamosok VALUES(1501,'TW6000');INSERT INTO villamosok VALUES(1502,'TW6000');INSERT INTO villamosok VALUES(1503,'TW6000');INSERT INTO villamosok VALUES(1504,'TW6000');INSERT INTO villamosok VALUES(1505,'TW6000');INSERT INTO villamosok VALUES(1506,'TW6000');

INSERT INTO villamosok VALUES(1507,'TW6000');INSERT INTO villamosok VALUES(2001,'COMBINO');INSERT INTO villamosok VALUES(2002,'COMBINO');INSERT INTO villamosok VALUES(2003,'COMBINO');INSERT INTO villamosok VALUES(2004,'COMBINO');INSERT INTO villamosok VALUES(2005,'COMBINO');INSERT INTO villamosok VALUES(2006,'COMBINO');INSERT INTO villamosok VALUES(2007,'COMBINO');INSERT INTO villamosok VALUES(2008,'COMBINO');INSERT INTO villamosok VALUES(2009,'COMBINO');INSERT INTO villamosok VALUES(2010,'COMBINO');

--járatok

INSERT INTO jaratok VALUES(0101,1,240,480);INSERT INTO jaratok VALUES(0102,1,240,480);INSERT INTO jaratok VALUES(0103,1,240,720);INSERT INTO jaratok VALUES(0104,1,300,540);INSERT INTO jaratok VALUES(0105,1,240,720);INSERT INTO jaratok VALUES(0106,1,840,1320);INSERT INTO jaratok VALUES(0107,1,1140,1380);

INSERT INTO jaratok VALUES(0201,2,240,480);INSERT INTO jaratok VALUES(0202,2,240,720);

INSERT INTO jaratok VALUES(0203,2,300,540);INSERT INTO jaratok VALUES(0204,2,240,720);INSERT INTO jaratok VALUES(0205,2,840,1320);INSERT INTO jaratok VALUES(0206,2,1140,1380);

INSERT INTO jaratok VALUES(0301,3,240,480);INSERT INTO jaratok VALUES(0302,3,300,480);INSERT INTO jaratok VALUES(0303,3,240,720);INSERT INTO jaratok VALUES(0304,3,300,540);INSERT INTO jaratok VALUES(0305,3,480,720);INSERT INTO jaratok VALUES(0306,3,840,1080);INSERT INTO jaratok VALUES(0307,3,1140,1380);

INSERT INTO jaratok VALUES(0401,4,240,480);INSERT INTO jaratok VALUES(0402,4,300,480);INSERT INTO jaratok VALUES(0403,4,240,720);INSERT INTO jaratok VALUES(0404,4,240,720);INSERT INTO jaratok VALUES(0405,4,300,540);INSERT INTO jaratok VALUES(0406,4,480,720);INSERT INTO jaratok VALUES(0407,4,840,1320);INSERT INTO jaratok VALUES(0408,4,1140,1380);

INSERT INTO jaratok VALUES(0601,6,240,480);INSERT INTO jaratok VALUES(0602,6,300,480);INSERT INTO jaratok VALUES(0603,6,240,720);INSERT INTO jaratok VALUES(0604,6,240,720);INSERT INTO jaratok VALUES(0605,6,300,540);

- 7 -

5/14/2018 Adatbázis tervezés példa - slidepdf.com

http://slidepdf.com/reader/full/adatbazis-tervezes-pelda 8/47

 

Adatbázisok használata 1.

INSERT INTO jaratok VALUES(0606,6,480,720);INSERT INTO jaratok VALUES(0607,6,840,1320);INSERT INTO jaratok VALUES(0608,6,1140,1380);

INSERT INTO jaratok VALUES(1701,17,240,480);INSERT INTO jaratok VALUES(1703,17,240,720);INSERT INTO jaratok VALUES(1704,17,300,900);

INSERT INTO jaratok VALUES(1706,17,840,1320);

--menetekINSERT INTO menetek VALUES('Kiss Pista', 'Veres Mária', 1701, '2008-02-01', 1,1301, 250, 270, 20);INSERT INTO menetek VALUES('Kiss Pista', 'Veres Mária', 1701, '2008-02-01', 2,1301, 280, 305, 46);INSERT INTO menetek VALUES('Kiss Pista', 'Veres Mária', 1701, '2008-02-01', 3,1301, 310, 330, 73);INSERT INTO menetek VALUES('Kiss Pista', 'Veres Mária', 1701, '2008-02-01', 4,1301, 340, 355, 112);INSERT INTO menetek VALUES('Kiss Pista', 'Veres Mária', 1701, '2008-02-01', 5,

1313, 360, 375, 126);INSERT INTO menetek VALUES('Kiss Pista', 'Veres Mária', 1701, '2008-02-01', 6,1313, 380, 400, 84);INSERT INTO menetek VALUES('Kiss Pista', 'Veres Mária', 1701, '2008-02-01', 7,1313, 401, 415, 84);INSERT INTO menetek VALUES('Kiss Pista', 'Veres Mária', 0205, '2008-02-02', 1,1347, 850, 870, 102);INSERT INTO menetek VALUES('Kiss Pista', 'Veres Mária', 0205, '2008-02-02', 2,1347, 875, 895, 75);INSERT INTO menetek VALUES('Kiss Pista', 'Veres Mária', 0205, '2008-02-02', 3,1347, 900, 920, 140);INSERT INTO menetek VALUES('Kiss Pista', 'Veres Mária', 0205, '2008-02-02', 4,

1347, 925, 945, 114);INSERT INTO menetek VALUES('Kiss Pista', 'Veres Mária', 0205, '2008-02-02', 5,1347, 950, 970, 99);

INSERT INTO menetek VALUES('Kecskés Judit', 'Kovács Ilona', 0301, '2008-03-03',1, 1501, 240, 293, 150);INSERT INTO menetek VALUES('Kecskés Judit', 'Kovács Ilona', 0301, '2008-03-03',2, 1501, 300, 353, 132);INSERT INTO menetek VALUES('Kecskés Judit', 'Kovács Ilona', 0301, '2008-03-03',3, 1501, 360, 413, 150);INSERT INTO menetek VALUES('Kecskés Judit', 'Kovács Ilona', 0301, '2008-03-03',4, 1501, 420, 473, 95);

INSERT INTO menetek VALUES('Kecskés Judit', 'Kovács Ilona', 0306, '2008-03-03',1, 1501, 840, 893, 150);INSERT INTO menetek VALUES('Kecskés Judit', 'Kovács Ilona', 0306, '2008-03-03',2, 1501, 900, 953, 114);INSERT INTO menetek VALUES('Kecskés Judit', 'Kovács Ilona', 0306, '2008-03-03',3, 1501, 960, 1015, 126);INSERT INTO menetek VALUES('Kecskés Judit', 'Kovács Ilona', 0306, '2008-03-03',4, 1501, 1020, 1073, 95);INSERT INTO menetek VALUES('Kecskés Judit', 'Kovács Ilona', 0106, '2008-03-17',1, 4202, 840, 880, 201);INSERT INTO menetek VALUES('Kecskés Judit', 'Kovács Ilona', 0106, '2008-03-17',2, 4202, 885, 1027, 201);INSERT INTO menetek VALUES('Kecskés Judit', 'Kovács Ilona', 0106, '2008-03-17',3, 4202, 1032, 1071, 201);

- 8 -

5/14/2018 Adatbázis tervezés példa - slidepdf.com

http://slidepdf.com/reader/full/adatbazis-tervezes-pelda 9/47

 

Adatbázisok használata 1.

INSERT INTO menetek VALUES('Kecskés Judit', 'Kovács Ilona', 0106, '2008-03-17',4, 4202, 1075, 1115, 214);INSERT INTO menetek VALUES('Kecskés Judit', 'Kovács Ilona', 0106, '2008-03-17',5, 4202, 1122, 1164, 201);INSERT INTO menetek VALUES('Kecskés Judit', 'Kovács Ilona', 0106, '2008-03-17',6, 4202, 1166, 1205, 167);INSERT INTO menetek VALUES('Kecskés Judit', 'Kovács Ilona', 0106, '2008-03-17',

7, 4202, 1210, 1250, 95);INSERT INTO menetek VALUES('Kecskés Judit', 'Kovács Ilona', 0106, '2008-03-17',8, 4202, 1256, 1297, 78);

INSERT INTO menetek VALUES('Nagy Ferenc', 'Illés Zsuzsanna', 0401, '2008-03-02',1, 2001, 240, 270, 123);INSERT INTO menetek VALUES('Nagy Ferenc', 'Illés Zsuzsanna', 0401, '2008-03-02',2, 2001, 280, 310, 120);INSERT INTO menetek VALUES('Nagy Ferenc', 'Illés Zsuzsanna', 0401, '2008-03-02',3, 2001, 320, 353, 236);INSERT INTO menetek VALUES('Nagy Ferenc', 'Illés Zsuzsanna', 0401, '2008-03-02',4, 2001, 360, 410, 228);

INSERT INTO menetek VALUES('Nagy Ferenc', 'Illés Zsuzsanna', 0401, '2008-03-02',5, 2001, 420, 450, 235);INSERT INTO menetek VALUES('Nagy Ferenc', 'Illés Zsuzsanna', 0407, '2008-03-03',1, 2003, 840, 872, 123);INSERT INTO menetek VALUES('Nagy Ferenc', 'Illés Zsuzsanna', 0407, '2008-03-03',2, 2003, 880, 912, 183);INSERT INTO menetek VALUES('Nagy Ferenc', 'Illés Zsuzsanna', 0407, '2008-03-03',3, 2003, 924, 955, 253);INSERT INTO menetek VALUES('Nagy Ferenc', 'Illés Zsuzsanna', 0407, '2008-03-03',4, 2003, 960, 990, 223);INSERT INTO menetek VALUES('Nagy Ferenc', 'Illés Zsuzsanna', 0407, '2008-03-03',5, 2003, 1000, 1034, 123);

INSERT INTO menetek VALUES('Nagy Ferenc', 'Illés Zsuzsanna', 0407, '2008-03-03',6, 2003, 1040, 1072, 222);INSERT INTO menetek VALUES('Nagy Ferenc', 'Illés Zsuzsanna', 0407, '2008-03-03',7, 2003, 1083, 1114, 283);INSERT INTO menetek VALUES('Nagy Ferenc', 'Illés Zsuzsanna', 0407, '2008-03-03',8, 2003, 1121, 1151, 170);INSERT INTO menetek VALUES('Nagy Ferenc', 'Illés Zsuzsanna', 0407, '2008-03-03',9, 2003, 1160, 1191, 123);INSERT INTO menetek VALUES('Nagy Ferenc', 'Illés Zsuzsanna', 0407, '2008-03-03',10, 2003, 1200, 1231, 123);INSERT INTO menetek VALUES('Nagy Ferenc', 'Illés Zsuzsanna', 0407, '2008-03-03',11, 2003, 1241, 1270, 170);

INSERT INTO menetek VALUES('Nagy Ferenc', 'Illés Zsuzsanna', 0407, '2008-03-03',12, 2003, 1280, 1311, 123); INSERT INTO menetek VALUES('Berkes Orsolya', 'Vass Katalin', 0607, '2008-03-05',1, 2004, 840, 872, 123);INSERT INTO menetek VALUES('Berkes Orsolya', 'Vass Katalin', 0607, '2008-03-05',2, 2004, 880, 912, 183);INSERT INTO menetek VALUES('Berkes Orsolya', 'Vass Katalin', 0607, '2008-03-05',3, 2004, 924, 955, 253);INSERT INTO menetek VALUES('Berkes Orsolya', 'Vass Katalin', 0607, '2008-03-05',4, 2004, 960, 990, 223);INSERT INTO menetek VALUES('Berkes Orsolya', 'Vass Katalin', 0607, '2008-03-05',5, 2004, 1001, 1031, 123);INSERT INTO menetek VALUES('Berkes Orsolya', 'Vass Katalin', 0607, '2008-03-05',6, 2004, 1041, 1071, 212);

- 9 -

5/14/2018 Adatbázis tervezés példa - slidepdf.com

http://slidepdf.com/reader/full/adatbazis-tervezes-pelda 10/47

 

Adatbázisok használata 1.

INSERT INTO menetek VALUES('Berkes Orsolya', 'Vass Katalin', 0607, '2008-03-05',7, 2004, 1083, 1112, 293);INSERT INTO menetek VALUES('Berkes Orsolya', 'Vass Katalin', 0607, '2008-03-05',8, 2004, 1121, 1150, 270);INSERT INTO menetek VALUES('Berkes Orsolya', 'Vass Katalin', 0607, '2008-03-05',9, 2004, 1160, 1191, 223);INSERT INTO menetek VALUES('Berkes Orsolya', 'Vass Katalin', 0607, '2008-03-05',

10, 2004, 1200, 1231, 123);INSERT INTO menetek VALUES('Berkes Orsolya', 'Vass Katalin', 0607, '2008-03-05',11, 2004, 1241, 1270, 170);INSERT INTO menetek VALUES('Berkes Orsolya', 'Vass Katalin', 0607, '2008-03-05',12, 2004, 1280, 1310, 123);

INSERT INTO menetek VALUES('Hordós László', 'Zöld Mariann', 0205, '2008-03-06',1, 1356, 850, 872, 102);INSERT INTO menetek VALUES('Hordós László', 'Zöld Mariann', 0205, '2008-03-06',2, 1356, 873, 895, 112);INSERT INTO menetek VALUES('Hordós László', 'Zöld Mariann', 0205, '2008-03-06',3, 1356, 900, 920, 98);

INSERT INTO menetek VALUES('Hordós László', 'Zöld Mariann', 0205, '2008-03-06',4, 1356, 925, 945, 74);INSERT INTO menetek VALUES('Hordós László', 'Zöld Mariann', 0205, '2008-03-06',5, 1356, 950, 972, 99);INSERT INTO menetek VALUES('Hordós László', 'Zöld Mariann', 0106, '2008-03-17',5, 4203, 1166, 1205, 117);INSERT INTO menetek VALUES('Hordós László', 'Zöld Mariann', 0106, '2008-03-17',6, 4203, 1210, 1250, 95);INSERT INTO menetek VALUES('Hordós László', 'Zöld Mariann', 0106, '2008-03-17',7, 4203, 1256, 1297, 78);

INSERT INTO menetek VALUES('Erdős Eszter', 'Kun Dorottya', 1701, '2008-02-07',1, 1308, 250, 270, 20);INSERT INTO menetek VALUES('Erdős Eszter', 'Kun Dorottya', 1701, '2008-02-07',2, 1308, 280, 305, 46);INSERT INTO menetek VALUES('Erdős Eszter', 'Kun Dorottya', 1701, '2008-02-07',3, 1308, 310, 330, 73);INSERT INTO menetek VALUES('Erdős Eszter', 'Kun Dorottya', 1701, '2008-02-07',4, 1308, 340, 355, 112);INSERT INTO menetek VALUES('Erdős Eszter', 'Kun Dorottya', 1701, '2008-02-07',5, 1308, 360, 375, 126);INSERT INTO menetek VALUES('Erdős Eszter', 'Kun Dorottya', 1701, '2008-02-07',6, 1308, 380, 400, 84);

INSERT INTO menetek VALUES('Erdős Eszter', 'Kun Dorottya', 1701, '2008-02-07',7, 1308, 401, 415, 84);

- 10 -

5/14/2018 Adatbázis tervezés példa - slidepdf.com

http://slidepdf.com/reader/full/adatbazis-tervezes-pelda 11/47

 

Adatbázisok használata 1.

Az adattáblák listázása

Vezetők:

VEZETO_NEVE ANYJA_NEVE BEOSZTAS

-------------------- -------------------- ---------------Kiss Pista Veres Mária főállásúKecskés Judit Kovács Ilona főállásúNagy Ferenc Illés Zsuzsanna főállásúHordós László Zöld Mariann besegítőBerkes Orsolya Vass Katalin főállásúErdős Eszter Kun Dorottya besegítő

6 sor kijelölve.

Menetek:

VEZETO_NEVE ANYJA_NEVE FORGALMI_SZAM DATUM FORDULOSZAM PALYASZAM INDULASI_IDO ERKEZESI_IDO UTASSZAM-------------------- -------------------- ------------- ---------- ----------- ---------- ------------ ------------ ----------Kiss Pista Veres Mária 1701 2008-02-01 1 1301 250 270 20Kiss Pista Veres Mária 1701 2008-02-01 2 1301 280 305 46Kiss Pista Veres Mária 1701 2008-02-01 3 1301 310 330 73Kiss Pista Veres Mária 1701 2008-02-01 4 1301 340 355 112Kiss Pista Veres Mária 1701 2008-02-01 5 1313 360 375 126Kiss Pista Veres Mária 1701 2008-02-01 6 1313 380 400 84Kiss Pista Veres Mária 1701 2008-02-01 7 1313 401 415 84Kiss Pista Veres Mária 205 2008-02-02 1 1347 850 870 102Kiss Pista Veres Mária 205 2008-02-02 2 1347 875 895 75Kiss Pista Veres Mária 205 2008-02-02 3 1347 900 920 140Kiss Pista Veres Mária 205 2008-02-02 4 1347 925 945 114Kiss Pista Veres Mária 205 2008-02-02 5 1347 950 970 99Kecskés Judit Kovács Ilona 301 2008-03-03 1 1501 240 293 150Kecskés Judit Kovács Ilona 301 2008-03-03 2 1501 300 353 132Kecskés Judit Kovács Ilona 301 2008-03-03 3 1501 360 413 150Kecskés Judit Kovács Ilona 301 2008-03-03 4 1501 420 473 95Kecskés Judit Kovács Ilona 306 2008-03-03 1 1501 840 893 150

Kecskés Judit Kovács Ilona 306 2008-03-03 2 1501 900 953 114Kecskés Judit Kovács Ilona 306 2008-03-03 3 1501 960 1015 126Kecskés Judit Kovács Ilona 306 2008-03-03 4 1501 1020 1073 95Kecskés Judit Kovács Ilona 106 2008-03-17 1 4202 840 880 201Kecskés Judit Kovács Ilona 106 2008-03-17 2 4202 885 1027 201Kecskés Judit Kovács Ilona 106 2008-03-17 3 4202 1032 1071 201Kecskés Judit Kovács Ilona 106 2008-03-17 4 4202 1075 1115 214Kecskés Judit Kovács Ilona 106 2008-03-17 5 4202 1122 1164 201Kecskés Judit Kovács Ilona 106 2008-03-17 6 4202 1166 1205 167Kecskés Judit Kovács Ilona 106 2008-03-17 7 4202 1210 1250 95Kecskés Judit Kovács Ilona 106 2008-03-17 8 4202 1256 1297 78Nagy Ferenc Illés Zsuzsanna 401 2008-03-02 1 2001 240 270 123Nagy Ferenc Illés Zsuzsanna 401 2008-03-02 2 2001 280 310 120Nagy Ferenc Illés Zsuzsanna 401 2008-03-02 3 2001 320 353 236Nagy Ferenc Illés Zsuzsanna 401 2008-03-02 4 2001 360 410 228Nagy Ferenc Illés Zsuzsanna 401 2008-03-02 5 2001 420 450 235Nagy Ferenc Illés Zsuzsanna 407 2008-03-03 1 2003 840 872 123Nagy Ferenc Illés Zsuzsanna 407 2008-03-03 2 2003 880 912 183

Nagy Ferenc Illés Zsuzsanna 407 2008-03-03 3 2003 924 955 253Nagy Ferenc Illés Zsuzsanna 407 2008-03-03 4 2003 960 990 223Nagy Ferenc Illés Zsuzsanna 407 2008-03-03 5 2003 1000 1034 123Nagy Ferenc Illés Zsuzsanna 407 2008-03-03 6 2003 1040 1072 222Nagy Ferenc Illés Zsuzsanna 407 2008-03-03 7 2003 1083 1114 283Nagy Ferenc Illés Zsuzsanna 407 2008-03-03 8 2003 1121 1151 170Nagy Ferenc Illés Zsuzsanna 407 2008-03-03 9 2003 1160 1191 123Nagy Ferenc Illés Zsuzsanna 407 2008-03-03 10 2003 1200 1231 123Nagy Ferenc Illés Zsuzsanna 407 2008-03-03 11 2003 1241 1270 170Nagy Ferenc Illés Zsuzsanna 407 2008-03-03 12 2003 1280 1311 123Berkes Orsolya Vass Katalin 607 2008-03-05 1 2004 840 872 123Berkes Orsolya Vass Katalin 607 2008-03-05 2 2004 880 912 183Berkes Orsolya Vass Katalin 607 2008-03-05 3 2004 924 955 253Berkes Orsolya Vass Katalin 607 2008-03-05 4 2004 960 990 223Berkes Orsolya Vass Katalin 607 2008-03-05 5 2004 1001 1031 123Berkes Orsolya Vass Katalin 607 2008-03-05 6 2004 1041 1071 212Berkes Orsolya Vass Katalin 607 2008-03-05 7 2004 1083 1112 293Berkes Orsolya Vass Katalin 607 2008-03-05 8 2004 1121 1150 270Berkes Orsolya Vass Katalin 607 2008-03-05 9 2004 1160 1191 223

Berkes Orsolya Vass Katalin 607 2008-03-05 10 2004 1200 1231 123Berkes Orsolya Vass Katalin 607 2008-03-05 11 2004 1241 1270 170Berkes Orsolya Vass Katalin 607 2008-03-05 12 2004 1280 1310 123Hordós László Zöld Mariann 205 2008-03-06 1 1356 850 872 102Hordós László Zöld Mariann 205 2008-03-06 2 1356 873 895 112

- 11 -

5/14/2018 Adatbázis tervezés példa - slidepdf.com

http://slidepdf.com/reader/full/adatbazis-tervezes-pelda 12/47

 

Adatbázisok használata 1.

Hordós László Zöld Mariann 205 2008-03-06 3 1356 900 920 98Hordós László Zöld Mariann 205 2008-03-06 4 1356 925 945 74Hordós László Zöld Mariann 205 2008-03-06 5 1356 950 972 99Hordós László Zöld Mariann 106 2008-03-17 5 4203 1166 1205 117Hordós László Zöld Mariann 106 2008-03-17 6 4203 1210 1250 95Hordós László Zöld Mariann 106 2008-03-17 7 4203 1256 1297 78Erdős Eszter Kun Dorottya 1701 2008-02-07 1 1308 250 270 20Erdős Eszter Kun Dorottya 1701 2008-02-07 2 1308 280 305 46Erdős Eszter Kun Dorottya 1701 2008-02-07 3 1308 310 330 73Erdős Eszter Kun Dorottya 1701 2008-02-07 4 1308 340 355 112Erdős Eszter Kun Dorottya 1701 2008-02-07 5 1308 360 375 126

Erdős Eszter Kun Dorottya 1701 2008-02-07 6 1308 380 400 84Erdős Eszter Kun Dorottya 1701 2008-02-07 7 1308 401 415 84

72 sor kijelölve.

Viszonylatok:

VISZONYLAT MENETIDO TAV PIHENOIDO---------- ---------- ---------- ----------

1 40 15000 52 20 6000 53 53 20000 74 30 12500 2

6 30 12000 517 12 5000 10

6 sor kijelölve.

Járatok:

FORGALMI_SZAM VISZONYLAT KEZDESI_IDO BEFEJEZESI_IDO------------- ---------- ----------- --------------

101 1 240 480102 1 240 480103 1 240 720

104 1 300 540105 1 240 720106 1 840 1320107 1 1140 1380201 2 240 480202 2 240 720203 2 300 540204 2 240 720205 2 840 1320206 2 1140 1380301 3 240 480302 3 300 480

303 3 240 720304 3 300 540305 3 480 720306 3 840 1080307 3 1140 1380401 4 240 480402 4 300 480403 4 240 720404 4 240 720405 4 300 540406 4 480 720407 4 840 1320

408 4 1140 1380601 6 240 480602 6 300 480

- 12 -

5/14/2018 Adatbázis tervezés példa - slidepdf.com

http://slidepdf.com/reader/full/adatbazis-tervezes-pelda 13/47

 

Adatbázisok használata 1.

603 6 240 720604 6 240 720605 6 300 540606 6 480 720607 6 840 1320608 6 1140 13801701 17 240 480

1703 17 240 7201704 17 300 9001706 17 840 1320

40 sor kijelölve.

Villamosok:

PALYASZAM TIPUS---------- --------------------

1301 CSMG21302 CSMG21304 CSMG21305 CSMG21306 CSMG21307 CSMG21308 CSMG21309 CSMG21310 CSMG21311 CSMG21312 CSMG21313 CSMG21325 KCSV71326 KCSV71347 KCSV71356 KCSV74202 T5C54203 T5C54204 T5C54205 T5C54206 T5C54207 T5C54208 T5C54209 T5C54210 T5C5

4211 T5C54212 T5C54213 T5C54214 T5C54215 T5C51501 TW60001502 TW60001503 TW60001504 TW60001505 TW60001506 TW60001507 TW6000

2001 COMBINO2002 COMBINO2003 COMBINO

- 13 -

5/14/2018 Adatbázis tervezés példa - slidepdf.com

http://slidepdf.com/reader/full/adatbazis-tervezes-pelda 14/47

 

Adatbázisok használata 1.

2004 COMBINO2005 COMBINO2006 COMBINO2007 COMBINO2008 COMBINO2009 COMBINO2010 COMBINO

47 sor kijelölve.

Típusok:

TIPUS ULOHELYEK_SZAMA ALLOHELYEK_SZAMA-------------------- --------------- ----------------CSMG2 40 126KCSV7 36 126T5C5 75 210TW6000 46 130COMBINO 64 289

5 sor kijelölve.

- 14 -

5/14/2018 Adatbázis tervezés példa - slidepdf.com

http://slidepdf.com/reader/full/adatbazis-tervezes-pelda 15/47

 

Adatbázisok használata 1.

Egyszerű lekérdezések 

1. Besegítő beosztású járművezetők lekérdezése (query1.sql)

SET linesize 60SET pagesize 15

TTITLE "Besegítő beosztású járművezetők"BTITLE "SKV Kft."SELECT vezeto_neve AS "Vezető neve",

anyja_neve AS "Anyja neve"FROM vezetokWHERE beosztas LIKE 'besegítő';

TTITLE OFFBTITLE OFF

SET pagesize 40SET linesize 400

Besegítő beosztású járművezetők

Vezető neve Anyja neve-------------------- --------------------Hordós László Zöld MariannErdős Eszter Kun Dorottya

SKV Kft.

2 sor kijelölve.

2. 30 perc vagy annál hosszabb menetidejű viszonylatok (query2.sql)

SET linesize 40SET pagesize 15TTITLE "Hosszú menetidejű vonalak"

BTITLE "SKV Kft."COLUMN viszonylat HEADING 'Viszonylat|szám' JUSTIFY CENTER

SELECT viszonylatFROM viszonylatokWHERE menetido >= 30ORDER BY viszonylat;

CLEAR COLUMNSTTITLE OFFBTITLE OFF

SET pagesize 40SET linesize 400

- 15 -

5/14/2018 Adatbázis tervezés példa - slidepdf.com

http://slidepdf.com/reader/full/adatbazis-tervezes-pelda 16/47

 

Adatbázisok használata 1.

Hosszú menetidejű vonalak

Viszonylatszám

----------13

46

SKV Kft.

4 sor kijelölve.

3. 150 és 250 férőhely befogadóképességű járművek (query3.sql)

SET linesize 80SET pagesize 15TTITLE "Közepes kapacitású járművek"BTITLE "SKV Kft."

SELECT tipus AS "Típus",ulohelyek_szama AS "Ülőhelyek száma",allohelyek_szama AS "Állóhelyek száma",ulohelyek_szama + allohelyek_szama AS "Összes férőhely"

FROM tipusokWHERE ulohelyek_szama + allohelyek_szama BETWEEN 150 AND 250ORDER BY ulohelyek_szama + allohelyek_szama DESC;

TTITLE OFFBTITLE OFF

SET pagesize 40SET linesize 400

Közepes kapacitású járművek

Típus Ülőhelyek száma Állóhelyek száma Összes férőhely-------------------- --------------- ---------------- ---------------TW6000 46 130 176

CSMG2 40 126 166KCSV7 36 126 162

SKV Kft.

3 sor kijelölve.

- 16 -

5/14/2018 Adatbázis tervezés példa - slidepdf.com

http://slidepdf.com/reader/full/adatbazis-tervezes-pelda 17/47

 

Adatbázisok használata 1.

Csoportosító lekérdezések 

1. Forgalmi járatokkénti átlagos utasszám (query4.sql)

SET linesize 80SET pagesize 15

TTITLE "Forgalmi járatokkénti átlagos utasszám"BTITLE "SKV Kft."COLUMN "Forgalmi szám" FORMAT 0000

SELECT forgalmi_szam AS "Forgalmi szám",ROUND(AVG(utasszam)) AS "Átlagos utasszám"

FROM menetekGROUP BY forgalmi_szamORDER BY forgalmi_szam;

CLEAR COLUMNSTTITLE OFF

BTITLE OFF

SET pagesize 40SET linesize 400

Forgalmi járatokkénti átlagos utasszám

Forgalmi szám Átlagos utasszám------------- ----------------

0106 1500205 1020301 132

0306 1210401 1880407 1770607 1931701 78

SKV Kft.

8 sor kijelölve.

2. Villamosonkénti forgalomban töltött idő (query5.sql)

SET linesize 80SET pagesize 25TTITLE "Forgalomban töltött idő"BTITLE "SKV Kft."COLUMN "Forgalomban" JUSTIFY CENTER HEADING "Forgalomban|töltött idő|(óra)"

SELECT palyaszam AS "Pályaszám",ROUND(SUM(erkezesi_ido - indulasi_ido) / 60,2) AS "Forgalomban"

FROM menetekGROUP BY palyaszamORDER BY palyaszam;

CLEAR COLUMNSTTITLE OFFBTITLE OFF

- 17 -

5/14/2018 Adatbázis tervezés példa - slidepdf.com

http://slidepdf.com/reader/full/adatbazis-tervezes-pelda 18/47

 

Adatbázisok használata 1.

SET pagesize 40SET linesize 400

Forgalomban töltött idő

Forgalombantöltött idő

Pályaszám (óra)---------- -----------

1301 1,331308 2,151313 ,821347 1,671356 1,771501 7,12001 2,882003 6,232004 6,074202 7,05

4203 2

SKV Kft.

11 sor kijelölve.

3. Adott villamsovezető forgalomban töltött ideje (query6.sql)

SET linesize 80SET pagesize 15TTITLE "Kiss Pista és Hordós László 0205ös járatban forgalomban töltött ideje"BTITLE "SKV Kft."COLUMN "Forgalomban" JUSTIFY CENTER HEADING "Forgalomban|töltött idő|(óra)"

SELECT vezeto_neve AS "Vezető neve",ROUND(SUM(erkezesi_ido - indulasi_ido) / 60,2) AS "Forgalomban"

FROM menetekWHERE forgalmi_szam = 0205GROUP BY vezeto_neveHAVING vezeto_neve LIKE 'Kiss Pista' OR vezeto_neve LIKE 'Hordós László'ORDER BY vezeto_neve;

CLEAR COLUMNSTTITLE OFFBTITLE OFF

SET pagesize 40SET linesize 400

Kiss Pista és Hordós László 0205ös járatban forgalomban töltött ideje

Forgalombantöltött idő

Vezető neve (óra)-------------------- -----------Hordós László 1,77

- 18 -

5/14/2018 Adatbázis tervezés példa - slidepdf.com

http://slidepdf.com/reader/full/adatbazis-tervezes-pelda 19/47

 

Adatbázisok használata 1.

Kiss Pista 1,67

SKV Kft.

2 sor kijelölve.

- 19 -

5/14/2018 Adatbázis tervezés példa - slidepdf.com

http://slidepdf.com/reader/full/adatbazis-tervezes-pelda 20/47

 

Adatbázisok használata 1.

Többtáblás lekérdezések 

1. COMBINO-val üzemelő járatokon szabad ülőhelyek (query7.sql)

SET linesize 120SET pagesize 45

TTITLE "COMBINO-val üzemelő járatokon lévő szabad ülőhelyek"BTITLE "SKV Kft."

BREAK ON "Forgalmi szám"COLUMN "Vezető" HEADING "Vezető neve"COLUMN "Forgalmi szám" FORMAT 0000 HEADING "Forgalmi|szám" JUSTIFY CENTERCOLUMN "Dátum" FORMAT A13COLUMN "Szabad helyek" HEADING "Szabad helyek|összesen" JUSTIFY CENTERCOLUMN "Kihasználtság" HEADING "Férőhely|kihasználtság|(%)" JUSTIFY CENTER

SELECT menetek.vezeto_neve AS "Vezető",menetek.forgalmi_szam AS "Forgalmi szám",

TO_CHAR(menetek.datum, 'YYYY.MM.DD') AS "Dátum",menetek.forduloszam AS "Fordulószám",(tipusok.ulohelyek_szama + tipusok.allohelyek_szama) - menetek.utasszam

AS "Szabad helyek",tipusok.ulohelyek_szama + tipusok.allohelyek_szama AS "Összes férőhely",ROUND(menetek.utasszam / (tipusok.ulohelyek_szama +

tipusok.allohelyek_szama) * 100) AS "Kihasználtság"FROM menetek,

villamosok,tipusok

WHERE menetek.palyaszam = villamosok.palyaszam ANDvillamosok.tipus = tipusok.tipus AND

UPPER(villamosok.tipus) = 'COMBINO';

CLEAR COLUMNSCLEAR BREAKSTTITLE OFFBTITLE OFF

SET pagesize 40SET linesize 400

COMBINO-val üzemelő járatokon lévő szabad ülőhelyek

FérőhelyForgalmi Szabad helyek kihasználtság

Vezető neve szám Dátum Fordulószám összesen Összes férőhely (%)-------------------- -------- ---------- ----------- ------------- --------------- -------------Nagy Ferenc 0401 2008.03.02 1 230 353 35Nagy Ferenc 2008.03.02 2 233 353 34Nagy Ferenc 2008.03.02 3 117 353 67Nagy Ferenc 2008.03.02 4 125 353 65Nagy Ferenc 2008.03.02 5 118 353 67Nagy Ferenc 0407 2008.03.03 1 230 353 35Nagy Ferenc 2008.03.03 2 170 353 52Nagy Ferenc 2008.03.03 3 100 353 72Nagy Ferenc 2008.03.03 4 130 353 63Nagy Ferenc 2008.03.03 5 230 353 35

Nagy Ferenc 2008.03.03 6 131 353 63Nagy Ferenc 2008.03.03 7 70 353 80Nagy Ferenc 2008.03.03 8 183 353 48Nagy Ferenc 2008.03.03 9 230 353 35

- 20 -

5/14/2018 Adatbázis tervezés példa - slidepdf.com

http://slidepdf.com/reader/full/adatbazis-tervezes-pelda 21/47

 

Adatbázisok használata 1.

Nagy Ferenc 2008.03.03 10 230 353 35Nagy Ferenc 2008.03.03 11 183 353 48Nagy Ferenc 2008.03.03 12 230 353 35Berkes Orsolya 0607 2008.03.05 1 230 353 35Berkes Orsolya 2008.03.05 2 170 353 52Berkes Orsolya 2008.03.05 3 100 353 72Berkes Orsolya 2008.03.05 4 130 353 63Berkes Orsolya 2008.03.05 5 230 353 35Berkes Orsolya 2008.03.05 6 141 353 60

Berkes Orsolya 2008.03.05 7 60 353 83Berkes Orsolya 2008.03.05 8 83 353 76Berkes Orsolya 2008.03.05 9 130 353 63Berkes Orsolya 2008.03.05 10 230 353 35Berkes Orsolya 2008.03.05 11 183 353 48Berkes Orsolya 2008.03.05 12 230 353 35

SKV Kft.

29 sor kijelölve.

2. járművezetők adott vonalakon futott távolsága (query8.sql)

SET linesize 120SET pagesize 20TTITLE "Járművezetők adott vonalakon futott távolsága"BTITLE "SKV Kft."

BREAK ON "Forgalmi szám"COLUMN "Vezető" HEADING "Vezető neve"COLUMN "Távolság" HEADING "Megtett|távolság|(km)" JUSTIFY CENTER

SELECT menetek.vezeto_neve AS "Vezető",viszonylatok.viszonylat AS "Viszonylatszám",

ROUND(SUM(viszonylatok.tav)/1000,2) AS "Távolság"FROM menetek,jaratok,viszonylatok

WHERE menetek.forgalmi_szam = jaratok.forgalmi_szam ANDjaratok.viszonylat = viszonylatok.viszonylat

GROUP BY menetek.vezeto_neve, viszonylatok.viszonylatORDER BY menetek.vezeto_neve;

CLEAR COLUMNSCLEAR BREAKS

TTITLE OFFBTITLE OFF

SET pagesize 40SET linesize 400

Járművezetők adott vonalakon futotttávolsága

Megtetttávolság

Vezető neve Viszonylatszám (km)

-------------------- -------------- ----------Berkes Orsolya 6 144Erdős Eszter 17 35

- 21 -

5/14/2018 Adatbázis tervezés példa - slidepdf.com

http://slidepdf.com/reader/full/adatbazis-tervezes-pelda 22/47

 

Adatbázisok használata 1.

Hordós László 2 30Hordós László 1 45Kecskés Judit 1 120Kecskés Judit 3 160Kiss Pista 2 30Kiss Pista 17 35Nagy Ferenc 4 212,5

SKV Kft.

9 sor kijelölve.

3. Járművezetők késése a menetidőhöz képest (query9.sql) SET linesize 120SET pagesize 50TTITLE "Járművezetők késése a menetidőhöz képest"BTITLE "SKV Kft."

COLUMN "Vezető" HEADING "Vezető neve"COLUMN "Forgalmi szám" FORMAT 0000 HEADING "Forgalmi|szám" JUSTIFY CENTERCOLUMN "Dátum" FORMAT A20COLUMN "Késés" HEADING "Késés|(perc)" JUSTIFY CENTER

SELECT menetek.vezeto_neve AS "Vezető",menetek.forgalmi_szam AS "Forgalmi szám",menetek.forduloszam AS "Fordulószám",TO_CHAR(menetek.datum, 'YYYY.MM.DD') AS "Dátum",jaratadatok.viszonylat AS "Viszonylatszám",(menetek.erkezesi_ido - menetek.indulasi_ido) - jaratadatok.ido AS

"Késés"FROM menetek,

(SELECT jaratok.forgalmi_szam AS forgalmi,viszonylatok.viszonylat AS viszonylat,viszonylatok.menetido AS ido

FROM jaratok,viszonylatok

WHERE jaratok.viszonylat = viszonylatok.viszonylat) jaratadatokWHERE menetek.forgalmi_szam = jaratadatok.forgalmi AND

(menetek.erkezesi_ido - menetek.indulasi_ido) - jaratadatok.ido > 0

ORDER BY menetek.vezeto_neve;

CLEAR COLUMNSTTITLE OFFBTITLE OFF

SET pagesize 40SET linesize 400

Járművezetők késése a menetidőhöz képest

Forgalmi KésésVezető neve szám Fordulószám Dátum Viszonylatszám (perc)-------------------- -------- ----------- -------------------- -------------- ----------Berkes Orsolya 0607 9 2008.03.05 6 1

- 22 -

5/14/2018 Adatbázis tervezés példa - slidepdf.com

http://slidepdf.com/reader/full/adatbazis-tervezes-pelda 23/47

 

Adatbázisok használata 1.

Berkes Orsolya 0607 10 2008.03.05 6 1Berkes Orsolya 0607 1 2008.03.05 6 2Berkes Orsolya 0607 2 2008.03.05 6 2Berkes Orsolya 0607 3 2008.03.05 6 1Erdős Eszter 1701 6 2008.02.07 17 8Erdős Eszter 1701 7 2008.02.07 17 2Erdős Eszter 1701 4 2008.02.07 17 3Erdős Eszter 1701 3 2008.02.07 17 8

Erdős Eszter 1701 2 2008.02.07 17 13Erdős Eszter 1701 1 2008.02.07 17 8Erdős Eszter 1701 5 2008.02.07 17 3Hordós László 0205 1 2008.03.06 2 2Hordós László 0205 5 2008.03.06 2 2Hordós László 0205 2 2008.03.06 2 2Hordós László 0106 7 2008.03.17 1 1Kecskés Judit 0306 3 2008.03.03 3 2Kecskés Judit 0106 2 2008.03.17 1 102Kecskés Judit 0106 5 2008.03.17 1 2Kecskés Judit 0106 8 2008.03.17 1 1Kiss Pista 1701 7 2008.02.01 17 2Kiss Pista 1701 6 2008.02.01 17 8

Kiss Pista 1701 5 2008.02.01 17 3Kiss Pista 1701 4 2008.02.01 17 3Kiss Pista 1701 3 2008.02.01 17 8Kiss Pista 1701 1 2008.02.01 17 8Kiss Pista 1701 2 2008.02.01 17 13Nagy Ferenc 0407 10 2008.03.03 4 1Nagy Ferenc 0407 9 2008.03.03 4 1Nagy Ferenc 0407 7 2008.03.03 4 1Nagy Ferenc 0407 6 2008.03.03 4 2Nagy Ferenc 0407 5 2008.03.03 4 4Nagy Ferenc 0407 12 2008.03.03 4 1Nagy Ferenc 0407 2 2008.03.03 4 2Nagy Ferenc 0407 1 2008.03.03 4 2

Nagy Ferenc 0401 4 2008.03.02 4 20Nagy Ferenc 0401 3 2008.03.02 4 3Nagy Ferenc 0407 3 2008.03.03 4 1

SKV Kft.

38 sor kijelölve.

- 23 -

5/14/2018 Adatbázis tervezés példa - slidepdf.com

http://slidepdf.com/reader/full/adatbazis-tervezes-pelda 24/47

 

Adatbázisok használata 1.

Allekérdezések 

1. Főállású járművezetők járatai (query10.sql)

SET linesize 80SET pagesize 20

TTITLE "Főállású járművezetők járatai"BTITLE "SKV Kft."

COLUMN "Vezető" HEADING "Vezető neve"COLUMN "Anyja" HEADING "Anyja neve"COLUMN "Forgalmi szám" FORMAT 0000 HEADING "Forgalmi|szám" JUSTIFY CENTERCOLUMN "Dátum" FORMAT A15COLUMN "Fordulószám" HEADING "Járatban|megtett|fordulószám" JUSTIFY CENTER

BREAK ON "Vezető" ON "Anyja"

SELECT menetek.vezeto_neve AS "Vezető",menetek.anyja_neve AS "Anyja",menetek.forgalmi_szam AS "Forgalmi szám",TO_CHAR(menetek.datum, 'YYYY.MM.DD') AS "Dátum",COUNT(menetek.forduloszam) AS "Fordulószám"

FROM menetek,(SELECT vezeto_neve,

anyja_neveFROM vezetokWHERE LOWER(beosztas)='főállású') foallasuak

WHERE menetek.vezeto_neve = foallasuak.vezeto_neve ANDmenetek.anyja_neve = foallasuak.anyja_neve

GROUP BY menetek.vezeto_neve, menetek.anyja_neve, menetek.forgalmi_szam,menetek.datumORDER BY menetek.vezeto_neve;

CLEAR BREAKSCLEAR COLUMNSTTITLE OFFBTITLE OFF

SET pagesize 40SET linesize 400

Főállású járművezetők járatai

JáratbanForgalmi megtett

Vezető neve Anyja neve szám Dátum fordulószám-------------------- -------------------- -------- --------------- -----------Berkes Orsolya Vass Katalin 0607 2008.03.05 12Kecskés Judit Kovács Ilona 0106 2008.03.17 8

0306 2008.03.03 40301 2008.03.03 4

Kiss Pista Veres Mária 0205 2008.02.02 51701 2008.02.01 7

Nagy Ferenc Illés Zsuzsanna 0407 2008.03.03 120401 2008.03.02 5

- 24 -

5/14/2018 Adatbázis tervezés példa - slidepdf.com

http://slidepdf.com/reader/full/adatbazis-tervezes-pelda 25/47

 

Adatbázisok használata 1.

SKV Kft.

8 sor kijelölve.

2. Legkisebb forgalomban töltött idő és az alapidők közötti különbség (query11.sql)

SET linesize 120SET pagesize 25TTITLE "A 1701-es járat menetidői és a minimális menetidő közötti különbség"BTITLE "SKV Kft."

COLUMN "Vezető" HEADING "Vezető neve" FORMAT A15COLUMN "Anyja" HEADING "Anyja neve" FORMAT A15COLUMN "Forgalmi szám" FORMAT 0000 HEADING "Forgalmi|szám" JUSTIFY CENTERCOLUMN "Dátum" FORMAT A13COLUMN "Fordulószám" HEADING "Forduló|sorszáma" JUSTIFY CENTERCOLUMN "Menetidő" HEADING "Futott|menetidő" JUSTIFY CENTERCOLUMN "Legkisebb" HEADING "Legkisebb|menetidő" JUSTIFY CENTERCOLUMN "Időkülönbség" HEADING "Menetidő|különbség" JUSTIFY CENTER

SELECT menetek.vezeto_neve AS "Vezető",menetek.anyja_neve AS "Anyja",menetek.forgalmi_szam AS "Forgalmi szám",TO_CHAR(menetek.datum, 'YYYY.MM.DD') AS "Dátum",menetek.forduloszam AS "Fordulószám",menetek.erkezesi_ido - menetek.indulasi_ido AS "Menetidő",minmenetido.minido AS "Legkisebb",menetek.erkezesi_ido - menetek.indulasi_ido - minmenetido.minido AS

"Időkülönbség"FROM menetek,

(SELECT MIN(erkezesi_ido - indulasi_ido) AS minidoFROM menetekWHERE forgalmi_szam = 1701) minmenetido

WHERE forgalmi_szam = 1701ORDER BY "Időkülönbség", "Vezető";

CLEAR COLUMNSTTITLE OFFBTITLE OFF

SET pagesize 40SET linesize 400

A 1701-es járat menetidői és a minimális menetidő közötti különbség

Forgalmi Forduló Futott Legkisebb MenetidőVezető neve Anyja neve szám Dátum sorszáma menetidő menetidő különbség--------------- --------------- -------- ------------- ---------- ---------- ---------- ----------Erdős Eszter Kun Dorottya 1701 2008.02.07 7 14 14 0Kiss Pista Veres Mária 1701 2008.02.01 7 14 14 0Erdős Eszter Kun Dorottya 1701 2008.02.07 5 15 14 1Erdős Eszter Kun Dorottya 1701 2008.02.07 4 15 14 1Kiss Pista Veres Mária 1701 2008.02.01 4 15 14 1Kiss Pista Veres Mária 1701 2008.02.01 5 15 14 1Erdős Eszter Kun Dorottya 1701 2008.02.07 1 20 14 6Erdős Eszter Kun Dorottya 1701 2008.02.07 6 20 14 6Erdős Eszter Kun Dorottya 1701 2008.02.07 3 20 14 6Kiss Pista Veres Mária 1701 2008.02.01 3 20 14 6

- 25 -

5/14/2018 Adatbázis tervezés példa - slidepdf.com

http://slidepdf.com/reader/full/adatbazis-tervezes-pelda 26/47

 

Adatbázisok használata 1.

Kiss Pista Veres Mária 1701 2008.02.01 6 20 14 6Kiss Pista Veres Mária 1701 2008.02.01 1 20 14 6Erdős Eszter Kun Dorottya 1701 2008.02.07 2 25 14 11Kiss Pista Veres Mária 1701 2008.02.01 2 25 14 11

SKV Kft.

14 sor kijelölve.

3. TW6000 típusu kocsival vitt viszonylatok (query12.sql)

SET linesize 55SET pagesize 15TTITLE "TW6000 típusú kocsival vitt viszonylatok"BTITLE "SKV Kft."

COLUMN "Menetidő" HEADING "Futott|menetidő" JUSTIFY CENTERCOLUMN "Vonalhossz" FORMAT A15

SELECT viszonylatok.viszonylat AS "Viszonylatszám",viszonylatok.menetido AS "Menetidő",TO_CHAR(ROUND(viszonylatok.tav/1000,2)) || ' km' AS "Vonalhossz",viszonylatok.pihenoido AS "Pihenőidő"

FROM viszonylatok,menetek,jaratok

WHERE menetek.forgalmi_szam = jaratok.forgalmi_szam ANDjaratok.viszonylat = viszonylatok.viszonylat ANDmenetek.palyaszam IN (SELECT palyaszam FROM villamosok WHERE UPPER(tipus)

= 'TW6000')GROUP BY viszonylatok.viszonylat, viszonylatok.menetido, viszonylatok.tav,viszonylatok.pihenoidoORDER BY viszonylatok.viszonylat;

CLEAR COLUMNSTTITLE OFFBTITLE OFF

SET pagesize 40SET linesize 400

TW6000 típusú kocsival vitt viszonylatok

FutottViszonylatszám menetidő Vonalhossz Pihenőidő-------------- ---------- --------------- ----------

3 53 20 km 7

SKV Kft.

1 sor kijelölve.

4. Azon vezetők, akik voltak 6 óra vagy annál hosszabb járatban (query13.sql)

SET linesize 60SET pagesize 15

- 26 -

5/14/2018 Adatbázis tervezés példa - slidepdf.com

http://slidepdf.com/reader/full/adatbazis-tervezes-pelda 27/47

 

Adatbázisok használata 1.

TTITLE "Azon vezetők, akik voltak 6 óra vagy annál hosszabb járatban"BTITLE "SKV Kft."

COLUMN "Vezető" HEADING "Vezető neve" FORMAT A15COLUMN "Anyja" HEADING "Anyja neve" FORMAT A15

SELECT vezeto_neve AS "Vezető",

anyja_neve AS "Anyja"FROM menetekWHERE forgalmi_szam = ANY (SELECT forgalmi_szam FROM jaratok WHEREbefejezesi_ido - kezdesi_ido >= 360)GROUP BY vezeto_neve, anyja_neveORDER BY "Vezető";

CLEAR COLUMNSTTITLE OFFBTITLE OFF

SET pagesize 40

SET linesize 400

Azon vezetők, akik voltak 6 óra vagy annál hosszabb járatban

Vezető neve Anyja neve--------------- ---------------Berkes Orsolya Vass KatalinHordós László Zöld MariannKecskés Judit Kovács IlonaKiss Pista Veres MáriaNagy Ferenc Illés Zsuzsanna

SKV Kft.

5 sor kijelölve.

5. A legtöbbet késő vezető(k) (query14.sql)

SET linesize 60SET pagesize 10TTITLE "A legtöbbet késő vezető(k)"

BTITLE "SKV Kft."COLUMN "Vezető" HEADING "Vezető neve" FORMAT A15COLUMN "Anyja" HEADING "Anyja neve" FORMAT A15COLUMN "Forgalmi szám" FORMAT 0000 HEADING "Forgalmi|szám" JUSTIFY CENTERCOLUMN "Dátum" FORMAT A10

SELECT menetek.vezeto_neve AS "Vezető",menetek.anyja_neve AS "Anyja",menetek.forgalmi_szam AS "Forgalmi szám",TO_CHAR(menetek.datum, 'YYYY.MM.DD') AS "Dátum"

FROM menetek

WHERE menetek.erkezesi_ido - menetek.indulasi_ido >= ALL (SELECTmenetek.erkezesi_ido - menetek.indulasi_ido AS kszam FROM menetek)ORDER BY "Vezető";

- 27 -

5/14/2018 Adatbázis tervezés példa - slidepdf.com

http://slidepdf.com/reader/full/adatbazis-tervezes-pelda 28/47

 

Adatbázisok használata 1.

CLEAR COLUMNSTTITLE OFFBTITLE OFF

SET pagesize 40SET linesize 400

A legtöbbet késő vezető(k)

ForgalmiVezető neve Anyja neve szám Dátum--------------- --------------- -------- ----------Kecskés Judit Kovács Ilona 0106 2008.03.17

SKV Kft.

1 sor kijelölve.

- 28 -

5/14/2018 Adatbázis tervezés példa - slidepdf.com

http://slidepdf.com/reader/full/adatbazis-tervezes-pelda 29/47

 

Adatbázisok használata 1.

Nézetet használó lekérdezések 

1. Besegítő járművezetők járatai (query15.sql)

CREATE OR REPLACE VIEW besegitokAS

SELECT vezeto_neve,anyja_neveFROM vezetokWHERE UPPER(beosztas) = 'BESEGÍTŐ';

 SET linesize 60SET pagesize 12TTITLE "Besegítő járművezetők járatai"BTITLE "SKV Kft."

COLUMN "Vezető" HEADING "Vezető neve" FORMAT A15COLUMN "Anyja" HEADING "Anyja neve" FORMAT A15

COLUMN "Forgalmi szám" FORMAT 0000 HEADING "Forgalmi|szám" JUSTIFY CENTER

SELECT menetek.vezeto_neve AS "Vezető",menetek.anyja_neve AS "Anyja",menetek.forgalmi_szam AS "Forgalmi szám",TO_CHAR(menetek.datum, 'YYYY.MM.DD') AS "Dátum"

FROM menetek,besegitok

WHERE menetek.vezeto_neve = besegitok.vezeto_neve ANDmenetek.anyja_neve = besegitok.anyja_neve

GROUP BY menetek.vezeto_neve, menetek.anyja_neve, menetek.forgalmi_szam,menetek.datum

ORDER BY "Vezető";

CLEAR COLUMNSTTITLE OFFBTITLE OFF

SET pagesize 40SET linesize 400

DROP VIEW besegitok;

A nézet létrejött.

Cs. Máj. 08 lap 1Besegítő járművezetők járatai

ForgalmiVezető neve Anyja neve szám Dátum--------------- --------------- -------- ----------Erdős Eszter Kun Dorottya 1701 2008.02.07Hordós László Zöld Mariann 0205 2008.03.06Hordós László Zöld Mariann 0106 2008.03.17

SKV Kft.

3 sor kijelölve.

- 29 -

5/14/2018 Adatbázis tervezés példa - slidepdf.com

http://slidepdf.com/reader/full/adatbazis-tervezes-pelda 30/47

 

Adatbázisok használata 1.

A nézet eldobva.

2. Kocsik futott km-ei (query16.sql)

CREATE OR REPLACE VIEW kocsikm

ASSELECT menetek.palyaszam AS palyaszam,

SUM(viszonylatok.tav) AS tavolsagokFROM menetek,

jaratok,viszonylatok

WHERE menetek.forgalmi_szam = jaratok.forgalmi_szam ANDjaratok.viszonylat = viszonylatok.viszonylat

GROUP BY menetek.palyaszam; SET linesize 60SET pagesize 20TTITLE "Kocsik futott km-ei"BTITLE "SKV Kft."

COLUMN "Pályaszám" HEADING "Pályaszám"COLUMN "Típus" HEADING "Kocsi|típusa" FORMAT A10 JUSTIFY CENTERCOLUMN "Megtett" HEADING "Megtett|km" JUSTIFY CENTER

SELECT villamosok.palyaszam AS "Pályaszám",tipusok.tipus AS "Típus",ROUND(kocsikm.tavolsagok/1000,2) AS "Megtett"

FROM tipusok,villamosok,kocsikm

WHERE kocsikm.palyaszam = villamosok.palyaszam ANDvillamosok.tipus = tipusok.tipus

ORDER BY kocsikm.tavolsagok DESC;

CLEAR COLUMNSTTITLE OFFBTITLE OFF

SET pagesize 40SET linesize 400

DROP VIEW kocsikm;

A nézet létrejött.

Cs. Máj. 08 lap 1Kocsik futott km-ei

Kocsi MegtettPályaszám típusa km---------- ---------- ----------

1501 TW6000 1602003 COMBINO 1502004 COMBINO 144

- 30 -

5/14/2018 Adatbázis tervezés példa - slidepdf.com

http://slidepdf.com/reader/full/adatbazis-tervezes-pelda 31/47

 

Adatbázisok használata 1.

4202 T5C5 1202001 COMBINO 62,54203 T5C5 451308 CSMG2 351356 KCSV7 301347 KCSV7 301301 CSMG2 20

1313 CSMG2 15

SKV Kft.

11 sor kijelölve.

A nézet eldobva.

- 31 -

5/14/2018 Adatbázis tervezés példa - slidepdf.com

http://slidepdf.com/reader/full/adatbazis-tervezes-pelda 32/47

 

Adatbázisok használata 1.

DML utasítások 

1. CSMG2 es típusú kocsi átalakítása során bszereltek 2 ülést (update1.sql)

SAVEPOINT a;

UPDATE tipusokSET ulohelyek_szama = ulohelyek_szama + 2,allohelyek_szama = allohelyek_szama - 2

WHERE UPPER(tipus) = 'CSMG2';

COMMIT;

2. A 7 percnél rövidebb pihenőidejű viszonylatok pihenőidejének megnövelése 5 perccel(update2.sql)

SAVEPOINT b;

UPDATE viszonylatokSET pihenoido = pihenoido + 5WHERE pihenoido <= ANY (SELECT pihenoido FROM viszonylatok WHERE pihenoido <=7);--SELECT * FROM viszonylatok;ROLLBACK TO b;

3. Az adott vezető törlése a járművezetők közül (delete1.sql)

SAVEPOINT c;

DELETE FROM vezetokWHERE UPPER(vezeto_neve) = 'NAGY FERENC' AND UPPER(anyja_neve) = 'ILLÉSZSUZSANNA';

ROLLBACK TO c;

4. Nem használt járatok törlése (delete2.sql)

SAVEPOINT d;

DELETE FROM jaratokWHERE forgalmi_szam NOT IN (SELECT forgalmi_szam FROM menetek);

ROLLBACK TO d;

- 32 -

5/14/2018 Adatbázis tervezés példa - slidepdf.com

http://slidepdf.com/reader/full/adatbazis-tervezes-pelda 33/47

 

Adatbázisok használata 1.

Interaktív SQL szkriptek 

Megadott oszlop frissítése (iupdate.sql)

SET verify OFF

ACCEPT tabla PROMPT "Adja meg a tábla nevét: "ACCEPT oszlop PROMPT "Adja meg a módosítandó oszlop nevét: "ACCEPT ertek PROMPT "Adja meg a módosítandó új értékét: "ACCEPT feltetel PROMPT "Adja meg a frissítési feltételt: "

UPDATE &tablaSET &oszlop = &ertekWHERE &feltetel;

SET verify ON

SQL> @iupdate

Adja meg a tábla nevét: viszonylatokAdja meg a módosítandó oszlop nevét: tavAdja meg a módosítandó új értékét: 7777Adja meg a frissítési feltételt: viszonylat = 2

1 sor módosítva.

Megadott sorok törlése (idelete.sql)

SET verify OFF

ACCEPT tabla PROMPT "Adja meg a tábla nevét: "

ACCEPT feltetel PROMPT "Adja meg a törlési feltételt: "

DELETE FROM &tablaWHERE &feltetel;

SET verify ON

SQL> @ideleteAdja meg a tábla nevét: vezetokAdja meg a törlési feltételt: beosztas = 'besegítő'

2 sor törölve.

Megadott táblába beszúrás (iinsert.sql)

SET verify OFF

ACCEPT tabla PROMPT "Adja meg a tábla nevét: "ACCEPT ertekek PROMPT "Adja meg a felvételre kerülő értékeket: "

INSERT INTO &tablaVALUES &ertekek;

SET verify ON

SQL> @iinsert

- 33 -

5/14/2018 Adatbázis tervezés példa - slidepdf.com

http://slidepdf.com/reader/full/adatbazis-tervezes-pelda 34/47

 

Adatbázisok használata 1.

Adja meg a tábla nevét: vezetokAdja meg a felvételre kerülő értékeket: ('aa','bb','főállású')

1 sor létrejött.

Megadott tábla megadott attribútumainak listázása (iselect.sql)

SET verify OFF

ACCEPT tabla PROMPT "Adja meg a tábla nevét: "ACCEPT ertekek PROMPT "Adja meg a listázásra kerülő mezőket: "

SELECT &ertekek FROM &tabla;

SET verify ON

Új oszlop hozzáadása egy táblához (iujoszlop.sql)

SET verify OFF

ACCEPT tabla PROMPT "Adja meg a tábla nevét: "ACCEPT oszlop PROMPT "Adja meg az új oszlop nevét: "ACCEPT tipus PROMPT "Azja meg az új oszlop típusát: "

ALTER TABLE &tablaADD &oszlop &tipus;

SET verify ON

SQL> @iujoszlop

Adja meg a tábla nevét: villamosokAdja meg az új oszlop nevét: parjaAzja meg az új oszlop típusát: number(4)

A tábla módosítva.

Megadott oszlop törlése (ioszloptorles.sql)

SET verify OFF

ACCEPT tabla PROMPT "Adja meg a tábla nevét: "ACCEPT oszlop PROMPT "Adja meg a törlendő oszlop nevét: "

ALTER TABLE &tablaDROP COLUMN &oszlop;

SET verify ON

SQL> @ioszloptorlesAdja meg a tábla nevét: villamosokAdja meg a törlendő oszlop nevét: parja

A tábla módosítva.

Megszorítás hozzáadása táblához (imegszhozzaad.sql)

SET verify OFF

- 34 -

5/14/2018 Adatbázis tervezés példa - slidepdf.com

http://slidepdf.com/reader/full/adatbazis-tervezes-pelda 35/47

 

Adatbázisok használata 1.

ACCEPT tabla PROMPT "Adja meg a tábla nevét: "ACCEPT megszoritas PROMPT "Adja meg az új megszorítás nevét: "ACCEPT tipus PROMPT "Adja meg az új megszorítás típusát: "

ALTER TABLE &tablaADD CONSTRAINT &megszoritas &tipus;

SET verify ON

SQL> @imegszhozzaadAdja meg a tábla nevét: viszonylatokAdja meg az új megszorítás nevét: viszonylatok_checkAdja meg az új megszorítás típusát: CHECK(pihenoido < menetido)

A tábla módosítva.

Megszorítás törlése tábláról (imegsztorl.sql)

SET verify OFF

ACCEPT tabla PROMPT "Adja meg a tábla nevét: "ACCEPT megszoritas PROMPT "Adja meg a törlendő megszorítás nevét: "

ALTER TABLE &tablaDROP CONSTRAINT &megszoritas;

SET verify ON

SQL> @imegsztorlAdja meg a tábla nevét: viszonylatokAdja meg a törlendő megszorítás nevét: viszonylatok_check

A tábla módosítva.

Tábla átnevezése (itablaatnev.sql)

SET verify OFF

ACCEPT tabla PROMPT "Adja meg a tábla nevét: "ACCEPT uj PROMPT "Adja meg a tábla új nevét: "

RENAME &tabla TO &uj;

SET verify ON

SQL> @itablaatnevAdja meg a tábla nevét: villamosokAdja meg a tábla új nevét: tujak

A tábla átnevezve.

Oszlop átnevezése (ioszlopatnev.sql)

SET verify OFF

ACCEPT tabla PROMPT "Adja meg a tábla nevét: "

- 35 -

5/14/2018 Adatbázis tervezés példa - slidepdf.com

http://slidepdf.com/reader/full/adatbazis-tervezes-pelda 36/47

 

Adatbázisok használata 1.

ACCEPT oszlop PROMPT "Adja meg az oszlop nevét: "ACCEPT uj PROMPT "Adja meg az oszlop új nevét: "

ALTER TABLE &tablaRENAME COLUMN &oszlop TO &uj;

SET verify ON

SQL> @ioszlopatnevAdja meg a tábla nevét: vezetokAdja meg az oszlop nevét: beosztasAdja meg az oszlop új nevét: munkakor

A tábla módosítva.

- 36 -

5/14/2018 Adatbázis tervezés példa - slidepdf.com

http://slidepdf.com/reader/full/adatbazis-tervezes-pelda 37/47

 

Adatbázisok használata 1.

Jogosultságkezelés

CONNECT SYSTEM/gazda AS SYSDBA

CREATE ROLE Vonalfonok;

GRANT CREATE TABLE,CREATE ANY VIEW,DROP ANY VIEW,CREATE SESSION

TO Vonalfonok;

CREATE ROLE Diszpecser;

GRANT SELECT ANY TABLE,CREATE SESSION

TO Diszpecser;

CREATE USER BélaIDENTIFIED BY asdfDEFAULT TABLESPACE usersTEMPORARY TABLESPACE tempQUOTA UNLIMITED ON users;

 CREATE USER MihályIDENTIFIED BY qwerDEFAULT TABLESPACE usersTEMPORARY TABLESPACE tempQUOTA UNLIMITED ON users;

GRANT Vonalfonok TO Béla;GRANT Vonalfonok TO Mihály;

CREATE USER ImreIDENTIFIED BY yxcvDEFAULT TABLESPACE usersTEMPORARY TABLESPACE tempQUOTA UNLIMITED ON users;

 CREATE USER GáborIDENTIFIED BY hjklDEFAULT TABLESPACE users

TEMPORARY TABLESPACE tempQUOTA UNLIMITED ON users;

GRANT Diszpecser TO Imre;GRANT Diszpecser TO Gábor;

- 37 -

5/14/2018 Adatbázis tervezés példa - slidepdf.com

http://slidepdf.com/reader/full/adatbazis-tervezes-pelda 38/47

 

Adatbázisok használata 1.

Párosítási feladat

A nagyobb kapacitás eléréséhez a villamosokat össze kell csatolni. Összekapcsolni csak az azonostípusúakat lehet úgy, hogy az egyik kocsi pályaszáma páratlan, a másik kocsi pályaszáma páros. (par.sql)

--DROP TABLE csatolt;

CREATE TABLE csatoltAS SELECT * FROM villamosok;

ALTER TABLE csatoltADD parja NUMBER(4);

BEGINFOR i IN (SELECT *

FROM csatoltWHERE parja IS NULL AND MOD(palyaszam,2) <> 0)

LOOPFOR j IN (SELECT *FROM csatoltWHERE parja IS NULL AND MOD(palyaszam,2) = 0)

LOOPIF UPPER(i.tipus) = UPPER(j.tipus)THENUPDATE csatoltSET parja = i.palyaszamWHERE palyaszam = j.palyaszam;

UPDATE csatolt

SET parja = j.palyaszamWHERE palyaszam = i.palyaszam;

EXIT;END IF;

END LOOP;END LOOP;

END;/

SELECT * FROM csatolt;

Eredmény:

A tábla létrejött.

A tábla módosítva.

A PL/SQL eljárás sikeresen befejeződött.

PALYASZAM TIPUS PARJA---------- -------------------- ----------

1301 CSMG2 13021302 CSMG2 13011304 CSMG2 1305

- 38 -

5/14/2018 Adatbázis tervezés példa - slidepdf.com

http://slidepdf.com/reader/full/adatbazis-tervezes-pelda 39/47

 

Adatbázisok használata 1.

1305 CSMG2 13041306 CSMG2 13071307 CSMG2 13061308 CSMG2 13091309 CSMG2 13081310 CSMG2 13111311 CSMG2 1310

1312 CSMG2 13131313 CSMG2 13121325 KCSV7 13261326 KCSV7 13251347 KCSV7 13561356 KCSV7 13474202 T5C5 42034203 T5C5 42024204 T5C5 42054205 T5C5 42044206 T5C5 42074207 T5C5 4206

4208 T5C5 42094209 T5C5 42084210 T5C5 42114211 T5C5 42104212 T5C5 42134213 T5C5 42124214 T5C5 42154215 T5C5 42141501 TW6000 15021502 TW6000 15011503 TW6000 15041504 TW6000 1503

1505 TW6000 15061506 TW6000 15051507 TW60002001 COMBINO 20022002 COMBINO 20012003 COMBINO 20042004 COMBINO 20032005 COMBINO 20062006 COMBINO 20052007 COMBINO 20082008 COMBINO 20072009 COMBINO 2010

2010 COMBINO 2009

47 sor kijelölve.

- 39 -

5/14/2018 Adatbázis tervezés példa - slidepdf.com

http://slidepdf.com/reader/full/adatbazis-tervezes-pelda 40/47

 

Adatbázisok használata 1.

Alprogramok 

A paraméterként megadott járművezető összes megtett km-e (alpr1.sql)

SET serveroutput ON

CREATE OR REPLACE FUNCTION vezetettkm(nev IN VARCHAR2, anyja IN VARCHAR2)RETURN NUMBERISmszam NUMBER;

BEGINSELECT SUM(viszonylatok.tav)INTO mszamFROM menetek,

jaratok,viszonylatok

WHERE menetek.forgalmi_szam = jaratok.forgalmi_szam ANDjaratok.viszonylat = viszonylatok.viszonylat

GROUP BY menetek.vezeto_neve, menetek.anyja_neveHAVING menetek.vezeto_neve = nev ANDmenetek.anyja_neve = anyja;

RETURN mszam/1000;EXCEPTIONWHEN NO_DATA_FOUNDTHEN RAISE_APPLICATION_ERROR(-20101, 'Nincs ilyen vezető!');

END;/SHOW ERRORS

SET serveroutput OFF

A paraméterként megadott férőhely nagyobb-e, mint az összes férőhely átlagának fele(alpr2.sql)

SET serveroutput ON

CREATE OR REPLACE FUNCTION atlagferohely(ferohely IN NUMBER)RETURN BOOLEAN

ISatlagferohely NUMBER;

BEGIN

SELECT AVG(allohelyek_szama + ulohelyek_szama)INTO atlagferohelyFROM tipusokGROUP BY tipus;

IF ferohely > atlagferohely/2THENRETURN TRUE;

ELSERETURN FALSE;

END IF;END;/

SHOW ERRORS

SET serveroutput OFF

- 40 -

5/14/2018 Adatbázis tervezés példa - slidepdf.com

http://slidepdf.com/reader/full/adatbazis-tervezes-pelda 41/47

 

Adatbázisok használata 1.

Ha nem szerepel a típusok táblában a megadott paraméterű sor, akkor hibát generál(alpr3.sql)

SET serveroutput ON

CREATE OR REPLACE PROCEDURE tipusellenorzes(tipusbe IN VARCHAR2)

ISszamlal NUMBER;BEGINSELECT COUNT(*)INTO szamlalFROM tipusokWHERE tipus = tipusbe;

IF szamlal = 0THENRAISE_APPLICATION_ERROR(-20104, 'Nincs ilyen típus: ' || tipusbe);

END IF;END;

/SHOW ERRORS

SET serveroutput OFF

- 41 -

5/14/2018 Adatbázis tervezés példa - slidepdf.com

http://slidepdf.com/reader/full/adatbazis-tervezes-pelda 42/47

 

Adatbázisok használata 1.

Triggerek 

Besegítő beoszású vezető csak 20km-nél több megtett km-re léphet át főállásúbesorolásba (trigger1.sql)

SET serveroutput ON

CREATE OR REPLACE TRIGGER foallasbaBEFORE UPDATE ON vezetokFOR EACH ROWDECLAREnemlephetat EXCEPTION;km NUMBER;

BEGINDBMS_OUTPUT.PUT_LINE('foallasba trigger aktív...');IF UPPER(:OLD.beosztas) = 'BESEGÍTŐ' AND UPPER(:NEW.beosztas) = 'FŐÁLLÁSÚ'THENkm := vezetettkm(:NEW.vezeto_neve, :NEW.anyja_neve);

IF km < 20THENRAISE nemlephetat;

END IF;END IF;DBMS_OUTPUT.PUT_LINE('A frissítés elvégezhető!');

 EXCEPTIONWHEN nemlephetatTHEN RAISE_APPLICATION_ERROR(-20102, 'Nem léphet át főállású beosztásba, csak

20 megtett km után! Jelenlegi megtett távolság:' || ROUND(km,2));END;

/SHOW ERRORS

SET serveroutput OFF

Új típust csak megfelelő férőhellyel lehet felvenni (trigger2.sql)

SET serveroutput ON

CREATE OR REPLACE TRIGGER ujvillamosBEFORE INSERT ON tipusokFOR EACH ROWDECLAREkeveshely EXCEPTION;

BEGINDBMS_OUTPUT.PUT_LINE('ujvillamos trigger aktív...');

IF atlagferohely(:NEW.ulohelyek_szama + :NEW.allohelyek_szama) = FALSETHENRAISE keveshely;

END IF;DBMS_OUTPUT.PUT_LINE('Adat felvehető!');

EXCEPTIONWHEN keveshelyTHEN RAISE_APPLICATION_ERROR(-20103, 'Túl kevés férőhely van a járművön, nem

képes kiszolgálni az igényeket!');END;

- 42 -

5/14/2018 Adatbázis tervezés példa - slidepdf.com

http://slidepdf.com/reader/full/adatbazis-tervezes-pelda 43/47

 

Adatbázisok használata 1.

/SHOW ERRORS

SET serveroutput OFF

A villamosok táblába csak létező típusok pályaszámait lehet felvenni (trigger3.sql)

SET serveroutput ON

CREATE OR REPLACE TRIGGER tipusvedoBEFORE INSERT ON villamosokFOR EACH ROWBEGINDBMS_OUTPUT.PUT_LINE('ujvillamos trigger aktív...');

tipusellenorzes(:NEW.tipus); DBMS_OUTPUT.PUT_LINE('Adat felvehető!');

END;/SHOW ERRORS

SET serveroutput OFF

Meneteket csak munkaidőben lehet kezelni (trigger4.sql)

SET serveroutput ON

CREATE OR REPLACE TRIGGER menetekhozzaferesBEFORE DELETE OR INSERT OR UPDATE ON menetek

BEGINIF TO_CHAR(sysdate, 'HH24:MI') NOT BETWEEN '03:00' AND '23:50'THEN

RAISE_APPLICATION_ERROR(-20213, 'Hozzáférés csak munkaidőbenlehteséges!');END IF;

END;/SHOW ERRORS

SET serveroutput OFF

- 43 -

5/14/2018 Adatbázis tervezés példa - slidepdf.com

http://slidepdf.com/reader/full/adatbazis-tervezes-pelda 44/47

 

Adatbázisok használata 1.

PL/SQL listák 

Járművezető hozzáadása (padd.sql)

SET serveroutput ONSET verify OFF

ACCEPT vezeto PROMPT 'Járművezető neve: 'ACCEPT anyja PROMPT 'Anyja neve: 'ACCEPT beosztas PROMPT 'Beosztása: 'DECLAREbeosztashiba EXCEPTION;

BEGINIF UPPER('&beosztas') = 'BESEGÍTŐ' OR UPPER('&beosztas') = 'FŐÁLLÁSÚ'THENINSERT INTO vezetok VALUES ('&vezeto', '&anyja', '&beosztas');

ELSERAISE beosztashiba;

END IF;EXCEPTIONWHEN beosztashiba THEN RAISE_APPLICATION_ERROR(-20110, 'Hibás beosztás!');

END;/

SET verify ONSET serveroutput OFF

SQL> @paddJárművezető neve: Sándor FerencAnyja neve: Hollósi Júlia

Beosztása: félállásDECLARE*Hiba a(z) 1. sorban:ORA-20110: Hibás beosztás!ORA-06512: a(z) helyen a(z) 11. sornál

SQL> @paddJárművezető neve: Sándor FerencAnyja neve: Hollósi JúliaBeosztása: besegítő

A PL/SQL eljárás sikeresen befejeződött.

Megadott vezető törlése (pdelete.sql)

SET serveroutput ONSET verify OFF

ACCEPT vezeto PROMPT 'Járművezető neve: 'ACCEPT anyja PROMPT 'Anyja neve: '

BEGINDELETE FROM vezetokWHERE UPPER(vezeto_neve) = UPPER('&vezeto') AND

UPPER(anyja_neve) = UPPER('&anyja');

- 44 -

5/14/2018 Adatbázis tervezés példa - slidepdf.com

http://slidepdf.com/reader/full/adatbazis-tervezes-pelda 45/47

 

Adatbázisok használata 1.

EXCEPTIONWHEN NO_DATA_FOUND THEN RAISE_APPLICATION_ERROR(-20111, 'Nincs ilyen

járművezető!');END;/

SET verify ON

SET serveroutput OFF

SQL> @pdeleteJárművezető neve: PéterAnyja neve: Mariann

A PL/SQL eljárás sikeresen befejeződött.

Megadott vezető módosítása (pmodify.sql)

SET serveroutput ONSET verify OFF

ACCEPT vezeto PROMPT 'Járművezető neve: 'ACCEPT anyja PROMPT 'Anyja neve: 'ACCEPT beosztas PROMPT 'új beosztása: '

DECLAREbeosztashiba EXCEPTION;CURSOR vezetokurzor ISSELECT * FROM vezetokFOR UPDATE OF beosztas NOWAIT;

vezetosor vezetokurzor%ROWTYPE;BEGINOPEN vezetokurzor;FETCH vezetokurzor INTO vezetosor;WHILE (vezetokurzor%FOUND)LOOP

 IF UPPER(vezetosor.vezeto_neve) = UPPER('&vezeto') AND

UPPER(vezetosor.anyja_neve) = UPPER('&anyja')THENIF UPPER('&beosztas') = 'BESEGÍTŐ' OR UPPER('&beosztas') = 'FŐÁLLÁSÚ'THENUPDATE vezetok

SET beosztas = '&beosztas'WHERE CURRENT OF vezetokurzor;ELSERAISE beosztashiba;

END IF;EXIT;

END IF;FETCH vezetokurzor INTO vezetosor;

END LOOP;CLOSE vezetokurzor;EXCEPTIONWHEN NO_DATA_FOUND THEN RAISE_APPLICATION_ERROR(-20111, 'Nincs ilyen

járművezető!');END;/

- 45 -

5/14/2018 Adatbázis tervezés példa - slidepdf.com

http://slidepdf.com/reader/full/adatbazis-tervezes-pelda 46/47

 

Adatbázisok használata 1.

SET verify ONSET serveroutput OFF

SQL> @pmodifyJárművezető neve: Berkes OrsolyaAnyja neve: Vass Katalin

új beosztása: besegítőfoallasba trigger aktív...A frissítés elvégezhető!

A PL/SQL eljárás sikeresen befejeződött.

Vezető keresése (psearch.sql)

SET serveroutput ONSET verify OFF

ACCEPT vezeto PROMPT 'Járművezető neve vagy részlete: '

DECLARECURSOR vezetokurzor ISSELECT * FROM vezetokFOR UPDATE OF beosztas NOWAIT;

vezetosor vezetokurzor%ROWTYPE;talalat NUMBER;

BEGINtalalat := 0;OPEN vezetokurzor;FETCH vezetokurzor INTO vezetosor;WHILE (vezetokurzor%FOUND)LOOPIF UPPER(vezetosor.vezeto_neve) LIKE UPPER('%&vezeto%')THENtalalat := talalat + 1;DBMS_OUTPUT.PUT_LINE(talalat ||'. Név: ' || vezetosor.vezeto_neve ||

' Anyja neve: ' || vezetosor.anyja_neve ||' Beosztása: ' || vezetosor.beosztas);

 END IF;FETCH vezetokurzor INTO vezetosor;

END LOOP;

CLOSE vezetokurzor;END;/

SET verify ONSET serveroutput OFF

SQL> @psearchJárművezető neve vagy részlete: a1. Név: Nagy Ferenc Anyja neve: Illés Zsuzsanna Beosztása: főállású2. Név: Berkes Orsolya Anyja neve: Vass Katalin Beosztása: besegítő

A PL/SQL eljárás sikeresen befejeződött.

- 46 -

5/14/2018 Adatbázis tervezés példa - slidepdf.com

http://slidepdf.com/reader/full/adatbazis-tervezes-pelda 47/47

 

Adatbázisok használata 1.

Vezetők listázása (plist.sql)

SET serveroutput ONSET verify OFF

PROMPT Járművezetők listázása:

DECLAREtalalat NUMBER;

BEGINtalalat := 0;DBMS_OUTPUT.PUT_LINE('--------------------------------------------------------

-----------------');FOR vezetosor IN (SELECT * FROM vezetok)LOOPtalalat := talalat + 1;DBMS_OUTPUT.PUT_LINE('>> ' || talalat ||'. Név: ' || vezetosor.vezeto_neve

||' Anyja neve: ' || vezetosor.anyja_neve ||' Beosztása: ' || vezetosor.beosztas);

DBMS_OUTPUT.PUT_LINE('-------------------------------------------------------------------------');END LOOP;

END;/

SET verify ONSET serveroutput OFF

SQL> @plistJárművezetők listázása:------------------------------------------------------------------------->> 1. Név: Kecskés Judit Anyja neve: Kovács Ilona Beosztása: besegítő------------------------------------------------------------------------->> 2. Név: Nagy Ferenc Anyja neve: Illés Zsuzsanna Beosztása: főállású------------------------------------------------------------------------->> 3. Név: Hordós László Anyja neve: Zöld Mariann Beosztása: besegítő------------------------------------------------------------------------->> 4. Név: Berkes Orsolya Anyja neve: Vass Katalin Beosztása: besegítő------------------------------------------------------------------------->> 5. Név: Erdős Eszter Anyja neve: Kun Dorottya Beosztása: besegítő-------------------------------------------------------------------------

>> 6. Név: Sándor Ferenc Anyja neve: Hollósi Júlia Beosztása: besegítő-------------------------------------------------------------------------

A PL/SQL eljárás sikeresen befejeződött.

- 47 -