"Charting the Course... Agile Database Design Techniques Course Summary

Similar documents
Agile Database Techniques Effective Strategies for the Agile Software Developer. Scott W. Ambler

Agile Model-Driven Development with UML 2.0 SCOTT W. AM BLER. Foreword by Randy Miller UNIFIED 1420 MODELING LANGUAGE. gile 1.

"Charting the Course... MOC A Developing Microsoft SQL Server 2012 Databases. Course Summary

foreword to the first edition preface xxi acknowledgments xxiii about this book xxv about the cover illustration

"Charting the Course... SharePoint 2007 Hands-On Labs Course Summary

Business Intelligence Roadmap HDT923 Three Days

"Charting the Course... MOC C: Developing SQL Databases. Course Summary

object/relational persistence What is persistence? 5

VERIFICATION AND VALIDATION FOR QUALITY OF UML 2.0 MODELS

Fundamentals of. Database Systems. Shamkant B. Navathe. College of Computing Georgia Institute of Technology PEARSON.

Introduction to PTC Windchill ProjectLink 11.0

"Charting the Course to Your Success!" MOC D Querying Microsoft SQL Server Course Summary

Pro JPA 2. Mastering the Java Persistence API. Apress* Mike Keith and Merrick Schnicariol

"Charting the Course... MOC C: Querying Data with Transact-SQL. Course Summary

"Charting the Course... Java Programming Language. Course Summary

"Charting the Course... VMware vsphere 6.7 Boot Camp. Course Summary

"Charting the Course... MOC B Updating Your SQL Server Skills to Microsoft SQL Server 2014 Course Summary

Mathematics Shape and Space: Polygon Angles

COPYRIGHTED MATERIAL. Contents. Part One: Team Architect 1. Chapter 1: Introducing the Visual Designers 3

"Charting the Course... MOC /2: Planning, Administering & Advanced Technologies of SharePoint Course Summary

Installing and Administering a Satellite Environment

"Charting the Course... MOC A Introduction to Web Development with Microsoft Visual Studio Course Summary

"Charting the Course... Comprehensive Angular 5. Course Summary

This course is designed for web developers that want to learn HTML5, CSS3, JavaScript and jquery.

Introduction to Windchill PDMLink 10.2 for the Implementation Team

Business Component Development with EJB Technology, Java EE 5

Systems:;-'./'--'.; r. Ramez Elmasri Department of Computer Science and Engineering The University of Texas at Arlington

Chapter 1: Introducing SQL Server

Certificate Program. Introduction to Microsoft Excel 2013

System Administration of PTC Windchill 11.0

"Charting the Course... MOC A Developing Data Access Solutions with Microsoft Visual Studio Course Summary

Contents. Using. Dynamic SQL 44. Bag of Tricks 56. Complex SQL Guidelines 90. Working with Nulls 115. Aggregate Functions 135

POJOs in Action DEVELOPING ENTERPRISE APPLICATIONS WITH LIGHTWEIGHT FRAMEWORKS CHRIS RICHARDSON MANNING. Greenwich (74 w. long.)

Software Architecture With ColdFusion: Design Patterns and Beyond Topics Outline Prepared by Simon Horwith for CFUnderground 6

Enabling Flexibility in Process-Aware

Contents. Figures. Tables. Examples. Foreword. Preface. 1 Basics of Java Programming 1. xix. xxi. xxiii. xxvii. xxix

CHAPTER 1: INTRODUCING C# 3

Course Outline. ProTech Professional Technical Services, Inc. Veritas Backup Exec 20.1: Administration. Course Summary.

Introduction to PTC Windchill PDMLink 11.0 for the Implementation Team

DATABASE DESIGN AND DEVELOPMENT

Introduction to Creo Elements/Direct 19.0 Modeling

Enterprise JavaBeans 3.1

FUNDAMENTALS OF. Database S wctpmc. Shamkant B. Navathe College of Computing Georgia Institute of Technology. Addison-Wesley

