Академический Документы
Профессиональный Документы
Культура Документы
CASE Studio 2
user's manual
Table of Contents
Introduction to CASE Studio 2 .................................................................................................................................4
CASE Studio 2 in brief..........................................................................................................................................4
Supported databases.............................................................................................................................................4
Desktop area description.....................................................................................................................................5
Toolbars - Files......................................................................................................................................................6
Hotkeys.................................................................................................................................................................9
Display modes....................................................................................................................................................10
Display levels......................................................................................................................................................10
Creating basic Entity relationship diagrams ............................................................................................................11
Selecting the target database..............................................................................................................................11
Creating new entities..........................................................................................................................................11
Adding new Attributes .......................................................................................................................................13
Creating relationships between entities.............................................................................................................15
Using the Rolename feature ..............................................................................................................................17
Connecting Parent and Child entities.................................................................................................................18
Displaying Partiality.............................................................................................................................................20
Defining Cardinality............................................................................................................................................21
Setting up Referential integrity rules...................................................................................................................22
Understanding Foreign keys...............................................................................................................................23
Foreign keys mapping (how to create a compound foreign key).......................................................................24
Imported foreign keys.........................................................................................................................................25
Specifying relationship properties.......................................................................................................................26
Advanced database design ......................................................................................................................................27
Defining Advanced options – Entity....................................................................................................................27
Defining Advanced options – Attribute..............................................................................................................28
Using the ”Empty” data type..............................................................................................................................29
Using the Dictionary...........................................................................................................................................29
Creating and using Standard Dictionary Items...................................................................................................30
Creating and using User Defined Data Types.....................................................................................................32
Creating indexes.................................................................................................................................................35
Creating alternate keys.......................................................................................................................................36
Working with Triggers, Views, Stored procedures.............................................................................................37
Permanent Text objects......................................................................................................................................38
Database dependent Text objects......................................................................................................................38
Creating Text objects..........................................................................................................................................38
Creating patterns for Text objects......................................................................................................................39
Creating user roles and specifying user permissions..........................................................................................40
Database Rights and Permissions........................................................................................................................41
Using the Model verification feature........................................................................................................................42
Verifying models.................................................................................................................................................42
Accessing verification..........................................................................................................................................42
Using submodels .....................................................................................................................................................43
Creating submodels............................................................................................................................................43
Erasing submodels..............................................................................................................................................44
Removing / Erasing entities from submodels......................................................................................................44
Hiding relationship lines......................................................................................................................................45
SQL/DDL script generating......................................................................................................................................46
Selecting items....................................................................................................................................................46
Selecting a method.............................................................................................................................................47
Setting Advanced options...................................................................................................................................48
Selecting submodels............................................................................................................................................48
Creating Alter scripts..........................................................................................................................................53
http://www.casestudio.com
Supported databases
CASE Studio 2 supports more than 30 database systems including the following:
• Advantage DS 8, 7
• Access 2000
• Access 97
• Clipper 5
• DBIsam 3.23
• DB2 UDB ver. 8
• DB2 UDB ver. 7
• Firebird 1.5
• Informix 10
• Informix 9
• Ingres
• InterBase 7 (incl. 7.5)
• InterBase 6 SQL 3
• InterBase 6 SQL 1
• InterBase 5 and InterBase 4
• MaxDB 7.6 (formerly known as SAP DB)
• MS SQL 2005, 2000
• MS SQL 7
• MS SQL 6.5
• MySQL 5.0
• MySQL 4.1 (also 4.1.14), 4.0
• MySQL 3.23
• Oracle 10g (also Release 2), Oracle 9i (also Release 2), Oracle 8
• Paradox
• Pervasive v9
• Pervasive V8
• PostgreSQL 8.1, 8.0, PostgreSQL 7.4 and PostgreSQL 7.3
• Sybase Anywhere 9
• Sybase ASE 15, 12.5.3, Sybase ASE 12.5.2., 12.5.1 and 12.5
The CASE Studio 2 product includes a full featured graphical user interface. Opening CASE
Studio 2 displays command menus across the top of the window, opening a new document
displays the Overview Tree on the left side of the screen and the Entity Relationship
diagram on the right side.
The Desktop area on the right side is used to add entities with attributes and relationships.
Notes and a drawing stamp can also be added. Other elements, such as views, triggers,
stored procedures etc. are stored in the appropriate sections of the software.
Toolbars - Files
ERD objects
TIP: Hold down the Shift key and click any icon on the ERD objects menu to place a series
of Entities, Relationships etc.
Display mode
DFD objects
Reports
Align
Model type
Submodels
- opens the Submodels dialog
- opens the Text objects dialog (Triggers, Procedures...)
- opens the Compare Versions dialog (Model comparison)
- opens the User Roles dialog
- opens the Users dialog
- opens the To-Do list dialog
- opens the Templates Editor dialog
Edit
Exit
Hotkeys
Ctrl + N : Creates a new model
Ctrl + O : Opens a model
Ctrl + S : Saves your current model
Ctrl + W : Closes the current model
Ctrl + P : Prints the current model
X: Pointer
E: Entity
R: Identifying relationship
O: Non-identifying relationship
M: Relationship M:N
I: Informative relationship
S: Stamp
N: Note
Display modes
CASE Studio 2 works with the physical model only, however, you can view the model in two
modes. The first mode is a Physical View, the second mode is a Logical View.
When creating an ERD the program allows you to define logical names (Entities, Attributes)
as well as physical names (Tables, Columns). Since logical names may include spaces and
special characters and physical names shouldn't, CASE Studio 2 replaces spaces and special
characters with underline marks automatically. You can also add other logical information to
the model, as Notes, Stamp, Text descriptions etc .
You can enable or disable the physical view by clicking on the icon or by selecting the
“Physical view“ item from the „View“ menu.
Display levels
Indexes can be displayed at the bottom of each entity regardless of the active display level.
To display indexes, click the icon or select the „Display indexes“ from the „View“ menu.
Note: CASE Studio 2 allows you to create support for currently unsupported databases. In
other words it is programmable and configurable.
The software synchronizes the Entity name (logical name) and the Table name (physical
name). The physical name will be synchronized only if the Entity and Table names are
indentical (empty, for example) or if the names are in accordance with the defined
synchronization rules. In both cases, non-standard characters and spaces are replaced with
underline marks automatically.
Of course, it is possible to change the rules of synchronization. For example, if you require
the system to name the table as „P_EntityName“, you can set up the rules accordingly. To
re-define the synchrnonization rules, right click the desktop area and select Model
Properties (or press the Model Properties icon). Click tab Settings and re-define the rules
for Table Name Synchrnonization. The conditions will have to be specified as:
„P“+%entname%
Tip: When you click on the entity, press and hold a "Shift" key at the same time. The button
surface turns blue and you can add as many entities to the model as you desire. This rule
applies also to all other objects. To turn off this feature, click on the arrow symbol on the
entity toolbar. The entity or relationship symbol will then turn off the highlighting.
• Key
• Not null
• Unique
Example: attribute Rating may have the Default value specified as „3“ and the Check
constraint may be defined as „%value% > 0“. (When generating the SQL script the macro
%value% will be replaced with the attribute name. In this case „rating“.) Of course, you will
likely be interested in the advanced specification of the Attribute. For setting advanced
options, please see the Advanced Tab. The Advanced tab will be explained later.
The second method of adding new attributes is faster. Edit your entity and click the
Attributes tab. Write the Attribute name into the input field at the bottom and then click the
small ADD button.
Of course, this method is not as complex as the first one, however, it might save you a
significant amount of work if you have a large number of entities to create.
CASE Studio 2 uses a Default data type for all new attributes. You may easily change the
default type as follows: Right click the desktop and select the Model properties item (or
click the Model properties icon). Click the Settings tab and redefine the Default data type.
Press OK to confirm your changes.
• Identifying
• Non-identifying
• Informative
Identifying relationship - The Primary key migrates from the parent entity to the child
entity and there becomes a part of the primary key. It is used when the primary key of the
child entity is unable to provide definite identification. An entity, connected with a parent
entity through an identifying relationship, is called a "dependent" entity and is displayed in
the model with rounded corners.
Non-identifying relationship - The Primary key migrates from the parent entity to the
child entity and does not become a part of the primary key. Non-identifying relationship are
represented by dashed lines. In the dependent table the attribute is referred to as a foreign
key.
M:N relationship – for example many suppliers may have many articles and any article may
have multiple suppliers. M:N relationships can be created in the same manner as standard
Identifying or non-identifying relationships, the only difference is, that you have to choose
the M:N relationship icon. When an M:N relationship is established, CASE Studio 2 creates a
third table automatically -- as it is required by the database and as it corresponds to
Database modeling theory.
Self-relationship – a person from table Person may be married to another person from
the same table for example. In our example, we track movies with more episodes.
Note: When creating relationships, CASE Studio 2 adds a new attribute to the Child entity.
Such behavior is logical, because a foreign key cannot exist without a relationship.
Edit the Foreign key, change the Column name (physical name) and specify a new Rolename.
The attribute name (logical name) cannot be changed as renaming both names (Attribute
and Column names) will result in chaos.
Notes:
• Primary key
• Unique item
• Alternate key (or Unique
index – for example in
PostgreSQL models)
For some databases (e.g. PostgreSQL) CASE Studio 2 generates Unique indexes instead of
Alternate keys.
Displaying Partiality
When editing relationship settings, partiality for Parent and Child tables can be defined. It
might be useful for producing a better view of the database structure. Moreover, partiality
can be synchronized with cardinality and Not Null settings.
Click the Type tab and set Mandatory or Optional values as necessary. The relationship
lines will change accordingly.
Parent: Mandatory
Child: Mandatory
A teacher MUST have a
lecture (a record related to a
lecture is mandatory),
a lecture MUST be attached
to a teacher (a record related to a teacher is also mandatory. Teacher is Mandatory).
Parent: Mandatory
Child: Optional
A teacher MAY have a lecture
(a record related to a lecture
is Optional, that's why the
Lecture is Optional), a lecture MUST be attached to a teacher (Teacher is Mandatory).
Parent: Optional
Child: Mandatory
A teacher MUST have a
lecture (Lecture is
Mandatory), a lecture MAY be
attached to a teacher (Teacher is Optional).
Parent: Optional
Child: Optional
A teacher MAY have a lecture
(Lecture is Optional), a
lecture MAY be attached to a
teacher (Teacher is Optional).
NB: The partiality has almost no significance for the final SQL script generating, only the
Not Null settings affects the generated SQL (This will be explained later.).
Note: In the above example, American and Canadian readers would likely be more familiar
with the term “course” or “class” as opposed to a “lecture”.
Defining Cardinality
If you need to set up a relationship as 1:5, for example, define the cardinality at the bottom
of the Edit Relationship dialog. An appropriate number will be displayed near the end point
of the selected relationship line.
Note: this feature is available only for target databases which support triggers. See some of
the currently supported databases:
• PostgreSQL 7.4
• PostgreSQL 7
• Interbase 7
• Interbase 6 SQL 3
• Interbase 6 SQL 1
• Firebird 1.5
• MS SQL 2000
• DB2 UDB v.8.1
• DB2 UDB v.7
• Oracle
• Sybase ASE 12.5 and others
In CASE Studio 2, you can generate referential integrity declaratively or via triggers. If you
want to generate cardinality, you must generate the referential integrity rules via triggers,
not declaratively.
• Restrict (default)
• Cascade
• Set NULL
• Set Default
The referential integrity can be generated declaratively or via triggers. CASE Studio 2
generates the referential integrity based on the selected method and based on the
capabilities of the target database.
Note: Some databases don't support all Referential Integrity (RI) rules.
If you create a new Non-Identifying relationship, CASE Studio 2 adds a copy of the Primary
key to the child table as a Foreign key - FK (the foreign key is not a part of the primary key
in the Child table).
Primary keys are always defined as Not Null, but foreign keys don't necessarily have to be
defined as Not Null items. That is why you can take advantage of the implemented Not null
synchronization. Right click the desktop area and select the Model Properties item. Click tab
Settings and check/uncheck the „Synchrnonize Not Null with partiality“ checkbox. If you
create a new non-identifying relationship, the Primary key maintains the Non Null
specification, however, the Foreign key's Not Null specification will be dependent upon the
Partiality (Mandatory -> FK = Not Null)
If you reverse engineer a database without relationships, a new model will be created,
however, information about foreign keys will be lost (foreign keys cannot exist without
relationships). If you then create a new relationship, a new foreign key will be added to the
child entity automatically and the child entity will therefore include two attributes of the
same name (the original attribute and the newly added foreign key). You are not required
however, to erase the original attributeand then create the new relationship. You can
instead, remap the foreign key. Right click the relationship line and select the Foreign key
item. Click on the name which belongs to the New FK column and change the Foreign key
to any other item. In this case choose the attribute of the same name.
• tab Type – a place where you can name the relationship, select Linking method,
relationship type, define partiality and cardinality
• tab Referential Integrity – a place where you set up the referential rules for the
relationship
• tab Advanced – a place where you can define other database specifics. For example for
Oracle models, you can enable/disable the „Referential integrity Deferrable“ option. (It is
also a place where your own User-Defined Variables can be added, but it will be
explained later)
• tab Keys – you can see any keys which have been created previously, whether
automatically or manually. If you use the foreign keys mapping feature, for example, you
will find there a detailed description of the foreign key.
• tab Description – text inserted into the Description is used as a Hint (Insert any text
into the Description text area and confirm changes. Then move your cursor over the
relatinoship line. The text should appear.)
• tab Properties – a place where entity properties can be specified. For example, you can
define a Primary key constraint name on this tab.
• tab Advanced – on this tab you can access and define other database specifics. Options
are database dependent. For example, for Oracle models, you can specify Owners,
Tablespaces for tables, and Tablespaces for Primary keys etc. For Firebird models you
can define External file, Explicitly named Indexes for PK constraints and so on.
• tab Indexes – a place where you can add and manage Indexes. We will discuss creating
indexes later.
• tab Alternate keys – a place where you can add and manage Alternate keys. Alternate
keys will be discussed later.
• tab Others – some situations cannot be modelled perfectly. Lets say we need to add a
multiple column check to our model.. This can be done easily in CS2. Write the SQL
code for the check in the Others Tab. For Example:
• tab Relationship – a place where you can see statistical data regarding dependent
relationships
• tab Storage – some databases, like for example Oracle, allow you to define where the
data will be physically saved. This tab is a where the storage specification information will
be written
• tab Descriptions – a place where you can write descriptions. The content will be used
for the final SQL script generating (the text will be generated as a Comment in table) and
also as a hint (move your mouse cursor over the entity to see the hint). This description
can be very useful when viewing the model as the information will be readable regardless
of the model display magnification.
• tab Notes – a place where you can write Notes
• checkbox Generate - check this checkbox to instruct CASE Studio 2 to use the entity
for the final SQL script generating. If you uncheck the checkbox, the entity will not be
generated.
• tab Attribute – a place where the standard settings, (attribute and column names
definition, data type selection, check constraints definition etc.) can be specified
• tab 2 – a place where special information about attributes can be stored. The tab
includes three input fields: Def, Def2 and User type. Whatever you write into the Def
field will be generated immediately after the data type specification, whatever you write
into the Def2 field will be generated at the end of the attribute definition. Example: for
InterBase models, you can define Character set and Collation. Try to create the following
attribute and remember to write appropriate values into the Def and Def2 fields.
If you perform SQL script generation, the attribute will be generated this way (Firebird) :
Note: The use of the third field „User type“ will be explained later.
• tab Advanced – a place where additional settings can be specified. These options are
database dependent. For example for MySQL models, you can specify the
Autoincrement, Unsigned, Zerofill and other settings. For Sybase ASE models, you can
specify Default Object, Rule Object, Identity, for Firebird model, you can define Array
declaration, Explicitly named Index for Unique constraint and so on.
• tab Description – a place where descriptions can be written. Descriptions will be used
for the final SQL script generating (some databases don't support Comments on
Columns)
• tab Notes – a place where notes can be written. Notes have no significance for the SQL
script generation, but can be added to HTML or RTF reports.
Dictionary
• Standard data types which will be • User Defined Data types (unsupported
generated by CASE Studio 2 as by target database system).
• Domains or Example: Square (length, width)
• Standard data types • Special Data Types
Example: Price (Decimal 10,2) Example: Data types NAMED ROW,
DISTINCT, OPAQUE (Informix) and
other special data types.
Example (Firebird) -
Dictionary items generated as domains
• may be linked with Text Objects items (Text objects will be explained later, in chapters
„Permanent Text Objects“ and „Database Dependent Text Objects“.
• may be stored in the Dictionary (see the previous section)
• use the Empty data type specification
Example: Lets say we would like to use the Distinct data type in a model for Informix. The
output should be:
Step A) We will create a new Text Object item. Press CTRL+T to open the Text Objects
dialog. Right click the Distinct types item and select Add. Name the item and write the
definition into the Content tab.
(note: all triggers, stored procedures, views etc. are stored among Text objects)
Step B) We will create new Dictionary item (new User Defined Data Type) -- for example
MyDistType. The „Empty“ data type must be selected from the Datatype drop down
menu and to the User type field the name of previously defined dist_type1 text
object must be written (a reference to the text object must exist – see the screen shot
below).
Add a new attribute to any entity and select the MyDistType data type from the Datatype
drop down menu.
In this way, you can create your own data types for any database, or, for example Named
Row Types, Opaque Types and Distinct types for Informix models.
Creating indexes
In CASE Studio 2, you can create Indexes on tab Indexes of the Entity dialog. To edit any
already existing entity (with attributes), make the Indexes tab active and Click Add.
Define the Index name first. In the middle of the dialog box, you can see two small lists. The
left side list includes a list of available attributes, the right field includes a list of data fields
currently in the index. Between the two lists there is a panel with two arrows, < and >.
Select an attribute from the left list and click the > button to add the attribute (data field) to
the index. You can add multiple attributes (data fields) in any order to the index as well as
choosing whether the fields should be sorted in ascending or descending order. (If you wish
to remove an attribute from the index, highlight it, then click the < symbol to remove it
from the index list.) To change the order of items in the list, highlight the item you wish to
move, then use the up or down arrows to position the attribute appropriately in the list. To
change the order from Ascending to Descending, click the value in column A/D (this option
is not available for all target databases as such settings are database dependent). You can
also specify other index settings. Explore the tabs to see other options.
Define both, Name and Physical name values. Select an attribute from the left list and use
the > button to add the attribute to the right list. As an exercise, try to create a new
alternate key of two or more attributes, then, go through all other tabs to see which
options are accessible and click OK to confirm changes. Then edit a relationship which
belongs to the entity and try to change the linking method from Primary Key to Alternate
Key.
You will find that almost all of the elements we have implemented in this fashion are
database dependent.
• Others – includes the content of the Others tab of the Entity dialog (e.g.
Multiple column checks)
• User Triggers – a place where you can assign custom triggers to entities. Note:
Standard triggers for referential integrity are not accessible here as CASE Studio
2 generates all RI triggers automatically!
• Procedures – a place where custom stored procedures can be created
• Views – a place where views can be created
• Before – whatever you write in this section will be generated at the beginning of
the SQL script. It is an ideal place to add connection strings if your database
needs them.
• After – whatever SQL code you write to this section will be generated at the
very end of the SQL script.
• Functions
• Packages, Package bodies
• Types, Type bodies
• Sequences
• Synonyms
• Object tables
• Default objects
• Rule objects etc.
• Click the Model menu and select the Text objects item (or press CTRL + T)
• Right click the Views folder and select Add
• Specify the name and click OK
• Write your view into the Content tab
• When you are done click the OK icon (green icon) to confirm changes
If you create numerous Views or Triggers etc., you might feel the need to sort or group
them. Use the two red arrows to move your Views into the desired position. The same
method can be used for sorting almost all text objects.
The SQL program code that you insert into the text area will be used for every new View.
This feature saves you considerable effort and avoids errors as you now have a template. As
you can see, it is also possible to use some of the internal Macros.
You can also access these patterns via the File menu (Choose the Extended Settings and
Patterns item).
When you are done, click the Users tab. Because no User exists in the model, the area is
currently empty. After you create several users, all of them will be listed in the area and you
will be allowed to assign users to roles.
To add new users to the model, Click the Model menu and select Users.
Click the Add button and specify both, User and Physical name values. Then click the
Permissions Tab and define appropriate permissions for actions (again, Select, Insert,
Update, Delete etc.). On the User Roles tab, you can assign the User to a previously
defined role.
Of course, user roles and permissions are not supported by all databases since it is not
possible to manage such items via SQL commands in all database systems.
A database creator (or owner) can manage these permissions through the following:
Grant Rights to the Database or more usually objects witin the database; and,
Deny Rights of access to objects within the database; and,
Revoke Rights of access to database objects.
Statement Description
Permissions
Backup DB Allows you to backup the DB, files or filegroups.
Backup Log Allows you to copy the transaction log.
Create DB Enables you to generate a new databse object.
Create Default Permits you to create a default object.
Create Function Enables you to create a UDF.
Create Procedure Enables you to create Store Procedures.
Create Rule Enables you to create a rule.
Create Table Enables you to create a table object.
Create View Enables you to create a View Object.
Although the rights shown above are “normally” the way things are done, many databases
adopt their own terminlogy and implementations.
Verifying models
CASE Studio 2 allows you to verify your models. The verification returns Errors, Warnings
and Hints. You can verify your ERD globally (for multiple appearances of relationships,
entities etc.) as well, you can verify your model with regard to the selected target database.
For example: for Oracle models you can run a verification of duplicate constraint definitions
and for MySQL models you can execute a verification for the presence of 'Number of
indexed characters for primary key' in innoDB tables etc.)
Accessing verification
You can verify your model at any time by pressing the CTRL+F9 keys or you can verify the
model before you execute the SQL script generation (you will have to check the
appropriate checkbox on the SQL script generating dialog).
Using submodels
Creating submodels
A Submodel –is a feature which will help you
to organize your work. You can select
multiple entities and add them to a new
submodel. Later, you will be allowed to
generate SQL script only for a selected
submodel or to generate an HTML or an
RTF report of the submodel.
• An entity can be easily removed from any submodel (removing entities from submodels
and erasing entities from a model are different actions !)
• An entity erased from the submodel is automatically erased from the main model and all
other submodels
• Entity colors and other display settings can be specified for each submodels separately
Erasing
submodels
You might need to erase a
submodel. To do that,
please click the Model
menu and select
Submodels. A new dialog
opens. Select the
submodel you wish to
erase and click Delete.
The submodel will be
deleted, however, all
entities will be retained in
the main model.
Selecting items
One of CASE Studio 2's key features is the SQL script generation. CASE Studio 2 respects
as many database specifics as possible and that's why you can model almost any possible
situation and generate very detailed and database specific SQL/DDL code. Reading the
following text you will see how powerful the software is.
To open the SQL script generation dialog, select the Generate Script item from the Model
menu or press F9, and the following dialog opens.
Stay on the tab „What to generate“ and define the path and file name where the SQL script
file will be saved. Then check all checkboxes belonging to elements you wish to generate.
For example: Tables, Others, Primary keys, Indexes, Referential integrity, Triggers,
Procedures, Views, Alternate keys, Roles, Insertions before and after scripts etc. Use the A
button to select All items, D button to clear the selection and I button to invert selection.
The selection of check boxes shown above would normally be used to generate a
completely new instance of a database. In other cases you may wish to drop tables before
regenerating them. Of course we assume that you would do any necessary backups
before dropping tables or domains. From the drop down menu at the bottom of the
dialog you can choose whether the script should be generated as Uppercase, Lowerse or if
the system should preserve characters etc. This latter feature may be to your advantage if
your database is case sensitive and you wrote all column names as lowercase and all text
objects as uppercase). Enable the Check Script checkbox to run Model verification
automatically. The second checkbox, Default, allows you to store the settings so you will not
have to enter the settings again and again.
Selecting a method
On the „How to generate“ tab,
you can define the method by
which you wish to generate the
SQL script. You can generate
referential integrity for Parent
and Child tables declaratively or
via triggers. -- a database
dependent feature.. You can
generate referential integrity
declara-tively only if it is
supported by the selected
database. Note that some
databases don't support all types
of declarative RI.
select count(*)
from T_EXEMPLAR
where T_EXEMPLAR.medium_id = old.medium_id
into :numrows;
if (numrows > 0) then exception except_del_p;
end
^
Setting Advanced
options
The „Advanced“ tab includes
other database dependent
options. For example for Oracle
models you can enable or disable
the following options: Use
quotation; Generate Owner,
check constraint name, unique
constraint name, not null con-
straint name, comments on
tables and attributes, functions,
synonyms, object tables and so
on. For FireBird models, you can
specify whether the system
should generate functions,
exceptions, generators, blob
filters etc. Define all appropriate
options and click the „Entity list“
tab.
Selecting
submodels
You can generate SQL/DDL
script for any submodel or, of
course, for the main model.
From the Generate drop down
menu select the appropriate
option. By pressing the D and I
buttons you can select all
entities or invert the selection. If
you check the „Only selected
entities“ checkbox, CASE Studio
2 will generate only items where
the Generate checkbox is
enabled (dialogs Entity,
Relationship etc.). Select entities
and click Generate to start the
process. Then click the View
button to see the SQL/DDL
script.
You can model your database strucure in few minutes or hours and generate detailed SQL
script automatically. See our example for the more than 300 lines long SQL script based on a
relatively small model. A model which was created in few hours.
Alter Table T_BORROWING add Constraint makes Foreign Key (customer_id) references
T_CUSTOMER (customer_id) on update no action on delete no action ;
Alter Table T_ORDER_RECORD add Constraint places Foreign Key (customer_id) references
T_CUSTOMER (customer_id) on update no action on delete no action ;
Alter Table T_FILM add Constraint is_of Foreign Key (genre_id) references T_GENRE
(genre_id) on update no action on delete no action ;
Alter Table T_EXEMPLAR add Constraint has Foreign Key (film_id) references T_FILM
(film_id) on update no action on delete no action ;
update RDB$RELATIONS
set RDB$DESCRIPTION = 'Borrowed items'
where RDB$RELATION_NAME = 'T_BORROWING';
update RDB$RELATIONS
set RDB$DESCRIPTION = 'All records are stored in list of records. It will be possible
to book a movie.'
where RDB$RELATION_NAME = 'T_ORDER_RECORD';
update RDB$RELATIONS
set RDB$DESCRIPTION = 'Movie ratings (by customers)'
where RDB$RELATION_NAME = 'T_CUSTOMER_RATING';
The script has just been generated and saved to your hard drive. To create the
database physically, you will have to run the script via any third party tool (for
example via the CHARONWARE's Foxy SQL Free product).
Creating documentation
After you create an Entity Relationship Diagram (regardless of whether the model was
created via Reverse engineering or from scratch), you will certainly need to
generatedocumentation. CASE Studio 2 provides you with a powerful documentation tool.
To generate HTML reports, click the File menu and select HTML report (or RTF report for
RTF format). A following dialog opens.
Select a type of HTML report (Logical, Physical, To-Do, DFD), localized report version (by
default only English and German versions are available, other language versions are available
at http://www.casestudio.com), define the Output path and enable/disable the Use style
option. If you enable this option and select a style from the „Others“ drop down menu, a
CSS style will be used and the design will be defined accordingly to the selected style.
This way you can generate the same report in different styles. When you are done, click the
Settings tab. Specify all settings and select whether the report should be generated for the
main model or only for selected submodel. Click Generate to generate the report. For
viewing the report click View. The same steps do for the RTF report generating.
If you want to change the font for your model, click the View
menu and select Font. Select new font and click OK to
confirm changes. (Selecting different fonts for individual
entities is not possible.)
To remove all break points from particular relationship line, right click on it and select the
“Remove break-points“ item.
Moving entities
If you move an entity to a new position, the relationship line will be connected to the closest
side of the entity. See the picture below. If we move the Flight plan entity directly under the
Flight route entity, the relationship line will be connected to the right side of the Flight plan
entity.
Note: one break point has been removed from the Relation4 relationship.
Of course, if you select multiple entities and move them to a new position, all selected
entities and their relationships will be moved accordingly.
Displaying entities
Entities can be displayed in several modes. Available display modes (physical and logical
views) and display levels (entities, primary keys, keys, all attributes, indexes) were explained
earlier, other settings you can enable or disable are as follows:
Saving models
To save a model, use the File -> Save menu, or use the „Save As“ option.. You can also
export a model into XML file format. XML files can be easily converted into any other XML
format file, HTML file etc. via XSLT. Of course, CASE Studio 2 allows you export a model
into XML as well as load XML files and create entity diagrams automatically.
To export a model into XML file format, click the File menu and select Export. You will be
asked to define the path and provide a name for the XML file. CASE Studio 2 saves XML
files with suffix DMX, however, if you try to open DMX file in for example Notepad, you
will see the XML document structure.
A model can be also saved via the Version Manager -- will be discussed later.
Reverse Engineering
To reverse engineer a database, click the File menu, select Reverse engineering and choose
the Universal reverse engineering item. A new dialog opens.
Selecting a database
First, select the appropriate reverse engineering script. Select the appropriate script (for
Oracle9i database please select the Oracle9i script) from the Execute script drop down
menu. You can currently choose one of the following databases:
• Advantage Database Server 8, 7
• Access 2000
• Access 97
• DB2 UDB version 8 (incl. v. 8.2)
• DB2 UDB version 7.1
• DBISAM 3
• Firebird 1.5
• Informix 10, Informix 9
• InterBase 7 (incl. 7.5)
• InterBase 6 SQL 3
• InterBase 6 SQL 1
• MS SQL 2005, 2000
• Max DB 7.6
• mySQL 5.0 RC, 4.1, 4.0, 3.23
• Oracle 10g, Oracle 9, Oracle 8, Oracle 7
• Pervasive v9, Pervasive V8
• PostgreSQL 8.1, 8.0
• PostgreSQL 7.4
• PostgreSQL 7.3
• Sybase Anywhere 9
• Sybase ASE 12.5.3, 12.5.2, 12.5.1, 12.5
• Sybase ASE 15
Connecting to a database
After you select the script, define
connection settings. Select a
connection method from the
“Connection via” drop down menu.
You can establish connection to the
database via:
After you select the connection method, click the Set Up icon (next to the Connection
via drop down menu) and specify appropriate connection settings. The settings are database
and connection method dependent, so please see the CASE Studio 2's Help file and/or
Documentation to your database for more information on how to configure the connection.
Selecting items
Click the tab Settings on the
right side of the dialog and
enable or disable options
related to items you wish to
reverse engineer. The options
are database dependent. For
Oracle models, you can, for
example, decide whether
Sequences or Synonyms
should be loaded, for Firebird
database structures you can
decide whether Blob filters or
External functions should be
reverse engineered. When
you are done with selecting
items, click the Connect
button and establish the
connection.
Selecting tables
After the connection is
established, the software
displays a list of all available
entities. The tab Tables is
active and you can select
tables by checking
appropriate check boxes.
The dialog also includes two
drop down menus. The first
menu allows you to select
one of multiple loaded
databases (this case is
available only for DBIsam
models) and the second
menu allows you to select all
entities which belong to the
same owner.
After you select the entities, click Execute. CASE Studio 2 now creates a new entity
relationship diagram based on the existing database structure. Click Disconnect to close the
connection.
Write any name into the Alias input field and click the
Save icon to save your settings under the new alias.
To save or load the layout, click the Model menu and select Layout -> Save or
Layout -> Load. Layout files have suffix *.la2.
The Layout feature is also very important for maintaining logical names of entities!
Maintaining Models
Now create a new model and display the Gallery (press F11). Use Drag and Drop to copy
the item from the Gallery to the new model. As you can see, the Gallery can be used as a
“repository”.
• tab Tree – shows all elements of the model in a tree (inc. basic Model
properties)
• tab Entities – shows all entities. You can sort the items by Entity name or Table
name. To sort entities, click appropriate column name. Sorting entities is not the
only action you can do. It is also possible to edit the items directly. To edit any
entity, double click on its name
• tab Attributes – similarly to entities, also attributes can be sorted and edited
• tab Relationship – also relationships can be sorted or edited
• tab Dictionary – shows the used dictionary items. Sorting and editing items is
available
• tab Indexes – indexes can be sorted, but cannot be edited
• tab Alternate keys – also alternate keys can be sorted, but cannot be edited
directly.
• Model
• Entity
• Relationship
• Dictionary
• Triggers
• Users
• User roles
To add a new to-do list item to the model, press CTRL+ALT+T or click the Model menu
and select To-Do list. A new dialog opens.
Click the + (plus) button to create a new item. Click tab To-Do and write text into the
largest text area. To the field Owner, write the item's owner name. To the Category field,
write a new category name. You can also set a priority for the item and define a creation
date. The check box “Done” allows you to mark the item as accomplished.
You are allowed to assign items to different objects. We know, how to assign a To-Do list
item to the Model, however, the same method cannot be used for assigning item to Entities
or Relationships, for example. In general, you can access the To-Do list dialog from various
dialogs. Edit any entity and see the To-Do list button at the bottom. Then edit any
relationship and see the same button on this dialog.
It is very important, from where you access the To-Do list feature. If you click the To-Do list
button when editing your existing Entity, the To-Do list item will be assigned to the opened
Entity. If you click the To-Do list button when editing existing relationship, the To-Do list
item will be automatically assigned to the currently edited Relationship.
See the following screen shots, both show items related to the currently opened entity:
Of course, you can also manage your To-Do list. Click the Set up icon to access the To-do
list maintenance dialog. You can delete unassigned or finished items. Click the Clear button
to execute the deletion.
The To-Do list can be also exported to an HTML or an RTF format report. Click the File
menu and select the HTML or RTF report item. Define appropriate settings and generate
the report.
Supported Text objects cannot be parsed, you will have to modify them manually after the
conversion is done. CASE Studio 2 can convert the data types used in the model, and you
can define appropriate rules for the data type conversion. For example, if you need to
convert data types from Oracle 8 to Firebird, click the Model menu and select the Database
conversion item. From the “Convert to” drop down menu please select the database
system to which you wish to convert your model.
Next select items you wish to convert (indexes, triggers, views etc. - warning, the items will
only be moved in untouched form) and then click the Setup button.
The Database Conversion Setup dialog opens. If you are not satisfied with the default
settings, modify any check box and select new data types from the “To” column.
When you are done, click the OK button to confirm your changes. Click the Convert button
to run the conversion. Of course, remember to edit Text objects and make appropriate
manual changes to Views, Triggers etc.
Creating a project
The Version manager allows you to manage your models. You can create an entity
relationship diagram, save it into the version manager, modify the model and save the
diagram as new version or revision. Later, you can compare two versions and generate
appropriate HTML or RTF reports, describing the changes.
Note: On the Detail tab, there is also a specific number at the bottom (for example:
04231727.DV2) The number represents the physical file name of the version. CASE Studio
2 stores all project files to the same folder, where the project (file *.DP2) is stored. If you
rename any of the *.DV2 files to *.DM2 (standard CS2 file format), you will be able to open
the diagram directly. Warning: Do not erase the *.DV2 files from the folder where the main
project is saved. The *.DV2 files are not temporary files, but separate project files !
After you specify the version name, click the “Out” button (as in “Check Out”) to open the
1.0 model. See the Versioning dialog. As long as no change is done to the 1.0 model, the
arrow left to the version name (in tree) remains blue. Immediately after you make a
modification to the 1.0 model the arrow turns red. Do any modification, for example add a
new entity to the model and try to close the model (you can close the model in a standard
way or by clicking the “In” button. In both cases, you will be asked to save the model to:
• the current revision - the file will be modified and stored as version1.0
• a new revision - the file will be stored as version 1.1
• a new version – the file will be stored as version 2.0
Comparing versions
Any version can be compared to any other previous or following version. Open a model
from your Project and make it active. From the Model menu select the item Compare
models. A new dialog opens.
The dialog includes one large drop down menu. Choose any previous or following version of
the model from the top sided drop down menu and see the differences between the
currently opened model and the model you have just chosen. The overview tree displays all
changes and on the right side, there is a detailed grid of all items. You can double click any
item for editing the modified items.
You can also compare two independent diagrams. To do that, open a model, click the Model
menu and select the Compare versions item. A new dialog appears.
Click the Open file icon and select a model you wish to compare to the currently opened
model. It is recommended to compare two models of the same target database only.
Two versions or two independent models may be compared by GUI, by Name or Physical
name. If you rename any entity, its GUI will not be changed. Therefore it is recommended
to compare two versions in various ways.
If you compare two independent models (two *.dm2 files), do not use the comparison by
GUI as all items have unique GUIs. Compare the two models by Name or Physical name,
instead.
Configuration
Environment setup
To configure global settings for CASE Studio 2, click the File menu and select Environment
Setup. A new dialog appears.
• Desktop tab – a place where default display mode, desktop background color, font,
zoom and other settings can be defined. All settings are valid for all newly created
models.
• Directories tab– a place where default program paths can be re-defined. This tab also
includes additional options as for example XML header specifications. Pay attention to
the following options:
• Lock models – enable this check box to lock your models. Locked models can be
opened at the same time by one person only and therefore cannot be modified
or re-written by any other user.
• Load additional database templates – enable this check box to instruct CASE
Studio 2 to load additional database template files. Additional database template
files are XML format documents saved as .TA2 files which includes a description
of currently unsupported database system (e.g. NexusDB). This topic will be
discussed later.
• Run only one instance of CASE Studio 2 – enable this check box to run only one
instance of CASE Studio 2.
• Text Editor tab - a place where default text editor type can be selected. Available
options: Internal, External, Associated.
• Synchronization tab - a place where synchronization rules can be defined. First, select
a level of synchronization. Available options are:
• None – if you select this option and create a relationship, no data which belongs
to the primary key will be assigned to the foreign key.
• Partial - if you select this option and create a relationship, selected data (as for
example Unique constraint names etc.) which belong to the primary key will be
assigned to the foreign key.
• Complete - if you select this option and create a relationship, all data which
belong to the primary key will be assigned to the foreign key (and you will not be
allowed to change them manually).
When you are done with setting up the level of synchronization, choose additional
appropriate settings. Table name synchronization – entity and table names will be
synchronized in accordance to the defined settings. The same system works for attribute
and column names (field name synchronization) names used in user defined dictionary
items (physical names synchronization of dictionary items) and primary key constraint
names (constraint synchronization of primary key). Feel free to re-define the default
values at any time. You can set the settings back by pressing the Default values button.
(More information can be found in the CASE Studio 2's help file.)
• Integrity tab - Select the style of referential integrity which you wish to implement. The
settings will affect only new models.
• Version manager tab - Select how you will save files in the Version manager.
• Syntax highlighting tab - Select colors for comments and strings here.
• Scripting tab - a place where default Scripting language version can be defined. The
English language version is the default value. This option affects the scripting language
only, so if you select for example German scripting language version and try to generate
an HTML report, CASE Studio 2 will not offer you the English HTML report as a default
option, but rather the German HTML report. This option has nothing to do with the
programming interface or software language version. On the Scripting tab, there is also a
check box called “Execute event OnAppStart”. It is necessary to enable this check box
in order to run specific user defined templates. This option will be explained later, in the
topic related to the internal Templates Editor.
Model properties
Right click the desktop area and select Model Properties to reach the Model Properties
dialog.
• Properties – a place where information like Model name, Author name, Model version
and other can be defined. The values will be used in the Stamp, when placed in the
model.
• Settings – Synchronization rules can are defined here. These options have a higher
priority than the options specified in the Environment Setup dialog. All modifications will
take effect immediately. Also on this tab the Default data type can be specified, as was
explained earlier. Another option you can enable or disable is the Partiality and Not Null
values synchronization. Enable this check box to synchronize Not Null values with
defined Partiality.
• Default Values tab – a place where implicit values can be defined. All settings are valid
for new items, options Display Level, Default Background, Shadow, Full Rolename,
Physical View and Zoom Level for new submodels only (if you create a new submodel,
the defined values will be used).
• Advanced tab – Defined variables related to a model can be specified. User defined
variables will be described later, in topic Templates Editor.
Extended settings
Three items are available in the Extended settings menu:
• Conversion between databases – Click the File menu, select Extended settings and
choose the Conversion between databases item. A new dialog opens. Define rules for
the Model Conversion feature and click OK to confirm changes. All settings were
explained in the topic related to the Model Conversion feature.
• Patterns – Click the File menu, select Extended settings and choose the Patterns item.
Define new patters for triggers, stored procedures and view and save the settings. See
the previous explanations for this topic.
• Available databases – Click the File menu, select Extended settings and choose the
Available databases item. A new dialog opens. Enable the check boxes related to the
databases you work with and confirm changes. If you try to create a new model, only
enabled databases will be displayed in the Target Database Selection dialog. (See the
icon: if the light is turned on, it is recommended to have the check box enabled.)
To open the Templates Editor, click the Model menu and select the Edit Templates item or
press CTRL+L.
• Templates – scripts, parts of scripts, macros and functions. Click tab Templates
to display the dialog related to templates. On the left side, there is an overview
tree of all templates, on the right side, you can find settings related to selected
template. Properties are described in the Help file which is distributed together
with the software.
• Editors of Variables – you can add new variables to CASE Studio 2 and use
them for any purpose. You will need to make your variables accessible and for
that purpose you can create new Variable Editors. If you create a new Editor,
then the item will be available on the appropriate Advanced tab (of dialog Entity
or Relationship etc.).
• Packages – packages are ideal for distribution of templates. You can export
multiple templates as a package and publish the package on your web site or
pass the package on to your co-workers. It is also easier to erase packages as
you don't have to delete all the templates individually. Click the Packages tab to
manage Packages.
for all Oracle 9i models. (Not for IBM DB2, Firebird etc.)
• Model templates – a section for all templates related to the currently
selected model.
• Entity templates – users are allowed to create templates also for any
particular entity. All templates related to the selected entity should be
stored in this section, under the appropriate entity name.
Note: a template stored in higher section has higher priority.
Note: All system templates are stored in file CaseStud.ts2 and all user defined templates
are stored in file CaseStud.tu2, both files are XML format documents and can be found in
the BIN folder. (One Possible path is: C :\program files\rkscase\casestudio\bin if you used
the default installation settings). If you install a new version of CASE Studio 2, the system
will override the CaseStud.ts2 file. User defined templates will remain untouched.)
Importing templates
You can find additional templates at http://www.casestudio.com. On these pages you can
freely download the latest version of the system template, as well as other additional
templates, in *.te2 format designed for the CASE Studio 2 program. To import the published
user defined templates and add-ins, do the following:
Modifying templates
Of course, a task can be done in various ways. CASE Studio 2 allows you to modify system
templates hence you can change, for example, the method of SQL script generation and
other features. If you would like to generate Triggers before Stored Procedures and
Functions, then Change the default order in appropriate system template and then store the
template under the appropriate section!
1) Click Model menu --> Edit Templates. The Templates Editor dialog will open.
2) Select a template and right click on it.
3) Select appropriate item from the pop-up menu.
Note: All parameters of an original template will be copied to a new template, therefore it's
not necessary to check the settings of the new template carefully.
In the following section, we will create a new template for adding a prefix before
all the column names.
Task: Create a new menu item for all Firebird models. When the menu item is clicked, the
software will add a defined prefix to all column names. Users will be allowed to define the
prefix on the Advanced tab of the Edit Entity dialog.
2. Click any User-defined templates folder (any folder/template but Read Only) In our
case, the Events folder.
Settings:
Executable: The Executable check box must be checked as the template will be called from
the Add-ins menu.
Event: Event is set to OnAppStart because we would like to load this menu item
immediately after the CASE Studio 2 is started. (Note: Also the ckeck box “Execute event
OnAppStart” on tab Scripting of the Environment Setup dialog must be checked!)
5. Click the Text tab and write the script for the template (in our example, JScript is used)
function Main()
{
MenuManager.AddMenuItem('&Add a prefix to all column
names...','AttrAddPrefix','OnClick');
};
function OnClick()
{
if ((typeof(Model) == 'undefined') || (Model.DatabaseId != 330))
SysUtils.Alert( 'Open or select a model for Firebird before
adding prefixes to column names.' )
else
AddPrefix();
};
function AddPrefix()
{
var e,a,add_pre;
Model.ReadOnly = false;
Model.ReadOnly = true;
The template is almost ready to use. The last step we will have to do is defining the User
defined variable AddPrefix.
• Description – variable
description. Whatever you write
to this field will be used as a
caption of the Editor (on tab
Advanced of appropriate
dialog).
• Datatype – text (input field), logical (check box), enumeration (drop down menu).
• Items – available only for enumeration data type items. Add values separated by
commas, closed by quotation marks.
• Availability – select one of the following: model, generator, entity, attribute, index,
relationship, dictionary, alternate key, To-Do item. If you select for example Entity, the
new variable will be accessible on tab Advanced of the Entity dialog.
• Owner – select either Model or User defined template. If you select the Model item,
your editor and its variable will be accessible only for the currently opened model. If you
select User Defined Template, the editor and its variable will be available for all models
of the same target database.
In our example, we will create the AddPrefix user defined variable. On the image above,
you can see that the Availability was set to Entity. That's why the input field “Define prefix”
will be accessible on the Advanced tab of the Edit Entity dialog.
The template is now fully functional. Make the template active (select the template) and
click the Red Flash Icon to run the template directly from the Templates Editor dialog, or
restart CASE Studio 2. Edit the entity Customer and on tab Advanced, define the prefix as
CU_. Click the Add-ins menu and select the “Add a prefix to all column names” item.
The script will be executed and the following message will be displayed:
Confirm it by pressing the OK button. Press F5 to refresh the desktop area. You will see,
that the “CU_” prefix was added to all column names.
Publishing packages
User defined templates and packages can be downloaded from the following address:
http://www.casestudio.com/enu/daddins.aspx You will find there some new features, handy
functions and various extensions. User defined templates and packages can be shared with
other CASE Studio 2 users. If you have developed some templates, with that you believe
may be useful to others, and you'd like to share them with other users as well, then you can
send them to templates@casestudio.com.
Deleting packages
Deleting almost any of CASE Studio 2's objects (entities, relationships, dictionary items,
variables and others) is very easy, because the software interface is relatively intuitive and
you can find the Delete button on appropriate dialogs. However, note the following issues
when deleting packages.
Open the Templates Editor and click tab Packages. Right click the package name under
section User-Defined packages and select Delete Package to erase the older templates from
CASE Studio 2. Then import the updated packages.
Write the script to the Script area and click the red flash icon to launch it.
Example: Converting all attribute and column names to lowercase.
function Main()
{
Model.ReadOnly = false;
// change name of tables to lowercase
for (e=0;e<Model.CountEntities;e++)
Model.Entities(e).TableName = Model.Entities(e).
TableName.toLowerCase();
// change name of columns to lowercase
for (a=0;a<Model.CountAttributes;a++)
Model.Attributes(a).ColName = Model.Attributes(a).
ColName.toLowerCase();
Model.ReadOnly = true;
}
Note: Your script must start with function Main(), because CASE Studio 2 executes
this function first. In other words, the function Main() is required!
While you're looking at repeating fields, make a note to break up any compound columns
into their elements: address needs to have separate columns for city and state (or province),
for example.
but do not uniquely define it) relate to the entire primary key and not just to one of its
components.
In sum, second normal form requires that no nonkey column be a fact about a subset of the
primary key. it applies when the primary key is made up of more than one column, and is
irrelevant when the primary key is one column only.
Putting these two different kinds of information in the same table can lead to unsightly
blanks where there are more instruments than cars or more cars than instruments. Deleting
a car or an instrument (if a car dies or an instrument is given away) could also cause blanks
in rows.
The problem here is with the spurious relationship that seems to exist between cars and
instruments by virtue of their positional association in the row. It is better to put each of
these entities in a separate table and to record their relationship to an author by using the
author ID as a foreign key column.
Fifth normal form takes the process to its logical end, breaking tables into the smallest
possible pieces in order to eliminate all redundancy within a table. Tables normalized to this
extent consist of little more than the primary key. Here's an example:
One advantage of putting a database into fifth normal form is control of database integrity.
Since you are assured that each piece of nonkey data (data that is not a primary key or a
foreign key) is likely to occur only once in the database, it's relatively easy to update that
kind of data without worrying about keeping all the duplicates up-to-date. If a book's price
changes, for example, you make an entry in the prices table only. You don't have to scan the
other tables to see if the price appears there.
However, since each table has so few columns, you have to repeat the same keys over and
over in order to be able to join the tables and get meaningful information out of them.
Changing the value of a single key (a particular title-id, for example) is a consistency problem
of a different order. You still have to identify every place where that value exists and make
sure it gets updated. Fortunately, the values in primary key columns tend to change much
As originally conceived, the third normal form still had some deficiencies. This form did not
handle certain cases well enough. These cases include relations with the following
characteristics:
Note
The reason this normal form was not called a fourth normal form is that it only
extends the third normal form, making it simpler to define, but stronger by
eliminating its deficiencies.
Notes:
...........................................................................................................................................................
...........................................................................................................................................................
...........................................................................................................................................................
...........................................................................................................................................................
...........................................................................................................................................................
...........................................................................................................................................................
...........................................................................................................................................................
...........................................................................................................................................................
...........................................................................................................................................................
...........................................................................................................................................................
...........................................................................................................................................................
...........................................................................................................................................................
...........................................................................................................................................................
...........................................................................................................................................................
...........................................................................................................................................................
...........................................................................................................................................................
...........................................................................................................................................................
...........................................................................................................................................................
...........................................................................................................................................................
...........................................................................................................................................................
...........................................................................................................................................................
...........................................................................................................................................................
...........................................................................................................................................................
...........................................................................................................................................................
...........................................................................................................................................................
...........................................................................................................................................................
...........................................................................................................................................................
...........................................................................................................................................................
...........................................................................................................................................................
...........................................................................................................................................................
...........................................................................................................................................................
...........................................................................................................................................................
...........................................................................................................................................................
...........................................................................................................................................................
...........................................................................................................................................................
...........................................................................................................................................................
...........................................................................................................................................................
...........................................................................................................................................................
...........................................................................................................................................................
...........................................................................................................................................................
...........................................................................................................................................................
...........................................................................................................................................................
...........................................................................................................................................................
...........................................................................................................................................................
...........................................................................................................................................................
...........................................................................................................................................................
...........................................................................................................................................................
...........................................................................................................................................................
...........................................................................................................................................................
...........................................................................................................................................................
...........................................................................................................................................................
...........................................................................................................................................................
...........................................................................................................................................................
...........................................................................................................................................................
...........................................................................................................................................................
...........................................................................................................................................................
...........................................................................................................................................................
...........................................................................................................................................................
...........................................................................................................................................................
...........................................................................................................................................................
...........................................................................................................................................................
...........................................................................................................................................................
...........................................................................................................................................................
...........................................................................................................................................................
...........................................................................................................................................................
...........................................................................................................................................................
...........................................................................................................................................................
...........................................................................................................................................................
...........................................................................................................................................................
...........................................................................................................................................................
...........................................................................................................................................................
...........................................................................................................................................................
...........................................................................................................................................................
...........................................................................................................................................................
...........................................................................................................................................................
...........................................................................................................................................................
...........................................................................................................................................................
Links
CASE Studio 2 homepage:
• http://www.casestudio.com/enu/default.aspx
Acknowledgments
I want to thank to Dave Robinson of PMC Consulting,http://www.pmccl.com Ontario
Canada for his kind contribution (especially for the Appendix A) and for correcting all the
chapters of this manual. He helped to turn my thoughts into a readable form.
Finally I want to thank David Fux, Radim Kunz and Radim Mario Tkacik for all the
support and samples.
Vaclav Frolik
CHARONWARE, s.r.o.
CHARONWARE, s.r.o.
Ulehlova 267/5
700 30 Ostrava
Czech Republic
Email: support@casestudio.com
http://www.casestudio.com