5,347 reputation
925
bio website
location United States
age
visits member for 3 years, 7 months
seen 2 days ago

Database design and software development consultant. My clients included everything from Fortune 100 companies to non-profits and mom-and-pop companies. I've worked with SQL databases since 1985. I'm a database generalist; I'm comfortable with every modern SQL dbms. My home server runs a half-dozen different database management systems. I test most of my answers under more than one of them.

I've developed relational models for implementation in non-SQL environments, like Lotus Notes and plain C++ code.

I also develop software in C, VBA, Python, Ruby, and php. I build web applications using various frameworks and languages, including Ruby on Rails, Laravel, and Phalcon.


Sep
24
awarded  Autobiographer
Sep
9
awarded  Enlightened
Sep
9
awarded  Nice Answer
Sep
7
comment What is Atomic Relation in First Normal Form
No, atomic and repeating groups describe two different characteristics of relations with respect to first normal form. Considering the statement "If there are no repeating groups of attributes, then [the table] is in 1NF", Date says it (among others) is "at best, unclear and imprecise and, at worst, just plain wrong". See Date on Database, p 107f.
Jul
28
comment Large table with historical data allocates too much of SQL Server 2008 Std. memory - performance loss for other databases
What's the range of @b and @c? Is it the same all the time? Does it vary? If it varies, how much?
May
10
comment Read massive flat file into relational database
Are the id numbers already in the text file?
Apr
16
awarded  Nice Answer
Apr
11
comment Postgresql not working: error
What version of PostgreSQL?
Mar
24
awarded  Good Answer
Mar
12
comment Indexes for SQL query with WHERE condition and GROUP BY
What's the range of timestamps? Partitioning might be an option.
Mar
1
awarded  Yearling
Feb
3
answered Source control makes sure my code is never lost, how do I make sure my users/orders database is never lost?
Jan
7
awarded  Popular Question
Sep
30
comment Do natural keys provide higher or lower performance in SQL Server than surrogate integer keys?
"Custom operations like ON UPDATE CASCADE might be ommited, because key values not changing." The effect of surrogate keys is to make every foreign key reference the equivalent of "ON UPDATE CASCADE". The key doesn't change, but the value it represents does.
Sep
28
comment Simple table normalisation
I've written about it here and on SO. Think about a "lookup" table--one column of data and an id number. Now drop the id number, write foreign keys to reference the data, and you avoid a join altogether. With other tables, you avoid a join every time the data you need is in a referenced key. (I was surprised how often this happens.) The tradeoff is between join performance and disk I/O. Prototypes indicated that natural keys would perform better in the test suite (dozens of queries) for decades without improvements in hardware (like SSDs).
Sep
28
comment Simple table normalisation
Have you measured the efficiency? (I have. You'll probably be surprised.)
Sep
28
answered Simple table normalisation
Sep
9
answered Is there any rule of thumb to optimize sql queries like this
Sep
4
answered How to get the total days per month between two dates?
Aug
13
comment How to create Combination of records (Order does not matter, no repetition allowed) in mySQL tables
"I needed to create a new table (recipe_index) that would show every possible combination of every recipe in recipe_table as a set of 3..." (and 4, and 5, and 6) For all practical purposes, 2.1E13 rows is not possible.