Drupal Hooks allow your module(s) and theme(s) to interact with the Drupal system. There is essentially no requirement that X hooks must be enabled by default by any drupal module.
A module is a container for a unit of code in Drupal. In Drupal7 a module consists of at a minimum a folder and a module info file. This is the mechanism used by Drupal to say “here is my code for Drupal to run”. Some modules such as Migrate, LDAP, Organic Groups and Views contain submodules. These submodules are themselves simply directories with .info files and .module files which contain code for Drupal to execute.
If you’re going to interact with or update a Database for instance. You’ll likely want to implement:
- hook_schema to make Drupal fully aware of your database tables. A convenient way to get the schema for existing database tables is the Schema module.
- hook_update_nBernardini Ramazzini, Carpensis Philosophi AC Medici, ... Opera Omnia Medica & Physiologica. Editio Tertia. Accessit Vita Autoris a Barthol. Ramazzinoand use the Drupal Database API to add/remove and alter columns on your tables.
While Drupal modules may seem complex. They offer a useful method of encapsulation for your custom code — they are simply as simple or complicated as you need to perform your business logic.