The tutorial is aimed at persons that have little or no knowledge in database design and that need to develop a functional application of mid-level complexity. This application would stand alone in their computers (as opposed to becoming a front end for a MySQL application harbored in some server with multiple users, for example).
The tutorial is centered on the problem of establishing and using primary keys for populating and retrieving records in several tables. Of course, this requires understanding the concept of functional dependency and data normalization and how to implement them in an application.
Other concepts that are relevant to understanding these topics are also summarily reviewed.
The following is a draft proposal for this tutorial:
1. Introduction: some words to calm the anxiety of the reader and offer an overview of the paper.
1.1 Working with Base: advantages, feel and the implications of an integrated suite
1.2 Description and definition of a relational database
1.3 Purpose and goals of appropriate database design
1.4 The importance of functional dependency and the primary key
1.5 The importance of normalized data entry
1.6 The importance of proper design in forms and reports
1.7 Why you can expect to spend more time thinking about your database design that actually implementing it (and why this is a good thing!)
2. Tools of the trade:
2.1 Elements of UML
2.2 Phases in database design
2.3 Brief -brief- approximation to first, second and third normal form
2.4 Using OOo during design phase
3. Putting it all together: Working example in OOo Base
3.1 Presenting problem and possible solution
3.2 The tables and their relationships
3.3 Making sure that records are properly linked
3.4 Entering data for one subject in several tables
3.5 Entering data for one subject in several records in another table
3.6 Masking data entry and other ways to check data entry
3.7 Using drop-down lists for data entry
3.7.1 Dynamically populating drop down-lists from fields in another table
3.8 Timestamping data entry
3.9 Retrieving data from one table
3.10 Updating data for one record showing previously entered data
3.11 Retrieving data for one subject spread in several tables
3.12 Retrieving individual data from a collection of subjects
3.13 Retrieving summary data from a collection of subjects