What is a database?
A database is a software program that provides facilities for efficiently storing and retrieving information. The information can be stored on a disk (traditional databases) or kept in memory (in-memory databases).
The sole purpose of a database is to provide a structured and organized way of storing data and along with it, an efficient way to store and retrieve the information. Without a mechanism to store and retrieve the data, the purpose of the database would be void.
Why Database?
One might wonder why do we need database programs at all.
All the software that we use is basically application programs (written in some programming language). Almost every application program works on data. In fact, there is hardly any application (desktop, mobile, web etc.) that does not need data to work. This data can be temporary (and may last only for the duration for which the application runs like intermediate data of the computations, session web page tags etc) or might be persistent data and must be stored somewhere permanently in order to be used as and when needed.
During the initial period of computer science evolution, application programs had to perform the read and write data to files. This meant that apart from the logic processing, the application code also has to deal with storage and retrieval of the data (along with several other checks like maintaining data integrity and consistency etc).
With more complex application requirements, it became necessary to have separate, standard, portable and more comprehensive storage of information. This would mean programmers could focus on the central application theme.
As such, computer programmers came up with the idea of database management systems. These database products provided a simple interface to store and retrieve data and relieve the programmer from the additional task of data manipulation.
Data cannot be stored in a random or ad-hoc fashion but has to be diligent and organized. For the application, how actually the data is stored on a disk should be immaterial. The application is more focused on the different data entities present in the data store and how they are interrelated and how data updates will be propagated among the inter-related data components(entities) i.e. it is more concerned with the blueprint of the data store.
This abstract blueprint is called a logical data model. Mathematicians and computer scientists came up with several approaches for logical data models and some of them attained standardization. These logical data models in fact conform to real-world scenarios and hence forms the basic block for application build-up.
Some of the data modelling techniques that gained standard acceptance were the Hierarchical data model, Network Data Model, Relational Data Model and Entity Relationship Models. These models will be described in more detail in different sections.
The database programs, as such, were developed to support one of all of these data models. How actually these abstract logical data models are actually implemented by database systems is represented by Physical Database Models. A physical database model will depend on the database product and will vary from product to product since different database products (DB2, Oracle, Microsoft SQL Server, Sybase etc.) have different ways of internally storing the data.
0 Comments