Nowadays, database systems greatly help businesses and individuals organize and retrieve huge amount of data. Many proposals about the designs and models of a database system were proposed through out the history of computing. Many had been used and implemented just for a time. However, some still persisted throughout the years. Example of a model for database system that endured and used up to now is the Relational Model.
Relational Data Model was formulated based on the concept of relations. In mathematics, a relation is an idea based on sets. The said model was proposed by Edgar Frank “Ted” Codd of IBM Research in 1970. Relation, informally, looks like a table of values and contains a set of rows. Each row, which called a tuple in this model, corresponds to a real-world entity or relationship. Each column, on the other hand, indicates an attribute. Consider the figure below which is an example of a relation.
Figure 1. An Example of a Relation
A key of the relation is an attribute that uniquely identifies a row in the table. For example, in Figure 1, we can that a key of the STUDENT table is the attribute No (which means student number) since no student can have the same student number. We also had this notion of primary and foreign key. A primary key is considered as the ultimate identifier of the table and chosen in the set of available keys. Let’s take into account again Figure 1. We could also consider the attribute Name as a key, giving us to keys, Name and No. However, when choosing the primary key, the attribute Name is dropped down. The attribute No is the primary key of the table since, although there is a very small probability, the attribute Name can have multiple values (a student share the same name). Meanwhile, foreign key is an attribute that references the primary key of another relation.
In considering relationships among relations, there are rules governing on indicating whether two relations have a one-to-one, one-to-many and many-to-many relationship. For example, let’s assume that we have two relations; the table STUDENT with attributes Student_Name, Student_No and the table TEACHER with attributes Teacher_Name, Employee_Num. The two relations are related via the relationship name TAUGHT BY. Let’s say that the two relations have a one-to-one relationship. In order to show it, we can include the primary key of the table TEACHER and add it as a foreign key in the table STUDENT. On the other hand, when the two relations follow a one-to-many relationship (which means a student is being taught by several teachers), we have to include the primary key of the “one” side (in this case, the primary key of the table STUDENT) as a foreign key to the table of the many “side”. Lastly, let’s assume that the two relations have a many-to-many relationship. To show that several students can be taught by several teachers, we create a new relation named TAUGHT_BY_N which include the primary keys of both the STUDENT and TEACHER table.
Several software where developed which makes relational database systems easier to manage for those who are knowledgeable in programming. ADO.NET is a set of software component used to access and modify data stored in relational database systems mostly. It is one of base class library included in the Microsoft .NET Framework. It is said to be a version of the ADO (ActiveX Data Objects) technology but was considered as another innovation since ADO was changed so comprehensively. ADO.NET was considered an efficient way of managing databases since it uses XML when interacting with the database and converts all data into XML for basic database operations. The following figure describes the basic ADO.NET architecture. There are two components in which data access in ADO.NET heavily depends on: DataSet and Data Provider.
Figure 2. The ADO.NET Architecture
The DataSet is described as disconnected, in-memory representation of data and on the other hand, Data Provider, as the name implies, is involved in providing and maintaining the connection to the database. Data access in ADO.NET can be condensed in three steps: first, a connection for the application to database is done by using a connection object; second, a command object launches a direct execution of command to the database and if the said command returns multiple values, it will return a DataReader or DataAdapter in order to access the data and last, if there are any updates on the database, the command object or the DataAdapter can be used to the necessary updates (Startvbdotnet.com, 2010). ADO.NET took database system management to a whole new level.
There are various methods available on database software. Example of which helps you to deploy a database on a server is the SQL Server Hosting Toolkit which allows you to work efficiently with SQL Express, SQL Server 2000 and 2005 databases. Advantages and disadvantages are apparently present when deploying these database systems on network servers and local machines. Some benefits of having database applications on network servers and local machines are speed and easy data management. However, we are restricted on how much speed the server could exhibit and the measure of the server’s scalability. A precaution that must be taken into account in deploying database is the possibilities of an SQL injection. Friedl (2007) described SQL injection as “a subset of an unverified or unsanitized user input vulnerability and the idea is to convince the application to run SQL code that was not intended.” It is simply codes injected to a string which is later passed on an instance of a database system for execution and parsing. SQL injections make the database system unreliable since it can delete and modify tables of the database.
Friedl, S. (2007). SQL Injection Attacks by Example. Retrieved from http://unixwiz.net/techtips/sql-injection.html.
Markatos, D. (2003). Introduction to ADO.NET. Retrieved from http://articles.sitepoint.com/article/introduction-ado-net.
MSDN. (2010). SQL Injection. Retrieved from http://msdn.microsoft.com/en-us/library/ms161953.aspx.
Startvbdotnet.com. (2010). ADO.NET. Retrieved from http://www.startvbdotnet.com/ado/default.aspx.