"Charting the Course... Oracle 12c New Features for Administrators. Course Summary

Contents. Structure. The Web Site. References. Acknowledgments. Part I The Risk-Based Testing Approach 1. 1 Introduction to Risk-Based Testing 3

Update to Creo Parametric 4.0 from Creo Parametric 2.0

"Charting the Course... Comprehensive Angular. Course Summary

"Charting the Course... MOC Programming in C# with Microsoft Visual Studio Course Summary

Fast Track to EJB 3.0 and the JPA Using JBoss

2779 : Implementing a Microsoft SQL Server 2005 Database

Introduction to PTC Windchill MPMLink 11.0

Oracle TopLink. Developer s Guide, Volume 4 10g ( ) B September 2006 Understanding Non-Relational Mappings

Introduction to PTC Windchill PDMLink 11.0 for Heavy Users

"Charting the Course... Oracle18c SQL (5 Day) Course Summary

"Charting the Course to Your Success!" MOC Planning, Deploying and Managing Microsoft System Center Service Manager 2010.

Mechanism Design using Creo Parametric 3.0

"Charting the Course... Oracle 18c DBA I (5 Day) Course Summary

Course Prerequisites: This course requires that you meet the following prerequisites:

"Charting the Course... Oracle 18c PL/SQL (5 Day) Course Summary

CROSS-REFERENCE TABLE ASME A Including A17.1a-1997 Through A17.1d 2000 vs. ASME A

"Charting the Course... Comprehensive Angular 6 Course Summary

Microsoft. Microsoft Visual C# Step by Step. John Sharp

SOFTWARE MODELING AND DESIGN. UML, Use Cases, Patterns, and. Software Architectures. Ki Cambridge UNIVERSITY PRESS. Hassan Gomaa

Kalaivani Ananthan Version 2.0 October 2008 Funded by the Library of Congress

"Charting the Course... MOC A: Developing with the SharePoint Framework. Course Summary

ACRONYMS AND GLOSSARY

"Charting the Course... Mastering EJB 3.0 Applications. Course Summary

Oracle BI 11g R1: Build Repositories

CHAPTER 7. Observations, Conclusions and Future Directions Observations 7.2. Limitations of the Model 7.3. Conclusions 7.4.

20762B: DEVELOPING SQL DATABASES

Data Modeling: Beginning and Advanced HDT825 Five Days

"Charting the Course to Your Success!" MOC B Programming in C# Course Summary

Understanding Impact of J2EE Applications On Relational Databases. Dennis Leung, VP Development Oracle9iAS TopLink Oracle Corporation

Microsoft. [MS20762]: Developing SQL Databases

CITY UNIVERSITY OF NEW YORK. Creating a New Project in IRBNet. i. After logging in, click Create New Project on left side of the page.

Enabling Flexibility in Process-Aware Information Systems

Beginning ASP.NET. 4.5 in C# Matthew MacDonald

Developing SQL Databases

SQL Server Development 20762: Developing SQL Databases in Microsoft SQL Server Upcoming Dates. Course Description.

Implementing a Web Service p. 110 Implementing a Web Service Client p. 114 Summary p. 117 Introduction to Entity Beans p. 119 Persistence Concepts p.

"Charting the Course to Your Success!" MOC A Developing High-performance Applications using Microsoft Windows HPC Server 2008

OPC Unified Architecture

Sven Apel Don Batory Christian Kastner. Gunter Saake. Feature-Oriented Software Product Lines. Concepts and Implementation.

LEVERAGING VISUAL STUDIO TEAM SYSTEM 2008 Course LTS08: Five days; Instructor-Led Course Syllabus

Oracle Data Integrator: Administration and Development Volume I Student Guide

"Charting the Course... VMware vsphere 6.5 Optimize, Upgrade, Troubleshoot. Course Summary

Ch. 21: Object Oriented Databases

"Charting the Course... MOC C: Administering an SQL Database Infrastructure. Course Summary

"Charting the Course... Intermediate PHP & MySQL Course Summary

