DBMSPBL

You might also like

Download as docx, pdf, or txt
Download as docx, pdf, or txt
You are on page 1of 8

ABSTRACT

This project explores the development of a bank account management system


aimed at automating and streamlining the management of bank accounts. It
covers customer information, account details, transactions, and security
measures. The project focuses on implementing a database system that
ensures efficient handling of banking operations, minimizes errors, and
enhances customer satisfaction.

INTRODUCTION

Bank account management is a critical aspect of financial institutions. With the


increasing number of customers and transactions, managing bank accounts
manually becomes challenging and error-prone. This project aims to develop a
bank account management system that automates the processes involved,
providing a user-friendly interface for bank staff and customers. The system
will manage customer information, account details, transactions, and security,
ensuring data integrity and efficiency.
PROBLEM STATEMENT

Existing Problem

Manual management of bank accounts leads to several issues, including:


- Human errors in data entry and calculations.
- Time-consuming processes for bank staff and customers.
- Inconsistent data storage and retrieval.
- Difficulty in tracking and auditing transactions.
- Security vulnerabilities in handling sensitive information.

Proposed Solution

The proposed bank account management system will:


- Automate data entry and calculations to minimize human errors.
- Provide a user-friendly interface for quick and efficient processing.
- Ensure consistent and secure data storage and retrieval.
- Enable easy tracking and auditing of transactions.
- Implement robust security measures to protect sensitive information.
ER DIAGRAM OF BANK ACCOUNT MANAGEMENT

This bank ER diagram illustrates key information about bank, including


entities such as branches, customers, accounts, and loans. It allows us to
understand the relationships between entities.
Entities and their Attributes are :

Bank Entity : Attributes of Bank Entity are Bank Name, Code and Address.
Code is Primary Key for Bank Entity.
Customer Entity : Attributes of Customer Entity are Customer_id, Name,
Phone Number and Address.
Customer_id is Primary Key for Customer Entity.
Branch Entity : Attributes of Branch Entity are Branch_id, Name and
Address.
Branch_id is Primary Key for Branch Entity.
Account Entity : Attributes of Account Entity are Account_number,
Account_Type and Balance.
Account_number is Primary Key for Account Entity.
Loan Entity : Attributes of Loan Entity are Loan_id, Loan_Type and
Amount.
Loan_id is Primary Key for Loan Entity.

SOURCE CODE

sql

-- Create table for Bank


CREATE TABLE Bank (
code INT PRIMARY KEY,
name VARCHAR(100),
address VARCHAR(255)
);

-- Create table for Branch


CREATE TABLE Branch (
branch_id INT PRIMARY KEY,
name VARCHAR(100),
address VARCHAR(255),
bank_code INT,
FOREIGN KEY (bank_code) REFERENCES Bank(code)
);

-- Create table for Customer


CREATE TABLE Customer (
cust_id INT PRIMARY KEY,
name VARCHAR(100),
address VARCHAR(255),
phone VARCHAR(15)
);

-- Create table for Account


CREATE TABLE Account (
account_no INT PRIMARY KEY,
acc_type VARCHAR(50),
balance DECIMAL(15, 2)
);

-- Create table for Loan


CREATE TABLE Loan (
loan_id INT PRIMARY KEY,
loan_type VARCHAR(50),
amount DECIMAL(15, 2)
);

-- Create table for the relationship between Branch and Loan (Offer)
CREATE TABLE Offer (
branch_id INT,
loan_id INT,
PRIMARY KEY (branch_id, loan_id),
FOREIGN KEY (branch_id) REFERENCES Branch(branch_id),
FOREIGN KEY (loan_id) REFERENCES Loan(loan_id)
);

-- Create table for the relationship between Branch and Account


(Maintain)
CREATE TABLE Maintain (
branch_id INT,
account_no INT,
PRIMARY KEY (branch_id, account_no),
FOREIGN KEY (branch_id) REFERENCES Branch(branch_id),
FOREIGN KEY (account_no) REFERENCES Account(account_no)
);

-- Create table for the relationship between Customer and Account


(Hold_by)
CREATE TABLE Hold_by (
cust_id INT,
account_no INT,
PRIMARY KEY (cust_id, account_no),
FOREIGN KEY (cust_id) REFERENCES Customer(cust_id),
FOREIGN KEY (account_no) REFERENCES Account(account_no)
);

-- Create table for the relationship between Customer and Loan


(Availed_by)
CREATE TABLE Availed_by (
cust_id INT,
loan_id INT,
PRIMARY KEY (cust_id, loan_id),
FOREIGN KEY (cust_id) REFERENCES Customer(cust_id),
FOREIGN KEY (loan_id) REFERENCES Loan(loan_id)
);

Relational Model
Entity/Relationship Attributes
Bank Code (PK), name, address
Branch branch_id (PK), name, address, bank_code (FK)
Customer customer_id (PK), name, address, phone
Account account_no (PK), account_type, balance
Loan loan_id (PK), loan_type, amount
Offer branch_id (PK, FK), loan_id (PK, FK)
Maintain branch_id (PK, FK), account_no (PK, FK)
Hold by customer_id (PK, FK), account_no (PK, FK)
Availed by customer_id (PK, FK), loan_id (PK, FK)
EXPLANATION OF RELATIONSHIPS

Bank has Branches => 1 : N


One Bank can have many Branches but one Branch can not belong to
many Banks, so the relationship between Bank and Branch is one to many
relationship.

Branch maintain Accounts => 1 : N


One Branch can have many Accounts but one Account can not belong to
many Branches, so the relationship between Branch and Account is one to
many relationship.

Branch offer Loans => 1 : N


One Branch can have many Loans but one Loan can not belong to many
Branches, so the relationship between Branch and Loan is one to many
relationship.

Account held by Customers => M : N


One Customer can have more than one Accounts and also One Account
can be held by one or more Customers, so the relationship between
Account and Customers is many to many relationship.

Loan availed by Customer => M : N


(Assume loan can be jointly held by many Customers).
One Customer can have more than one Loans and also One Loan can be
availed by one or more Customers, so the relationship between Loan and
Customers is many to many relationship.

NORMALIZATION

The tables created above are already in Third Normal Form (3NF) because:
- All attributes are atomic.
- Each table has a primary key.
- There are no partial dependencies (every non-key attribute is fully
functionally dependent on the primary key).
- There are no transitive dependencies (non-key attributes are not
dependent on other non-key attributes).

CONCLUSION

The bank account management system developed in this project


automates and streamlines the processes involved in managing bank
accounts. The system enhances data accuracy, efficiency, and security,
benefiting both the bank staff and customers. The use of a relational
database ensures data integrity and facilitates easy tracking and auditing
of transactions.

FUTURE ENHANCEMENTS

-*Integration with Online Banking*: Allow customers to access and


manage their accounts online.
- *Mobile Application*: Develop a mobile app for convenient access and
management of accounts.
- *Advanced Security Features*: Implement multi-factor authentication
and encryption for enhanced security.
- *Data Analytics*: Incorporate data analytics to provide insights into
customer behavior and bank performance.
- *AI and Machine Learning*: Use AI and ML for fraud detection and
personalized banking services.

You might also like