Database Analogy-based notional machines map from a database context to a context that is an analogy students are potentially familiar with. This allows students to reason in familar ways in the analogous space, and to transfer that reasoning to the programming space.
Some representations are handmade (e.g., a diagram drawn on a board) while others are machine-generated (e.g., a visualization produced by a tool).
We collected and organized the following 25 representation-based notional machines:
| Symbol | Concept |
|---|---|
| model | map (abstraction of the real world) |
| Symbol | Concept |
|---|---|
| Symbol | Concept |
|---|---|
| Data Model | Blueprint |
| Database | Constructed Building |
| Changing Design | Redrawing Lines |
| Changing Implemented Database | Rebuilding Walls, Electrical, Plumbing |
| Symbol | Concept |
|---|---|
| resources (data) | shoes |
| selective data access | finding a pair of shoes |
| metadata (data describing data) | photos of shoes |
| index | mechanism that speed up search avoiding to look inside all boxes |
| Symbol | Concept |
|---|---|
| traditional data warehouse systems | walled gardens - ingested data is pristine, curated, and has structure. |
| MapReduce systems process | arbitrarily structured data, whether clean or dirty, curated or not. There is no loading step. This means users can store data first and consider what to do with it later. |
| Symbol | Concept |
|---|---|
| Database | Telephone Book |
| Symbol | Concept |
|---|---|
| Database table indexing | a book's index |
| Symbol | Concept |
|---|---|
| index | card catalog |
| file/entry in file | book or other resource |
| Symbol | Concept |
|---|---|
| conceptual design | physical fitness |
| logical design | strenght training |
| physical design | speed training |
| Symbol | Concept |
|---|---|
| Symbol | Concept |
|---|---|
| entity | object |
| set of entities | class |
| Symbol | Concept |
|---|---|
| Symbol | Concept |
|---|---|
| snowball | the "intermediate table" after joining each additional table |
| Symbol | Concept |
|---|---|
| JSON structure | schema |
| defining what to see at runtime | projection operation |
| schema on read | relational operation" |
| Symbol | Concept |
|---|---|
| Database Table | Paragraph |
| Data "Themes" | Paragraph Themes |
| Normalisation | Reorganising/Breaking up paragraphs |
| Symbol | Concept |
|---|---|
| Symbol | Concept |
|---|---|
| Data Clustering / Locality of Reference (efficiency) | All Xmas decorations in the same box since they will be needed again at the same time (next Xmas) |
| Query Flexibility | Off-Season Ornament Hunting (I just need a red bauble and I am still able to get it) [could be related to indexing if it can be anticipated] |
| Disk | Storage room (basement/garage) |
| Symbol | Concept |
|---|---|
| Lego bricks | relations |
| Symbol | Concept |
|---|---|
| Relationship | glue among entities |
| Symbol | Concept |
|---|---|
| table | spreadsheet |
| Symbol | Concept |
|---|---|
| relationship instance | table |
| entity instance | leg |
| Symbol | Concept |
|---|---|
| relational database | filing cabinet |
| Symbol | Concept |
|---|---|
| weak entity instance | person (Mr Robot) |
| identifier | person's identity |
| Symbol | Concept |
|---|---|
| weak entity instance | person (Jason Bourne) |
| identifier | person's identity |
| Symbol | Concept |
|---|---|
| weak entity instance | person (Pirandello's Vincenzo Moscarda) |
| identifier | person's identity |