The next step is to assign attributes to these entities to identify them to the system.This is the same step you take when modeling in the class diagram; you assignattributes to the classes.The final step that both the logical data model and the class diagram share is to relatethese entities or classes to other entities or classes using associations.Figure 2A Class Diagram in RoseStandardized NotationAnother advantage is Rose uses the common notation of the UML. As was discussedin Chapter 2, UML and <strong>Data</strong> Modeling, the UML data modeling profile addedstereotypes to UML elements relating to data modeling terminology. These sameUML elements are used in the class diagram and with these stereotypes you canunderstand the mapping from the logical data model to the physical data model.Mapping CapabilitiesIn Rose data modeling terminology, a class diagram is also known as an object model.Object models serve two purposes. A class diagram or object model can act as alogical data model, but an object model can also act as a model to capture a conceptual12 Chapter 3 - Logical <strong>Data</strong> Modeling
view of an application. An object model is necessary if you want to map anapplication to a database. It is the object model mapping to the physical data modelthat is the basis for mapping the application to the database.Mapping an Object Model to a <strong>Data</strong> ModelRose allows you to take a step beyond identifying high-level entities, attributes, andassociations. It allows you to create a robust logical data model that can map moreprecisely to a physical database. Customizing the object model for your databasehelps to manage change, thereby decreasing the impact a change of requirements canhave on the existing model. If the object model maps to the data model, and changesor enhancements are made to the object model, the same changes or enhancementscan be applied to the data model. You can model your object model specifically tomap to a database by modeling your object model elements—with the exception ofcomponents and operations—to map to data model elements.Mapping ComponentsComponents represent the actual application language. In Rose terminology, acomponent represents a software module (source code, binary code, executable, orDDL) with a well-defined interface. According to the UML <strong>Data</strong> Modeling profile, acomponent maps to a database, but this mapping is only for reference purposes; inactual object model to data model transformation, components are ignored.Although Rose gives you the option of several component languages to assign to yourlogical package, the <strong>Data</strong> <strong>Modeler</strong> add-in is compatible with only three of thosecomponent languages—Java, Visual Basic, and Analysis. The classes that you want tomap to tables in the data model must use one of these three component languages tobe transformed to a data model. If you want to use a component language notcompatible with <strong>Data</strong> <strong>Modeler</strong>, it is recommended you create a separate object modelusing your desired component language, and map that model to an Analysis objectmodel that is used for transformation purposes.Mapping OperationsAccording to the UML <strong>Data</strong> Modeling profile, operations map to various constraints;however, just like components, operations are ignored in the transformation process.Operations are the behavior of a class, and can be useful to database designersbecause they can be used as a basis for identifying index items, possible triggers, andother constraints.Mapping an Object Model to a <strong>Data</strong> Model 13