O'Reilly logo

Stay ahead with the world's most comprehensive technology and business learning platform.

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, tutorials, and more.

Start Free Trial

No credit card required

NoSQL and SQL Data Modeling: Bringing Together Data, Semantics, and Software

Book Description

How do we design for data when traditional design techniques cannot extend to new database technologies? In this era of big data and the Internet of Things, it is essential that we have the tools we need to understand the data coming to us faster than ever before, and to design databases and data processing systems that can adapt easily to ever-changing data schemas and ever-changing business requirements. There must be no intellectual disconnect between data and the software that manages it. It must be possible to extract meaning and knowledge from data to drive artificial intelligence applications. Novel NoSQL data organization techniques must be used side-by-side with traditional SQL databases. Are existing data modeling techniques ready for all of this? The Concept and Object Modeling Notation (COMN) is able to cover the full spectrum of analysis and design. A single COMN model can represent the objects and concepts in the problem space, logical data design, and concrete NoSQL and SQL document, key-value, columnar, and relational database implementations. COMN models enable an unprecedented level of traceability of requirements to implementation. COMN models can also represent the static structure of software and the predicates that represent the patterns of meaning in databases. This book will teach you:
  • the simple and familiar graphical notation of COMN with its three basic shapes and four line styles
  • how to think about objects, concepts, types, and classes in the real world, using the ordinary meanings of English words that aren't tangled with confused techno-speak
  • how to express logical data designs that are freer from implementation considerations than is possible in any other notation
  • how to understand key-value, document, columnar, and table-oriented database designs in logical and physical terms
  • how to use COMN to specify physical database implementations in any NoSQL or SQL database with the precision necessary for model-driven development

"I believe that this is a breakthrough modeling technique - and it is technique, not just notation. COMN provides notation to handle all of the constructs that E-R techniques don't do well, and it steps up to the problem of linking physical and conceptual models. . . . I'm convinced that COMN is the future of data modeling."
Dave Wells, BI and Analytics Educator and Consultant, Infocentric

