DBMS_Library_Mgmt
DBMS_Library_Mgmt
Submitted by,
Disha Satpute (202402040019 )
Harshali Sabale (202402040020 )
Pratiksha Kulkarni (202402040022 )
BACHELOR OF TECHNOLOGY
in
Computer Engineering
School of Computer
Engineering MIT Academy of
Engineering
(An Autonomous Institute Affiliated to Savitribai Phule Pune University)
Alandi (D), Pune – 412105
(2024–2025)
Abstract
The Library Management System is a desktop-based Java application built using Java Swing
for the frontend and Oracle 10g as the backend database. The system automates and
simplifies the management of library operations such as maintaining book records and
handling book issuance. It features a role-based login system that differentiates between
The Admin role allows authorized users to perform CRUD (Create, Read, Update, Delete)
operations on the book database. The admin interface includes a vertical form layout for
book details, interactive buttons for managing data, and a scrollable table for viewing the list
of books. The admin can also load existing book data into the form by selecting rows from
The Student role provides a clean, read-only interface where users can view the complete
list of available books in a scrollable table. Students can issue a book by entering the Book
ID, provided the book is available. The interface also includes a logout button for safe session
exit.
The system ensures a structured, modular approach to library management with a user-
friendly interface and strong backend logic. It serves as a practical solution for small to
1 Introduction
2 Requirement Collection
4 ER/EER Diagram
6 Implementation
Libraries are essential hubs of knowledge, information, and learning for students
and institutions. Traditionally, library management involved manual record-keeping,
which was time-consuming and prone to errors. To overcome these limitations, our
Library Management System project leverages Java Swing and Oracle 10g to deliver
an efficient and user-friendly digital solution.
This project aims to streamline the essential library operations: book inventory
management and book issuance. By implementing user authentication and role-based
dashboards, we ensure that admins and students can interact with the system
according to their permissions. Admins can manage the book collection, while
students can view and issue books.
The system provides a graphical user interface that is intuitive and maximized
for different screen sizes. Admins can add, update, delete, and browse books using an
interactive panel with real-time data visualization through tables. Students have
access to a clear list of available books and can issue them by entering a valid Book ID.
The application adopts best practices in software design by using the DAO
pattern for database operations and Swing layouts for responsive design. Oracle 10g is
used to store structured data and ensure robust data integrity through constraints and
relationships.
• Objective
The primary objective of the Library Management System is to design and implement
a robust software application that automates core library functions while ensuring a
smooth and secure user experience. The specific objectives are:
• To provide a role-based login system that separates Admin and Student access.
• To allow Admins to manage the book collection through a user-friendly GUI.
• To display all book data dynamically using JTable for real-time visualization.
• To enable students to view and issue available books using a simple input-based
method.
• To ensure efficient backend operations using JDBC and Oracle 10g database.
• To apply the DAO pattern for separation of business logic and database
interaction.
• To create a visually clean and responsive UI using Java Swing layouts.
• To ensure data accuracy and integrity using SQL constraints like primary and
foreign keys.
• To support future scalability by maintaining modularity in the codebase.
2. Requirement Collection
Software Requirements:
• Java Development Kit (JDK 8 or above)
• Oracle 10g Database
• Java Swing (part of JDK)
• JDBC (Java Database Connectivity)
• VS Code or Eclipse IDE
• Oracle SQL Developer (for database)
Hardware Requirements:
• Processor: Intel i3 or higher
• RAM: Minimum 4 GB
• Storage: 100 MB minimum for database and application
• OS: Windows 10 or higher
3. Problem Definition and Scope
The primary problem addressed by this project is the inefficiency and inaccuracy of
manual library systems in educational institutions. These systems often lead to issues
like missing records, duplicate entries, difficulty in tracking issued books, and long
queues for book issuance and returns. The scope of the Library Management System
includes digitalization of core library functions such as user authentication, book
management, and book issuance.
Scope Includes:
• User login functionality with role-based access.
• Book catalog management by Admin.
• Issuance of books by Students.
• Data storage and retrieval from Oracle 10g database.
• Real-time data interaction via graphical interface.
The system is designed for scalability, allowing future upgrades like book return
tracking, fine management, and analytics/report generation.
4. ER/EER Diagram
Relationships:
• A user (Student) can issue multiple books.
• A book can be issued to multiple users over time.
• Foreign key constraints ensure referential integrity.
1 1
M M
FK
Based on the ER diagram, the schema was reduced to the following relational tables
in Oracle 10g:
Table: Lib_users
• user_id VARCHAR2(20) PRIMARY KEY
• password VARCHAR2(20) NOT NULL
• role VARCHAR2(20) CHECK (role IN ('admin', 'student'))
Table: Lib_books
• book_id VARCHAR2(10) PRIMARY KEY
• title VARCHAR2(100)
• author VARCHAR2(50)
• publisher VARCHAR2(50)
• quantity NUMBER CHECK (quantity >= 0)
Table: issued_books
• issue_id NUMBER PRIMARY KEY
• student_id VARCHAR2(20) REFERENCES Lib_users(user_id)
• book_id VARCHAR2(10) REFERENCES Lib_books(book_id)
• issue_date DATE DEFAULT SYSDATE
• return_status VARCHAR2(10) DEFAULT 'pending'
Sequence: issue_seq
• Used to auto-generate unique values for issue_id.
Database Design:
• Tables: Lib_users, Lib_books, issued_books
• Primary Keys: user_id (Lib_users), book_id (Lib_books), issue_id
(issued_books)
• Foreign Keys: student_id references Lib_users, book_id references
Lib_books
• Sequence: issue_seq for generating unique issue IDs
UI Design:
• LoginForm: authenticates user and redirects to appropriate dashboard.
• AdminDashboard: vertical form layout with Add, Update, Delete buttons;
JTable for viewing book records; logout button centered at bottom.
• StudentDashboard: displays all books in a table; input field to issue a book
using Book ID; logout button at the bottom.
6. Implementation
The Library Management System was implemented using the Java Swing framework
and Oracle 10g. Development was carried out in Visual Studio Code and tested using
Oracle SQL Developer.
Modules Implemented:
1. Login Module: Validates user credentials from the Lib_users table using the
UserDAO class. It redirects users to the correct dashboard based on their role.
2. Admin Module: Allows admin users to perform book CRUD operations.
Admins can add new books, update details of existing books, delete books, and
view all books in a scrollable table.
3. Student Module: Displays all available books and allows students to issue a
book by entering its Book ID. Upon issuing, the quantity of the book is
decremented in the database.
4. Database Layer: DAO classes are used to interact with the Oracle database
using JDBC. Each class encapsulates operations like select, insert, update, and
delete.
5. GUI Layer: Designed using Swing components like JFrame, JPanel, JTable,
JTextField, JButton, and layout managers like GridBagLayout and
FlowLayout.
The Library Management System project has delivered a fully functional, user-
friendly, and efficient platform for managing library resources. It streamlines the
entire lifecycle of books within the system — from addition and updates by the admin
to issuance by students.
Outcomes:
• Provides an intuitive user interface for managing and accessing book data.
• Ensures data accuracy and integrity through the use of constraints and
relational schema.
• Reduces the administrative workload of library staff.
• Enhances the student experience with fast and error-free book issuance.
Applications: