A database management system consists of the following components : a data storage manager, a concurrency control and recovery manager, a query processor, and an optimizer. The storage manager is responsible for storing and managing data and has an important effect on the performance of a database management system. In this thesis, we design and implement a single user storage system on UNIX. Our storage system can be devided into five parts : the first part is a disk manager that manages disk pages, the second a buffer manager that manages buffer pools, the third a tuple manager that manages tuples in data pages, the fourth a B+-tree manager that manages B+-tree indexes for fast tuple accesses, and the last a scan manager that provides useful interfaces for upper-level users. The characteristics of our storage system are as follows : (1) it maintains variable length tuples and keys efficiently by supporting variable length attributes, (2) allows multiple attribute keys, (3) allows duplicated keys in a B+-tree index, and (4) supports two different scan interfaces.