Hogyan működik? DBMS if ( fseek(f,poz) ) { SELECT SUM(r.d*t.e), r.v

Slides:



Advertisements
Hasonló előadás
10. gyakorlat SQL SELECT.
Advertisements

Tananyag: konzultáció
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.
Lekérdezések SQL-ben Relációs algebra A SELECT utasítás
© Kozsik Tamás Adatbáziskezelés •Relációs adatbáziskezelők •Noha a Java objektum-elvű, egyelőre nem az objektum-elvű adatbáziskezelőket támogatja.
SQL modellezés Turáni Balázs.
Adatbázis rendszerek I Relációs kalkulus Általános Informatikai Tsz. Dr. Kovács László.
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.
PL/SQL folytatás Kurzorok Alprogramok Tárolt eljárások ADATBÁZIS ALAPÚ RENDSZEREK.
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.
Oracle tuning server.101/b10752/toc.htm.
2006. december 2.Markó Tamás, PTE TTK1 Az Oracle SQL 15. Hangolás.
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.
Delphi programozás alapjai
Adatbázis kezelés. Hierarchikus modell Legrégebbi modell, ma már nem használatos. Az adatokat fákban tároljuk, ahol minden pont a szegmens adatokat, és.
– Adattáblák & adatok kezelése – Tarcsi Ádám január Adatbázis gyakorlat.
A DBMS fő feladatai: - adatstruktúra (adatbázisséma) definiálása,
PL/SQL I. ADATBÁZIS ALAPÚ RENDSZEREK.  PL/SQL = Procedural Language/SQL  utasítást ; zárja le  PL/SQL blokk lezárása: /  kis- és nagybetű egyenértékű.
megismerése, mintaadatbázis létrehozása
Adatbázis alapú rendszerek
Adatbázis rendszerek II.
Készítette: Sárközi Anikó
Szintézis Keresztes Péter, 2005 A GAJSKI-KUHN DIAGRAM Alapelv: Rendezzük a digitális- rendszerek leírásait célok és szintek szerint.
1. IS2PRI2 02/96 B.Könyv SIKER A KÖNYVELÉSHEZ. 2. IS2PRI2 02/96 Mi a B.Könyv KönyvelésMérlegEredményAdóAnalitikaForintDevizaKönyvelésMérlegEredményAdóAnalitikaForintDeviza.
Adatbázis-kezelés ACCESS program:
Delphi programozás alapjai Nagyváradi Anett PTE PMMK MIT.
SQL 1 SEQUEL, Structured English Query Language: SQL ANSI, ISO: SQL86, SQL89, SQL92. Alap (entry), közbenső (intermediate), teljes (full) szint. A DDL.
Miskolci Egyetem Informatikai Intézet Általános Informatikai Tanszé k Pance Miklós Adatstruktúrák, algoritmusok előadásvázlat Miskolc, 2004 Technikai közreműködő:
55 kodosszeg FIZETÉS felvitel JUTALOM felvitel 11-es dolgozó kap 200-at 11-es dolgozó kap 50-et SELECT osszeg INTO x FROM d.
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ő.
ORACLE ORDBMS adminisztrációs feladatok 6. rész dr. Kovács László 2004.
adminisztrációs feladatok
ORACLE ORDBMS adminisztrációs feladatok 2. rész dr. Kovács László 2004.
ADATBÁZISOK
Adatbázis rendszerek II
SQL – OLAP 7. óra. Hatékonysági kérdések Időigényes műveletek (ahol lehet javítani):  f(v) (C),  f(D.a) (C), D.a (C),  D, aggr (C) (és ahol nem…) C.
WEB Technológiák ISAPI ME Általános Informatikai Tsz. dr. Kovács László.
Algebrai műveleti gráf optimalizálása ● Mennyi könyvet készített az idén legtöbbet kinyomtató Budapesti könyvkiadó? ● kiado(kod,nev,cim) ● konyv ( kiado,cim,ar,ev.
PHP I. Alapok. Mi a PHP? PHP Hypertext Preprocessor Szkriptnyelv –Egyszerű, gyors fejlesztés –Nincs fordítás (csak értelmező) Alkalmazási lehetőségek:
- 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.
SQL.
Az SQL nyelv alapjai.
Anyagadatbank c. tárgy gyakorlat Féléves tematika Adatbázis alapfogalmak, rendszerek Adatmodellek, adatbázis tervezés Adatbázis műveletek.
Access XP Kifejezés-szerkesztő Összehasonlító operátorok:
Térkép. Mi az adat? Minden információ, amit tárolni kell. Minden információ, amit tárolni kell.  szám  szöveg  dátum  hang  kép, stb.
Klasszikus Programozás a FoxPro-ban
Adatbázis adminisztrátori ismeretek
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.
SQL – OLAP 5. óra. Personal Express programozása Saját rutinok, függvények készíthetők DEFINE nev PROGRAM vtípus EDIT nev nev ” megjegyzés VARIABLE változó.
Készítette: Tóth Ervin
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.
Adatbázis kezelés.
ORACLE ORDBMS adminisztrációs feladatok 3. rész dr. Kovács László 2004.
– SQL 3: SELECT - 1. – Tarcsi Ádám, január 31. Adatbázis gyakorlat.
– SELECT - 2. – Tarcsi Ádám március Adatbázis gyakorlat.
SQL SELECT parancsok Kottyán László. A bemutató mintatáblái.
Adatbázis rendszerek II
Többtáblás lekérdezések, hierarchikus lekérdezések, allekérdezések
A Visual Basic nyelvi elemei
Adatbázis rendszerek I
Adatbázis-kezelés 3-4. Adatok lekérdezése utasítás általános formája SELECT [ALL/DISTINCT] {*/, …, } FROM [ ], …, [ ] [WHERE GROUP BY, …, HAVING ORDER.
– SELECT - 1. – Tarcsi Ádám január Adatbázis gyakorlat.
Deduktiv adatbázisok. Normál adatbázisok: adat elemi adat SQL OLAP adatbázisok: adat statisztikai adat OLAP-SQL … GROUP BY CUBE(m1,m2,..)
Egy lekérdezés végrehajtása SELECT o1 FROM T1 WHERE o2 = … Hogyan jutnak el a megfelelő sorokból a mező értékei a klienshez?
Adatbázisok SQL.
Logisztikai projekt - gyakorlat Adatbázis-elmélet
Előadás másolata:

Hogyan működik? DBMS if ( fseek(f,poz) ) { SELECT SUM(r.d*t.e), r.v fread(f,buf,BUFSIZE); for (i=0; i<buf->cnt;i++) { pp = buf->base + i*SZ; …. SELECT SUM(r.d*t.e), r.v FROM rendeles r, termek t WHERE r.termek = t.tid AND t.szin = 'PIROS' GROUP BY r.varos DBMS

szematikai ellenőrzés Data System SQL parancs szematikai ellenőrzés induló QOG algebrai optimalizálás javitott QOG konverizó fizikai szintre induló QEP költség optimalizálás javitott QEP DB QEP végrehajtás Storage System

1 A szavak nyelvtani szerepének meghatározása Dave a take a stress … BCNF

Minta feladat : bináris törtszám -101.11_ - 1 2 3 1 + 1 OK 1 . _ _ FGRAF.DBF (k-statusz, esemeny, v-statusz)

parameter sor ajel = 0 sh = len(sor) for i = 1 to sh c = substr(sor,i,1) tb[1] = .f. select vstatusz from fgraf where kstatusz = m.ajel and esemeny == c into array tb if type('tb[1]') <> 'N' messagebox("HIBA") return endif ajel = tb[1] endfor messagebox("OK")

 o.oid = a.oid AND a.fiz > 50000 2 Operátorok és operandusok meghatározása o.megy, a.fiz Osztaly  () avg()oid SELECT o.megv, a.fiz FROM osztaly o, (SELECT AVG(fiz), oid FROM dolgozok GROUP BY oid) a WHERE o.oid = a.oid AND a.fiz > 50000;  o.oid = a.oid AND a.fiz > 50000

3 Végrehajtási sorrend meghatározása ( 3 * (4 + 2) + (2 * 3)) + 6 + Végrehajtási gráf generálása + 6 * * 3 + 3 2 2 4

Minta :algebrai kifejezés + × × 3 2 + 2 2 4 parameter gykod ? ite (gykod) function ite ... FA.DBF (id, tipus, ertek, bal, jobb) [1,D,3, , , ] [3,O,×,1,2]

dimension tb[1] tb[1] = .f. select * from fa where id = m.gykod into array tb if type("tb[1,1]") <> "N" messagebox("HIBA") return .f. endif if tb[1,2] = "O" bert = ite (tb[1,4]) jert = ite (tb[1,5]) pa = " ertek = " + bert + " " + tb[1,3] + " " + jert ? pa &pa return str(ertek) else return tb[1,3]

   QOG: algebrai műveletek megadása a gráf csomópontjaiban 4 Induló QOG meghatározása QOG: algebrai műveletek megadása a gráf csomópontjaiban oid, fiz oid=oid and fiz > 50000  oidoid, avg(fiz)    osztaly o dolgozo d

5 QOG optimalizálása A QOG optimalizálás alapelvei: - szelekciók felbontása elemi szelekciókra - szelekciók lefelé mozgatása - projekciók lefelé mozgatása - összetartozó elemek összevonása      A B A B

5 QOG átalakítási szabályok (1) R S S R (2) (R S) T  R (S T) (3) A (B(R))  A(R) , ha A B (4) F(G(R))  G(F(R)) (5) F(G(R))  GF(R)) (6) A(G(R))  G(A(R)) , ha G lefedi A-t (7) G(R S)  G(R) S , ha G csak A-t érinti (8) AB(R S)  A(R) B(S) (9) A(G(R))  A(G(AB(R))) , ha G a B-re vonatkozik

Minta feladat: SELECT A1,A2,B4,C3 FROM A,B,C WHERE A.A1 = B.B3 AND B.B4 = C.C3 AND A.A2 = X 1

2 3

4

A logikai terv után meg kell határozni a tényleges adatkezelő lépéseket QEP : Query Execution Plan QEP QOG nem kölcsönösen egyértelmű kapcsolat

Adatbázis kezelő műveletek optimalizálása A QEP csomópontjaiban már nevesített eljárásokat adunk meg, melyek mögött implementált rutinok állnak, melyek meghívhatók, végrehajthatók. A gráf élei irányítottak, s egy A csomópontból akkor mutat él a B csomópontba, ha a B művelet felhasználja az A művelet eredményét. Nested loop eredmény Table access ROWID Optimalizálás: - szabály alapú - költség alapú Index search Table scan A B

SELECT … INTERSECT SELECT .. Alternatívák: - módszerek - csoportosítás - optimalizálás

Oracle arany szabályai ROWID cluster join concatenated index column index sub-index table scan

Adatbázis kezelő műveletek optimalizálása Rekord elérési költségek ROWID alapú egy rekord c = 1 Clustering index egy kulcsérték c = R/P/I Clustering index érték tartomány c = R/P/2 normál index egy kulcsérték c = R/I normál index érték tartomány c = R/2 szekvencia egy kulcsérték c > R/P ROWID = rekord pozíciót adja meg file:page:record értéke változhat

JOIN algoritmusok (ekvi-join) for x in T1 { for y in T2 { if (x.id = y.id) {….} Nested loop (N1×N2)

Sorted Merge join algoritmus i1 = 1; i2 = 1 Do while i1 < eof1 and i2 < eof2 if (r1.id < r2.id) i1=i1+1 endif if (r1.id > r2.id) i2=i2+1 if (r1.id = r2.id) is1 = i1 do while r1.id = rs1.id is1=is1+1; is2 = i2 do while r2.id = rs2.id is2 = is2 + 1 enddo ... A két tábla rekordjait kulcs szerint rendezetten bejárja, s összehasonlítja az aktuális rekordokat C > = N1+N2 + (rendezés) 9 6 6 4 3 3 3 2 1 > 3 2

Hash join algoritmus A rekordok blokkokba rendelődnek, s összehasonlítás csak az azonos blokkban lévő rekordok között szükséges C = N1*N2/B végrehajtás fázisai: szétosztási illesztési h(x) = x mod 3 9 6 6 2 4 3 3 1 4 3 2 1 3 6 túlcsordulás 3 3 hash tábla 6 9

Adatbázis kezelő műveletek optimalizálása Oracle SQL utasítások ALTER SESSION SET OPTIMIZER_GOAL=mód; mód = RULE, FIRST_ROW, ALL_ROWS EXPLAIN PLAN FOR SQL-utasítás EXPLAIN PLAN FOR SELECT nev, rsz, tip FROM auto, ember WHERE auto.tul=ember.id AND auto.szin='KEK'; ID PARENTID OPERATION OPTIONS OBJECT 0 SELECT ... 1 0 NESTED LOOP 2 1 TABLE ACCESS FULL AUTO 3 1 TABLE ACCESS BY ROWID EMBER 4 3 INDEX UNIQ. SCAN SYS_CO..

Adatbázis kezelő műveletek optimalizálása A TPC tesztek (benchmark) Független, egységesített hatékonyság és funkció ellenőrző teszt a különböző jellegű adatbáziskezelő rendszerekhez első általánosabban elfogadott teszt: DebitCredit, 1985 követelmények: - egzakt művelet specifikáció - rugalmas teljesítmény mérési módszer        - a valós környezet teljesebb bevonása - ellenőrizhető eredmények TPC: Transaction Processing Performance Council non-profit szervezet a DBMS teljesítmény tesztek (benchmark) karbantartására és ellenőrzésére , kb 26 rendes tagja van

Adatbázis kezelő műveletek optimalizálása TPC-A teszt egy banki automata nyilvántartást szimulál on-line teszt, 1988 tranzakció elemei: számla módosítás, automata módosítás, fiók módosítás, naplózás teljesítés feltétele: a tranzakciók 90% 2 sec-on belül lefut x tps terhelése: x*100000 számla, x*10 automata, x*1 részleg mérik az egy teljesítmény egységre eső beruházási költséget is A1 A2

Adatbázis kezelő műveletek optimalizálása A TPC tesztek során ellenőrzik a DBMS működés helyességét is. ACID elvek betartása - abortálják a tranzakciókat - a rész és a nagyobb egységek összesítő adatait ellenőrzi - párhuzamosan módosítják ugyanazon számlát - rendszer összeomlások kipróbálása Kb. 330 TPC-A teszteredményt hitelesítettek A teljesítmények 10 tps és 3700 tps között helyezkednek el

Adatbázis kezelő műveletek optimalizálása TPC-C teszt egy rendelés nyilvántartást szimulál OLTP, on-line teszt, 1992 tranzakció elemei: rendelés, fizetés, készlet nyilvántartása komplex műveletek, teljesítmény egysége: tpm, öt különböző tranzakció fut párhuzamosan 1 tpm-hez 10 raktár, 30000 ügyfél, 100000 termék tartozik Évente kb. 50 új eredmény (10000-720000 tpm) Gép DBMS OS tpm $/tpm HP ProLiant SQLServer2000 Windows2000 709220 15 IBM xSeries SQLServer2000 Windows2000 688228 23 Fujitsu PP200 Symphoware Sun Solaris 455818 29 IBM xSeries IBM DB2 Windows2000 440816 19 IBM eServer Oracle 9i IBM AIX 403255 18

Adatbázis kezelő műveletek optimalizálása TPC-H teszt egy rendelés nyilvántartást szimulál OLAP, ad-hoc, on-line teszt, 1998 Több különböző elemzési tranzakció: piac kutatás, vevő menedzsment, profit elemzés,… komplex műveletek, teljesítmény egysége: Qph, 22 paraméteres lekérdezés, 8 kapcsolódó tábla minimum 100 GB adatmennyiség 1000 GB-os teszt Gép DBMS OS Qph $/qph HP9000 Oracle 9 HP UX 25805 213 SUN Fire Oracle 9i Sun Solaris 18802 227 Teradata Teradata MP-RAS 18542 638

Adatbázis kezelő műveletek optimalizálása TPC-W teszt egy elektronikus bolt vásárlói felületét szimulálja e-commerce, ad-hoc, WEB-es on-line teszt, 1999 Három alap tranzakció: vásárlás, rendelés, kínálat böngészés a WEB-en komplex műveletek, teljesítmény egysége: WIPS 100000 termékre Gép DBMS OS Webserver WIPS $/wips Unisys ES700 SQLServer2000 Windows2000 MS IS 10439 106 Dell PowerEdge SQLServer2000 Windows2000 MS IS 9758 35 IBM xSeries 430 IBM DB2 IBM ptx MS IS 7554 137 DBMS WEB server API WEB böngésző