Relationsdatabashanteringssystem RDBHS

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

Karlstads Universitet, Datavetenskap 1

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

Databaser design och programmering Säkerhetsproblem Databashanteraren SQL-injektion

Transaktioner och samtidighet

Föreläsning 7: Transaktioner

Transaktionshantering med samtidighetskontroll i databaser

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

KAP 16 BACKUP, RESTORE OCH RECOVERY

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

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

ÖVERVAKNING AV SQL SERVER

Föreläsning 6 Databaser och säkerhet

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

Final Exam DATABASE TECHNOLOGY - 1DL300

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

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

Stored procedure i ASP.NET

Alternativ till låsning. Optimistik approach TimeStamp

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

Skriftlig tentamen i kurserna TDDD12 och TDDB48 Databasteknik kl

Tentamen DATABASTEKNIK - 1DL116

LEX INSTRUKTION REPLIKERING UPPGRADERING

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

Swema 05. Bruksanvisning vers 1.01 MB

TENTAMEN TDDD12 Databasteknik 7 januari 2010, kl 14-18

BOOK-IT 6.0. Backup Solaris

Vyer, Prepared Statements, Triggers

TENTAMEN TDDB77 Databaser och Bioinformatik 22 augusti 2006, kl 14-18

SQLs delar. Idag. Att utplåna en databas. Skapa en databas

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

Pipelining i Intel Pentium II

W i n T i. Uppgradering till version HRM

SKOLA24 ARBETSSÄTT I SKOLA24 SCHEMA

TENTAMEN TDDB77 Databaser och Bioinformatik 24 april 2004, kl 14-18

Deadlock. Deadlock uppstår när två eller flera processer hamnar i ett cirkelberoende. Resurs 1. Processen vill ha resursen. Processen äger resursen

Kunskapsbank ICARUS DB

Lösningar till tentamen i EDAF75

PNSPO! Minneskort till CJ. 14 mars 2012 OMRON Corporation

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

Särskild information om personalliggare Fröbergs RFID / Fingerprint (TM-600 Serien)

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

Tentamen DATABASTEKNIK - 1DL116

Arbetssätt i Skola24 Schema

KAP 18 SQL SERVER AGENT

Tentamen. Databasmetodik Lördag 27 september 2014 kl

Idag. Hur skapar vi och underhåller en databas? DD1370 (Föreläsning 4) Databasteknik och informationssystem 7,5 hp Hösten / 20

INTRODUKTION TILL JDBC

Administrationsmanual ImageBank 2

Volvo Information Technology. Volvo Information Technology HåkanEnarson,

Tentamen, Distribuerade System/Programvaruarkitektur

Cactus Informationssystem - CIS. Revision 1.1

Fö 7: Operativsystem. Vad är ett operativsystem? Målsättning med operativsystem. Styr operativsystemet datorn?

Hela UR:s utbud, SLI Plusutbud, SLI fria utbudet kommer i sin helhet att finnas som adaptiv stream.

Uppgraderingsinstruktion för Tekis-FB Avisering version 6.3.0

Utskrift och kopiering en guide Innehåll: Sidan:

Swema 03. Bruksanvisning vers 1.01 MB

Uppgraderingsinstruktion för Tekis-FB Avisering version 6.3.1

JobOffice SQL databas på server

BILAGA 3 - SUPPORT OCH KONTAKTER

Installation xvis besökssystem, Koncern

Innehållsförteckning. Användarmanual för Lockbee Backup Databas 2009

Storegate Pro Backup. Innehåll

Windowsadministration II, 7.5hp, 1DV424 MODUL 6 EXCHANGE SERVER 2013 FÖRELÄSNING 2

Versionshantering. Problem som uppstår i större (samt även mindre) projekt:

Tentamen i Databasteknik

komplett kopia av hårddisken 20 minu En instabil dator som ofta drabbas av fel får du snabbt på rätt kurs med en kopia av Windows och alla program.

Installationsanvisningar VisiWeb. Ansvarig: Visi Closetalk AB Version: 2.3 Datum: Mottagare: Visi Web kund

DRAFT. CVS kurs laboration 1 Checka in, ut och uppdatera. Marcus Rejås. 17 november 2002

Uppdatera Easy Planning till SQL

BILAGA 3 - SUPPORT OCH KONTAKTER

Cache-koherens protokoll MESI och MOSI

INSTALLATIONSGUIDE. Uppdatering av ditt Mamut-system

Institutionen för elektro- och informationsteknologi, LTH

