Fundamental of Databases — part 1
This is a summary of Databases System Concepts and Designs taught by Leo Mark from Georgia Tech.
1. What is a database?
A database is a model of reality. This definition raises two questions for us. First, why do we need to use models?
Second, when is the exact time to use Database Management System to use such a model?

The answer to the first question is that we need a model as a representation of reality.
2. A map is a model of reality
Look at the wrong map of Indonesia on the left and the correct map of Indonesia on the right. What do you notice? The wrong map has the wrong color for islands in Indonesia (usually we use green to draw an island), the wrong size for several islands, and last, the wrong direction. The correct map has all the correct properties of a map.

3. A Message to Model Makers
First, a model is a means of communication. Second, users of a model must have certain knowledge in common. To be remembered a model:
- only emphasizes selected aspects of reality
We only care about aspects that are useful to our purpose - is described in some language
We need to agree and understand the language we use in order to be able to communicate through the model - can be erroneous
We need to remember that model is never perfect. - may have features that do not exist in reality
4. What is Database Management System (DMS)?
Database Management System is a software system that allows users to create and maintain a database.
5. When to use and to not use DMS?
Use DMS when the databases:
- have data-intensive applications,
Some applications are data-intensive applications and some are process-intensive applications. Use DMS for data-intensive applications. It is a situation when applications have a lot of data that may flow between memory and secondary storage and may be communicated between the users and the database. - provide persistent storage of data
Even if our application is shut down our database is still going to be there the day after. - provide centralized control of data
It is important because it is possible to enforce policies across a database, even when it’s distributed. - allow control of redundancy
It is important because we don’t want to waste space on having data represented in many different locations. By controlling the redundancy we get some other advantages. Some of those advantages are we can control consistency and integrity. Consistency is the question of whether we can derive contradictions from within the database itself which is not possible if we have redundancy. - provide multi-user support
Think about a system that allows tens or hundreds of users to use the database at the same time. For example flight reservation system. - allow sharing of data
The key behind supporting communication is sharing of data. When we operate from many different places on the same data, and we share data, then we are communicating. - contain data communication
Databases contain their own documentation of the structures of the data and cannot run without that - has data independence
It is an ability to change the implementation of a database to be more efficient without affecting the user interface. - has control access and security
- provide backup and recovery
Do not use DMS when:
- the initial investment in hardware, software, and training is too high
Some DMSs are as big as operating systems. The hardware needed to run such software systems is expensive. The amount of time you need to learn the databases also needs to be considered. - the generality is not needed
There’s a substantial overhead for security, concurrency control, and recovery in the database systems. Maybe we don’t need such high-level security, many users' access, and recovery. - data and applications are simple
- real-time requirements that cannot be met
If we need an application with real-time requirements and our DMS cannot run fast enough to meet those requirements. - multiple user access is not needed
Access the continuation of this material in Fundamental of Databases — part 2