Draft
Draft
I. Problem Statement & System Requirements
Animal shelters and pet adoption organizations often face complex operational challenges when
managing data related to pets, adopters, donors, volunteers, staff, and veterinary care. Many
such organizations still rely on spreadsheets, paper records, or disjointed systems that lead to
inefficiencies, data redundancy, and human error. Without a centralized and automated
database system, it becomes difficult to track pet histories, manage adoptions, coordinate
volunteers, handle donations, and ensure timely veterinary checkups. These issues can hinder
the organization’s mission to provide effective care and find loving homes for animals in need.
This project proposes the design and implementation of a Pet Adoption Management System
(PAMS) – a comprehensive, relational database solution that supports the core functions of a
pet adoption center. The system will store and organize data about pets, their health and
adoption status, adopters, donations, staff involvement, vet checkups, and volunteer activities.
● Pet intake and adoption tracking, ensuring each pet has a complete history from
arrival to adoption.
● Donor management, to track contributions and the staff assigned to handle them.
● Veterinary checkups, making sure each pet receives proper medical attention and
follow-ups.
● Reporting and analytics, such as adoption rates, donation trends, and volunteer
engagement.
By solving these challenges, the database improves operational efficiency, enhances animal
welfare, increases transparency, and supports strategic planning and community engagement.
This project not only addresses administrative bottlenecks but also promotes responsible pet
adoption practices through reliable information management.
System Requirements
🔹 Functional Requirements
1. Pet Management
○ Add, update, and retrieve pet profiles including species, breed, health status, and
adoption status.
○ Record donations with donor details, purpose, type, and assigned staff.
○ Maintain records of all donors including contact info and donor types (individual,
corporate, etc.).
○ Record vet checkup details including date, diagnosis, treatment, and assigned
vet.
○ Track staff roles and assign them to handle donations, adoptions, or volunteers.
9. Reporting
● Relational Schema: Conversion of your E-R design to relational schema with proper
notation
Analysis:
All entities in the design (e.g., Donor, Staff, Volunteer, Pet, Vet) satisfy 1NF:
● Each field contains a single value per record (e.g., phone, email, name).
● It is in 1NF.
● All non-key attributes are fully functionally dependent on the entire primary key (no
partial dependencies).
Analysis:
Tables with composite primary keys (e.g., Pet_Assignment, Volunteer_Assignment)
were closely examined:
Analysis:
● Each table was reviewed to ensure that all non-key attributes depend only on the
primary key and not on another non-key attribute.
● Potential issues (like storing adoption_status in both Pet and Adoption) are
justified based on current system usage and history tracking.
Analysis:
● No dependency violates the condition that only candidate keys determine other
attributes.
- Structure: All information is stored in a single table, with repeating groups and non-atomic
fields (e.g., multiple pets and donations in one cell, delimited by `;` or `,`).
- Problems:
---
1NF (First Normal Form)
- Rule: Eliminate repeating groups and ensure all fields contain atomic (single) values.
-Action:
- Repeating groups (like multiple pets or donations) are removed by creating new rows or by
encoding as atomic fields (usually resulting in a wide table if not further normalized).
- Result:
- No repeating groups, but still contains partial dependencies if there are composite keys.
---
- Rule: Remove partial dependencies—every non-key attribute must depend on the whole of
every candidate key (for tables with composite keys).
- Action:
- Split the table into multiple tables to separate data that does not depend on the full primary
key.
- Typically, this means creating separate tables for entities like Pets and Donations, and linking
them via foreign keys to an Adoption or Adopter table.
- Result:
- Each non-key attribute is fully functionally dependent on the primary key of its table.
---
3NF (Third Normal Form)
- Rule: Remove transitive dependencies—non-key attributes must not depend on other non-key
attributes.
- Action:
- Further decompose tables so that every non-key attribute depends only on the primary key.
- For example, separate Adopter and Staff information into their own tables, and have the
Adoptions table reference them by foreign key.
- Result:
- Tables: Adopters, Staff, Adoptions, Pets, Donations, and linking tables like AdoptionPets.
- Data redundancy is minimized, update anomalies are eliminated, and data integrity is
maximized
- Staff(`StaffID`, `StaffName`)
● SQL DDL Scripts: Complete set of SQL scripts for creating your database
schema (tables, constraints, indexes)
● Sample Data: SQL INSERT statements to populate your database with
meaningful sample data (minimum 10 records per table)
● Database Schema Diagram: Visual representation of your final database schema
showing all tables and relationships
V. Implementation and Queries
● SQL Query Set: At least 15 SQL queries demonstrating various SQL features:
LEFT JOIN: List all pets and any corresponding vet checkup
RIGHT JOIN: Volunteers and pets they are assigned to care for
FULL OUTER JOIN
Subquery: Get volunteers who have been assigned to more than 1 pet
Nested Query: Find donors who have not made any donations
Views
The Pet Adoption Management System (PAMS) is a relational database solution developed to
support the daily operations of animal shelters and pet adoption centers. It offers a centralized
way to manage essential processes such as pet intake, adoption tracking, volunteer
coordination, donations, veterinary checkups, and staff responsibilities. By moving away from
paper-based or scattered digital records, the system helps shelters run more smoothly, keep
better records, and ultimately improve the quality of care for animals.
The system is built on a carefully designed Entity-Relationship (ER) model, which has been
normalized to Third Normal Form (3NF). This ensures that the database is efficient, consistent,
and free from unnecessary duplication. The structure allows shelters to scale their operations
and maintain clean, accurate data as they grow.
Key Features:
● Pet Management: Tracks details about each animal, including breed, age, weight,
health status, and intake date. Each pet’s journey from arrival to adoption is
documented.
● Adoption Tracking: Records each adoption, linking the pet, the adopter, and the staff
member who assisted, making it easy to follow up and generate reports.
● Donor and Donation Logging: Keeps a detailed history of donations and their
purposes, along with donor contact information and donation types.
● Veterinary Records: Logs health checkups, diagnoses, treatments, and the vet
responsible for each case, supporting responsible animal care.
● Data Integrity and Reporting: The database structure uses primary and foreign keys,
constraints, and sample data to support consistent entries and useful reporting through
SQL queries, views, procedures, and triggers.
By centralizing all essential information, PAMS enhances transparency, reduces errors, and
improves operational decision-making. It empowers shelters to focus more on their
mission—caring for animals and connecting them with loving homes—while leaving the data
management to a reliable, well-structured system.
● Design Decisions: Explanation of major design decisions and alternatives considered
○ Entities like Staff, Vet, and Volunteer were kept distinct despite potential
overlaps, for clarity in roles and responsibilities.
○ Initially, storing checkups directly in the Pet table was considered. However, to
maintain normalization and allow multiple checkups per pet, a separate
Vet_Checkup_Details table was created.
Complex Relationships:
● Writing portable SQL triggers and procedures that work across systems
(MySQL/PostgreSQL) involved syntax-specific debugging and simplification.
● Populating meaningful, interconnected sample data (10+ per table) without foreign key
violations required careful sequencing of inserts.
● Ensuring no record deletions would violate foreign keys (e.g., deletion of staff managing
active volunteers) was addressed through cascading rules and soft deletes.
● Build a web or mobile frontend using the database backend for real-time shelter
operations.
Advanced Reporting:
● Implement OLAP cubes or views for real-time dashboards, including adoption trends,
donation analytics, and volunteer performance.
Notification System:
● Add automated alerts/reminders for follow-up checkups, contract renewals, or volunteer
hour thresholds.
● Develop a role-based access system to restrict different user roles (admin, volunteer,
vet) to relevant operations only.
● Enhance data integrity with non-destructive deletions and historical record tracking for
compliance.
This project provided a deep understanding of database design, normalization, SQL scripting,
and data modeling for real-world applications. From crafting the ERD to generating SQL scripts,
creating sample data, and writing advanced queries, each step reinforced best practices in
relational database development. Through challenges and iterations, the system evolved into a
scalable, maintainable solution that meets the complex needs of animal shelters and pet
adoption centers.
The project demonstrates how a well-architected database can transform a manual, error-prone
process into an efficient, data-driven operation — ultimately benefiting both the animals and the
humans who care for them.