Table of Contents

  1. Acknowledgements
  2. Introduction
    1. Taking Care of Data
    2. Plant Change Control 2.0
    3. Where did the Savings Come From?
    4. Why Model?
    5. Why COMN?
    6. Book Outline
    7. Book Audience
      1. NoSQL Database Developer
      2. SQL Database Developer
      3. Data Modeler
      4. Software Developer
      5. Ontologist
  3. Part I Real Words in the Real World
  4. Chapter 1 It’s All about the Words
    1. References
  5. Chapter 2 Things: Entities, Objects, and Concepts
    1. Chapter Glossary
  6. Chapter 3 Containment and Composition
    1. Containment
    2. Composition
    3. Chapter Glossary
  7. Chapter 4 Types and Classes in the Real World
    1. Collections of Objects
    2. Sets of Concepts
    3. Sets of Objects
    4. Types and Classes
      1. Types Designate Sets
      2. Classes Describe Objects
      3. Three Aspects of Types and Classes
    5. Chapter Glossary
  8. Part II The Tyranny of Confusion
  9. Chapter 5 Entity-Relationship Modeling
    1. Logical E-R Data Models
    2. Multiple Levels of Abstraction
    3. Limitations of E-R Modeling Notation
      1. NoSQL Arrays and Nested Data Structures
      2. Lack of Reusable Composite Types
      3. Lack of Place
      4. Modeling the Real World
      5. Representing Individual Entities
      6. Mapping Between Models
      7. Data in Software
    4. Terminology
      1. Entity
      2. Conceptual
      3. E-R Terms Mapped to COMN Terms
    5. References
  10. Chapter 6 The Unified Modeling Language
    1. Class Diagrams
      1. Stereotyping
    2. Limitations of the UML
      1. Lack of Keys
      2. Middling Level of Abstraction
      3. Lack of Concept
      4. Subclassing versus Subtyping
    3. Terminology
      1. Relationship, Composition and Aggregation
      2. Type and Implementation Class
      3. UML Terms Mapped to COMN Terms
    4. References
  11. Chapter 7 Fact-Based Modeling Notations
    1. Facts and Relationships
    2. Limitations of Fact-Based Modeling
      1. Lack of Instances
      2. Incompleteness
      3. Difficulty
    3. Terminology
      1. Fact-Based Modeling Terms Mapped to COMN Terms
    4. References
  12. Chapter 8 Semantic Notations
    1. Predicates and RDF Statements
      1. Doubles and Quadruples
    2. OWL
    3. Graphical Notations for Semantics
    4. Terminology
  13. Chapter 9 Object-Oriented Programming Languages
    1. Classes, Objects, Types, and Variables
    2. Terminology
  14. Part III Freedom in Meaning
  15. Chapter 10 Objects and Classes
    1. Material Objects
      1. Objects with States
      2. Meaning of States
      3. Objects with More States
      4. Methods
      5. Material Objects in Computers
      6. Summary
    2. Computer Object Defined
      1. Composing Objects
    3. Summary
    4. Chapter Glossary
  16. Chapter 11 Types in Data and Software
    1. Types in Programming and Databases
      1. What Does a Type Tell Us?
    2. Classes in Object-Oriented Software
    3. Separating Type and Class
    4. Simple Types
    5. References
    6. Chapter Glossary
  17. Chapter 12 Composite Types
    1. Composite Types as Logical Record Types
    2. Types Representing Things in the Real World: Identification
      1. Stepwise Refinement and Completeness
    3. Types Representing Other Types
    4. Measures as Composite Types
    5. Nested Types
    6. Modeling Documents
    7. Arrays
    8. Chapter Glossary
    9. References
  18. Chapter 13 Subtypes and Subclasses
    1. Subtypes
      1. Restriction is Subtyping
    2. Subclasses
    3. Subtypes and Extensions: Perfect Together
    4. Inheritance
      1. Using Subtype Variables and Values
      2. Using Extending Types and Classes
    5. Projection: The Inverse of Extension
    6. Chapter Glossary
  19. Chapter 14 Data and Information
    1. Information
      1. Is Information Always True?
    2. From Information to Data
      1. Data en Masse
      2. Variable Names
      3. Summary
    3. Information and Data as Colloquialisms
      1. Information En Masse
      2. It’s Just Data
      3. Putting It All Together
      4. “Unstructured Data” and “Semi-Structured Data”
    4. Data Object
    5. Chapter Glossary
  20. Chapter 15 Relationships and Roles
    1. Arrivals and Departures
    2. Labeling Relationship Lines
      1. Cleaning Up the Model
    3. Roles, Predicates, and Relationships
    4. Chapter Glossary
  21. Chapter 16 The Relational Theory of Data
    1. What is a Relation?
      1. The Order of Rows
      2. The Uniqueness of Rows
      3. The Significance of Columns
      4. Summary
    2. Technical Relational Terminology
      1. Tuple and Relation Schemes
      2. Giving Data to the System
      3. Data Attribute Versus Attribute
      4. Relational Terminology Reprise
    3. Composite Data Attributes
    4. Relational Operations
    5. NoSQL Versus the Relational Model
    6. SQL Versus the Relational Model
    7. Terminology
    8. Chapter Glossary
  22. Chapter 17 NoSQL and SQL Physical Design
    1. What’s Different about NoSQL?
    2. Database Performance
    3. ACID versus BASE and Scalability
      1. ACID
      2. BASE and CAP
    4. NoSQL and SQL Data Organization
      1. Key/Value DBMS
      2. Graph DBMS
      3. Document DBMS
      4. Columnar DBMS
      5. Tabular DBMS
    5. Summary
    6. References
  23. Part IV Case Study
  24. Chapter 18 The Common Coffee Shop
    1. Analysis: Documenting Real-World Entities
    2. Logical Data Modeling: Designing the Data
    3. Physical Data Modeling: Designing the Implementation
  25. APPENDIX COMN Quick Reference
  26. Glossary
  27. Photo and Illustration Credits
  28. Index