20464 Developing Microsoft SQL Server Databases

Summary of Contents LIST OF FIGURES LIST OF TABLES

Contents in Detail. Foreword by Xavier Noria

IN PRACTICE. Daniele Bochicchio Stefano Mostarda Marco De Sanctis. Includes 106 practical techniques MANNING

Developing Microsoft SQL Server 2012 Databases 36 Contact Hours

Microsoft SQL Server" 2008 ADMINISTRATION. for ORACLE9 DBAs

CSE 3241: Database Systems I Databases Introduction (Ch. 1-2) Jeremy Morris

Developing Microsoft SQL Server Databases

VISUAL STUDIO TEAM SYSTEM 2008 END-TO-END USING MSF/CMMI Course E2EC08: Three days; Instructor-Led Course Syllabus

COPYRIGHTED MATERIAL. Contents. Part I: Introduction 1. Chapter 1: What Is XML? 3. Chapter 2: Well-Formed XML 23. Acknowledgments

Delphi in Depth: FireDAC, Copyright 2017 Cary Jensen ISBN: ISBN-10: , ISBN-13: ,

Transcription:

Course Summary Description This course provides students with the skills necessary to design databases using Agile design techniques. It is based on the Scott Ambler book Agile Database Techniques: Effective Strategies for the Agile Software Developer by John Wiley, ISBN: 0471202837. Topics The Agile Data Method From Use Cases to Databases Real-World UML Data Modeling 101 Data Normalization Class Normalization Relational Database Technology, Like It, Or Not The Object-Relational Impedance Mismatch Legacy Databases Everything You Need to Know But Are Afraid to Deal With Vive L Evolution Agile Model-Driven Development (AMDD) Test-Driven Development (TDD) Database Refactoring Database Encapsulation Strategies Mapping Objects to Relational Databases Audience Performance Tuning Tools for Evolutionary Database Development Implementing Concurrency Control Finding Objects in Relational Databases Implementing Referential Integrity and Shared Business Implementing Concurrency Control Finding Objects in Relational Databases Implementing Referential Integrity and Shared Business Logic Implementing Security Access Control Implementing Reports Realistic XML How You Can Become Agile Bringing Agility Into Your Organization This course is targeted at database designers, data modelers, database analysts, and anyone who needs to design databases. Prerequisites Students should have experience designing databases and data warehouses. Knowledge of Agile design techniques is helpful. Duration Five days

"Charting the Course... I. The Agile Data Method A. Why Working Together Is Currently Hard B. Detecting That You Have a Problem C. The Agile Movement D. The Philosophies of Agile Data E. Agile Data In a Nutshell F. Agile Software Developers G. Does Agile Data Solve Our Problems? II. From Use Cases to Databases Real-World UML A. An Overview of Object-Oriented Concepts B. An Introduction to the Unified Modeling Language (UML) 1. Core UML Diagrams i. Use Case Diagrams ii. Sequence Diagrams iii. Class Diagrams 2. Supplementary UML Diagrams i. Activity Diagrams ii. Collaboration Diagrams iii. Component Diagrams iv. Deployment Diagrams v. State Chart Diagrams C. A UML Profile For Data Modeling 1. Indicating the Type of Model or Storage Mechanism 2. Modeling Tables, Entities, and Views 3. Modeling Relationships 4. Modeling Data Attributes and Columns 5. Modeling Keys 6. Modeling Constraints and Triggers 7. Modeling Stored Procedures 8. Modeling Sections Within a Database 9. Modeling Everything Else III. Data Modeling 101 B. What Is Data Modeling? 1. How Are Data Models Used In Practice? Course Outline IV. 2. Notation 101: How to Read Data Models C. How to Model Data 1. Identify Data Entities 2. Identify Attributes 3. Apply Data-Naming Conventions 4. Identifying Relationships 5. Apply Data Model Patterns 6. Assign Keys D. How to Become Better at Modeling Data Data Normalization A. Why Data Normalization? C. The Rules of Data Normalization 1. First Normal Form (1NF) 2. Second Normal Form (2NF) 3. Third Normal Form (3NF) 4. Beyond 3NF V. Class Normalization A. How Does Class Normalization Relate to Other Object Design Practices? C. The Rules of Object Normalization 1. First Object Normal Form (1ONF) 2. Second Object Normal Form (2ONF) 3. Third Object Normal Form (3ONF) 4. Beyond 3ONF VI. VII. Relational Database Technology, Like It, Or Not A. Relational Database Technology B. Coupling: Your Greatest Enemy C. Additional Challenges With Relational Databases D. Encapsulation: Your Greatest Ally E. Beyond Relational Databases: You Actually Have a Choice The Object-Relational Impedance Mismatch

