DBMS Mini Project
DBMS Mini Project
Submitted by
Signature Signature
Chapter
Title Page No.
No.
1 Abstract 4
2 Introduction 5
3 Problem Statement 6
4 Module Description 6
6 ER diagram 8
8 Normalization of Database 13
11 Conclusion 18
12 Appendix I - Screenshot 19
13 Appendix II - Portfolio 21
The ATM machine will be designed using a combination of hardware and software
components. The hardware components will include a keypad, card reader, dispenser, and
display screen. The software components will include the operating system, user interface, and
transaction processing system. The project will also focus on implementing security measures
such as authentication, authorization, and encryption to protect user data from unauthorized
access.
The project will be implemented using a MySQL database. The user interface will be
developed using Java Swing, and the database will be connected to the interface using JDBC.
Overall, this project aims to provide a reliable and efficient DBMS for an ATM machine that
can handle a large volume of transactions while maintaining data accuracy and security. The
implementation of this project will improve the efficiency and accuracy of the banking
operations and enhance the overall user experience.
Introduction:
Automated Teller Machine enables the clients of a bank to have access to their account
without going to the bank. This is achieved only by developing the application using online
concepts. When the product is implemented, the user who uses this product will be able to see
all the information and services provided by the ATM, when he enters the necessary option
and arguments. The product also provides services like request for cheques, deposit cash and
other advanced requirements of the user. The data is stored in the database and is retrieved
whenever necessary. The implementation needs ATM machine hardware to operate, or similar
simulated conditions can also be used to successfully use the developed product.
The program is designed in such a way that the user must card and pin number. Once
verified, he is provided a menu and he/she had to enter the option provided in the menu. For
example, when the user wants to view the list of payment history than he/she had to enter the
option for payment history provided in the main menu. When the option is entered alone with
the respective argument, then the payment history is displayed on the screen. The project will
also focus on implementing security measures such as authentication, authorization, and
encryption to protect user data from unauthorized access.
The user also must be given the option to browse through the pages like previous page,
next page, etc. The user may experience a delay in retrieving or viewing the data, when there
are many users logged on to the same bank branch system.
To develop this ATM system the entire operation has been divided into the following step:
1. Verification process
3. Banking services
4. Transactions
5. Special services
Problem Statement:
The project entitled ATM system has a drastic change to that of the older version of
banking system, customer feel inconvenient with the transaction method as it was in the hands
of the bank employees. In our ATM system, the above problem is overcome here, the
transactions are done in person by the customer thus makes the customers feel safe and secure.
Thus, the application of our system helps the customer in checking the balance and transaction
of the amount by validating the pin number therefore ATM system is more user friendly.
Module Description:
Branch Accounting System: This system contains several branches’ information, for example
the number of users, etc. Whenever the atm card is swiped the atm system will refer to this
system and then proceed.
Account Database: The account database consists of details of different accounts of users from
different branches. It will contain the account status of the user which gets referred during
transactions. It retrieves account information from the database management module and
presents it to the user.
Branch Counter System: This database keeps the count of branches and will accommodate
any changes made with branches and their users.
Maintenance System: This system will maintain the cash fed into the machine. If the machine
runs out of cash, prompts regarding the same will be sent by the machine to the users and the
main database from where it will be sent to the atm managers. The performance optimization
module ensures that transactions are processed quickly and efficiently.
Security system: This system will lookout for ATM thefts and send messages immediately to
the bank. The system uses industry-standard encryption algorithms to ensure that data is always
secure.
Use case diagram:
A use case diagram is a diagram which consists of set of use cases and actors enclosed
by system boundary, and association between use cases and actors. Use cases diagram
especially important in organizing, modelling the behaviour of the system. Use case diagram
outlines the various actions that a user can take when interacting with the system, and how the
system responds to those actions.
Use case is a set of scenarios tied together by a common user goal. A scenario is a
sequence of steps describing the interaction between a user and system. Overall, the use case
diagram for an ATM system helps to identify the different ways that users interact with the
system and the system's response to these interactions. By understanding these interactions, the
system can be designed to be efficient, dependable, and easy to use, while also meeting the
needs of its users.
ER Diagram:
An ATM ERD diagram can be used for a variety of financial applications, like tracking
account data, generating reports, recording banking transactions, and more. It is a necessary
tool for organisations to effectively plan and manage their financial activities. By
understanding these relationships, the database can be designed to efficiently store and retrieve
data, while also ensuring the integrity of the data and the security of the system.
Database Creation using DDL and DML:
We use the DDL commands for creating the database or schema, while DML
commands are used to populate and manipulate the database. DDL commands can affect the
whole database or table, whereas DML statements only affect single or multiple rows based on
the condition specified in a query.
For ATM System by using DDL commands we can create the databases like bank,
ATM Machine, customer, card, transaction etc., and by using DML commands we can insert,
update, delete, commit and rollback the values in each table.
There are several levels of normalization, with each level building upon the previous one. The
most used levels are:
First Normal Form (1NF): This level requires that each table has a primary key and that all
columns in the table are atomic (i.e., cannot be further divided).
In an ATM system, the account information can be stored in a single table with columns
such as account number, account balance, customer name, and PIN. The account number can
serve as the primary key for this table.
Second Normal Form (2NF): This level requires that all non-key attributes be dependent on
the entire primary key.
For an ATM system, the account information table may need to be split into two tables
to satisfy 2NF. One table could contain the account number and balance, while the other table
could contain the customer’s name and PIN. This ensures that customer information is not
duplicated and that changes to one record do not affect other records.
Third Normal Form (3NF): This level requires that all non-key attributes be not dependent
on any other non-key attributes.
For an ATM system, the customer information table may need to be split further into two
tables to satisfy 3NF. One table could contain the customer’s name and address, while the other
table could contain the customer's PIN. This ensures that customer information is not
duplicated and that changes to one record do not affect other records.
Normalization helps to minimize data redundancy and ensure that data is consistent and
accurate. By following the normalization process, an ATM system can be designed to
efficiently store and retrieve customer account information, making it a reliable and secure
financial service for customers.
Implementation using Dynamo DB:
DynamoDB is a NoSQL database service offered by AWS that is designed to provide
fast and scalable performance. For an ATM system, DynamoDB can be used to store customer
account information and transaction data.
1.Define the data model: Determine the data you need to store for the ATM system. For
example, you may need to store information about Customer details like account number,
name, account balance.
2.Create a DynamoDB table: Create a table in DynamoDB to store the data. Define the
primary key for the table, which could be a single partition key or a combination of a partition
key and a sort key.
3.Define the table schema: Define the attributes that you want to store in the table. You can
also specify any secondary indexes that you want to create.
For transaction history: you can use the Put Item operation to add a new transaction to the
table, and the Query operation to retrieve transactions for a specific account number within a
given time range.
Ensure data consistency and prevent race conditions, use conditional writes to update
account balances when processing transactions. For example, when processing a withdrawal,
you can use a conditional write to ensure that the account balance is sufficient before
subtracting the amount from the balance. Use DynamoDB streams to capture changes to the
transaction history table and trigger appropriate actions such as sending alerts or updating
account balances in real-time.
To check the status of the table by running the following AWS CLI command:
aws dynamodb describe-table --table-name my_table
To add data:
{
"my_partition_key": {"S": "my_partition_key_value"},
"my_sort_key": {"N": "1"},
"attribute1": {"S": "value1"},
"attribute2": {"N": "2"}
}
Use the ‘AWS DynamoDB put item’ command to add the item to the table. Run the
following command:
AWS DynamoDB put-item --table-name my table --item file://item.json
Verify that the item has been added by using the aws DynamoDB get-item command.
Run the following command:
aws dynamodb get-item --table-name my_table --key '{"my_partition_key":
{"S":"my_partition_key_value"}, "my_sort_key": {"N": "1"}}'
You can add more items by repeating the steps above with different data in the
‘item.json’file.
Scan Operations:
Scanning a table for all items:
This command scans the my_table table and returns all items in the table
aws dynamodb scan --table-name my_table
If the table has many items, you may need to paginate the results to retrieve all items. To do
this, add the --page-size parameter to the aws dynamodb scan command and specify the
maximum number of items to retrieve per page. For example, to retrieve 100 items per page,
run the following command:
aws dynamodb scan --table-name my_table --page-size 100
Conclusion:
The ATM System project in DBMS is a comprehensive system that aims to provide
secure and convenient banking services to customers. The system is designed with a robust
database management system that ensures the security, integrity, and consistency of data.
Overall, the ATM System project in DBMS is an excellent solution for banks that seek to
provide efficient and reliable banking services to their customers.
APPENDIX - I