Alternativ till låsning. Optimistik approach TimeStamp

Relevanta dokument
Objektorienterade programmeringsspråk. Objektorienterade språk. Den objekt-orienterade modellen. Jämför med icke-oo

Transaktioner och samtidighet

Föreläsning 7: Transaktioner

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

ÖVERVAKNING AV SQL SERVER

Lite om databasdesign och modellering

Stored procedure i ASP.NET

Mål med lektionen! Veta kursmålen. Ha kännedom om några av de grundläggande begreppen.

Prestanda, skalbarhet och tillgänglighet Torbjörn Stavenek

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

Karlstads Universitet, Datavetenskap 1

Databaser design och programmering Säkerhetsproblem Databashanteraren SQL-injektion

Distribuerade affärssystem

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

Innehåll. dynamisk bindning. och programmering CRC) u Arv, polymorfi och

Inkapsling (encapsulation)

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

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

Tentamen DATABASTEKNIK - 1DL116

Tentamen NOA011 Systemarkitektprogrammet

Arv. Fundamental objekt-orienterad teknik. arv i Java modifieraren protected Lägga till och modifiera metoder med hjälp av arv Klass hierarkier

Föreläsning 13 Innehåll

Idag. Exempel, version 2. Exempel, version 3. Ett lite större exempel

Objektorientering Klasser

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

Modeller, Objekt och Klasser

Mål med lektionen! Repetera och befästa kunskaperna.

2I1049 Föreläsning 5. Objektorientering. Objektorientering. Klasserna ordnas i en hierarki som motsvarar deras inbördes ordning

Modern webbutveckling. av Robert Welin-Berger

Objektorienterad programmering i Java Undantag Sven-Olof Nyström Uppsala Universitet Skansholm: Kapitel 11

Objektorienterad programmering i Java Undantag Sven-Olof Nyström Uppsala Universitet Skansholm: Kapitel 11

OOP Objekt-orienterad programmering

Historik: OOP. Objektorientering. Historik: OOP (forts) En Dum Fråga

Objektorienterad programmering

Stored procedure i ASP.NET

Konstruktion av klasser med klasser

F8 - Arv. ID1004 Objektorienterad programmering Fredrik Kilander

Objekt-orienterad programmering. Klassbegreppet och C++ UML. UMLs fördelar

TDDE10 TDDE11, 725G90. Objektorienterad programmering i Java, Föreläsning 3 Erik Nilsson, Institutionen för Datavetenskap, LiU

Topobase NDRK Exchange

Abstrakta Klasser 2. Kodning är bara en liten del i programvaruutvecklingen 6% 1% 6% Abstrakta Klasser - deklaration. Programutveckling sker i faser

Rekursion. Att tänka rekursivt Att programmera rekursivt i Java Exempel. Programmeringsmetodik -Java 254

Objekt, klasser. Tillstånd Signatur Kommunikation Typ. Fält, parametrar och lokala variabler. Konstruktorer Metoder DAVA15

Transaktionshantering med samtidighetskontroll i databaser

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

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

LEX INSTRUKTION - REPLIKERING

ProgramVaruProjektet Från idé till färdig produkt

TENTAMEN TDDD12 Databasteknik 7 januari 2010, kl 14-18

UML. Klassdiagr. Abstraktion. Relationer. Överskugg. Överlagr. Aktivitetsdiagram Typomv. Typomv. Klassdiagr. Abstraktion. Relationer.

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

Vad handlar kursen om? Algoritmer och datastrukturer. Vad handlar kursen om? Vad handlar kursen om?

TENTAMEN TDDB77 Databaser och Bioinformatik 15 mars 2002, kl 14-18

Laboration 1 - Grunderna för OOP i Java

TENTAMEN TDDB77 Databaser och Bioinformatik 19 april 2002, kl 14-18

Målen med OOSU. Objektorienterad programmering. Objektorienterad programmering. Karlstads Universitet, Johan Öfverberg 1

