When you build a new software application, you always need to worry about how to store and retrieve data related to that application. You can store the data in simple files, but then you will have to manage your own file-formats, write code to insert and delete data records, order or organize the data for fast retrieval, make it resilient to system crashes, and a host of other complicated issues. A Data-Base Management System (DBMS) is a software that efficiently handles all these common requirements for data storage and retrieval.
This lab is intended to complement an introductory course on databases with practice sessions on designing, creating, modifying and querying databases. This includes all that is necessary to effectively use a DBMS – a skill that is essential for programmers in both academia and industry. This lab does not deal with the internals of a DBMS, such as the construction of index structures, or transaction processing. Such details are only of interest to those who wish to further specialize in the field of databases.
This lab includes 3 sessions on designing data models using simple examples that are suitable for self-study and practice. Another 4 sessions deal with the intricacies of relational database design, specifically normal forms. Finally, the last 3 sessions deal with SQL – a language used to manage and query databases. Although SQL is a standard, each vendor has minor variations in their implementation. In this lab, we use SQLite – a surprisingly simple and small DBMS that is never-the-less as fast and capable as other heavy-duty DBMS engines. It is small enough to embed into tiny devices, or to distribute along with software that you may create.
This lab is helpful to undergraduate or postgraduate engineering students studying computer science. Prior knowledge about data structures would be helpful, although not mandatory. Database systems is normally a compulsory course in all undergraduate CS curricula worldwide and is typically taken in the 2nd/3rd year of study.
In spite of the abundance of engineering colleges teaching CS curricula in our country, the industry still paradoxically faces a shortage of trained man-power. The need of the hour is to enable students to not only have theoretical knowledge that is imparted in the class-room, but also have hands-on exposure and skill that comes only from the practice of actually designing databases and solving associated problems. This lab intends to fill that requirement. Its content is divided into 10 sessions (experiments), each session being tutorial-like – guiding the reader through the relevant theory with the help of code, simulation, diagrams, examples and practice problems.
The list of experiments is as follows:
Note: To fully experience the interactive content in these labs, you must first login. For more details on how to use the interactive content, please see the procedure page.
Creating a Login: If you have not already created a login, then click on the 'Log in to edit a copy' link at the top-left of this page, and then 'Sign up for a new Sage Notebook account'. Signing up is easy. Enter a username and any password that you would remember easily. Then come back to the login screen and login with your username/password. You will reach a page listing all your worksheets. Initially, this list will be empty. Click on the 'Published' link on the top-right corner, and you will see a list of published worksheets. Click on the 'Databases Virtual Lab' worksheet to return back to this page.