This document discusses data modeling and fact-oriented modeling. It describes capturing business language, supporting agile modeling, validating models with users, and integrating documentation. The document presents the FCO-IM modeling method and shows an example of modeling a customer and location as facts that can then be transformed, grouped, lexicalized, and reduced to generate various artifacts like SQL DDL, documentation, and diagrams. It discusses using data modeling to capture requirements, promote consistency, avoid missed needs, and prepare for database design. Finally, it provides some customer case studies and metrics on fact types.
2. • Capture business language
• Support agile modeling
• Validation by users
• Integrate documentation
• Include language domains
• Model once, bootstrap everything
What if?
4. Methods
• Development originated in the 70’s
“one family, three relatives”
Method By Tool Emphasis
NIAM Nijssen DocTool relational
ORM Halpin NORMA constraints
FCO-IM Bakema & co. CaseTalk communication
16. Agile: Add a Fact
Customer Location City
City Name
Customer
Customer NoName
Name of Customer: “Customer 4081 is Sandia Labs.”
Customer Location: “Customer 4081 is located in Albuquerque.”
Name of Customer
17. Transformation(s)
Customer Location City
City Name
Customer
Customer NoName
Name of Customer: “Customer 4081 is Sandia Labs.”
Customer Location: “Customer 4081 is located in Albuquerque.”
Name of Customer
18. Group (before)
Name of Customer: “Customer 4081 is Sandia Labs.”
Customer Location: “Customer 4081 is located in Albuquerque.”
Customer Location City
City Name
Customer
Customer NoName
Name of Customer
consolidate identical populations
37. Why a Data Model?
• Capturing business requirements
• Promotes reuse, consistency, quality
• Bridge between business and technology personnel
• Avoid late discovery of missed requirements
• Critical in managing integration between systems
• Pre-cursor to DBMS design / generate DDL
Source: DAMA-I Survey
44. Work sheet
Working Hours:
“In week 200138 employee 618 worked on project 6323.16
for 2 hours on task 15.”
Project Employee:
’employee 618 worked on project 6323.16’