Idag. statiska metoder och variabler. private/public/protected. final, abstrakta klasser, gränssnitt, delegering. wrapper classes

INSTALLATION...3 ATT KOMMA IGÅNG...3 PROGRAMMETS DESIGN...4 LÄGGA TILL TABELL...4 EDITERA TABELL...4 EDITERA RELATION...5 SPARA OCH AVSLUTA...

KAP 16 BACKUP, RESTORE OCH RECOVERY

Objektorienterad Programkonstruktion. Föreläsning dec 2015

Arv. Objektorienterad och komponentbaserad programmering

SI-pass 4. Johan Brook och Jesper Persson. 25 september Diskutera och svara på om påståendena nedan är äkta sanningar eller listiga lögner.

Introduktion. Klasser. TDP004 Objektorienterad Programmering Fö 2 Objektorientering grunder

kl Tentaupplägg

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

Teknisk kravspecifikation för nytt Omsorgs system

Mutability och State. Objekt-orienterad programmering och design (DIT953) Niklas Broberg / Johannes Åman Pohjola, 2018

Arv: Fordonsexempel. Arv. Arv: fordonsexempel (forts) Arv: Ett exempel. En klassdefinition class A extends B {... }

Relationsdatabashanteringssystem RDBHS

LEX INSTRUKTION REPLIKERING UPPGRADERING

Lösningsförslag. Programmeringsmetodik, KV: Java och OOP. 17 januari 2004

Introduktion till Entity Framework och LINQ. Källa och läs mer

Core Data Permanent datalagring

PHP-presentation Dataföreningens Open Source-nätverk

Classes och Interfaces, Objects och References, Initialization

UML. Översikt UML. Relationer mellan klasser. A är ett aggregerat av B:n. Kontor aggregat av Enheter. 12 olika diagramtyper, bl.a.

Integritetsprincipen. Objektorienterad modellering och diskreta strukturer / design

08/12/14. Databasteknik och informationssystem DD1370. Behövs Föreläsning 8? Kursens (återstående) mål Dagens föreläsning

Vad kännetecknar en god klass. Vad kännetecknar en god klass. F12 Nested & Inner Classes

Innehåll. Föreläsning 3. javax.naming.context. javax.sql.datasource. Vad är JDBC? Java Naming and Directory Interface(JNDI) Viktigaste metoder:

Hogia PA-analysator manual

Undantag. Engelska: exceptions. Skansholm: exceptionella händelser

Webservice & ERP-Integration Rapport

Versionshantering. Jan Erik Moström

Tentamen Objekt-orienterad programmering i Java, 5p distanskurs

Design av ett objektorienterat datalager. Mårten Wikström

Henrik Häggbom Examensarbete Nackademin Våren 2015

Abstrakt datatyp. -Algoritmer och Datastrukturer- För utveckling av verksamhet, produkter och livskvalitet.

Services + REST och OAuth

Tentamen DATABASTEKNIK - 1DL116, 1MB025

Klasshierarkier. Klasser kan byggas på redan definierade klasser

Inga hjälpmedel är tillåtna

JUnit. Junit Unit Testing. JUnit 3. JUnit 3 forts. Villkorskontroller i test. Exempel JUnit3

Abstrakt klass. DD2385 Programutvecklingsteknik Några bilder till föreläsning 4 31/ Exempel: Implementation av Schackpjäser.

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

Viktigt! Glöm inte att skriva Tentamenskod på alla blad du lämnar in.

Webbtjänster med API er

Databasens består av: Tabell Kolumner fält Rader poster (varje post är unik)

Lab 6: ASP.NET 2.0 Providermodellen

Classes och Interfaces, Objects och References Objekt-orienterad programmering och design (DIT952) Niklas Broberg, 2016

Transkript:

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åsning Optimistik approach TimeStamp

opptimistisk approach En transaktion fortsätter utan restriktioner tills closetransaction (inget väntande) Då kollar vi om det finns konflikt mot annan transaktion. Om konflikt en transaktion abortas.

