what is the software that controls the structure of a database and access to the data?