ACCESS, SQL SERVER, etc.    The Logic of database design - for beginners!

Posted on 2011-10-13
Medium Priority
Last Modified: 2012-08-14
I'm looking for a book recommendation to learn how to design databases correctly.  Relational techniques and such.  But th books I've picked up are extremely dense, arcane and suicide inducing.

Are there any books out there that are helpful in this regard?  Or maybe should I stick to magazine articles.
Question by:brothertruffle880
  • 3
  • 3
  • 2
  • +6

Accepted Solution

hello_everybody earned 252 total points
ID: 36965092
LVL 49

Assisted Solution

by:Dale Fye
Dale Fye earned 252 total points
ID: 36965098
LVL 75

Assisted Solution

by:DatabaseMX (Joe Anderson - Microsoft MVP, Access and Data Platform)
DatabaseMX (Joe Anderson - Microsoft MVP, Access and Data Platform) earned 252 total points
ID: 36965119
Here is a starter list:

The defacto standard:
http://www.developershandbook.com   Must have.

VBA Developers Handbook:

"Fixing Access Annoyances"
Phil Mitchell and Evan Callahan

In the back ... there is a great reference appendix ...with functions, macro actions etc.

PLUS ... the book itself is VERY cool  
list price $20

Also ... another cool book ...

"Access Hacks"
Ken Bluttman

SQL Queries for Mere Mortals - Second Edition
by John L. Viescas; Michael J. Hernandez

And Finally:
"Microsoft Jet Database Engine Programmer's Guide "

And .... loads of good information here:


And some cool stuff here:



Expert One-on-One: Microsoft Access Application Development
by Helen Feddema  
Wrox Press © 2004

Get quick recovery of individual SharePoint items

Free tool – Veeam Explorer for Microsoft SharePoint, enables fast, easy restores of SharePoint sites, documents, libraries and lists — all with no agents to manage and no additional licenses to buy.

LVL 37

Assisted Solution

by:Neil Russell
Neil Russell earned 252 total points
ID: 36965128
LVL 37

Expert Comment

by:Neil Russell
ID: 36965141
A = "....to design databases correctly. "  and B = "....are extremely dense, arcane and suicide inducing."

B is a result of A I am afraid. Anybody can design a database.... To design one correctly takes great skill and lots and lots of research, learning and development.
LVL 58

Assisted Solution

by:Jim Dettman (Microsoft MVP/ EE MVE)
Jim Dettman (Microsoft MVP/ EE MVE) earned 248 total points
ID: 36965142

 Don't have a book recomendation beyond what the others have already suggested, but I'll be doing a intro to application and database design with Microsoft Access in a EE Webinar on Nov 3rd at 11:00 am PT.

 And I will be making a point to stay away from the jargon as much as possible.  Instead I'll be using practical examples to demonstate the do's and don't of relational design.

 If you can't attend, it will be recorded for playback and will be available on YouTube.


LVL 26

Assisted Solution

Nick67 earned 496 total points
ID: 36965904
The very first thing, just a scant 12 pages long is the attached file.
It is the data normalization tutorial from www.phlonx.com

This is THE fundamental skill involved with database design--what the alphabet is to poetry
LVL 74

Assisted Solution

by:Jeffrey Coachman
Jeffrey Coachman earned 248 total points
ID: 36970650
Nothing can really substitute for actually "Building" a db and testing/verifying the principles learned.

I would recommend that you investigate the NorthWind Sample database:

Here is a book I like:

But like Neilsr stated, I have never seen a book that could "Simplify" something that is inherently "Complex"

All databases are different, all requiring perhaps different design approaches.

Learn the basics first (to 3NF)
Then actually *create* simple database to reinforce the principals:
(Students/Classes, Customer/Orders, Contacts, Household inventory, ...etc)

Also check through some of the other access template files for ideas on how working DB's can be normalized/related

Finally, I am noting your title:
So here note that there are few different "Flavors" of SQL, so you would probably want to stick with MS SQL Server and Jet (Access SQL) as some of the other Experts have noted...

LVL 26

Assisted Solution

Nick67 earned 496 total points
ID: 36970864
After normalization is the Ten Commandments from the Access Web, which also has a lot of other good stuff

The Ten Commandments of Access

And it came to pass that the cries and lamentations of the Access newbies were heard on high by the gods of the Database, and their hearts were moved to pity for their followers. And they opened their mouths and spake, saying: "Nevermore shall the young and innocent wander witless on their journeys!  We shall provide guidance to them, yea, and to all who wish to seek the paths of wisdom." And they caused these commandments to be written and placed before the eyes of those seeking enlightenment.

