Query-verwerking en optimalisatie

Maat: px
Weergave met pagina beginnen:

Download "Query-verwerking en optimalisatie"

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 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 informatie

TI2505/TI2500 Informatie- en Datamodellering

TI2505/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 informatie

TI2500 Informatie en Datamodellering

TI2500 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 informatie

Organisatie van meerdimensionale structuren

Organisatie 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 informatie

TU Delft TENTAMEN DATABASES. Opgaven IN2105/IN oktober uur. Er zijn 6 opgaven. maximale score 100 punten

TU 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 informatie

SQL 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 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 informatie

Begrippen van transactieverwerking

Begrippen 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 informatie

Introductie (relationele) databases

Introductie (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 informatie

IN2105/IN2410 Databases

IN2105/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 informatie

Computervaardigheden. Universiteit Antwerpen. Computervaardigheden en Programmatie. Grafieken en Rapporten 1. Inhoud. Anatomie van een databank

Computervaardigheden. 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 informatie

Advanced 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. 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 informatie

Data Manipulatie. Query Talen. / Informatica

Data 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 informatie

ISO Query By Example

ISO 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 informatie

Query SQL Boekje. Fredrik Hamer

Query 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 informatie

TI2500 Informatie en Datamodellering

TI2500 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 informatie

SQL is opgebouwd rond een basisinstructie waaraan één of meerdere componenten worden toegevoegd.

SQL 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 informatie

Indexen.

Indexen. 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 informatie

Fundamenten van geheugen; Bestandsorganisatie; Hashing

Fundamenten 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 informatie

Datamodelleren en databases 2011

Datamodelleren 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 informatie

TI2500 Informatie en Datamodellering

TI2500 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 informatie

de praktijk: tabellen

de 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 informatie

SQL: 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. 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 informatie

EXAMEN juni 2016 Gegevensbanken

EXAMEN 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 informatie

Structured Query Language (SQL)

Structured 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 informatie

ISO SQL: Structured Query Language

ISO 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 informatie

Relationele Databases 2002/2003

Relationele 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 informatie

Databank - Basis 1. Inhoud. Computervaardigheden en Programmatie. Hoofdstuk 4 Databank - Basis. Terminologie. Navigeren door een Venster

Databank - 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 informatie

TECHNISCHE UNIVERSITEIT EINDHOVEN. Faculteit Wiskunde en Informatica

TECHNISCHE 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 informatie

Relationele Databases 2002/2003

Relationele 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 informatie

Les 2 Eenvoudige queries

Les 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 informatie

OFFICE A LA CARTE - ACCESS 2013

OFFICE 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 informatie

1. * Database worden vaak gebruikt in Client-Server architectuur.

1. * 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 informatie

Dataconversie met Oracle Spatial

Dataconversie 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 informatie

Zelftest SQL Workshop

Zelftest 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 informatie

Programmeren in C++ Efficiënte zoekfunctie in een boek

Programmeren 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 informatie

DATABASEBEHEER IN EXCEL

DATABASEBEHEER 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 informatie

6.8 Lijsten: oefeningen

6.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 informatie

1. Databanken. Wat is een databank? Verschillende opslagmethodes

1. 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]

