Query-verwerking en optimalisatie
|
|
- Joanna de Winter
- 8 jaren geleden
- Aantal bezoeken:
Transcriptie
1 Gegevensbanken 2010 Query-verwerking en optimalisatie Bettina Berendt
2 Query-verwerking en optimalisatie: Motivatie & Samenvatting 2
3 Waar zijn we? Les Nr. wie wat 1 ED intro, ER 2 ED EER 3 ED relational model 4 ED mapping EER2relational 5 KV relational algebra, relational calculus 6 KV SQL 7 KV vervolg SQL 8 KV demo Access, QBE, JDBC functional dependencies and 9 KV normalisation 10 KV functional dependencies and normalisation 11 BB file structures and hashing 12 BB indexing I 13 BB indexing II and higher-dimensional structures 14 BB query processing 15 BB transactions 16 BB query security 17 BB Data warehousing and mining 18 ED XML, oodb, multimedia db Fysisch model / vragen 3
4 A. Wat is slimmer? SELECT empname, projectname FROM emp, project WHERE emp.ssn = project.leaderssn AND emp.income > π emp.empname, project.projectname σ emp.income > σ emp.ssn = project.leader.ssn X π emp.empname, project.projectname join emp.ssn = project.leaderssn σ emp.income > emp project emp project 4
5 B. Wat helpt daarbij? π emp.empname, project.projectname join emp.ssn = project.leaderssn σ emp.income > emp project 5
6 C. Waar moeten we op letten? π emp.empname, project.projectname blokkentransport! join emp.ssn = project.leaderssn σ emp.income > emp project 6
7 Agenda Overzicht Implementatie van operaties uit relationele algebra Heuristische optimalisatie Systematische optimalisatie d.m.v. kostenschattingen Semantische query-optimalisatie 7
8 Agenda Overzicht Implementatie van operaties uit relationele algebra Heuristische optimalisatie Systematische optimalisatie d.m.v. kostenschattingen Semantische query-optimalisatie 8
9 Overzicht van queryverwerking Stappen in verwerking v. query: lezen en ontleden van query scanner: zet string om in tokens parser: controleert syntactische correctheid en bouwt interne structuur op die query voorstelt query optimalisatie vaak meerdere uitvoeringsstrategieën mogelijk meest efficiënte uitkiezen codegeneratie resultaat is uitvoerbare code uitvoeren van de query 9
10 Query-optimalisatie Beste strategie vinden is moeilijk en duur in de praktijk: bepalen van een redelijk efficiënte strategie Netwerk model, hiërarchisch model, objectmodel: uitvoeringsstrategie grotendeels vastgelegd in het programma (navigatie ) weinig optimalisatiemogelijkheden Relationeel model, objectrelationeel model: hoog-niveau vraagtaal (SQL, OQL) uitvoeringsstrategie niet vastgelegd in de query nood aan optimalistaie door DBMS 10
11 optimalisatie = "kost" zo laag mogelijk houden belangrijkste kost is meestal uitvoeringstijd technieken voor optimalisatie: heuristische regels voor ordenen van de bewerkingen in een query uitvoeringsstrategie regels die in het algemeen goed werken systematische schatting van kosten van verschillende uitvoeringsstrategieën, en kiezen van strategie met laagste kost berekening van bv. tijd nodig voor join op basis van aantal tupels, indexen,... 11
12 Agenda Overzicht Implementatie van operaties uit relationele algebra Heuristische optimalisatie Systematische optimalisatie d.m.v. kostenschattingen Semantische query-optimalisatie 12
13 Omzetting SQL relationele algebra SQL is gemakkelijk om te vormen naar relationele algebra verschil: in SQL ligt volgorde van bewerkingen minder vast relationele algebra uitdrukkingen zijn dus meer geschikt om uitvoeringsstrategie te bepalen 13
14 Voorbeeld van conversie SELECT SELECT Lname, Lname, Fname Fname FROM FROM EMPLOYEE EMPLOYEE WHERE WHERE Salary Salary >(SELECT >(SELECT MAX(Salary) MAX(Salary) FROM FROM EMPLOYEE EMPLOYEE WHERE WHERE Dno Dno = 5 ); ); c := := F MAX Salary (σ MAX Salary (σ Dno = 5 (EMPLOYEE)) Dno = 5 (EMPLOYEE)) ππ Lname, Fname (σ Lname, Fname (σ Salary > c (EMPLOYEE)) Salary > c (EMPLOYEE)) 14
15 Implementatie van operaties uit de relationele algebra Belangrijke hulp-procedure: sorteren veel gebruikt voor efficiënte implementaties van andere operaties Selectie Join Projectie... 15
16 Sorteren Belangrijke component bij query-optimalisatie is sorteren niet alleen om gesorteerd resultaat te bekomen (order by...) maar ook als hulpoperatie voor andere bewerkingen Sorteren van informatie in externe files: "merge-sort" strategie: korte gesorteerde lijsten samenvoegen tot een lange gesorteerde lijst "lijsten" zijn bestanden op schijf 16
17 Fase 1: lees een deel van het bestand in buffer sorteer records in buffer (m.b.v. intern sorteeralgoritme, bv. Quicksort) schrijf gesorteerde buffer naar schijf als tijdelijk bestand herhaal tot hele bestand overlopen is Fase 2: meng n tijdelijke bestanden tot een gesorteerd tijdelijk bestand herhaal tot er maar één gesorteerd bestand meer is 17
18 a e c i o x y u n p e h b q t z i d f n s k x i p w j q n e r h c p k splits a e c i o x y u n p e h b q t z i d f n s k x i p w j q n e r h c p k sorteer a c e i o x e h n p u y b d i q t z f i k n s x e j n p q w c h k p r meng a b c d e e h i i n o p q t u x y z c e f h i j k k n n p p q r s w x meng a b c c d e e e f h i i i j... buffer (tijdelijk) bestand 18
19 19
20 Complexiteit - sorteerfase zoveel mogelijk blokken worden samen in het geheugen gelezen en gesorteerd, d.i. afhankelijk van de beschikbare buffer ruimte met: b blokken n B beschikbare buffers dan: n R = b / n B runs nodig elke run geeft een gesorteerd deelbestand elk blok wordt een keer ingelezen en een keer geschreven: voor b blokken: 2 * b voorbeeld: n B = 5 b= 1024 dan: n R = 1024 / 5 = gesorteerde deelbestanden 20
21 Complexiteit: Mengfase, totaal in1 in2 in3 uit buffer mengfase: mengingsgraad d M : aantal deelbestanden die ineens gemengd kunnen worden = aantal beschikbare buffers 1 = n B 1 aantal doorgangen ( passes ): log dm (n R ) voorbeeld: d M = 4 aantal gesorteerde deelbestanden: complexiteit: 2 * b * ( log dm n R ) totale complexiteit 2 * b + 2 * b * ( log dm n R ) 21
22 Selectie Verschillende strategieën mogelijk, naargelang van soort selectiecriterium bestaan van indexen Voorbeelden criteria: OP1: σ Ssn = (EMPLOYEE) OP2: σ Dnumber > 5 (DEPARTMENT) OP3: σ Dno = 5 (EMPLOYEE) OP4: σ Dno = 5 AND Salary > 3000 AND Sex = F (EMPLOYEE) OP5: σ Essn = AND Pno = 10 (WORKS_ON) 22
23 Strategieën: S1: lineair zoeken doorloop hele bestand, test voor elk record of het voldoet S2: binair zoeken mogelijk voor "="-conditie op sleutelattribuut dat ordening bepaalt vb: OP1: σ Ssn = (EMPLOYEE) als SSN een ordeningsattribuut is S3: gebruik van primaire index of hash functie om één record op te halen mogelijk voor = op geïndexeerd / gehasht attribuut vb: OP1: σ Ssn = (EMPLOYEE) 23
24 S4: gebruik van primaire index om meerdere records op te halen werkt ook voor ongelijkheden (<,...) (zg. "range queries") vb: OP2: σ Dnumber > 5 (DEPARTMENT) S5: gebruik van een cluster-index om meerdere records op te halen =, <,... op niet-sleutel-attribuut dat ordening bepaalt vb: OP3: σ Dno = 5 (EMPLOYEE) S6: gebruik van secundaire index (B+ boom) mogelijk voor zowel = als <,... resultaat: een (bij = zoeken op sleutel) of meerdere records 24
25 S7: conjunctieve selectie (c 1 AND c 2 AND...) als voor een van de subcondities een van de methodes S2 - S6 bruikbaar is: selecteer eerst volgens die subconditie test voor elk gevonden record de andere subconditie(s) vb: OP4: σ Dno = 5 AND Salary > 3000 AND Sex = F (EMPLOYEE) S8: conjunctieve selectie met samengestelde index mogelijk indien "="-subcondities op meerdere attributen en er bestaat een samengestelde index op die attributen vb: OP5: σ Essn = AND Pno = 10 (WORKS_ON) als gecombineerde index (Essn, Pno) op WORKS_ON bestaat 25
26 S9: conjunctieve selectie door intersectie van recordpointers mogelijk met secundaire indexen die recordwijzers (geen blokwijzers) bevatten voor elke "="-conditie op secundair geïndexeerd attribuut: haal verzameling recordpointers uit index op bereken doorsnede van al die verzamelingen haal uiteindelijk records op en filter volgens overblijvende condities voordeel: voor groot deel van selectiewerk moeten enkel indexen geraadpleegd worden 26
27 optimalisatie van selectie selectie met enkelvoudige voorwaarde: indien index beschikbaar of bestand geordend: S2 S6 anders lineair zoeken selectie met conjunctieve voorwaarde (eist S7 S9): indien meerdere toegangspaden beschikbaar: meest selectieve selectie eerst uitvoeren r c = aantal records dat aan voorwaarde voldoet r = totaal aantal records selectiviteit = r c / r zo laag mogelijk schattingen van selectiviteit uit catalogus te halen 27
28 selectie met disjunctieve voorwaarde vb: OP4 : σ Dno = 5 OR Salary > 3000 OR Sex = F (EMPLOYEE) moeilijk te optimaliseren: elke deelvoorwaarde volledig te testen indien voor elke deelvoorwaarde efficiënte toegangspaden bestaan : gebruik die zodra voor een deelvoorwaarde geen toegangspad bestaat: lineair zoeken nodig gebruik van indexen voor andere criteria niet meer zinvol in één pas doorheen gegevensbank gaan en alles testen 28
29 Join Dure operatie: vraagt veel uitvoeringstijd! Vaak equijoin / natuurlijke join wij bekijken hier enkel deze 2-weg-join (join van 2 bestanden) vs. multi-weg-join (meerdere bestanden) wij bekijken enkel 2-weg-join: R A = B S Voorbeelden: OP6: EMPLOYEE Dno = Dnumber DEPARTMENT OP7: DEPARTMENT Mgr_ssn = Ssn EMPLOYEE 29
30 Implementatiemethodes voor Join We beschouwen joins volgens R.A = S.B J1: geneste lussen voor elk record t uit R: haal elk record s uit S op en controleer of t [A] = s [B] J2: toegangsstructuur gebruiken om overeenkomstige records op te halen als S geïndexeerd of gehasht op B : records t van R één voor één ophalen gebruik t [A] als zoekwaarde overeenkomstige records s van S te vinden, met s [B] = t [A] (efficiënt) 30
31 J3: sort-merge join indien R-bestand geordend is volgens A, S volgens B join mogelijk door 1x lineair doorlopen van A en B zeer efficiënt ook mogelijk met secundaire indexen A en B kunnen in volgorde doorlopen worden dankzij index maar records zelf verspreid in bestand om ze op te halen voortdurend andere blokken inlezen kan inefficiënt worden 31
32 32
33 J4: hash-join idee: R.A en S.B worden beide gehasht volgend zelfde hash-functie methode : maak nieuw hash bestand aan zet alle records van kleinste relatie (bv. R) in cellen volgens hashfunctie voor elk record s van S: kijk in welke cel s hoort (volgens hashing op s[b]) zoek in die cel overeenkomstige records in R lineaire complexiteit efficiënt 33
34 optimalisatie van joins J1: geneste lussen waartussen kunnen we kiezen? welk bestand wordt doorlopen in buitenste lus? grootste of kleinste? hoe verdelen we de invoerbuffers? een buffer voor elke bestand? meer buffers voor bestand in buitenste cyclus? meer buffers voor bestand in binnenste cyclus? 34
35 b E = 2000 EMPLOYEE DEPARTMENT b D = 10 EMPLOYEE in buitenste lus: Elk blok wordt 1 x gelezen: RESULTAAT DEPARTMENT in binnenste lus: elk blok wordt telkens opnieuw gelezen bij volgende uitvoering van buitenste lus: 400 x 10 = Totaal gelezen blokken:
36 DEPARTMENT EMPLOYEE b D = 10 b E = 2000 DEPARTMENT in buitenste lus: elk blok wordt 1 x gelezen: 10 RESULTAAT EMPLOYEE in binnenste lus: elk blok wordt telkens opnieuw gelezen bij volgende uitvoering van buitenste lus: 2 x = Totaal gelezen blokken:
37 Ter vergelijking: slechts 1 buffer reserveren voor buitenste lus: b E = 2000 EMPLOYEE DEPARTMENT b D = 10 EMPLOYEE in buitenste lus: elk blok wordt 1 x gelezen: RESULTAAT DEPARTMENT in binnenste lus: elk blok wordt telkens opnieuw gelezen bij volgende uitvoering van buitenste lus: x 10 = Totaal gelezen blokken:
38 DEPARTMENT EMPLOYEE b D = 10 b E = 2000 DEPARTMENT in buitenste lus: elk blok wordt 1 x gelezen: 10 RESULTAAT EMPLOYEE in binnenste lus: elk blok wordt telkens opnieuw gelezen bij volgende uitvoering van buitenste lus: 10 x = Totaal gelezen blokken:
39 optimalisatie van joins J1: geneste lussen kies voor buitenste lus bestand met minst blokken (bv. R) reserveer 1 buffer voor bestand S in binnenste lus, 1 voor uitvoerbestand, zoveel mogelijk buffers voor bestand in buitenste lus indien plaats voor n B buffers: n B -2buffers voor R per record van S : vergelijk met alle R-records in buffers ("probing" van de buffers) S moet in totaal even vaak overlopen worden als het aantal keren dat de buffers met nieuwe waarden voor R geladen worden 39
40 Voorbeeld (5): de diagrammen als formules vb. join op EMPLOYEE en DEPARTMENT: OP6: EMPLOYEE Dno = Dnumber DEPARTMENT EMPLOYEE bevat b E blokken, DEPARTMENT b D kiezen we EMPLOYEE voor buitenste lus: aantal keren dat n B -2 blokken geladen worden van EMPLOYEE: b E / (n B -2) DEPARTMENT evenveel keren helemaal inlezen in totaal b D * b E /(n B -2) blokken te lezen totaal aantal blokken te lezen (EMPLOYEE en DEPARTMENT samen): b E + b D * b E /(n B -2) bv. b E = 2 000, b D = 10, n B = 7 : blokken kiezen we DEPARTMENT in buitenste lus: b D + b E * b D /(n B -2) = blokken 40
41 J2: toegangsstructuur gebruiken om overeenkomstige records op te halen indien secundaire indexen bestaan op beide bestanden: OP7: DEPARTMENT Mgr_ssn = Ssn EMPLOYEE join-selectiefactor van R m.b.t. R.A = S.B : hoeveel records van S gemiddeld overeenkomen met een record van R (bij join op R.A = S.B) vb: # ( EMPLOYEE ) = # ( DEPARTMENT ) = 50 join-selectiefactor van EMPLOYEE : 1 / 100 join-selectiefacor van DEPARTMENT : 1 bestand met hoge join-selectiefactor in buitenste lus vermijdt dat veel "onnodige" records opgezocht worden 41
42 vb.: voor 50 departementen, werknemers, b D =10, b E = elk departement heeft een manager JSF D =1 maar 50 van de werknemers managen een departement JSF E = 0.01 zij aantal niveaus in indexen: x Ssn = 4, x Mgr_ssn = 2 met EMPLOYEE in buitenste lus: b E + (r E * (x Mgr_ssn + 1) ) = blokken met DEPARTMENT in buitenste lus: b D + (r D * (x Ssn + 1) ) = 260 blokken 42
43 J3: sort-merge join is efficiënt vb: zowel OP6 als OP7 OP6: EMPLOYEE Dno = Dnumber DEPARTMENT OP7: DEPARTMENT Mgr_ssn = Ssn EMPLOYEE vereisen b E + b D bloktoegangen O (b R + b S ), maar bestanden moeten geordend zijn indien niet: eventueel eerst sorteren externe sorteermethode toepassen totale complexiteit: O(b R + b S + b R. log b R + b E. log b E ) kan efficiënter zijn dan vorige methodes 43
44 J4: hash-join eenvoudigst indien volledige hashtabel van een van de twee bestanden in intern geheugen past stap 1: eerste bestand in geheugen brengen tabel stap 2: voor elk record van 2-de bestand nagaan met welke plaats in die tabel het overeenstemt Indien niet: meer gesofisticeerde implementaties partition hash join: eerst bestanden partitioneren met hash-functie h verz. kleinere bestanden die volledig in intern geheugen passen dan die bestanden 2 aan 2 joinen (met eender welke joinmethode, evt. J4 met andere hashfunctie) tenslotte alle gejoinde bestanden aan elkaar hangen 44
45 hash R alle records r van R met h(r.a)= hash S alle records s van S met h(s.b)=4 45
46 hybrid hash join: variant van partition hash join idee: deel van join-fase tijdens partitie-fase al uitvoeren één van de tijdelijke hash-bestanden blijft permanent in geheugen spaart 2 tijdelijke bestanden uit 46
47 Projectie π attribuutlijst (R) Als attribuutlijst een sleutel van R bevat: resultaat bevat evenveel tupels als R geen sleutel van R bevat: resultaat kan dubbels bevatten verwijderen : door sorteren of door hashing na sorteren: dubbels komen na elkaar gewoon niet kopiëren naar resultaat hashing: tijdens projectie kijken of tupel al voorkomt in resultaat (via hashtabel); indien ja, niet toevoegen 47
48 48
49 Verzameling-operaties Carthesisch product R x S: zeer duur, resulteert in zeer grote relatie zoveel mogelijk vermijden of vervangen door equivalente operaties tijdens optimalisatie Unie, doorsnede, verschil: alleen voor unie-compatibele relaties (zelfde attributen) implementeren met sorteren of hashing sorteren: sorteer beide bestanden volgens zelfde attributen daarna 1x lineair beide bestanden doorlopen hashing: records in beide bestanden naar zelfde hash-cellen hashen 49
50 T R S T R S T R \ S 50
51 Aggregatie-operaties Indien dichte index op attribuut bestaat: resultaat kan zuiver uit index berekend worden vb: SELECT MAX ( Salary ) FROM EMPLOYEE ; min: volg steeds meest linkse wijzer in B+ - boom max: steeds meest rechtse avg, count, sum: doorloop bladeren van boom 51
52 Aggregatie-operaties Group by: vb: SELECTDNO, AVG ( Salary ) FROM EMPLOYEE GROUP BY DNO ; bestand eerst partitioneren in juiste groepen d.m.v. sorteren of hashen aggregaatfunctie voor elke groep apart uitrekenen opmerking: bij cluster-index: bestand is reeds gepartitioneerd volgens clusterattribuut 52
53 Outer join bv. left outer join Wijziging aan standaard join implementatie: (bv. J1) elk tupel van linker-relatie komt in resultaat voor dus deze relatie gebruiken voor buitenste lus Alternatief: eerst inner join berekenen resultaat aanvullen met tupels die niet in inner join voorkomen (elk tupel aangevuld met nulls) bv. EMPLOYEE Ssn = Mgr_ssn DEPARTMENT 53
54 Operaties combineren met pijplijnen probleem: 1 query meerdere operaties voor elke opeenvolgende operatie apart tijdelijke bestanden aanmaken: duur! oplossing: meerdere operaties in één algoritme combineren bv. selectie, dan join, tenslotte projectie resultaat van selectie niet naar tijdelijk bestand schrijven maar direct als invoer aan join geven pijplijn: gegevens stromen van een algoritme naar een ander 54
55 Agenda Overzicht Implementatie van operaties uit relationele algebra Heuristische optimalisatie Systematische optimalisatie d.m.v. kostenschattingen Semantische query-optimalisatie 55
56 Herhaling: A. Wat is slimmer? SELECT empname, projectname FROM emp, project WHERE emp.ssn = project.leaderssn AND emp.income > π emp.empname, project.projectname σ emp.income > σ emp.ssn = project.leader.ssn X π emp.empname, project.projectname join emp.ssn = project.leaderssn σ emp.income > emp project emp project 56
57 Heuristische optimalisatie Gebaseerd op "query trees" een query-boom = een uitdrukking in relationele algebra blad relatie interne knoop operatie bevat informatie over volgorde verschillende querybomen kunnen equivalent zijn m.b.t. resultaat (commutativiteit van operaties,...) vb: Q_2: for every project located at Stafford, list the project number, the controlling department number, and the department manager s last name, address, and birthdate π Pnumber, Dnum, Lname, Address, Bdate ( ( ( σ Plocation = Stafford ( PROJECT ) ) Dnum = Dnumber ( DEPARTMENT ) ) Mgr_ssn = Ssn ( EMPLOYEE ) ) SELECT P.Pnumber, P.Dnum, E.Lname, E.Address, E.Bdate FROM PROJECT AS P, DEPARTMENT AS D, EMPLOYEE AS E WHERE P.Dnum = D.Dnumber AND D.Mgrssn = E.Ssn AND P.Location = Stafford ; 57
58 canonieke vorm: - geen joins, wel carth. prod - bovenaan: - σ - π 58
59 Query-grafen andere grafische voorstelling van query geven geen volgorde aan daardoor minder geschikt voor optimalisatie 59
60 optimalisatie van queries op basis van bomen: bouw een eerste boom in canonieke vorm: σ, π, (geen joins) herstructureer boom zonder equivalentie te verliezen bv. twee opeenvolgende selecties omwisselen op basis van heuristieken, zo dat query efficiënt uitgevoerd zal worden vb.: Find the last names of employees born after 1957 who work on a project named Aquarius SELECT Lnamr FROM EMPLOYEE, WORKS_ON, PROJECT WHERE PName = Aquarius AND PNumber = Pno AND Essn = Ssn AND Bdate > ; 60
61 Initiële boom 61
62 Verplaats selectie operaties naar beneden 62
63 Plaats meest restrictieve selectie operaties eerst Vervang carth. product door selectie en join operaties 63
64 Verplaats projecties naar beneden 64
65 Algemene transformatieregels σ -cascade selectie op conjunctie van condities omzetten in opeenvolgende eenvoudige selecties σ c1 AND c2 AND AND cn ( R ) σ c1 (σ c2 ( (σ cn ( R ) ) ) ) commutativiteit van σ σ c1 (σ c2 ( R ) ) σ c2 (σ c1 ( R ) ) π -cascade enkel laatste projectie overhouden π list1 (π list2 ( (π listn ( R ) ) ) ) π list1 ( R ) commutativiteit (onder voorwaarden) van σ met π indien het selectiecriterium c enkel slaat op attributen A1,, An uit de projectielijst π A1, A2,, An (σ c ( R ) ) σ c ( π A1, A2,, An ( R ) ) 65
66 commutativiteit van (of ) R c S S c R commutativiteit van σ met (of ) σ c (R S) = σ c (R) S indien enkel c enkel slaat op attributen van R σ c (R S) = σ c1 (R) σ c2 (S) indien c = c1 AND c2, en c1 en c2 condities zijn die enkel slaan op attributen van R resp. S) commutativiteit van π met ( of ) indien alle join-attributen in projectielijst voorkomen: projectie kan naar binnen geschoven worden anders: R en S projecteren op join-attributen + attributen in projectielijst op het einde nogmaals projecteren op gevraagde attributen bv. π A (R B=C S) = π A (π A,B (R) B = C π A,C (S)) 66
67 commutativiteit van verzameling-operaties commuteren, \ niet associativiteit van,, en commutativiteit van σ met verzameling-operaties commutativiteit van π met verzameling-operaties diverse andere transformaties bv. logische wetten van De Morgan 67
68 Heuristieken: algemeen methode van optimalisatie: bladeren en knopen van boom herschikken zodat query efficiënter wordt naar beneden schuiven van operaties die best eerst uitgevoerd worden algemene regel: voer eerst die bewerkingen uit die de grootte van tijdelijke relaties verminderen: selectie zo snel mogelijk ( minder tupels) projectie zo snel mogelijk ( minder attributen) deze naar beneden schuiven in boom 68
69 Heuristiken Splits complexe selectie in meerdere eenvoudige selecties geeft meer flexibiliteit bij herschikken Schuif selecties zo ver mogelijk naar beneden Schuif bladeren waarop strenge selectie gebeurt zoveel mogelijk naar links die geven kleinere relaties Vermijd zoveel mogelijk carthesische producten Combineer carthesische producten met selectie tot een join Schuif projecties zoveel mogelijk naar beneden gooi onnodige attributen direct weg Identificeer deelbomen die door één algoritme kunnen uitgevoerd worden (zonder creatie van tijdelijke bestanden) 69
70 Uitvoeringsplan Eens query-boom geoptimaliseerd: uitvoeringsplan bouwen welke implementaties van joins etc. gebruiken? welke indexen gebruiken?... "pipelined" vs. "materialised" evaluatie materialised: tussenresultaat wordt gematerialiseerd in tijdelijk bestand pipelined: vermijdt die tijdelijke bestanden 70
71 Voorbeeld van uitvoeringsplan voor query Q1: SELECT Fname, Lname, Address FROM EMPLOYEE, DEPARTMENT WHERE Dname = Research AND Dnumber = DNO ; Gebruik index voor selectie op DEPARTEMENT (als die bestaat) Gebruik geneste lussen voor join, (maar buitenste lus slechts 1-maal!) doorloop daarbij volledig EMPLOYEE bestand Doorloop resultaat van join voor projectie 71
72 Agenda Overzicht Implementatie van operaties uit relationele algebra Heuristische optimalisatie Systematische optimalisatie d.m.v. kostenschattingen Semantische query-optimalisatie 72
73 Systematische optimalisatie met kostenschattingen Kosten om query uit te voeren: toegang tot hulpgeheugen (#blokken te lezen / schrijven) opslag van tijdelijke bestanden berekeningen gebruik van intern geheugen communicatiekost (query en resultaten oversturen van client naar server) Toegang tot hulpgeheugen weegt meestal door Voorbeelden van kostenschattingen voor selectie en join: zie eerder 73
74 Agenda Overzicht Implementatie van operaties uit relationele algebra Heuristische optimalisatie Systematische optimalisatie d.m.v. kostenschattingen Semantische query-optimalisatie 74
75 Semantische query-optimalisatie Gebruik van extra kennis (in de vorm van restricties) om queries te transformeren bv. : stel dat een restrictie aangeeft dat geen werknemer meer verdient dan zijn overste; dan hoeft volgende query niet eens uitgevoerd te worden: SELECT SELECT E.Lname, E.Lname, M.Lname M.Lname FROM FROM EMPLOYEE EMPLOYEE AS AS E, E, EMPLOYEE EMPLOYEE AS AS M WHERE WHERE E.Super_ssn=M.Ssn E.Super_ssn=M.Ssn AND AND E.Salery>M.Salary; E.Salery>M.Salary; 75
76 Vooruitblijk Overzicht Implementatie van operaties uit relationele algebra Heuristische optimalisatie Systematische optimalisatie d.m.v. kostenschattingen Semantische query-optimalisatie Transactieverwerking 76
77 Bronnen Deze slides zijn gebaseerd op Henk Olivié s slides voor Gegevensbanken 2009 en op Elmasri & Navathe, Fundamentals of Database Systems, Addison Wesley / Pearson, 5e editie Alle kopieën zonder bronspecificatie: Elmasri & Navathe, Fundamentals of Database Systems, Addison Wesley / Pearson, 5e editie Verdere figuren: bronnen zie Powerpoint comments field Bedankt iedereen! 77
Gegevensbanken Indexstructuren. Bettina Berendt
Gegevensbanken 2010 Indexstructuren Bettina Berendt www.cs.kuleuven.be/~berendt Indexstructuren: Motivatie & Samenvatting 2 Waar zijn we? Les Nr. wie wat 1 ED intro, ER 2 ED EER 3 ED relational model 4
Nadere informatieTI2505/TI2500 Informatie- en Datamodellering
TECHNISCHE UNIVERSITEIT DELFT Faculteit Elektrotechniek, Wiskunde en Informatica Uitwerkingen van het Tentamen TI2505/TI2500 Informatie- en Datamodellering Maandag, 14 april 2014 18u30-21u30 Dit tentamen
Nadere informatieTI2500 Informatie en Datamodellering
TECHNISCHE UNIVERSITEIT DELFT Faculteit Elektrotechniek, Wiskunde en Informatica Uitwerkingen van het tentamen TI2500 Informatie en Datamodellering Maandag, 16 april 2012 14u00-17u00 Dit tentamen bestaat
Nadere informatieOrganisatie van meerdimensionale structuren
Gegevensbanken 2010 Organisatie van meerdimensionale structuren Bettina Berendt www.cs.kuleuven.be/~berendt Organisatie van meerdimensionale structuren: Motivatie & Samenvatting 2 Waar zijn we? Les Nr.
Nadere informatieTU Delft TENTAMEN DATABASES. Opgaven IN2105/IN oktober uur. Er zijn 6 opgaven. maximale score 100 punten
TU Delft TETAME DATABASES Opgaven I2105/I2410 27 oktober 2006 14.00 17.00 uur Er zijn 6 opgaven maximale score 100 punten samen met dit voorblad telt dit tentamen 4 bladzijden (exclusief Appendix) OTA
Nadere informatieSQL Aantekeningen 3. Maarten de Rijke mdr@science.uva.nl. 22 mei 2003
SQL Aantekeningen 3 Maarten de Rijke mdr@science.uva.nl 22 mei 2003 Samenvatting In deze aflevering: het selecteren van tuples, operaties op strings, en aggregatie functies. Verder kijken we naar iets
Nadere informatieBegrippen van transactieverwerking
Gegevensbanken 2010 Begrippen van transactieverwerking Bettina Berendt www.cs.kuleuven.be/~berendt Begrippen van transactieverwerking: Motivatie & Samenvatting 2 Waar zijn we? Les Nr. wie wat 1 ED intro,
Nadere informatieIntroductie (relationele) databases
Eerste les Introductie (relationele) databases Database en DBMS Een verzameling van gestructureerd opgeslagen gegevens Dus ook een kaartenbak is een database Van oudsher waren er hiërarchische en netwerkdatabases
Nadere informatieIN2105/IN2410 Databases
TECHNISCHE UNIVERSITEIT DELFT Faculteit Elektrotechniek, Wiskunde en Informatica Tentamen IN2105/IN2410 Databases Dinsdag 30 oktober 2007, 14:00 17:00 Dit tentamen bestaat uit 5 open vragen Totaal aantal
Nadere informatieComputervaardigheden. Universiteit Antwerpen. Computervaardigheden en Programmatie. Grafieken en Rapporten 1. Inhoud. Anatomie van een databank
Inhoud Computervaardigheden Hoofdstuk 5 Databanken (Let op: dit is enkel voor studenten Bio-Ingenieur.) Terminologie Data importeren Basis queries Allerhande Joins Doe dit. Aandachtspunt! Wat gebeurt hier?
Nadere informatieAdvanced Databases Topic 2: query processing aspects query optimisation. Query optimisation. Van SQL naar XRA. Algebraïsche herschrijving
Advanced Databases Topic 2: query processing aspects query optimisation Query optimisation Outline: Basisregels algebraïsche herschrijving Schattingen Queryplan-generatie 1 2 Algebraïsche herschrijving
Nadere informatieData Manipulatie. Query Talen. / Informatica
Data Manipulatie Query Talen 1 Queries maken in TC en SQL (ter verduidelijking) We kijken nog even naar bier-query q: Geef alle paren van drinkers die niet samen naar een kroeg kunnen gaan en daar allebei
Nadere informatieISO Query By Example
ISO Query By Example Prof. dr. Paul De Bra Gebaseerd op: Database System Concepts, 5th Ed. QBE waarom nog een query taal? de relationele algebra en SQL geven niet alleen een specificatie van een query-resultaat,
Nadere informatieQuery SQL Boekje. Fredrik Hamer
Query SQL Boekje Query SQL Boekje Fredrik Hamer Schrijver: Fredrik Hamer Coverontwerp: Fredrik Hamer ISBN: 9789402162103 Fredrik Hamer Inhoudsopgave A. Aanhef bepalen 17 Aantal 18 Aantal dagen tussen
Nadere informatieTI2500 Informatie en Datamodellering
TECHNISCHE UNIVERSITEIT DELFT Faculteit Elektrotechniek, Wiskunde en Informatica Uitwerkingen van het Tentamen TI2500 Informatie en Datamodellering Vrijdag, 2 juni 2013 14u00-17u00 Dit tentamen bestaat
Nadere informatieSQL is opgebouwd rond een basisinstructie waaraan één of meerdere componenten worden toegevoegd.
BASISINSTRUCTIES SQL SQL : Structured Query Language is een taal gericht op het ondervragen van een relationele database en die aan veel klassieke databasemanagementsystemen kan worden gekoppeld. SQL is
Nadere informatieIndexen.
Indexen joost.vennekens@kuleuven.be Probleem Snel gegevens terugvinden Gegevens moeten netjes geordend zijn Manier waarop hangt af van gebruik Sequentieel Gesorteerde gegevens, die in volgorde overlopen
Nadere informatieFundamenten van geheugen; Bestandsorganisatie; Hashing
Gegevensbanken 2010 Fundamenten van geheugen; Bestandsorganisatie; Hashing Prof. Bettina Berendt www.cs.kuleuven.be/~berendt Fundamenten van geheugen; Bestandsorganisatie; Hashing: Motivatie & Samenvatting
Nadere informatieDatamodelleren en databases 2011
Datamodelleren en databases 21 Capita selecta 1 In dit college Modelleren Normaliseren Functionele afhankelijkheid 1-3N M:N-relaties, associatieve entiteittypes, ternaire relaties Weak entiteittypes Multivalued
Nadere informatieTI2500 Informatie en Datamodellering
TECHNISCHE UNIVERSITEIT DELFT Faculteit Elektrotechniek, Wiskunde en Informatica Uitwerkingen van het Tentamen TI2500 Informatie en Datamodellering Donderdag, 18 april 2013 14u00-17u00 Dit tentamen bestaat
Nadere informatiede praktijk: tabellen
ISO Het Relationele Database Model Prof. dr. Paul De ra Gebaseerd op: Database System Concepts, 5th Ed. de praktijk: tabellen een database bestaat uit een aantal tabellen elke tabel heeft een naam en een
Nadere informatieSQL: query taal met. woorden. ISO SQL: Structured Query Language. de SQL basis query structuur. voorbeeld: doel: intuitieve query taal
SQL: query taal met woorden ISO SQL: Structured Query Language Prof. dr. Paul De Bra Gebaseerd op: Database System Concepts, 5th Ed. doel: intuitieve query taal gebruikt Engelse woorden: select, from,
Nadere informatieEXAMEN juni 2016 Gegevensbanken
EXAMEN juni 2016 Gegevensbanken 8 juni 2016 14.00 u. Het examen bestaat uit twee vragen die schriftelijk uitgewerkt worden. Instructies a. De vragen moeten worden opgelost in de volgorde waarin ze genummerd
Nadere informatieStructured Query Language (SQL)
Structured Query Language (SQL) Huub de Beer Eindhoven, 4 juni 2011 Database: in essentie 0 of meer tabellen elke tabel nul of meer kolommen (of velden) elke tabel nul of meer unieke rijen elke query werkt
Nadere informatieISO SQL: Structured Query Language
ISO SQL: Structured Query Language Prof. dr. Paul De Bra Gebaseerd op: Database System Concepts, 5th Ed. SQL: query taal met woorden doel: intuitieve query taal gebruikt Engelse woorden: select, from,
Nadere informatieRelationele Databases 2002/2003
1 Relationele Databases 2002/2003 Hoorcollege 4 8 mei 2003 Jaap Kamps & Maarten de Rijke April Juli 2003 Plan voor Vandaag Praktische dingen 3.1, 3.2, 3.3, 3.4, 3.5. SQL Aantekeningen 2 Tabellen. Theorie
Nadere informatieDatabank - Basis 1. Inhoud. Computervaardigheden en Programmatie. Hoofdstuk 4 Databank - Basis. Terminologie. Navigeren door een Venster
4. 4. Inhoud rste BAC Toegepaste Biologische Wetenschappen Hoofdstuk 4 Databank Terminologie, Navigeren, Importeren Tabellen Records/Velden manipuleren Queries (Vragen) [Ook in SQL] sorteren filter volgens
Nadere informatieTECHNISCHE UNIVERSITEIT EINDHOVEN. Faculteit Wiskunde en Informatica
TECHNISCHE UNIVERSITEIT EINDHOVEN Faculteit Wiskunde en Informatica Extra Tentamen Databases 1, 2M400, 8 oktober 2003. Alle uitwerkingen van de opgaven moeten worden ingevuld in de daarvoor bestemde vrije
Nadere informatieRelationele Databases 2002/2003
Relationele Databases 2002/2003 Hoorcollege 4 8 mei 2003 Jaap Kamps & Maarten de Rijke April Juli 2003 1 Plan voor Vandaag Praktische dingen Huiswerk 3.1, 3.2, 3.3, 3.4, 3.5. SQL Aantekeningen 2 Tabellen.
Nadere informatieLes 2 Eenvoudige queries
Les 2 Eenvoudige queries XAMP Apache server ( http ) mysql server PHP myadmin IAM SQL oefeningen Database phpmyadmin Import : sql_producten.sql, sql_winkel.sql, sql_festival.sql SAMS SQL in 10 minuten
Nadere informatieOFFICE A LA CARTE - ACCESS 2013
OFFICE A LA CARTE - ACCESS 2013 Inhoud HOOFDSTUK ACC-1.1: TERMINOLOGIE - (0:20) Wat is een database? Onderdelen van een database Tabellen en relaties Schematisch overzicht van de structuur van een database
Nadere informatie1. * Database worden vaak gebruikt in Client-Server architectuur.
Naam Studentnummer Klas Herkansing [ ] ja, nee [ ], zoja uit welk jaar? kernbegrippen relationele database Minimaal drie van de vijf vragen goed beantwoorden. 1. * Database worden vaak gebruikt in Client-Server
Nadere informatieDataconversie met Oracle Spatial
Realworld klantendag 19 september 2013 Voorstellen 1 2 Computer Science & Engineering (TU/e) 3 Realworld Systems 4 Datamigraties Alliander Stedin Agenda 1 Architectuur Inleiding Ontwerp migratie 2 Rapportage
Nadere informatieZelftest SQL Workshop
Zelftest SQL Workshop Document: n0087test.fm 25/06/2014 ABIS Training & Consulting P.O. Box 220 B-3000 Leuven Belgium TRAINING & CONSULTING INLEIDING BIJ DE ZELFTEST SQL WORKSHOP Handleiding Deze test
Nadere informatieProgrammeren in C++ Efficiënte zoekfunctie in een boek
Examen Software Ontwikkeling I 2e Bachelor Informatica Faculteit Wetenschappen Academiejaar 2010-2011 21 januari, 2011 **BELANGRIJK** 1. Lees eerst de volledige opgave (inclusief de hints/opmerkingen)!
Nadere informatieDATABASEBEHEER IN EXCEL
DATABASEBEHEER IN EXCEL 1. LIJSTEN Een lijst is een reeks van rijen met gelijksoortige gegevens waarvan de eerste rij de labels (veldnamen) bevat. Een voorbeeld: Je kunt een lijst beschouwen als een eenvoudige
Nadere informatie6.8 Lijsten: oefeningen
6.8 Lijsten: oefeningen Opgaven 44.: Records zoeken Open het document "Autokosten". Klik in de lijst. Kies de opdracht 'Data - Formulier' [Data - Form]. Klik de knop 'Criteria' [Criteria]. Vul als zoekcriterium
Nadere informatie1. Databanken. Wat is een databank? Verschillende opslagmethodes
1. Databanken Wat is een databank? Verschillende opslagmethodes Tekst bestanden Spreadsheet Relationele gegevensbanken Relationeel model De gestandaardiseerde opvraagtaal SQL Beheer van een mysql databank
Nadere informatie[TOETS SQL INLEIDING]
2011 ROC ter AA afdeling T&T Team ICT Toets SQL Inleiding Duur: 100 minuten Hulpmiddelen: Alleen Pen en Papier Er is één voorblad en vijf opgaven pagina s. Normering: Deel I: 14 punten (7x2 Deel II: 10
Nadere informatieData Manipulation Language
Data Manipulation Language (DML) In de vorige les hebben we een database structuur gemaakt van 4 tabellen. Hiervoor worden de volgende scripts gebruikt voor de verschillende tabellen: Tabel A ROBERT ELLIS
Nadere informatieSQL opgaven. Relationele model: Opgaven:
SQL opgaven Relationele model: Opgaven: 1. Selecteer de klanten die bij fabriek F1 of fabriek F4 een bestelling hebben geplaatst. 2. Selecteer de klanten die bij fabriek F1 en fabriek F4 een bestelling
Nadere informatie11. Het selecteren van gegevens deel II
11. Het selecteren van gegevens deel II 11.1. Inleiding In hoofdstuk 7 heb je kennis gemaakt met het statement Select. In dit hoofdstuk ga je wat dieper in op het statement. Je gaat sorteren / groeperen
Nadere informatie12. Meer dan één tabel gebruiken en sub-queries
12. Meer dan één tabel gebruiken en sub-queries 12.1. Inleiding In de vorige hoofdstukken heb je telkens queries uitgevoerd op één tabel. In de praktijk is het raadplegen van gegevens over het algemeen
Nadere informatieWorkshop 3x. Normaliseren. Normaliseren. Hiëarchische database ODBMS. Relationele database. Workshop 14 oktober 2010. A. Snippe ICT Lyceum 1
Workshop 3x Analytisch vermogen Huiswerk Lestijden 10:00 12:30 Pauze 10:15 10:30 Deze les: Hiëarchische database Relationele database ODBMS Normaliseer stappen Hiëarchische database Elk record in een database
Nadere informatieLes S-02: Meer geavanceerde SQL-instructies
Les S-02: Meer geavanceerde SQL-instructies 2.0 Overzicht les 1: De basisvorm van een SQL query ziet er als volgt uit: (DISTINCT) selecteer de velden uit de tabel waar de volgende voorwaarde geldt ; Bij
Nadere informatieTechnische nota AbiFire Rapporten maken via ODBC
Technische nota AbiFire Rapporten maken via ODBC Laatste revisie: 23 januari 2018 Inhoudsopgave 1 Inleiding... 2 2 Systeeminstellingen in AbiFire... 3 2.1 Aanmaken extern profiel... 3 2.2 Toewijzing extern
Nadere informatieData Warehouse Script Generator Doel
Data Warehouse Script Generator Doel Op basis van een aantal standaard sql scripts ( create table, create view ) een nieuwe sql script genereren welke alle objecten ( tables & views ) kan aanmaken in een
Nadere informatieNHibernate als ORM oplossing
NHibernate als ORM oplossing Weg met de SQL Queries Wat is ORM? ORM staat in dit geval voor Object Relational Mapping, niet te verwarren met Object Role Modeling. ORM vertaalt een objectmodel naar een
Nadere informatieDBMS. DataBase Management System. Op dit moment gebruiken bijna alle DBMS'en het relationele model. Deze worden RDBMS'en genoemd.
SQL Inleiding relationele databases DBMS DataBase Management System!hiërarchische databases.!netwerk databases.!relationele databases.!semantische databases.!object oriënted databases. Relationele databases
Nadere informatieInformatie & Databases
Informatie Wat is informatie en waaruit het bestaat? Stel op een kaart staat het getal 37 geschreven. Wat kun je dan zeggen van het cijfer 37? Niets bijzonders, toch? Alleen dat het een getal is. Gaat
Nadere informatieTechnische nota AbiFire5 Rapporten maken via ODBC
Technische nota AbiFire5 Rapporten maken via ODBC Laatste revisie: 29 juli 2009 Inhoudsopgave Inleiding... 2 1 Installatie ODBC driver... 2 2 Systeeminstellingen in AbiFire5... 3 2.1 Aanmaken extern profiel...
Nadere informatieSQL en XML. XML schema s & DMO. Entiteitsklasse en attribuut. SQL en XML. Datamodellering Schema een ruim begrip (zie Møller, p.
SQL en XML Datamodellering 2007 1 XML schema s & DMO Schema een ruim begrip (zie Møller, p. 96) DTD schema W3C Schema In dit overzicht: Wat zijn de belangrijke zaken uit XML voor datamodellering? (onvolledig)
Nadere informatieToon TITEL, JAAR en PLATVORM van GAMES die voor het jaar 2000 uitkwamen op Nintendo 64
Klas Veldnaam Datatype Lengte KLASNAAM Short Text 3 Characters JONGENS Number Integer MEISJES Number Integer Lessen Veldnaam Datatype Lengte KLASNAAM Short Text 3 Characters DOCCODE Short Text 3 Characters
Nadere informatie1. Inleiding... 2 1.1. Inleiding SQL... 3 1.1.1. Inleiding... 3 1.1.2. Database, databaseserver en databasetaal... 4 1.1.3. Het relationele model...
1. Inleiding... 2 1.1. Inleiding SQL... 3 1.1.1. Inleiding... 3 1.1.2. Database, databaseserver en databasetaal... 4 1.1.3. Het relationele model... 4 1.1.4. Wat is SQL?... 6 1.1.5. Verschillende categorieên
Nadere informatieEen introductie tot gegevensbanken
Een introductie tot gegevensbanken Kris Luyten Tom Van Laerhoven Expertisecentrum Digitale Media Limburgs Universitair Centrum Wetenschapsdagen 2002 1. Overzicht Wat zijn gegevensbanken? Bestanden versus
Nadere informatieSQL & Datamodelleren
SQL & Datamodelleren HVA-CMD-V1-datamodelleren Algemene handleiding bij het lesprogramma 2012-2013 Inhoud Inhoud... 2 Inleiding... 3 Leerdoelen:... 3 Plaats in het leerplan:... 3 Werkwijze:... 3 Lesstof:...
Nadere informatieTentamen Informatica 6, 2IJ60,
Tentamen Informatica 6, 2IJ60, 18-03-2005 Dit tentamen bestaat uit 6 opgaven. Bij elke opgave staat aangegeven hoeveel punten te behalen zijn. Één punt ontvang je cadeau voor de aanwezigheid. Het eindresultaat
Nadere informatieProgrammeermethoden. Recursie. week 11: november kosterswa/pm/
Programmeermethoden Recursie week 11: 21 25 november 2016 www.liacs.leidenuniv.nl/ kosterswa/pm/ 1 Pointers Derde programmeeropgave 1 Het spel Gomoku programmeren we als volgt: week 1: pointerpracticum,
Nadere informatieLes S-01: De basisbeginselen van SQL
Les S-01: De basisbeginselen van SQL 1.0 Relationele databases en SQL Een database is een bestand waarin gegevens worden opgeslagen in de vorm van tabellen. Zo kan een huisarts met behulp van een database
Nadere informatieFunctional Design Loading KPI s in DM Datamart Enterprise xxx. Programname: M_DM_KPI. Historie. Versie. Auteur(s)
Functional Design Loading KPI s in DM Datamart Enterprise xxx Programname: M_DM_KPI Historie Versie Auteur(s) Datum 0.1 First Author 28-11-2007 Initiële versie. References Document auteur(s) Global Design
Nadere informatieHoofdstuk 13: Sorteren & Filteren* 2010
Hoofdstuk 13: Sorteren & Filteren* 2010 13.0 Inleiding Spreadsheets bieden meer grip op gegevens. De twee beste manieren om meer grip te krijgen, is door de gegevens te sorteren of door bepaalde waarden
Nadere informatieDatabases (INFODB) 20 april 2010
Departement Informatica en Informatiekunde, Faculteit Bètawetenschappen, UU. In elektronische vorm beschikbaar gemaakt door de TBC van A Eskwadraat. Het college INFODB werd in 2009-2010 gegeven door drs.
Nadere informatieProgrammeermethoden. Recursie. Walter Kosters. week 11: november kosterswa/pm/
Programmeermethoden Recursie Walter Kosters week 11: 20 24 november 2017 www.liacs.leidenuniv.nl/ kosterswa/pm/ 1 Vierde programmeeropgave 1 De Grote getallen programmeren we als volgt: week 1: pointerpracticum,
Nadere informatieTU Delft TENTAMEN DATABASES. Opgaven IN2105/IN januari uur. Er zijn 6 opgaven. maximale score 100 punten
TU Delft TENTAMEN DATABASES Opgaven IN2105/IN2410 26 januari 2007 14.00-17.00 uur Er zijn 6 opgaven maximale score 100 punten samen met dit voorblad telt dit tentamen 4 bladzijden (exclusief Appendix)
Nadere informatieAan de slag met AdminView
Aan de slag met AdminView uitgebreide handleiding S for Software B.V. Gildeweg 6 3771 NB Barneveld tel 0342 820 996 fax 0342 820 997 e-mail info@sforsoftware.nl web www.sforsoftware.nl Inhoudsopgave 1.
Nadere informatieWe moeten de accommodaties selecteren die 3 sterren hebben, en in land met ID 10 zitten.
MySQL talk Trage website? Het optimaliseren van een bestaande website die een MySQL database heeft is niet altijd even makkelijk. Het probleem kan namelijk op veel verschillende plekken zitten: de database
Nadere informatieTentamen Databases voor ica
Tentamen Databases voor ica 16 april 2015 17:00-20:00, Educatorium-beta Lees eerst onderstaande aanwijzingen. Vermeld op elk vel je naam en studentnummer. Indien één van deze zaken ontbreekt, wordt het
Nadere informatieZelftest SQL Workshop
Zelftest SQL Workshop Document: n0087test.fm 04/01/2018 ABIS Training & Consulting P.O. Box 220 B-3000 Leuven Belgium TRAINING & CONSULTING INLEIDING BIJ DE ZELFTEST SQL WORKSHOP Handleiding Deze test
Nadere informatieAutomating Complex Workflows using Processing Modeler
Automating Complex Workflows using Processing Modeler QGIS Tutorials and Tips Author Ujaval Gandhi http://google.com/+ujavalgandhi Translations by Dick Groskamp This work is licensed under a Creative Commons
Nadere informatieE-MAILS VERZENDEN MET AFDRUK SAMENVOEGEN
E-MAILS VERZENDEN MET AFDRUK SAMENVOEGEN Met E-mail samenvoegen voor Word en Outlook kunt u o.a. een brochure of nieuwsbrief maken en deze per e-mail verzenden naar uw Outlook-lijst met contactpersonen
Nadere informatie8.8 Records selecteren
8.8 Records selecteren Voor het maken van een uittreksel van één of meerdere records die aan een bepaald criterium voldoen, maakt u gebruik van het 'Filter'. 8.8.1 Automatisch filter Klik in het gebied
Nadere informatieExamen Programmeren 2e Bachelor Elektrotechniek en Computerwetenschappen Faculteit Ingenieurswetenschappen Academiejaar juni, 2010
Examen Programmeren 2e Bachelor Elektrotechniek en Computerwetenschappen Faculteit Ingenieurswetenschappen Academiejaar 2009-2010 16 juni, 2010 **BELANGRIJK** 1. Lees eerst de volledige opgave (inclusief
Nadere informatieTentamen Databases voor iku
Scheur de antwoordvellen doormidden. Maak elke vraag op een ander vel. Tentamen Databases voor iku 17 april 2013 13:30-16:30, Educatorium-Gamma Vermeld op elk vel je naam en studentnummer. Indien één van
Nadere informatieSorteren, groeperen en totaliseren
6 Sorteren, groeperen en totaliseren 6.1 Inleiding Een rapport maken begint met het selecteren van de tabellen en het plaatsen van de velden die u in uw rapport wilt afdrukken. Vervolgens sorteert, groepeert
Nadere informatieComputerclub Volwassenen, Jeugd en Informatica vzw www.vji.be
Voorbeelden en oefeningen SQL 1 Computerclub Volwassenen, Jeugd en Informatica vzw www.vji.be Voorbeelden en oefeningen bij demo SQL Voorbeelden en oefeningen Stefan Cruysberghs www.scip.be Februari 2003
Nadere informatieTijd is geen goede maatstaf, want is afhankelijk van computer waarop algoritme wordt gedraaid.
Complexiteit of efficiëntie van algoritmen Hoe meet je deze? Tijd is geen goede maatstaf, want is afhankelijk van computer waarop algoritme wordt gedraaid. Een betere maatstaf is het aantal berekeningsstappen
Nadere informatieMapsource. handleiding Mapsource vs. 6.16.3 2010 www.hansenwebsites.nl
Mapsource handleiding Mapsource vs. 6.16.3 2010 www.hansenwebsites.nl Inhoud deel 1 Schermindeling Menu s Werkbalken Statusbalk tabbladen Kaartmateriaal Kaartmateriaal selecteren Kaartmateriaal verwijderen
Nadere informatie7. Het selecteren van gegevens
7. Het selecteren van gegevens 7.1. Inleiding Het doel van databases is het ontsluiten van gegevens. Een database wordt gebruikt om gegevens in op te slaan en te lezen. In dit hoofdstuk ga je door gebruik
Nadere informatie3. Structuren in de taal
3. Structuren in de taal In dit hoofdstuk behandelen we de belangrijkst econtrolestructuren die in de algoritmiek gebruikt worden. Dit zijn o.a. de opeenvolging, selectie en lussen (herhaling). Vóór we
Nadere informatieSparse columns in SQL server 2008
Sparse columns in SQL server 2008 Object persistentie eenvoudig gemaakt Bert Dingemans, e-mail : info@dla-os.nl www : http:// 1 Content SPARSE COLUMNS IN SQL SERVER 2008... 1 OBJECT PERSISTENTIE EENVOUDIG
Nadere informatieVierde college complexiteit. 26 februari Beslissingsbomen en selectie Toernooimethode Adversary argument
Complexiteit 2019/04 College 4 Vierde college complexiteit 26 februari 2019 Beslissingsbomen en selectie Toernooimethode Adversary argument 1 Complexiteit 2019/04 Zoeken: samengevat Ongeordend lineair
Nadere informatieoefeningen TOP2000 antwoorden
oefeningen TOP2000 antwoorden vragen niveau 1 Niveau 1 beslaat de volgende onderwerpen: SELECT, FROM, WHERE, DISTINCT, ORDER BY, LIKE, BETWEEN, IN, wildcards, eenvoudige vergelijkingen, eenvoudige logische
Nadere informatieMiniles gegevensbanken bevragen met SQL
Miniles gegevensbanken bevragen met SQL In deze miniles gaat het over gegevensbanken of databases. Dit zijn bestanden waarin gegevens kunnen worden opgeslagen. Het is dan van belang dat je op een eenvoudige
Nadere informatieExamen Algoritmen en Datastructuren III
Derde bachelor Informatica Academiejaar 2006 2007, eerste zittijd Examen Algoritmen en Datastructuren III Naam :.............................................................................. 1. (2 pt)
Nadere informatieTrainingsomschrijving ACCESS 97 / 2000 / 2003NL
Module 1 Inleiding Module 2 Ontwerpen van tabellen Module 3 Relationele databases en queries Module 4 Formulieren en rapporten Module 5 Geav. formulieren en rapporten Module 6 Macro s en menu s Module
Nadere informatieGreedy algoritmes. Algoritmiek
Greedy algoritmes Algoritmiek Algoritmische technieken Trucs, methoden, paradigma s voor het ontwerpen van algoritmen Dynamisch Programmeren Divide & Conquer Greedy 2 Greedy algoritme Bouwt de oplossing
Nadere informatieSQL / Systeemanalyse
SQL / Systeemanalyse Wie ben ik Hans de Wit 44 jaar HBO BI in deeltijd gedaan Sinds 2008 werkzaam met BI / DWH med.hro.nl/wihan SQL De gegevens in een database vormen de grondstof voor informatie De informatie
Nadere informatieDB architectuur. joost.vennekens@denayer.wenk.be
DB architectuur joost.vennekens@denayer.wenk.be DB - logisch perspectief - DB - fysisch perspectief - DBMS Fysische details van databank beheren Zodat gebruiker zich enkel om logische perspectief moet
Nadere informatieDatabase tuning in een notendop
Inleiding Database tuning in een notendop Peter Sap peter@petersap.nl Database tuning is een veelomvattend gebied waar een brede vakkennis voor nodig is. Inzicht in het gebruikte relationeel database management
Nadere informatieProcessoren. Marc Seutter & David N. Jansen 12 November 2013
Processoren Marc Seutter & David N. Jansen 12 November 2013 Leerdoel opbouw van de hardware in een computer je construeert een (eenvoudige) processor je schrijft een (kort) assembly-programma je kunt uitleggen:
Nadere informatieSQL & Relationele datamodellen in interactieve media
SQL & Relationele datamodellen in interactieve media HVA-CMD-V1-datamodelleren oefeningen deel 1: SQL 2012-2013 Inhoud Inhoud... 2 Selecties uit een enkelvoudige datatabel... 3 Selecties uit een meerdere
Nadere informatieDataFlex 19.0 SQL Server
Connections to SQL Server 1 Agenda Connecties Aanpassingen in applicaties 2 Connecties Kort overzicht 3 SQL manier Connectie maken met een server (login) Connectie stelt je in staat om tabellen in een
Nadere informatieAFO 142 Titel Aanwinsten Geschiedenis
AFO 142 Titel Aanwinsten Geschiedenis 142.1 Inleiding Titel Aanwinsten Geschiedenis wordt gebruikt om toevoegingen en verwijderingen van bepaalde locaties door te geven aan een centrale catalogus instantie.
Nadere informatie7.8 Lijsten oefeningen
7.8 Lijsten oefeningen Opgaven 58.: Gegevensvalidatie Open het document Autokosten.xls. Selecteer kolom-a. Selecteer Gegevens Gegevensvalidatie Gegevensvalidatie [Data Data Validation Data Validation].
Nadere informatieDatabases - Inleiding
Databases Databases - Inleiding Een database is een verzameling van een aantal gegevens over een bepaald onderwerp: een ledenbestand van een vereniging, een forum, login gegevens. In een database worden
Nadere informatieDBMS SQL. Relationele databases. Sleutels. DataBase Management System. Inleiding relationele databases. bestaan uit tabellen.
SQL Inleiding relationele databases DBMS DataBase Management System!hiërarchische databases.!netwerk databases.!relationele databases.!semantische databases.!object oriënted databases. Op dit moment gebruiken
Nadere informatieAAN DE SLAG MET QDAC VOLLEDIG
AAN DE SLAG MET QDAC VOLLEDIG INHOUD Het uiterlijk van QDAC... 2 De rode draad... 4 Openen van een Excel bestand... 4 Totaliseren van velden... 6 Sorteren van velden... 7 Analyses: Gaps... 8 Openen van
Nadere informatieDe keuzestructuur. Versie DD
De keuzestructuur Versie DD Tot nu toe Programma in rechte lijn = sequentie of opeenvolging Nieuw Vertakking in parcours = selectie of keuzestructuur Controlestructuren Opeenvolging = sequentie Keuze =
Nadere informatieVerzamelingen deel 3. Derde college
1 Verzamelingen deel 3 Derde college rekenregels Een bewerking op A heet commutatief als voor alle x en y in A geldt dat x y = y x. Een bewerking op A heet associatief als voor alle x, y en z in A geldt
Nadere informatieStructured Query Language
Structured Query Language SQL = internationale standaardtaal. Origineel IBM. SQL92 (SQL2), SQL99 (SQL3), SQL:2003, SQL:2007 en SQL:2008. Vele dialecten. In wat volgt beperken we ons tot wat tot de kern
Nadere informatie