So heed the words of those who have come before you, and keep these commandments in thine heart as thou dost create thy Database application. If thou shalt only follow these commandments thy burden shall be made light and thy path shall be made straight.

1. Thou shalt design normalized tables and understand thy fields and relationships before thou dost begin.  
2. Thou shalt never allow thy users to see or edit tables directly, but only through forms and thou shalt abhor the use of "Lookup Fields" which art the creation of the Evil One.
3. Thou shalt choose a naming convention and abide by its wisdom and never allow spaces in thy names.
4. Thou shalt write comments in your procedures and explain each variable.
5. Thou shalt understand error handling and use it faithfully in all thy procedures.
6. Thou shalt split thy databases.
7. Thou shalt not use Autonumber if the field is meant to have meaning for thy users.
8. Thou shalt not copy and paste other people's code without at least attempting to understand what it does.
9. Thou shalt not use "SendKeys", "Smart Codes" or "GoTo" (unless the GoTo be part of an OnError process) for these will lead you from the path of righteousness.
10. Thou shalt back-up thy database faithfully, working not on thy Production Database, but on the Prototype Copy, as it is right and good to do.

Thus spake the gods of the Database, and blessed be their names! And Blessed, too, are those who contribute to the Access Newsgroup - giving freely of themselves to serve those who hunger and thirst for knowledge and understanding!
LVL 74

Expert Comment

by:Jeffrey Coachman
ID: 36971067

Number 8 has always been my favorite.


LVL 26

Expert Comment

ID: 36971185
#4 and #5, I am not too religious about, because I am very religious about #3
Give your stuff self-documenting names, and stick to your convention.
The prevention of much evil doth lie there

Private Sub Command1_Click()
Dim mTIMSV As String
Dim var2 As Integer

mTIMSV = "Well..."
var2 = 0

MsgBox mTIMSV & var2

mTIMSV = "3"
var2 = 0

MsgBox mTIMSV & var2
MsgBox mTIMSV + var2

mTIMSV = Null
var2 = 0

MsgBox mTIMSV & var2
MsgBox mTIMSV + var2

End Sub

Open in new window

Option Compare Database
Option Explicit

Private Sub cmdDemo_Click()
'This is a little sub to demo why you shouldn't use '+' as a string concatenator
'Dim mTIMSV As String
'Acronym soup sucks mTIMSV
'module level ThisIsMyStringValue --blech
Dim myString As String
'Dim var2 As Integer
'var2?  Really
Dim myInteger As Integer

myInteger = 0

'Ampersand knows from null
MsgBox myString & myInteger
'MsgBox myString + myInteger
'This would have gone Bang!
'+ doesn't

myString = "Well..."
myInteger = 0

'demo ampersanding a string and number
MsgBox myString & myInteger

myString = "3"
myInteger = 0

'demo ampersanding a numeric string and number
MsgBox myString & myInteger
'it gives a string

'+'ing gives a number
MsgBox myString + myInteger

End Sub

Open in new window


Author Closing Comment

ID: 36974023
JEEPERS!  Thanks everyone.  I only wish I could give each of you 500 points.   The links:  EXCELLENT!  The quotes: EXCELLENT.  The book recos:  EXCELLENT!
LVL 75
ID: 36974316
Yep ... you should be on your way.  Lets us know when you come up for air lol!

LVL 22

Expert Comment

ID: 37139196
You appear to be at the early stages of learning about database design. My advice would be to stay away from sources that focus on particular software (e.g. books or web sites which name some database product in the title like some of those mentioned already here). Be very careful about trusting any online sources. Much of the material you will find online is unreliable.

Some book recommendations:

"Database Systems: The Complete Book" by Garcia-Molina, et al
"Practical Issues in Database Management" by Fabian Pascal
"Information Modeling and Relational Databases" by Terry Halpin

Good luck with your studies!
LVL 75
ID: 37139376

Featured Post

Hire Technology Freelancers with Gigs

Work with freelancers specializing in everything from database administration to programming, who have proven themselves as experts in their field. Hire the best, collaborate easily, pay securely, and get projects done right.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Windocks is an independent port of Docker's open source to Windows.   This article introduces the use of SQL Server in containers, with integrated support of SQL Server database cloning.
In a use case, a user needs to close an opened report by simply pressing the Escape (Esc) key. This can be done by adding macro code in Report_KeyPress or Report_KeyDown event.
What’s inside an Access Desktop Database. Will look at the basic interface, Navigation Pane (Database Container), Tables, Queries, Forms, Report, Macro’s, and VBA code.
With Microsoft Access, learn how to start a database in different ways and produce different start-up actions allowing you to use a single database to perform multiple tasks. Specify a start-up form through options: Specify an Autoexec macro: Us…

850 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question