Datorteknik. Föreläsning 5. Realtidssystem och realtidsprogrammering. Institutionen för elektro- och informationsteknologi, LTH.

Introduktion till git

Kunskapsbank ICARUS DB

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

Din guide till. Byte av databas. Från MSDE till SQL Express

Fö 5+6 TSEA81. Real-time kernel + Real-time OS

TENTAMEN. TDDD12 Databasteknik TDDD46 Databasteknik. 16 augusti 2010, kl 14-18

1. Kvalitetsbegreppet 2. Kommunikation 4. Olika typer av datalagring. 5. Databas 6. DBMS 7. Molntjänster 8. Tabeller. 10. SQL 11.

ETS052 Internet Routing. Jens A Andersson

Boss installationsmanual förberedelser

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

7 Mamut Client Manager

Data Domain. Världens snabbaste Backup.

Lathund Reversering av omföring

VAD GÖR DU / VEM ÄR DU?

Cache coherence hos multicoreprocessorer

Säkerhetskopiering och återställning av asynkrona system

Kapitel 4 Arkivmenyn Innehåll

Tentamen i Databasteknik

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

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

Optimering av Wordpress

Quadri DCM Handledning för administratörer och användare i projekt som kör Quadri DCM. Version

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

Detta dokument skall ge en kortfattad introduktion till Jasmine installationen vid DSV.

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

Transkript:

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

Företagets resurser Personal Maskiner Material Pengar DATA 3 Databasadministrationen...... är en funktion inom företaget som är ansvarig för databasens underhåll och all omgivande miljö: Människor Säkerhet Tekniska funktioner Standards Dokumentation m.m. 4 2

Databasadministratör DBA-ansvar: Vilken info skall finnas Vilka kontroller skall finnas Lagringsformer Säkerhet (Backup och loggning) Kontrollera prestanda Trimma databasen Behörighetskontroll Service mot användarna 5 Relationsdatabashanteringssystem Ett antal program för att möjliggöra lagring, återvinning och uppdatering av data behörighetskontroller kontrollerad hantering av data för datakoncistens återskapande av data efter fel av olika slag transaktionshantering samtidig bearbetning av data utan att data förvanskas effektivisera den interna hanteringen av data 6 3

RDBHS Optimization Concurrency Recovery Security Integrity 7 Transaktionshantering Vad är en transaktion? Internt: allt 'jobb' som en användares atomära transaktion genererar Exempel Flytta pengar från konto A till konto B Läs konto A, finns pengar?, subtrahera belopp, skriv A, läs B,addera belopp, skriv B DBMS-krav: Allt eller inget! 8 4

Databastransaktion Logical Unit of Work Före transaktionens start är databasen i consistent state Under transaktionen är databasen i inconsistent state Transaktionen kan avslutas på två sätt: COMMIT eller ABORT COMMIT för databasen till ett nytt konsekvent läge ABORT återställer databasen till läget före BEGIN TRANSACTION 9 Transaction state Partially committed committed active failed aborted Fig 15.1 10 5

A C I D Krav på DBMS A C I D Atomicity (transaktionen är atomär) Concistency (koncistensen skall vidmakthållas) Isolation. Varje transaktion verkar köras isolerad Duration. Oavsett om olika fel inträffar skall resultatet av en rätt utförd transaktion bestå. 11 Transaktion Exempel: Registrera en order om X antal av artikel Y för kund Z! Internt: - Läs Y - finns X st Y i lager? - läs Z - är Z kreditvärdig för X*Y kronor? - i så fall minska krediten med motsvarande belopp - minska antal i lager för Y med X! - skriv tillbaka Y och Z OBS!!!! En transaktion är atomär, dvs odelbar 12 6

Concurrency Parallellitetsstyrning, handlar om att skydda data i databasen från skadlig påverkan av interfolierande (samtidiga) transaktioner. Löses med hjälp av lås. 13 Den förlorade uppdateringen Trans A tid Trans B Läs Tal = 20 Add 50 = 70 Skriv Tal = 70 = 20 Läs Tal = 0 Sub 20 = 0 Skriv Tal Värdet i databasen för Tal = 0. Korrekt värde skall vara 50! (20 +50-20) 14 7

Beroende till en backad trans Trans A tid Trans B Läs Tal = 70 = 20 Läs Tal = 70 Add 50 = 20 ROLLBACK Trans A ser data som "aldrig existerat"! (s.k. dirty data ) 15 Beroende till en backad trans Trans A tid Trans B Läs Tal = 70 Add 20 = 90 = 20 Läs Tal = 70 Add 50 = 20 ROLLBACK Trans A opererar på data som "aldrig existerat"! 16 8

