Assignment title: Information
Copyright 2010‐2017 Boston University. All Rights Reserved. Page 1 of 4
MET CS 669 Database Design and Implementation for Business
Health Term Project: Multi-Specialty Ambulatory Health Center
Objective
Create an initial design for the database schema for BUAHC which is a Multi-Specialty
Ambulatory Health Center. Map your conceptual design into your approved DBMS, and
implement the database schema.
Health Default Project Description
Design a database for BUAHC which is a Multi-Specialty Ambulatory Health Center. Aspects of
operations at BUAHC include the following: the facility has multiple buildings and multiple
physicians, patients may see more than one physician, and the facility accepts multiple
insurance plans. Each patient visit is with one physician. Each physician has a maximum
capacity for the number of visits they can handle in a day. To maintain an orderly schedule for
physicians, patients, and staff, the BUAHC regulates patient visits to 30 minute blocks; for every
hour a physician works, they see at most two patients. Each physician works in one building.
Each physician has a waiting list of patients that have requested to be seen as soon as
possible, before their next appointment. When an existing appointment is canceled, the first
patient on the waiting list is scheduled for that appointment (at which time that patient is
removed from the waiting list).
The database should track insurance plan membership for each patient. The history of physician
visits, including the date and physician visited, should also be maintained.
Required Use Cases
Below are a total of 10 use cases. The use cases come in pairs, and each pair covers one
aspect of the BUAHC. A complete schema design will allow all ten of these use cases to be
addressed in full. For use cases where information is requested, provide a single query to
retrieve the information. For use cases that require data modification in the database, develop a
stored procedure that performs the modifications, and invoke the stored procedure. The stored
procedures you create should be reusable, by making use of one or more parameters. For
example, the stored procedure for use case #1a should use at least two parameters – one to
specify the patient and another to specify the particular physician being visited.
1) Appointments
a. A patient books an appointment with physician “Kathlin Jones” and a different
appointment with physician “Scottie Marr”. Develop a parameterized stored
procedure that supports a patient booking an appointment, then invoke the
stored procedure two times (to satisfy the use case) for a patient of your
choosing.
b. Management requests the names of all physicians who work in the “Agnes” or
“Palladuis” buildings who have attended appointments with a particular patient.
Write a single query that retrieves this information for a patient of your
choosing.
2) Waiting List
a. A patient phones a physician’s administrative assistant asking for an
appointment, and the assistant adds the patient to the waiting list so that the
patient will be the next one to be scheduled for a canceled appointment.
Develop a parameterized stored procedure that accomplishes this, then invoke
the stored procedure for a patient and physician of your choosing.Page 2 of 4
b. A physician has had three appointment cancellations today, so requests the
names of the first three patients on their waiting list. Write a single query that
retrieves this information for a physician of your choosing.
3) Insurance Plans
a. A new patient comes into the BUAHC, and a nurse enters the patient’s
insurance plan enrollment into the system. Develop a parameterized stored
procedure that accomplishes this, then invoke the stored procedure for a
patient and insurance plan of your choosing.
b. Management requests the names of all current patients who are enrolled in
the “Empire Plan” insurance plan. Management defines a “current” patient as
one who has had an appointment in the past two years. Write a single query
that retrieves this information for a patient of your choosing.
4) Physician Schedules
a. A physician decides to work an extra hour each day, specifically by beginning
work an hour earlier, in order to support two additional appointments per day.
Develop a parameterized stored procedure to adjust the physician’s schedule,
then invoke the stored procedure for a physician of your choosing.
b. A receptionist needs to know the names of all physicians that are booked for
the next two days. Being booked means the physicians have no available
appointments for either day. Write a single query that retrieves this information
for the receptionist.
5) Your Own Aspect – Select an aspect of the BUAHC you are interested in not already
covered in numbers 1-4.
a. a. Define a use case which involves adding, updating, or deleting data. This
use case should involve at least two tables, where the transaction manipulates
data in both tables, or the transaction manipulates data in one and reads from
the second. Develop a parameterized stored procedure which addresses the
use case, then invoke it two times to demonstrate that it addresses the use
case and is flexible enough to handle different input.
b. Define a use case that requires aggregation of the data used in part a) to
retrieve a meaningful result. Write a single query that retrieves and aggregates
the information. The query should involve at least two tables.
Structural Business Rules
You will define business rules to describe the structure of the database. An example of this type
of business rule not related to the BUAHC is “A car may be driven by many drivers; each driver
drives one or more cars.” Each business rule should describe the entities involved, the
relationship between the entities, and the optionality and plurality constraints for each entity.
Entity-Relationship Diagrams
You will create a conceptual and logical Entity-Relationship diagram (ERD) for this database.
You are not expected to produce a database schema that accommodates all the functions
required for the operation of a health center; such a database would have hundreds or
thousands of tables. Use the requirements above as a backdrop, then focus your design on the
ten use cases. Do not include secondary subschemas such as payment processing, accounting,
human resources, and electronic health records; they would unnecessarily bloat the size of your
project. To reduce the complexity of the data requirements, you should also presume that
BUAHC has not yet implemented a fully functional Electronic Health Record System. A general
guideline is that to effectively create this design for this course, the logical ERD should havePage 3 of 4
between 8 and 20 entities. This range is not exact and will vary according to your specific
implementation.
Your logical ERD will be mapped to a relational database schema through the use of SQL. The
schema should contain tables, primary and foreign keys, and an index. The primary and foreign
keys will help enforce the relationships indicated in the logical ERD, and help enforce referential
integrity. Your tables should be normalized to BCNF, or accompanied with a justification as to
why the table was not normalized to BCNF. The tables need to be filled with some fictional data.
Make sure you integrate sample data from the use cases above. For example, buildings “Agnes”
or “Palladuis” should exist in your database because of use case 1b. Many tables may just need
a few rows. Barring something extraordinary, each table should need no more than 15 rows to
effectively demonstrate the correctness of the queries and stored procedures. You may need to
be creative when inserting the data so that the queries return reasonable results.
Index
Create and justify an index that is beneficial to at least one query in your implementation.
Include screenshots illustrating the creation of the index, along with an explanation as to why
the index is beneficial (be specific).
Deliverables
1. A Word document containing a complete repository of the term project:
a. The business rules
b. Conceptual ERD or EERD
c. Logical ERD or EERD
d. Screenshots illustrating execution and results of the SQL addressing the 10
use cases
e. Screenshots illustrating the creation of the index, along with explanation as to
why the index is beneficial (be specific)
Note that you only need to include screenshots illustrating the execution results of the 10
use case solutions, and the index creations. You do not need to provide screenshots of
other SQL including your table creation and data inserts, unless you want to clarify or
explain something. All of your SQL will be included in scripts as requested in #2 below,
so your instructor or facilitator can refer to these scripts for additional details.
2. An electronic zipped file of all key deliverables that will enable your instructor and
facilitator re-create your schema and execute your queries against the schema. At a
minimum, the following three scripts should be included. You may include additional
scripts if it makes sense for your implementation.
a. Your “create” script with DDL, which contains the SQL code which creates the
tables, primary and foreign keys, and stored procedures
b. Your “insert” script with data for populating the tables
c. Your “use case” script which contains the queries and stored procedure
invocations for each of the 10 use casesPage 4 of 4
Grading Criteria
We will grade you according to the following percentage breakdown.
Percent of
project
grade
Item graded
20% Exposition – How clearly and persuasively the ideas and designs are presented,
and how well organized your Term Project submission is.
30% The completeness and correctness of your design. The business rules,
conceptual and logical ERDs, and database schema will be examined, including
the entities, relationships, cardinalities, and primary and foreign keys. Your tables
should be normalized to BCNF, or accompanied with a valid reason why the table
was not normalized to BCNF.
5% Submitting all five iterative term project deliverables on time. Each deliverable
should represent a good faith attempt for an initial iteration of each section.
5% Correct, working SQL scripts that are consistent with the other deliverables in the
project. Using a database user with an empty schema, your facilitator should be
able to execute your create script, your insert script, and your query script(s)
without errors.
5% Correct, working primary, foreign, and not null constraints.
5% The index and explanation.
30% SQL for the 10 use cases.