Database Design for Smarties: Using UML for Data Modeling

In a relational database, there are no relationships. Everything is a table. That means that you must build your relationships into the tables through special columns. The way in which you go about this based on a UML design is somewhat different than if you used standard entity-relationship designs, but there are more similarities than differences. The key differences have to do with generalization (inheritance) and with the special features of UML, such as aggregations and qualified associations.
A binary association is a relationship between two classes, with each end of the association being a role and having a multiplicity (Chapter 7, "Associations, Containment, and Visibility"). The role is the role that the class at that end of the association plays in the relationship. The multiplicity is the constraint on the number of objects that can play the role in a single link. A link is an instance of an association, a relationship between objects as opposed to between classes.
Transforming a binary association into a relational schema is reasonably straightforward and strongly resembles the transformation of the ER relationship. To make the transformation, you must first understand the idea of the foreign key constraint in a relational database.
A foreign key is one or more columns of a table that share their joint domain with the primary key of another table. It is the relational data model's way of representing the association and its data semantics, a fact stating that one row...