Föreläsning 7: Transaktioner

Storlek: px
Starta visningen från sidan:

Download "Föreläsning 7: Transaktioner"

Transkript

1 Föreläsning 7: Transaktioner DVA234 Databaser IDT Akademin för Innovation, Design och Teknik

2 Innehåll Föreläsningens mål: Att ge en överblick transaktioner och samtidighet i databaser fungerar Transaktioner BEGIN TRANSACTION, COMMIT, ROLLBACK Transaktionshantering ACID-egenskaperna Rollbackhantering Samtidighet (concurrency) Pessimistic concurrency-control Optimistisk concurrency-control 2

3 Logiska arbetsenheter Tänk er en stored procedure för att föra över pengar mellan 2 konton Processen kräver flera delsteg som måste utföras tillsammans. Detta kallas en logisk arbetsenhet Steg 1: Läs saldot på konto 1 Steg 2: Minska saldot på konto 1 med N kr Steg 3: Läs saldot på konto 2 Steg 4: Öka saldot på konto 2 med N kr Vad händer om något går fel i steg 3 och proceduren avbryts? Kunden har förlorat N kr på konto 1 3

4 Orsaker till fel Så vad kan egentligen gå fel vid överföringen? 1. Fysiska fel, t.ex. Servern går plötsligt ner Diskfel gör att databasfilen är korrupt 2. Semantiska fel, t.ex. Konto 2 finns inte så steg 3 (läs saldo from konto 2) renderar fel 3. Samtidighetsfel (Concurrency errors), t.ex. Någon tar samtidigt ut pengar från samma konton i en bankomat Denna föreläsning tittar vi på hur man hanterar fall 2 och 3 Fysiska fel går vi igenom nästa vecka 4

5 Struktur på logisk arbetsenhet En stored procedure skrivs typiskt i SQL Denna kan dock brytas ner i mindre beståndsdelar SELECT är ju egentligen läsningar från DB INSERT är ju egentligen skrivningar till DB, och UPDATE och DELETE är ju skrivningar och ev. läsningar till/från DB Därför bryter vi ner proceduren i två beståndsdelar: En läsning av dataobjekt X till lokal variabel x WRITE X En skrivning av lokal variabel x till dataobjekt X Där X kan vara en rad i en tabell, en hel tabell eller ett enskilt värde I detta sammanhang spelar det inte så stor roll x (kursivt) är namnet på den lokala variabel som vi läser till/skriver från 5

6 Hur går läsningar/skrivningar till? Transaktion Databas x=x WRITE X Dataobjekt X 1. Dataobjekt X läses in från databasen och lagras lokalt i transaktionen som x. 2. Lokala variabeln x ökas med 15 (X lämnas orörd). 3. Lokala variabeln x skrivs tillbaks till dataobjekt X i databasen. 6

7 Överföring som logisk arbetsenhet Vi kan därför bryta ner vår stored procedure till Logisk arbetsenhet 1 (WU1) x=x-n WRITE X READ Y y=y+n WRITE Y -- läs in konto X till lokal variabel -- minskning av lokal variabel med N kr -- skriv nya saldot till konto X -- läs in konto Y till lokal variabel -- ökning av lokal variabel med N kr -- skriv nya saldot till konto Y Låt oss också skapa en till logisk arbetsenhet för att sätta in pengar (WU2) -- läs in konto X till lokal variabel x=x+m -- ökning av lokal variabel med M kr WRITE X -- skriv nya saldot till konto X 7

8 Samtidiga användare En databasserver skall ju kunna hantera samtidiga användare Banker Massor av kunder som sätter in och tar ut samtidigt Det FÅR inte bli så att man nån gång tappar bort pengar Biljettsläpp till Bruce Springsteen tusentals personer vill åt biljetter Jobbigt om flera köper samma plats Därför klarar databasservrar av att köra flera arbetsenheter samtidigt: Man låter en arbetsenhet köra en liten stund Man avbryter körningen och låter en annan köra Sedan får den första köra igen, osv Detta kallas INTERLEAVING Ni kommer att jobba massor med detta i Operativsystemskursen 8

9 Exempel på Interleaving WU 1 WU 2 x=x-n WRITE X x=x+m WRITE X READ Y y=y+n WRITE Y Tid I detta fallet får WU1 köra en liten stund, WU2 kör hela, och WU1 kör sedan klart Semantiskt blir detta scenario rätt, men det kan gå väldigt snett!!! 9

10 Tre vanliga fel vid interleaving 1. Förlorade uppdateringar (Lost updates) 2. Smutsiga läsningar (Dirty reads) 3. Felaktiga summor Förutom dessa finns andra fel Spökposter (phantom reads), Oupprepbara läsningar (nonrepeatable reads) osv 10

11 Förlorade uppdateringar (lost updates) WU 1 WU 2 Exempel WU 1 läser in 100 kr från X x=x-n WU 1 minskar lok var till 50kr WU 2 läser in 100 kr från X x=x+m WU 2 ökar lok var till 125kr WRITE X WU 1 skriver 50kr till X i DB READ Y WRITE X WU2 skriver 125kr till X i DB y=y+n WRITE Y Denna uppdatering är förlorad I detta fallet skriver WU 2 över uttaget som WU 1 gjorde Man har 50 kronor för mycket på konto X 11

12 Smutsiga läsningar (Dirty reads) WU 1 WU 2 Exempel WU 1 läser in 100 kr från X x=x-n WU 1 minskar lok var till 50kr WRITE X WU 1 skriver 50kr till X i DB WU 2 läser in 50 kr från X x=x+m WU 2 ökar lok var till 75kr WRITE X WU2 skriver 75kr till X i DB READ Y WU 1 Error konto Y finns ej Vad skall WU2 göra nu??? WU2 har läst ett smutsigt data (från WU1 som inte avslutas) I detta fall har WU 2 baserat sin operation på WU 1 som avbröts Vi har här förlorat pengar Alt 1, WU 1 gör inget à 50kr borta Alt 2, WU 1 backar sin skrivning och sätter X =100 igen à 25 kr borta Notera att WU 1 inte förstår semantiken för WU 2 och kan rädda den 12

13 Felaktiga summeringar x=x-n WRITE X READ Y y=y+n WRITE Y WU 1 WU 3 Exempel sum=0 READ A sum=sum+a sum=sum+x READ Y sum=sum+y WU 3 skall summera saldon för en kunds alla konton Uttaget från X syns här Här tappas pengarna in transit bort N har tagits ut från X men inte hunnit sättas in på Y 13

14 Tre huvudproblem Hur skall databashanteraren hantera Backande av arbetsenheter som avbryts? Samtidiga arbetsenheter? Räddande av arbetsenheter (pågående och avslutade) vid en systemkrasch? (Detta tittar vi på på nästa föreläsning) 14

15 Transaktionshantering Transaktionshantering innebär en garanti att inget data går förlorat i en transaktion att förändringar som görs i en misslyckad transaktion blir ogjorda att förändringar som görs i en lyckad transaktion verkligen utförs DBMS-komponenten som tillhandahåller transaktionshantering kallas Transaction Manager Och operatorerna för att jobba mot TM är: BEGIN TRANSACTION: Signalerar början på en transaktion. COMMIT: Signalerar lyckat avslut för en transaktion, att ändringar som gjorts i transaktionen skall permanentas. ROLLBACK: Signalerar misslyckat avslut för en transaktion, att ändringar som gjorts i transaktionen skall göras ogjorda ( rullas tillbaka ). 15

16 Några ord om Rollback Det finns 3 skäl till varför en rollback sker: 1. Användaren väljer att göra rollback, t.ex. om man lägger till IF saldo<n ROLLBACK i sin transaktion 2. Databasen upptäcker något semantiskt fel i transaktionen, t.ex. konto 2 finns ej. 3. Transaktionen har kommit i konflikt med annan transaktion (vi kommer till det strax) 16

