Frågeoptimering. Frågeoptimering kapitel 14
|
|
- Helena Åberg
- för 8 å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
Läs merRelationell 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
Läs merRelationsmodellen. 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,
Läs merUppdelning. 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
Läs merDagens 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
Läs merVad 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
Läs merSQL, 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
Läs merReducering 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
Läs merE-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
Läs merDatabaser - 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
Läs merEMPS(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
Läs merFunktionella 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
Läs merTentamen 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
Läs merDatabasdesign. 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
Läs merTentamen 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
Läs mern 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
Läs merInformationssystem 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
Läs merIntroduktion 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
Läs merTypsystem. 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
Läs merTypsystem. 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
Läs merTillä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.
Läs merSpeciell 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
Läs merFrå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
Läs merRelationsalgebra. 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
Läs merFrå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
Läs merUniversitetet 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
Läs merDagens 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
Läs merQuine 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.
Läs merSprå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
Läs merTentamen 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
Läs merProgrammering 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
Läs merTENTAMEN: 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
Läs merTentamen 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äs merLä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
Läs merDatastrukturer 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äs merLö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:
Läs merTDDC30. 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
Läs merAvancerad 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
Läs mer729G74 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
Läs merGrunderna 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
Läs mer729G74 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
Läs merEtt 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
Läs merFö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äs merLö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
Läs merMagnus 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
Läs merTDDC30. 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
Läs merFilosofisk 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
Läs mer1 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
Läs merTentamen 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
Läs merTjä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
Läs merOmtentamen: 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
Läs merInnehå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
Läs merObjektorienterad 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
Läs merExplorativ ö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
Läs merTDDC30. 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,
Läs merProblemlö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,
Läs merHur 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
Läs merInstruktioner - 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,
Läs merInduktionsprincipen 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
Läs merFö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
Läs merSynkronisering. 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
Läs merMODELLER 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
Läs merProgrammering 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
Läs merKarlstads 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
Läs merDynamisk 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
Läs merDatastrukturer 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
Läs merProgrammering 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å
Läs merde 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
Läs mermin 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
Läs merRelationsalgebra. 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
Läs merTDDC30. 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
Läs merTentamen 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
Läs merKarlstads 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
Läs mer18 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
Läs merBegreppen "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
Läs merLinjä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
Läs merIT 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)
Läs merTentamen 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
Läs merOptimering. 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
Läs merOptimering 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
Läs merProblemlö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
Läs merI 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
Läs merDIVISIONSEXEMPEL 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
Läs merKombinatorik. 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.
Läs merIntroduktion 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
Läs merDagens 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
Läs mer1 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
Läs merTNK049 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
Läs merTommy 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
Läs merBegreppen "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
Läs mer6. 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
Läs merProgrammering 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
Läs merGrundlä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
Läs merGrundlä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)
Läs merIntroduktion 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]
Läs merTommy 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
Läs mermin 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
Läs merTDDC74 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
Läs merBEGREPP 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,
Läs merOMTENTAMEN 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 ***
Läs mer