In this chapter, you receive an overview of databases: the concepts and jargon, their purposes, what you can do with them. In addition, you learn about database design, which involves how to structure your data so it is easy to use.
If you have used databases before, you can move to the next chapter and find out how to start using a database from Perl.
Before databases were developed, when programs shared data files any change to the data structure required by one program meant that all the programs had to be changed. Database Management Systems (DBMS) provide several services that alleviate some common database headaches:
They store data securely and reliably, so that only the people and programs allowed to see and modify the data are able to do so. The DBMS should be able to withstand a computer crash without losing data.
They make it easy to extract useful information from the data.
They manage shared access to data: the DBMS locks data when it is updated to prevent multiple programs from corrupting it by updating it at the same time.
They enforce consistency of both values and data structure: for example, no invoice record is without an address record; the state in an address must be valid.
Most important, a DBMS isolates programs (and programmers!) from the details of data storage. Changes to the data structure do not automatically require changes to all programs.