Tuesday, February 14, 2012

Database Management and Availability

Access Science’s article on database management systems, while quite thorough, made me glad that I am not a computer science major as it was, without doubt, the driest article I have read. That being said, I think it broke down fairly well the architecture of a database and its systems. I had not realized that a database was more than a set of data compiled and organized. The three-level framework is a convenient way of describing how a complete database management system can make data available in a coherent manner to the end users. It is in the external level that I believe we will see the most innovation. The internal level, consisting of how to store the data, has limited variations and little impact on the databases efficacy. The conceptual level, which dictates how the data interrelates, is often dictated by the data itself. The external level is the bridge between the data and its relationships and the user. As the external level is improved, the efficiency of the database management system is increased. Essentially it provides the interaction between the human brain and the computer; the limit to the efficiency of that interaction is not even close to being realized and therefore has the potential for the most improvement.

The second article I read took a step back and looked at how to keep all of this data available to users. Availability can be compromised due to planned and unplanned downtime. This may be due to hardware issues such as CPU failure, power interruption, even location compromise such as a building fire. Downtime can also originate from the software side of the database. This could include scheduled maintenance such as upgrades and backups, in the case of planned downtime, or data corruption, software bugs, etc. in the case of unplanned downtime. Regardless, it is imperative to maintain the availability of the database to the users, and precautions must be taken and technologies utilized ahead of time to ensure such.

One of the main precautions to take is what is referred to as clustering. This involves using multiple servers, sometimes in multiple locations, to share the workload and be able to take over the operations of one if it goes down. Solutions can also be handled by the software, often the database management system. A good management system should be able to protect against downtime in a number of different ways. One of these ways involves replicating changes from a primary source database to a standby database, which could be located remotely. A similar solution is accomplished by log shipping which automatically backs up log transaction files to the standby server. Finally you can have mirror servers, that exist simultaneously and to the same extent, i.e. data is always written to both servers.

I think we often take for granted the availability of data, but as we become more reliant on massive amounts of data, it will become even more crucial to make sure it is always available to the users.

2 comments:

  1. I believe that the availability of data will be highly crucial for users. In addition to this, data security may become another important issue in future. I think a good management system should be able to protect against downtime and also, keep the data protected from unauthorized access.

    ReplyDelete
  2. At the beginning of this blog post, John makes essentially the same point that I made at the end of my post. The Access Science article is incredibly tough to get through, although it provides important information on DBMS. I was intrigued by the focus on the external level of the three tier architectural frame-work, where he states that this area has the most room for improvement and is also the opportunity to provide the most efficiency in the DBMS. This is an interesting finding and I would agree with the conclusion. His second article addresses availability concerns, but I think these are nothing major. Software companies do need time to update their software, but this can be done in minutes. As for power interruption, there are already emergency backup generators attached to important networks and computer systems. Backup servers are definitely a great idea to have in case of failures and downtime. Finally, I agree that if we cannot access a server, we immediately become extremely frustrated, which in turn shows how much we take advantage of DBMS and databases in general.

    ReplyDelete