What is a database?
I found the best definition of a database at TechTarget: a database is a collection of information that is organized so that it can easily be accessed, managed, and updated. That says a lot in a few short words. It even covers concepts like data integrity and data validity by implication. But how does all this happen?
First of all, realise that database principles are founded on mathematical foundations. Most databases are relational databases. That's where we start, right at the bottom.
A relation is a table, like a spreadsheet table, but with the difference that it can be related to another table, or tables, in several ways. There are also definite rules on how a table should be constructed. On this site is a database design tutorial. You will find everything you want to know about database tables, how they should be constructed and how they relate to each other, in this tutorial.
You may have heard the term database schema. What is a database schema?
A database schema is the formal description of a database system. Seen from the ground on up, a database system consists of the following:
- the individual databases, like the sales database, the member database, etc.
- the database management system through which users access the databases in the above point
- the database server, which makes the services of the database management system available to computer programs, is not always included in this list
Database management system
A database management system is the software part of a database system that allows for the creation, use and deletion of databases in that database system. The database management system understands query languages, like SQL, and controls things like concurrent access to the same database. The database management system is really the controller of the database system.
A database server is a program that makes database services (storing data, making this data available for queries, etc.) available to other software. This other software may be a Linux shell called from a console window (command window in Windows) into which one types SQL commands, or it may be a larger program which eventually presents a gui (graphical user interface) to the end-user, among other things. So, a database server is the gateway to the real databases contained in the database system.
Obviously, the database server is just the gateway through which other programs interact with the database management system. As said before, the language of the database management system is a query language, mostly SQL.
SQL stands for structured query language. This is the language of databases. If you know it, you can do everything you want to do with the database, from creating a database, creating tables, filling them with data, doing queries to get data out, updating and deleting data. An SQL database is really just a database which can be used using SQL - which is most of them. Using SQL, one talks to the database controller, also known as a database management system, through the database server.
One uses SQL by typing in text commands and getting the database server to pass them on to the database management system which executes them. The previous sentence raises two problems:
- typing in text commands in what sounds like a programming language - that doesn't sound very end-user friendly
- is there not a gui (graphical user interface) way end-users can interact with the database?
So far, a database (really a database system) doesn't sound very useful to an end-user. From what went before, it sounds as if our hope lies in the other software. That's exactly the way it is. This other software which will enable an end-user to work with a database is called a database application.
A database application is computer software which allows one to enter, update, read and delete data from a database. Most end-user targeted database applications see to it that the end-user has a gui to work with. There are two main ways of providing a gui. The second one is increasing in popularity:
- a desktop gui like with MS Access
- the database application creating web pages which are displayed in a browser
Obviously, the second list item above opens up the ideal of a database accessed from anywhere one has an Internet connection. Some people call databases like these online databases or web databases. It also greatly limits what the end-user has to have running on his computer. Considering end user computers is really important in coming to a decision of exactly what one needs.
A web application is merely an application (program) running on a web server, accessed by anyone with access to the web server. This web server may serve to the Internet which means that "anyone" is in fact everyone with access to the Internet. Of course, your application can implement user names, passwords and roles which means that different people can have different levels of access. A web application is very often used to access a database.
The heading above should really be free database systems. Now there are quite a number of free database systems which run on more than one operating system. Personally, I favour PostgreSQL.
If you find what you learned on this page useful, please use the social media widgets at the bottom and pin, tweet, plus-one or whatever this page.