Adatbázisok-I. előadás dr. Hajas Csilla (ELTE IK)
|
|
- András Gáspár
- 5 évvel ezelőtt
- Látták:
Átírás
1 Adatbázisok-I. előadás dr. Hajas Csilla (ELTE IK) 8.ea: Datalog 9.ea: Rekurzió Az előadások Ullman-Widom: Adatbázisrendszerek Alapvetés alapján készültek, forrás: Adatbázisok-1 (Hajas Csilla, ELTE IK) 8-9.előadás: Datalog és Rekurzió 1
2 8.-9.előadások témakörei Tankönyv 5.3. Logika a relációkhoz: Datalog 5.4. A relációs algebra és nem-rekurzív biztonságos Datalog kifejező erejének összehasonlítása Az Eljut-feladat (monoton, lineáris rekurzió) megoldása (a.) a Datalogban (b.) az SQL-ben WITH RECURSION utasítással Kiegészítések a rekurzióhoz, az Eljut feladat megoldása: (c.) Eljut feladat PL/SQL-ben (illetve SQL/PSM-ben) (d.) Oracle megoldások/2: CONNECT BY PRIOR (e.) Oracle megoldások/3: WITH alkérdés faktorizáció Adatbázisok-1 (Hajas Csilla, ELTE IK) 8-9.előadás: Datalog és Rekurzió 2
3 Következik Relációs algebra korlátai: bizonyos típusú lekérdezéseket nem tudunk relációs algebrával kifejezni Nézzünk meg olyan logikai felépítést, amivel az ilyen rekurzív jellegű lekérdezések könnyen megoldhatók. Ez a nyelv: a Datalog Adatbázisok-1 (Hajas Csilla, ELTE IK) 8-9.előadás: Datalog és Rekurzió 3
4 Milyen fontos rekurzív feladatok vannak? I. Hierarchiák bejárása Leszármazottak-ősök ParentOf(parent,child) Find all of Mary s ancestors Vállalati hierarchia felettes-beosztott Employee(ID,salary) Manager(mID,eID) Project(name,mgrID) Find total salary cost of project X Alkatrész struktúra (mely alkatrésznek mely alkatrész része) Adatbázisok-1 (Hajas Csilla, ELTE IK) 8-9.előadás: Datalog és Rekurzió 4
5 Milyen fontos rekurzív feladatok vannak? II. Gráf jellegű bejárások Repülőgép járatok, eljut-feladat Flight(orig,dest,airline,cost) Find cheapest way to fly from A to B Közösségi hálók Ki-kinek az ismerőse, Twitterben ki-kit követ Kiegészítés a gráf adatbázisokról Gráfok könnyen megadhatók relációs táblával, a gráf lekérdezések egyre gyakoribb feladatok, ezek relációs megoldása hatékonysági kérdés. Vannak kimondottan gráf-adatbázisok. Adatbázisok-1 (Hajas Csilla, ELTE IK) 8-9.előadás: Datalog és Rekurzió 5
6 Bevezető motiváció: Rekurzív SQL Alkérdés-faktorizáció WITH utasítással. SQL-99 szabványban szerepel. Az Oracle 11.2 verziótól kezdve a WITH rekurzív lekérdezésekre is használható (kiegészítésekkel). A MS SQL Server 2005-ben implementálták a rekurziót is. Rögzítsük egy irányított gráf éleit, és kérdezzük le, honnan hová vezet út! Minden él út is egyben, és ha van él x-ből z-be, és van út z-ből y-ba, akkor van út x-ből y-ba is. Adatbázisok-1 (Hajas Csilla, ELTE IK) 8-9.előadás: Datalog és Rekurzió 6
7 Bevezető motiváció: Rekurzív SQL create table el (honnan INT, hova INT); insert into el values (1,2); insert into el values (2,3), insert into el values (1,4); 1 Oracle: Alkérdés faktorizáció WITH [RECURSION] ut AS (select * from el UNION ALL -- Oracle-ben select el.honnan, ut.hova from el, ut where el.hova=ut.honnan) select * from ut; honnan el: honnan ut: hova hova Adatbázisok-1 (Hajas Csilla, ELTE IK) 8-9.előadás: Datalog és Rekurzió 7
8 Bevezető motiváció: Rekurzív SQL A WITH ben definiált ut tábla átmeneti munkatábla, az utasítás végén szereplő lekérdezés futása után már nem lehet rá hivatkozni. A lekérdezést részekre lehet szétbontani (alkérdés faktorizáció), rekurzív lekérdezések megadhatóak. Az él, út példában két szabályt adtunk meg: select * from el Első szabály: ut(x,y) el(x,y) select el.honnan, ut.hova from el, ut where el.hova=ut.honnan Második szabály: ut(x,y) el(x,z) and ut(z,y) Adatbázisok-1 (Hajas Csilla, ELTE IK) 8-9.előadás: Datalog és Rekurzió 8
9 Kérdések: Bevezetés: Rekurzív SQL Hogyan változik az SQL lekérdező ereje ezzel a lehetőséggel? Hogyan értékelődnek ki az ilyen lekérdezések? Hogyan lehet optimalizálni az ilyen lekérdezéseket? Logika a relációkhoz: Olyan lekérdezőnyelveket definiálunk, amelyekben ilyen szabályok adhatók meg. Az ideiglenes táblákat IDB (intenzionális) tábláknak, a többi táblát EDB (extenzionális) táblának fogjuk nevezni. Az EDB táblákat tároljuk, az IDB táblákat az EDB és IDB táblák alapján lekérdezésekkel definiáljuk. Adatbázisok-1 (Hajas Csilla, ELTE IK) 8-9.előadás: Datalog és Rekurzió 9
10 Logika, mint lekérdező nyelv Datalog: logikai, szabály-alapú nyelv szabály: IF feltétel THEN eredmény, ahol a feltétel relációkkal legyen megadható és az eredmény pedig az output tábla sorait eredményezze A példa a Sörivók adatbázison alapszik Látogat(név, söröző), Szeret(név, sör), Felszolgál(söröző, sör, ár). Adjunk meg egy olyan szabályt, amely lekérdezi a boldog sörivókat, akik olyan sörözőt látogatnak, ahol felszolgálnak olyan sört, amelyet szeretnek. Adatbázisok-1 (Hajas Csilla, ELTE IK) 8-9.előadás: Datalog és Rekurzió 10
11 Datalog szabályok felépítése Happy(d) Frequents(d,bar) AND Likes(d,beer) AND Sells(bar,beer,p) Head = consequent, a single subgoal Read this symbol if Body = antecedent = AND of subgoals. Adatbázisok-1 (Hajas Csilla, ELTE IK) 8-9.előadás: Datalog és Rekurzió 11
12 Atomi formulák-1: Relációs formulák An atom is a predicate, or relation name with variables or constants as arguments. The head is an atom; the body is the AND of one or more atoms. Convention: Predicates begin with a capital, variables begin with lower-case. Adatbázisok-1 (Hajas Csilla, ELTE IK) 8-9.előadás: Datalog és Rekurzió 12
13 Példa relációs atomi formulára (1) Sells(bar, beer, p) The predicate = name of a relation Arguments are variables (or constants). (2) Proba(x, x, y, 5, alma ) Adatbázisok-1 (Hajas Csilla, ELTE IK) 8-9.előadás: Datalog és Rekurzió 13
14 Example: Interpretation Happy(d) Frequents(d,bar) AND Likes(d,beer) AND Sells(bar,beer,p) Distinguished variable Nondistinguished variables Interpretation: drinker d is happy if there exist a bar, a beer, and a price p such that d frequents the bar, likes the beer, and the bar sells the beer at price p. Adatbázisok-1 (Hajas Csilla, ELTE IK) 8-9.előadás: Datalog és Rekurzió 14
15 Datalog szabályok kiértékelése ---1 Approach 1: consider all combinations of values of the variables. If all subgoals are true, then evaluate the head. The resulting head is a tuple in the result. Adatbázisok-1 (Hajas Csilla, ELTE IK) 8-9.előadás: Datalog és Rekurzió 15
16 Example: Rule Evaluation Happy(d) Frequents(d,bar) AND Likes(d,beer) AND Sells(bar,beer,p) FOR (each d, bar, beer, p) IF (Frequents(d,bar), Likes(d,beer), and Sells(bar,beer,p) are all true) add Happy(d) to the result Note: set semantics so add only once. Set semantics vice versa bag semantics Adatbázisok-1 (Hajas Csilla, ELTE IK) 8-9.előadás: Datalog és Rekurzió 16
17 Datalog szabályok kiértékelése ---2 Approach 2: For each subgoal, consider all tuples that make the subgoal true. If a selection of tuples define a single value for each variable, then add the head to the result. Happy(d) Frequents(d,bar) AND Likes(d,beer) AND Sells(bar,beer,p) FOR (each f in Frequents, i in Likes, and s in Sells) IF (f[1]=i[1] and f[2]=s[1] and i[2]=s[2]) add Happy(f[1]) to the result Adatbázisok-1 (Hajas Csilla, ELTE IK) 8-9.előadás: Datalog és Rekurzió 17
18 Atomi formulák-2: Aritmetikai formula In addition to relations as predicates, a predicate for a subgoal of the body can be an arithmetic comparison. We write arithmetic subgoals in the usual way, e.g., x < y. Adatbázisok-1 (Hajas Csilla, ELTE IK) 8-9.előadás: Datalog és Rekurzió 18
19 Példa: Aritmetikai részcélok A beer is cheap if there are at least two bars that sell it for under $2. Cheap(beer) Sells(bar1,beer,p1) AND Sells(bar2,beer,p2) AND p1 < 2.00 AND p2 < 2.00 AND bar1 <> bar2 Feladatok: Írjuk át SQL SELECT utasításra a fenti szabályt! Adatbázisok-1 (Hajas Csilla, ELTE IK) 8-9.előadás: Datalog és Rekurzió 19
20 Negált részcélok NOT in front of a subgoal negates its meaning. Example: Think of Arc(a,b) as arcs in a graph. S(x,y) says the graph is not transitive from x to y ; i.e., there is a path of length 2 from x to y, but no arc from x to y. S(x,y) Arc(x,z) AND Arc(z,y) AND NOT Arc(x,y) Adatbázisok-1 (Hajas Csilla, ELTE IK) 8-9.előadás: Datalog és Rekurzió 20
21 Biztonságossági elvárás A szabályok kiértékelhetőek legyenek, ehhez: A szabályban szereplő minden változónak elő kell fordulnia a törzsben nem-negált relációs atomban Adatbázisok-1 (Hajas Csilla, ELTE IK) 8-9.előadás: Datalog és Rekurzió 21
22 Biztonságos szabályok A rule is safe if: 1. Each distinguished variable, 2. Each variable in an arithmetic subgoal, and 3. Each variable in a negated subgoal, also appears in a nonnegated, relational subgoal, amivel az x korlátozott: pred(x, y, ) argumentuma (értéke a táblából) vagy x=c (konstans) vagy x=y (ahol y korlátozott) Safe rules prevent infinite results. Adatbázisok-1 (Hajas Csilla, ELTE IK) 8-9.előadás: Datalog és Rekurzió 22
23 Példa: Nem biztonságos szabályokra Each of the following is unsafe and not allowed: 1. S(x) R(y) 2. S(x) R(y) AND x < y 3. S(x) R(y) AND NOT R(x) In each case, an infinity of x s can satisfy the rule, even if R is a finite relation. Adatbázisok-1 (Hajas Csilla, ELTE IK) 8-9.előadás: Datalog és Rekurzió 23
24 Datalog programok Datalog program = collection of rules. In a program, predicates can be either 1. EDB relációk = Extensional Database = stored table (csak a törzsben szereplő relációk) 2. IDB relációk = Intensional Database = relation defined by rules (szerepel fej-ben) Never both! No EDB in heads. Adatbázisok-1 (Hajas Csilla, ELTE IK) 8-9.előadás: Datalog és Rekurzió 24
25 Datalog programok kiértékelése As long as there is no recursion, we can pick an order to evaluate the IDB predicates, so that all the predicates in the body of its rules have already been evaluated. If an IDB predicate has more than one rule, each rule contributes tuples to its relation. Adatbázisok-1 (Hajas Csilla, ELTE IK) 8-9.előadás: Datalog és Rekurzió 25
26 Példa: Datalog program Using EDB Sells(bar, beer, price) and Beers(name, manf), find the manufacturers of beers Joe doesn t sell. JoeSells(b) Sells( Joe s Bar, b, p) Answer(m) Beers(b,m) AND NOT JoeSells(b) Adatbázisok-1 (Hajas Csilla, ELTE IK) 8-9.előadás: Datalog és Rekurzió 26
27 Példa: Kiértékelése Step 1: Examine all Sells tuples with first component Joe s Bar. Add the second component to JoeSells. Step 2: Examine all Beers tuples (b,m). If b is not in JoeSells, add m to Answer. Adatbázisok-1 (Hajas Csilla, ELTE IK) 8-9.előadás: Datalog és Rekurzió 27
28 Datalog kifejező ereje Without recursion, Datalog can express all and only the queries of core relational algebra. The same as SQL select-from-where, without aggregation and grouping. But with recursion, Datalog can express more than these languages. Adatbázisok-1 (Hajas Csilla, ELTE IK) 8-9.előadás: Datalog és Rekurzió 28
29 Relációs algebrai kifejezések átírása Mi a leggyakrabban előforduló típus, amiből építkezek? Lista ( Felt (R S ) Ezt a komponenst támogatja legerősebben az SQL is: SELECT lista FROM táblák összekapcsolása WHERE felt Ez felel meg egy Datalog szabálynak. Halmazműveletek: kezdjük ezzel, hogyan lehet a metszetet és különbséget Datalog szabállyal, és az egyesítést Datalog programmal kifejezni. Adatbázisok-1 (Hajas Csilla, ELTE IK) 8-9.előadás: Datalog és Rekurzió 29
30 Relációs algebra és Datalog ---1 Rel.algebrai műveletek hogyan néznek ki Datalogban? Halmazműveletek: T.f.h R(x 1,...,x n ), S(x 1,...,x n ) predikátumokhoz tartozó reláció R(A 1,...,A n ), S(A 1,...,A n ) R S metszetnek megfelelő szabály: Válasz(x 1,...,x n ) R(x 1,...,x n ) AND S(x 1,...,x n ) Kik szeretik az almát is és a körtét is logikai megoldását írjuk át SQL SELECT utasításra! Válasz(N) Szeret(N, alma ) AND Szeret(N, körte ) Adatbázisok-1 (Hajas Csilla, ELTE IK) 8-9.előadás: Datalog és Rekurzió 30
31 Relációs algebra és Datalog ---1 Rel.algebrai műveletek hogyan néznek ki Datalogban? Halmazműveletek: T.f.h R(x 1,...,x n ), S(x 1,...,x n ) predikátumokhoz tartozó reláció R(A 1,...,A n ), S(A 1,...,A n ) R S metszetnek megfelelő szabály: Válasz(x 1,...,x n ) R(x 1,...,x n ) AND S(x 1,...,x n ) R-S különbségnek megfelelő szabály: Válasz(x 1,...,x n ) R(x 1,...,x n ) AND NOT S(x 1,...,x n ) R S unió műveletet egyetlen szabállyal nem tudom felírni, mert a törzsben csak AND lehet, OR nem. Ehhez több szabályból álló Datalog program kell: Válasz(x 1,...,x n ) R(x 1,...,x n ) Válasz(x 1,...,x n ) S(x 1,...,x n ) Adatbázisok-1 (Hajas Csilla, ELTE IK) 8-9.előadás: Datalog és Rekurzió 31
32 Relációs algebra és Datalog ---2 Kiválasztás: x i xj (R) kifejezésnek megfelelő szabály : Válasz(x 1,...,x n ) R(x 1,...,x n ) AND x i x j x i c(e1) kifejezésnek megfelelő szabály: Válasz(x 1,...,x n ) R(x 1,...,x n ) AND x i c Vetítés: A (R) kifejezésnek megfelelő szabály: i1,...,aik Válasz(x,...,x i 1 ik ) R(x 1,...,x n ) Megjegyzés: név nélküli anonymus változók, amelyek csak egyszer szerepelnek és mindegy a nevük azt aláhúzás helyettesítheti. Például: HosszúFilm(c,é) Film(c,é,h,_,_,_) AND h 100 Adatbázisok-1 (Hajas Csilla, ELTE IK) 8-9.előadás: Datalog és Rekurzió 32
33 Relációs algebra és Datalog ---3 Természetes összekapcsolás: Tegyük fel, hogy R(A 1,...,A n, C 1,, C k ) és S(B 1,...,B m, C 1,, C k ) R S kifejezésnek megfelelő szabály: Válasz(x 1,...,x n,y 1,...,y m, z 1,, z k ) R(x 1,...,x n, z 1,, z k ) AND S(y 1,...,y m, z 1,, z k ) A felírt szabályok biztonságosak. Minden Q relációs algebrai kifejezéshez van nem rekurzív, biztonságos, negációt is tartalmazó Datalog program, amelyben egy kitüntetett IDB predikátumhoz tartozó kifejezés ekvivalens a Q lekérdezéssel. A nem rekurzív, biztonságos, negációt is tartalmazó Datalog kifejezőerő tekintetében EKVIVALENS a relációs algebrával. Adatbázisok-1 (Hajas Csilla, ELTE IK) 8-9.előadás: Datalog és Rekurzió 33
34 Példa Kik szeretik az almát is és a körtét is logikai megoldását írjuk át SQL SELECT utasításra! Válasz(N) Szeret(N, alma ) AND Szeret(N, körte ) Adatbázisok-1 (Hajas Csilla, ELTE IK) 8-9.előadás: Datalog és Rekurzió 34
35 Az Eljut-feladat Tankönyv fejezet példája (az ELJUT feladat) Jaratok(legitarsasag, honnan, hova, koltseg, indulas, erkezes) táblában repülőjáratok adatait tároljuk. A járatok táblát létrehozó script: Mely (x,y) párokra lehet eljutni x városból y városba? Ezt egy relációs algebrai kifejezésként nem tudjuk megadni zárt alakban, klasszikus SQL SELECT utasítással sem tudjuk kifejezni, csak azt tudjuk, hogy átszállás nélkül, egy, két, stb átszállással: Adatbázisok-1 (Hajas Csilla, ELTE IK) 8-9.előadás: Datalog és Rekurzió 35
36 Az Eljut-feladatnak nincs algebrai megoldása select distinct honnan, hova from jaratok union select j1.honnan, j2.hova from jaratok j1, jaratok j2 where j1.hova=j2.honnan union select j1.honnan, j3.hova from jaratok j1, jaratok j2, jaratok j3 where j1.hova=j2.honnan and j2.hova=j3.honnan --- union stb... Ezt így nem lehet felírni Adatbázisok-1 (Hajas Csilla, ELTE IK) 8-9.előadás: Datalog és Rekurzió 36
37 Az Eljut-feladat Datalogban Tankönyv fejezet példája (az ELJUT feladat) Jaratok(legitarsasag, honnan, hova, koltseg, indulas, erkezes) EDB-táblában repülőjáratok adatait tároljuk. Mely (x,y) párokra lehet eljutni x városból y városba? Datalogban felírva (lineáris rekurzió) Eljut(x, y) <- Jaratok(l, x, y, k, i, e) Eljut(x, y) <- Eljut(x, z) AND Jaratok(l, z, y, k, i, e) Vagy másképp felírva Datalogban (mi a különbség?) Eljut(x, y) <- Jaratok(_, x, y, _, _, _) --- anonimus változók Eljut(x, y) <- Eljut(x, z) AND Eljut(z, y) --- nem lineáris rek. Adatbázisok-1 (Hajas Csilla, ELTE IK) 8-9.előadás: Datalog és Rekurzió 37
38 Az Eljut feladat SQL-99 szabványban Datalog LINEÁRIS, MONOTON rekurzió átírható: Eljut(x, y) <- Jaratok(l, x, y, k, i, e) Eljut(x, y) <- Eljut(x, z) AND Jaratok(l, z, y, k, i, e) Hova, mely városokba tudunk eljutni Budapestről? WITH RECURSIVE Eljut AS (SELECT honnan, hova FROM Jaratok UNION SELECT Eljut.honnan, Jaratok.hova FROM Eljut, Jaratok WHERE Eljut.hova = Jaratok.honnan) SELECT hova FROM Eljut WHERE honnan= Bp ; Adatbázisok-1 (Hajas Csilla, ELTE IK) 8-9.előadás: Datalog és Rekurzió 38
39 SQL-99 szabvány: Rekurzív lekérdezés A WITH utasítás több ideiglenes relációra vonatkozó definíciója: WITH [RECURSIVE] R 1 AS <R 1 definíciója> [RECURSIVE] R 2 AS <R 2 definíciója>... [RECURSIVE] R n AS <R n definíciója> < R 1,R 2,...,R n relációkat tartalmazó lekérdezés> Adatbázisok-1 (Hajas Csilla, ELTE IK) 8-9.előadás: Datalog és Rekurzió 39
40 Másik példa: Rekurzív Datalog A testvérek (féltestvérek) gyerekei első unokatestvérek, az első unokatestvérek gyerekei másod-unokatestvérek, és így tovább. Hívjuk egyszerűen unokatestvéreknek, akik valamilyen szinten unokatestvérek. A rokonok azok, akik közös ősnek leszármazottjai. Milyen Datalog program írja ezt le? testvér(x,y) gyerek(x,z),gyerek(y,z),x y unokatestvér(x,y) gyerek(x,z),gyerek(y,v),testvér(z,v) unokatestvér(x,y) gyerek(x,z),gyerek(y,v),unokatestvér(z,v) rokon(x,y) testvér(x,y) rokon(x,y) rokon(x,z),gyerek(y,z) rokon(x,y) rokon(z,y),gyerek(x,z) r u Függőségi gráf Adatbázisok-1 (Hajas Csilla, ELTE IK) 8-9.előadás: Datalog és Rekurzió 40 t g
41 Másik példa: Rekurzív Datalog Mik a Datalog egyenletek? testvér(x,y) unokatestvér(x,y) unokatestvér(x,y) rokon(x,y) rokon(x,y) rokon(x,y) gyerek(x,z),gyerek(y,z),x y gyerek(x,z),gyerek(y,v),testvér(z,v) gyerek(x,z),gyerek(y,v),unokatestvér(z,v) testvér(x,y) rokon(x,z),gyerek(y,z) rokon(z,y),gyerek(x,z) A megfelelő relációk legyenek T,U,R,G a testvér, unokatestvér, rokon, illetve gyerek esetén. T(x,y)= x,y ( x y (G(x,z) >< G(y,z))) U(x,y)= x,y (G(x,z) >< G(y,v) >< T(z,v)) x,y (G(x,z) >< G(y,v) >< U(z,v)) R(x,y)=T(x,y) x,y (R(x,z) >< G(y,z)) x,y (R(z,y) >< G(x,z)) Adatbázisok-1 (Hajas Csilla, ELTE IK) 8-9.előadás: Datalog és Rekurzió 41
42 Másik példa: Rekurzív Datalog Milyen SQL utasítás írja le az IDB táblákat? T(x,y)= x,y ( x y (G(x,z) >< G(y,z))) U(x,y)= x,y (G(x,z) >< G(y,v) >< T(z,v)) x,y (G(x,z) >< G(y,v) >< U(z,v)) R(x,y)=T(x,y) x,y (R(x,z) >< G(y,z)) x,y (R(z,y) >< G(x,z)) Tegyük fel, hogy a séma: G(u,w). with T as (select G1.u x, G2.w y from G G1,G G2 where G1.w=G2.u and G1.u<>G2.u), U as (select G1.u x, G2.u y from G G1, G G2, T where T.x=G1.w and T.y=G2.u) union all (select G1.u x, G2.u y from G G1, G G2, U where U.x=G1.w and U.y=G2.u), R as (select * from T) union all (select R.x x,g.u y from R,G where R.y=G.w) union all (select G.u x, R.y y from R,G where R.x=G.w) (select T.x, T.y, 'T' from T union all select U.x, U.y, 'U' from U union all select R.x, R.y, 'R' from R); Adatbázisok-1 (Hajas Csilla, ELTE IK) 8-9.előadás: Datalog és Rekurzió 42
43 Rekurzív lekérdezések Datalog rekurzió segít megérteni az SQL-99 szabványban bevezetett rekurzív lekérdezések WITH RECURSIVE záradékát. A BSc-n csak MONOTON rekurziót vesszük, vagyis nem használjuk nem-monoton különbség műveletet, nincs csoportosítás-aggregálás (ugyanis az olyan lekérdezések, amelyek nem-monotonok, megengedik a negációt és aggregálást az olyan különös hatással van a rekurzióra, ezt csak MSc kurzusokon vesszük). Gyakorlaton a rekurzív Eljut-feladatnak az Oracle CONNECT BY záradékkal való gépes-megoldásait is megnézzük (ezt csak a gyakorlaton próbáljuk ki). Adatbázisok-1 (Hajas Csilla, ELTE IK) 8-9.előadás: Datalog és Rekurzió 43
44 Eljut feladat PL/SQL-ben ---1 Rek1.feladat: Mely (x, y) várospárokra lehet egy vagy több átszállással eljutni x városból y városba? Ehhez hozzuk létre eljut(honnan,hova) táblát, DROP TABLE eljut; CREATE TABLE eljut( honnan VARCHAR2(10), hova VARCHAR2(10)); Írjunk egy olyan PL/SQL programot, ami feltölti az ELJUT táblát a sorait a járatok tábla alapján (ehhez ciklust szervezni, az insert több sor felvitele 2.alakja alkérdéssel járatok és eljut táblák alapján) Adatbázisok-1 (Hajas Csilla, ELTE IK) 8-9.előadás: Datalog és Rekurzió 44
45 Eljut feladat PL/SQL-ben ---2 Az ELJUT feladat megoldása Oracle PL/SQL-ben A ciklus során ellenőrizni kell, hogy addig hajtsuk végre a ciklust, amíg növekszik az eredmény (Számláló) DECLARE RegiSzamlalo Integer; UjSzamlalo Integer; Deklarációs rész után BEGIN END; között az utasítások, először az eljut táblának kezdeti értéket adunk (a megvalósításnál az INSERT-nél figyelni, hogy ne legyenek ismétlődő sorok: select distinct) delete from eljut; insert into eljut (SELECT distinct honnan, hova FROM jaratok); Adatbázisok-1 (Hajas Csilla, ELTE IK) 8-9.előadás: Datalog és Rekurzió 45
46 Eljut feladat PL/SQL-ben ---3 Szamlalo változóknak adunk kiindulási értéket: RegiSzamlalo := 0; select count(*) into UjSzamlalo from eljut; A ciklust addig kell végrehajtani, amíg növekszik az eredmény (Szamlalo) duplikátumokra figyelni! LOOP insert into eljut (lásd a köv.oldalon ) select count(*) into UjSzamlalo from eljut; EXIT WHEN UjSzamlalo = RegiSzamlalo; RegiSzamlalo := UjSzamlalo; END LOOP; commit; Adatbázisok-1 (Hajas Csilla, ELTE IK) 8-9.előadás: Datalog és Rekurzió 46
47 Eljut feladat PL/SQL-ben ---4 Az eljut tábla növelése a ciklusban, figyelni kell a duplikátumokra, csak olyan várospárokat vegyünk az eredményhez, ami még nem volt! insert into eljut (select distinct eljut.honnan, jaratok.hova from eljut, jaratok --- *from (lineáris rekurzió) where eljut.hova = jaratok.honnan and (eljut.honnan,jaratok.hova) NOT IN (select * from eljut)); Megjegyzés: PSM-ben a nem-lineáris rekurzió is megengedett: from eljut e1, eljut e2 ---*from-ban Adatbázisok-1 (Hajas Csilla, ELTE IK) 8-9.előadás: Datalog és Rekurzió 47
48 Eljut feladat PL/SQL-ben ---5 Rek2.feladat: Mely (x,y) város párokra hány darab átszállással és milyen költségekkel lehetséges egy vagy több átszállással eljutni x városból y városba? Ehhez készítsünk Eljut2(honnan, hova, atszallas, koltseg) táblát. Írjunk egy olyan PL/SQL programot, ami feltölti az ELJUT táblát. Rek3.feladat: Tegyük fel, hogy nemcsak az érdekel, hogy el tudunk-e jutni az egyik városból a másikba, hanem az is, hogy utazásunk során az átszállások is ésszerűek legyenek, ami azt jelenti, hogy ha több járattal utazunk, akkor nézni kell átszálláskor az érkező járatnak legalább egy órával a rákövetkező indulás előtt meg kell érkeznie, és 6 óránál ne kelljen többet várnia. Adatbázisok-1 (Hajas Csilla, ELTE IK) 8-9.előadás: Datalog és Rekurzió 48
49 Oracle megoldások: with utasítással Az Oracle SQL a WITH RECURSIVE utasítást (UNION) nem támogatja, ott másképpen oldották meg WITH utasítással (Oracle 11gR2 verziótól használható) WITH eljut (honnan, hova) as (select honnan, hova from jaratok UNION ALL select jaratok.honnan, eljut.hova from jaratok, eljut where jaratok.hova=eljut.honnan ) SEARCH DEPTH FIRST BY honnan SET SORTING CYCLE honnan SET is_cycle TO 1 DEFAULT 0 select distinct honnan, hova from eljut order by honnan; Adatbázisok-1 (Hajas Csilla, ELTE IK) 8-9.előadás: Datalog és Rekurzió 49
50 Oracle megoldások: connect by SELECT DISTINCT hova FROM jaratok WHERE HOVA <> 'DAL' START WITH honnan = 'DAL' CONNECT BY NOCYCLE PRIOR hova = honnan; SELECT LPAD(' ', 4*level) honnan, hova, level-1 Atszallasok, sys_connect_by_path(honnan '->' hova, '/'), connect_by_isleaf, connect_by_iscycle FROM jaratok START WITH honnan = 'SF' CONNECT BY NOCYCLE PRIOR hova = honnan; Adatbázisok-1 (Hajas Csilla, ELTE IK) 8-9.előadás: Datalog és Rekurzió 50
51 Oracle megoldások 2.7.lecke Hierarchical Retrieval After completing this lesson, you should be able to do the following: Interpret the concept of a hierarchical query Create a tree-structured report Format hierarchical data Exclude branches from the tree structure Adatbázisok-1 (Hajas Csilla, ELTE IK) 8-9.előadás: Datalog és Rekurzió 51
52 Sample Data from the EMPLOYEES Table Adatbázisok-1 (Hajas Csilla, ELTE IK) 8-9.előadás: Datalog és Rekurzió 52
53 (Oracle) Natural Tree Structure MANAGER_ID = 100 (Child) EMPLOYEE_ID = 100 (Parent) King Kochhar De Haan Mourgos Zlotkey Hartstein Whalen Higgins Hunold Rajs Davies Matos Vargas Gietz Ernst Lorentz Abel Taylor Grant Fay Adatbázisok-1 (Hajas Csilla, ELTE IK) 8-9.előadás: Datalog és Rekurzió 53
54 (Oracle) Hierarchical Queries SELECT [LEVEL], column, expr... FROM table [WHERE condition(s)] [START WITH condition(s)] [CONNECT BY PRIOR condition(s)] ; WHERE condition: expr comparison_operator expr Adatbázisok-1 (Hajas Csilla, ELTE IK) 8-9.előadás: Datalog és Rekurzió 54
55 (Oracle) Walking the Tree Starting Point Specifies the condition that must be met Accepts any valid condition START WITH column1 = value Using the EMPLOYEES table, start with the employee whose last name is Kochhar....START WITH last_name = 'Kochhar' Adatbázisok-1 (Hajas Csilla, ELTE IK) 8-9.előadás: Datalog és Rekurzió 55
56 (Oracle) Walking the Tree CONNECT BY PRIOR column1 = column2 Walk from the top down, using the EMPLOYEES table.... CONNECT BY PRIOR employee_id = manager_id Direction Top down Bottom up Column1 = Parent Key Column2 = Child Key Column1 = Child Key Column2 = Parent Key Adatbázisok-1 (Hajas Csilla, ELTE IK) 8-9.előadás: Datalog és Rekurzió 56
57 (Oracle) Walking the Tree: From the Bottom Up SELECT employee_id, last_name, job_id, manager_id FROM employees START WITH employee_id = 101 CONNECT BY PRIOR manager_id = employee_id ; Adatbázisok-1 (Hajas Csilla, ELTE IK) 8-9.előadás: Datalog és Rekurzió 57
58 (Oracle) Walking the Tree: From the Top Down SELECT last_name ' reports to ' PRIOR last_name "Walk Top Down" FROM employees START WITH last_name = 'King' CONNECT BY PRIOR employee_id = manager_id ; Adatbázisok-1 (Hajas Csilla, ELTE IK) 8-9.előadás: Datalog és Rekurzió 58
59 (Oracle) Ranking Rows with the LEVEL Pseudocolumn Level 1 root/parent King Kochhar De Haan Mourgos Zlotkey Hartstein Whalen Higgins Hunold Rajs Davies Matos Vargas Level 3 parent/child /leaf Fay Gietz Ernst Lorentz Abel Taylor Grant Level 4 leaf Adatbázisok-1 (Hajas Csilla, ELTE IK) 8-9.előadás: Datalog és Rekurzió 59
60 (Oracle) Formatting Hierarchical Reports Using LEVEL and LPAD Create a report displaying company management levels, beginning with the highest level and indenting each of the following levels. COLUMN org_chart FORMAT A12 SELECT LPAD(last_name, LENGTH(last_name)+(LEVEL*2)-2,'_') AS org_chart FROM employees START WITH last_name='king' CONNECT BY PRIOR employee_id=manager_id Adatbázisok-1 (Hajas Csilla, ELTE IK) 8-9.előadás: Datalog és Rekurzió 60
61 (Oracle) Pruning Branches Use the WHERE clause to eliminate a node. Use the CONNECT BY clause to eliminate a branch. WHERE last_name!= 'Higgins' CONNECT BY PRIOR employee_id = manager_id AND last_name!= 'Higgins' Kochhar Kochhar Whalen Higgins Whalen Higgins Gietz Gietz Adatbázisok-1 (Hajas Csilla, ELTE IK) 8-9.előadás: Datalog és Rekurzió 61
62 Kérdés/Válasz Köszönöm a figyelmet! Kérdés/Válasz? Vizsgára ismerni/ismertetni kell az Eljut feladatot és az SQL-99 szabvány WITH RECURSION utasítását, továbbá feladatok lesznek Datalog program átírására SELECT-re WITH RECURSION záradékkal (SQL-99) Házi feladat: Gyakorlás Oracle Példatár 3.fejezete tartalmaz hierarchikus lekérdezésekre feladatokat: Oracle gépes-megoldások nem lesznek a vizsgán, csak a gyakorlaton próbáljuk ki: az Eljut-feladathoz a Jaratok táblát létrehozó script: create_jaratok_tabla.txt Adatbázisok-1 (Hajas Csilla, ELTE IK) 8-9.előadás: Datalog és Rekurzió 62
8.Előadás Adatbázisok-I. dr. Hajas Csilla (ELTE IK)
8.Előadás Adatbázisok-I. dr. Hajas Csilla (ELTE IK) http://sila.hajas.elte.hu/ Tankönyv 10.2. Az Eljut-feladat (monoton, lineáris rekurzió) megoldása (a.) az SQL-ben WITH RECURSION utasítással Kiegészítések
Részletesebben7.előadáshoz kieg.: Adatbázisok-I. dr. Hajas Csilla (ELTE IK)
7.előadáshoz kieg.: Adatbázisok-I. dr. Hajas Csilla (ELTE IK) http://sila.hajas.elte.hu/ Logika a relációs lekérdezésekhez: Datalog és Rekurzió (Eljut feladat) Tankönyv: 5.1.-5.2. Logika a relációkhoz:
RészletesebbenDatalog: logikai alapú lekérdezı nyelv
Datalog: logikai alapú lekérdezı nyelv Tankönyv: Ullman-Widom: Adatbázisrendszerek Alapvetés Második, átdolgozott kiadás, Panem, 2009 5.3. Logika a relációkhoz --atomi formulák: relációs formulák és aritmetikai
RészletesebbenLogikai lekérdezı nyelv: Datalog Rekurzió a Datalogban és az SQL-ben
Logikai lekérdezı nyelv: Datalog Rekurzió a Datalogban és az SQL-ben Tankönyv: Ullman-Widom: Adatbázisrendszerek Alapvetés Második, átdolgozott kiadás, Panem, 2009 5.3. Logika a relációkhoz: Datalog 5.4.
RészletesebbenDatalog: logikai alapú lekérdezı nyelv
Datalog: logikai alapú lekérdezı nyelv Tankönyv: Ullman-Widom: Adatbázisrendszerek Alapvetés Második, átdolgozott kiadás, Panem, 2009 5.4. Relációs algebra és nem-rekurzív biztonságos Datalog kifejező
RészletesebbenDatabases 1. Relációs algebra és nemrekurzív Datalog
Databases 1 Relációs algebra és nemrekurzív Datalog Emlékeztetı: Biztonságos szabályok A rule is safe if: 1. Each distinguished variable, 2. Each variable in an arithmetic subgoal, and 3. Each variable
RészletesebbenRekurzió a Datalogban és az SQL3-ban
Rekurzió a Datalogban és az SQL3-ban Tankönyv: Ullman-Widom: Adatbázisrendszerek Alapvetés Második, átdolgozott kiadás, Panem, 2009 10.2. Rekurzió. Az Eljut feladat 10A_DLog4Rekurzio // Adatbázisok-1 elıadás
RészletesebbenAdatbázisok 1. Rekurzió a Datalogban és SQL-99
Adatbázisok 1 Rekurzió a Datalogban és SQL-99 Expressive Power of Datalog Without recursion, Datalog can express all and only the queries of core relational algebra. The same as SQL select-from-where,
RészletesebbenSQL/PSM kurzorok rész
SQL/PSM kurzorok --- 2.rész Tankönyv: Ullman-Widom: Adatbázisrendszerek Alapvetés Második, átdolgozott kiadás, Panem, 2009 9.3. Az SQL és a befogadó nyelv közötti felület (sormutatók) 9.4. SQL/PSM Sémában
RészletesebbenAdatbázisok-1 előadás Előadó: dr. Hajas Csilla
Adatbázisok-1 előadás Előadó: dr. Hajas Csilla Áttekintés az I.zh-ig Áttekintés az 1ZH-ig // Adatbázisok-1 elıadás // Ullman (Stanford) tananyaga alapján // Hajas Csilla (ELTE IK) 1 Hol tartunk? Mit tanultunk
RészletesebbenTankönyv: SQL/PSM + Gyak:PL/SQL
Tankönyv: SQL/PSM + Gyak:PL/SQL Tankönyv: Ullman-Widom: Adatbázisrendszerek Alapvetés Második, átdolgozott kiadás, Panem, 2009 10.2. Rekurzió, az Eljut -feladat Oracle-ben és PL/SQL-ben 9.3. Az SQL és
RészletesebbenBevezetés: az SQL-be
Bevezetés: az SQL-be Tankönyv: Ullman-Widom: Adatbázisrendszerek Alapvetés Második, átdolgozott kiadás, Panem, 2009 2.3. Relációsémák definiálása SQL-ben, adattípusok, kulcsok megadása 02B_BevSQLsemak
RészletesebbenRelációs algebra 2.rész példák
Relációs algebra 2.rész példák Tankönyv: Ullman-Widom: Adatbázisrendszerek Alapvetés Második, átdolgozott kiadás, Panem, 2009 Lekérdezések a relációs modellben 2.4. Egy algebrai lekérdező nyelv Lekérdezések
Részletesebben5.3. Logika a relációkhoz
236 5. Algebrai és logikai lekérdező nyelvek! 5.2.3. feladat. Az egyik dolog, amit az eredeti 2.4.5. alfejezetben definiált vetítési művelettel szemben elérhetünk a kiterjesztett vetítési művelet segítségével,
RészletesebbenFeladatok A mai előadáson: Tankönyv -- Termékek feladatai:
Feladatok ---1 Először relációs algebrában táblákkal gondolkodva nézzük meg, hogy milyen műveletekkel tudjuk megkapni a kívánt eredményt, írjuk fel lineáris módon és kifejezőfákkal, majd a kifejezőfákat
RészletesebbenSQL. 1.rész. 1.elıadás // Adatbázisok-1 elıadás // Ullman-Widom (Stanford) tananyaga alapján // Hajas Csilla (ELTE IK) 1
SQL 1.rész 1.elıadás // Adatbázisok-1 elıadás // Ullman-Widom (Stanford) tananyaga alapján // Hajas Csilla (ELTE IK) 1 SQL története, szabványok Szabvány adatbázis-kezelő nyelv: SQL SQL (angol kiejtésben
RészletesebbenSQL DDL-2 (aktív elemek) triggerek
SQL DDL-2 (aktív elemek) triggerek Tankönyv: Ullman-Widom: Adatbázisrendszerek Alapvetés Második, átdolgozott kiadás, Panem, 2009 7.fej.: Megszorítások és triggerek 7.4. Önálló megszorítások 7.5. Triggerek
RészletesebbenAdatbázis tartalmának módosítása
Adatbázis tartalmának módosítása Tankönyv 6.5. Változtatások az adatbázisban A módosító utasítások nem adnak vissza eredményt, mint a lekérdezések, hanem az adatbázis tartalmát változtatják meg. 3-féle
RészletesebbenBevezetés az SQL-be. Tankönyv: Ullman-Widom: Adatbázisrendszerek Alapvetés Második, átdolgozott kiadás, Panem, 2009
Bevezetés az SQL-be Tankönyv: Ullman-Widom: Adatbázisrendszerek Alapvetés Második, átdolgozott kiadás, Panem, 2009 2.3. Relációsémák definiálása SQL-ben Kulcsok megadása (folyt.köv.7.fej.) -- még: Relációs
RészletesebbenLekérdezések az SQL-ben 2.rész
Lekérdezések az SQL-ben 2.rész Tankönyv: Ullman-Widom: Adatbázisrendszerek Alapvetés Második, átdolgozott kiadás, Panem, 2009 6.2. Több relációra vonatkozó lekérdezések az SQL-ben - Szorzat és összekapcsolás
RészletesebbenAz SQL adatbázisnyelv: DML
Az SQL adatbázisnyelv: DML Tankönyv: Ullman-Widom: Adatbázisrendszerek Alapvetés Második, átdolgozott kiadás, Panem, 2009 6.5. Az adatbázis tartalmának módosítása (DML utasítások) INSERT, DELETE, UPDATE
Részletesebben5.előadás: Adatbázisok-I. dr. Hajas Csilla (ELTE IK)
5.előadás: Adatbázisok-I. dr. Hajas Csilla (ELTE IK) http://sila.hajas.elte.hu/ SQL gyakorlatban: SELECT záradékai és a kiterjesztett relációs algebra Tankönyv: 5.1.- 5.2. Kiterjesztett relációs algebra
RészletesebbenTranzakciókezelés PL/SQL-ben
Tranzakciókezelés PL/SQL-ben ACID tulajdonságok: Tranzakció Atomosság, Konzisztencia, Izoláció, Tartósság A tranzakció állhat: - Több DML utasításból - Egy DDL utasításból A tranzakció kezdete az első
RészletesebbenLekérdezések az SQL-ben 1.rész
Lekérdezések az SQL-ben 1.rész Tankönyv: Ullman-Widom: Adatbázisrendszerek Alapvetés Második, átdolgozott kiadás, Panem, 2009 6.1. Egyszerű (egy-relációs) lekérdezések az SQL-ben - Select-From-Where utasítás
RészletesebbenAdatok szűrése, rendezése
Adatok szűrése, rendezése Célkitűzések Szűrést kifejező lekérdezések végrehajtása A lekérdezés eredményének rendezése &változó használata isql*plus-ban futási időben megadható feltételek céljából A lista
Részletesebben8-9.előadás: Adatbázisok-I. dr. Hajas Csilla (ELTE IK)
8-9.előadás: Adatbázisok-I. dr. Hajas Csilla (ELTE IK) http://sila.hajas.elte.hu/ Gyak: Oracle PL/SQL Tk-ben: SQL/PSM 9.3. Az SQL és a befogadó nyelv közötti felület (sormutatók) 9.4. SQL/PSM Sémában tárolt
RészletesebbenRelációs algebra 1.rész alapok
Relációs algebra 1.rész alapok Tankönyv: Ullman-Widom: Adatbázisrendszerek Alapvetés Második, átdolgozott kiadás, Panem, 2009 Lekérdezések a relációs modellben 2.4. Egy algebrai lekérdező nyelv, relációs
RészletesebbenInformatikai képzés Információs rendszerek dr. Hajas Csilla (ELTE IK)
Informatikai képzés Információs rendszerek dr. Hajas Csilla (ELTE IK) http://sila.hajas.elte.hu/ 5.hét: SQL áttekintés, táblák létrehozása és adatok felvitele Az előadások Ullman-Widom: Adatbázisrendszerek
RészletesebbenLekérdezések az SQL-ben 1.rész
Lekérdezések az SQL-ben 1.rész Tankönyv: Ullman-Widom: Adatbázisrendszerek Alapvetés Második, átdolgozott kiadás, Panem, 2009 6.1. Egyszerű (egy-relációs) lekérdezések az SQL-ben - Select-From-Where utasítás
Részletesebben3.előadás: Adatbázisok-I. dr. Hajas Csilla (ELTE IK)
3.előadás: Adatbázisok-I. dr. Hajas Csilla (ELTE IK) http://sila.hajas.elte.hu/ SQL SELECT - FROM WHERE Alkérdések - Összekapcsolások Tankönyv: 6.3. Alkérdések WHERE záradékban Alkérdések FROM záradékban
Részletesebben4.előadás: Adatbázisok-I. dr. Hajas Csilla (ELTE IK)
4.előadás: Adatbázisok-I. dr. Hajas Csilla (ELTE IK) http://sila.hajas.elte.hu/ SQL SELECT utasítás kiértékelése lekérdezések relációs algebrában I.Témakör (vizsgán az I.lap 1-3.feladatai) összefoglalása
RészletesebbenA relációs algebra egy speciális algebra, amely néhány egyszerű, de hathatós. operandusok. Egy reláció megadható a nevével vagy közvetlenül, sorainak
Informatika szigorlat 11-es tétel: Lekérdező nyelvek 1. Relációs algebra A relációs algebra egy speciális algebra, amely néhány egyszerű, de hathatós módszert ad arra nézve, hogy miként építhetünk új relációkat
RészletesebbenSQL DDL: Táblák, megszorítások (constraints), triggerek, nézettáblák
SQL DDL: Táblák, megszorítások (constraints), triggerek, nézettáblák Tankönyv: Ullman-Widom: Adatbázisrendszerek Alapvetés Második, átdolgozott kiadás, Panem, 2009 7.1.-7.4. Megszorítások 7.5.-7.6. Triggerek
Részletesebben8. Gyakorlat SQL. DDL (Data Definition Language) adatdefiníciós nyelv utasításai:
8. Gyakorlat SQL SQL: Structured Query Language; a relációs adatbáziskezelők szabványos, strukturált lekérdező nyelve SQL szabványok: SQL86, SQL89, SQL92, SQL99, SQL3 Az SQL utasításokat mindig pontosvessző
RészletesebbenB I T M A N B I v: T 2015.03.01 M A N
Adatbázis Rendszerek MSc 2. Gy: MySQL Táblák, adatok B I v: T 2015.03.01 M A N 1/41 Témakörök SQL alapok DDL utasítások DML utasítások DQL utasítások DCL utasítások 2/41 Az SQL jellemzése Az SQL a relációs
RészletesebbenSQL ALAPOK. Bevezetés A MYSQL szintaxisa Táblák, adatok kezelésének alapjai
SQL ALAPOK Bevezetés A MYSQL szintaxisa Táblák, adatok kezelésének alapjai BEVEZETÉS SQL: Structured Query Language Strukturált Lekérdező Nyelv Szabvány határozza meg, azonban számos nyelvjárása létezik
RészletesebbenRelációs algebra áttekintés és egy táblára vonatkozó lekérdezések
Relációs algebra áttekintés és egy táblára vonatkozó lekérdezések Tankönyv: Ullman-Widom: Adatbázisrendszerek Alapvetés Második, átdolgozott kiadás, Panem, 2009 2.4. Relációs algebra (áttekintés) 5.1.
RészletesebbenADATBÁZIS-KEZELÉS - BEVEZETŐ - Tarcsi Ádám, ade@inf.elte.hu
ADATBÁZIS-KEZELÉS - BEVEZETŐ - Tarcsi Ádám, ade@inf.elte.hu Számonkérés 2 Papíros (90 perces) zh az utolsó gyakorlaton. Segédanyag nem használható Tematika 1. félév 3 Óra Dátum Gyakorlat 1. 2010.09.28.
RészletesebbenTankönyv példák kidolgozása
Tankönyv példák kidolgozása Tankönyv: Ullman-Widom: Adatbázisrendszerek Alapvetés Második, átdolgozott kiadás, Panem, 2009 Áttekintés: Rel.algebra és SQL Példák: Tk.2.4.14.Feladatok Tk.54-57.o. 2.4.1.feladat
RészletesebbenLekérdezések az SQL SELECT utasítással
Lekérdezések az SQL SELECT utasítással Az SQL SELECT utasítás lehetőségei Vetítés Kiválasztás 1. tábla 1. tábla Összekapcsolás 1. tábla 2. tábla Elemi SELECT utasítások SELECT * {[DISTINCT] column expression
RészletesebbenTartalomjegyzék. Tartalomjegyzék 1. Az SQL nyelv 1 Az SQL DDL alapjai 2
Tartalomjegyzék Tartalomjegyzék 1 Az SQL nyelv 1 Az SQL DDL alapjai 2 Adatbázis parancsok 2 Táblaparancsok 2 A táblázat létrehozása 2 A táblázat módosítása 3 A tábla törlése 3 Indextábla létrehozása 3
RészletesebbenSQL DDL-1: táblák és megszorítások
SQL DDL-1: táblák és megszorítások Tankönyv: Ullman-Widom: Adatbázisrendszerek Alapvetés Második, átdolgozott kiadás, Panem, 2009 2.3. Relációsémák definiálása 7.1. Kulcsok és idegen kulcsok 7.2. Értékekre
RészletesebbenBevezetés: Relációs adatmodell
Bevezetés: Relációs adatmodell Tankönyv: Ullman-Widom: Adatbázisrendszerek Alapvetés Második, átdolgozott kiadás, Panem, 2009 2.1. Adatmodellek áttekintése 2.2. A relációs modell alapjai -- Megjegyzés:
RészletesebbenRelációs algebrai lekérdezések átírása SQL SELECT-re (példák)
Relációs algebrai lekérdezések átírása SQL SELECT-re (példák) Tankönyv: Ullman-Widom: Adatbázisrendszerek Alapvetés Második, átdolgozott kiadás, Panem, 2009 Áttekintés: Rel.algebra és SQL Példák: Tk.Termékek
RészletesebbenAdatbázisok. 8. gyakorlat. SQL: CREATE TABLE, aktualizálás (INSERT, UPDATE, DELETE), SELECT október október 26. Adatbázisok 1 / 17
Adatbázisok 8. gyakorlat SQL: CREATE TABLE, aktualizálás (INSERT, UPDATE, DELETE), SELECT 2015. október 26. 2015. október 26. Adatbázisok 1 / 17 SQL nyelv Structured Query Language Struktúrált lekérdez
RészletesebbenKészítette: Szabóné Nacsa Rozália
Készítette: Szabóné Nacsa Rozália nacsa@inf.elte.hu 1 Structured Query Language (Struktúrált lekérdező nyelv) Relációs adatbázisok kezelésére kifejlesztett szabvány 2 DIAKOK dkód vnév knév 1001 Kiss János
RészletesebbenBGF. 4. Mi tartozik az adatmodellek szerkezeti elemei
1. Mi az elsődleges következménye a gyenge logikai redundanciának? inkonzisztencia veszélye felesleges tárfoglalás feltételes függés 2. Az olyan tulajdonság az egyeden belül, amelynek bármely előfordulása
RészletesebbenCsomag. Adatbázis-objektum Programozási eszközök gyűjteménye Két részből áll. specifikáció törzs (opcionális)
Csomagok Csomag Adatbázis-objektum Programozási eszközök gyűjteménye Két részből áll specifikáció törzs (opcionális) Csomagspecifikáció CREATE [OR REPLACE] PACKAGE csomagnév [AUTHID {DEFINER CURRENT_USER}]
RészletesebbenBevezetés: Relációs adatmodell
Bevezetés: Relációs adatmodell Tankönyv: Ullman-Widom: Adatbázisrendszerek Alapvetés Második, átdolgozott kiadás, Panem, 2009 9.3. Az SQL és a befogadó nyelv közötti felület (sormutatók) 9.4. SQL/PSM Sémában
RészletesebbenElemi alkalmazások fejlesztése IV.
Structured Query Language (Struktúrált lekérdez ı nyelv) Relációs adatbázisok kezelésére kifejlesztett szabvány né Nacsa Rozália nacsa@inf.elte.hu Fejlesztı : MySQLAB weboldal: www.mysql.com MySQL installálása.
RészletesebbenSQL PÉLDATÁR. készült a PTE TTK Iskolai informatika III. kurzus teljesítésére
SQL PÉLDATÁR készült a PTE TTK Iskolai informatika III. kurzus teljesítésére PTE TTK Czimmermann Gergely MA matematika informatika tanár szakos hallgató 2017 Tartalomjegyzék 1. Adatleíró műveletek... 3
RészletesebbenAdatbázis kezelés Delphiben. SQL lekérdezések
Adatbázis kezelés Delphiben. SQL lekérdezések Structured Query Language adatbázisok kezelésére szolgáló lekérdező nyelv Szabályok: Utasítások tetszés szerint tördelhetők Utasítások végét pontosvessző zárja
Részletesebben2.előadás: Adatbázisok-I. dr. Hajas Csilla (ELTE IK)
2.előadás: Adatbázisok-I. dr. Hajas Csilla (ELTE IK) http://sila.hajas.elte.hu/ Relációs algebra alapműveletei és SQL SELECT - FROM - WHERE Tankönyv: 2.4. Lekérdezések: Relációs algebra 6.1. Egy táblára
RészletesebbenAdatbázis-lekérdezés. Az SQL nyelv. Makány György
Adatbázis-lekérdezés Az SQL nyelv Makány György SQL (Structured Query Language=struktúrált lekérdező nyelv): relációs adatbázisok adatainak visszakeresésére, frissítésére, kezelésére szolgáló nyelv. Születési
RészletesebbenSQL/PSM tárolt modulok rész
SQL/PSM tárolt modulok --- 1.rész Tankönyv: Ullman-Widom: Adatbázisrendszerek Alapvetés Második, átdolgozott kiadás, Panem, 2009 9.3. Az SQL és a befogadó nyelv közötti felület (sormutatók) 9.4. SQL/PSM
RészletesebbenINDEXSTRUKTÚRÁK III.
2MU05_Bitmap.pdf camü_ea INDEXSTRUKTÚRÁK III. Molina-Ullman-Widom: Adatbázisrendszerek megvalósítása Panem, 2001könyv 5.4. Bittérkép indexek fejezete alapján Oracle: Indexek a gyakorlatban Oracle Database
Részletesebben2007. február 25. TARTALOM
KENDE MÁRIA - NAGY ISTVÁN ANALITIKUS SQL FELADATGYŰJTEMÉNY TARTALOM 9. Foglalkozás Részletező csoportosítások... 2 10. Foglalkozás Analitikus függvények... 5 Melléklet A ROW_NUMBER szintaktikája... 10
RészletesebbenSQL haladó. Külső összekapcsolások, Csoportosítás/Összesítés, Beszúrás/Törlés/Módosítás, Táblák létrehozása/kulcs megszorítások
SQL haladó Külső összekapcsolások, Csoportosítás/Összesítés, Beszúrás/Törlés/Módosítás, Táblák létrehozása/kulcs megszorítások 1 Külső összekapcsolás Összekapcsoljuk R és S relációkat: R C S. R azon sorait,
RészletesebbenAdatbázisok-I. előadás dr. Hajas Csilla (ELTE IK)
Adatbázisok-I. előadás dr. Hajas Csilla (ELTE IK) http://sila.hajas.elte.hu/ 2.ea: Relációs algebra alapműveletei és SQL SELECT (1.rész) Az előadások Ullman-Widom: Adatbázisrendszerek Alapvetés alapján
RészletesebbenGyakorlás: Hozzunk létre egy Alkalmazottak táblát AZO szám, Részleg szöveg, Munkakör szöveg és BelépésDátuma dátum típussal.
Adatbázis létrehozása Adatleíró műveletek CREATE DATABASE "tan1" WITH ENCODING= LATIN2 ; vagy parancssorból a terminál alatt $ createdb tan1 E=latin2 Kapcsolódás az adatbázishoz $ psql tan1 Adattábla létrehozása
RészletesebbenAdattípusok. Max. 2GByte
Adattípusok Típus Méret Megjegyzés Konstans BIT 1 bit TRUE/FALSE SMALLINT 2 byte -123 INTEGER 4 byte -123 COUNTER 4 byte Automatikus 123 REAL 4 byte -12.34E-2 FLOAT 8 byte -12.34E-2 CURRENCY / MONEY 8
RészletesebbenAdattípusok. Max. 2GByte
Adattípusok Típus Méret Megjegyzés Konstans BIT 1 bit TRUE/FALSE TINIINT 1 byte 12 SMALLINT 2 byte -123 INTEGER 4 byte -123 COUNTER 4 byte Automatikus 123 REAL 4 byte -12.34E-2 FLOAT 8 byte -12.34E-2 CURRENCY
RészletesebbenTankönyvben: SQL/PSM Gyakorlaton: Oracle PL/SQL
Tankönyvben: SQL/PSM Gyakorlaton: Oracle PL/SQL Tankönyv: Ullman-Widom: Adatbázisrendszerek Alapvetés Második, átdolgozott kiad, 2009 Motiváció: 10.2. Rekurzió SQL-ben, az Eljut -feladat Oracle-ben 9.3.
RészletesebbenAdatbázis tartalmának módosítása (DML), az adatbázis-kezelı rendszerek felépítése,
Adatbázis tartalmának módosítása (DML), az adatbázis-kezelı rendszerek felépítése, Tankönyv: Ullman-Widom: Adatbázisrendszerek Alapvetés Második, átdolgozott kiadás, Panem, 2009 6.5. Változtatások az adatbázisban:
RészletesebbenBevezetés: Relációs adatmodell
Bevezetés: Relációs adatmodell Tankönyv: Ullman-Widom: Adatbázisrendszerek Alapvetés Második, átdolgozott kiadás, Panem, 2009 2.1. Adatmodellek áttekintése 2.2. A relációs modell alapjai --Megjegyzés:
Részletesebben5. téma XML DB. Az adatkezelés és XML kapcsolata. Miért fontos az XML használata az adatbázis kezelésben?
Adatbázis modellek 5. téma XML DB Az adatkezelés és XML kapcsolata Miért fontos az XML használata az adatbázis kezelésben? Adattárolás alapformái: - strukturált - szabad-szöveges - szemi struktúrált -
RészletesebbenInformációs rendszerek Adatbázis-kezelés
Információs rendszerek Adatbázis-kezelés (informatika spec.) 2016/2017.tanév 2.févében előadó: dr. Hajas Csilla http://people.inf.elte.hu/sila/ Általános tudnivalók AB1_01ea_RelModell // Adatbázisok-1
RészletesebbenAdatbázisok-I. előadás dr. Hajas Csilla (ELTE IK)
Adatbázisok-I. előadás dr. Hajas Csilla (ELTE IK) http://sila.hajas.elte.hu/ 5.ea: SQL áttekintés SQL DML, DDL Az előadások Ullman-Widom: Adatbázisrendszerek Alapvetés alapján készültek, forrás: http://infolab.stanford.edu/~ullman/dscb.html
RészletesebbenAdatbázisok elmélete 9. előadás
Adatbázisok elmélete 9. előadás Katona Gyula Y. Budapesti Műszaki és Gazdaságtudományi Egyetem Számítástudományi Tsz. I. B. 137/b kiskat@cs.bme.hu http://www.cs.bme.hu/ kiskat 2005 ADATBÁZISOK ELMÉLETE
RészletesebbenAdatbázisok-1 előadás
Adatbázisok-1 előadás IP-08AB1E prog.inf. BSc 2016/2017.tanév 2.févében előadó: dr. Hajas Csilla http://people.inf.elte.hu/sila/ Általános tudnivalók AB1_01ea_RelModell // Adatbázisok-1 elıadás // Ullman-Widom
RészletesebbenADATBÁZISOK ELMÉLETE 5. ELŐADÁS 3/22. Az F formula: ahol A, B attribútumok, c érték (konstans), θ {<, >, =,,, } Példa:
Adatbázisok elmélete 5. előadás Katona Gyula Y. Budapesti Műszaki és Gazdaságtudományi Egyetem Számítástudományi Tsz. I. B. 137/b kiskat@cs.bme.hu http://www.cs.bme.hu/ kiskat 2005 ADATBÁZISOK ELMÉLETE
RészletesebbenAdatbázis tartalmának módosítása. SQL DML utasítások
Adatbázis tartalmának módosítása Tankönyv: Ullman-Widom: SQL DML utasítások Adatbázisrendszerek Alapvetés Második, átdolgozott kiadás, Panem, 2009 6.3. Alkérdések a záradékokban (folyt) (where, having
RészletesebbenAdatbázisok* tulajdonságai
Gazdasági folyamatok térbeli elemzése 4. előadás 2010. 10. 05. Adatbázisok* tulajdonságai Rendezett, logikailag összefüggő és meghatározott szempont szerint tárolt adatok és/vagy információk halmaza Az
RészletesebbenIndexek és SQL hangolás
Indexek és SQL hangolás Ableda Péter abledapeter@gmail.com Adatbázisok haladóknak 2012. 2012. november 20. Miről lesz szó? Történelem Oracle B*-fa Index Felépítése, karbantartása, típusai Bitmap index
RészletesebbenMegszorítások. AB1_06A_Megszorítások - Adatbázisok-1 EA (Hajas Csilla, ELTE IK) - J.D. Ullman elıadásai alapján
Megszorítások Ullman-Widom: Adatbázisrendszerek Alapvetés Második, átdolgozott kiadás, Panem, 2009 7.1. Kulcsok és idegen kulcsok 7.2. Attribútumra vonatkozó megszorítások 7.3. Megszorítások módosítása
RészletesebbenHaladó DBMS ismeretek 1
Haladó DBMS ismeretek 1 Hasznos információk A tantárgy weboldala: it.inf.unideb.hu/honlap/halado_oracle1 Oracle Junior képzés Gyakorlatok és a neptun Gyakorlat követelmények Ajánlott irodalom Juhász István
RészletesebbenAdatbázisok elmélete 11. előadás
Adatbázisok elmélete 11. előadás Katona Gyula Y. Budapesti Műszaki és Gazdaságtudományi Egyetem Számítástudományi Tsz. I. B. 137/b kiskat@cs.bme.hu http://www.cs.bme.hu/ kiskat 2004 ADATBÁZISOK ELMÉLETE
RészletesebbenLekérdezések az SQL SELECT utasítással
Lekérdezések az SQL SELECT utasítással Célok Az SQL SELECT utasítás lehetőségeinek bemutatása A megjelenítendő oszlopok kiválasztása Elemi SELECT utasítások végrehajtása Az SQL utasítások és az isql*plus
RészletesebbenAdatbázisok elmélete 9. előadás
Adatbázisok elmélete 9. előadás Katona Gyula Y. Budapesti Műszaki és Gazdaságtudományi Egyetem Számítástudományi Tsz. I. B. 137/b kiskat@cs.bme.hu http://www.cs.bme.hu/ kiskat 2005 ADATBÁZISOK ELMÉLETE
RészletesebbenEgyüttes hozzárendelés
Együttes hozzárendelés Együttes hozzárendelés Hozzárendelés: az a tevékenységet, amikor egy PL/SQLváltozónak egy SQL-utasításban adunk értéket. Együttes hozzárendelés: Egy kollekció minden elemének egyszerre
RészletesebbenAdatbázis-kezelés. Harmadik előadás
Adatbázis-kezelés Harmadik előadás 39 Műveletek csoportosítása DDL adat definiálás Objektum létrehozás CREATE Objektum törlés DROP Objektum módosítás ALTER DML adat módosítás Rekord felvitel INSERT Rekord
RészletesebbenLekérdezések az SQL SELECT utasítással. Copyright 2004, Oracle. All rights reserved.
Lekérdezések az SQL SELECT utasítással Copyright 2004, Oracle. All rights reserved. Az SQL SELECT utasítás lehetıségei Vetítés Kiválasztás 1. tábla 1. tábla Összekapcsolás 1. tábla 2. tábla 1-2 Copyright
RészletesebbenBevezetés: Relációs adatmodell
Bevezetés: Relációs adatmodell Tankönyv: Ullman-Widom: Adatbázisrendszerek Alapvetés Második, átdolgozott kiadás, Panem, 2009 2.1. Adatmodellek áttekintése 2.2. A relációs modell alapjai 2.3. SQL: Relációsémák
RészletesebbenMapping Sequencing Reads to a Reference Genome
Mapping Sequencing Reads to a Reference Genome High Throughput Sequencing RN Example applications: Sequencing a genome (DN) Sequencing a transcriptome and gene expression studies (RN) ChIP (chromatin immunoprecipitation)
Részletesebben9.előadás: Adatbázisok-I. dr. Hajas Csilla (ELTE IK)
9.előadás: Adatbázisok-I. dr. Hajas Csilla (ELTE IK) http://sila.hajas.elte.hu/ Adatbázis-kezelő rendszerek áttekintése, alapfogalmak Tankönyv: 1.fejezet: Az adatbázisrendszerek világa Adatbázisok-1 (Hajas
RészletesebbenRelációs algebra 2.rész
Relációs algebra 2.rész Tankönyv: Ullman-Widom: Adatbázisrendszerek Alapvetés Második, átdolgozott kiadás, Panem, 2009 2.4. Egy algebrai lekérdezı nyelv -- 01B_RelAlg1alap: alapmőveletek -- 02A_RelAlg2kif:
RészletesebbenBEVEZETÉS Az objektum fogalma
BEVEZETÉS Az objektum fogalma Program (1) Adat (2) Objektum Kiadványszerkesztés Word Táblázatkezelés Excel CAD AutoCad Adatbáziskezelés Access 1 Program (1) Adat (2) Objektum Adatmodell (2) A valós világ
RészletesebbenKivételkezelés 2. SQLCODE lehetséges értékei:
Kivételkezelés Kivételkezelés 1 Futási időben bekövetkező hibák beépített (futtató rendszer váltja ki): előre definiált nem előre definiált felhasználói Az előre definiált és a felhasználói kivételeknek
RészletesebbenA trigger egy aktualizálási művelet esetén végrehajtandó programrészletet definiál. Alakja:
ORACLE TRIGGEREK A trigger egy aktualizálási művelet esetén végrehajtandó programrészletet definiál. Alakja: CREATE [OR REPLACE] TRIGGER név { BEFORE AFTER INSTEAD OF } { DELETE INSERT UPDATE [OF oszlopok]
RészletesebbenAz adatbázisrendszerek világa
Az adatbázisrendszerek világa Tankönyv: Ullman-Widom: Adatbázisrendszerek Alapvetés Második, átdolgozott kiadás, Panem, 2009 1.1. Az adatbázisrendszerek fejlődése 1.2. Az adatbázis-kezelő rendszerek áttekintése
RészletesebbenSzéchenyi István Egyetem www.sze.hu/~herno
Oldal: 1/6 A feladat során megismerkedünk a C# és a LabVIEW összekapcsolásának egy lehetőségével, pontosabban nagyon egyszerű C#- ban írt kódból fordítunk DLL-t, amit meghívunk LabVIEW-ból. Az eljárás
RészletesebbenSQL. Táblák összekapcsolása lekérdezéskor Aliasok Allekérdezések Nézettáblák
SQL Táblák összekapcsolása lekérdezéskor Aliasok Allekérdezések Nézettáblák A SELECT UTASÍTÁS ÁLTALÁNOS ALAKJA (ISM.) SELECT [DISTINCT] megjelenítendő oszlopok FROM táblá(k direkt szorzata) [WHERE feltétel]
RészletesebbenAz SQL*Plus használata
Az SQL*Plus használata Célkitűzés Bejelentkezés az SQL*Plus-ba SQL utasítások szerkesztése Az eredmény formázása SQL*Plus utasításokkal Szkriptfájlok használata Az SQL és az SQL*Plus kapcsolata SQL*Plus
RészletesebbenHozzunk ki többet abból amink van. Fehér Lajos
Hozzunk ki többet abból amink van Fehér Lajos Adatelérés Örök érvényű dolgaink Sor láncolás, migráció Index elhasználódás Tábla fregmentálódás Indexek száma Referenciális hivatkozások Triggerek Adatelérés
RészletesebbenAdatbázisok. 9. gyakorlat SQL: SELECT október október 26. Adatbázisok 1 / 14
Adatbázisok 9. gyakorlat SQL: SELECT 2015. október 26. 2015. október 26. Adatbázisok 1 / 14 SQL SELECT Lekérdezésre a SELECT utasítás szolgál, mely egy vagy több adattáblából egy eredménytáblát állít el
RészletesebbenSQL bevezetés. Select-From-Where záradékok Több relációt tartalmazó lekérdezések Alkérdések
SQL bevezetés Select-From-Where záradékok Több relációt tartalmazó lekérdezések Alkérdések 1 Miért az SQL? Az SQL magas szintű programozási nyelv. A hogyan helyett azt mondjuk meg, hogy mit szeretnénk.
RészletesebbenSQL*Plus. Felhasználók: SYS: rendszergazda SCOTT: demonstrációs adatbázis, táblái: EMP (dolgozó), DEPT (osztály) "közönséges" felhasználók
SQL*Plus Felhasználók: SYS: rendszergazda SCOTT: demonstrációs adatbázis, táblái: EMP dolgozó), DEPT osztály) "közönséges" felhasználók Adatszótár: metaadatokat tartalmazó, csak olvasható táblák táblanév-prefixek:
RészletesebbenADATBÁZISOK: TAN7.EA témaköre SQL DDL, DML, DCL, Tranz.kez.
ADATBÁZISOK: TAN7.EA témaköre SQL DDL, DML, DCL, Tranz.kez. (info. tanárszakon és fizikusoknak) 8.1.-8-2. folyt.sql DDL. Nézettáblák 10.1. SQL DCL. Biztonság és felhasználói jogosultságok SQL-ben GRANT
RészletesebbenKilencedik témakör: Lazarus-Firebird. Készítette: Dr. Kotsis Domokos
PASzSz Kilencedik témakör: Lazarus-Firebird Készítette: Dr. Kotsis Domokos Az SQLdb fülön IBConnection Kapcsolat A Data Access fülön Az SQLdb fülön... Select 1. Az SQLQuery lezárása. (Active := false,
RészletesebbenJava és web programozás
Budapesti M szaki Egyetem 2013. november 20. 10. El adás SQLite SQLite: Adatbázis kezel rendszer SQL standardokat nagyrészt követi Nagyon elterjedt, pl böngész kben is használt Nehéz olyan programnyelvet
Részletesebben