Locking protocol Läslås Shared Lock (PS) Shared lock sättes på ett objekt som skall läsas. Andra transaktioner tillåts att läsa objektet Skrivlås Exclusive Lock (PX) Exclusive lock sättes på ett objekt som skall skrivas. Andra transaktioner får ej tillgång till objektet 17 Serialiserbara transaktioner Def: En given interfolierad exekvering av ett antal transaktioner är serialiserbar om och endast om den producerar samma resultat som en seriell exekvering av samma transaktioner Korrekthetsvillkor: En given interfolierad exekvering av ett antal transaktioner är korrekt om den är serialiserbar Varje transaktion är är korrekt i i sig Transaktionerna är är logiskt oberoende av av varandra 18 9

Scheduler producerar exekveringsplan Scheduler ställer upp en Conflct-graph (konflikt-graf, precedensgraf) T2 T1 T4 T3 Seriell ordning: T1 -T3 -T2 -T4 19 Two-Phase Locking (2PL) Alla transaktioner följer följande regler: I. I. Innan den opererar på pånågot objekt sätter den ett lås på påobjektet II. Efter att ha ha släppt ett lås begär den aldrig några nya lås Detta medför att alla interfolierade exekveringar av sådana transaktioner är serialiserbara 20 10

Two-Phase Locking De två faserna är: - en växande fas, där låsen begäres - en krympande fas, där låsen släpps antal lås transaktionens tid Flera varianter av 2PL finns. De vanligaste är basic 2PL (ovan), Conservative 2PLsom sätter alla sina lås samtidigt och Strict 2PL som släpper alla sina lås samtidigt efter commit. 21 Deadlock Ett system som tillämpar låsning riskerar DEADLOCK. Systemet måste ha en rutin för att upptäcka DEADLOCK. I regel går detta till så att systemet har en väntegraf (Wait-for-graph) WFG som man analyserar för att upptäcka om det finns cykler i grafen. Vanligtvis sker analysen antingen när någon begärt ett lås men satts på väntelista eller annars periodiskt T 1 T 4 T 2 T 3 22 11

Lösa deadlock En transaktion utses till "offer" och rullas ut för senare återstart. Man väljer t ex den yngsta den som har minst antal lås den som gjort minst antal uppdateringar den som har mest kvar Passa "starvation", dvs att samma trans väljs som offer under lång tid. Tid är vanligast p g a rättvisekrav 23 Låsningsgranularitet Granularitet = storlek på objektet man låser Databas Tabell Tablespace (db2) Sida Rad Systemet kan alltid låsa en större enhet än vad som är logiskt nödvändigt Systemet kan alltid hålla låsen längre än vad som är logiskt nödvändigt 24 12

Intent locking Ett protokoll för INTENT LOCKING sätter INTENT lock på en högre granularitet. IX (intent exclusive) på en tabell betyder att det finns X-lås på t ex en sida eller på rader inom tabellen. FILER TABLE-SPACE SIDOR TABELLER RADER o DATABAS o IX oix o o o IX o oix o o oix o o o o ox-lås o o X- och S-lås får inte sättas förrän alla föregångare i hierarkin satt IX- resp IS-lås. 2PL gäller förstås. 25 Optimistisk metod En transaktion begär att en datasida läses in i UWA (User Working Area) Uppdaterande data sparas också i UWA. Uppdatering sker i en lokal kopia i UWA Lås begäres på sidan Sidan läses in och kontrolleras mot sidan i UWA Om den ser likadan ut så har ingen mellankommande transaktion uppdaterat sidan och den lokala kopian kan skrivas till databasen Om den är förändrad så gör man om hela proceduren men nu med den uppdaterade sidan som original Alltså: Läs A spara i B och C Uppdatera C Lås A Läs A Om A = B så skriv ut den uppdaterade sidan C, släpp låset Annars släpp låset och spara A i B och C och börja om 26 13

