You are on page 1of 3

Characteristic of a good database are:

1. Should be able to store all kinds of data that exists in this real world. Since we need to
work with all kinds of data and requirements, database should be strong enough to store
all kinds of data that is present around us.
2. Should be able to relate the entities / tables in the database by means of a relation. i.e.;
any two tables should be related. Let us say, an employee works for a department. This
implies that Employee is related to a particular department. We should be able to define
such a relationship between any two entities in the database. There should not be any
table lying without any mapping.
3. Data and application should be isolated. Because database is a system which gives the
platform to store the data, and the data is the one which allows the database to work.
Hence there should be clear differentiation between them.
4. There should not be any duplication of data in the database. Data should be stored in
such a way that it should not be repeated in multiple tables. If repeated, it would be
unnecessary waste of DB space and maintaining such data becomes chaos.
5. DBMS has a strong query language. Once the database is designed, this helps the user to
retrieve and manipulate the data. If a particular user wants to see any specific data, he
can apply as many filtering conditions that he wants and pull the data that he needs.
6. Multiple users should be able to access the same database, without affecting the other
user. i.e.; if teachers want to update a student’s marks in Results table at the same time,
then they should be allowed to update the marks for their subjects, without modifying other
subject marks. A good database should support this feature.
7. It supports multiple views to the user, depending on his role. In a school database,
Students will able to see only their reports and their access would be read only. At the
same time teachers will have access to all the students with the modification rights. But
the database is the same. Hence a single database provides different views to different
users.
8. Database should also provide security, i.e.; when there are multiple users are accessing
the database, each user will have their own levels of rights to see the database. Some of
them will be allowed to see whole database, and some will have only partial rights. For
example, instructor who is teaching Physics will have access to see and update marks of
his subject. He will not have access for other subjects. But the HOD will have full access
on all the subjects.
9. Database should also support ACID property. i.e.; while performing any transactions like
insert, update and delete, database makes sure that the real purpose of the data is not
lost. For example, if a student’s address is updated, then it should make sure that there is
no duplicate data is created nor there is any data mismatch for that student.

As we now know what is a database, who would be the users of database? Of course the
developers will be using this database to design and develop. Who else? There would be an
administrator, who keeps watching the database for its usages, who is accessing it, giving access to
other users, limiting the security for the users, and any other maintenance work of the database. And
there is one more end users. These end users are the real group of people who really uses the
database and takes the advantages of database. In School database, teachers, students are the end
users, who really uses the database in their daily needs.

Where all are these database used? Everywhere!! Now a day, database is used in each and every
place. We can see the use of database in supermarkets, stock exchange, college, library, ATMs,
offices, banks, hospitals etc.
Components of a database includes

User: - Users are the one who really uses the database. Users can be administrator, developer or
the end users.

Data or Database: - As we discussed already, data is one of the important factor of database. A
very huge amount of data will be stored in the database and it forms the main source for all other
components to interact with each other. There are two types of data. One is user data. It contains
the data which is responsible for the database, i.e.; based on the requirement, the data will be stored
in the various tables of the database in the form of rows and columns. Another data is Metadata. It is
known as ‘data about data’, i.e.; it stores the information like how many tables, their names, how
many columns and their names, primary keys, foreign keys etc. basically these metadata will have
information about each tables and their constraints in the database.

DBMS: - This is the software helps the user to interact with the database. It allows the users to
insert, delete, update or retrieve the data. All these operations are handled by query languages like
MySQL, Oracle etc.

Database Application: - It the application program which helps the users to interact with the
database by means of query languages. Database application will not have any idea about the
underlying DBMS.
STRUCTURE OF DBMS

We saw how we can connect to database. But how is the database laid to process all user requests?
Since it is responsible to store huge amount of data and is capable of handling multiple requests
from users simultaneously, it should be arranged properly. One can imagine a database as a brain!
How is the structure of brain? Bit sophisticated and each part of the brain is responsible for some
specific tasks. Similarly, Database is also designed.

At very high level, a database is considered as shown in below diagram. Let us see them in detail
below.

 Applications: - It can be considered as a user friendly web page where the user enters the
requests. Here he simply enters the details that he needs and presses buttons to get the
data.
 End User: - They are the real users of the database. They can be developers, designers,
administrator or the actual users of the database.
 DDL: - Data Definition Language (DDL) is a query fired to create database, schema, tables,
mappings etc in the database. These are the commands used to create the objects like
tables, indexes in the database for the first time. In other words, they create structure of
the database.
 DDL Compiler: - This part of database is responsible for processing the DDL commands.
That means these compiler actually breaks down the command into machine
understandable codes. It is also responsible for storing the metadata information like table
name, space used by it, number of columns in it, mapping information etc.
 DML Compiler: - When the user inserts, deletes, updates or retrieves the record from the
database, he will be sending request which he understands by pressing some buttons. But
for the database to work/understand the request, it should be broken down to object code.
This is done by this compiler. One can imagine this as when a person is asked some
question, how this is broken down into waves to reach the brain!
 Query Optimizer: - When user fires some request, he is least bothered how it will be fired
on the database. He is not all aware of database or its way of performance. But whatever
be the request, it should be efficient enough to fetch, insert, update or delete the data from
the database. The query optimizer decides the best way to execute the user request
which is received from the DML compiler. It is similar to selecting the best nerve to carry
the waves to brain!
 Stored Data Manager: - This is also known as Database Control System. It is one the main
central system of the database. It is responsible for various tasks
o It converts the requests received from query optimizer to machine understandable
form. It makes actual request inside the database. It is like fetching the exact part
of the brain to answer.
o It helps to maintain consistency and integrity by applying the constraints. That
means, it does not allow inserting / updating / deleting any data if it has child entry.
Similarly it does not allow entering any duplicate value into database tables.
o It controls concurrent access. If there is multiple users accessing the database at
the same time, it makes sure, all of them see correct data. It guarantees that there
is no data loss or data mismatch happens between the transactions of multiple
users.
o It helps to backup the database and recover data whenever required. Since it is a
huge database and when there is any unexpected exploit of transaction, and
reverting the changes are not easy. It maintains the backup of all data, so that it
can be recovered.
 Data Files: - It has the real data stored in it. It can be stored as magnetic tapes, magnetic
disks or optical disks.
 Compiled DML: - Some of the processed DML statements (insert, update, delete) are stored
in it so that if there is similar requests, it will be re-used.
 Data Dictionary: - It contains all the information about the database. As the name suggests,
it is the dictionary of all the data items. It contains description of all the tables, view,
materialized views, constraints, indexes, triggers etc.

You might also like