ABSTRACT

This chapter focuses on the database aspects of CO-free and open source software (FOSS) development. It shows that readers have little or no familiarity with databases, in comparison with what they know about programming and data structures. The chapter introduces database principles using examples from our own CO-FOSS projects. These principles include the ideas of SQL, tables, queries, normalization, unique keys, and concurrency control. The chapter examines techniques for working with a database from within a CO-FOSS project. It discusses the important process of database testing, debugging, and refactoring. Unit and integration testing of the database modules has its own peculiarities, so that designing effective unit tests for database modules must be done carefully. The chapter provides the perspective on the process of client review and issue tracking for the database component of a CO-FOSS project. A databasedatabase is a collection of data organized in a particular way for efficient storage and retrieval of information.