Timestamping varje transaktion stämplas konflikt uppstår när en trans vill - se en post som en yngre trans uppdaterat - uppdatera en post som redan setts/uppdaterats av en yngre trans lösning: Två protokoll: Wait-Die Om A > B väntar A, annars dör A (roll-back) Wound-wait Om A > B såras (dödas) B, annars väntar A 27 Timestamp Ordering Timestamp ordering säkerställer att alla konflikterande läs- och skrivoperationer görs i tidsordning (timestamp order) Antag att T i begär läs(q) Om TS(T i ) < W-timestamp(Q), så betyder det att T i skulle behöva läsa ett värde på Q som är överskrivet. T gör ROLLBACK! Om TS(T i ) > W-timestamp(Q) så utföres läsningen och R-timestamp får den högsta timstamp av TS(T i ) och R-timestamp(Q) Antag att T i begär skriv(q) Om TS(T i ) < R-timestamp(Q), så betyder det att Q har lästs av en annan transaktion. T gör ROLLBACK! Om TS(T i ) < W-timestamp(Q) så betyder det att T i vill skriva ett gammalt värde på Q och T i gör ROLLBACK! Annars exekveras skrivoperationen och W-timestamp(Q) får den högsta timstamp av TS(T i ) och W-timestamp(Q) T som gör ROLLBACK får en ny tidsstämpel och startas om! 28 14

Recovery (Återskapande) Recovery handlar om återskapande av data efter olika slags fel. systemkrasch mediakrasch systemfel programfel DBMS förutsätts stödja olika typer av "loggar" 29 Logg Back-up 2 Before (UNDO) 1 3 Databas 5 4 After (REDO) Logg 1 och 2 före bearbetning 3-5 efter bearbetning Loggar användes vid rcovery (återskapande) av databasen 30 15

Återskapande av vad? Ett koncistent nuläge oavsett störningar (ROLLFORWARD) Total recovery Back-up + after image Selektiv recovery Translogg, buffertar Ett tidigare koncistent läge ROLLBACK before image, translogg, buffert 31 Felaktiga program En transaktion måste backas och sedan startas om Transaktion = LUW Logic Unit of Work 32 16

Mediakrasch Databasen måste återskapas genom att ladda senaste backup-kopian av databasen. Med hjälp av loggen omstartas korrekt avslutade transar. Om "after-image-log" finnes kopieras den in i senaste backup-kopian Utbackning krävs ej! 33 System-krasch För att skydda systemet från verkan av av system-krasch sätts systemgenererade checkpoints, t ex ex med jämna tidsintervaller. Time pc tc T1 T2 T3 T4 T5 wait wait prepare checkpoint checkpoint Systemet väntar tills alla pågående transaktioner avslutas och tillåter inga nya transaktioner att starta. När allt är "lugnt" tas en checkpoint 34 17

Sofistikerad Checkpoints (synchpoint, breakpoint) Töm alla buffertar till disk (databasen) Skriv en "check-point"-post på logg-tapen Alla aktiva processers status skrivs i "loggposten" Skriv loggpostens adress (läge) på logg-tapen i en särskild återstartspost på disk 35 System-krasch Time tc tf T1 T2 T3 T4 T5 checkpoint time failure time 36 18

Återstart med hjälp av check-point 1. Lägg alla aktiva transaktioner vid CP i en UNDO-lista. Skapa en tom REDO-lista. 2. Sök framåt i loggen från CP 3. Om en BEGIN TRANSACTION påträffas läggs den i UNDO-listan 4. Om COMMIT påträffas flyttas transen från UNDO till REDO-listan 5. När recovery-processen nått slutet på loggen söker den bakåt i loggen och backar ut transarna på UNDO-listan 6. När checkpoint-postens början nåtts så går CP-processen framåt igen och gör om transarna på REDO-listan 37 Olika strategier för loggning/dumpning Spegling (dubblering) av data Skuggskrivning (Shadowing) av data Periodisk "dumping" av data - all data - endast data som uppdaterats (inkrementell dump) - endast data som inte uppdaterats ( residual dump) Loggning av transaktioner Loggning av förändringar - före ändring - efter ändring - både före och efter ändring 38 19

Deferred update Deferred update (fördröjd uppdatering) innebär att den fysiska databasen aldrig uppdateras förrän man nått COMMIT. All uppdatering mot databasen sker i en minnes-buffert. När COMMIT gjorts skrivs de gjorda uppdateringarna först på logfilen Därefter permanentas uppdateringarna i databasen. I detta läge finns det inget behov av UNDO 39 Immediate update Immediate update (omedelbar uppdatering ) innebär att uppdatering av databasen sker utan att invänta COMMIT. De gjorda uppdateringarna skrivs alltid på logfilen före uppdatering i databasen För att möjliggöra recovery behövs både UNDO och REDO 40 20