The data dictionary was created as a programming tool to address the problem of managing large datasets over long periods of time. For major software projects, such as airline reservation systems, military C3I applications, or banking systems, which might involve hundreds of programmers, designers, and support staff, data integrity is a huge issue. Any particular piece of data may be created, updated, or accessed by multiple users. Especially as software is updated or new types of application are created, it's important that all stakeholders are making the same assumptions about what each piece of data contains, what its format is, and who has permission to update it under which circumstances. By using a data dictionary, designers have a central point of control and documentation for making changes and updates to data sets and structures. It also helps programmers working on updating or replacing legacy systems figure out the basic data structures of the systems they are renovating and the definitions of individual variables. Also, it allows easy development of new or ad hoc queries using SQL.