Slideshow:
|   | 
We must translate the database address each time we want to access a block stored in memory
|   | 
Observation:
| 
 | 
| 
 | 
Pointer swizzling illustrated:
| 
 | 
| 
  A database address field:
     +-+--------------------------------------------+
     | |           address                          |
     +-+--------------------------------------------+
      ^
      |
    Flag bit: 0 ==> field contains a database address
              1 ==> field contains a virtual memory address       
 | 
(It's similar to the union structure of the C programming language)
| 
 | 
Procedure to swizzle a database address into a (virtual) memory address:
| 
 | 
| 
 |