TimeStamp Varje operation valideras när den utförs. Om det inte går abortas transaktionen. Varje transaktion får en tidsstämpel Varje objekt har en read och write stämpel med sensaste read/write. Vid read ok om obj write stämpel är lägre än transaktionens. Vid write ok om obj read och write stämpel är lägre än transaktionens.

Distribuerade databaser Är när man sprider ut datat på flera databaser Ser oftast ut som en utåt. D.v.s. det är DBMSen som sköter distribueringen transparant. Distribuering av data är transparant Transaktioners distribuering är transparent

Distribuerade databaser Fördelar Pålitlighet Säkerhet Performance (kanske) Förmåga att kunna växa Nackdelar Komplexitet Säkerhet (kanske) Kostnad (kanske)

Replikering Vid ändring i en databas skickas ändringen till alla databaser Duplicering En databas är master och den där alla ändringar görs och de distribueras sedan ut.

Distribuera data Antingen har man allt på alla servrar Replikerings svårigheter Alternativt så delar man upp data och har olika delar på olika servrar Krävs ingen replikering, dock inte samma säkerhet Sämre prestanda Mer komplicerade transaktioner.

Distribuerade transaktioner Är en transaktion som accessat objekt på flera servrar. När den avslutas committar alla servrar eller alla servrar abortar. En server aggerar Coordinator

Two phase commit Fas 1 Varje deltagare röstar. Om alla röstar för commit förbereds det och den kan inte ändra. Om den krashar måste tillståndet ändå sparas. Fas 2 Deltagarna utför det gemensamma beslutet

OODB Relationer vs objekt, ingen 100% koppling *,* görs med kopplings tabell, men ingen skillnad mellan entitet och kopplingstabell i modellen. Även 1,* kan vara av lite olika typ (association aggregat) vilket inte syns i datamodellen

Relation-OO mappning Hur mappar man relationsdatabas till OO? Enitit -> Klass 1-1 vanliga ref attribut 1-* ref attribute i många entiteten I klassen en collection i 1 klassen. Obs! På andra sidan i OO!!!! *-* Kopplings tabellen görs till collections i de båda klasserna.

OO Hur mappas arv? Tre sätt A(attr a1,a2) <- B(attr b1) T_A ( a1, a2) T_B (fk_a, b1) T_A(a1, a2) T_B (a1, a2, b1) En tabell innehåller all data från alla subklasser

OO Frågan är dock blir modellen verkligen object orienterad? Eller är det bara en objektifiering av eniteter där arv inte finns och där relationenerna mest finns i databasen och inte i objektmodellen. Finns ramverk som hibernate och JPA där sådant int ebara är möjligt utan relativt enkelt.

OODBM Är databaser som inte är relations baserade utan objectbaserade. Du sparar och hämtar upp object. Passar väldigt bra ihop med objectorienterade program Hut är det med snabbhet???

db4o Är en OpenSource OO databas med Java stöd (och.net) http://www.db4o.com/ DBn öppnas med ObjectContainer db = DB4oEmbedded. openfile( Db4oEmbedded.newConfiguration(), <file>);

Spara object Person p1 = new Person("Reine", 42); db.store(p1); Person p2 = new Person(Anders, 43); db.store(p2);

Hämta object List<Person> persons = db.query(person.class); Person p3 = new Person("Reine", 0); ObjectSet res = db.querybyexample(p3); while(res.hasnext())... List<Person> persons = db.query(new Predicate<Person>() { public boolean match(person p) { return p.getshoesize() == 42; });

update Person p3 = new Person("Anders", 0); ObjectSet res = db.querybyexample(p3); Person p4 = (Person) res.next(); p4.setshowsize(44); db.store(p4);

delete ObjectSet result = db.querybyexample(new Person("Anders", 0)); Pilot p42 = (Person) result.next(); db.delete(p42);