Why do we store information?
Remember
Find it later
Analyze it
Slide 4
Slide 4 text
Why do we store information?
Remember
Find it later
Analyze it
Doctor’s Appointment on
Thursday
Test Results
How much did I spend on
medical bills this year?
Slide 5
Slide 5 text
Where do you store your
information?
Slide 6
Slide 6 text
Where do you store your
information?
Slide 7
Slide 7 text
Where do you store your
information?
FILES!
Slide 8
Slide 8 text
How does your Rails app store
information?
Slide 9
Slide 9 text
How does your Rails app store
information?
Database
Slide 10
Slide 10 text
Relational Database Management
System
Think: Excel
Slide 11
Slide 11 text
Relational Database Management
System
Table
Rows
Columns
Think: Excel
Slide 12
Slide 12 text
Relational Database Management
System
Table
Rows
Columns
Think: Excel
Slide 13
Slide 13 text
Relational Database Management
System
Table
Rows
Columns
Think: Excel
Slide 14
Slide 14 text
Relational Database Management
System
Table
Rows
Columns
Think: Excel
Slide 15
Slide 15 text
Family Directory
Slide 16
Slide 16 text
Family Directory
Slide 17
Slide 17 text
No content
Slide 18
Slide 18 text
No content
Slide 19
Slide 19 text
No content
Slide 20
Slide 20 text
the
‘relation’ in
relational
databases!
Slide 21
Slide 21 text
Rails
Slide 22
Slide 22 text
Rails
Table
Slide 23
Slide 23 text
Rails
Column
Slide 24
Slide 24 text
Rails
Relation
Slide 25
Slide 25 text
Rails
Row
Slide 26
Slide 26 text
How do I find ID #4?
person.find(4)
Slide 27
Slide 27 text
How do I find ID #4?
person.find(4)
Slide 28
Slide 28 text
No content
Slide 29
Slide 29 text
Primary Key
Slide 30
Slide 30 text
Foreign Key
Slide 31
Slide 31 text
Array of numbers
[1,2,4,5,6]
Slide 32
Slide 32 text
6
5 numbers
Sorted
Where is 6?
5
4
2
1
Slide 33
Slide 33 text
Divide & Conquer
6
5 numbers
Sorted
Where is 6?
5
4
2
1
Slide 34
Slide 34 text
Divide & Conquer
6
5 numbers
Sorted
Where is 6?
5
4
2
1
6 > 4
Slide 35
Slide 35 text
Divide & Conquer
6
5 numbers
Sorted
Where is 6?
5
4
2
1
6 > 5
Slide 36
Slide 36 text
Divide & Conquer
6
5 numbers
Sorted
Where is 6?
5
4
2
1
6 == 6
Slide 37
Slide 37 text
Divide & Conquer
6
5 numbers
Sorted
Where is 6?
5
4
2
1
Slide 38
Slide 38 text
Divide & Conquer
6
5 numbers
Sorted
Where is 6?
5
4
2
1
Slide 39
Slide 39 text
Algorithm
Step-by-step procedure
Slide 40
Slide 40 text
Algorithm
Step-by-step procedure
Data Structure
Way to store and organize data
Slide 41
Slide 41 text
Algorithm
Step-by-step procedure
Data Structure
Way to store and organize data
Efficient
Fast(er) or uses less memory
Expensive
Takes a lot of time and/or memory
Slide 42
Slide 42 text
How does a database store data?
Slide 43
Slide 43 text
5
6
2
1 4
Tree
Slide 44
Slide 44 text
What happens if we delete a row?
Slide 45
Slide 45 text
What happens if we delete a row?
Slide 46
Slide 46 text
B-Tree
1 2 5 6
7 16
9 12
18 21
Slide 47
Slide 47 text
Database
Files of Data
63
Rebecca
B-tree
to organize
Data
Organized by Primary Key
63
17 89
Slide 48
Slide 48 text
How do we
find by name?
person.find_by_name(‘Rebecca’)
Slide 49
Slide 49 text
Index
Slide 50
Slide 50 text
Database
Primary Key
63
17 89
Index on first_name
3782
1829 9373
63
Rebecca
Slide 51
Slide 51 text
Should we create an index on
every column?
Slide 52
Slide 52 text
Add an index in Rails
In migration
Slide 53
Slide 53 text
Add foreign key in Rails
Gems!
foreigner
In migration
Data Integrity
Slide 54
Slide 54 text
Primary Key
Foreign Key
Database Index
Algorithm
Data Structure
Efficient/Expensive
How database stores data