summaryrefslogtreecommitdiff
path: root/Homework/cs5800/Notes/1.org
blob: 2fa491f51baa19fd6a6d344737fbc69d45f84f6b (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
#+TITLE: Purpose of database systems

* Issues with Filesystem vs Database
** Redundancy
In two different departments, might keep the same data unnecessarily.

** Inconsistency
Data in one place might change, but does not automatically change elsewhere.

* Purpose of DB systems
** Data isolation - multiple files and formats
How data is stored is not important to the DB user

** Integrity problems
Keeping all data within some requirements (e.g. 0 <= GPA <= 4.0)

** Atomiciticy of updates
All updates should be all or nothing:
  + Giving friend $100
    READ A; A -= 100; UPDATE A;
    READ B; B += 100; UPDATE B;
    - If fails before B updated but A is updated, should roll back

** Concurrent access
Correct order of execution on each piece of data - filesystem won't protect against 

** Security problems
Some DB users should only be able to access global/their own data - filesystem shows entire file

* History
** Earliest systems were sheets of paper kept in wooden file cabinets
** They were trying to make it right since 60's
*** Hierarchial Model - IBM (~1968)
Used Trees with parent-child nodes
            USU
          /     \
       Jane      Dave
      /          /   \
  CS5800     CS5800  CS5050 

Issue: Cannot have a common parent. To find which students take a single course, must iterate over all.
       Cannot have many-to-many relationships

*** Network Model - General Electric
Used Graphs
            USU
          /     \
        Jane     Dave
           \     /  \
           CS5800    CS5050 

Issue: Still uses pointers (difficult, need to know exactly where address is)
       Still cannot have a node without a parent - cannot have a course without students

*** Relational - IBM (Codd's Model) (~70's)
The issue with both Network & Hierarchial is they still use "linked lists".

+ Provided mathematical foundation for Relational DB's
+ Big Abstraction win: Seperated physical storage of data from its conceptual representation (no pointers!)
+ Introduced high level query language

*** GIS (~80's)
*** 90's
Multimedia databases, real-time-databases, xml, NOSQL database