Ladda ner presentationen
1
Databashanteringssystem
nikos dimitrakas rum 6626 Connolly/Begg (3rd edition) Kapitel 18.1, 18.2, 6.2, 4.4 (inte 6.4.3, 6.4.4), 6.5, 6.6, 3.3, 8.2.7, , 19.1, 19.2, 19.3 (4th edition) Kapitel 19.1, 19.2, 6.2, 6.4 (inte 6.4.3, 6.4.4), 6.5, 6.6, 3.3, 8.2.7, , 20.1, 20.2, 20.3 (5th edition) Kapitel 20.1, 20.2, 7.2, 7.4 (inte 7.4.3, 7.4.4), 7.5, 7.6, 4.3, , 22.1, 22.2, 22.3
2
Databashanteringssystem
Säkerhet Användare och behörigheter Integritet Backup och återställning Transaktionshantering Samtidighet (concurrency) Lås Rollback Återställning
3
Säkerhet Hot Avsiktliga eller oavsiktliga hot som kan påverka systemet och organisationen Stöld och bedrägeri Försämrad sekretess (confidentiality) Försämrad personlig integritet (privacy) Försämrad integritet/tillförlitlighet Försämrad tillgänglighet Säkerhet Skydd mot dessa hot
4
Sårbarhet – Potentiella hot
Hårdvara Nätverk Applikation DBHS Användare Programmerare Administratör Databas
5
Botemedel Auktorisation (authorization)
Tillåta tillgång till systemet Kräva identifiering och authenticering Åtkomsts-/Behörighetskontroll (access control) MAC vs DAC (Mandatory/Discretionary) Bevilja och häva tillgång/åtkomst till resurser/objekt SQL (DAC): GRANT / REVOKE Backup och återställning Integritet Vyer Kryptering RAID Prestanda Säkerhet pga redundans
6
Grant Beviljar ett subjekt (användare) vissa privilegier (läsa/skriva/etc) på ett objekt (tabell/vy/etc) Ge Kalle behörighet att titta i tabellen Person GRANT SELECT ON Person TO Kalle Förutsätter att man själv har behörighet att ge denna behörighet!
7
Grant GRANT privilegier ON objekt TO subjekt [WITH GRANT OPTION]
SELECT, INSERT, UPDATE, DELETE, REFERENCES, USAGE, ALL PRIVILEGES, roll Specifika kolumner: UPDATE(adress) Objekt Tabell, vy, domän, etc Subjekt Användare, grupp, roll, PUBLIC WITH GRANT OPTION Tillåt subjektet att ge bort samma behörighet vidare
8
Backup & återställning
Att ta en kopia Journaling Att spara en logg med alla ändringar Återställning Få tillbaka allt med hjälp av backup och loggar
9
Integritet Integrity Enhancement Feature
Required Data (NOT NULL) Domain Constraint (CHECK, DOMAIN) Entity Integrity Referential Integrity General Constraint (ASSERTION) Enterprise Constraint (Trigger)
10
Entitetsintegritet Unika och identifierbara rader i varje tabell
Ej NULL eller dubbletter i PN
11
Referensintegritet Främmande nycklar har Regler för främmande nycklar
NULL, eller Ett värde som finns i den refererade kandidatnyckeln Regler för främmande nycklar Vad händer med FN när den refererade kandidatnyckeln förändras eller tas bort CASCADE SET NULL / NULLIFY RESTRICT / NO ACTION
12
Enterprise Constraint
ECA Event Condition Action Trigger CREATE TRIGGER triggernamn AFTER/BEFORE händelse ON tabellnamn REFERENCING ny & gammal FOR EACH ROW/STATEMENT WHEN villkor logik att utföras
13
Vyer & Integritet VIEW WITH CHECK OPTION
Man kan mata in data i vyn Inmatningarna måste uppfylla villkoret i vyn Inmatningarna sparas i tabellen (inte i vyn) De inmatade raderna måste alltså ingå i vyn CREATE VIEW personMK AS SELECT * FROM person WHERE kön IN (’m’, ’k’) WITH CHECK OPTION
14
Databashanteringssystem
Säkerhet Användare och behörigheter Integritet Backup och återställning Transaktionshantering Samtidighet (concurrency) Lås Rollback Återställning
15
Transaktionshantering
Ett logiskt sammanhängande jobb Egenskaper (ACID) Atomicity Allt eller inget Commit eller Rollback Consistency Integritet/Konsekvens före och efter transaktionen Isolation Oberoende av varandra Durability Permanent även vid krasch
16
Concurrency / Samtidighet
Flera transaktioner parallellt Oberoende av varandra Potentiella problem Flera vill åt samma resurs (tabell/rad) Den förlorade uppdateringen Läsning av okommittade data (dirty read) Inkonsekvent analys (ej upprepningsbar läsning) Fantomproblemet
17
Den förlorade uppdateringen
Transaktion A Transaktion B X Läs X (30) 30 Dra bort 20 (10) Lägg till 50 (80) Skriv X (10) 10 Skriv X (80) 80 tid
18
Läsning av okommittade data (dirty read)
Transaktion A Transaktion B X Läs X (30) 30 Dra bort 20 (10) Skriv X (10) 10 Läs X (10) Ångra Lägg till 50 (60) Skriv X (60) 60 tid
19
Inkonsekvent analys (ej upprepningsbar läsning)
Transaktion A Transaktion B X Y Sum (var) Sum = 0 30 80 Läs X (30) Läs Y (80) Sum =+ X Dra bort 40 från Y (40) Skriv Y (40) 40 Läs Y (40) Lägg till 40 till X (70) Sum =+ Y 70 Skriv X (70) tid
20
Fantomproblemet Transaktion A Transaktion B
Hämta alla personer från Stockholm Ta bort Kalle (som bor i Stockholm) … tid Transaktion A Transaktion B Hämta alla personer från Stockholm Lägg till Kalle (som bor i Stockholm) …
21
Concurrency / Samtidighet
Krav Serialiserbarhet Parallellt dock utan konflikt Återställbarhet Inga konflikter även vid rollback Lösningar Seriellt schema (inga parallella transaktioner) Lås Tidsstämplar
22
Lås Läslås (Shared lock) Skrivlås (Exclusive lock) Låsgranularitet
Databas, tabell, …, rad, cell Deadlock 2 eller flera transaktioner väntar på varandra att släppa lås 2PL – Two-Phase Locking Växande fas – lås begärs Krympande fas – lås släpps Inga nya lås efter att något lås har släppts T1 T2 T3
23
Lås Deadlock T1 T2 T3 Förhindra Timeout Conservative 2PL Upptäck
Wait-for graph Lös Offer (victim) Rollback (för senare återstart) Svältning (starvation) T1 T2 T3
24
Tidsstämpling Varje transaktion får en tidsstämpel vid start
Varje dataelement markeras med två tidsstämplar Transaktionen som läste dataelementet senast Transaktionen som skrev dataelementet senast Varje gång en transaktion vill läsa eller skriva ett dataelement Jämför transaktionens tidsstämpel med dataelementets tidsstämpel Avgör om transaktionen skall fortsätta eller startas om
25
Återställning (Recovery)
Databasåterställning Få tillbaka databasen (i korrekt tillstånd) efter systemfel Följande behövs Backup En kopia av databasen Full eller inkrementell Sparas separat Loggar Innehåller information om alla transaktioner Värden före en ändring (BEFORE IMAGE) Värden efter en ändring (AFTER IMAGE)
Liknande presentationer
© 2024 SlidePlayer.se Inc.
All rights reserved.