building architecture

Why Doesn’t SOA Use Data Models?

picture by Santi Mendiola via Flickr

The short answer is that’s there’s no good reason.

SOA, the Service-Oriented Architecture, is a popular approach for organizing business functionality. From the literature it’s clear that SOA’s emphasis is on programming. That’s ironic given that most SOA services deal with the reading and writing of data. We seldom see SOA developers creating substantive data models. This is a flawed approach that needs correction.

Continue reading Why Doesn’t SOA Use Data Models?


Traversal of Data Models

picture by Onilad via Flickr

Developers routinely use data models for defining database structure. This is beneficial, but it uses only part of data modeling’s power. Data models not only capture data structure, but they also express the potential for computation. Traversals of models can provide blueprints for resolving use cases, phrasing SQL queries, and assessing quality.

Continue reading Traversal of Data Models

cover for Agile Data Warehouse Design

Agile Data Warehouse Design Video Course

My new video course — Agile Data Warehouse Design — is now on the market.

A data warehouse is a database dedicated to decision support and business analysis. The inputs to a data warehouse are data from the day-to-day operational systems. A data warehouse integrates the input data and restructures it so that it is amenable to data mining.

With an agile approach developers build a data warehouse rapidly to get it into the hands of business users so they can give feedback. Where possible, SQL code substitutes for programming and ETL scripts.

The course is organized about a threaded case study for the retail industry.

Mayan ruins

Database Archaeology

picture by Abby Sasser via Flickr

Few database projects start with a clean slate. Many operational applications have legacy databases as a source of data and ideas. Analytical applications have the operational databases that are feeding data. Developers often encounter existing databases that are poorly documented and need to figure them out. We use the term database archaeology to refer to the study of database artifacts.

Continue reading Database Archaeology

A framework using the metaphor of bricks

Be Wary of Generic Database Layers

picture by Alejandro via Flickr

Over the years we’ve seen a number of projects where application architects use a generic layer to hide a database. This is a common approach with object-oriented languages accessing a relational database. Application code accesses the layer which in turn accesses the database. The use of a generic layer can be a valuable technique, but it is overused. Some architects seem to be unaware that there are other possibilities.

Continue reading Be Wary of Generic Database Layers

An arrow as a metaphor for referential integrity

Do Use Referential Integrity

picture by Rudolf Vicek via Flickr

Generally the most pressing problems for software development concern quality, time to market, and cost. If you define referential integrity (RI) in your software you can improve all three of these items. RI improves quality by ensuring that data references truly exist and cannot be dangling. RI also reduces development time and lowers cost as it takes much less effort to define RI than to program the equivalent application code.

Continue reading Do Use Referential Integrity