Using UML, Patterns, and Java Object-Oriented Software Engineering Chapter 10, Mapping Models to Relational Schema.

Slides:



Advertisements
Similar presentations
Using UML, Patterns, and Java Object-Oriented Software Engineering Chapter 1: Introduction.
Advertisements

Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 1 Figure 10-1, Model transformations, refactorings,
Using UML, Patterns, and Java Object-Oriented Software Engineering Chapter 10, Mapping Models to Code.
Modeling the Data: Conceptual and Logical Data Modeling
Conquering Complex and Changing Systems Object-Oriented Software Engineering TJSS: Defining persistent data stores, example Päivi Ovaska.
Database Design (Data Modeling) DCO11310 Database Systems and Design By Rose Chang.
3-1 Chapter 3 Data and Knowledge Management
Designing a Database Unleashing the Power of Relational Database Design.
© 2008 Pearson Prentice Hall, Experiencing MIS, David Kroenke
Chapter 11 Data Management Layer Design
Conquering Complex and Changing Systems Object-Oriented Software Engineering System Design II TJSS Lecture 10 Päivi Ovaska.
Using UML, Patterns, and Java Object-Oriented Software Engineering Chapter 10, Mapping Models to Code.
Implementation classes and developing relational databases IS Development Lecture 9.
Distributed Databases
Database Management Systems. What is a DBMS? Database management systems: Provide efficient (speed and space) and secure access to large amount of data.
Using UML, Patterns, and Java Object-Oriented Software Engineering Chapter 3, Project Organization and Communication.
Using UML, Patterns, and Java Object-Oriented Software Engineering Chapter 10, Mapping Models to Code.
Slide 1 Systems Analysis and Design With UML 2.0 An Object-Oriented Approach, Second Edition Chapter 11: Data Management Layer Design Alan Dennis, Barbara.
Using MIS 4e Chapter 5 Database Processing
ระบบฐานข้อมูลขั้นสูง (Advanced Database Systems) Lecturer AJ. Suwan Janin Phone:
UML Unified Modeling Language. What is UML? Unified Modeling Language (UML) is a standardized, general-purpose modeling language in the field of software.
Database Design Concepts
1 DATABASE TECHNOLOGIES BUS Abdou Illia, Fall 2007 (Week 3, Tuesday 9/4/2007)
Chapter 10, Mapping Models to Code
Data Access Patterns Some of the problems with data access from OO programs: 1.Data source and OO program use different data modelling concepts 2.Decoupling.
Using UML, Patterns, and Java Object-Oriented Software Engineering Chapter 16, Meeting Management with Scrum.
Chapter 1 Overview of Database Concepts Oracle 10g: SQL
Using UML, Patterns, and Java Object-Oriented Software Engineering Chapter 9, Object Design: Specifying Interfaces.
1 Chapter 1 Overview of Database Concepts. 2 Chapter Objectives Identify the purpose of a database management system (DBMS) Distinguish a field from a.
1 ER Modeling BUAD/American University Entity Relationship (ER) Modeling.
Conquering Complex and Changing Systems Object-Oriented Software Engineering Chapter 6, System Design Lecture 2.
TM 7-1 Copyright © 1999 Addison Wesley Longman, Inc. Physical Database Design.
Lecture 2 An Overview of Relational Database IST 318 – DB Admin.
ECE 8443 – Pattern Recognition ECE 3822 – Software Tools For Engineers Topics: Definitions and Terminology Abstraction Schema Tables Types of Databases.
Using UML, Patterns, and Java Object-Oriented Software Engineering Chapter 4, Requirements Elicitation.
I Information Systems Technology Ross Malaga 4 "Part I Understanding Information Systems Technology" Copyright © 2005 Prentice Hall, Inc. 4-1 DATABASE.
Implementation Goals: “map” design to clean, efficient code Document any design changes found to be useful Produce code that is correct, modular, understandable,
Slide 1 Systems Analysis and Design With UML 2.0 An Object-Oriented Approach, Second Edition Chapter 11: Data Management Layer Design Alan Dennis, Barbara.
Bernd Bruegge & Allen Dutoit Object-Oriented Software Engineering: Conquering Complex and Changing Systems 1 Overview System Design II (slides Part B)
Using UML, Patterns, and Java Object-Oriented Software Engineering Chapter 9, Object Design: Specifying Interfaces.
MCS 270 Spring 2014 Object-Oriented Software Development.
Conquering Complex and Changing Systems Object-Oriented Software Engineering Chapter 6, System Design Lecture 2.
Fanny Widadie, S.P, M.Agr 1 Database Management Systems.
Copyright © 2003 Addison-Wesley Sree Nilakanta. Copyright © 2003 Addison-Wesley Developing Relational Models What is the relational model and what is.
Bernd Bruegge & Allen Dutoit Object-Oriented Software Engineering: Conquering Complex and Changing Systems 1 Software Engineering October 10, 2001 System.
PowerPoint Presentation for Dennis, Wixom, & Tegarden Systems Analysis and Design with UML, 3rd Edition Copyright © 2009 John Wiley & Sons, Inc. All rights.
Concepts of Database Management, Fifth Edition Chapter 6: Database Design 2: Design Methodology.
Using UML, Patterns, and Java Object-Oriented Software Engineering Chapter 9, Object Design: Specifying Interfaces.
In this session, you will learn to: Map an ER diagram to a table Objectives.
Programming Logic and Design Fourth Edition, Comprehensive Chapter 16 Using Relational Databases.
Mapping Models to Code. We will skip most of this chapter –It deals with how to go from UML class diagrams to actual code –You should already have a pretty.
Karolina Muszyńska Based on: S. Wrycza, B. Marcinkowski, K. Wyrzykowski „Język UML 2.0 w modelowaniu SI”
BSA206 Database Management Systems Lecture 2: Introduction to Oracle / Overview of Database Concepts.
Falak Nawaz Mapping Models to Code. Object Model activities 1. Reuse: Identification of existing solutions  Use of inheritance  Off-the-shelf components.
Bernd Bruegge & Allen Dutoit Object-Oriented Software Engineering: Conquering Complex and Changing Systems 1 Overview  System Design II 3. Concurrency.
1 ER Modeling BUAD/American University Mapping ER modeling to Relationships.
March 1, 2004CS WPI1 CS 509 Design of Software Systems Lecture #6 Monday, March 1, 2004.
Understand Relational Database Management Systems Software Development Fundamentals LESSON 6.1.
CEN Tenth Lecture Introduction to Software Engineering (CEN-4010) Mapping Models to Code Instructor: Masoud Sadjadi
Using UML, Patterns, and Java Object-Oriented Software Engineering Chapter 10, Mapping Models to Code.
Mapping Objects ↔Relational DB. The Problem with Databases Databases store data in rows in tables, which are not like objects. We can simulate object.
FEN Mapping from Class Diagram (Domain Model) to Relational Model Table Design.
Microsoft Access CS 110 Fall Entity Relationship Model Entities Entities Principal data object about which information is to be collectedPrincipal.
Faeez, Franz & Syamim.   Database – collection of persistent data  Database Management System (DBMS) – software system that supports creation, population,
Two New UML Diagram Types Component Diagram Deployment Diagram.
State of the Art: Model-based Software Engineering
Chapter 10, Mapping Models to Relational Schema
CSCE 606: From Models to Implementation
Chapter 10, Mapping Models to Relational Schema
Advance Software Engineering (CEN-5011)
Presentation transcript:

