Code Today’s Requirements Today
Today's Constant is Tomorrow's Variable
If you do not know this, there are two (more...)
Do You Know What Day It Is?
Person 1: The customer wants a green background on this page.
Person 2: Do we know they're going to stick with green? Maybe we need a configuration option for background color.
Nobody wants to disagree and the manager (more...)
Maintaining One Code Base with Possibly Conflicting Custom Features
Today's essay deals with the tricky issue of custom features for individual customers who are running instances of your software.
The question comes by way of a regular reader who prefers to remain anonymous, but asks this:
... I work on a large (to me, anyway) application that serves as a (more...)
Can You Really Create A Business Logic Layer?
The past three posts of this little mini-series have gone from a Working definition of business logic to a Rigorous definition of business logic and on to some theorems about business logic. To wrap things up, I'd like to ask the question, is it possible to isolate business logic into (more...)
Theorems Regarding Business Logic
In yesterday's Rigorous Definition of Business Logic, we saw that business logic can be defined in four orders:
- First Order Business Logic is entities and attributes that users (or other agents) can save, and the security rules that govern read/write access to the entitites and attributes.
- Second Order Business (more...)
Business Logic: From Working Definition to Rigorous Definition
This is part 2 of a 4 part mini-series that began before the holidays with A Working Definition Business Logic. Today we proceed to a rigorous definition, tomorrow we will see some theorems, and the series will wrap up with a post on the "business layer."
In the (more...)
A Working Definition of Business Logic, with Implications for CRUD Code
Update: the Second Post of this series is now available.
Update: the Third Post of this series is now available.
The Wikipedia entry on "Business Logic" has a wonderfully honest opening sentence stating that "Business logic, or domain logic, is a non-technical term... (emphasis mine)". If this is true, that (more...)
User-Submitted Analysis Topic: Email
Reader Dean Thrasher of Infovark has submitted a schema for review and analysis as part of my User-Submitted Analysis Request series. Today we are going to take a first look at what he has. Mr. Thrasher and I both hope that any and all readers will benefit from the exercise (more...)
Critical Analysis of an Algorithm: Sproc, Embedded SQL, and ORM
This is a follow-up to yesterday's historical perspective on ORM. In this essay we examine a particular class of business logic and ask what happens if we go server-side, embedded SQL, or ORM.
This blog has two tables of contents, the Complete Table of Contents and the list of Database (more...)
Historical Perspective of ORM and Alternatives
A couple of years ago I broke my basic rule of sticking to practical how-to and general programming philosophy and wrote Why I Do Not Use ORM. It sure got a lot of hits, and is read every day by people searching such things as "orm bad" or "why use (more...)
The Cost of Round Trips To The Server
A database is not much without the applications that connect to it, and one of the most important factors that affects the application's performance is how it retrieves data from queries. In this essay we are going to see the effect of round trips on application performance.
This blog has (more...)
Submit Analysis Request to the Database Programmer
I generally do not reveal too many details about systems I design for customers or employers. This leaves me sometimes in a bind for example material. I either have to simplify it beyond what I would like, or make something up that I have not actually put into Production.
On (more...)
A Case When Table Design is Easy and Predictable
Good table design is a great foundation for a successful application stack. Table design patterns basically resolve into master tables and transaction tables. When we know a thing or two about the master tables (or entities if you prefer), we can infer a great deal about the transactions.
This blog (more...)
The Really Cool NTILE() Window Function
If you regularly code queries and have never been introduced to the windowing functions, then you are in for a treat. I've been meaning to write about these for over a year, and now it's time to get down to it.
Support in Major Servers
SQL Server calls these (more...)
Loops Without Cursors
Looping Without Cursors
Sometimes you need to process a table row-by-row, and the established approach is to use cursors, which are verbose, slow, and painful to code and use.
The Cursor Example
Here is the basic minimum syntax required to loop through a table and get something done. The (more...)
Prepare Now For Possible Future Head Transplant
This is the Database Programmer blog, for anybody who wants practical advice on database use.
There are links to other essays at the bottom of this post.
This blog has two tables of contents, the Topical Table of Contents and the list of Database Skills.
Planning For The Unlikely
We (more...)
Database Skills
It seems strange to me that I've been working on this blog for 3 years or so (with one very long break) and somehow never got around to writing a simple list of skills that all database experts need. So here it is!
Various Job Tiles for Database People
There (more...)
Recursive Queries with Common Table Expressions
This week The Database Programmer returns after almost 18 months with an entry on using Common Table Expressions (CTEs) to do recursive queries. Relational databases were plagued from their inception with a lack of meaningful treatment for recursive operations, and CTEs have finally plugged that hole.
Common Table Expressions appeared (more...)
RSS