VIII. IX. B. The Technological Impedance Mismatch C. The Cultural Impedance Mismatch Legacy Databases Everything You Need to Know But Are Afraid to Deal With B. Sources of Legacy Data C. Understanding Common Problems with Legacy Data 1. Data Quality Challenges 2. Database Design Problems 3. Data Architecture Problems 4. Process Mistakes D. Strategies for Working with Legacy Data 1. Try to Avoid Working with Legacy Data 2. Develop a Data Error-Handling Strategy 3. Work Iteratively and Incrementally 4. Prefer Read-Only Legacy Data Access 5. Encapsulate Legacy Data Access 6. Introduce Data Adapters for Simple Legacy Access 7. Introduce a Staging Database for Complex Legacy Access 8. Adopt Existing Tools E. Data Integration Technologies Vive L Evolution A. The Need for Methodological Flexibility B. Beware of Data-Oriented BDUF C. Evolutionary Development on a Project D. The Natural Order of Things and Evolutionary Development X. Agile Model-Driven Development (AMDD) B. What Is Agile Modeling? C. When Is a Model Agile? D. What Is Agile Model-Driven Development (AMDD)? E. Agile Documentation XI. XII. XIII. Test-Driven Development (TDD) A. How Does TDD Work? B. The Steps of TDD C. TDD and Traditional Testing D. TDD and Documentation E. Test-Driven Database Development F. TDD and Agile Model-Driven Development (AMDD) Database Refactoring A. Refactoring B. Database Refactoring 1. Preserving Semantics 2. What Database Refactorings Aren t 3. Categories of Database Refactorings C. Why Database Refactoring Is Hard D. How to Refactor Your Database 1. Step 1: Start in Your Development Sandbox 2. Verify That a Database Refactoring Is Required 3. Choose the Most Appropriate Database Refactoring 4. Determine Data Cleansing Needs 5. Write Your Unit Tests 6. Deprecate the Original Schema 7. Implement the Change 8. Update Your Database Management Script(s) 9. Run Your Regression Tests 10. Document the Refactoring 11. Version Control Your Work 12. Step 2: Implement the Code in Your Integration Sandbox(es) 13. Step 3: Install the Code in Production E. Common Database Refactoring Smells F. Adopting Database Refactoring within Your Organization G. Database Refactoring Best Practices H. Database Refactoring in the Real World Database Encapsulation Strategies A. Database Encapsulation Layers

