You might first look at various CMSs (Content Management Systems) available and see if there is something already out there to do this for you without needing to program at all. For example, while Drupal has many short comings, the CCK and Views modules makes it very easy to describe things like, say, an ingredient. There are even a couple of shopping cart systems already built in it, so you might luck out and find an inventory system to use.
Not to sell you on Drupal or anything. Just that if you google around you might be able to find a CMS that already fits your needs.
That said, you can roll your own using a database: MySQL and PostgreSQL are popular systems you can setup for free. Then you'll need to pick any standard language: C++, C#, Java, PHP, python, etc.
Once you pick a language you might be able to save some time by searching for a "framework" for that language, which will often give you tools to streamline your database creation and use.