Database Design HIMA 4160 Fall 2009 House Keeping Assignment 4 due tonight Assignment 5 due next Monday. Agenda Database Concepts Entity Relational Diagram (ERD) Database == Data + Base Transaction Storage Database: Definition A collection of data that: is organized usually computer-based represents repetitive information implicitly primarily for transaction supports retrieval Is paper medical record a database? Yes No No opinion Is Excel a database system? Yes No No Opinion The shortcomings of a large table Patient_ID Patient_Name Doctor_ID Doctor_Name … 1 Patient B … 1 Doctor A … 2 Patient C … 1 Doctor A … 3 Patient D … 1 Doctor A … 4 Patient E … 2 Doctor B … 5 Patient F … 2 Doctor B … 6 Patient G … 2 Doctor B … 7 Patient H … 2 Doctor B … 8 Patient I … 2 Doctor B … … A more relational database Patient ID Patient Doctor ID Doctor 1 Patient A 1 Doctor A 2 Patient B 2 Doctor B 3 Patient C 3 Doctor C 4 Patient D Patient ID 4 Doctor ID Doctor D 1 2 1 3 2 1 4 1 3 3 1 4 Database Management System (DBMS) A computer program for the purposes of managing databases. Is the basis for many applications (e.g., Electronic Health Records, Personal Health Records). A DBMS can host many databases A database can be implemented in many different DBMS systems. Data Modeling Before you implement a database, you need to design the database Data modeling is a systematic way to help you design the database. Map/simplify the real world to database schema/structure. Data Modeling Why Data Modeling? Power and flexibility of database depend on data model Database is the realization of data model Evaluation of commercial products Communicating with vendors and IT staff Building your own databases Database Analysis Determine User Requirements Develop Data Models “A conceptual data model is one that represents data from the viewpoint of the user, independent of any technology that will be used to implement the model.” A database has two parts Schema Data Stages of Data Modeling Conceptual Model Logical Model E-R diagram Relational Model Physical Model Database management Database Modeling Conceptual Real World E-R Diagram Logical Relational Model Physical DBMS Introduction Entity Relationship Modelling (ERM) A technique used to analyze & model the data in organizations Using diagram to represent entities and relationship of components in a system. Supported by modern DBMS system. De facto tool for database design The Importance of Data Modeling Characteristics captured during data modeling Data are the most complex aspects of the modern organization crucial in design of databases, programs, other items facts and rules essential in assuring data integrity Data are determined by the business rules. Need to avoid scope creeps Data tend to be more stable than the business processes that use the data Definitions Entity an aggregation of a number of data elements each data element is an attribute of the entity Relationship an association between two or more entities that is of particular interest Background Introduced by Peter Chen in ’75 “The Entity-Relationship Model – Toward a Unified View of Data”, ACM Transactions on Database Systems,Vol. 1, No. 1, March 1976, Pages 9 - 36 now widely used in commercial database. Why use ER Diagrams ? provides a global quick reference to an organization’s data structures. can be used individually to design an Information System’s (IS) data structure. offers a basis of consequential database design and development. ERD Development Process Identify the entities Determine the attributes for each entity Select the identifier for each entity Establish the relationships between the entities Draw an entity model Test the relationships and the keys Entities Person, place, object, event, or concept … Entity type in the user environment about which the organization wishes to maintain data collection of entities that share common properties or characteristics CAPITAL LETTERS Entity instance single occurrence of an entity type ENTITY A Simple Example STUDENTs attend COURSEs that consist of many SUBJECTs. A single SUBJECT (i.e. English) can be studied in many different COURSEs. Each STUDENT may only attend one COURSE. Identify the entities Any physical object, event, or abstract concept that we can record facts about. Rule of thumbs: a. Look for nouns b. Not all nouns are entities c. Some of them are attributes Identify Entities A football team has coaches, players, trainers and other assistants. Coach’s roles include head coach, defense and offence coordinators, quarterback coaches, etc. Football players can play different positions like quarterback, running backs, receivers etc. Rule of thumbs: a. Look for nouns b. Not all nouns are entities c. Some of them are attributes Identify Entities (my answers) Coach Player Trainer Assistants Roles Positions Attributes Property or characteristic of an entity type that is of interest to the organization Simple or Composite? initial capital letter followed by lowercase letters underscore instead of space (first_name) composite has component parts will users need to refer to those individual components? Single-valued or Multivalued? Stored or Derived? Name Number PLAYER Determine the Attributes Every Entity has attributes. Attributes are characteristics that allow us to classify/describe an entity e.g., entity STUDENT has the attributes: student number name date of birth course number Identifier [Attribute] “An identifier is an attribute (or combination of attributes) that uniquely identifies individual instances of an entity type.” atomic or composite Criteria will not change its value never null unique SS# Name Number PLAYER Key Attributes Certain attributes identify particular facts within an entity, these are known as KEY attributes. The different types of KEY attribute are: Primary Key Composite Primary Key Foreign Key Key Definitions Primary Key: Composite Primary Key One attribute whose value can uniquely identify a complete record (one row of data) within an entity. A primary key that consists of two or more attribute within an entity. Foreign Key A copy of a primary key that exists in another entity for the purpose of forming a relationship between the entities involved. ER Diagram Notations Every entity diagram consists of the following components: Entity (labelled box) Relationship line COURSE Degrees of a Relationship One-to-one (1:1) 1 1 WOMAN MAN One-to-many (1:n) CUSTOMER 1 M ORDER Many-to-many (n:m) M COURSE M SUBJECT NOTE: Every many to many relationship consists of two one to many relationships working in opposite directions Notation of Cordiality (Degree of relationship) One-to-one (1:1) MAN WOMAN One-to-many (1:n) CUSTOMER ORDER Many-to-many (n:m) Course Subject Notation for Optional Participation 1 PERSON M CAR A person can own no or several cars. A car doesn’t have to be owned by a person, but if it is, it is owned 1by only one person. optional relationship A Sample Four Entities ER Diagram SUBJECTS STUDENTS COURSES A Student Record Entity Diagram PROFESSORS Exercise One patient can see several doctors. One doctors can see many patients. A patient may not see a doctor at all Exercise A nurse is assigned to manage an exam room. Exercise A patient must have a insurance and a insurance company can have many patients as their customer. Exercise (complex one) Draw an E-R diagram to represent the data schema of a physician office. The entities included are physicians, patients, insurance companies, lab, medications etc. ER Diagram Summary Identify the entities Determine the attributes for each entity Select the primary key for each entity Establish the relationships between the entities Draw an entity model Logic Design and Physical Design Conceptual Design BED PATIENTS Conceptual Design DOCTORS PATIENTS DOCTORS PATIENTS Conceptual Design DOCTORS PATIENTS Conceptual Design DOCTORS PATIENTS 1. 2. 3. 4. 5. 6. 7. 8. 1. 2. 3. 4. 5. 6. 7. Doctor_ID Doctor_lname Doctor_fname Doctor_mi Doctor_specialty Doctor_address Doctor_phone Doctor_email Patient_ID Patient_lname Patient_fname Patient_mi Patient_address Patient_phone Patient_email Logical Model Entities tables Relationship keys (primary and foreign) Many to many two one to many relationship with an associate entity in the middle Normalization Conceptual Model DOCTORS PATIENTS 1. 2. 3. 4. 5. 6. 7. 8. 1. 2. 3. 4. 5. 6. 7. Doctor_ID Doctor_lname Doctor_fname Doctor_mi Doctor_specialty Doctor_address Doctor_phone Doctor_email Patient_ID Patient_lname Patient_fname Patient_mi Patient_address Patient_phone Patient_email Logical Model DOCTORS PATIENTS 1. 2. 3. 4. 5. 6. 7. 8. 1. 2. 3. 4. 5. 6. 7. 8. Doctor_ID Doctor_lname Doctor_fname Doctor_mi Doctor_specialty Doctor_address Doctor_phone Doctor_email Patient_ID Patient_lname Patient_fname Patient_mi Patient_address Patient_phone Patient_email Doctor_ID Conceptual Model DOCTORS PATIENTS 1. 2. 3. 4. 5. 6. 7. 8. 1. 2. 3. 4. 5. 6. 7. Doctor_ID Doctor_lname Doctor_fname Doctor_mi Doctor_specialty Doctor_address Doctor_phone Doctor_email Patient_ID Patient_lname Patient_fname Patient_mi Patient_address Patient_phone Patient_email Associate Entity/Bridge Table DOCTORS D_P PATIENTS 1. 2. 3. 4. 5. 6. 7. 8. 1. Patient_ID 2. Doctor_ID 1. 2. 3. 4. 5. 6. 7. Doctor_ID Doctor_lname Doctor_fname Doctor_mi Doctor_specialty Doctor_address Doctor_phone Doctor_email Patient_ID Patient_lname Patient_fname Patient_mi Patient_address Patient_phone Patient_email Physical Model Relation Table Tuple Row Attribute Column Doctor_I D Doctor_ln ame Doctor_fa nme Doctor_m i Doctor_sp ecialty Doctor_a ddress Doctor_p hone 1 … … … … … … … 2 … … … … … … … 3 … Patient_ID … 001 … …Doctor_ID … 1 … … 001 2 002 1 Patient_I D Patient_ln 003 ame Patient_fn ame Patient_M I Patient_a 2 ddress Patient_p hone Patient_e mail 001 … … … … … … 002 … … … … … … 003 … … … … … … Doctor_e mail Summary on Data Modeling Data model is the most critical aspect of system design and function Data models should reflect real world objects and their relationships to ensure durability A correct data model outlasts applications, including many not anticipated at system start-up