XIV. C. Encapsulation-Layer Architectures D. Encapsulation-Layer Implementation Strategies 1. Brute Force (the Encapsulation Strategy That Isn t One) 2. Data Access Objects 3. Persistence Frameworks 4. Services 5. When to Use Each Strategy 6. Transitioning Between Strategies E. Marshaling and Data Validation F. Error Handling Mapping Objects to Relational Databases B. Basic Mapping Concepts 1. Shadow Information 2. Mapping Meta Data C. Mapping Inheritance Structures 1. Map Entire Class Hierarchy to a Table 2. Map Each Concrete Class to Its Own Table 3. Map Each Class to Its Own Table 4. Map Classes to a Generic Structure 5. Comparing the Mapping Strategies 6. Mapping Multiple Inheritance D. Mapping Object Relationships 1. Types of Relationships 2. How Relationships Are Implemented Between Objects 3. How Relationships Are Implemented in Relational Databases 4. Relationship Mapping i. Mapping One-to-One Relationships ii. Mapping One-to-Many iii. Relationships Mapping Many-to-Many Relationships E. Mapping Ordered Collections F. Mapping Recursive Relationships G. Mapping Class Scope Properties XV. XVI. XVII. H. Why Data Schemas Should Not Drive Object Schemas I. Implementation Impact on Your Objects J. Implementation for the Model Driven Architecture (MDA) K. Patternizing the Mappings Performance Tuning A. An Overview of Performance Tuning C. Step One: Identify a Performance Problem D. Step Two: Profile the Problem E. Step Three: Tune the Problem Away 1. System Tuning 2. Database Access Tuning i. Choose the Right Access Strategy ii. Tune Your SQL iii. Tune Your Mappings 3. Database Tuning i. Denormalize Your Data Schema ii. Rework Database Logs iii. Update Your Database Configuration iv. Reorganize Data Storage v. Rework Your Database Architecture/Design 4. Application Tuning i. Share Common Logic ii. Implement Lazy Reads iii. iv. Introduce Caches Combine Granular Functionality Tools for Evolutionary Database Development A. Tools B. Sandboxes C. Scripts Implementing Concurrency Control A. The Role of the DBA

XVIII. XIX. B. Collisions 1. Types of Locking iii. Overly Optimistic Locking 2. Resolving Collisions 3. The Basics of Transactions i. ACID Properties ii. Two-Phase Commits iii. Nested Transactions 4. Implementing Transactions i. Database Transactions ii. Object Transactions iii. Distributed Object Transactions iv. Including Nontransactional Sources in a Transaction Finding Objects in Relational Databases A. The Role of the DBA B. Find Strategies 1. Brut Force (Embedded SQL) 2. Query Objects 3. Meta Data-Driven 4. When to Apply Each Strategy C. Implementation Techniques 1. Use the Native Error-Handling Strategy 2. Expect Logic Errors 3. Always Return a Collection 4. Use Proxies and Lazy Initialization for Search Lists 5. Use Lazy Reads for High-Overhead Attributes 6. Program for People D. Representing Find Results Implementing Referential Integrity and Shared Business Logic A. The Role of the DBA B. How Object Technology Complicates Referential Integrity 1. Multiple Entity/Relationship Representation 2. Object Relationship Management i. Database Cascades ii. Object Relationship Cascades XX. XXI. XXII. i. Pessimistic Locking ii. Optimistic Locking iii. Implications of Cascades iv. Cascading Strategies C. Lazy Reads D. Caches E. Aggregation, Composition, and Association F. Architectural Layering G. Removal from Memory versus Persistent Deletion H. Where Should You Implement Referential Integrity? 1. Referential Integrity Implementation Options 2. Business Logic Implementation Options 3. General Implementation Strategies Implementing Security Access Control B. Authentication C. Authorization 1. Issues 2. Database Implementation Strategies 3. Security Design Patterns 4. Object-Oriented Implementation Strategies 5. Implications D. Effective Security Strategies Implementing Reports E. The Role of the Agile DBA F. Database Deployment Architecture G. Reporting Within Your Application H. Reporting Outside Your Application I. Database Design Strategies J. Implementation Strategies K. Challenges That Make Reporting Hard Realistic XML B. An XML Primer 1. Strengths of XML 2. Weaknesses of XML

C. Practical Applications of XML D. Vocabularies E. How to Model XML F. XML Mapping and Data Binding G. How to Persist XML in Relational Databases H. How to Persist XML in XML Database I. XML Development Strategies XXIII. XXIV. How You Can Become Agile A. You Do Not Have to Be Superhuman B. Agility Is Really Just a Method C. Become a Generalizing Specialist Bringing Agility Into Your Organization A. Change the Way You Look at Software Development B. Understand the Challenges You Face C. Actually Try It D. Block Nonagile Coworkers E. Be Realistic F. Parting Thoughts