[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 informatie

Data Manipulation Language

Data 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 informatie

SQL opgaven. Relationele model: Opgaven:

SQL 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 informatie

11. Het selecteren van gegevens deel II

11. 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 informatie

12. Meer dan één tabel gebruiken en sub-queries

12. 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 informatie

Workshop 3x. Normaliseren. Normaliseren. Hiëarchische database ODBMS. Relationele database. Workshop 14 oktober 2010. A. Snippe ICT Lyceum 1

Workshop 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 informatie

Les S-02: Meer geavanceerde SQL-instructies

Les 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 informatie

Technische nota AbiFire Rapporten maken via ODBC

Technische 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 informatie

Data Warehouse Script Generator Doel

Data 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 informatie

NHibernate als ORM oplossing

NHibernate 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 informatie

DBMS. DataBase Management System. Op dit moment gebruiken bijna alle DBMS'en het relationele model. Deze worden RDBMS'en genoemd.

DBMS. 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 informatie

Informatie & Databases

Informatie & 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 informatie

Technische nota AbiFire5 Rapporten maken via ODBC

Technische 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 informatie

SQL en XML. XML schema s & DMO. Entiteitsklasse en attribuut. SQL en XML. Datamodellering Schema een ruim begrip (zie Møller, p.

SQL 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 informatie

Toon TITEL, JAAR en PLATVORM van GAMES die voor het jaar 2000 uitkwamen op Nintendo 64

Toon 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 informatie

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...

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... 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 informatie

Een introductie tot gegevensbanken

Een 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 informatie

SQL & Datamodelleren

SQL & 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 informatie

Tentamen Informatica 6, 2IJ60,

Tentamen 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 informatie

Programmeermethoden. Recursie. week 11: november kosterswa/pm/

Programmeermethoden. 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 informatie

Les S-01: De basisbeginselen van SQL

Les 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 informatie

Functional 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) 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 informatie

Hoofdstuk 13: Sorteren & Filteren* 2010

Hoofdstuk 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 informatie

Databases (INFODB) 20 april 2010

Databases (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 informatie

Programmeermethoden. Recursie. Walter Kosters. week 11: november kosterswa/pm/

Programmeermethoden. 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 informatie

TU Delft TENTAMEN DATABASES. Opgaven IN2105/IN januari uur. Er zijn 6 opgaven. maximale score 100 punten

TU 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 informatie

Aan de slag met AdminView

Aan 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 informatie

We moeten de accommodaties selecteren die 3 sterren hebben, en in land met ID 10 zitten.

We 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 informatie

Tentamen Databases voor ica

Tentamen 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 informatie

Zelftest SQL Workshop

Zelftest 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 informatie

Automating Complex Workflows using Processing Modeler

Automating 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 informatie

E-MAILS VERZENDEN MET AFDRUK SAMENVOEGEN

E-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 informatie

8.8 Records selecteren

8.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 informatie

Examen Programmeren 2e Bachelor Elektrotechniek en Computerwetenschappen Faculteit Ingenieurswetenschappen Academiejaar juni, 2010

Examen 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 informatie

Tentamen Databases voor iku

Tentamen 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 informatie

Sorteren, groeperen en totaliseren

Sorteren, 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 informatie

Computerclub Volwassenen, Jeugd en Informatica vzw www.vji.be

Computerclub 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 informatie

Tijd is geen goede maatstaf, want is afhankelijk van computer waarop algoritme wordt gedraaid.

Tijd 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 informatie

Mapsource. handleiding Mapsource vs. 6.16.3 2010 www.hansenwebsites.nl

Mapsource. 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 informatie

7. Het selecteren van gegevens

7. 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 informatie

3. Structuren in de taal

3. 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 informatie

Sparse columns in SQL server 2008

Sparse 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 informatie

Vierde college complexiteit. 26 februari Beslissingsbomen en selectie Toernooimethode Adversary argument

Vierde 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 informatie

oefeningen TOP2000 antwoorden

oefeningen 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 informatie

Miniles gegevensbanken bevragen met SQL

Miniles 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 informatie

Examen Algoritmen en Datastructuren III

Examen Algoritmen en Datastructuren III Derde bachelor Informatica Academiejaar 2006 2007, eerste zittijd Examen Algoritmen en Datastructuren III Naam :.............................................................................. 1. (2 pt)

Nadere informatie

Trainingsomschrijving ACCESS 97 / 2000 / 2003NL

Trainingsomschrijving 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 informatie

Greedy algoritmes. Algoritmiek

Greedy 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 informatie

SQL / Systeemanalyse

SQL / 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 informatie

DB architectuur. joost.vennekens@denayer.wenk.be

DB 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 informatie

Database tuning in een notendop

Database 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 informatie

Processoren. Marc Seutter & David N. Jansen 12 November 2013

Processoren. 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 informatie

SQL & Relationele datamodellen in interactieve media

SQL & 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 informatie

DataFlex 19.0 SQL Server

DataFlex 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 informatie

AFO 142 Titel Aanwinsten Geschiedenis

AFO 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 informatie

7.8 Lijsten oefeningen

7.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 informatie

Databases - Inleiding

Databases - 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 informatie

DBMS SQL. Relationele databases. Sleutels. DataBase Management System. Inleiding relationele databases. bestaan uit tabellen.

DBMS 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 informatie

AAN DE SLAG MET QDAC VOLLEDIG

AAN 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 informatie

De keuzestructuur. Versie DD

De 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 informatie

Verzamelingen deel 3. Derde college

Verzamelingen 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 informatie

Structured Query Language

Structured 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