17 Pseudokod för en transaktion BEGIN TRANSACTION; UPDATE Konto SET Saldo=Saldo-300 WHERE Pnr= AND Kontonr=1; IF error ROLLBACK; COMMIT; UPDATE Konto SET Saldo=Saldo+300 WHERE Pnr= AND Kontonr=2; IF error ROLLBACK; Dessa tre operatorer BEGIN TRANSACTION, ROLLBACK, COMMIT är egentligen det enda ni behöver veta som användare av transaktioner 17

18 Arbetsenhet vs transaktion En arbetsenhet som annoteras med transaktionsoperationer blir en transaktion, t.ex.: WU 1 x=x-n WRITE X READ Y y=y+n WRITE Y T 1 BEGIN TRANSACTION IF x<n ROLLBACK x=x-n WRITE X READ Y y=y+n WRITE Y COMMIT 18

19 ACID-egenskaperna Transaktioner har fyra viktiga garantier, de sk. ACID-egenskaperna Atomicity En transaktion utförs atomärt, dvs allt eller inget Consistency En transaktion bevarar konsistens i databasen DB ska vara konsistent före och efter men ej nödvändigtvis inom en transaktion Isolation Transaktioner är isolerade från varandra, dvs ändringar som sker inom en transaktion ska inte synas för andra transaktioner förrän efter COMMIT. Durability När en transaktion gör COMMIT skall ev. ändringar alltid bestå, även vid en efterföljande krasch 19

20 Vad innebär då detta? Transaktionshanteraren som finns i servern upprätthåller automatiskt ACID egenskaperna. Det behöver man alltså inte tänka på som användare Detta sker med hjälp av ett flertal mekanismer i servern som: Loggar alla skrivningar som transaktioner gör Låser transaktioner som är i potentiell konflikt med varandra Avbryter transaktioner som hamnat i olösbara konflikter Bara för att vara tydlig: Resten av denna föreläsning visar de interna mekanismerna inne i servern. Som användare eller utvecklare av transaktioner behöver man inte skapa loggar eller sätta lås i sina transaktioner utan det gör servern utifrån era transaktionsoperationer!!!! 20

21 Transaktionsloggning En transaktionslogg används för att hålla reda på vilka transaktioner som f.n. kör, samt hur långt de har kommit i exekveringen. Loggen (eller journalen) sparas på disk (eller på band i riktigt stora databassystem) Transaktionsloggen konsulteras när en transaktion vill göra ROLLBACK program avslut 21

22 Transaktionsloggen Transaktionen T1 Begin Transaction Read X.attr à a Read Y.attr à b Write Z.attr ß a + b Write W.attr ß a * b COMMIT Transaktionslogg för T1 <TIME1> Transaction begins (a,b är lokala variabler) EXEMPELTABELL PK Attr X 2 Y 4 Z 99 W 7 22

23 Transaktionsloggen Transaktionen T1 Begin Transaction Read X.attr à a Read Y.attr à b Write Z.attr ß a + b Write W.attr ß a * b COMMIT Transaktionslogg för T1 <TIME1> Transaction begins (a,b är lokala variabler) EXEMPELTABELL PK Attr X 2 Y 4 Z 99 W 7 23

24 Transaktionsloggen Transaktionen T1 Begin Transaction Read X.attr à a Read Y.attr à b Write Z.attr ß a + b Write W.attr ß a * b COMMIT Transaktionslogg för T1 <TIME1> Transaction begins (a,b är lokala variabler) EXEMPELTABELL PK Attr X 2 Y 4 Z 99 W 7 24

25 Transaktionsloggen Transaktionen T1 Begin Transaction Read X.attr à a Read Y.attr à b Write Z.attr ß a + b Write W.attr ß a * b COMMIT Transaktionslogg för T1 <TIME1> Transaction begins <TIME2> Write Z, Old=99, New=6 (a,b är lokala variabler) EXEMPELTABELL PK Attr X 2 Y 4 Z 99 6 W 7 25

26 Transaktionsloggen Transaktionen T1 Begin Transaction Read X.attr à a Read Y.attr à b Write Z.attr ß a + b Write W.attr ß a * b COMMIT Transaktionslogg för T1 <TIME1> Transaction begins <TIME2> Write Z, Old=99, New=6 <TIME3> Write W, Old=7, New=8 (a,b är lokala variabler) EXEMPELTABELL PK Attr X 2 Y 4 Z 99 6 W

27 Transaktionsloggen Transaktionen T1 Begin Transaction Read X.attr à a Read Y.attr à b Write Z.attr ß a + b Write W.attr ß a * b COMMIT Transaktionslogg för T1 <TIME1> Transaction begins <TIME2> Write Z, Old=99, New=6 <TIME3> Write W, Old=7, New=8 <TIME4> Transaction commits (a,b är lokala variabler) EXEMPELTABELL PK Attr X 2 Y 4 Z 99 6 W 7 8 Vid COMMIT sker följande: 1. Transaktionsloggen skrivs till disk 2. Användaren får ett OK tillbaks 3. Eventuell uppstädning sker i databasen Vid ett ROLLBACK används transaktionsloggen för att återställa värdena. 27

28 Samtidiga/parallella transaktioner Serialiserbarhet Låsning Två-faslåsning (Pessimistisk samtidighethantering) Optimistisk samtidighetshantering 28

29 Transaktionskonflikter Ett transaktionschema består av en eller flera transaktioner Om två eller flera transaktioner utförs seriellt i ett transaktionsschema så utförs de korrekt. Om transaktionerna utförs samtidigt kan konflikter mellan operationer uppstå. (Dirty reads, lost updates osv ) En konflikt mellan två operationer kan uppstå om: Operationerna tillhör olika transaktioner Operationerna använder samma data/objekt Om minst en av operationerna skriver till gemensamma datat/objektet 29

30 Serialiserbarhet Givet en mängd transaktioner; Om man (i efterhand) kan konstruera en ordning av samtliga ingående transaktioners händelser så att slutresultatet blir detsamma som om varje transaktion exekverades seriellt så är transaktionsschemat serialiserbart. Trans 3 Trans 5 T4 Trans 3 Trans 2 Trans 1 30

31 Exempel på serialisering T1 T2 Värde på X Värde på Y X 1 Y 1 x=x-n WRITE X X 2 Y 1 READ Y y=y+n WRITE Y X 2 Y 2 x=x+m WRITE X X 3 Y 2 DB-state Read-set Write-Set DB-state Read-set Write-Set DB-state X 1 Y 1 X 1 Y 1 T1 X 2 Y 2 X 2 Y 2 X 2 T2 X 3 X 3 Y 2 Schemat är serialiserbart. T1 hände före T2 31

32 Exempel på serialisering T1 T2 Värde på X Värde på Y X 1 Y 1 x=x+m WRITE X X 2 Y 1 x=x-n WRITE X X 3 Y 1 READ Y y=y+n WRITE Y X 3 Y 2 DB-state Read-set Write-Set DB-state Read-set Write-Set DB-state X 1 Y 1 X 1 T2 X 2 X 2 Y 1 X 2 Y 1 T1 X 3 Y 2 X 3 Y 2 Schemat är serialiserbart. T2 hände före T1 32

33 Exempel på serialisering T1 T2 Värde på X Värde på Y X 1 Y 1 x=x-n WRITE X X 2 Y 1 x=x+m WRITE X X 3 Y 1 READ Y y=y+n WRITE Y X 3 Y 2 DB-state Read-set Write-Set DB-state Read-set Write-Set DB-state X 1 Y 1 X 1 Y 1 T1 X 2 Y 2 X 2 Y 2 X 2 T2 X 3 X 3 Y 2 Schemat är serialiserbart. T1 hände före T2 Detta TROTS att T2 avslutade före T1 33

