Library Manager a simple command line database manager for handling library resources.
The purpose of this project is to design and implement a relational database for managing a digital library system. The database will allow users to:
- Search for books
- View author information
- Borrow books
- Track loan history
This system is intended to streamline library operations and provide users with an intuitive way to interact with library resources.
The database will support the following core functionalities:
- Store information about books and their authors
- Manage user accounts and contact information
- Track book loans, including loan and return dates
- Enable search functionality based on book titles and author names
This project is designed for a single-user implementation but can be scaled to support multiple users and administrative roles in future iterations.
- Authors: Each author has a unique ID and a name.
- Books: Each book has a unique ID, title, and is associated with one author.
- Users: Each user has a unique ID, name, and email.
- Loans: Each loan record links a user to a book, with loan and return dates.
- One author can write many books (1:N)
- One user can borrow many books (1:N)
- Each loan connects one user to one book (N:1)
Note: Replace with actual diagram image filename once created.
- Normalization: The database is normalized to 3NF to reduce redundancy and improve data integrity.
- Foreign Keys: Used to enforce relationships between tables (e.g.,
author_idinbooks,user_idandbook_idinloans). - Indexes: Indexes are created on
titleinbooksandnameinauthorsto optimize search queries. - Constraints: Unique constraints on
emailinusersto prevent duplicate accounts.
- Search Efficiency: Indexes on frequently queried fields improve performance.
- Data Integrity: Foreign key constraints ensure valid relationships between entities.
- Scalability: The schema is designed to be extensible, allowing future additions like genres, multiple authors per book, or user roles.
- Each book is currently associated with only one author.
- No support for overdue tracking or fines.
- No administrative interface or authentication layer.
- No support for multiple copies of the same book.
- Add support for multiple authors per book via a junction table.
- Implement overdue tracking and notifications.
- Add genres, publishers, and book reviews.
- Create a web interface for users and librarians.
YouTube Video URL : https://youtu.be/Z2M59WAXEoQ?si=IlSBgDfHQrqB-MFA
- Project title and author introduction
- ER diagram walkthrough
- Schema and query demonstration
- Summary of design decisions
name : samira mashti zadeh edx username : samira-dev-star github username : samira-dev-star email : sammashtizadeh@gmail.com