8.6 Transaktioner1 Transaktioner 8.6 Transactions in SQL.

Slides:



Advertisements
Lignende præsentationer
Gammelheds-Philosophy
Advertisements

KONFLIKTHÅNDTERING Velkommen! Dias.
Stored Procedure Stored Procedure er programstumper, der gemmes i databasen og afvikles op databaseserveren på samme måde som forespørgsler. Med Stored.
Forsiden 1.Denne knap bruges når du vil taste dagens resultater ind. 2.Denne knap skal kun bruges hvis du allerede har gemt data og du finder ud af at.
Videregående pc-vejledning Modul 04: Windows-elementer 60+Bornholm.
Next Generation Operations Management AutoNOC 2. AutoNOC 2 Business fordele.
Udsagn (propositioner)
Agenda  Opnåede resultater  Logging af backendkald  Analyse af logs  Implementering af caching  Demo af prototype  Videre arbejde i praksis  Logging.
Beskyt din computer og dine data!
3. Funktionelle afhængigheder og normalisering
07 – Kort om OO Introduktion.
Elmasri kap , Databaser Kvalitetsattributter og arkitektur Sikkerhed Transaktioner.
Godt købmandskab Orienteringsfasen Tilbudsrunden
Økonometri 1: Instrumentvariabelestimation1 Økonometri 1 Instrumentvariabelestimation 26. november 2004.
VOOP, 8 april Refleksion i objekt orienterede programmeringssprog Mandag 8/ Kasper Østerbye.
Programklasser for bladhus Abonnement tænkes aggregeret til Kunde og associeret til Blad. Kunde bliver creator. Såvel Kunde som Blad kommer til at have.
Relationsdatabaser og SQL
NOEA/IT FEN - Databaser/Sikkerhed 1 Lektion 10 Sikkerhed og integritet Områder Autorisationsmatrix Realisering i SQL.
XML1 4.7 XML and Its Data Model. XML2 Introduktion til XML, 178 XML = eXtensible Markup Language Markup language –sprog, hvor data "pakkes ind" i tags.
FEN IntroJava AAU1 Java grundelementer Variable og datatyper Sætninger og udtryk Metoder.
7. SQL constraints og triggers1 Aktive elementer i SQL.
2009NOEA/IT - Databaser/SQL1 Realisering af den relationelle model i SQL-baserede DBMS’er SQL er mere end forespørgsler - det omfatter bl.a. –DDL Data.
Powerpoint Jeopardy Data flow diagrammer Entity relationship diagrammer State diagrammerSammenhænge mellem systemmodeller
Intro til C# apps Kodegennemgang af simpel C# app
Der koncentreres i denne serie (nr. 1 af 2) på markante skift fra terrænlæsning til planlægningsorientering. Det er ikke helt det samme som skift fra fin-
GP 11, 14/ Grundlæggende programmering Efterår 2001 Forelæsning 11 onsdag 14/ kl. 9:15 – 12:00.
Fundamentale datastrukturer
1. Database-systemer, introduktion
17. Fejl-håndtering1 Fejl-håndtering 17. Coping With System Failures.
Intro Større applikationer, f. eks: Bogpris.dk. Nye bøger.
1 Fundamentale datastrukturer. 2 Definitioner: abstrakt datatype, datastruktur Elementære datastrukturer og abstrakte datatyper : arrays, stakke, køer,
Repetition: Introduktion til OOP med C# og .NET
Administratordelen - Sidsel Præsentation af administratordelen Sitemap Webstruktur Transaktioner Fremtid.
Procestræ under afvikling af cp init login shell cp cp src dest.
Eksamen i Databasesystemer. Eksamen 4 timers skriftlig eksamen afholdes 8. januar 2004 kl Alle skriftlige hjælpemidler. Der gives karakter efter.
Transaktioner og ACID Spørgsmål 8. Transaktioner og ACID ACID (Atomicity, Consistency, Isolation, Durability) ACID-egenskaber er sæt egenskaber, der garanterer.
Intro Databaserne? Gik det som det skulle?. Databasestøttet webpublicering Forelæsning nr 8 Hvorfor data i en RDB (relationel database)? Databasemodellering.
8 RÅD VEDRØRENDE GOD PROGRAMMERING Effective (brown) Java.
ADO.NET Databaser SQL Client (SQL server 7 og senere) OleDb (en række incl. jet) ODBC MySql (ekstra driver skal instaleres) Oracle (XML dataset) Samme.
Databaser, introduktion1 Kurset ”Databaser” Introduktion.
Januar 2003Databaser, introduktion1 Databaser, forår 2003 Introduktion.
8.5 JDBC1 JDBC 8.5 Java Database Connectivity. 8.5 JDBC2 JDBC introduktion, 393 JDBC er ikke en forkortelse for –Java Database Connectivity Sun har defineret.
03 – Udtryk og metoder. 2 NOEA2009Java-kursus – Udtryk og metoder Udtryk i Java Java har standard udtrykene… Værditildeling Subrutiner og funktionskald.
Databaseadgang fra C#:
Database Some walk through. Database Design – Begreber 1 Database: En fælles samling af logiske relaterede data (informationer) DBMS (database management.
Deadlock Definition deadlock (baglås) er en tilstand som en mængde af processer kan være i en mængde processer er i deadlock hvis alle processerne står.
8. Transaktioner og låsning/låse. Herunder ACID egenskaberne.
Den relationelle model
Klasser og objekter. dIntProg, E08Klasser og objekter.2 Grundbegreber Klasser og objekter –beskrivelse –oprettelse Attributter og metoder –tilstand –opførsel.
DAIMIIntroducerende objektorienteret programmering1B.1 Skildpadder Modeller, objekter og opførsel.
DAIMIProgrammering af Store Systemer1 Concurrency i Java – Samarbejdende tråde.
Indledende Programmering Uge 6 - Efterår 2006
DAIMIIntroducerende objektorienteret programmering4A.1 Kontrakter og Design Kontraktbaseret design, JavaDoc dokumentation.
Klasser og objekter – grundbegreber.  Michael E. Caspersen, 2001Introducerende objektorienteret programmeringKlasser og objekter.2 Klasser og objekter.
 Jens Bennedsen 2001Multimedie programmering4.1 Definition af begreber Interface, implements, klasse.
 Jens Bennedsen 2002Objektorienteret systemudvikling1.1 Objektorienteret design Persistens - introduktion.
 Jens Bennedsen 2001Multimedie programmering1.1 Skildpadder Modeller, objekter og opførsel.
DAIMIIntroducerende objektorienteret programmering4A.1 Kontrakter og Design Kontraktbaseret design, JavaDoc dokumentation,
Intro Databaserne? Gik det som det skulle?. Databasestøttet webpublicering Forelæsning nr 7 Hvorfor data i en RDB? Databasemodellering Begrebet nøgle.
”Testen-Af-Vesten”.
Kapitel 30 Debitor-, kreditor- og lagermodul. Kap. 30: Debitor-, kreditor- og lagermodul Økonomistyringssystemer FordeleUlemper Indtastning af bilag er.
Database Some walk through lv/ Figures & some text from: © Pearson Education Limited 1995,
Solution Makers A/S – Gruppe 4 Lars Wolter Nils Martinsen Rasmus Seye Tobias Kjeldsen 1.
Kapitel 30 Debitor-, kreditor- og lagermodul.
Cloud Computing Model-View-Controller
Cloud Computing Model-View-Controller
WebApi service x.
Problem med at følge de konstant voksende datamængder
Skabelon mailopsætning
Præsentationens transcript:

8.6 Transaktioner1 Transaktioner 8.6 Transactions in SQL

8.6 Transaktioner2 Transaktion En transaktion er en enhed for logisk arbejde på en database. Eksempler: –flyt penge fra en konto til en anden –reserver et fly-sæde Defineres af database-brugeren / applikations-programmøren

8.6 Transaktioner3 Seriel afvikling, 397 Simpel model: Transaktioner foregår serielt –først transaktion, så din transaktion, osv. –ingen ser inkonsistente mellemresultater flyt 100 kr. fra konto 145 til konto 111 –update konto set saldo = saldo where kontonr = 145; »inkonsistent mellemresultat - skal ikke ses af andre –update konto set saldo = saldo where kontonr = 111;

8.6 Transaktioner4 Serialisering, 397 Den simple model holder ikke –Der foregår meget samtidigt transaktioner på en stor database (f.eks. Danske Bank, SAS) –Eksempel: 2 personer booker samme fly-sæde, fig. 8.23, side 399 Serialisering –Resultatet af mængde transaktioner databasen skal have samme resultat som en seriel afvikling af transaktionerne. –Serialisering kræver ikke seriel afvikling! –DBMS sørger for serialisering ofte ved at låse data, så de midlertidigt ikke kan bruges af andre transaktioner.

8.6 Transaktioner5 Udelelighed, 399 En transaktion skal være udelelig –Enten finder den sted i sin fulde udstrækning eller også finder den slet ikke sted. –Ingen halve transaktioner Transaktionen må altså ikke stoppe midt i penge- overførelsen - uanset om DBMS'en går ned! –Overholdes af DBMS'en.

8.6 Transaktioner6 Transaktioner start og afslutning, 402 En transaktion starter med første SQL- sætning. Transaktion slutter med –commitalt er godt data kan gøres synlige for andre transaktioner –rollbacknoget gik galt (f.eks. overtræk) databasens tilstand skal være som før transaktionen startede (klares af DBMS'en)

8.6 Transaktioner7 Transaktioners egenskaber, ACID Atomicity –En transaktion udføres udeleligt. Udføres af DBMS Consistency –En transaktion fører databasen fra en konsistent tilstand til en anden måske med inkonsistente mellem-tilstande Defineres af database anvender / applikations-programmør Isolation –En transaktion er isoleret fra andre transaktioner Udføres af DBMS, concurrency control Durability –Resultat af en committed transaktion kan aldrig forsvinde. Heller ikke selv om DBMS crasher DBMS sørger for recovery.

8.6 Transaktioner8 Transaktioner i JDBC interface java.sql.Connection –void setAutoCommit(boolean autoCommit) pr. default er autoCommit = true, dvs. enhver SQL-sætning er sin egen lille transaktion. –void commit() –void rollback() –eksempel JdbcTransactionExample.java Ingen eksplicit start på en transaktion –første SQL-statement efter commit / rollback er starten på en ny transaktion. Transaktioner skal afsluttes før connection.close()

8.6 Transaktioner9 Read-only transaktioner, 403 Read-only transaktioner er ikke så "farlige" som read-write transaktioner –Der er aldrig sket noget ved at læse Starten på en read-only transaktion kan markeres, så DBMS'en ved det JDBC –ingen metoder til at markere en transaktioner som read-only!

8.6 Transaktioner10 Dirty reads, 405 Dirty data –Data, der er opdateret af en transaktion, som endnu ikke er committed. Dirty read –En transaktion, der læser dirty data. Et problem, hvis den "dirty" transaktion senere laver rollback. –Dirty reads vs. "omkostninger" DBMS skal checke om dirty reads kan opstå. Mindre concurrency i afviklingen af transaktioner. –Nogle gange er dirty reads et stort problem Eksempel 8.30, side 405 –Andre gang er dirty reads ikke noget stort problem Eksempel 8.31, side 406

8.6 Transaktioner11 Isolation levels, 407 Database-anvender / applikations-programmør kan selv bestemme om en transaktion må lave dirty read –OBS ikke det samme som at andre transaktioner ikke må lave dirty read på den aktuelle transaktion. –2 isolation levels serializablemå kun læse fra committed transaktioner read uncommitteddirty reads er OK –JDBC java.sql.Connection void setTransactionIsolation(int level) static final int TRANSACTION_SERIALIZABLE static final int TRANSACTION_READ_UNCOMMITTED –Der findes yderligere 2 isolation levels