34 Exempel på serialisering T1 T2 Värde på X Värde på Y X 1 Y 1 x=x-n x=x+m WRITE X X 2 Y 1 READ Y WRITE X X 3 Y 1 y=y+n WRITE Y X 3 Y 2 DB-state Read-set Write-Set DB-state Read-set Write-Set X 1 Y 1 X 1 Y 1 T1 X 2 Y 2 X 2 Y 2 X 1 T2 X 3 OK, detta gick ju inte T1 kan inte ha hänt före T2 Vi får prova tvärtom 34

35 Exempel på serialisering T1 T2 Värde på X Värde på Y X 1 Y 1 x=x-n x=x+m WRITE X X 2 Y 1 READ Y WRITE X X 3 Y 1 y=y+n WRITE Y X 3 Y 2 DB-state Read-set Write-Set DB-state Read-set Write-Set X 1 Y 1 X 1 T2 X 3 X 3 Y 1 X 1 Y 1 T1 X 2 Y 2 Detta gick inte heller T2 kan inte ha hänt före T1 Transaktionsschemat är INTE serialiserbart 35

36 Samtidighetshantering Concurrency-control Så, vi har sett att T1 och T2 potentiellt kan hamna i konflikt med varandra Hur löser vi detta? Svaret är Concurrency-Control En av de mest komplexa mekanismerna i en DBMS!!!!! Består av en kontrollmekanism som tillåter eller förbjuder vissa sekvenser av operationer. Kan blockera eller begära rollback/restart på vilken transaktion som helst 2 vanligaste varianterna Låsningsprotokoll (Pessimistic Concurrency-Control) Optimistic-Concurrency Control 36

37 Låsningsprotokoll Ett lås (lock) är en variabel som förknippas med ett dataobjekt i databasen. I regel kan det finnas ett lås för varje dataobjekt i db n. Låset används för att synkronisera operationer mot ett dataobjekt. En transaktion/operation låser ett lås för att markera en slags behörighet (ensamrätt) till dataobjektet. Ett olåst lås är ledigt för låsning av en annan transaktion. Olika typer av lås: Binära lås: har två tillstånd, låst och olåst Delade/Exklusiva lås: har flera låstillstånd 37

38 Binära lås Ett binärt lås har två tillstånd: låst (1) eller olåst (0). Ett låst lås för dataobjektet X innebär att inga (andra) operationer får använda X. Ett försök att låsa X leder till att transaktioner försätts i vänteläge. T1 LOCK X x=x-m WRITE X UNLOCK X X T2 LOCK X x=x-m WRITE X UNLOCK X 38

39 Binära lås Ett binärt lås har två tillstånd: låst (1) eller olåst (0). Ett låst lås för dataobjektet X innebär att inga (andra) operationer får använda X. Ett försök att låsa X leder till att transaktioner försätts i vänteläge. T1 LOCK X x=x-m WRITE X UNLOCK X X T2 LOCK X x=x-m WRITE X UNLOCK X 39

40 Binära lås Ett binärt lås har två tillstånd: låst (1) eller olåst (0). Ett låst lås för dataobjektet X innebär att inga (andra) operationer får använda X. Ett försök att låsa X leder till att transaktioner försätts i vänteläge. T1 LOCK X x=x-m WRITE X UNLOCK X X T2 LOCK X x=x-m WRITE X UNLOCK X 40

41 Binära lås Ett binärt lås har två tillstånd: låst (1) eller olåst (0). Ett låst lås för dataobjektet X innebär att inga (andra) operationer får använda X. Ett försök att låsa X leder till att transaktioner försätts i vänteläge. T1 LOCK X x=x-m WRITE X UNLOCK X X T2 LOCK X x=x-m WRITE X UNLOCK X 41

42 Binära lås Ett binärt lås har två tillstånd: låst (1) eller olåst (0). Ett låst lås för dataobjektet X innebär att inga (andra) operationer får använda X. Ett försök att låsa X leder till att transaktioner försätts i vänteläge. T1 LOCK X x=x-m WRITE X UNLOCK X X T2 LOCK X x=x-m WRITE X UNLOCK X 42

43 Binära lås Ett binärt lås har två tillstånd: låst (1) eller olåst (0). Ett låst lås för dataobjektet X innebär att inga (andra) operationer får använda X. Ett försök att låsa X leder till att transaktioner försätts i vänteläge. T1 LOCK X x=x-m WRITE X UNLOCK X X T2 LOCK X x=x-m WRITE X UNLOCK X 43

44 Binära lås Ett binärt lås har två tillstånd: låst (1) eller olåst (0). Ett låst lås för dataobjektet X innebär att inga (andra) operationer får använda X. Ett försök att låsa X leder till att transaktioner försätts i vänteläge. T1 LOCK X x=x-m WRITE X UNLOCK X X T2 LOCK X x=x-m WRITE X UNLOCK X 44

45 Delade/Exklusiva lås Binära lås är för restriktiva! Varför? Det skadar inte om flera transaktioner får läsa samma dataobjekt Därför finns s.k. shared/exclusive lås (kallas även för read/write-lås) som tillåter: Multipla läslåsningar (Shared lock) En skrivlåsning (Exclusive lock) Alltså: Shared Lock Exclusive Lock Shared Lock Compatible Not Compatible Exclusive Lock Not Compatible Not Compatible 45

46 Exempel med låsning i transaktioner Betänk följande 2 transaktioner Båda tar lås innan de accessar databasen och släpper dem när de är klara med ett visst data T1 READ_LOCK Y READ Y UNLOCK Y WRITE_LOCK X x=x+y WRITE X UNLOCK X T2 READ_LOCK X UNLOCK X WRITE_LOCK Y READ Y y=x+y WRITE Y UNLOCK Y 46

47 Exekveringsscenario DB-state X 1 Y 1 DB-state X 1 Y 1 T1 T2 Värde på X Värde på Y READ_LOCK Y X 1 Y 1 READ Y UNLOCK Y READ_LOCK X UNLOCK X WRITE_LOCK Y READ Y y=x+y WRITE Y X 1 Y 2 UNLOCK Y WRITE_LOCK X x=x+y WRITE X X 2 Y 2 UNLOCK X Read-set X 1 Y 1 Read-set X 1 Y 1 Write-Set T1 X 2 Write-Set T2 Y 2 DB-state X 2 Y 1 DB-state X 1 Y 2 Read-set X 1 Y 1 Read-set X 1 Y 1 Denna borde inte låsts upp här! Vi behöver bättre regler för låsningar Write-Set T2 Y 2 Write-Set T1 X 2 Hmm Något är 47 fel!!

48 Två-faslåsning (ursprungliga) Den vanligaste låsningsalgoritmen. Serialiserbarhet med låsningsprotokoll garanteras om alla låsningar (både läsning och skrivning) kommer före den första upplåsningen i en transaktion. Denna regel kallas two-phase locking protocol Två faser åsyftar på att transaktionen kan delas in i: En växande fas (expanding/growing phase) där den tar en eller flera lås, men utan att låsa upp ngt En krympande fas (shrinking phase) där den låser upp låsta lås, men utan att den försöker låsa nya Det finns flera utökningar av två-faslåsningar (läs boken, ej del av kursen) Rigorous, conservative, strict 2PL Den mest använda är Strict 2PL som behåller writelocks till efter commit 48

49 Våra transaktioner med två-faslåsning Upplåsning sker nu EFTER sista låsningen Undviker det felaktiga exekveringsscenariot T1 READ_LOCK Y READ Y WRITE_LOCK X UNLOCK Y X=X+Y WRITE X UNLOCK X T2 READ_LOCK X WRITE_LOCK Y UNLOCK X READ Y Y=X+Y WRITE Y UNLOCK Y Växande fas Krympande fas 49

