CS 5744 - Project 1 - Pet Adoption and Medical Record System

CS 5744 - Project 1 - Pet Adoption and Medical Record System

    ›High-Level Design

    Introduction

    • Introduction

    Requirements Summary

    • Use Cases
    • Stakeholder Analysis
    • Requirements

    High-Level Design

    • System Architecture
    • File Storage Design
    • Database Design
    • REST API Design
    • Web Application Design
    • Requirement Traceability Matrix

    Design Rationale

    • System Architecture Rationale
    • Data Tier Rationale
    • REST API Design Rationale
    • Web Application Design Rationale
    • Final Thoughts

    Database Design

    Databases are core components of many software systems, particularly web-based systems. There are several popular types of databases: relational, key-value, and document based. Each has their own set of advantages and challenges. The file storage component exists to store the semi-structured and unstructured data, but there is additional structured data that the system will need to capture. A relational database is ideal for structured data. Using a relational model we can easily identify all of the actors in the system, the data the system needs to capture, and the relationships between the actors and data.

    Relational models provide several features that we will make heavy use of. Most entities defined in the data model will have a numeric identifier as the primary key. This identifier will be automatically generated by the database and will not expose additional details about the entity it represents. Some entities will relate to other entities, this will be accomplished using the identifiers and a foriegn key constraint. There will be special rules for some of the data stored in the system to ensure data integrity, additional constraints will be defined to enforce those rules. Finally, efficient retrieval of the data is necessary. For this we will define the necessary indices on the data.

    Database Table Diagram.
    Prototype of database table design.

    For database hosting, we will be utilizing Amazon Aurora due to its excellent pricing and performance relative to other cloud providers. Additionally it can auto scale up to 64 terabytes per instance

    ← File Storage DesignREST API Design →
    Built with Docusaurus
    Copyright © 2019