Databases Theoretical Introduction Contents
Total Page:16
File Type:pdf, Size:1020Kb
Databases Theoretical Introduction Contents 1 Databases 1 1.1 Database ................................................ 1 1.1.1 Terminology and overview .................................. 1 1.1.2 Applications .......................................... 2 1.1.3 General-purpose and special-purpose DBMSs ........................ 2 1.1.4 History ............................................ 2 1.1.5 Research ........................................... 6 1.1.6 Examples ........................................... 6 1.1.7 Design and modeling ..................................... 7 1.1.8 Languages ........................................... 9 1.1.9 Performance, security, and availability ............................ 10 1.1.10 See also ............................................ 12 1.1.11 References .......................................... 12 1.1.12 Further reading ........................................ 13 1.1.13 External links ......................................... 14 1.2 Schema migration ........................................... 14 1.2.1 Risks and Benefits ...................................... 14 1.2.2 Schema migration in agile software development ...................... 14 1.2.3 Available Tools ........................................ 15 1.2.4 References .......................................... 15 1.3 Star schema .............................................. 16 1.3.1 Model ............................................ 16 1.3.2 Benefits ............................................ 16 1.3.3 Disadvantages ........................................ 17 1.3.4 Example ........................................... 17 1.3.5 See also ............................................ 17 1.3.6 References .......................................... 17 1.3.7 External links ......................................... 17 2 Not Only SQL 18 2.1 CAP .................................................. 18 2.1.1 Science and medicine ..................................... 18 2.1.2 Computing .......................................... 18 i ii CONTENTS 2.1.3 Organisations ......................................... 18 2.1.4 Companies .......................................... 18 2.1.5 Projects, programs, policies .................................. 19 2.1.6 Military ............................................ 19 2.1.7 Certifications ......................................... 19 2.1.8 Other ............................................. 19 2.1.9 See also ............................................ 19 2.2 Eventual consistency .......................................... 19 2.2.1 Conflict resolution ....................................... 19 2.2.2 Strong eventual consistency .................................. 20 2.2.3 See also ............................................ 20 2.2.4 References .......................................... 20 2.3 Object-relational impedance mismatch ................................ 20 2.3.1 Mismatches .......................................... 20 2.3.2 Solving impedance mismatch ................................. 21 2.3.3 Contention .......................................... 22 2.3.4 Philosophical differences ................................... 23 2.3.5 References .......................................... 25 2.3.6 External links ......................................... 25 2.4 Object database ............................................ 25 2.4.1 Overview ........................................... 25 2.4.2 History ............................................ 25 2.4.3 Timeline ........................................... 26 2.4.4 Adoption of object databases ................................. 27 2.4.5 Technical features ....................................... 27 2.4.6 Standards ........................................... 27 2.4.7 Comparison with RDBMSs .................................. 27 2.4.8 See also ............................................ 28 2.4.9 References .......................................... 28 2.4.10 External links ......................................... 28 2.5 NoSQL ................................................ 28 2.5.1 History ............................................ 29 2.5.2 Types and examples of NoSQL databases .......................... 29 2.5.3 Performance ......................................... 31 2.5.4 Handling relational data ................................... 31 2.5.5 ACID and JOIN Support ................................... 31 2.5.6 See also ............................................ 32 2.5.7 References .......................................... 32 2.5.8 Further reading ........................................ 33 2.5.9 External links ......................................... 33 2.6 Key-value database .......................................... 33 CONTENTS iii 2.6.1 Types and notable examples ................................. 33 2.6.2 References .......................................... 34 2.6.3 External links ......................................... 35 2.7 Document-oriented database ..................................... 35 2.7.1 Documents .......................................... 35 2.7.2 Comparison with relational databases ............................. 37 2.7.3 Implementations ....................................... 38 2.7.4 See also ............................................ 38 2.7.5 Notes ............................................. 38 2.7.6 References .......................................... 38 2.7.7 Further reading ........................................ 38 2.7.8 External links ......................................... 38 2.8 NewSQL ................................................ 38 2.8.1 History ............................................ 38 2.8.2 Systems ............................................ 39 2.8.3 See also ............................................ 39 2.8.4 References .......................................... 39 3 ACID 40 3.1 ACID ................................................. 40 3.1.1 Characteristics ........................................ 40 3.1.2 Examples ........................................... 40 3.1.3 Implementation ........................................ 41 3.1.4 See also ............................................ 42 3.1.5 References .......................................... 42 3.2 Consistency (database systems) .................................... 42 3.2.1 As an ACID guarantee .................................... 42 3.2.2 As a CAP trade-off ...................................... 43 3.2.3 See also ............................................ 43 3.2.4 References .......................................... 43 3.3 Durability (database systems) ..................................... 43 3.3.1 See also ............................................ 43 4 Isolation 44 4.1 Serializability ............................................. 44 4.1.1 Database transaction ..................................... 44 4.1.2 Correctness .......................................... 44 4.1.3 View and conflict serializability ............................... 46 4.1.4 Enforcing conflict serializability ................................ 46 4.1.5 Distributed serializability ................................... 48 4.1.6 See also ............................................ 49 4.1.7 Notes ............................................. 49 iv CONTENTS 4.1.8 References .......................................... 49 4.2 Isolation (database systems) ...................................... 49 4.2.1 Concurrency control ..................................... 50 4.2.2 Isolation levels ........................................ 50 4.2.3 Default isolation level ..................................... 51 4.2.4 Read phenomena ....................................... 51 4.2.5 Isolation Levels, Read Phenomena and Locks ........................ 52 4.2.6 See also ............................................ 52 4.2.7 References .......................................... 52 4.2.8 External links ......................................... 53 4.3 Database transaction .......................................... 53 4.3.1 Purpose ............................................ 53 4.3.2 Transactional databases .................................... 53 4.3.3 Object databases ....................................... 54 4.3.4 Distributed transactions .................................... 54 4.3.5 Transactional filesystems ................................... 54 4.3.6 See also ............................................ 54 4.3.7 References .......................................... 54 4.3.8 Further reading ........................................ 54 4.3.9 External links ......................................... 55 4.4 Transaction processing ........................................ 55 4.4.1 Description .......................................... 55 4.4.2 Methodology ......................................... 55 4.4.3 ACID criteria ......................................... 56 4.4.4 Benefits ............................................ 56 4.4.5 Implementations ....................................... 57 4.4.6 References .......................................... 57 4.4.7 External links ......................................... 57 4.4.8 Further reading ........................................ 57 5 Atomicity 58 5.1 Journaling file system ......................................... 58 5.1.1 Rationale ........................................... 58 5.1.2 Techniques .......................................... 58 5.1.3 Alternatives .......................................... 59 5.1.4 See also ............................................ 59 5.1.5 References .........................................