PageBuffer

What is a page? A page is just a block of bytes, so it is quite similar to the block which was explained in the article FileSystemBasics. But it's not only a new name for the same thing, but it differs regarding it's use case. A block is something which is addressed physically on disc and which accessed in an abstract way by the DBMS, whereby a page is a block of bytes which is kept inside the main memory. So a page is managed within the page buffer. For this purpose it has some additional information attached. So the Page class can extend the Block one by adding for instance the boolean attribute 'pinned' which can be used to determine if a page should be currently strictly kept inside the buffer or not.