0% found this document useful (0 votes)
53 views3 pages

Computer Applications Topic

The document describes the development of a performance management information system (PMIS) that stores data in a flat file database and allows users to quickly retrieve and display records. The system was developed using C language on Linux and utilizes a modified B-tree data structure for indexing and retrieving records by primary key from the flat file database more efficiently than a sequential search. It provides a graphical user interface built using the GTK+ library to present records to users.

Uploaded by

Sirajuddin A
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
53 views3 pages

Computer Applications Topic

The document describes the development of a performance management information system (PMIS) that stores data in a flat file database and allows users to quickly retrieve and display records. The system was developed using C language on Linux and utilizes a modified B-tree data structure for indexing and retrieving records by primary key from the flat file database more efficiently than a sequential search. It provides a graphical user interface built using the GTK+ library to present records to users.

Uploaded by

Sirajuddin A
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 3

International Journal of Computer Applications (0975 8887)

Volume 21 No.2, May 2011


38
Performance Management Information System Development
Dhruv Seth
Senior Analyst
Wells Fargo India

Vidisha Raj
Assistant Systems Engineer
Tata Consultancy Systems
ABSTRACT
An organization namely a government, corporate house or even
a school nowadays relay on information collected for a huge
amount of data. Storing the data, handling it to get the relevant
record and presenting it gives the organizing body an aid to
make a decision. Similarly, a management information system
(MIS)
[2]
is used in corporate houses and other similar institutes
to provide control of all the businesses involving people,
documents, technologies, and other procedures used by
management accountants to solve problems such as costing a
product, service or a business-wide strategy. Our project was to
develop a similar system which could store the data in a flat file
and fetch it in a lesser time and display it on a UI for the user.
We developed the static library in C language in Linux
environment and used GTK+2.0 library
[1]
to build the User
Interface to present the records.
Keywords
MIS
[4]
, Management Information System, Indexing,
Development, C-ISAM
[5]
.
1. INTRODUCTION
An 'MIS' is a planned system of the collecting, processing,
storing and disseminating data in the form of information
needed to carry out the functions of management. According to
Philip Kotler "A marketing information system consists of
people, equipment, and procedures to gather, sort, analyze,
evaluate, and distribute needed, timely, and accurate information
to marketing decision makers. The terms MIS and information
system are often confused. Information systems include systems
that are not intended for decision making. The area of study
called MIS is sometimes referred to, in a restrictive sense, as
information technology management. That area of study should
not be confused with computer science. IT service management
is a practitioner-focused discipline. MIS has also some
differences with Enterprise Resource Planning (ERP) as ERP
incorporates elements that are not necessarily focused on
decision support.
2. PROPOSED METHOD
The project implements the modified version of the b-tree for
maintaining a database management system, which includes all
the facilities of a basic database system. The concept used to
decide the line of action was C-ISAM library. C-ISAM stands
for Indexed sequential access method, it is a library used to
maintain a database. However, the library was not available as it
was a propriety library of IBM Informix. So, we worked out the
solution, which used the concept of C-ISAM, using a modified
Bayers Tree. The project includes a backend implementation of
the modified BTREE version, which handles the database
storage strategies. The frontend of the projects handles the basic
GUIs and the services which the application provides. The
project focuses on development of MIS. This maintains the
database of few tables regarding the Sales and Delivery in a
Company. The fact is that a file is stored as a sequential data of
records. For example, a table of Project has three fields for
example, Project number, name, date, project engineer, would
be like:
Figure 1. Showing a sample record
Serial No. Name Date
Employee
Name

302 Project 1 12/3/2009
Amit

405 Project 2
31/01/200
7
Kunal
Singh


Storing the record in a form of struct data type, for each table,
would be a solution for the problem of the mode of storage. But,
the records stored in the file, would not return a reliable file
pointer. Therefore, we had to store the database in the simple
style of storing in a sequential format as shown in the Figure 2.
Figure 2. A way to store data in a file is shown.

The records can be identified uniquely by the primary key of the
table. Hence, using the feature of the key, one can search any
record in a database. Now, the problem was of storing the
primary key with the records position is the only chance of
getting any desired record. Hence, we stored the file position
against the primary key of each record. This is also called
indexing of each record.
2.1 Implementation of Indexing
As the data is being stored in the file, the starting location of
each record, in the sequential file, with the primary key is stored
in a file named master index. Now, the indexes of the records
are stored in a file. The question arises that in which way one
should implement this search of primary key, to access the
records location in the database file. Other than that, searching
of an index in the Master Index file would result into a larger
time complexity, if the records are larger in number. The
contents for a master index file are shown in Figure 3.
International Journal of Computer Applications (0975 8887)
Volume 21 No.2, May 2011
39
Figure 3. The master index file is shown.

2.2 Proposed Solution Strategy
To solve the above stated problem, one can store the indexes in
a form of data structure. This implementation is being done
using the concept of BTREE (Bayers Tree), which stores the
primary keys in a form of tree, which have a root and leaves.
The original BTREE is being modified in the project, so as to
make it customized to our requirement. The concept of BTREE
is to store the data values in a sorted order and search the key as
per the value of the current node with the search key.
For example, represented in the Figure 4.
Figure 4. Showing a B-TREE.