Using UML, Patterns, and Java Object-Oriented Software Engineering Chapter 10, Mapping Models to Relational Schema

Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 2 Lecture Plan Last lecture: Operations on the object model: Optimizations to address performance requirements Implementation of class model components: Realization of associations Realization of operation contracts This lecture: Realizing entity objects based on selected storage strategy Mapping the object model to a database Mapping class diagrams to tables.

Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 3 Mapping an Object Model to a Database UML object models can be mapped to relational databases: Some degradation occurs because all UML constructs must be mapped to a single relational database construct - the table Mapping of classes, attributes and associations Each class is mapped to a table Each class attribute is mapped onto a column in the table An instance of a class represents a row in the table A many-to-many association is mapped into its own table A one-to-many association is implemented as buried foreign key Methods are not mapped.

Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 4 Mapping a Class to a Table User +firstName:String +login:String + String id:long firstName:text[25]login:text[8] text[32] User table

Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 5 Primary and Foreign Keys Any set of attributes that could be used to uniquely identify any data record in a relational table is called a candidate key The actual candidate key that is used in the application to identify the records is called the primary key The primary key of a table is a set of attributes whose values uniquely identify the data records in the table A foreign key is an attribute (or a set of attributes) that references the primary key of another table.

Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 6 Example for Primary and Foreign Keys User table Candidate key login firstName “alice” “john” Candidate key Primary key League table login “am384” “bd” name “tictactoeNovice” “tictactoeExpert” “js289”“chessNovice” Foreign key referencing User table

Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 7 Buried Association League LeagueOwner * 1 id:long LeagueOwner table...owner:long League table...id:long Associations with multiplicity “one” can be implemented using a foreign key For one-to-many associations we add the foreign key to the table representing the class on the “many” end For all other associations we can select either class at the end of the association. owner

Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 8 Another Example for Buried Association Transaction transactionID Portfolio portfolioID... * portfolioID... Portfolio TableTransaction Table transactionID portfolioID Foreign Key

Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 9 Mapping Many-To-Many Associations City cityName Airport airportCode airportName * * Serves cityName Houston Albany Munich Hamburg City Table airportCode IAH HOU ALB MUC HAM Airport Table airportName Intercontinental Hobby Albany County Munich Airport Hamburg Airport cityName Houston Albany Munich Hamburg Serves Table airportCode IAH HOU ALB MUC HAM In this case we need a separate table for the association Separate table for the association “Serves” Primary Key

Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 10 Another Many-to-Many Association Mapping PlayerTournament ** id Tournament table 23 name... novice 24expert tournamentplayer TournamentPlayerAssociation table Player table id 56 name... alice 79john We need the Tournament/Player association as a separate table

Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 11 Realizing Inheritance Relational databases do not support inheritance Two possibilities to map an inheritance association to a database schema With a separate table (”vertical mapping”) The attributes of the superclass and the subclasses are mapped to different tables By duplicating columns (”horizontal mapping”) There is no table for the superclass Each subclass is mapped to a table containing the attributes of the subclass and the attributes of the superclass

Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 12 Realizing inheritance with a separate table (Vertical mapping) User table id 56 name... zoe 79john role LeagueOwner Player Player User LeagueOwner maxNumLeagues credits name Player table id 79 credits id LeagueOwner table 56 maxNumLeagues... 12

Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 13 Realizing inheritance by duplicating columns (Horizontal Mapping) Player User LeagueOwner maxNumLeagues credits name id LeagueOwner table 56 maxNumLeagues name zoe Player table id 79 credits name john

Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 14 Comparison: Separate Tables vs Duplicated Columns The trade-off is between modifiability and response time How likely is a change of the superclass? What are the performance requirements for queries? Separate table mapping (Vertical mapping) We can add attributes to the superclass easily by adding a column to the superclass table  Searching for the attributes of an object requires a join operation. Duplicated columns (Horizontal Mapping)  Modifying the database schema is more complex and error-prone Individual objects are not fragmented across a number of tables, resulting in faster queries

Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 15 Summary Four mapping concepts: Model transformation improves the compliance of the object design model with a design goal Forward engineering improves the consistency of the code with respect to the object design model Refactoring improves code readability/modifiability Reverse engineering discovers the design from the code. Model transformations and forward engineering techniques: Optimizing the class model Mapping associations to collections Mapping contracts to exceptions Mapping class model to storage schemas.

Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 16 Backup and Example Slides