Northwind Database Explained

Northwind Database is a sample database that is shipped along with Microsoft Access application. Basically, the database is about a company named "Northwind Traders". The database captures all the sales transactions that occurs between the company i.e. Northwind traders and its customers as well as the purchase transactions between Northwind and its suppliers.


It contains the following detailed information :

  1. Suppliers/Vendors of Northwind – who supply to the company.
  2. Customers of Northwind – who buy from Northwind
  3. Employee details of Northwind traders – who work for Northwind
  4. The product information – the products that Northwind trades in
  5. The inventory details – the details of the inventory held by Northwind traders.
  6. The shippers – details of the shippers who ship the products from the traders to the end-customers
  7. PO transactions i.e Purchase Order transactions – details of the transactions taking place between vendors & the company.
  8. Sales Order transaction – details of the transactions taking place between the customers & the company.
  9. Inventory transactions – details of the transactions taking place in the inventory
  10. Invoices – details of the invoice raised against the order.
Entity/Transactions No. of Tables
Suppliers 1
Customers 1
Employees 3
Products 1
Inventory 2
Shippers 1
PO Transactions 3
Sales Transactions 7
Others (Strings) 1

All these information is held in different tables. The tables have been appropriately named – hence you wont have a problem identifying which table contains which information. Now, the reason they are stored in different tables and not in one table is : Please refer the article "Why the need to have multiple tables in MS Access"

Moving ahead, one might ask why am I dedicating a post (though a small one) to describing what a Northwind Database is all about.

The reason being as follows:

  1. I just wanted the new user to understand what kind of data does this Db hold. Basically, I wanted to give him a "functional view" of the DB he is dealing with. Once he can visualize the business process, then he can creatively/intuitively think what are the type of reports that would be needed in such scenarios. Accordingly, he can create different queries & different reports.
  2. Also, normally when we start learning databases, we are straight away bombarded with concepts like tables, normalisation, foreign keys, queries etc…and by the time we come to using the dummy DB like Northwind DB, we simply tend to ignore what the database represents & simply start working on it.
  3. Knowing the business process i.e. understanding what the data is & to which business process does it belong to, will help the user to think in the right direction & comprehend the results better.

As far as the relationships existing between these tables are concerned, you’ll get to understand them better as you move further & start using the database.

22 responses to “Northwind Database Explained

  1. good explanation. i think i can use this to manage and control parts inventory within one of my departments. thanks.

  2. Good Explanation…
    Atlast someplace i find northwind business process that helps me to better understand the Scenarion….

  3. Wonderful .. helped me to get a quick functional view of this DB implementation…

  4. Dear Sir,
    I am finding your work very interesting and formed the habit of photocopying areas I love to keep for reference.

  5. Interesting and educative especially for the beginners that need careful explanations and guidance.

  6. thank , i can find these kind of info only here

  7. where can i find the whole analysis of access functionalities for this database

  8. Thank you so much for explaining the “business model” of Northwind. As English is not my mother-tongue, there are some quite important nuances that were not clear to me. i think you should offer this explanation to be published in one of MS’s official sites dealing with Northwind!

    • That’s great to know, Ozzie. I am glad you find this site helpful. Do not forget to subscribe to email and feeds – will help you to stay updated. Besides, what kind of posts would you prefer to see on this blog?

  9. Hi!
    I have 2 questions:
    how to solve debug in cancelling new customer order?
    How to make inventory transaction from inventory allocated (on hold) to be available inventory?

  10. Pingback: Cleaning up data fetched from Google Spreadsheet to Excel – Internet and Tecnnology Answers for Geeks

  11. I know this post is a little old, but I’m having a bit of a time understanding the “sales” process of the Northwind example. When I create an purchase I do not see how to move it thru the system.How does it get changed from holding, to invoiced to shipped, etc.? When I try to change the dropdown I just get an error “ding”. I’ve looked at the property sheet but I don’t see anything special attached to the field. Can you help explain what is happening?

  12. Awesome. Thanks for this overview. For the big picture, this is an ace description.

  13. Hello!
    This is a fantastic, albeit extremely introductory, look at NWDB!
    It was very helpful when I first started looking at it, but I was wondering if you had a more indepth look at the back end of the NWDB… I’ve been working on adapting the NWDB to serve the purposes of my team but as I dove deeper into the code, it is easy to get lost… having sat on it a few weeks, I now see how the modules are all beautifully interconnected, but it seems bothe excessively “Normalized” (borrowing the term the creator obviously didn’t take into account building the actual tables) and excessively separate from the actual forms… could you explain why DomainF wrappers are necessary, why the msgbox processing in Utilities module is preferrable, why error handling needs its own module… maybe why every function is so atomic, in some cases only containing one line that simply calls another function… And any suggestions on how to adapt this code to a more normalized database?

  14. Thanks for this. I may have missed this – or it may be a very obvious question – but can I simply change the names of staff, of suppliers, customers, etc., in this database, and then use it as my own? Or is that not a good idea?

  15. It was really very helpful!
    Thank you

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s