Presentation on theme: "MIS3150 Data and Information Management Lecture 2 - Data and Process Modeling Arijit Sengupta 1."— Presentation transcript:
1MIS3150 Data and Information Management Lecture 2 - Data and Process Modeling Arijit Sengupta1
2Structure of this semester MIS3150Java DBApplications –JDBC4. Applications1. Design2. QueryingTransactionManagementDataMining3. AdvancedTopics0. IntroDatabaseFundamentalsConceptualModelingQueryLanguagesRelationalModelAdvancedSQLNormalizationNewbieUsersDesignersDevelopersProfessionals
3Today’s Buzzwords Data Modeling Process Modeling Data Flow Diagrams Entity-Relationship ModelsCardinality and Participation ConstraintsWeak EntitiesGeneralization Hierarchies
4So, where are we? Analysis Design Implementation Testing Installation ProposalRequirementsAnalysisNormalizationModelingSchema designDesignTablesIndexesQueriesOptimizationImplementationTestingInstallation
5Objectives of this lecture Describe the process inherent in a systemPresent a system process in a concise diagrammatic formDescribe the system data in terms of conceptual objects and relationships between themTranslate such conceptual descriptions into actual tables
6Benefits of Conceptual Design Projects without a strong conceptual design are more likely to failDesign is one of the most important aspects of project and business process quality management standards:ISO 9000CMMDesigns are typically network structured, not flat like databasesLiterature in Relational Model shows Benefits of Conceptual Design in user performance
7Database Modeling Process Models Data Models Overview of process componentsInputs and outputs of different processesData sources and destinationsMode of data flow between processesData ModelsModel only the data, no processDifferent components of the dataRelationships between primary data components
8Models, method, and media A modeldescribes business or organizationseparates operation from technologyGood modeling requires good methodologiesencompass data, process, decisionsrichly expressive and provide for levels of analysissimple representationModeling mediumboth formal and visual
9Data Flow medium Notation: Structure: Source: box Process (transform): box with rounded cornersFile (store): box open on rightDestination: boxFlow: arrowStructure:“Explosion” of processes (recursion on structure)
11DFD rulesStart with a very basic overview of complete process, showing only the most important processes, sources, destinations, and filesRecursively “explode” each of the processes (note: processes only!):preserve inputs and outputspreserve file accessesnew processes, files and sources/destinations can be created, but cannot be used from previous levels if not directly used in the previous level
12Overview of Data Modeling Conceptual design: (ER Model is used at this stage.)What are the entities and relationships in the enterprise?What information about these entities and relationships should we store in the database?What are the integrity constraints or business rules that hold?A database `schema’ in the ER Model can be represented pictorially (ER diagrams).Can map an ER diagram into a relational schema.2
13ER Model BasicsEntity: Real-world object distinguishable from other objects. An entity is described (in DB) using a set of attributes.Entity Set: A collection of similar entities. E.g., all employees.All entities in an entity set have the same set of attributes. (Until we consider ISA hierarchies, anyway!)Each entity set has a key.Each attribute has a domain.Employeesssnnamedob3
15ER Model Basics (Contd.) Relationship: Association among two or more entities. E.g., Attishoo works in Pharmacy department.Relationship Set: Collection of similar relationships.An n-ary relationship set R relates n entity sets E1 ... En; each relationship in R involves entities e1 E1, ..., en EnSame entity set could participate in different relationship sets, or in different “roles” in same set.Reports_TosalarynameEmployeessubor-dinatesuper-visorssnsalarydnamebudgetdidsincenameWorks_InDepartmentsEmployeesssn4
16Model thisAn auto repair shop provides services to vehicles brought in by customers. A customer may own multiple vehicles that they bring in for service. Each service request is assigned to a technician. A service consists of different jobs that are assigned fees. A service may need parts as well. The customer is given an invoice with details on all the fees and parts costs.What should be modeled?Which items should be modeled as entities?Which items should be modeled as relationships?Which items should be modeled as attributes?
17A thumb rule to modeling Major nouns become entitiesMinor nouns become attributesVerbs connecting major nouns become relationships
22Business Rules A department must have one and only one manager A manager may manage multiple departmentsAn employee works in only one departmentA department (of course) has many employees
23Participation Constraints Does every department have a manager?If so, this is a participation constraint: the participation of Departments in Manages is said to be total (vs. partial).Every did value in Departments table must appear in a row of the Manages table (with a non-null ssn value!)sincesincenamenamednamednamessnsalarydiddidbudgetbudget0,M1,1ManagesEmployeeDepartment1,11,MWorks_Insince8
24Structural Constraints ParticipationDo all entity instances participate in at least one relationship instance?CardinalityHow many relationship instances can an entity instance participate in?(min,max) (min,max)Participation Cardinality0 -- Partial one1 -- Total (Mandatory) M -- more than one
27Alternative Approaches Arity approachCrow’s foot approach (as in book)Minmax approachFor this class, use ONLY the Participation-Cardinality approach – this is what will be used in assignments and exams
28Back to our Auto Service Example What are the participation/cardinality constraints of the relationships?Owns -Assigned to -Consists of -Needs part –?
29Weak EntitiesA weak entity can be identified uniquely only by considering the primary key of another (owner) entity.Owner entity set and weak entity set must participate in a one-to-many relationship set (one owner, many weak entities).Weak entity set must have total participation in this identifying relationship set.namecostssnsalarypnameageEmployeesPolicyDependents0:M1:110
30Point to ponderIs there a weak entity in the auto service example?
31ISA (`is a’) Hierarchies namessnlotAs in C++, or other PLs, attributes are inherited.If we declare A ISA B, every A entity is also considered to be a B entity.Employeeshourly_wageshours_workedcontractidHourly_EmpsContract_EmpsOverlap constraints: Can Joe be an Hourly_Emps as well as a Contract_Emps entity? (Allowed/disallowed)Covering constraints: Does every Employees entity also have to be an Hourly_Emps or a Contract_Emps entity? (Yes/no)Reasons for using ISA:To add descriptive attributes specific to a subclass.To identify entitities that participate in a relationship.12
32Stop and think Is there an IS-A hierarchy in the auto service example? What would it do to the design?
33Conceptual Design Using the ER Model Design choices:Should a concept be modeled as an entity or an attribute?Should a concept be modeled as an entity or a relationship?Identifying relationships: Binary or ternary? Aggregation?Constraints in the ER Model:A lot of data semantics can (and should) be captured.But some constraints cannot be captured in ER diagrams.3
34Entity vs. AttributeShould address be an attribute of Employees or an entity (connected to Employees by a relationship)?Depends upon the use we want to make of address information, and the semantics of the data:If we have several addresses per employee, address must be an entity (since attributes cannot be set-valued).If the structure (city, street, etc.) is important, e.g., we want to retrieve employees in a given city, address must be modeled as an entity (since attribute values are atomic).
35Converting model to design Many-to-many relationshipsEach entity becomes a tableThe relationship becomes a tablePKs of entities becomes FKs in the relationshipStudent( )Course( )Takes( )StudentIDNameClassMajorCoursenoCoursenameCreditstakes0:MStudent0:MCoursesemester
36Model to design (contd.) 1-Many relationshipsEntities become tablesCopy PK of multi-participant to single participantCopy attributes of relationship to single participant (why?)ComputerIDMakeModelYearPartnoTypeMakeincludes0:1Computer1:MPartinstalldate
37Model to design (contd.) 1-1 relationshipsEntities can be merged, orcopy PK of any entity to the otherGeneralizationCopy PK of parent entity to child entity as FK, as well as PKWeak entitiesCopy PK of controlling entity to weak entity as FK as well as part of PK
39Summary of Conceptual Design Conceptual design follows requirements analysis,Yields a high-level description of data to be storedER model popular for conceptual designConstructs are expressive, close to the way people think about their applications.Basic constructs: entities, relationships, and attributes (of entities and relationships).Some additional constructs: weak entities, ISA hierarchies, and aggregation.Note: There are many variations on ER model.11
40Summary of ER (Contd.)Several kinds of integrity constraints can be expressed in the ER model: key constraints, participation constraints, and overlap/covering constraints for ISA hierarchies. Some foreign key constraints are also implicit in the definition of a relationship set.Some constraints (notably, functional dependencies) cannot be expressed in the ER model.Constraints play an important role in determining the best database design for an enterprise.12
41Summary of ER (Contd.)ER design is subjective. There are often many ways to model a given scenario! Analyzing alternatives can be tricky, especially for a large enterprise. Common choices include:Entity vs. attribute, entity vs. relationship, binary or n-ary relationship, whether or not to use ISA hierarchiesEnsuring good database design: resulting relational schema should be analyzed and refined further. FD information and normalization techniques are especially useful.13
42Class ExerciseDesign an ER Model for a hospital system, with the following case description. Add other assumptions as needed.The hospital database stores data about patients, their admission and discharge from hospital’s departments and their treatments. For each patient, we know the name, address, sex, social security number. For each department we know the department’s name, its location, the name of the doctor who heads it, the number of beds available, and the number of beds occupied. A doctor may work in several departments, but may only be the head in one department. Each patient goes through multiple treatments during hospitalization; for each treatment we store its name, duration and the possible reactions to it that the patient may have. A treatment may have one or more follow-up treatments.Items to ponder:What other constraints can we apply on this model?