Using a software basically has three special purposes which may be summarized like; reducing the redundant paper works, reducing allocated time and saving money. At the same time, there is one more important point of using software that is the aspect of the software developer companies. Since the software developer companies want to sell their products as much as possible, they should develop their products as flexible and compact as possible and the products also must be able to be used on many platforms (Yu, 2003).
Database independent application software development method is not a new idea and it is known that it provides advantages to developers. But, of course, this method always may not be implemented to every database application, because, the method has some restrictions and limits which can change according to the project and vendor type. In order to decide to use the method, typically, one should know what database independent software development is.
Database independency basically means that, an application could work together with a DBMS without requiring any features of DBMS. Database management systems have a lot of features belonging to data and some DBMS have specific and extreme functions in order to speed up the transactions and data processes. The method of database independent application software development is based on the principle that some of these features (standard functions like SQL that can be used on every DBMS) can be done in the application layer as well. Figure 1 shows the database dependent application software. In this method, tables and indexes are part of the database. Other relational functions for data: Views, triggers, constraints, stored procedures, users and some other features can be managed by the DBMS (Sahin, 2005).
Figure 2 shows an indefinite database application software graph. The point here is all the further features like views, stored procedures, users, triggers and constraints in DBMS shown Fig. 1, are inside the data module in application layer for the independent application. These relational features in data module can be managed in the application layer. This method uses only database part of DBMS and, database contains just tables and indexes.
In the method of database independent application development, any relational database including tables and indexes can be used in the application group of management system. This way, both the selection of database and the situation requiring database management would be excluded (Sahin, 2005; Hardman et al., 2003; Schlegel, 2004).
|| Database dependent application infrastructure
|| Database independent application infrastructure
One important point must be emphasized that, extra features which are not common functions (such as DSQL, Query optimizations features, etc.) for most of DBMS is not allowed for the database independent applications. Because, this method must support the application software to run with most of the DBMSs. Therefore, along all developing stages of the application, this basic rule must be obeyed.
There are so many differences such as human resources and time and cost for operation and maintenance period, between with database independent or database dependent application software development methods. It is very important to examine these changes with their pros and cons to figure out which method is more useful in which environment.
The application development life cycle changes according to the sector planned and its scale beginning with the planning and going on with the analysis, development, design and maintenance phases in turn. With in this process, human resources, time and cost required for them, should be calculated according to the size of the sector and the works that will be done and the development duration should run by determining the method first.
Economical evaluation of the methods: Before assessing and comparing two methods from the point of view of cost, some critical factors that will be used in assessments of methods must be determined. The most important factors are the size of the market to be served and possible clients budgets. These factors are the key point and very important, because if the target clients are Small-Medium-Enterprises (SME), then, both the software and DBMS license should have convenient price, otherwise, there is a big risk factor that the software may never be sold. In addition, If the software to be served to complex and specific market especially manufacturing sector, that time, the project needs extra time and effort to make its requirement specification and analysis. Therefore, firstly, the target sector must be considered.
When a software project planned, all possible and necessary products and resources that will be used with the software should be defined. Main necessary product is of course DBMS for a database application. So, the license price of DBMS is very important for the clients. Some of the SME says that there is no extra money for DBMS, or, some of them declare that we already have a DBMS, if it possible to use it for the software, then we can save too much money for both installation and maintenance. This is another key point of the assessment. Table 1 shows prices of some example DBMS. There are a couple of DBMS other than listed in table and that can be downloaded and used freely. At this point, the main subject is that DBMS brings additional economical burden to the clients. If a client is able to use free DBMS or choose the best DBMS according to their work-load, then, some additional payments may be reduced and the application may sold more easily to them.
|| Some example DBMS expenditures
|1: Prices (in USD) is gathered form (Oracle, 2005;
IBM DB2, 2005a, b; IBM, 2005a, b; MySQL, 2005; Sybase-Aberdeen, 2005; Borland,
2005; PostgreSQL, 2005) at 10/03/2005
The clients may choose any of the DMBS listed in Table 1 freely, if the application developed for database independent platform. This factor should be marked as a first coefficient factor of decision with highest priority.
Another cost factor that is human resources has to be clarified. In this factor, there are two main human resources discussion. One of them is members of developer team in the project, another is maintenance people of DBMS after software is sold. The first human resources have less importance as well as the maintenance members. Since maintenance is the longest phase of the project life cycle, it requires the people to have many skills over the project and other environment products.
If an application software is being developed for database independent platform, there is no need to employ additional people who are DBA or specialist on specific DBMS, since, most of the data processing will be done in application layer. In addition, there is also no need to employ a DBA for maintenance phase. This is another important coefficient factor of decision with high priority.
There is a big disadvantage of independent platform that is project duration. It must be noted that, no part of the database application project can be done concurrently. Because, all the data processing must be held in application layer, so it requires to be worked sequentially. Therefore, using the method of database independent application development, most of the projects take much more time than dependent application projects. This is also another coefficient factor for decision with high priority. In the meanwhile, duration of the project is also depends on the CASE tool that is used in project. Since, most of the CASE tools have no ability to create source code according to independent platforms, coding must be done by project code writers. This is also another burden on sellers and companies. So, this should be taken as a new coefficient with middle-high priority.
Another important factor is failing risk of the project at any coding stage because of not employing of a DBA. Sometimes, software engineers and coders may not have the good database knowledge and that situation always is a risk for the project. In order to prevent the project form this risk factor, well-educated people (developers, coders, etc.) must be employed in the project. This is another cost for the project, because, employment of well-educated people means additional expenditures and burdens on sellers and companies. Therefore, this situation should be determined as a coefficient with middle-high priority.
The last economical factor is recompilation and reconstruction cost. If any project has been developed with database independent method, that means all the necessary database functions are made in data module in application layer, so, it is enough to compile code one time and, to change database Alias, ADO provider or ODBC deriver for different DBMS. If database dependent method is used for the project, that time, it is required to build all database functions in DBMS for each selected DBMS and, it requires recompilation of the code whenever DBMS is changed. So reconstruction and recompilation can be taken as another coefficient with middle priority.
Finally, the new coefficient factors can be added to the list, in fact, it depends on the project developer company and the team structure of the project. Extension of the factors may help the project leader to select the best way for development.
Performance evaluation of the methods: One of the main important factors is system performance of the methods. This factor, of course, is important as much as the other cost factors. In fact, there are many elements that affect the system performance, such as CPU speed, data size, operating system, etc. Although, database independent applications have many advantages, the system performance is lower than other method, because, many of the DBMS products have many additional features that increase the system performance like SQL optimizer, different type of DB engines, etc. But the main problem is, these additional features have not common usage and, all features may differ for each DBMS. Thus, each feature can be used individually according to DBMS used.
Table 2 shows an example of performance results test. This test was applied for three different DBMS. DBMSs were used in the test, are the famous DBMS and they hold the 60% of the world software market. The test includes sample possible data operations that could be in an application.
Test results shows us, speed performance decreases by 14.53%, 14.30%, 15.59
for Ms. Access, Ms. SQL Server and Oracle, respectively. This performance reduction
may be too important for some database applications.
|| Performance test results according to methods (Sahin, 2005)
|1: M-1: Method 1, software developed for independent
platform; 2: M-2: Method 2, software developed for specific DBMS
|| Evaluation form that helps the developer to select the best
|| An evaluated sample form to select the best method
This, of course, depends on the company profile that the application will be
used in. This performance factor must be taken as another important coefficient
with highest priority.
Overall evaluation of the methods: Both economical and performance factors (coefficients) can be collected in a simple evaluation form as shown Table 3.
Table 3 can be used to decide which method is proper for
the project. In order to use this as a form, firstly the priority scores must
be determined in accordance with its importance in the project. Next, the sub-totals
are calculated by using the multiplication of the scores selected from priority
scores and appropriate coefficient. Next, grand totals are calculated using
sub-totals. Finally, decision may be made observing the grand totals (Greater
total shows the better). In the form, no coefficient is given 0, because, every
factor has specific importance and must be considered that they are necessary
for all projects.
Example: If a company plans to create a software that will service SME and it is though, that the price is the first restriction. At this point, company may fill the form as follows (Table 4).
The totals are 27.5 and 26.5 for independent and dependent methods, respectively. Independent methods grand total is greater than dependent methods total, therefore, independent method may be chosen for the application as a better way.
This form presents flexibility in decision, because, priority scores are determined by producers.
Each software project has specific goals and initial parameters such as fund, target clients, profit expectations, etc. These parameters affect the project life cycle and product (application) very much. One of the goals of developers (application) is to create application for database independent platform. This facility supports the product to be sold and distributed more easily. Furthermore, the product may be maintained cheaply. But, the project life cycle for independent platform is not easy, unlike for dependent platform. Both methods have some advantages and disadvantages and all advantages and disadvantages must be assessed and evaluated in order to choose better method. Although, database independent application software development has a little bit advantage than dependent method, this paper does not recommend any method, because the decision should be made by developers according to restrictions and conditions of goals. Proposed form presented in this study can be used to make a decision on which method may be better for a specific application project.