50 Exekveringsscenario T1 T2 Värde på X Värde på Y READ_LOCK Y X 1 Y 1 READ Y WRITE_LOCK X UNLOCK Y READ_LOCK X WRITE_LOCK Y UNLOCK X READ Y y=x+y WRITE Y UNLOCK Y T2 kan inte starta här eftersom X är låst här, T2 måste vänta tills T1 låst upp X. Schemat är nu serialiserbart!! x=x+y WRITE X X 2 Y 2 UNLOCK X Dock finns det nu en ny fiende som vi måste hantera Någon som ser??? 50

51 Exekveringsscenario 2 Vad händer om T2 avbryter T1 precis innan T1 låser X?? T1 READ_LOCK Y READ Y WRITE_LOCK X T2 READ_LOCK X WRITE_LOCK Y Y LÅST AV T1, T2 BLOCKED X LÅST AV T2, T1 BLOCKED Ingen av transaktionerna kan nu fortsätta. 51

52 Problem med 2PL:Deadlock Med 2PL finns alltid risken att två eller flera transaktioner blockerar varandra Detta MÅSTE hanteras Någon form av detektionsalgoritm krävs Deadlock-grafer vanligast à Operativsystemskursen!!! När deadlock upptäcks måste det hanteras Transaktionshanteraren kommer att göra ROLLBACK på transaktioner tills deadlocket är upphävt 52

53 Optimistisk Samtidighetshantering Används av en del kommersiella databaser Använder inga lås (i princip) Transaktioner kan: Göra vad dom vill, dvs, läsa och skriva vilka värden som helst (om rättigheterna tillåter) Alla skrivningar lagras dock i lokala (för transaktionen) datastrukturer Vid COMMIT så: Låser man temporärt databasen/de berörda objekten Validerar att inga konflikter uppstått (har någon läst/uppdaterat någon av de värden jag vill uppdatera eller vice versa?) Skriver alla ändringar till databasen Låser upp databasen Har man en konflikt slängs alla lokala datastrukturer bort och transaktionen får börja om. 53

54 Optimistisk Samtidighetshantering Varför är detta bra då? Faktum är att: konflikter mellan transaktioner sällan uppstår i realiteten kostnaden för att ta och släppa tusentals eller miljontals lås ofta är betydligt högre än att behöva köra om en transaktion då och då. Rollback blir också väldigt enkelt. Deadlockhantering behövs inte. Nackdelar: För tidskritiska system (realtidssystem) är detta inte bra I teorin kan en transaktion startas om oändligt många gånger 54

55 Summering av föreläsning Föreläsningens mål: Att ge en överblick transaktioner och samtidighet i databaser fungerar Transaktioner BEGIN TRANSACTION, COMMIT, ROLLBACK Transaktionshantering ACID-egenskaperna Rollbackhantering Samtidighet (concurrency) Pessimistic concurrency-control Optimistisk concurrency-control 55

Databaser - Design och programmering. Säkerhetsproblem. SQL-injektion. Databashanteraren. Transaktion. Exempel. Transaktionshantering och säkerhet

