Database Guidelines
This chapter of the textbook covers Database Development as a semi-general overview. It would be very hard to cover the topic in its entirety in a single chapter of a textbook, but the chapter talks specifically about how database modules can be used in software development. I am already moderately familiar with databases, their functions and how to make queries, but the chapter of this textbook helped connect this topic back into FOSS projects in the real world.
Databases can be defined as the organized collection of data that is stored on a system and can be efficiently retrieved. Databases range in complexity, and are at the heart of most software applications. The main difference between a database and a domain class/object is that its contents are kept in the system storage and persist, while objects are stored in memory and are lost after the program finishes executing. An internet enabled, remotely accessed database is what comprises a server. Because the majority of software applications use databases/permanent storage one way or another, understanding databases is key to the necessary knowledge of a software developer.
One of the aspects of the relationship between database management and FOSS that caught my attention is the issue of security. Because software is open source any individual can reverse engineer the code relating to the database and potentially steal and/or deface the information within storage. In light of this threat, there are guidelines for creating a secure database which should accomplish all of the following:
1. It prevents unauthorized or accidental disclosure, alteration, or destruction of data.
2. It prevents unauthorized or accidental access to data considered confidential to the organization or individual who owns the data.
3. It ensures data integrity, which means that the data stored in the database is always valid and accurate.
Luckily for us software developers, we have the ability to set permissions for other users/developers alike. Just as operating system administrators can set permissions for users’ access to a file or directory, the database admin has the power to set permissions for the database. They can withhold users’ ability to edit and set their permissions to read-only, or set it so that they can’t interact with it at all. Administrators can even do this at varying levels of access within the database. These levels are: Server level, Database level, Table level, and Column level, where privileges would apply at any of these set levels.
Overall, I enjoyed reading this chapter because it revamped my interest in the topic of database development because I now know how it applies to my field of interest, which is software engineering.