Föreläsning 7: Transaktioner
|
|
- Åke Jakobsson
- för 5 år sedan
- Visningar:
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 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 merDatabaser 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 merDatabaser 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 merKarlstads 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 merDatabasfö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 merTransaktioner 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 merTransaktioner. 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 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 merRelationsdatabashanteringssystem 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 merDatabasutveckling 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 merTransaktionshantering 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 merDatabaser & 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 merLö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 merAlternativ 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 merFö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 mer1. 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 merKAP 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 merSamtidighetskontroll 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 merTENTAMEN 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 merStored 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 merLabb 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 merKunskapsbank 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
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 merDatabaser - 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 merInnehå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 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 merTentamen 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 merWebprogrammering 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 merTentamen, 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 merTentamen. 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 merDatabaser - 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 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 mer732G16: 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 merSynkronisering. 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 merDesign 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 merTDDC74 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 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 merKapitel 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 merVad ä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 merSQL 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 merTentamen. 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 merDesign 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 merStructured 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 mer729G28 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 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 mer1.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 merTrå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 merVAD 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 merVad ä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 merFinal 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 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 merKunskapsbank 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 merINTRODUKTION 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 merCache 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 merDisposition. 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 merInnehå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 merTentamen 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 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 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 merSummering 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 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 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 merDesign 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 merVad ä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 merObjektorienterad 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 merDatabasteknik 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 merFö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 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 merVinjett 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 merGallrings-/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 merVAD 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 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 merFö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 merFö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 merTENTAMEN 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 merDagens 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 merDesign 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 merDesign 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 merVä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 merTentamen 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 merStored 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 merVä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 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 merUniversitetet 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 merManuell 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 merWebprogrammering 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 merF 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 merTentamen 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 merADO.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 merAn 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 merIntroduktion 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 merVarfö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 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 merOBS! 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 merTENTAMEN 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 merFunktionsbeskrivning
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