Databaser - Design och programmering. Säkerhetsproblem. SQL-injektion. Databashanteraren. Transaktion. Exempel. Transaktionshantering och säkerhet Databaser design och programmering 1 Säkerhetsproblem 2 Transaktionshantering och säkerhet säkerhetsproblem fleranvändarproblem transaktioner låsning Informationen i databasen måste vara pålitlig (inte

Läs mer

Databaser design och programmering. Transaktionshantering och säkerhet säkerhetsproblem fleranvändarproblem transaktioner låsning

Databaser design och programmering. Transaktionshantering och säkerhet säkerhetsproblem fleranvändarproblem transaktioner låsning Databaser design och programmering Transaktionshantering och säkerhet säkerhetsproblem fleranvändarproblem transaktioner låsning 2 Säkerhetsproblem Informationen i databasen måste vara pålitlig (inte kunna

Läs mer

Databaser design och programmering Säkerhetsproblem Databashanteraren SQL-injektion

Databaser design och programmering Säkerhetsproblem Databashanteraren SQL-injektion Databaser design och programmering Transaktionshantering och säkerhet säkerhetsproblem transaktioner fleranvändarproblem låsning Säkerhetsproblem Informationen i databasen måste vara pålitlig (inte kunna

Läs mer

Karlstads Universitet, Datavetenskap 1

Karlstads Universitet, Datavetenskap 1 DAV B04 - Databasteknik KaU - Datavetenskap - DAV B04 - MGö 193 Tekniker för concurrency control Olika slags lås (locks) Tidsstämpling (timestamps) KaU - Datavetenskap - DAV B04 - MGö 194 Binära lås 2

Läs mer

Databasföreläsning. Del 2 lagrade procedurer, vyer och transaktioner

Databasföreläsning. Del 2 lagrade procedurer, vyer och transaktioner Databasföreläsning Del 2 lagrade procedurer, vyer och transaktioner Lagrade procedurer (Stored procedures) En stored procedure är en procedur (funktion) lagrad i en databas, och exekveras direkt på databasservern

Läs mer

Transaktioner och samtidighet

Transaktioner och samtidighet Databases Transaktioner och samtidighet Real World Model User 4 Updates User Queries 3 Answers Updates User Queries 2 Answers Updates UserQueries 1 Answers Updates Queries Answers Database management system

Läs mer

Transaktioner. 1. Transaktioner 2. Samtidighet ( concurrency ) och lås. 3. Deadlock. Kap. 17. Informatik B: Databashantering med SQL Server

Transaktioner. 1. Transaktioner 2. Samtidighet ( concurrency ) och lås. 3. Deadlock. Kap. 17. Informatik B: Databashantering med SQL Server Transaktioner 1. Transaktioner 2. Samtidighet ( concurrency ) och lås Kap. 17 3. Deadlock Sid. 1 5. Transaktioner En transaktion är en grupp av frågor samlade till en logisk enhet Normalt är varje SQL

Läs mer

ÖVERVAKNING AV SQL SERVER

ÖVERVAKNING AV SQL SERVER ÖVERVAKNING AV SQL SERVER Hantering resurser för samtidiga användare Övervakning av SQL Servers aktiviteter Hantering av blockerade processer Användning av SQL Profiler för att hitta besvärliga frågor

Läs mer

Relationsdatabashanteringssystem RDBHS

Relationsdatabashanteringssystem RDBHS Databasteknik 2I1075, 2I1104 Relationsdatabashanteringssystem RDBHS Silberschatz-Korth-Sudarshan kapitel 15-17 1 Administration Ad Ministra = Att styra Administration allmänt sett: Planera Organisera Leda

Läs mer

Databasutveckling Microsoft T-SQL - Fortsättning. Funktioner GROUP BY HAVING Skapa databaser Skapa tabeller Lite om transaktioshantering

Databasutveckling Microsoft T-SQL - Fortsättning. Funktioner GROUP BY HAVING Skapa databaser Skapa tabeller Lite om transaktioshantering Databasutveckling Microsoft T-SQL - Fortsättning Copyright Mahmud Al Hakim mahmud@webacademy.se www.webacademy.se Agenda Funktioner GROUP BY HAVING Skapa databaser Skapa tabeller Lite om transaktioshantering

Läs mer

Transaktionshantering med samtidighetskontroll i databaser

Transaktionshantering med samtidighetskontroll i databaser Beteckning: Institutionen för matematik, natur- och datavetenskap Transaktionshantering med samtidighetskontroll i databaser Andreas Larsson Tony Nygren Juni 06 Examensarbete, 10 poäng, C Datavetenskap

Läs mer

Databaser & databasdesign. Personuppgiftslagen, säkerhet och transaktioner.

Databaser & databasdesign. Personuppgiftslagen, säkerhet och transaktioner. Databaser & databasdesign Personuppgiftslagen, säkerhet och transaktioner. Uppgift - Personuppgiftslagen 300-500 ord exklusive referenser Sammanställning av de du anser viktigast Deadline 2:a december

Läs mer

Lösningar till tentamen i EDAF75

Lösningar till tentamen i EDAF75 Lösningar till tentamen i EDAF75 4 april 2018 Lösning 1 (a) Här är ett förslag till E/R-modell: Det finns flera rimliga alternativa sätt att modellera, så du behöver inte vara orolig bara för att du inte

Läs mer

Alternativ till låsning. Optimistik approach TimeStamp

Alternativ till låsning. Optimistik approach TimeStamp Mera DB Transaktioner ACID-(Atomic, Consistent, Isolation, Durability) Hur hanteras transaktioner? Lost update Dirty read Låsning kan vara en lösning. Vad är problemet? deadlock långsamt Alternativ till

Läs mer

Föreläsning 6 Databaser och säkerhet

Föreläsning 6 Databaser och säkerhet Databasbaserad publicering Föreläsning 6 1 Föreläsning 6 Databaser och säkerhet & Läs kapitel 13 i Databasteknik och kapitel 9 i boken PHP & MySQL: Novice to Ninja Databasbaserad publicering Föreläsning

Läs mer

1. SQL DML (Data Manipulation Language) 2. Lägga till data. 4. Uppdatera data 5. Aktivera default value 6. Hantera datum 7.

1. SQL DML (Data Manipulation Language) 2. Lägga till data. 4. Uppdatera data 5. Aktivera default value 6. Hantera datum 7. FÖ 5: Databaskursen 1 1. SQL DML (Data Manipulation Language) 2. Lägga till data 3. Kopiera tabell 4. Uppdatera data 5. Aktivera default value 6. Hantera datum 7. Ta bort data 8. SQL TCL (Transaction Control

Läs mer

KAP 16 BACKUP, RESTORE OCH RECOVERY

KAP 16 BACKUP, RESTORE OCH RECOVERY KAP 16 BACKUP, RESTORE OCH RECOVERY Backup - strategier Backuptyper Recoverymodeller Backup med Management Studio Backup med TSQL Hur transaktionsloggen fungerar Automatiskt återhämtning (Recovery) Återhämta

Läs mer

Samtidighetskontroll i applikationer utvecklade med ASP.NET Web Forms och traditionell ADO.NET

Samtidighetskontroll i applikationer utvecklade med ASP.NET Web Forms och traditionell ADO.NET Examensarbete Samtidighetskontroll i applikationer utvecklade med ASP.NET Web Forms och traditionell ADO.NET Gunnar Annerstedt, Madeleine Landerhjelm 2012-05-23 Ämne: Datavetenskap Nivå: G1E Kurskod: 1DV40E

Läs mer

TENTAMEN TDDB77 Databaser och Bioinformatik 12 juni 2007, kl 14-18

TENTAMEN TDDB77 Databaser och Bioinformatik 12 juni 2007, kl 14-18 Institutionen för datavetenskap Linköpings universitet TENTAMEN TDDB77 Databaser och Bioinformatik 12 juni 2007, kl 14-18 Jourhavande lärare: Patrick Lambrix (013/28 26 05) Poäng: Tentan består av 2 delar.

Läs mer

Stored procedure i ASP.NET

Stored procedure i ASP.NET Stored procedure i ASP.NET OBS! Om du vill jobba med att skapa en stored procedure i en SQL Serverdatabas ifrån VS2010 måste du ha fullversion, expressversionen tillåter dig ej att skapa triggers, stored

Läs mer

Labb LIVE. Exempelkod från föreläsningen. Plushögskolan Frågeutveckling inom MSSQL - SU14

Labb LIVE. Exempelkod från föreläsningen. Plushögskolan Frågeutveckling inom MSSQL - SU14 Labb LIVE Exempelkod från föreläsningen Plushögskolan Frågeutveckling inom MSSQL - SU14 Här kommer exempelkoden jag använde under föreläsningen Exemplen Constraints... 2 Transactions... 4 Views... 5 Functions...

Läs mer

Kunskapsbank ICARUS DB

Kunskapsbank ICARUS DB Kunskapsbank ICARUS DB K E Y L O G I C A B 1 Innehållsförteckning 1 Innehållsförteckning 1 2 SQL Server 2005 3 2.1 Installation 3 2.2 Användargränssnitt (DBMS) för SQL Express 3 2.3 Undvik att transaktionsloggen

Läs mer

! Teori och praktik. ! Ändringar från förra året. ! Examination (tenta, projekt) LiU. ! Varför ni? ! Varför överhuvudtaget? LiU

! Teori och praktik. ! Ändringar från förra året. ! Examination (tenta, projekt) LiU. ! Varför ni? ! Varför överhuvudtaget? LiU Databaser Design och programmering, IDA Kursen, diverse praktiskt Varför databaser? Vad är en databas? Andra viktiga begrepp Kursöversikt Teori och praktik Fö och bok lektioner, labbar i projekt (3,5hp=100h)

Läs mer

Databaser - Design och programmering. Kursöversikt. Exempel: telefonbok. Varför databaser?

Databaser - Design och programmering. Kursöversikt. Exempel: telefonbok. Varför databaser? Databaser Design och programmering! Diverse praktiskt! Varför databaser?! Vad är en databas?! Andra viktiga begrepp Kursöversikt! Teori och praktik! Samläsning! Olika projekt! Examination (tenta, labb

Läs mer

Innehåll MySQL Intro. Allmänt om Lagrade Procedurer Enkel utformning Skapa en lagrad procedur Använda parameter som indata

Innehåll MySQL Intro. Allmänt om Lagrade Procedurer Enkel utformning Skapa en lagrad procedur Använda parameter som indata Innehåll MySQL Intro Allmänt om Lagrade Procedurer Enkel utformning Skapa en lagrad procedur Använda parameter som indata 1 Lagrad procedur / Stored Procedure Lagrad procedur har många namn, förkortningen

Läs mer

Synkronisering. Föreläsning 8

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

Läs mer

Tentamen ISGB01 (delkurs i ISGB24) Databasdesign 7,5 Poäng

Tentamen ISGB01 (delkurs i ISGB24) Databasdesign 7,5 Poäng Tentamen ISGB01 (delkurs i ISGB24) Databasdesign 7,5 Poäng Datum: 2016-11-02 Tid: 08:15 13:15 Lärare: Peter Bellström, Katarina Groth, Remigijus Gustas Hjälpmedel: Inga Tentamen är på 40 poäng. Gränsen

Läs mer

Webprogrammering och 729G28 databaser Webprogrammering och databaser Kursöversikt Webprogrammering Designprocessen Lösningsförslag

Webprogrammering och 729G28 databaser Webprogrammering och databaser Kursöversikt Webprogrammering Designprocessen Lösningsförslag 729G28 Webprogrammering och Kursansvarig: Eva Ragnemalm, IDA eva.ragnemalm@liu.se Kursassistent: Anders Märak Leffler anders.marak.leffler@liu.se Webprogrammering och Föreläsning 1: Diverse praktiskt om

Läs mer

Tentamen, Distribuerade System/Programvaruarkitektur 2001-08-24

Tentamen, Distribuerade System/Programvaruarkitektur 2001-08-24 Tentamen, Distribuerade System/Programvaruarkitektur 2001-08-24 FÖRSÄTTSBLAD Inlämnas ifyllt tillsammans med tentan. Skriv namn på samtliga blad. Ange nedan vilka uppgifter du besvarat. Uppgift Besvarad

Läs mer

Tentamen. i Databasteknik. lördagen den 13 mars 2004. Tillåtna hjälpmedel: Allt upptänkligt material

Tentamen. i Databasteknik. lördagen den 13 mars 2004. Tillåtna hjälpmedel: Allt upptänkligt material Tentamen i lördagen den 13 mars 2004 Tillåtna hjälpmedel: Allt upptänkligt material Använd bara framsidan på varje blad. Skriv max en uppgift per blad. Motivera allt, dokumentera egna antaganden. Oläslig/obegriplig

Läs mer

Databaser - Design och programmering

Databaser - Design och programmering Databaser - Design och programmering Eva L. Ragnemalm, IDA (eva.ragnemalm@liu.se) Fö 1; introduktion Kursen, diverse praktiskt Varför databaser? Vad är en databas? Andra viktiga begrepp 2 Kursöversikt

Läs mer

Tentamen DATABASTEKNIK - 1DL116

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äs mer

732G16: Databaser - Design och programmering

732G16: Databaser - Design och programmering 732G16: Databaser - Design och programmering Eva L. Ragnemalm, IDA (eva.ragnemalm@liu.se) Johan Falkenjack, IDA (johan.falkenjack@liu.se) Fö 1 Introduktion 2 Kursöversikt Teori och praktik Kursbok, lektionshäfte,

Läs mer

Synkronisering. Ordning och reda

Synkronisering. Ordning och reda Synkronisering Ordning och reda Banköverföring struct account { int balance; char* owner; }; struct account account[ NUM_ACCOUNTS ]; bool transfer( int amount, unsigned from, unsigned to ); 2 Banköverföring

Läs mer

Design av inbyggda system

Design av inbyggda system Design av inbyggda system Innehåll Hårdvarunära design Erfarenhet/Utmaningar värda att tänka på Avbrottsrutiner och huvudloopar hantering av gemensamma data Kopplingsschema hur och varför Designspecar

Läs mer

TDDC74 Programmering: Abstraktion och modellering Dugga 3, kl 14 16, 25 mars 2015

TDDC74 Programmering: Abstraktion och modellering Dugga 3, kl 14 16, 25 mars 2015 TDDC74 Programmering: Abstraktion och modellering Dugga 3, kl 14 16, 25 mars 2015 Läs alla frågorna först, och bestäm dig för i vilken ordning du vill lösa uppgifterna. Skriv tydligt och läsligt. Använd

Läs mer

! Webprogrammering. ! Databasteori och praktik. ! Fö, le, la + projekt. ! Examination (tenta, dugga + labb, ! Studera användarna och deras problem

! Webprogrammering. ! Databasteori och praktik. ! Fö, le, la + projekt. ! Examination (tenta, dugga + labb, ! Studera användarna och deras problem Webprogrammering och databaser! Idag: Diverse praktiskt om kursen Webprogrammering Databaser, terminogi Start på ER-modellering! Webprogrammering Kursöversikt! Databasteori och praktik! Fö, le, la + projekt!

Läs mer

Kapitel 4 Arkivmenyn Innehåll

Kapitel 4 Arkivmenyn Innehåll Kapitel 4 Arkivmenyn Innehåll ARKIVMENYN...2 Byt aktuell användare...2 Utskrift till skärm eller skrivare...3 SQL verktyget...4 Ny SQL...4 Hämta SQL...5 Spara SQL...5 Kör SQL...5 Visa som...5 Avsluta...5

Läs mer

Vad är en databas? Databaser. Relationsdatabas. Vad är en databashanterare? Vad du ska lära dig: Ordlista

Vad är en databas? Databaser. Relationsdatabas. Vad är en databashanterare? Vad du ska lära dig: Ordlista Databaser Vad är en databas? Vad du ska lära dig: Använda UML för att modellera ett system Förstå hur modellen kan översättas till en relationsdatabas Använda SQL för att ställa frågor till databasen Använda

Läs mer

SQL Server bygger på ett antal Windows tjänster (services), vilket är prioriterade program som körs i bakgrunden under OS kontroll.

SQL Server bygger på ett antal Windows tjänster (services), vilket är prioriterade program som körs i bakgrunden under OS kontroll. 1 SQL Server bygger på ett antal Windows tjänster (services), vilket är prioriterade program som körs i bakgrunden under OS kontroll. Bland tjänsterna är själva databasmotorn SQL Server den mest använda.

Läs mer

Tentamen. Databasmetodik Lördag 27 september 2014 kl

Tentamen. Databasmetodik Lördag 27 september 2014 kl Inst. för Data- och Systemvetenskap SU/KTH Tentamen EIT:DB, SP:DB, DVK:DB, ATD:DB, FK:DB, DSK:DB Ska även användas av äldre kurstillfällen, t ex för IV1018, IV1003, ITK3:DB, ITK1:DB, DSV1:DB mfl. Databasmetodik

Läs mer

Design av inbyggda system

Design av inbyggda system Design av inbyggda system Innehåll Hårdvarunära design Erfarenhet värd att tänka på Avbrottsrutiner och huvudloopar hantering av gemensamma data Kopplingsschema hur och varför Designspecar bra / dåligt

Läs mer

Structured query language (SQL)

Structured query language (SQL) Structured query language SQL) Varför SQL? SQL är ett standardspråk som är oberoende av databashanteringssystemen som finns på marknaden. Med andra ord kommer du kunna arbeta mot nästan alla sorters relationsdatabaser

Läs mer

729G28 Webprogrammering och databaser. Föreläsning 1: Diverse praktiskt om kursen Webprogrammering Databaser, terminologi

729G28 Webprogrammering och databaser. Föreläsning 1: Diverse praktiskt om kursen Webprogrammering Databaser, terminologi 729G28 Webprogrammering och databaser Föreläsning 1: Diverse praktiskt om kursen Webprogrammering Databaser, terminologi 2 Personal Examinator, Ansvarig databasteori: Eva Ragnemalm, eva.ragnemalm@liu.se

Läs mer

Tentamen i Databasteknik

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

Läs mer

1.Lär känna MS SQL Observera. Tips. Förberedelse

1.Lär känna MS SQL Observera. Tips. Förberedelse 1.Lär känna MS SQL 2008 Observera Övningar som finns tillgängliga är till för att du ska kunna testa dina kunskaper och träna på dem. Det är helt upp till dig när du vill genomföra och om du vill genomföra

Läs mer

Trådar. Aktiva objekt

Trådar. Aktiva objekt Föreläsning 11 Trådar 1 Aktiva objekt Det är välkänt från vardagslivet att saker händer samtidigt. Aktiva objekt gör saker på eget initiativ, medan passiva objekt endast gör saker när de blir ombedda.

Läs mer

VAD GÖR DU / VEM ÄR DU?

VAD GÖR DU / VEM ÄR DU? INNEHÅLL Vad blir din roll Databaser vad är och varför Terminologi Datamodellering vad är och varför Utvecklingsprocessen SQL vad är det Data / Information / Kunskap Kapitel 1 delar av. Praktisk Datamodellering

Läs mer

Vad är en databas? Databaser. Relationsdatabas. Vad är en databashanterare? Vad du ska lära dig: Ordlista

Vad är en databas? Databaser. Relationsdatabas. Vad är en databashanterare? Vad du ska lära dig: Ordlista Databaser Vad är en databas? Vad du ska lära dig: Använda UML för att modellera ett system Förstå hur modellen kan översättas till en relationsdatabas Använda SQL för att ställa frågor till databasen Använda

Läs mer

Final Exam DATABASE TECHNOLOGY - 1DL300

Final Exam DATABASE TECHNOLOGY - 1DL300 Uppsala University Department of Information Technology Kjell Orsborn Final Exam 2010-04-07 DATABASE TECHNOLOGY - 1DL300 Date... Wednesday 7 April, 2010 Time... 08:00-13:00 Teacher on duty... Kjell Orsborn,

Läs mer

Tentamen i Databasteknik

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

Läs mer

Kunskapsbank ICARUS DB

Kunskapsbank ICARUS DB Kunskapsbank ICARUS DB K E Y L O G I C A B 1 Innehållsförteckning 1 Innehållsförteckning 1 2 SQL Server 2012, 2014 3 3 SQL anslutningsfel (SSL Security) 3 4 SQL Server 2008 4 5 SQL Server 2005 4 5.1 Installation

Läs mer

INTRODUKTION TILL JDBC

INTRODUKTION TILL JDBC INTRODUKTION TILL JDBC Vad är JDBC? JDBC står för Java DataBase Connectivity. JDBC ingår i Java och består av en del klasser som har hand om databasfunktionalitet. Med Java följer JDBC-ODBC Bridge driver,

Läs mer

Cache coherence hos multicoreprocessorer

Cache coherence hos multicoreprocessorer Cache coherence hos multicoreprocessorer Benjamin Holmqvist, EDT621 December 5, 2016 1 Contents 1 Inledning 3 2 Syfte 3 3 Cache Coherence 3 3.1 Implementering.......................... 4 3.2 Snoop baserade..........................

Läs mer

Disposition. 1. Kopplingen mellan Processanalys (DFDdiagram) 2. Treskikts Client-Server arkitektur (Fig 1.8) 3. Data layer

Disposition. 1. Kopplingen mellan Processanalys (DFDdiagram) 2. Treskikts Client-Server arkitektur (Fig 1.8) 3. Data layer Disposition 1. Kopplingen mellan Processanalys (DFDdiagram) och konceptuell modellering (ERdiagram) (se kap 4) 2. Treskikts Client-Server arkitektur (Fig 1.8) 3. Data layer Databasen (Kap 2) Den relationella

Läs mer

Innehåll Programability Del 2

Innehåll Programability Del 2 Innehåll Programability Del 2 Transaktioner Returvärden och OUTPUT Dynamisk SQL CURSOR / FECTH Trigger Chapter 8, 10 och 13. Beginning SQL Server 2008 for Developers Sven Åke Johansson Institutionen Institutionen

Läs mer

Tentamen 4,5 hp Delkurs: Databaser och databasdesign 7,5hp Tentander: VIP2, MMD2, INF 31-60, ASP

Tentamen 4,5 hp Delkurs: Databaser och databasdesign 7,5hp Tentander: VIP2, MMD2, INF 31-60, ASP Tentamen 4,5 hp Delkurs: Databaser och databasdesign 7,5hp Tentander: VIP2, MMD2, INF 31-60, ASP Skrivtid: 14.30-18.30 Hjälpmedel: papper, penna och radergummi Betygsgränser: G = 36p (60 %), VG = 48p (80

Läs mer

Universitetet i Linköping Institutionen för datavetenskap Anders Haraldsson 2

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

Läs mer

Ett databashanteringssystem (DBHS) skiljer sig från andra programmeringssystem bl.a.

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

Läs mer

Summering av fält. Synkronisering. Summering av fält. Bounded Buffer. Bounded Buffer (get) Bounded Buffer (put)

Summering av fält. Synkronisering. Summering av fält. Bounded Buffer. Bounded Buffer (get) Bounded Buffer (put) Summering av fält Synkronisering Ordning och reda function sum_low is begin for i in 0..999_999_999 sum += array[i] end sum_low function sum_high is begin for i in 1_000_000_000..1_999_999_999 sum += array[i]

Läs mer

Dagens föreläsning Programmering i Lisp Fö 5

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

Läs mer

Programmering II (ID1019) :00-11:00

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

Läs mer

Design vid utveckling av inbyggda system

Design vid utveckling av inbyggda system Design vid utveckling av inbyggda system Föreläsning i KMM, 2013-10-11 Innehåll Hårdvarunära design Avbrottsrutiner och huvudloopar Kopplingsschema Designspec Dagens föreläsning Hårdvarunära design - värt

Läs mer

Vad är en databas? Exempel på databaser: Databas = Organiserad samling och lagring av information.

Vad är en databas? Exempel på databaser: Databas = Organiserad samling och lagring av information. Vad är en databas? Exempel på databaser: Kortregister på kontor Sjukvårdsjournal Bokregister på bibliotek Medlemsregister i en förening Kundregister på företag Telefonkatalogen Databas = Organiserad samling

Läs mer

Objektorienterad Programkonstruktion. Föreläsning dec 2015

Objektorienterad Programkonstruktion. Föreläsning dec 2015 Objektorienterad Programkonstruktion Föreläsning 12 14 dec 2015 Parallella Problem I program med flera parallella exekveringstrådar kan det uppstå problem, fel och andra fenomen som inte förekommer i enkeltrådade

Läs mer

Databasteknik för D1, SDU1 m fl

Databasteknik för D1, SDU1 m fl 1 of 5 Örebro universitet Institutionen för naturvetenskap och teknik Thomas Padron-McCarthy (thomas.padron-mccarthy@oru.se) Tentamen i Databasteknik för D1, SDU1 m fl onsdag 21 augusti 2013 Gäller som

Läs mer

Föreläsning 15: Parallella subrutiner. Parallellitet. Varför parallella underprogram?

Föreläsning 15: Parallella subrutiner. Parallellitet. Varför parallella underprogram? Föreläsning 15: Parallella subrutiner Parallellitet Processer och trådar Semaforer, monitorer och synkroniseringsmeddelanden Parallellitet Ofta är det nödvändigt eller önskvärt att programdelar exekveras

Läs mer

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

Vinjett 1: Relationsdatabas för effektivaste vägen

Vinjett 1: Relationsdatabas för effektivaste vägen Vinjetter Inledning I denna kurs kommer vi att utgå från transporter som tema för vinjetterna. Fokus för kursen blir vilken information som behöver vara tillgänglig och hur denna skulle kunna lagras. Man

Läs mer

Gallrings-/bevarandetider för loggar i landstingets IT-system

Gallrings-/bevarandetider för loggar i landstingets IT-system 2006-09-21 LiÖ 2006-632 Sida 1 (5) Loggtyp Bevarandetider (avser minimitider) Informationsklassning krav på spårbarhet, säkerhetsklass: Höga krav Normala krav Händelseloggar (system- och transaktionsloggar)

Läs mer

VAD GÖR DU / VEM ÄR DU?

VAD GÖR DU / VEM ÄR DU? INNEHÅLL Vad blir din roll Databaser vad är och varför Terminologi Datamodellering vad är och varför Utvecklingsprocessen SQL vad är det Data / Information / Kunskap Kapitel 1 delar av. Praktisk Datamodellering

Läs mer

Tentamen DATABASTEKNIK - 1DL116, 1MB025

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

Läs mer

Föreläsning 2: Översikt över ett databassystem

Föreläsning 2: Översikt över ett databassystem Föreläsning 2: Översikt över ett databassystem DVA234 Databaser IDT Akademin för Innovation, Design och Teknik Innehåll Föreläsningens mål: Att ge en överblick över databassystemets arkitektur, delar och

Läs mer

Föreläsning 2. AVL-träd, Multi-Way -sökträd, B-träd TDDD71: DALG. Innehåll. Innehåll. 1 Binära sökträd

Föreläsning 2. AVL-träd, Multi-Way -sökträd, B-träd TDDD71: DALG. Innehåll. Innehåll. 1 Binära sökträd Föreläsning AVL-träd, Multi-Wa -sökträd, B-träd DDD7: DALG Utskriftsversion av föreläsning i Datastrukturer och algoritmer november 5 omm Färnqvist, IDA, Linköpings universitet. Innehåll Innehåll Binära

Läs mer

TENTAMEN DATABASKUNSKAP ITEK12

TENTAMEN DATABASKUNSKAP ITEK12 TENTAMEN DATABASKUNSKAP ITEK12 Tid: Fredag den 19 oktober kl. 9-00-12.00, sal D409 Tillåtna hjälpmedel: Endast papper och penna. Poäng: Maxpoäng: 56. Gräns för G: 50%. Gräns för VG: 75%. Om något som verkar

Läs mer

Dagens föreläsning Programmering i Lisp. - Bindning av variabler (avs 14.6) fria variabler statisk/lexikalisk och dynamisk bindning

Dagens föreläsning Programmering i Lisp. - Bindning av variabler (avs 14.6) fria variabler statisk/lexikalisk och dynamisk bindning 1 Dagens föreläsning Programmering i Lisp - Block, räckvidd - Bindning av variabler (avs 14.6) fria variabler statisk/lexikalisk och dynamisk bindning - Felhantering (kap 17) icke-normala återhopp catch

Läs mer

Design av inbyggda system. Innehåll. Hårdvarunära design. Hårdvarunära design. Hårdvarunära design. Hårdvarunära design TDD

Design av inbyggda system. Innehåll. Hårdvarunära design. Hårdvarunära design. Hårdvarunära design. Hårdvarunära design TDD Innehåll Design av inbyggda system Erfarenhet/Utmaningar värda att tänka på Avbrottsrutiner och huvudloopar hantering av gemensamma data hur och varför Designspecar bra / dåligt / hur / varför / när Inbyggt

Läs mer

Design av inbyggda system

Design av inbyggda system Design av inbyggda system Innehåll Hårdvarunära design Erfarenhet/Utmaningar värda att tänka på Avbrottsrutiner och huvudloopar hantering av gemensamma data Kopplingsschema hur och varför 10 sätt att lyckas

Läs mer

Välkommen till DVA234: Databaser

Välkommen till DVA234: Databaser Välkommen till DVA234: Databaser Dag Nyström dag.nystrom@mdh.se IDT Akademin för Innovation, Design och Teknik Personal Kursansvarig & lärare: Dag Nyström, universitetslektor dag.nystrom@mdh.se Forskningsområde:

Läs mer

Tentamen Datastrukturer (DAT036/DAT037/DIT960)

Tentamen Datastrukturer (DAT036/DAT037/DIT960) Tentamen Datastrukturer (DAT036/DAT037/DIT960) Datum och tid för tentamen: 2016-04-07, 14:00 18:00. Författare: Nils Anders Danielsson. (Tack till Per Hallgren och Nick Smallbone för feedback.) Ansvarig:

Läs mer

Stored procedure i ASP.NET

Stored procedure i ASP.NET Stored procedure i ASP.NET OBS! Om du vill jobba med att skapa en stored procedure i en SQL Serverdatabas ifrån VS2010 måste du ha fullversion, expressversionen tillåter dig ej att skapa triggers, stored

Läs mer

Välkommen till DVA234: Databaser

Välkommen till DVA234: Databaser Välkommen till DVA234: Databaser Dag Nyström dag.nystrom@mdh.se IDT Akademin för Innovation, Design och Teknik Personal Kursansvarig & lärare: Dag Nyström, universitetslektor dag.nystrom@mdh.se Forskningsområde:

Läs mer

Introduktion till formella metoder Programmeringsmetodik 1. Inledning

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

Läs mer

Universitetet i Linköping Institutionen för datavetenskap Anders Haraldsson

Universitetet i Linköping Institutionen för datavetenskap Anders Haraldsson 1 2 - Block, räckvidd Dagens föreläsning Programmering i Lisp - Bindning av variabler (avs 14.6) fria variabler statisk/lexikalisk och dynamisk bindning - Felhantering (kap 17) icke-normala återhopp catch

Läs mer

Manuell installation av SQL Server 2008 R2 Express för SSF Timing

Manuell installation av SQL Server 2008 R2 Express för SSF Timing Manuell installation av SQL Server 2008 R2 Express för SSF Timing Innehåll 1. Metoder att installera...1 2. Förutsättningar...2 DotNet Framework 3.5...2 MSI Installer 4.5...2 3. Hämta SQL Server 2008 R2

Läs mer

Webprogrammering och databaser. 729G28 Webprogrammering och databaser. Kursöversikt. Praktisk info. Webprogrammering. Ändringar mot förra året

Webprogrammering och databaser. 729G28 Webprogrammering och databaser. Kursöversikt. Praktisk info. Webprogrammering. Ändringar mot förra året 729G28 Webprogrammering och databaser Föreläsning 1: Diverse praktiskt om kursen Webprogrammering Databaser, terminogi Webprogrammering och databaser Personal: Examinator Jalal Maleki, jalma@ida.liu.se

Läs mer

F Secure Booster är ett verktyg för att snabba upp och städa upp i din pc eller

F Secure Booster är ett verktyg för att snabba upp och städa upp i din pc eller F Secure Booster är ett verktyg för att snabba upp och städa upp i din pc eller Android enhet. För Android användaren finns möjligheten att öka batteritiden genom att stänga ner resurser som inte används.

Läs mer

Tentamen Datastrukturer (DAT036)

Tentamen Datastrukturer (DAT036) Tentamen Datastrukturer (DAT036) Datum och tid för tentamen: 2014-04-25, 14:00 18:00. Författare: Nils Anders Danielsson. Ansvarig: Nils Anders Danielsson. Nås på 0700 620 602 eller anknytning 1680. Besöker

Läs mer

ADO.NET Murach Kapitel 17-20

ADO.NET Murach Kapitel 17-20 Databaser och C# ADO.NET Murach Kapitel 17-20 2013-01-30 1 Winstrand Development Databas ADO.NET Är en del av.net ramverket och tillhandahåller delar för att kommunicera med olika datakällor. Dessa kan

Läs mer

An English version of the questions is found at the back of each page.

An English version of the questions is found at the back of each page. Lena Strömbäck Pawel Pietrzak 2004-06-02 Skriftlig tentamen i kursen TDDB48 Databasteknik Datum: 2003-06-02 Tid: 14-18 Lokal: GAR Hjälpmedel: Engelsk ordlista tillåten ej elektronisk iniräknare ej programmerbar

Läs mer

Introduktion till databaskursen. Välkomna. till kursen. Databasteknik och informationssystem. DD1370 (kursomgång dbtinf12)

Introduktion till databaskursen. Välkomna. till kursen. Databasteknik och informationssystem. DD1370 (kursomgång dbtinf12) Välkomna Introduktion till databaskursen Välkomna till kursen Databasteknik och informationssystem DD1370 (kursomgång dbtinf12) En kurs om grunderna i databasteknik DD1370 (Föreläsning 1) Databasteknik

Läs mer

Varför ska man lära sig sånt? Välkomna. Vad är databaser bra till? Kursansvarig. till kursen. Databasteknik och informationssystem

Varför ska man lära sig sånt? Välkomna. Vad är databaser bra till? Kursansvarig. till kursen. Databasteknik och informationssystem till databaskursen Varför ska man lära sig sånt? till databaskursen till kursen Databasteknik och informationssystem Nästan alla större system idag innehåller eller använder data lagrad i en databas Så

Läs mer

Karlstads Universitet, Datavetenskap 1

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

Läs mer

OBS! Figuren visar inte alla aspekter och objekt som är inblandade i säkerhetssystemet.

OBS! Figuren visar inte alla aspekter och objekt som är inblandade i säkerhetssystemet. 1 OBS! Figuren visar inte alla aspekter och objekt som är inblandade i säkerhetssystemet. Det finns i princip två sätt att komma åt SQL-Server, det är via Windows login och SQLserver login. Vid Windows

Läs mer

TENTAMEN TDDD12 Databasteknik 7 januari 2010, kl 14-18

TENTAMEN TDDD12 Databasteknik 7 januari 2010, kl 14-18 Institutionen för datavetenskap Linköpings universitet TENTAMEN TDDD12 Databasteknik 7 januari 2010, kl 14-18 Jourhavande lärare: Jose M. Peña (1651) Poäng: Tentan består av 2 delar. För godkänd krävs

Läs mer

Funktionsbeskrivning

Funktionsbeskrivning Funktionsbeskrivning UND-07-T-06 DB03 Funktionalitet för att upptäcka fel i databasen 2015-06-10 Version: Beteckning: Status: 1.0 UND-07-T-06 Ändringshistorik Revision Datum Av Kommentar Granskare Godkännare

Läs mer