Database design (Entity Relationship Diagram) and implementation of Public Library System

Design a database for public libraries. 

John works for an IT service company as a senior database designer. His company just won a few contracts to serve several public library systems within the state of Maryland. Each library system operates independently though John is in charge to design a single database to store information needed for all libraries. Below are some of the data that need to be kept track of.

  • For each library system, the database needs to store library name (e.g. “City of Baltimore Public Libraries” and “City of Annopolis Public Libraries”), phone, and mailing address.
  • Need to store customer information including name, phone, and address.
  • Each library issues it’s own library card to its customers. A customer can have multiple library cards, one for each library system. For example, a customer can have both Baltimore library card and Annopolis library card. Need to store library card number (different library systems may issue cards with the same number), PIN, issue date, expiration date, and current balance due if any.
  • A library has many branch locations. Customers visit a branch to check in/check out items. Need to store branch name, phone, address.
  • Different libraries share generic catalog information. A catalog item has general information such as title, description, release/publishing date, edition, publisher. Currently there are two types specific catalog items – book and DVD. Need to track ISBN, total pages, and hardcover/softcover for books. Need to track length and genre for DVDs.
  • Each branch stores and maintains physical items. General information about each physical item can be found by checking catalog. There could be multiple copies for the same title so each copy needs to be stored separately. For each item the database will store copy number, purchase date, and vendor name purchased from.
  • A library card can check out multiple items. Need to keep check of check out date, due date, and return date. A item can be checked out and returned the same day, but cannot be checked out again using the same library card on that day.


Please complete the following tasks to design the database to meet requirements specified. State any relevant assumption you make, but do not add any additional data requirement unless really necessary.


  • Identify entities and attributes. List entity name and attribute names for each entity.
  • Identify relationships among entities. List relationship type in terms of cardinality and specify business rules (e.g. 1:M between Library and Branch: a library has many branches; a branch belongs to one and only one library).
  • For each entity, identify primary key and foreign key if applicable. If you use surrogate key for PK, also specify business unique key (natural key). For FK, also specify parent entity and the matching attribute in parent entity. 
  • Create ERD using crow’s foot notation using ER Assistant or Visio. The ERD should incorporate all items mentioned in I, II, and III.

Get Project Solution Now

Comments