National Database Organization (NDO) Pakistan was established to undertake the function of handling the data being collected through National Data Forms during the Population Census 1998, which was conducted in March 1998. National Data Forms (NDFs) were designed by a committee of experts encompassing maximum social and fiscal indicators as implements for documentation of economy, future planning and for creation of a comprehensive Citizens' Database. To cater for a cohesive and unified approach in both Registration and Social fields NADRA was created in March 2000 by merging the Directorate General of Registration and National Database Organization (NDO). NADRA is an independent corporate body with requisite autonomy to remain free of political pressure and interventions for all times to come.
NADRA has been established with the objective of introducing a new, improved and modernized registration system for the entire population of Pakistan. Culminating among other things is the issuance of state-of-the-art National Identity Cards (NICs) to all adult citizens of Pakistan. These NICs shall be duly backed by the computerized database and data warehouse respectively called the Citizens' Database and National Data Warehouse (NDW).
The concept was developed to help government in implementing a fact based system of good governance in the country by encountering evils of undocumented population growth and registration of items belonging to citizens and organizations. NADRA had completed the creation of a comprehensive Citizens' Database by the new millennium based on National Data Forms.
NADRA, the authority, has been conceived as an instrument for implementation of Government's Vision to combat all evils of undocumented population growth. The most comprehensive and statistical data will be available at the National Data Warehouse. NADRA aims at including more or less every detail of every Pakistani. The quality of data will be monitored through direct inputs from the user and feeder agencies, and countrywide provincial, regional and District Offices. Thus, the NADRA concept envisages availability of data including a Biographic Information Sheet of every citizen and expatriate, encompassing all relevant social and fiscal indicators. The diversity of data available within unified NADRA terminals would ensure smooth planning and meaningful implementation of all governmental policies and projects, leading to good governance, a cherished dream of every Pakistani.
The principal goal of National Database and Registration Authority is "to develop a sophisticated Data Warehouse environment with support for multiple database management systems at national level for use by authorized users/feeder agencies."
Secondary goals of the Authority are:
- To develop a National Data Warehouse scalable enough to grow systematically with newly interfaced database of user/ feeder agencies
- To develop a National Information Infrastructure for online and countrywide access to National Data Warehouse in the shape of Pakistan Intranet
- To develop a National Spatial Data Warehouse Infrastructure to facilitate establishment of a comprehensive Geographic and Land Information System in Pakistan
- To prepare National Identity Documents for all persons including citizens foreigners, immigrants, etc. as follows:
- To prepare new computerized National Identity Cards for all citizens of Pakistan
- To prepare National Identity Cards for all Overseas Pakistanis includes Pakistanis with Dual nationalities or Pakistan Origin Nationals living abroad
- To prepare Card for all those Pakistanis working abroad
- To prepare identity cards for the employed foreigners living in, Pakistan, refugees, and Alien Registration Cards for aliens residing in awaiting decision on their legal status, under the supervision of NARA (National Alien Registration Authority)
- To register and issue all births and deaths at national level
- Register within its purview all persons and things, wherever and whatever they may be, to the extent and in the manner laid down in NADRA Ordinance 2000 ('thing' or 'things' means and include all animate or inanimate things, plants, animals, substances, items, concepts, ideas, laws, customs, qualities, signs, symbols, circumstances, affairs, events, acts, deeds, works, transactions, documents, pieces of movable or immovable property, tangible or intangible property, rights, privileges, duties, entities, living or non-living beings other than a human being and any thing that can be processed, or owned, or explained, whether known or unknown)
- The development and establishment of an improved and modernized system of registration in the country through appropriate means including technologically advanced, effective and efficient means like computerization, automation, creation of databases, data warehousing, networking, interfacing of databases and related facilities and services
- Each Entity is Registered Independently
Objectives Achieved by NADRA
Based on the philosophy behind establishing National Database and Registration Authority, its principal objectives so far achieved are stated here under:
- NADRA has prepared a Citizens' Database, based on National Data Forms collected during the Census 1998 and updated systematic inputs, providing for subsequent integration of entire population of Pakistan including Pakistanis living abroad. Thus computerizing major functions of Federal and Provincial Governments.
- Completed scanning and Data Entry of over 64 million National Data Forms (NDFs) and production of computerized ID cards for those who have met application requirements.
- Established a countrywide Data Communication Network (NII - National Information Infrastructure) linking the Central Database at NADRA Headquarters Islamabad to Provincial, Regional and District Headquarters, for online access to information. This network is being managed along the lines of Internet and shall be called "Pakistan Intranet or NII-National Information Infrastructure". Provision of access to Government, semi-government and selected private agencies for usage and updating of data in National Data Warehouse.
- Established Swift Registration Centers in 26 cities all over Pakistan with 40 more coming up. All centers are linked to the central sites where data is uploaded to the central data warehouse facility.
- Setup Automatic Border Control on all major International airports in Pakistan which screens and validates all incoming and outgoing passengers holding either NICOP or POC.
- Providing assistance to the Directorate General Passports in preparation and issuance of computerized passports.
- Providing assistance to the Islamabad Capitol Territory Administration for designing and implementing New Computerized Motor Vehicle Registration System.
- Registration and issuance of Birth Certificates, Children Registration Certificate (CRC), Marriage/ Divorce and Death Registration Certificates at National level are at initial stages.
- Design and development of National Spatial Data Warehouse Infrastructure is at initial stages.
- Automated Finger Identification System (AFIS) is under study and R&D.
- Concept of NSRC
- The NADRA Swift Registration Center's were designed keeping corporate organizations as a model. The purpose is to provide customers with the best facilities and services available, and treat each customer as a VIP.
Types of Databases
Following are the different kinds of databases
It consists of several related tables of simple data. These tables are composed of rows and columns.
It stores data in the form of object rather than in tables. They store attributes and class information, but sometimes they also store methods or behaviors in the database.
Object relational databases
It also consists of relational databases with data stored in tables, but they have a front end that converts objects to data and data to objects, making it seem to the application that objects are being stored.
These are simply files with a table of information which may be separated by delimiters such as colons, or semi-colons or commas.
We will now discuss the data representation, characteristics and advantages and disadvantages of relational, object-oriented and object relational databases one by one.
(Edgar F. Codd, 1970) invented the relational database; the relational model is extended from two database systems, the hierarchical and the network models. The main elements of RDBMS are based on Codd's 13 rules for arelational system, the concept of relational integrity, and normalization. The three basics of a relational database are that all information must be held in the form of tables, where all data are described using data values. The second fundamental is no redundancy i.e., each value in the table columns does not repeat. The last fundamental is the use of Standard Query Language (SQL). It is the standard for getting and storing data in an RDBMS
Codd's 13 Rules for the Relational Model:
- A Relational DBMS must be able to manage databases entirely through its relational capabilities.
- All information in a relational database (including table and column names) is represented explicitly as values in tables.
- Every value in a RDBMS is guaranteed to be accessible by using a combination of the table name, value of primary key, and column name.
- The DBMS provides proper support for the treatment of null values distinct from default values, and independent of any domain.
- The description of the database and its contents is represented at the logical level as tables and can hence be queried using the database language SQL.
- At least one supported language must have a well-defined syntax and should be comprehensive. It must support data definition, integrity rules, authorization, manipulation of data, and transactions.
- All views that are theoretically updatable can be updated through the system.
- The DBMS supports not only set-level retrievals but it also supports set-level inserts, updates, and deletes.
- Application programs and ad-hoc programs are logically unaffected when physical access methods or storage structures are changed.
- Application programs and ad-hoc programs are logically unaffected, to the extent possible, when changes are made to the structure of tables
- The database language must be able to define integrity rules. They must be stored in the online catalog, and cannot be bypassed.
- Application programs and ad-hoc requests are logically unaffected when data is first distributed or re-distributed.
- It must not bypass the integrity rules defined through the database language using low-level languages.
RDBMS Data Representation
Relational databases stores data in tables (relations) which are two dimensional. The rows (records or objects) and columns (fields or attributes). Data items at an intersection of a row and a column are called cells and it consist of attribute values. Data stored in cell is simple data such as integers, real numbers or strings. Multiple values are not stored in one cell. Relational database tables are normalized so that the data is not repeated more often than necessary. All columns in the table depends upon primary key (a unique value in the column) to identify the column. Once the specific column is identified, data from one or more rows associated with that column may be processed as required.
Primary Key & Foreign Key
Primary key is an attribute that uniquely identifies a particular record. It can not be null,
Foreign keys are used to access data in related tables.
Let's see the customer table below for primary key.
In the table above columns include Customer ID, Name, Street Address, City, Phone and e-mail. Each column has a different set of information about every customer such as their phone number. This information is to be considered as customer characteristics or attributes. Each row has all information needed about one particular customer. Each row must have a unique identification. We can use the customer name to identify the customer, but there is a possibility that more than one customer have same name. Therefore we are using a unique customer identifier. So the Customer ID is the primary key used to identify individual customers. The column to be used as the key must be identified to the relational database.
Characteristics of RDBMS
RDBMS is suitable for handling sophisticated, complex data models which require many tables, foreign key values, complex join operations etc. It is designed to ensure data integrity during rollback operations, referential integrity, and transaction-oriented operations. RDBMS is frequently written and used in transaction-oriented applications and is designed to handle frequently changing data i.e. RDBMS can store huge amounts of data which can later be analyzed or mined. It is configured on a per-application basis and a unique schema exists to support each application. It follows ACID (Atomic, Consistent, Isolation, and Durable) properties.
Atomic: Transaction should either run completely or not at all.
Consistent: Transactions operate on a consistent view of the data. When the transaction is completed, the data is left in a consistent state.
Isolation: Transactions run isolated from other transactions. So if transactions are running concurrently, the effects of transaction A are invisible to transaction B, and vice-versa, until the transaction is completed.
Durable: Once the transaction has completed, its changes are made permanently.
Advantages of RDBMS
RDBMS is simple becausethe tables are simple, data is easier to understand and communicate with others. RDBMS are flexible because users do not have to use predefined keys to input information. RDBMS are more productive because SQL is easier to learn. This allows users to spend more timeinputting instead of learning. Using RDBMS users cancreate and access data and extend it if required. After the original database is created, new data categories can be added without the existing application being changed.
Disadvantages of RDBMS
There are some limitations to the relational database management system.
Object Oriented Databases (ODBMS)
Object oriented databases are also called Object Database Management Systems (ODBMS). It stores objects rather than data such as integers, strings or real numbers. Objects are used in object oriented languages such as C++, Java etc.
An object has
- Attributes or state which defines the characteristics of an object. It contains data in the form of integers, strings, and real numbers or a reference to a complex object.
- Methods - Methods define the behavior of an object and are formally called procedures or functions.
ODBMS Data Representation
- Virtual memory mapping is used for object storage and movement of data from a database to an object programming language
- Each object has an object identifier (OID) which uniquely identifies a particuler object. OIDs are permanent, system generated OIDs make storing references in the database simpler but may cause referential intergrity problems if an object is deleted while other objects still have references to its OID.
- Database operations involves obtaining a database root from the ODBMS which is usually a data structure such as a graph, vector, hash table and traversing this data structure to obtain objects to create, update or delete from the database. When an object request is made from the database, the object is transferred from the database into the application's cache where it can be used either as a transient value or it can be used as a mirror of the version in the database.
- Data transfers are either done on a per object basis or on a per page (normally 4K) basis.
Characteristics of ODBMS
ODBMS like RDBMS has the ability to handle large amounts of data, indexes, deadlock detection, backup and restoration features and data recovery mechanisms, A primary feature of an ODBMS is that accessing objects in the database is done in a transparent manner so that interaction with persistent objects is not different as when interacting with in-memory objects. One other characteristic of objects is that from where the methods or data can be accessed. It could be best explained by the concepts of Inheritance; Polymorphism, data encapsulation overloading and overriding inherited methods and dynamic binding etc. Classes are used in object oriented programming to define the data and methods the object will have. The class does not itself contain data or methods but it defines the methods and data contained in the object. A class is used to create the object. Objects are the instance of a class. Classes may be used in object databases to re-create the parts of the object that may not actually be stored in the database. Methods may not be stored in the database and may be recreated by using a class. The normal rules of inheritance should apply with all their benefits including polymorphism.
Advantages of ODBMS
the data types of object-oriented databases can be extended to support complex data such as images, audio/video and other multi-media operations, Other benefits of OODBMS are its reusability, stability, and reliability. In ODBMS relationships are represented explicitly, often supporting both navigational and associative access to information. One important advantage is that users are allowed to define their own methods of access to data and how it will be represented or manipulated; an entire application can be comprehensively modeled in one UML diagram.
Disadvantages of ODBMS
As with the relational database method, object-oriented databases also have disadvantages or limitations. One disadvantage of OODBMS is that it lacks a common data model. There is also no current standard, since it is still considered to be in the development stages.
Schema Changes: In an RDBMS modifying the database schema either by creating, updating or deleting tables is typically independent of the actual application. In an OODBMS based application modifying the schema by creating, updating or modifying a persistent class typically means that changes have to be made to the other classes in the application that interact with instances of that class. This typically means that all schema changes in an OODBMS will involve a system wide recompile. Also updating all the instance objects within the database can take an extended period of time depending on the size of the database.
Language Dependence: An OODBMS is typically tied to a specific language via a specific API. This means that data in an OODBMS is typically only accessible from a specific language using a specific API, which is typically not the case with an RDBMS. Lack of Ad-Hoc Queries: In an RDBMS, the relational nature of the data allows one to construct ad-hoc queries where new tables are created from joining existing tables then querying them. Since it is currently not possible to duplicate the semantics of joining two tables by "joining" two classes then there is a loss of flexibility with an OODBMS. Thus the queries that can be performed on the data in an OODBMS is highly dependent on the design of the system.
Object Relational Database Management System
ORDBMS are systems that "attempt to extend relational database systems with the functionality necessary to support a broader class of applications and, in many ways, provide a bridge between the relational and object-oriented paradigms." ORDBMS simply puts an object oriented front end on a relational database (RDBMS). This will make you feel that object is stored in the database which is not the case. The system will convert the object information into data tables with rows and columns and vice versa when the data is retrieved but it must be reassembled from simple data into complex objects. ORDBMS was created to handle new types of data such as audio, video, and image files that relational databases could not handle. In addition, its development was the result of increased usage of object-oriented programming languages, and a large mismatch between these and the DBMS software.
Advantages of ORDBMS:
The main benefit to this type of database lies in the fact that the software to convert the object data between a RDBMS format and object database format is provided. Therefore it is not necessary for programmers to write code to convert between the two formats and database access is easy from an object oriented computer language.
One advantage of ORDBMS is that it allows organizations to continue using their existing systems, without having to make major changes. A second advantage is that it allows users and programmers to start using object-oriented systems in parallel.
There are challenges in implementing an ORDBMS. The first is storage and access methods. The second is query processing, and the third is query optimization.
Since the development of RDBMS, OODBMS, and ORDBMS, many vendors have extended their systems with the ability to store new data types such as images and texts, and with the ability to ask more complex queries.
One rising technique is enterprise resource planning and management resource planning, which add another layer of application-oriented features on top of a DBMS. Included applications come fromBaan, Oracle, SAP, and Siebel. These programs each identify a set of common tasks encountered by a large number of organizations and provide a general application layer to carry out these tasks.
More importantly, DBMS have advanced into the Internet and Web Age.Stored data is widely being accessed through a Web browser. Today, queries are being generated through Web-accessible forms and answers are being formatted using a mark-up language such as HTML. In addition, many vendors and distributors are adding features to their DBMS aimed at making it better equipped for Internet usage.
In summary, relational and object-oriented database systems each have certain strengths as well as certain weaknesses. In general, the weakness of one type of system tends to be strength of the other.
Disadvantages of ORDBMS
ORDBMS converts data between an object oriented format and RDBMS format, due to this, speed performance of the database is degraded substantially. This is due to the additional conversion work the database must do.
Recommendation for the Organization:
Current and Future Trends
Relational databases are still the most popular database in use today. There is good reason for this. They are easy to use and are normally efficient.
However as programming has changed, tools related to those changes must also change. Object oriented programming is becoming much more popular and as that occurs a more practical tool for long term storage of data is in demand. This tool must interface easily to the object oriented language in question. It must also be a standard tool so users are not tied to specific vendors and should have a standard way of exchanging information between applications and the database. OQL was developed for this purpose, but it does not appear to be widely supported yet by object oriented database vendors.
Although object databases were first written many years ago, since they have not yet become popular, it appears that the market is not stable. There are several object oriented database vendors, and it is difficult to tell who will be in the market for the long haul. Therefore, I believe the purchase of an object oriented database is somewhat of a risk. This risk may be somewhat mitigated by the fact that programs can be written in object oriented language to isolate the programs from specific object database products.
If the benefits of the object oriented database are large enough for the particular application they are used for and the specific organization considering them, the risks are likely to be worth taking. However, if the benefits are marginal, it may be worth waiting another year or two for more market stability and uniformity.
The fact that an OODBMS is better suited to handling complex, interrelated data than an RDBMS means that an OODBMS can outperform an RDBMS by ten to a thousand times depending on the complexity of the data being handled
Composite Objects and Relationships: Objects in an OODBMS can store an arbitrary number of atomic types as well as other objects. It is thus possible to have a large class which holds many medium sized classes which themselves hold many smaller classes, ad infinitum. In a relational database this has to be done either by having one huge table with lots of null fields or via a number of smaller, normalized tables which are linked via foreign keys. Having lots of smaller tables is still a problem since a join has to be performed every time one wants to query data based on the "Has-a" relationship between the entities. Also an object is a better model of the real world entity than the relational tuples with regards to complex objects.. Class Hierarchy: Data in the real world is usually has hierarchical characteristics. The ever popular Employee example used in most RDBMS texts is easier to describe in an OODBMS than in an RDBMS. An Employee can be a Manager or not, this is usually done in an RDBMS by having a type identifier field or creating another table which uses foreign keys to indicate the relationship between Managers and Employees. In an OODBMS, the Employee class is simply a parent class of the Manager class.
Circumventing the Need for a Query Language: A query language is not necessary for accessing data from an OODBMS unlike an RDBMS since interaction with the database is done by transparently accessing objects. It is still possible to use queries in an OODBMS however.
No Impedence Mismatch: In a typical application that uses an object oriented programming language and an RDBMS, a signifcant amount of time is usually spent mapping tables to objects and back. There are also various problems that can occur when the atomic types in the database do not map cleanly to the atomic types in the programming language and vice versa. This "impedance mismatch" is completely avoided when using an OODBMS.
No Primary Keys: The user of an RDBMS has to worry about uniquely identifying tuples by their values and making sure that no two tuples have the same primary key values to avoid error conditions. In an OODBMS, the unique identification of objects is done behind the scenes via OIDs and is completely invisible to the user. Thus there is no limitation on the values that can be stored in an object.
One Data Model: A data model typically should model entities and their relationships, constraints and operations that change the states of the data in the system. With an RDBMS it is not possible to model the dynamic operations or rules that change the state of the data in the system because this is beyond the scope of the database. Thus applications that use RDBMS systems usually have an Entity Relationship diagram to model the static parts of the system and a separate model for the operations and behaviors of entities in the application. With an OODBMS there is no disconnecting between the database model and the application model because the entities are just other objects in the system.
- AN EXPLORATION OF OBJECT ORIENTED DATABASE MANAGEMENT SYSTEMS By Dare Obasanjo