Slide 1

Slide 1 text

How do databases work?

Slide 2

Slide 2 text

Why do we store information?

Slide 3

Slide 3 text

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