2006. október 9.Markó Tamás, PTE TTK1 Az Oracle SQL 7. Kényszerek megadása. Indexek kezelése.

Slides:



Advertisements
Hasonló előadás
Bevezetés a programozásba - Az algoritmusok leírása
Advertisements

2012. tavaszi félév Vitéz Gergely. A diasor ismerete nem helyettesíti a tankönyvet, és a példatárat. A diasor ismerete szükséges, de nem elégséges feltétele.
Adatbázis rendszerek I
Anyagadatbank c. tárgy gyakorlat
Adatbázisok SQL. TARTALOM Szijártó M.2 Témakörök  Az SQL tulajdonságai  A műveletek fajtái  Objektum-műveletek  Lekérdezések Tulajdonságok és műveletek.
1Szegedi Tudományegyetem Természettudományi és Informatikai KarAntal Gábor Adatbázisok gyakorlat 8. gyakorlat SQL alapok.
Elmaradás.  0 Számjegy. Ebben a pozícióban egyetlen számjegyet kell megadnia.  9 Számjegy. Ebben a pozícióban egyetlen számjegyet lehet megadni, nem.
2. GYAKORLAT E-K modellből relációs adatbázisséma.
2006. december 2.Markó Tamás, PTE TTK1 Az Oracle SQL 15. Hangolás.
Adatbázisrendszerek megvalósítása
Delphi programozás alapjai
SQL Structured Query Language
Adatbázis (alapfogalmak).
Markó Tamás, PTE TTK1 Operációs rendszerek Informatikus könyvtáros szak DL.
5. GYAKORLAT SQL CREATE TABLE, aktualizálás. S QL Structured Query Language A relációs adatbáziskezelés szabványos nyelve Nem algoritmikus, de beépíthető.
– SQL 2: Adatok kezelése – Tarcsi Ádám, január 30. Adatbázis gyakorlat.
– Adattáblák & adatok kezelése – Tarcsi Ádám január Adatbázis gyakorlat.
SQL – DQL (Data Query Language ) adat lekérdezések
Adatbázis rendszerek II.
Készítette: Sárközi Anikó
2006. október 2.Markó Tamás, PTE TTK1 Az Oracle SQL 4. Összesítés és csoportosítás lekérdezésekben. Halmazműveletek.
2005. december 12.Markó Tamás, PTE TTK1 Az Oracle SQL 11. Elemzések támogatása.
2006. október 2.Markó Tamás, PTE TTK1 Az Oracle SQL 5. Nézettáblák létrehozása, módosítása és törlése.
SQL92 lehetőségek KL A tábla B tábla C view adatok VIEW működése utasítás: SELECT.. FROM A,B … SELECT.. FROM C Az adatok a hivatkozáskor állítódnak elő.
Adattáblák létrehozása, módosítása, tranzakciók, megszorítások Rózsa Győző.
SQL, adatdefiníció, adatok megváltoztatása, megszorítások
Adatbázis kezelés Delphiben
Kényszerek megadása. Indexek kezelése.
MSACCESS Bevezetés. Üzemeltetés Hozzáférés Jogosultságok Karbantartás Mentés Stb. Felhasználói felület Űrlapok Jelentések Menük Stb. Adatnézetek, funkcionalitás.
- adatbázisséma definiálása (DDL) Data Definition Languages, - adatok aktualizálása (DML),Data Maniputaion Language - lekérdezési lehetőségek (DML) Data.
SQL. SQL = Structured Query Language (= struktúrált lekérdező nyelv). A relációs adatbázis-kezelés szabványos nyelve. Nem algoritmikus nyelv, de algoritmikus.
DML. Új rekord beszúrása: INSERT INTO tábla (oszlop1,oszlop2,…) VALUES (érték1,érték2,…); Rekord módosítása: UPDATE tábla SET oszlop = érték WHERE feltétel;
Statisztika, kutatásmódszertan I.
1 Informatikai Szakképzési Portál Adatbázis kezelés Alapfogalmak.
DDL – Adatdefiníciós nyelv
Adatbázis I. – 11. előadás Kulcsok az SQL – ben. Hivatkozás- épségi megszorítások és idegen kulcsok.
Adattáblák létrehozása, módosítása, tranzakciók, megszorítások Rózsa Győző.
2012. tavaszi félév Vitéz Gergely. A diasor ismerete nem helyettesíti a tankönyvet, és a példatárat. A diasor ismerete szükséges, de nem elégséges feltétele.
A diasor ismerete nem helyettesíti a tankönyvet, és a példatárat. A diasor ismerete szükséges, de nem elégséges feltétele a minimum elégséges érdemjegynek!
Adatbázis-kezelés SQL-lel. SQL SQL = Structured Query Language – Strukturált Lekérdezőnyelv Relációs adatbázis-kezelők lekérdezési nyelve. Alapjait az.
Adatbázis-kezelés SQL-lel
SQL DDL DATA DEFINITION LANGUAGE. Táblák létrehozása CREATE TABLE táblanév ( oszlopnév1 típus(méret) /DEFAULT érték/ /NOT NULL/, oszlopnév2 típus(méret)
Nézzük, mit tudunk…. Mire gondoltam? Megjeleníti az adott adatbázishoz kapcsolódó összes objektumot : adatbázis ablak.
Az SQL nyelv. SQL Az SQL utasításait két fő csoportba szokták sorolni: DDL (= Data Definition Language): adatstuktúra definiáló utasítások. DML (= Data.
DQL. A select parancs az adattábla lekérdezésére szolgál, azaz a táblában tárolt adatok közül az előírt feltételeknek megfelelőket kiválogatja. Formája.
SQL.
2006. október 30.Markó Tamás, PTE TTK1 Az Oracle SQL 9. Triggerek és tárolt eljárások. Kliens oldali programok.
1 Sramó András Adatbázis-technológia V. előadás Adatbázis-technológia 5. előadás Az SQL.
Tarcsi Ádám, Adatbázis gyakorlat – Adattáblák – Tarcsi Ádám, január.
Bevezetés A MYSQL szintaxisa Táblák, adatok kezelésének alapjai
Adatbázisok Fleiner Rita, Tankönyv:
Kulcsok meghatározása a táblákban
Ma az un. Relációs adatmodelleket használjuk.
5. gyakorlat Fleiner Rita.
Webprogramozó tanfolyam
Sapientia - Erdélyi Magyar TudományEgyetem (EMTE) Csíkszereda 3. Előadás Az SQL adatbázisnyelv (Tartalom ) Az SQL története Az SQL felépítése Adattípúsok.
SQL. SQL jellemzői Nem algoritmikus (nem tartalmaz algoritmikus szerkezeteket: ciklus, eljárás, elágazás) Nem rekurzív (önmagát nem hívhatja) Halmazorientált.
Adatbázis rendszerek I
1 Verseny 2000 gyakorlat SQL 2000 Server Portál adatbázis létrehozása.
SQL.
Adatbázis-kezelés 1-2. adatbázis-kezelő rendszer 1.új adatbázisokat hozhassanak (adat definició 2.lekérdezések és módosítások (adat manipuláció) 3.Támogassa.
Adatbázisszintű adatmodellek
Adatbázis rendszerek II.
Idegen kulcsok Lokális és globális megszorítások Triggerek
Adatbázisok SQL.
Logisztikai projekt - gyakorlat Adatbázis-elmélet
Relációs adatmodell, normálformák
Adatbázis-kezelés 2. Relációs adatbázisok.
DDL parancsok – Tábla műveletek, mezőtulajdonságok
Idegen kulcsok Lokális és globális megszorítások Triggerek
Előadás másolata:

2006. október 9.Markó Tamás, PTE TTK1 Az Oracle SQL 7. Kényszerek megadása. Indexek kezelése.

2006. október 9.Markó Tamás, PTE TTK2 A rádiótelefonokat kérem KIKAPCSOLNI!

2006. október 9.Markó Tamás, PTE TTK3 A kényszerek (CONSTRAINT) típusai PRIMARY KEY: a kulcsmezők megadása (csak egyedi értékük lehet) FOREIGN KEY: idegen kulcs megadása (egy másik tábla kulcsában elő kell fordulnia) CHECK: egyéb elvégzendő ellenőrzés Bonyolultabb kényszerek megadásához adatbázis-triggereket lehet használni

2006. október 9.Markó Tamás, PTE TTK4 Kulcs megadása

2006. október 9.Markó Tamás, PTE TTK5 Egyszerű kulcs megadása a táblával együtt Alakja: CREATE TABLE táblanév (oszlopnév adattípus [CONSTRAINT kulcsnév] PRIMARY KEY [, oszlopnév adattípus …]); Példa: CREATE TABLE hallgato ( nev VARCHAR2(30) CONSTRAINT hallg_kulcs PRIMARY KEY, szul_dat DATE, evfolyam NUMBER(1) );

2006. október 9.Markó Tamás, PTE TTK6 (Összetett) kulcs megadása a táblával együtt Alakja: CREATE TABLE táblanév (oszlopnév adattípus [, oszlopnév adattípus …], [CONSTRAINT kulcsnév] PRIMARY KEY (oszlopok)); Példa: CREATE TABLE hallgato ( nev VARCHAR2(30), szul_dat DATE, evfolyam NUMBER(1), CONSTRAINT hallg_kulcs PRIMARY KEY (nev, szul_dat));

2006. október 9.Markó Tamás, PTE TTK7 Egyszerű kulcs megadása utólag Alakja: ALTER TABLE táblanév MODIFY (oszlopnév adattípus [CONSTRAINT kulcsnév] PRIMARY KEY); Példa: ALTER TABLE hallgato MODIFY (nev VARCHAR2(30) CONSTRAINT hallg_kulcs PRIMARY KEY); ORACLE-ben nem megy!

2006. október 9.Markó Tamás, PTE TTK8 Kulcs megadása utólag Alakja: ALTER TABLE táblanév ADD [CONSTRAINT kulcsnév] PRIMARY KEY (oszlopok); Példa: ALTER TABLE hallgato ADD CONSTRAINT hallg_kulcs PRIMARY KEY (nev, szul_dat);

2006. október 9.Markó Tamás, PTE TTK9 Idegen kulcs megadása

2006. október 9.Markó Tamás, PTE TTK10 Egyszerű idegen kulcs megadása a táblával együtt Alakja: CREATE TABLE táblanév (oszlopnév adattípus [CONSTRAINT kulcsnév] REFERENCES táblanév[(oszlopnév)] [, oszlopnév adattípus …]); Példa: CREATE TABLE krend ( … vevokod VARCHAR2(8) NOT NULL REFERENCES vevok, …

2006. október 9.Markó Tamás, PTE TTK11 (Összetett) idegen kulcs megadása a táblával együtt Alakja: CREATE TABLE táblanév (oszlopnév adattípus [, oszlopnév adattípus …], [CONSTRAINT kulcsnév] FOREIGN KEY (oszlopok) REFERENCES táblanév[(oszlopok)]); Példa: CREATE TABLE krend (…, CONSTRAINT krend_vevo_id_kulcs FOREIGN KEY (vevokod) REFERENCES vevok(vevokod));

2006. október 9.Markó Tamás, PTE TTK12 Egyszerű idegen kulcs megadása utólag Alakja: ALTER TABLE táblanév MODIFY (oszlopnév adattípus [CONSTRAINT kulcsnév] REFERENCES táblanév[(oszlopnév)]; Példa: ALTER TABLE krend MODIFY (vevokod VARCHAR2(8) NOT NULL REFERENCES vevok); ORACLE-ben nem megy!

2006. október 9.Markó Tamás, PTE TTK13 Idegen kulcs megadása utólag Alakja: ALTER TABLE táblanév ADD [CONSTRAINT kulcsnév] FOREIGN KEY (oszlopok) REFERENCES táblanév[(oszlopok)]; Példa: ALTER TABLE krend ADD CONSTRAINT krend_vevo_id_kulcs FOREIGN KEY (vevokod) REFERENCES vevok(vevokod);

2006. október 9.Markó Tamás, PTE TTK14 Ellenőrző kényszer megadása

2006. október 9.Markó Tamás, PTE TTK15 Egy mezőre vonatkozó ellenőrzés megadása a táblával együtt Alakja: CREATE TABLE táblanév (oszlopnév adattípus [CONSTRAINT kulcsnév] CHECK (feltétel) [, oszlopnév adattípus …]); Példa: CREATE TABLE hallgato ( nev VARCHAR2(30), szul_dat DATE CHECK (szul_dat = 1 AND evfolyam <= 4));

2006. október 9.Markó Tamás, PTE TTK16 Több mezőre vonatkozó ellenőrzés megadása a táblával együtt Alakja: CREATE TABLE táblanév (oszlopnév adattípus [, oszlopnév adattípus …]) [CONSTRAINT kulcsnév] CHECK (feltétel); Példa: CREATE TABLE hallgato ( nev VARCHAR2(30), szul_dat DATE, evfolyam NUMBER(1)) CONSTRAINT eleg_idos CHECK (YEAR(szul_dat)+evfolyam + 17 <= YEAR(SYSDATE)); legkorábban 18 éves korában lehet 1. éves, 19 éves korában 2. éves, stb.

2006. október 9.Markó Tamás, PTE TTK17 Több mezőre vonatkozó ellenőrzés megadása a táblával együtt Alakja: CREATE TABLE táblanév (oszlopnév adattípus [, oszlopnév adattípus …], [CONSTRAINT kulcsnév] CHECK (feltétel)); Példa: CREATE TABLE hallgato ( nev VARCHAR2(30), szul_dat DATE, evfolyam NUMBER(1), CONSTRAINT eleg_idos CHECK (TO_CHAR(szul_dat, ‘YYYY’)+evfolyam+17 <= 2006)); legkorábban 18 éves korában lehet 1. éves, 19 éves korában 2. éves, stb. kényszerben a SYSDATE nem használható

2006. október 9.Markó Tamás, PTE TTK18 Egymezős ellenőrzések megadása utólag Alakja: ATLER TABLE táblanév MODIFY (oszlopnév adattípus [CONSTRAINT kulcsnév] CHECK (feltétel) ); Példa: ALTER TABLE hallgato MODIFY ( szul_dat DATE CHECK (szul_dat = 1 AND evfolyam <= 4)); ORACLE-ben nem megy!

2006. október 9.Markó Tamás, PTE TTK19 Ellenőrzés megadása utólag Alakja: ALTER TABLE táblanév ADD [CONSTRAINT kulcsnév] CHECK (feltétel); Példa: ALTER TABLE hallgato ADD CONSTRAINT eleg_idos CHECK (TO_CHAR(szul_dat, ‘YYYY’)+evfolyam + 17 <= 2006);

2006. október 9.Markó Tamás, PTE TTK20 Gyakori feltételek ellenőrzésnél 1. Egyszerű összehasonlítás –CHECK (x <= 0)-- x nem pozitív –CHECK (x = y)-- x = y –CHECK (x <> ‘C’)-- x nem egyenlő ‘C’-vel Intervallum belseje –CHECK (x >= 0 AND x =0 és x<=10 –CHECK (x BETWEEN 0 AND 10)-- ugyanaz Intervallum külseje –CHECK (x 10)-- x 10 –CHECK (x NOT BETWEEN 0 AND 10)-- ugyanaz

2006. október 9.Markó Tamás, PTE TTK21 Gyakori feltételek ellenőrzésnél 2. Szöveg hasonlítása mintához –CHECK (x LIKE ‘A_b%’) (x első karaktere A, harmadik karaktere b) Előfordulás felsorolásban –CHECK (x IN (‘a’, ‘b’, ‘c’))-- a vagy b vagy c –CHECK (x IN (SELECT nev FROM hallgato)) (x előfordul a HALLGATO tábla NEV oszlopában) Kizárás felsorolásból –CHECK (x NOT IN (1, 2, 3))-- nem 1, 2 vagy 3 _ egy tetszőleges karakter % akárhány tetszőleges kar.

2006. október 9.Markó Tamás, PTE TTK22 Egyéb teendők a kényszerekkel

2006. október 9.Markó Tamás, PTE TTK23 Saját kényszereink adatai USER_CONSTRAINTS view A fontosabb adatok felsoroltatása: SELECTconstraint_name, constraint_type, search_condition FROM user_constraints WHERE table_name=‘RENDEL’; A constraint_type mező jelentése: C: check, P: primary key, R: foreign key (reference) A “NOT NULL” kikötések miatt is létrejöttek “C” típusú kényszerek!

2006. október 9.Markó Tamás, PTE TTK24 Kényszer törlése Formái: ALTER TABLE táblanév DROP CONSTRAINT kényszernév; ALTER TABLE táblanév DROP PRIMARY KEY; Példa: ALTER TABLE hallgato DROP CONSTRAINT joevfolyam;

2006. október 9.Markó Tamás, PTE TTK25 Jó tudni … A rendszer a kényszerek teljesülését minden rekord létrehozásakor, törlésekor vagy módosításakor ellenőrzi Tömeges adatmódosításnál (pl. adat-import) sok időt vesz igénybe A kényszerek átmenetileg kikapcsolhatók!

2006. október 9.Markó Tamás, PTE TTK26 Indexek

2006. október 9.Markó Tamás, PTE TTK27 Alapelvek Az indexek az adott mező(k) szerinti keresést és rendezést gyorsító segédtáblázatok (nem adattáblák!) Azokat a mezőket indexeljük, amik szerint gyakran keresünk vagy rendezünk A jó index gyorsítja a lekérdezést A kulcs szerint automatikusan készül index is A felesleges index lassítja az adatbázist - az indexek karbantartása is időbe kerül! Az idegen kulcsokat mindig indexeljük meg!

2006. október 9.Markó Tamás, PTE TTK28 Index létrehozása Formája: CREATE [UNIQUE] INDEX indexnév ON táblanév (mezőnév [sorrend] [, mezőnév [sorrend] … ]); –sorrend: ASC = növekvő (alapértelmezés), DESC = csökkenő –UNIQUE: az index alapjául szolgáló mezők kötelezően egyediek Példa: CREATE INDEX hallg_nevsor_idx ON hallgato (nev, evfolyam DESC); –név szerint növekvő, azonos nevűeknél évfolyam szerint csökkenő sorrend

2006. október 9.Markó Tamás, PTE TTK29 Értékek egyediségének ellenőrzése indexeléssel A mezőre UNIQUE indexet készítünk, pl. CREATE UNIQUE INDEX hallg_nev_idx ON hallgato (nev); 1:n kapcsolat esetén az idegen kulcshoz sose készítsünk UNIQUE indexet!

2006. október 9.Markó Tamás, PTE TTK30 Index törlése Formája: DROP INDEX indexnév; Példa: DROP INDEX hallg_nevsor_idx;

2006. október 9.Markó Tamás, PTE TTK31 Jó tudni … A rendszer az indexeket minden rekord létrehozásakor, törlésekor vagy módosításakor aktualizálja Tömeges adatmódosításnál (pl. adat-import) sok időt vesz igénybe Sokszor érdemesebb az indexeket törölni, majd az adatmódosítások után újra létrehozni!

2006. október 9.Markó Tamás, PTE TTK32 Házi feladat SQL script készítése és végrehajtása –a példa-adatbázis kényszereinek létrehozására (a következő diákon vastag betűkkel kiemelve) –az idegen kulcsokra indexek készítésére Figyelem! Mindig előbb a kulcsot hozzuk létre, csak utána a rá hivatkozó idegen kulcsot!

2006. október 9.Markó Tamás, PTE TTK33 A vevők adatai

2006. október 9.Markó Tamás, PTE TTK34 A vevők adatai (VEVOK tábla)

2006. október 9.Markó Tamás, PTE TTK35 A rendelések adatai

2006. október 9.Markó Tamás, PTE TTK36 A rendelések adatai (RENDEL tábla)

2006. október 9.Markó Tamás, PTE TTK37 A rendelések tételei

2006. október 9.Markó Tamás, PTE TTK38 A rendelések tételei (RTETEL tábla)

2006. október 9.Markó Tamás, PTE TTK39 A cikkek adatai

2006. október 9.Markó Tamás, PTE TTK40 A cikkek adatai (CIKK tábla)