Frågeoptimering. Frågeoptimering kapitel 14
|
|
- Helena Åberg
- för 9 år sedan
- Visningar:
Transkript
1 Frågeoptimering kapitel 14 Frågeoptimering sid Introduktion 1 Transformering av relationsuttyck 4 Kataloginformation för kostnadsestimering Statisk information för kostnadsestimering Kostnadsbaserad optimering
2 Frågeoptimering, Introduktion 14-1 Introduktion "Systemet" (ej användaren) ansvarar för att transformera en fråga till en ekvavalent fråga som kan evalueras effektift. Intern representeras en fråga som ett annoterat relationsalgebraiskt-uttrycksträd. Ex.: Π customer_name (sort to remove duplicates) (hash join) (merge join) depositor σ branch_city = Brooklyn (use index 1) σ balance < 1000 (use linear scan) branch account En given fråga kan evalueras på många olika sätt, ty ett fråga motsvaras av mågna ekvivalenta uttryck många olika algoritmer kan användas för att utföra en given operation (kap 13). Dvs. För en given fråga kan många annoterade uttrycksträd (exekveringsplaner) konstrueras och systemet bör välja den mest effektiva. Obs! Kostnadsskilnaden mellan ett bra och ett dåligt sätt att evaluera en fråga kan vara enorm. Idealiskt: Hitta bästa planen Verkligheten: Undvik sämsta planen Π customer_name (σ branch_city = Brooklyn balance < 1000 (branch account depositor))
3 Frågeoptimering, Introduktion 14-2 Kostnadsbaserad optimering Generering av evalueringsplaner för ett uttryck involverar fler steg: Generera logiskt ekvivalenta uttryck m.h.a. ekvivalensregler Annotera resulterande uttryck för att få allternativa exekveringsplaner Uppskatta planernas kostnader (estimerad kostnad) och välj den billigaste planer.
4 Frågeoptimering, Transformering av relationsuttryck 14-3 Transformering av relationsuttryck Två relationsalgebra uttryck säges vara ekvivalenta om de två uttrycken genererar samma mängd av tupler på varje legal databasinstans (tuplernas ordningsföljd är irrelevant). Två uttryck i multimängd versionen av relationsalgebra säges vara ekvivalenta om de genererar samma multimängd av tupler på varje legal databasinstans. En ekvivalensregel anger att två uttryck är ekvivalent, dvs. att uttrycken kan ersätta varandra. Ekvivalensregeler 1. Konjunktiva selektions-operationer kan brytas ned till en följd av individuella selektioner σ (E ) = σ (σ (E )) θ 1 θ 2 θ 1 θ 2 2. Selektions operationen är kommutativ σ (σ (E )) = σ (σ (E )) θ 1 θ 2 θ 2 θ 1 3. Bara den sista i en följd av projektions operationer behövs, de andra kan utelämnas Π (Π (... (Π (E ))...) = Π (E )) L 1 L 2 L ν L 1 4. Selektioner kan kombineras med kartesiska produkter och theta- joins a. σ θ (E 1 E 2 ) = E 1 1θE 2 b. σ θ1 (E 1 1θ2 E 2 ) = E 1 1θ1 θ2 E 2 5. Theta-join operationen (och naturliga join operationer) är kommutativ E 1 E 2 = E 2 E 1 1θ 1θ
5 Frågeoptimering, Transformering av relationsuttryck a. Naturliga join operationen är assossiativ (E 1 E 2 ) E 3 = E 1 (E 2 E 3 ) 6b. Theta-join operationen är assossiativ på följande sätt (E 1 1θ E 2 ) E 3 = E 1 (E 2 E 3 ) 1 1θ 2 θ 3 1θ 1 θ 3 1θ 2 där θ 2 bara involverar attribut från E 2 och E 3 7. Selektion operationen distribuerar över theta-join operationen under följande två villkor: (a) När alla attribut i θ 0 bara involverar attribut ur ett av uttrycken som joinas σ (E 1 E 2 ) = (σ (E 1 )) E 2 θ 0 1θ θ 0 1θ (b) När θ 1 bara involverar attribut ur E 1 och θ 2 bara involverar attribut ur E 2 σ (E 1 E 2 ) = (σ (E 1 )) (σ (E 2 )) θ 1 θ 2 1θ θ 1 1θ θ 2 8. Projektions operationen distribuerar över theta-join operationen på följande sätt: (a) om Θ bara involverar attribut från L 1 L 2 Π (E 1 E 2 ) = (Π (E 1 )) (Π (E 2 )) L 1 L 2 1θ L 1 1θ L 2 (b) Betrakta ej join E 1 E 2 1θ Låt L 1 och L 2 vara mängder av attribut i E 1 resp. E 2. Låt L 3 vara attribut i E 1 som är involverade i join-vilkor θ, men ej är i L 1 L 2 Låt L 4 vara attribut i E 2 som är involverade i join-vilkor θ, men ej är i L 1 L 2 Π (E 1 E 2 ) =Π ((Π (E 1 )) ((Π (E 2 ))) L 1 L 2 1θ L 1 L 2 L 1 L 3 1θ L 2 L 4
6 Frågeoptimering, Transformering av relationsuttryck Mängd operationa union och intersektion är kommutativa E 1 E 2 = E 2 E 1 E 1 E 2 = E 2 E Mängd operationa union och intersektion är assosiativa (E 1 E 2 ) E 3 = E 2 (E 1 E 3 ) (E 1 E 2 ) E 3 = E 2 (E 1 E 3 ) 11. Selektions operationen distribuerar över, och. Även σ θ (E 1 E 2 ) = σ θ (E 1 ) σ θ (E 2 ) σ θ (E 1 E 2 ) = σ θ (E 1 ) σ θ (E 2 ) σ θ (E 1 E 2 ) = σ θ (E 1 ) σ θ (E 2 ) σ θ (E 1 E 2 ) = σ θ (E 1 ) E 2 σ θ (E 1 E 2 ) = σ θ (E 1 ) E Projektions operationen distribuerar över union. Π L (E 1 E 2 ) = (Π L (E 1 )) (Π L (E 2 )) Dessutom finns ekvivalensregler för utvidgade relationsalgebraiska operatorer
7 Frågeoptimering, Transformering av relationsuttryck 14-6 Ex.: Bestäm namnen på alla kunder som har ett konto vid någon gren belägen i Brooklyn. Π customer_name (σ branch_city = Brooklyn (branch account depositor)) Transfomera med regel 7a: σ θ (E 1 E 2 ) = (σ (E 1 )) E 2 0 1θ θ 0 1θ Π customer_name (σ branch_city = Brooklyn (branch)) (account depositor)) Tumregel: Utför selektion så tidigt som möjligt ty då reduseras storleken på de relationer som joinas Ex.: Bestäm namnen på alla kunder som har ett konto vid någon gren belägen i Brooklyn vars balans är över Π customer-name (σ branch_city = Brooklyn balance < 1000 (branch account depositor)) Transfomera med regel 6a: (E 1 E 2 ) E 3 = E 1 (E 2 E 3 ) Π customer-name (σ branch_city = Brooklyn balance < 1000 (branch account )) depositor) Transfomera med regel 7a Π customer_name (σ branch_city = Brooklyn (branch) σ balance < 1000 (account )) depositor)
8 Frågeoptimering, Transformering av relationsuttryck 14-7 Ex.: Projektionoperation Π customer_name ((σ barnch_city = "Brooklyn" (branch) account) depositor) ger en relation vars schema är (branch_name, branch_city, assets, account_numer, balance) Transition m.h.a. reglerna 8a och 8b; eliminera attribut som ej behövs från mellanresultat Π customer_name ((Π account_number ( σ barnch_city = "Brooklyn" (branch) account)) depositor) Tumregel: Genom att utföra projektion så tidigt som möjligt reduseras storleken på relationer (dvs. tuplernas storlek) som joinas. Ex.: Π customer_name ((σ barnch_city = "Brooklyn" (branch)) (account depositor)) account och depositor är stora relation jämfrört med σ barnch_city = "Brooklyn" (branch) Π customer_name ((σ barnch_city = "Brooklyn" (branch) account)) depositor)
9 Frågeoptimering, Enumerering av ekvivalenta uttryck 14-8 Enumerering av ekvivalenta uttryck Frågeoptimerare använder ekvivalensreglerna för att systematiskt generera uttryck ekvivalenta med det givna uttrycket: Alla ekvivalenta uttryck kan genereras genom att upprepat exekvera följande steg tills inga flere uttryck hittas: för varje uttryck som hittats tillsvidare, använd alla tillämpningsbara ekvivalensregler om ett nytt uttryck hittas lägg detta till de redan hittad. Ovanstående angreppssätt är mycket dyrt m.a.p. tid och utrymme. Utrymmeskravet reduseras genom att uttrycken delar gemensamma deluttryck i representationen dvs. de gemensamma delarna lagras bara på ett ställe. (Representationtekniskt problem) När ett uttryck genereras från ett annat m.h.a. en regel, är vanligen bara en del av de två trädena olika, resten är lika. Tidskravet reduseras genom att ej generera alla uttryck: Optimeraren kan genom att beakta evalueringskostnaderna hitta dåliga uttryksträd som inte behöver undersökas vidare. Π customer-name Π customer-name σ balance < 2500 customer Π account_number customer account σ balance < 2500 account
10 Frågeoptimering, Kostnads estimering 14-9 Kostnads estimering Kostnaden för varje operatorberäknas (kap 13) Statistisk information över relationerna (antal tupler, tupelstorlek, domäner o.dyl.) finns tillgängligt. Statistik för uttrycksresultat behöver estimeras. Ex.: Vilken är den bästa join-ordningen för r 1 r 2... r n (det finns (2(n-1))! / (n-1)! st, dvs om n=7). För att undvika generering av alla join-ordningar används dynamisk programmering: beräkna den minsta-kostnads join-ordning för varje delmängd av {r 1, r 2,...,r n } bara en gång och lagra för framtida bruk: För att bestämma bästa planen för en mängd S av n relationer, beakta alla möjliga planer av formen S 1 (S S 1 ) där S 1 är en icke-tom delmängd av S. Beräkna rekursivt kostnader för att joina delmängder av S för att bestämma kostnaden av varje plan. Välj den billigaste av de 2 n - 1 alternativen. När en plan för någon delmängd beräknas, lagras den och återanvänds när den behövs igen.
11 Frågeoptimering, Val av evalueringsplan Val av evalueringsplan En evalueringsplan definierar exakt vilken algoritm som används för varje operation, och hur exekveringen koordineras. Π customer_name (sort to remove duplicates) (hash join) (merge join) depositor σ branch_city = Brooklyn (use index 1) σ balance < 1000 (use linear scan) branch account Interaktionen av evalueringstekniker måste beaktas vid val av evalueringsplan: Att välja den billigaste algoritmen för varje enskild operation behöver ej ge det bästa totala resultatet. Merge-join kan vara dyrare än hash-join, men kan ge en sorterad output som reducerar kostnaden för en yttre nivås aggregering Nästlad-loop join kan ge möjlighet för pipelining. Frågeoptimerare inkorporerar element av två breda angreppsätt: Sök alla planer och välj den bästa på ett kostnadsbaserar sätt Använd heuristik för att välja en plan
Andra relationella språk
Andra relationella språk Kapitel 5 Andra relationella språk sid Tupelrelationskalkyl 1 Domänrelationskalkyl 6 Query-by-Example (QBE) 8 Andra relationella språk, tupelrelationskalkyl 5-1 Tupelrelationskalkyl
Relationell databasdesign
Relationell databasdesign Kapitel 7 Relationell databasdesign sid Uppdelning m.h.a. funktionella beroenden 3 Funktionella beroenden - teori 12 Uppdelningsalgoritmer 27 Designprocess 33 Relational oath
Relationsmodellen. Relations modellen är idag den mest änvända datamodellen för kommersiella
Relationsmodellen 2-1 Relationsmodellen Relations modellen är idag den mest änvända datamodellen för kommersiella applikationer. Relationsdatabasstruktur En relationsdatabas består av en samling tabeller,
Uppdelning. Relationell databasdesign, FB Teori 7-20. Låt R vara ett relationsschema. R 1, R 2,..., R n är en uppdelning av
Relationell databasdesign, FB Teori 7-20 Uppdelning Låt R vara ett relationsschema. R 1, R 2,..., R n är en uppdelning av R om R i = R, i=1,...,n. Dvs. varje R i är en delmängd av R och varje attribut
Dagens föreläsning. KTH & SU, CSC Databasteknik Föreläsning 10 sid 1
Dagens föreläsning Vad du skall komma ihåg från tidigare föreläsningar Optimering av frågor Algebraisk omformulering Kostnadsberäkningar Evaluering av frågor Algoritmer för relationsoperatorer Beräkning
Vad du skall komma ihåg från tidigare föreläsningar. Dagens föreläsning. Evaluering av frågor. Data dictionary
Dagens föreläsning Vad du skall komma ihåg från tidigare föreläsningar Vad du skall komma ihåg från tidigare föreläsningar Optimering av frågor Algebraisk omformulering Kostnadsberäkningar Evaluering av
SQL, nästlade delfrågor 3-19. Nästlade delfrågor. En nästlda delfråga är ett select-from-where uttryck inom where-klausulen i en annan fråga.
SQL, nästlade delfrågor 3-19 Nästlade delfrågor SQL har en mekanism för nästling av delfrågor: En nästlda delfråga är ett select-from-where uttryck inom where-klausulen i en annan fråga. Delfrågor används
Reducering till relationsscheman
E-R-modellen, Reducering till rel.scheman 6-26 Reducering till relationsscheman En databas som överensstämmer med ett E-R-databasschema kan representeras som en mängd relationsscheman ty E-R-modellen och
E-R-modellen, E-R-diagram 6-14. E-R-diagram. representerar entitetsmängder
E-R-modellen, E-R-diagram 6-14 Komponenter Rektanglar Ellipser Ruter Linjer E-R-diagram representerar entitetsmängder repr. attribut repr. relationskapsmängder länkar attribut till entitetsmängder och
Databaser - Design och programmering. Operationer i relationsalgebra. Att söka ut data. Exempel DBschema. Att plocka ut data, forts
Databaser Design och programmering Relationsalgebra den matematiska grunden för att bearbeta data representerad i relationsmodellen Operationer i relationsalgebra Två typer av operationer: Operationer
EMPS(NAME, SALARY, DEPT)
Databaser Design och programmering Relationsalgebra den matematiska grunden för att bearbeta data representerad i relationsmodellen Operationer i relationsalgebra Två typer av operationer: Operationer
Funktionella beroenden - teori
Relationell databasdesign, FB Teori 7-12 Funktionella beroenden - teori Vid utformning av databassystem är det av största vikt att man kan resonera systematiskt om funktionella beroenden bl.a. för att
Tentamen i Databasteknik
Tentamen i Onsdagen den 7 mars 2007 Tillåtna hjälpmedel: Allt skrivet material Använd bara framsidan på varje blad. Skriv max en uppgift per blad. Motivera allt, dokumentera egna antaganden. Oläslig/obegriplig
Databasdesign. E-R-modellen
Databasdesign Kapitel 6 Databasdesign E-R-modellen sid Modellering och design av databaser 1 E-R-modellen 3 Grundläggande begrepp 4 Begränsningar 10 E-R-diagram 14 E-R-design 16 Svaga entitetsmängder 19
Tentamen i Databasteknik
Tentamen i Lördagen den 21 oktober 2006 Tillåtna hjälpmedel: Allt skrivet material Använd bara framsidan på varje blad. Skriv max en uppgift per blad. Motivera allt, dokumentera egna antaganden. Oläslig/obegriplig
n Detta för att kunna koncentrera oss på n Tal: number? n Symboler: symbol? n Strängar: string? n Tecken: char? n Boolskt: boolean?
Tidigare TDDC74 Programming: Abstraktion och modellering Föreläsning 4 Symboler, Par, Listor Representation av par, Grafisk notation för par Representation av listor mha par Typiska listhanteringsprocedurer
Informationssystem och Databasteknik, 2I-1100 HT2001. Relationsalgebra. Relationsalgebran är sluten: R 1 op R 2 R 3.
Primtiva operatorer projektion π selektion σ union differens - kryssprodukt X Relationsalgebra Tilldelning := Relationsalgebran är sluten: Med hjälp av dessa operatorer kan andra (icke-primitiva) operatorer
Introduktion till algoritmer - Lektion 4 Matematikgymnasiet, Läsåret 2014-2015. Lektion 4
Introduktion till algoritmer - Lektion 4 Matematikgymnasiet, Läsåret 014-015 Denna lektion ska vi studera rekursion. Lektion 4 Principen om induktion Principen om induktion är ett vanligt sätt att bevisa
Typsystem. Typsystem... Typsystem... Typsystem... 2 *
Typsystem Typsystem finns i alla programmeringsspråk. Avsikten med typsystem är att kontrollera att uttryck är säkra i den bemärkelsen att innebörden i operanderna är klar och inte är motsägelsefull och
Typsystem. DA2001 (Föreläsning 23) Datalogi 1 Hösten / 19
Typsystem Typsystem finns i alla programmeringsspråk. Avsikten med typsystem är att kontrollera att uttryck är säkra i den bemärkelsen att innebörden i operanderna är klar och inte är motsägelsefull och
Tillämpad Programmering (ID1218) :00-13:00
ID1218 Johan Montelius Tillämpad Programmering (ID1218) 2014-03-13 09:00-13:00 Förnamn: Efternamn: Regler Du får inte ha något materiel med dig förutom skrivmateriel. Mobiler etc, skall lämnas till tentamensvakten.
Speciell användning av heltalsvariabler. Heltalsprogrammering. Antingen-eller-villkor: Exempel. Speciell användning av heltalsvariabler
Heltalsprogrammering Speciell användning av heltalsvariabler max z = då c j x j j= a ij x j b i j= x j 0 x j heltal i =,..., m j =,..., n j =,..., n ofta x j u j j =,..., n Oftast c, A, b heltal. Ibland
Frågespråk mot relationsmodellen
HUND Mindy Ossi Frågespråk mot relationsmodellen Relationsalgebra Relationsalgebra Primtiva operatorer projektion π selektion σ union differens - kryssprodukt X Med hjälp av dessa operatorer kan andra
Relationsalgebra. Varför behöver jag lära mig relationsalgebra?!
Relationsalgebra 1 Varför behöver jag lära mig relationsalgebra?! Relationsmodellen är den datamodell som används i de flesta moderna databassystemen Data beskrivs och lagras som relationer, dvs. som ett
Frågebearbetning. Thomas Padron-Mc Carthy
Frågebearbetning Thomas Padron-Mc Carthy Tore Risch 23 juli 2005 Kapitel 1 Frågebearbetning Databasfrågor i SQL och andra frågespråk uttrycks icke-procedurellt (även kallat deklarativt). Det innebär att
Universitetet i Linköping Institutionen för datavetenskap Anders Haraldsson 2
Anders Haraldsson 1 Anders Haraldsson 2 Dagens föreläsning Programmering i Lisp Fö 5 - Funktioner - lambda-uttryck (avs 7.1) - funcall och function (avs 7.2) - Högre ordningens funktioner (avs 7.) - Iteratorer
Dagens föreläsning Programmering i Lisp Fö 5
Anders Haraldsson 1 Dagens föreläsning Programmering i Lisp Fö 5 - Funktioner - lambda-uttryck (avs 7.1) - funcall och function (avs 7.2) - Högre ordningens funktioner (avs 7.3) - Iteratorer - Egenskaper
Quine McCluskys algoritm
Quine McCluskys algoritm Tabellmetod för att systematiskt finna alla primimplikatorer ƒ(a,b,c,d) = m(4,5,6,8,9,0,3) + d(0,7,5) Moment : Finn alla primimplikatorer Steg: Fyll i alla mintermer i kolumn.
Språket Python - Del 1 Grundkurs i programmering med Python
Hösten 2009 Dagens lektion Ett programmeringsspråks byggstenar Några inbyggda datatyper Styra instruktionsflödet Modulen sys 2 Ett programmeringsspråks byggstenar 3 ETT PROGRAMMERINGSSPRÅKS BYGGSTENAR
Tentamen i. TDDC67 Funktionell programmering och Lisp
1 Linköpings tekniska högskola Institutionen för datavetenskap Anders Haraldsson Tentamen i TDDC67 Funktionell programmering och Lisp och äldre kurser TDDC57 Programmering, Lisp och funktionell programmering
Programmering II (ID1019) :00-11:00
ID1019 Johan Montelius Programmering II (ID1019) 2015-06-11 08:00-11:00 Instruktioner Du får inte ha något materiel med dig förutom skrivmateriel. Mobiler etc, skall lämnas till tentamensvakten. Svaren
TENTAMEN: Algoritmer och datastrukturer. Läs detta!
1 (6) TENTAMEN: Algoritmer och datastrukturer Läs detta! Uppgifterna är inte avsiktligt ordnade efter svårighetsgrad. Börja varje uppgift på ett nytt blad. Skriv ditt idnummer på varje blad (så att vi
Tentamen DATABASTEKNIK - 1DL116
Uppsala universitet Institutionen för informationsteknologi Kjell Orsborn Tentamen 2003-05-20 DATABASTEKNIK - 1DL116 Datum...Tisdagen den 20 Maj, 2003 Tid...12:00-17:00 Jourhavande lärare...kjell Orsborn,
Lära dig analysera större och mer komplicerade problem och formulera lösningar innan du implementerar.
Laboration 5 Mängder Syfte Lära dig analysera större och mer komplicerade problem och formulera lösningar innan du implementerar. Lära dig kombinera på ett lämpligt sätt de begrepp och metoder som du har
Datastrukturer och algoritmer. Innehåll. Tabell. Tabell - exempel. Gränsyta till Tabell. Tabell. Modell. Hashtabell Relation, lexikon.
Datastrukturer och algoritmer Föreläsning 7 Tabell, hashtabell Relation & lexikon Innehåll Tabell Tabell Hashtabell Relation, lexikon Modell Uppslagsbok Organisation Ändlig avbildning av argument på värden
Lösningsförslag till övningsuppgifter, del II
Lösningsförslag till övningsuppgifter del II Obs! Preliminär version! Ö.1. För varje delare d till n låt A d var mängden av element a sådana att gcd(a n = d. Partitionen ges av {A d : d delar n}. n = 6:
TDDC30. Objektorienterad programmering i Java, datastrukturer och algoritmer. Föreläsning 3 Jonas Lindgren, Institutionen för Datavetenskap, LiU
TDDC30 Objektorienterad programmering i Java, datastrukturer och algoritmer. Föreläsning 3 Jonas Lindgren, Institutionen för Datavetenskap, LiU På denna föreläsning: Abstrakta datatyper Listor Stackar
Avancerad SQL Kapitel 4. Databaser: Avancerad SQL. sid SQL datatyper 1 Integritetsbegränsningar 3 Auktorisering 7 Inbäddad SQL 10 Dynamisk SQL 10
Avancerad SQL Kapitel 4 Avancerad SQL sid SQL datatyper 1 Integritetsbegränsningar 3 Auktorisering 7 Inbäddad SQL 10 Dynamisk SQL 10 Avancerad SQL, datatyper 4-1 Datatyper i SQL En datatyp, dvs. domän
729G74 IT och programmering, grundkurs. Tema 2. Föreläsning 3 Jody Foo,
729G74 IT och programmering, grundkurs Tema 2. Föreläsning 3 Jody Foo, jody.foo@liu.se Föreläsningsöversikt Information i grafstrukturer Diskret matematik Relationer: kopplingar mellan mängder Funktioner
Grunderna för relationsmodellen!
Grunderna för relationsmodellen! 1 Varför behöver jag lära mig relationsmodellen?! Relationsmodellen är den totalt dominerande datamodellen i moderna databassystem Beskriver databaser som en mängd tabeller
729G74 IT och programmering, grundkurs. Tema 2. Föreläsning 3 Jody Foo,
729G74 IT och programmering, grundkurs Tema 2. Föreläsning 3 Jody Foo, jody.foo@liu.se Föreläsningsöversikt Information i grafstrukturer Diskret matematik Relationer: kopplingar mellan mängder Funktioner
Ett databashanteringssystem (DBHS) skiljer sig från andra programmeringssystem bl.a.
1 Kap. 1 INTRODUKTION Ett databashanteringssystem (DBHS) skiljer sig från andra programmeringssystem bl.a. 1. Möjligheten att hantera persistenta data 2. Möjligheten att accessera stora mängder av data
Föreläsning 2 Datastrukturer (DAT037)
Föreläsning 2 Datastrukturer (DAT037) Fredrik Lindblad 1 2016-11-02 1 Slides skapade av Nils Anders Danielsson har använts som utgångspunkt. Se http://www.cse.chalmers.se/edu/year/2015/course/dat037 Tidskomplexitet
Lösning till tentamensskrivning på kursen Diskret Matematik, moment B, för D2 och F, SF1631 och SF1630, den 1 juni 2011 kl
Matematiska Institutionen KTH Lösning till tentamensskrivning på kursen Diskret Matematik moment B för D2 och F SF63 och SF63 den juni 2 kl 8.- 3.. Examinator: Olof Heden tel. 7354789. Hjälpmedel: Inga
Magnus Nielsen, IDA, Linköpings universitet
Föreläsning 7 Introduktion till sortering TDDC91,TDDE22,725G97: DALG Utskriftsversion av föreläsning i Datastrukturer och algoritmer 24 september 2018 Magnus Nielsen, IDA, Linköpings universitet 7.1 1
TDDC30. Objektorienterad programmering i Java, datastrukturer och algoritmer. Föreläsning 3 Jonas Lindgren, Institutionen för Datavetenskap, LiU
TDDC30 Objektorienterad programmering i Java, datastrukturer och algoritmer. Föreläsning 3 Jonas Lindgren, Institutionen för Datavetenskap, LiU På denna föreläsning: Abstrakta datatyper Listor Stackar
Filosofisk logik Kapitel 15. Robin Stenwall Lunds universitet
Filosofisk logik Kapitel 15 Robin Stenwall Lunds universitet Dagens upplägg Första ordningens mängdlära Naiv mängdlära Abstraktionsaxiomet (eg. comprehension) Extensionalitetsaxiomet Små mängder Ordnade
1 Duala problem vid linjär optimering
Krister Svanberg, april 2012 1 Duala problem vid linjär optimering Detta kapitel handlar om två centrala teoretiska resultat för LP, nämligen dualitetssatsen och komplementaritetssatsen. Först måste vi
Tentamen EIT:DB Databastmetodik 11/1 2013 kl. 13 17 + Lösningsförslag
Tentamen EIT:DB Databastmetodik 11/1 2013 kl. 13 17 + Lösningsförslag Inga hjälpmedel är tillåtna (annat än ordbok). Kort syntaxsamling för delar av SQL samt lista med symboler för relationsalgebraiska
Tjänsteprototypning. och tjänsterepresentationer. Johan Blomkvist IDA-HCS-IxS
Tjänsteprototypning och tjänsterepresentationer Johan Blomkvist IDA-HCS-IxS Twitter: @hellibop Dagens föreläsning Tjänsteperspektiv Konceptualiseringar av tjänsteprototyper Tjänsteprototypning 2 Prototyp
Omtentamen: Tillämpad Programmering (ID1218) :00-13:00
ID1218 Johan Montelius Omtentamen: Tillämpad Programmering (ID1218) 2012-06-12 09:00-13:00 Förnamn: Efternamn: Regler Du får inte ha något materiel med dig förutom skrivmateriel. Mobiler etc, skall lämnas
Innehåll. F7: Tabell, hashtabell, relation & lexikon. Gränsyta till Tabell. Tabell. Tabell Hashtabell Relation Lexikon.
Innehåll F7: Tabell, hashtabell, relation & lexikon Niclas Börlin 5DV49 Datastrukturer och algoritmer Tabell Hashtabell Relation Lexikon Tabell Gränsyta till Tabell Modell Uppslagsbok Organisation Ändlig
Objektorienterad programmering Föreläsning 10. Copyright Mahmud Al Hakim Sorteringsalgoritmer
Objektorienterad programmering Föreläsning 10 Copyright Mahmud Al Hakim mahmud@webacademy.se www.webacademy.se Agenda Fält fort. Fält som parametrar Parameterfält params Parametrar till Main Listor ArrayList
Explorativ övning 9 RELATIONER OCH FUNKTIONER
Explorativ övning 9 RELATIONER OCH FUNKTIONER Övningens syfte är att bekanta sig med begreppet relation på en mängd M. Begreppet relation i matematiska sammanhang anknyter till betydelsen av samma ord
TDDC30. Objektorienterad programmering i Java, datastrukturer och algoritmer. Föreläsning 6 Jonas Lindgren, Institutionen för Datavetenskap, LiU
TDDC30 Objektorienterad programmering i Java, datastrukturer och algoritmer. Föreläsning 6 Jonas Lindgren, Institutionen för Datavetenskap, LiU På denna föreläsning: Sortering Selectionsort, Bubblesort,
Problemlösning. Planering av program. Konstruktion. Programmeringsmetaforer. Problemlösning. Programmering = Problemlösning
Problemlösning Problemlösning Vad är problemlösning Hur ser ett problem ut? Programmering = Problemlösning Omformulering av ett problem kan i slutändan omsättas i ett program. Ett program består av en,
Hur implementera algoritmerna på maskinnivå - datorns byggstenar
Hur implementera algoritmerna på maskinnivå - datorns byggstenar Binära tal Boolesk logik grindar och kretsar A A extern representation intern representation minnet i datorn extern representation 1000001
Instruktioner - Datortentamen TDDD73 Funktionell och imperativ programmering i Python
Instruktioner - Datortentamen TDDD73 Funktionell och imperativ programmering i Python Hjälpmedel Följande hjälpmedel är tillåtna: Exakt en valfri bok, t.ex. den rekommenderade kursboken. Boken får ha anteckningar,
Induktionsprincipen Starka induktionsprincipen Välordningsprincipen Divisionsalgoritmen
Föreläsning 3 Induktionsprincipen Starka induktionsprincipen Välordningsprincipen Divisionsalgoritmen Mängder Induktion behöver inte börja från 1, Grundsteget kan vara P (n 0 ) för vilket heltal n 0 som
Föreläsning 5: Relationsmodellen
Föreläsning 5: Relationsmodellen DVA234 Databaser IDT Akademin för Innovation, Design och Teknik Innehåll Föreläsningens mål: Att ge en överblick över hur relationsmodellen fungerar Relationsmodellen Relationsalgebra
Synkronisering. Föreläsning 8
Synkronisering Föreläsning 8 Synkronisering Så stort, intrikat och viktigt att det finns hela kurser om det i parallellprogrammering. Vi fuskar lite med några av de viktigaste bitarna! Synkronisering Vad
MODELLER OCH SPRÅK FÖR RELATIONSDATABASER: Relationsalgebra, Relationskalkyl (Tuple calculus) & SQL
MODELLER OCH SPRÅK FÖR RELATIONSDATABASER: Relationsalgebra, Relationskalkyl (Tuple calculus) & SQL Ted Codd 970 - klassisk artikel: The relational model of data - DATASTRUKTUR - OPERATIONER - INTEGRITY
Programmering II (ID1019) :00-11:00
ID1019 Johan Montelius Programmering II (ID1019) 2015-06-11 08:00-11:00 Instruktioner Du får inte ha något materiel med dig förutom skrivmateriel. Mobiler etc, skall lämnas till tentamensvakten. Svaren
Karlstads Universitet, Datavetenskap 1
2003-01-20 DAV B04 - Databasteknik 2003-01-20 KaU - Datavetenskap - DAV B04 - MGö 26 Relationsmodellen En formell teori som baserar sig på (främst) mängdlära predikatlogik Föreslogs av E.F Codd 1970 i
Dynamisk programmering. Dynamisk programmering. Dynamisk programmering. Dynamisk programmering
Betrakta ett lagerhållningsproblem i flera tidsperioder. Vi har tillverkning och försäljning av produkter i varje tidsperiod. Dessutom kan vi lagra produkter mellan tidsperioder, för att utnyttja stordriftsfördelar
Datastrukturer och algoritmer
Datastrukturer och algoritmer Föreläsning 16 2 Innehåll Snabbrepetition Exempeltentamen Kursutvärdering Mina målsättningar Kursens mål: 3 Rolig och viktig kurs Bli en bättre programmerare och inse att
Programmering II (ID1019)
ID1019 Johan Montelius Instruktioner Betyg Programmering II (ID1019) 2019-03-08 Svaren skall lämnas på dessa sidor, använd det utrymme som nns under varje uppgift för att skriva ner ditt svar (inte på
de var svåra att implementera och var väldigt ineffektiva.
OBS! För flervalsfrågorna gäller att flera alternativ eller inget alternativ kan vara korrekt. På flervalsfrågorna kan man bara ha rätt eller fel, dvs frågan måste vara helt korrekt besvarad. Totalt kan
min c 1 x 1 + c 2 x 2 då x 1 + x 2 = 1, x 1 {0, 1}, x 2 {0, 1} plus andra bivillkor. Vi måste göra k st av n alternativ:
Heltalsprogrammering Speciell användning av heltalsvariabler max z = då n c j x j j= n a ij x j b i j= x j 0 x j heltal i =,..., m j =,..., n j =,..., n ofta x j u j j =,..., n Oftast c, A, b heltal. Ibland
Relationsalgebra. Relationsalgebra består av en mängd operatorer som tar en eller två relationer som input och producerar en ny relation som resultat.
Database: Relationsalgeba 2-11 Relationsalgeba Relationsalgeba bestå av en mängd opeatoe som ta en elle två elatione som input och poducea en ny elation som esultat. De fundamentala opeationena ä unäa
TDDC30. Objektorienterad programmering i Java, datastrukturer och algoritmer. Föreläsning 8 Jonas Lindgren, Institutionen för Datavetenskap, LiU
TDDC30 Objektorienterad programmering i Java, datastrukturer och algoritmer. Föreläsning 8 Jonas Lindgren, Institutionen för Datavetenskap, LiU På denna föreläsning: Träd Traversering Insättning, borttagning
Tentamen DATABASTEKNIK - 1DL116, 1MB025
Uppsala universitet Institutionen för informationsteknologi Kjell Orsborn, Tore Risch Tentamen 2004-08-16 DATABASTEKNIK - 1DL116, 1MB025 Datum...Måndagen den 16 Augusti, 2004 Tid...14:00-19:00 Jourhavande
Karlstads Universitet, Datavetenskap 1
* * * * DAV B04 - Databasteknik! "# $ %'&( ) KaU - Datavetenskap - DAV B04 - MGö 132 Riktlinjer när man vill skapa en databas 1) Designa så att det är lätt att förstå innebörden. Kombinera inte attribut
18 juni 2007, 240 minuter Inga hjälpmedel, förutom skrivmateriel. Betygsgränser: 15p. för Godkänd, 24p. för Väl Godkänd (av maximalt 36p.
HH / Georgi Tchilikov DISKRET MATEMATIK,5p. 8 juni 007, 40 minuter Inga hjälpmedel, förutom skrivmateriel. Betygsgränser: 5p. för Godkänd, 4p. för Väl Godkänd (av maximalt 36p.). Förenkla (så mycket som
Begreppen "mängd" och "element" är grundläggande begrepp i matematiken.
MÄNGDER Grundläggande begrepp och beteckningar Begreppen "mängd" och "element" är grundläggande begrepp i matematiken. Vi kan beskriva (ange, definiera) en mängd som innehåller ändligt många element genom
Linjärt minne. Sammanhängande minne är ej flexibelt. Effektivt
Binära träd (forts) Ett binärt träd kan lagras i ett enda sammanhängande minne Roten har index 1 Vänster barn till nod i har index 2*i Höger barn till nod i har index 2*i + 1 Föräldern till nod i har index
IT för personligt arbete F5
IT för personligt arbete F5 Datalogi del 1 DSV Peter Mozelius 1 En dators beståndsdelar 1) Minne 2) Processor 3) Inmatningsenheter 1) tangentbord 2) scanner 3) mus 4) Utmatningsenheter 1) bildskärm 2)
Tentamen DATABASTEKNIK - 1DL116, 1MB025, 1DL124
Uppsala universitet Institutionen för informationsteknologi Kjell Orsborn, Tore Risch Tentamen 2004-08-23 DATABASTEKNIK - 1DL116, 1MB025, 1DL124 Datum...Tisdagen den 23 Augusti, 2005 Tid...8:00-13:00 Jourhavande
Optimering. Optimering
TAOP88 Optimering för ingenjörer Examinator: Kaj Holmberg kaj.holmberg@liu.se Kurshemsida: http://courses.mai.liu.se/gu/taop88 Lärare: Föreläsningar: Kaj Holmberg Lektioner, labbar: Oleg Burdakov, William
Optimering och simulering: Hur fungerar det och vad är skillnaden?
Optimering och simulering: Hur fungerar det och vad är skillnaden? Anders Peterson, Linköpings universitet Andreas Tapani, VTI med inspel från Sara Gestrelius, RIS-SIS n titt i KAJTs verktygslåda Agenda
Problemlösning och funktioner Grundkurs i programmering med Python
Hösten 2009 Dagens lektion Problemlösningsstrategier Repetition av funktioner Mer om funktioner 2 Problemlösningsstrategier 3 PROBLEMLÖSNINGSSTRATEGIER Strategier Det finns ett flertal olika ansatser till
I kursen i endimensionell analys är mängden av reella tal (eng. real number), R, fundamental.
Lunds tekniska högskola Datavetenskap Lennart ndersson Föreläsningsanteckningar EDF10 4 Mängder 4.1 Motivering Mängden är den mest grundläggande diskreta strukturen. Nästan alla matematiska begrepp går
DIVISIONSEXEMPEL RELATIONSALGEBRA OCH SQL. r s använder vi för att uttrycka frågor där ordet alla figurerar:
DIVISIONSEXEMPEL RELATIONSALGEBRA OCH SQL r s använder vi för att uttrycka frågor där ordet alla figurerar: Ex. Vilka personer har stamkundskort vid ALLA klädesbutiker i stad X? Vilka personer har bankkonto
Kombinatorik. Kapitel 2. Allmänt kan sägas att inom kombinatoriken sysslar man huvudsakligen med beräkningar av
Kapitel 2 Kombinatorik Allmänt kan sägas att inom kombinatoriken sysslar man huvudsakligen med beräkningar av det antal sätt, på vilket elementen i en given mängd kan arrangeras i delmängder på något sätt.
Introduktion till formella metoder Programmeringsmetodik 1. Inledning
Introduktion till formella metoder Programmeringsmetodik 1. Inledning Fokus på imperativa program (ex. C, Java) program betyder härefter ett imperativt program Program bestäms i en abstrakt mening av hur
Dagens föreläsning Programmering i Lisp Fö 7. Sammanfattning funktionell programmering Exempel på funktionella programspråk
1 Dagens föreläsning Programmering i Lisp Fö 7 Kopplingen funktionella programmering och diskret matematik. Jämför vad ni hittills gjort i denna kurs och i den diskreta matematiken, med referenser in i
1 LP-problem på standardform och Simplexmetoden
Krister Svanberg, mars 202 LP-problem på standardform och Simplexmetoden I detta avsnitt utgår vi från LP-formuleringen (2.2) från föreläsning. Denna form är den bäst lämpade för en strömlinjeformad implementering
TNK049 Optimeringslära
TNK49 Optimeringslära Clas Rydergren, ITN Föreläsning 7 Nätverksoptimering Billigaste uppspännande träd (MST) Billigaste väg (SP) Projektnätverk Minkostnadsflödesproblem Agenda Terminologi för grafer/nätverk
Tommy Färnqvist, IDA, Linköpings universitet. 1 ADT Map/Dictionary 1 1.1 Definitioner... 1 1.2 Implementation... 2
Föreläsning 5 ADT Map/Dictionary, hashtabeller TDDI16: DALG Utskriftsversion av föreläsning i Datastrukturer och algoritmer 16 september 2015 Tommy Färnqvist, IDA, Linköpings universitet 5.1 Innehåll Innehåll
Begreppen "mängd" och "element" är grundläggande begrepp i matematiken.
MÄNGDER Grundläggande begrepp och beteckningar egreppen "mängd" och "element" är grundläggande begrepp i matematiken. Vi kan beskriva (ange, definiera) en mängd som innehåller ändligt många element genom
6. Ge korta beskrivningar av följande begrepp a) texteditor b) kompilator c) länkare d) interpretator e) korskompilator f) formatterare ( pretty-print
Datalogi I, grundkurs med Java 10p, 2D4112, 2002-2003 Exempel på tentafrågor på boken Lunell: Datalogi-begreppen och tekniken Obs! Andra frågor än dessa kan komma på tentan! 1. Konvertera talet 186 till
Programmering i C++ EDA623 Objektorienterad programutveckling. EDA623 (Föreläsning 5) HT 2013 1 / 33
Programmering i C++ EDA623 Objektorienterad programutveckling EDA623 (Föreläsning 5) HT 2013 1 / 33 Objektorienterad programutveckling Innehåll Grundläggande begrepp Relationer mellan objekt Grafisk representation
Grundläggande logik och modellteori
Grundläggande logik och modellteori Kapitel 4: Konjunktiv och disjunktiv normalform Henrik Björklund Umeå universitet 15. september, 2014 CNF och DNF Konjunktiv normalform (CNF) Omskrivning av en formel
Grundläggande logik och modellteori
Grundläggande logik och modellteori Kapitel 6: Binära beslutsdiagram (BDD) Henrik Björklund Umeå universitet 22. september, 2014 Binära beslutsdiagram Binära beslutsdiagram (Binary decision diagrams, BDDs)
Introduktion till programmering SMD180. Föreläsning 9: Tupler
Introduktion till programmering Föreläsning 9: Tupler 1 1 Sammansatta datatyper Strängar Sekvenser av tecken Icke muterbara Syntax: "abcde" Listor Sekvenser av vad som helst Muterbara Syntax: [1, 2, 3]
Tommy Färnqvist, IDA, Linköpings universitet
Föreläsning 8 Sortering och urval TDDC70/91: DALG Utskriftsversion av föreläsning i Datastrukturer och algoritmer 1 oktober 2013 Tommy Färnqvist, IDA, Linköpings universitet 8.1 Innehåll Innehåll 1 Sortering
min c 1 x 1 + c 2 x 2 då x 1 + x 2 = 1, x 1 {0, 1}, x 2 {0, 1} plus andra bivillkor. Vi måste göra k st av n alternativ:
Heltalsprogrammering Speciell användning av heltalsvariabler max z = då c j x j a ij x j b i x j 0 x j heltal i =,..., m j =,..., n j =,..., n ofta x j u j j =,..., n Oftast c, A, b heltal. Ibland u j
TDDC74 FÖRELÄSNING 9 ANDERS MÄRAK LEFFLER IDA/HCS
TDDC74 FÖRELÄSNING 9 ANDERS MÄRAK LEFFLER IDA/HCS 180226 Idag (ADT), OOP i Racket, labb 5 2 Allmän info Duggan. Laboration 4 deadline. Planering framöver Muddy cards (nästa timme) 3 Lite repetition ADT
BEGREPP HITTILLS FÖRELÄSNING 2 SAMMANSATTA UTTRYCK - SCHEME DATORSPRÅK
FÖRELÄSNING 2 Viss repetition av Fö1 Rekursivt fallanalys Rekursiva beskrivningar BEGREPP HITTILLS Konstant, Namn, Procedur/Funktion, LAMBDA, Parameter, Argument, Kropp, Villkor/Rekursion, Funktionsanrop,
OMTENTAMEN I DATASTRUKTURER OCH ALGORITMER DVG B kl. 14:15 19:15
OMTENTAMEN I DATASTRUKTURER OCH ALGORITMER DVG B03 150609 kl. 14:15 19:15 Ansvarig Lärare: Donald F. Ross Hjälpmedel: Inga. Algoritmerna finns i de respektive uppgifterna eller i bilogarna. *** OBS ***