In Snyder Chapter 14, we are introduced to databases, which make it possible to apply more organization to information and receive more help from the computer than spreadsheets. It is important to understand metadata, or information describing properties of other information. This includes the metadata table’s name, attributes’ names, the types of values that each attribute can have, and the primary key. These concepts are somewhat straightforward, however understanding howto set up metadata for list to create database tables is not so simple. Snyder clearly explains the structure, content, and five basic operations of databases, and in this blog entry I will also further analyze these functions using other sources.
The main use of a database is to look up information. For example, at the nonprofit organization that I work at, we use a contacts management database system called FileMaker Pro. The organization purchased the software, then an in-house IT person tailored the database to the organizaion’s needs. Being a nonprofit, it is important that employees were able to look up contacts according to their affiliation with organization—so the “techie” inserted categories such as foundation, government, nonprofit, client, university, corporation,etc. This was extremely helpful when our employees were trying to find someone in the database or enter someone into the system, as well as important for communication purposes (mailing e-letter and news updates). The categories were also important for importing attendee lists from numerous annual nationwide events. Without the File Maker Pro database, the amount of information and lists of contacts could not be managed effectively. It was also extremely helpful to have someone on-site who could adjust the database as needed, because it was a fairly new program, users found glitches or ways to make it better over time.
On www.filemaker.com, the information on their database is very helpful and explains how the product provides solutions for businesses, education, government, and nonprofits. For example, according to the site, Filemaker helps nonprofits to:
- Track volunteer data
- Manage mailing lists
- Maintain donor information
- Manage grants and funding
- Create and manage surveys
- Organize volunteer contacts
As you can see, there are numerous uses for just this one program within one sector. There are a wide range of ways to utilize databases in order to make an organization more effective and efficient.
There are five operations of databases that Snyder explains in detail: Select, Project, Union, Difference, and Product. These are needed to create new tables from a database of tables. The Select operation takes rows from one table to create a new table, Project builds a new table from the columns of an existing table, Union combines the two tables, Difference removes from one table the rows also listed in the second table (the opposite of Union), and Product creates a supertable combining all he fields from both tables. In addition to the five major operations is the Join operation, which is like Product but doesn’t necessarily produce all pairings. Join only combines rows given that match on the field, not all pairing of rows.
Now that I understand a little bit about the basics for creating databases, I cant help but apply the ongoing “security” theme of our class. How can we secure databases so that unintended users cant get ahold of information? According to an article on http://searchsecurity.techtarget.com, “The secure operation of a database server requires a cooperative effort among IT professionals responsible for the secure operation of the network and servers, and those developing applications that interact with the database server.” The article, Five tips for secure database development, by Mike Chapple, has a few very helpful suggestions for securing databases:
- Use database views instead of tables. Developers should create applications that interact with views (basically, predefined queries) rather than interact directly with the underlying table. This allows greater control over access to information, both at the row and column level.
- Make use of stored procedures.Developers should store their SQL code on the server and make it available to applications through the use of stored procedures. This limits the range of actions applications may perform on the database and allows for easy, centralized updates if security requirements change in the future.
- Don’t embed SQL commands in application code. This goes hand-in-hand with the previous step. Developers should neverinclude SQL commands in their applications. This creates a significant vulnerability if malicious users are able to later modify the application.
- Don’t let developers have administrative power over users. Security professionals have long practiced the idea of separation of powers. It’s a good idea to ensure that developers (who often control table structures, stored procedures and the like) are not able to create and/or modify user permissions. This prevents them from succumbing to the temptation of loosening access controls to make a program work “just while we’re testing it.” I’ve seen all too many cases where those “temporary” solutions have remained in place for years. Requiring developers to approach administrators for permission changes limits the likelihood of unnecessary change requests.
- Apply the principle of least privilege. In our last tip, we discussed the importance of only granting users the minimum set of permissions necessary to complete their jobs. This is also true for the administrative accounts used to execute application code. Ensure that these accounts have only the specific permissions they need to execute authorized functions.
Snyder’s introduction coupled with further exploration of database uses and security was very helpful in my understanding of the differences between spreadsheets and databases. Now, when I am at work using FileMaker Pro, I will better understand how the software is working, as well as more ways to utilize its functions.
Leave a Response »