The regular BTREE has the factors of minimizing the search for
a leaf node by a factor know as t, which states that the maximum
nodes a leaf can have is 2t-1. In the modified BTREE,
implemented, the maximum keys stored in a leaf is set constant
as 3, as the number of records being stored is assumed to be less.
Further, the searching for the required key in the BTREE is done
using simple binary search, as the keys are stored in ascending
(or already sorted) order. This method is adopted because when
the amount of records exceeds a certain level, say 10MB, then
the usage of RAM would increase and the system might
consume more and more memory on increase of records. Instead
the storage of each leaf is been on the disk and whenever the
leaf is required the corresponding leaf file is accessed for that
purpose. This way the usage of RAM decreases, though it
decreases a factor for I/O performance. This method is devised
keeping in mind the number of records in the database to be
above a million. Below figure (Figure no. 5) shows an
implementation of B-tree.
Figure 5. Implementation of the B-TREE

2.3 Implementation Details
The implementation of the problem was done in a simple
fashion. The steps involved are:
For storing the nodes, in a format of BTREE
1. START
2. The user enters the record, the primary key is stored in
the MASTER INDEX FILE, along with the file location.
3. As the record is saved, the MASTER INDEX FILE is
read and the modified BTREE is formed as:
a. The first record is stored in the root file, as seen in the
figure below.
b. As the records are saved, the root file is filled, along
with their file pointer positions, in an ascending order.
c. After the root is completely filled, the records are
filled following the order of leaves i.e in ascending order.
d. The naming of the leaves are named as table/first
node_leaf, which states that it contains the nodes having value
less than primary key of the first node of the root.
e. Similar is with every leaf.
f. STOP
For searching of the nodes, in the BTREE:
1. START
2. The BTREE is stored in an ascending order, the value
to be searched is first picked, for matching, in the root node.
3. The root leaf is searched for the match, in a binary
search mode.
4. If the value is matched, by a node in the leaf, the result
is returned with the corresponding file pointer.
5. If the value is not found in the current leaf, the related
position of the next leaf to be searched is returned to the
recursive function.
6. The function returns if the value is not found, when
the function reaches the last leaf without a match.
7. STOP
The root of the BTREE is been stored as a file namely
table1/root, the keys having lesser value than the key 200 in
the root is been stored as table1/200_leaf, and so on.
The deletion process:
1. START
2. The user gives the primary key of the record to be
deleted.
3. The root leaf is being searched for the match.
4. If the value is not matched, then user is given the
notification.
5. If the value is found in the BTREE, the value of the
file position and the primary key is set to -1 in the MASTER
INDEX FILE.
6. After that, the current BTREE of the record is deleted.
A new BTREE is formed with the modified MASTER INDEX
FILE.
International Journal of Computer Applications (0975 8887)
Volume 21 No.2, May 2011
40
7. Also, the database file is modified with an invalid
value for the set of record, to be deleted.
8. STOP
The modification process:
1. START
2. The user gives the primary key of the record to be
modified.
3. The primary key value is matched in the current
BTREE.
4. If the value is not found, the user is given notification
of the result.
5. If the value is found, the user is given a dialog box,
which contains the current values of the record. Then the user,
can alter or change the record details and save the new record.
6. As the primary key has a default file pointer stored
against it in the MASTER INDEX FILE. The value is used to
alter the record in the database file.
7. STOP
SEARCHING IN A BTREE (example as shown in Figure 6)
Command: Search 250, in the BTREE.
The above mechanism will render the complexity of searching a
key from a large database system to mere O(log n). This method
is adopted because when the amount of records exceeds a certain
level, say 10MB, then the usage of RAM would increase and the
system might consume more and more memory on increase of
records. Instead the storage of each leaf is been on the disk and
whenever the leaf is required the corresponding leaf file is
accessed for that purpose.
Figure 6. Searching mechanism

This way the usage of RAM decreases, though it decreases a
factor for I/O performance. This method is devised keeping in
mind the number of records in the database to be above a
million. The above problem has the time complexity of log(n).
As the BTREE has an implementation in the hard disk rather
than RAM. This states that, if the numbers of records are larger
the size of memory used by the application will be less. But the
I/O operations will render the system to slow; this problem can
be dealt with the help of the BTREE itself, by increasing the
number of nodes to be stored in each leaf, which is set by
DEFAULT as 3 per leaf. This gives flexibility to the problem
according to the number of records stored in a table. Below is
the graph which shows the average real time (in ms) vs number
of items per leaf taken after implementing the algorithm to
search an item on a Pentium 3 (1.65 Ghz) system having Ubuntu
8.10 (linux kernel 2.26) with varied items per leaf set from a
range [3-1700] items per leaf.
Figure 7. Graph generated after implementation of the
algorithm to search an item.

3. ACKNOWLEDGMENTS
Our special thanks to Mr. K. K Majumdar, General Manager,
HCL Info services Ltd. and Ratika Pradhan, Faculty member
from Sikkim Manipal Institute of Technology for reviewing the
project.
4. REFERENCES
[1] Beginning Linux Programming by Neil Mathew and
Richard Stones. Publisher Wrox Publishing inc. 4
th
Edition.
[2] Development strategy of MIS for small and medium-sized
enterprise- Guo-Shun Lin Dong Xiang Qing Chang
Shipping Manage. Coll., Dalian Maritime University.
[3] Development of a comprehensive management
information system for a large R&D laboratory- Panella,
R.F.; Jendrian, F.H.; ASTARS Program Branch, Wright
Lab., Wright-Patterson AFB, OH.
[4] Evolutionary database design and development in very
large scale MIS- M. C. Filteau, S. K. Kassicieh and R. S.
Tripp.
[5] IBM Informix C-ISAM Version 7.x for UNIX and Linux,
official e-book by IBM Informix. (ISBN - GC27-1491-00)
[6] Systems Development in Information Systems Research
Jay F. Nunamaker, JR., Minder Chen, and Titus D.M.
Purdin.

You might also like