Requirements elicitation has been reported to be the stage of software development when errors have the most expensive consequences. Users usually find it difficult to articulate a consistent and complete set of requirements at the beginning of a development project. Prototyping is considered a powerful technique to ease this problem by exposing a partial implementation of the software system to the user, who can then identify required modifications. When prototyping data-intensive applications a so-called prototype database is needed. This paper investigates how a prototype database can be built. Two different approaches are analysed, namely test databases and sample databases; the former populates the resulting database with synthetic values, while the latter uses data values from an existing database. The application areas that require prototype databases, in addition to requirements analysis, are also identified. The paper reports on existing research into the construction of both types of prototype databases, and indicates to which type of application area each is best suited. This paper advocates for the use of sample databases when an operational database is available, as is commonly the case in software maintenance and evolution. Domainrelevant data values and integrity constraints will produce a prototype database which will support the information system development process better than synthetic data. The process of extracting a sample database is also investigated. ‡ In general, a prototype is a model of the software to be built which exhibits the desired properties of the final product [1]. Numerous techniques have been developed to create such models (e.g. simulations, reusable components, high-level languages, breadboards), not all of which result in an implementation of the system.