Survey
* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
Chapter 7 Database Design UML Specification for Data Modeling The Relational Data Model and Object Model Persistence Frameworks Database Design Object Oriented Analysis and Design 1 UML Specification for Data Modeling Object Oriented Analysis and Design 2 7.1 UML Specification for Data Modeling UML Notation for Data Modeling Modeling Associations in the Data Model Modeling Aggregation in the Data Model Modeling Inheritance in the Data Model Object Oriented Analysis and Design 3 UML Notation for Data Modeling Object Oriented Analysis and Design 4 Modeling Associations in the Data Model Associations between two persistent objects are realized as foreign keys to the associated objects. A foreign key is a column in one table which contains the primary key value of associated object Course Offering table Number CourseOffering 678 - number : String Course_ID 456789 Foreign Key 0..* 0..* 1 Object Oriented Analysis and Design Name Primary Key Description Number Math 101 Algebra Course table Course - name - description - number 5 456789 Modeling Aggregation in the Data Model Aggregation is also modeled using foreign key relationships Using composition implements a cascading delete constraint Student table Student. Student_ID - studentID : int 123456 11 Primary Key 0..* Schedule table Schedule - semester : Semester Student_ID 123456 Object Oriented Analysis and Design 6 Foreign Key Semester Spring 2001 Modeling Inheritance in the Data Model A data model does not support modeling inheritance in a direct way Two options Use separate tables (normalized data) Duplicate all inherited associations and attributes (de-normalized data) Object Oriented Analysis and Design 7 Modeling Inheritance in the Data Model - Example Object Oriented Analysis and Design 8 Modeling Inheritance in the Data Model - Example Object Oriented Analysis and Design 9 Modeling Inheritance in the Data Model - Example Object Oriented Analysis and Design 10 Modeling Inheritance in the Data Model - Example Object Oriented Analysis and Design 11 Modeling Inheritance in the Data Model - Example Object Oriented Analysis and Design 12 The Relational Data Model and Object Model Object Oriented Analysis and Design 13 7.2 The Relational Data Model and Object Model The Relational Data Model The Object Model Object Oriented Analysis and Design 14 The Relational Data Model The relational model is composed of entities and relations. An entity may be a physical table or a logical projection of several tables also known as a view. Object Oriented Analysis and Design 15 The Object Model An object model contains classes. Classes define the structure and behavior of a set of objects, sometimes called objects instances. The structure is represented as attributes (data values) and associations (relationships between classes). Object Oriented Analysis and Design 16 The Persistence Frameworks Object Oriented Analysis and Design 17 7.3 Persistence Frameworks The Purpose of a Persistence Framework Hibernate Object Oriented Analysis and Design 18 The Purpose of a Persistence Framework Object Oriented Analysis and Design 19 Hibernate Object / Relational mapping (ORM) and persistence / query framework i.e. It does even more stuff for you! Some features of Hibernate HibernateDaoSupport – superclass, easy HibernateTemplate access Database independence - sits between the database and your java code, easy database switch without changing any code Object / Relational Mapping (ORM) - Allows a developer to treat a database like a collection of Java objects Object oriented query language (HQL) - *Portable* query language, supports polymorphic queries etc. You can also still issue native SQL, and also queries by “Criteria” (specified using “parse tree” of Java objects) Hibernate Mapping - Uses HBM XML files to map value objects (POJOs) to database tables Transparent persistence - Allows easy saves/delete/retrieve for simple value objects Very high performance “in general” due to intelligent (2-level) caching, although in a few cases hand-written SQL might beat it Object Oriented Analysis and Design 20 Hibernate Hibernate basically sits between the DB and your code Can map persistent objects to tables Object Oriented Analysis and Design 21 Database Design Object Oriented Analysis and Design 22 7.4 Database Design Purpose Overview Steps Map persistent design classes to tables Distribute class behavior to the database Object Oriented Analysis and Design 23 Purpose To ensure that persistent data is stored consistently and efficiently. To define behavior that must be implemented in the database. Object Oriented Analysis and Design 24 Database Design Overview Supplementary Specifications Use-Case Realization Database Design Data Model Design Guidelines Design Classes Object Oriented Analysis and Design 25 Steps Map Persistent Design Classes to the Data Model Optimize the Data Model for Performance Optimize Data Access Define Storage Characteristics Define Reference Tables Define Data and Referential Integrity Enforcement Rules Distribute Class Behavior to the Database Review the Results Object Oriented Analysis and Design 26 Mapping Persistent Classes to Tables In a relational database Every row is regarded as an object A column in a table is equivalent to a persistent attribute of a class Attributes from object type Student - name : String - address : String - studentID : Long Name Thomas Stuart 123456 Object Instance Object Oriented Analysis and Design Student_ID 27 Mapping Persistent Classes to Tables - Example Object Oriented Analysis and Design 28 Map Class Behavior to Stored Procedures Determine if any operations can be implemented as a stored procedure Candidate operations Deal with persistent data Any operations where a query is involved in a computation Need to access the database to validate data Object Oriented Analysis and Design 29 What Are Stored Procedures? A stored procedure is executable code which runs under the RDBMS Two types of stored procedures Procedures: Executed explicitly by an application Triggers: Invoked implicitly when some database event occurs Object Oriented Analysis and Design 30 Example: Map Class Behavior to Stored Procedures Class Candidate Operations • getTuition Student. • addSchedule + getTuition() + addSchedule() + getSchedule() + deleteSchedule() + hasPrerequisites() # passed() <<class>> + getNextAvailID() + getStudentID() + getName() + getAddress() • getSchedule • deleteSchedule • getStudentID • getName • getAddress Object Oriented Analysis and Design 31 Example: Map Class Behavior to Stored Procedures Object Oriented Analysis and Design 32