Editing Entities


To edit an entity, double-click on it in the entity relationship diagram, or double-click on its name in the model (Main model or a submodel) in the overview tree. The Entity Edit window displays.

Entity Name

The logical name of the entity.

Table Name

The physical name of the entity, this is the way it will be generated in the script.

Generate

Here you can choose if you want the entity to be generated into the SQL output script.

ATTRIBUTES

{bmc CSS_0000.BMP} List of all attributes the entity contains. You can edit the attributeScribble40 by selecting it in the grid and clicking the EDIT button, or double-clicking on the selected attribute.

Columns:

Key

States whether it is a key attribute. It can acquire values, such as: {bmc CSS_0001.BMP} Primary key.
{bmc CSS_0002.BMP} Foreign key that is a primary key at the same time.
{bmc CSS_0003.BMP} Foreign key.
To change the column value double-click the field.

Name

Attribute name

Type

Data type of attribute.

Not Null

States whether the attribute can acquire zero values. Column value can be changed by a mouse click.

Buttons:

Little Add

Fast attribute adding.Fill the attribute name in the field left off the button.

Add

Attribute adding.

Edit

Attribute editing.

Delete

Attribute deleting.
{bmc CSS_0004.BMP} and {bmc CSS_0005.BMP} Change the attribute order.

PROPERTIES

Entity properties.

Primary Key Constraint

Name of the primary key constraint. You can use a macro %tablename%.

EXTENDED

Here you find all the user-defined variables defined in the user-defined variables editor.

INDEXES

{bmc CSS_0006.BMP} A list of indexes the entity contains. Index editing is invoked the same way as the attributes editing, described above.

Columns:

Name

Index name

Index

List of attributes forming the index, or the index term.

Unique

States, whether the index is unique.

Descend

States, whether the index is descending.

ALTERNATE KEYS

List of alternate keys the domain contains. The alternate key editingEditing_Alternate_Keys procedure is similar to the one described under Attributes.

TRIGGERS

Here you can enter any triggers not generated by the program. You can also use the macro %tablename% here. You can view all the triggers in the trigger list.

RELATIONSHIP

List of relationships coming from and going to the entity.

STORAGE

Data written in some db servers under the SQL command Create Table. They usually specify their physical storage parameters. For example in Oracle this is: tablespace
, or in Sybase anywhere: in
You can also use the macro %tablename% here.

NOTES

Here you can enter any remarks you might have about the entity.

Editing Attributes

Select the Attributes tab on the Entity window and click the Edit button to open the Attribute edit window.

Key

Attribute is a part of the primary key

{bmc CSS_0007.BMP}

Your access to the dictionary of user typesScribble95.

Attribute Name

Logical name of the attribute

Column Name

Physical name, this is the way it will be generated in the database.

Rolename

You can change an attribute's name, in case it is imported from a different entity. If you want to export the attribute into other, different entities, than under the given name. You can also drag a name over from the Rolename into a column name with your mouse by using the Drag and Drop function.
Tip - If you check the Full rolenames item in Display menu, you will see the initial attribute name and the new rolename in file format rolename.atrname

Datatype

Here you can choose the data type of the attribute from the basic database types or from user-defined types. In case of special requirements, you can also use an Empty typeScribble538.

Default

Default value of the attribute.

Default Constraint Name

Default Constraint Name for the default value of the attribute (if the SQL server supports it)

Check

Integrity limitation of the attribute. You can use macro %colname%.

Check Constraint Name

Constraint name for Check. You can name it directly, or use macro %colname% (a column name) and %tablename% (a table name), eventually combine them. We can use, for example, CS_%tablename%_%colname%, which means, that in column "ZIP" and in table "T_ADRESS" you will get a constraint name CS_T_ADRESS_ZIP, in the generated SQL script. The script name can be generated only if the previous field Check is filled-out as well.

Unique Constraint Name

Constraint name for the unique limitation of the attribute (if the SQL server supports it). You can use macro %tablename% and %colname%, just like in Check Constraint Name.

Def

An all-applicable item. Its usage depends on the output database. ExampleScribble545

Def 2

2nd all-applicable item.

Note

Any type of text.
 

Editing Indexes

Select the Indexes tab on the Entity window and click the Edit button to open the Indexes edit window.

Index Name

Current logical and physical name.

INDEX

Unique

Unique index.

Descend

Descending index.

Case sensitive

Index recognizes small and capital letters. Not available for any database at this time.

Left Table

List of attributes inside of entity usable for indexing.

Right Table

List of attributes used in index.

{bmc CSS_0004.BMP} and {bmc CSS_0005.BMP}

Used to change item's order in index.

Expression

Term designed index. So far not used, it is ready for databases Foxpro, Clipper, etc.

Filter

Filter for the term designed index. So far not used.

STORAGE

Parameters of physically stored index. Here you can use a macro %indexname%. Only some databases support it, for example Oracle.

Editing Relationships

Select the Relationships tab on the Entity window and click the Edit button to open the Relationships edit window.

TYPE

Name

Relationship name

Linking Method

There are three ways of linking the parent and child entities : ?
Through a primary key of parent entity. (recommended) ?
Through a unique attribute of parent entity. ?
Through an alternative key of parent entity.

Relationship Type

Here you can select either identifying, non-identifying or informativeScribble910 relationship from the relationship type group.

Partiality Parent

Parent partiality towards the parent entity.
Mandatory - At least one record related to the child entity must exist inside of the parent entity, connected through relationship.
Optional - No record related to the child entity must exist inside of the parent entity , connected through relationship.

Partiality Child

Same as partiality parent, but in the reversed direction.

REFERENTIAL INTEGRITY

Integrity rules concerning a relationship. DetailsScribble555.

Constraint Name

Here the constraint name is defined, if you are going to generate the referential integrity declarative. You can either explicitly name the editing field Constraint Name with your name, or you can use macro %parenttablename%, %childtablename% or %relname%, eventually combine them. For example, you can name the constraint as fk_%relname%, so if the relationship is named as e.g. "has_address", then the Constraint Name is "fk_has_address".

KEYS

List of all keys, used to link up the parent and child entities through this relationship.
 

Editing Alternate Keys

Select the Alternate Keys tab on the Entity window and click the Edit button to open the Alternate Keys edit window.

Name

Logical name of alternate key.

Physical name

Physical name of alternate key. Use it as Constraint name

Left table

List of attributes in entity, which you can use for alternate key.

Right table

List of attributes used in alternate key.
 

Note: Alternate key is mostly generated this way:

alter table add constraint ‹tablename› unique ‹AlterKeyName›

Model Properties

The Model Properties can be found by selecting Model | Model Properties on the menu bar, by clicking the Model Properties button on the tool bar, or by double-clicking on the Main model in the overview tree.

PROPERTIES

Project

Project name

Model

Model name

Company

Company name

Author

Model author

Version

Model version

Created

Date and time of model creation

Updated

Date and time of last model change

Database

Database, the model is designed for

NOTE

Any type of text

SETTINGS

Attributes synchronization

Complete

Foreign key properties (default, check, etc.) are fully synchronized with the primary key properties, and you can not change them.

Partial

Foreign key properties are synchronized with primary key properties, but here you can change them. If you do so, the properties will not get synchronized anymore. To get them synchronized again, you must enter the same values into the foreign key properties as they are in the primary key.

None

Foreign key properties do not get synchronized at all.
 
Explanation and example:
To get the primary key to create its own unique value, you need to enter the AUTOINC function into the default value of the primary key. There are foreign keys in other entities to this primary key that would not make sense to have their default value set as AUTOINC. So, if you have set the Partial or None synchronization, then you can delete the AUTOINC value in foreign keys.
 
Please, be careful with this option and do not change it much! If you change this option from Partial or None to Complete, you can lose a part of your work. It will rewrite the values in foreign keys that you just worked on so hard. When you change the setting, the values will not rewrite automatically, but you've got to help it. That means, to open the entity with primary keys and close it back. Then the Primary keys properties migrate into the Foreign keys.

Table name synchronization

A method of transfer between the entity name and the table name. The default value is %entname%. It means the table name originates from the entity name. Spaces and disallowed characters will be removed at the same time.
Example:
The entity name is Aircraft, method of transfer is set to t_%entname%. This will produce a table name t_Aircraft. Column name synchronization A method of transfer between the attribute name and the column name. The default value is %atrname%. You can also use macro %atrname%. The behavior is similar to Tables (Entities).

Physical names of dictionary items synchronization

A method of transfer between the attribute name and the column name. The default value is %dictname%. The behavior is similar to Tables.

Model Check

check ERD
When checking the model, the ERD diagram is checked also.
check DFD
When checking the model, the DFD diagram is checked also.
check DFD against ERD
When checking the model, the DFD-ERD sequence checked also.

Default Values

Returns the methods of synchronization back to original values defined in Environment Setup....

DEFAULT VALUES

Here are settings that will be used as implicit for new objects.
 

DEFAULT STORAGE

The storage default setting is used for all new entities. If you want to change the existing entities, use button Set all entities.

ADVANCED

Setting of the user-defined variables that are valid for the complete model.

Submodel Properties

The Submodel Properties can be found by selecting Model | Submodel on the menu bar, by clicking the Edit Submodel button on the tool bar, or by double-clicking on the Submodel name in the overview tree.

Submodel name

Name of the submodel

ENTITIES

List of entities included in a given submodel. Here you can add or remove an entity from the submodel.

GRID

Show Grid

A grid will appear on the desktop.

Snap to Grid

All objects on the desktop will snap to the grid.

Horizontal in mm

The grid's horizontal spacing. The size is calibrated by a printer.

Vertical in mm

Same as horizontal.

ADVANCED

Straight Relationship Lines

The relationships are shown as straight lines from one entity to another. If the option is unchecked, the lines are broken.

Shadow

A shadow appears under the entity.

Physical View

The physical name of the entity (table name), physical names of attributes (column names) and their types appear on the screen.

Full Rolenames

If you have a defined rolename in the foreign key, the attribute will appear in format rolename.attributename.

Attributes Syntax Highlighting

The attributes are in the same color as the keys they belong to. Primary keys, Foreign primary keys, Foreign keys.

Display Indexes

A list of indexes in the entity appears.

Display Relationship Names

Name of the relationship appears.

Align in Columns

In entity the attributes align into columns. Name under name, data type under data type. It is well arranged, but it takes up more space.

Print

Prev.Page

Previous page is shown.

Next Page

Next page is shown.

Print Page

Actual page is printed.

Print All

Complete model is printed.

Exit

Simply exit

Printer Setup

Here you setup the printer. The setting is valid throughout the runtime of the program.

If you have a feeling that the size of entities is being deformed, check the true type font setting for your submodel. If a true type font is not set, then the preview could look deformed.

Dictionary

Dictionary of user-defined types. These types will appear when defining attributes.

Buttons:

Add

New user-defined type.

Edit

Editing the selected user-defined typeScribble105.

Delete

Deleting the selected user-defined type.

Load

Loading a dictionary of user-defined types from a file. Even from different models.

Save

Saving a dictionary of user-defined types into a file.

Dictionary Item

Name

Name of user-defined data type.

Physical Name

It is used when the user-defined types are generated as domains.

Datatype

Data type of the user-defined type.

Width

Width of the user-defined type.

Scale

Number of decimals of the user-defined type.

Check

Integrity limitation of the user-defined type. You can use macros %colname% or %value%, both will be replaced with the corresponding value of the column name for a particular attribute. (The macro %value% is obsolete, it is only used for compatibility feedback. We recommend using the macro %colname%).

Default

Default value.

Note

Any type of text.

Used in

List of attributes using the user-defined type.

Database Server Selection

Select a database server from the list when creating a new data model.

Environment Setup

DESKTOP

Switch back...

The way you work with the cursor on your desktop. When checked (implicit), the cursor switches back to an arrow type each time you place an object on the desktop (for example Delphi behaves similarly). When unchecked, the cursor type does not change. (Most of the other CASE programs behave similarly).

Visible page boundaries

To display page boundaries on your desktop (implicitly checked).

Color printing

To print a model in color. For color printers only. On black and white printers the colors will turn to shades of gray (implicitly unchecked).

Editor font

Setting a font for text editors.

Default desktop color

Desktop color value for new models.

Zoom

Zoom value for new models.

DIRECTORIES

Models directory

Directory where you save the models.

Definition file

Location of a file with system templates.

User's definition file

Location of a file with user-defined templates.

Script file

File where you save a generated SQL script.

HTML File

File where you save HTML report.

Gallery File

File where you save a gallery.

Lock models

If checked, the program will lock up this file at opening. The file is locked up then and nobody can open itor write anything into it. It is recommended that you set this option in the same way on all your computers in the network.

TEXT EDITOR

Generated SQL scripts and reports are displayed in a text editor.

Editor type

Internal simple editor, used as an alternative solution.
External you can select your own editor (Notepad recommended). Associated the Windows will bring up an editor that is associated with relevant suffix.

External editor

Set external editor name including a path.

SYNCHRONIZATION

Attribute synchronization

Implicit setting. Use it only for new models. For existing models use Model propertiesScribble65.

Table name synchronization

Implicit setting. Use it only for new models. For existing models use Model propertiesScribble65.

Field name synchronization

Implicit setting. Use it only for new models. For existing models use Model propertiesScribble65.

Physical names synchronization of dictionary items

Implicit setting. Use it only for new models. For existing models use Model propertiesScribble65.

Constraint primary key synchronization

Implicit setting. Use it only for new models. For existing models use Model propertiesScribble65.

INTEGRITY

Implicit setting of integrity limitations of the relationships. These settings will be used for all new relationships.

LICENSE

License code

A code needed to activate a full version of the program. A write-only field.

User

User name

Organization

Organization name

VERSION MANAGER

Saving method inside the version manager

 
Set what you want to offer as an implicit option
  1. Save into current revision
  2. Save into the new revision
More info inside the versions managerScribble615.

Ask before saving

If checked, the Version manager will ask for saving method before it executes the command.

Generating Scripts

Generate

Launches the generating of the SQL script.

View

Reviewing the generated script.

Exit

Exit generating.

Stop

Forced interruption of the generating process.

WHAT TO GENERATE

File

Name and location of the file the SQL script will be generated into.

Domains

If a database supports it, a command CREATE DOMAIN will be generated, eventually its equivalent.

Drop domain

A command DROP DOMAIN will be generated.

Tables

Tables will be generated.

Drop table

The commands DROP TABLE will be generated for all tables.

Primary keys

Some programmers do not use the primary keys and they solve the integrity differently, for example, by using indexes. That is not a good practice, but it is everybody's choice. So that's why you have an option of the Primary keys. If checked, the keys will be generated automatically, otherwise not.

Indexes

Indexes will be generated.

Drop index

A command DROP INDEX will be generated.

Referential integrity

Referential integrity will be generated, but only on those platforms supporting the referential integrity.

Triggers

Triggers will be generated, but only on those platforms supporting the triggers.

Drop trigger

A command DROP TRIGGER will be generated.

User-defined triggers

The triggers that are saved directly in entities, and triggers from the list of triggersScribble595 are added to SQL-script.

Procedures

Procedures from the list of triggers will be added to script.

Views

Views from the list of triggers will be added to script.

Alternate Keys

Alternate keys are generated into the script. This depends on the database server, but mostly they are generated as Constraint unique.

Insertions before script

Script insertions from the trigger listScribble595 are placed before the script.

Insertions after script

Script insertions from the trigger listScribble595 are placed after the script.

Font size

Setting the fonts for generated script. There are 3 options:

Preserve Characters (default setting).

Lower Characters
Upper Characters

Check Script

Gives you choice to check the model before generating the script.

HOW TO GENERATE

Parent, Child

Gives you choice of selecting the method of generating the referential integrity. You can set for each event of the referential integrity, if it will be generated declarative, that is, as a foreign key or as a trigger.

User-defined datatypes as domains

If checked, then the attributes whose data types are in the dictionary of user-defined types will be generated as a domain typeScribble565. But only if the database supports it.

Primary keys as constraint

If checked, then the primary keys will be generated as Constraints.

Foreign keys as constraint

If checked, then the foreign keys will be generated as Constraints. The Constraint nameScribble55 from the form Relationships is used as the name.

ADVANCED

User-defined variables, you can define them in the templates editor.

ENTITY LIST

List of entities ready to be generated.

Empty

Empty data type. Use only when you need to declare a column with special type not supported by the program.
 
Example:
You can declare a calculated column using this method in Interbase:
 
Attribute name = First Name
Column name = first_name
Type = empty
Def = computed by (first_name || " " || surname)
Program will generate attribute as:
 
first_name computed by (first_name || " " || surname)

Def, Def 2

Help items for some special insertions of attributes. The Def is placed behind a definition type and the Def2 at the end of attribute declaration.

Example:

You can set a character set and sorting criteria:
Attribute name = First Name
Column name = first_name
Type = char(20)
Def = CHARACTER SET WIN1250
Def 2 = COLLATE WIN1250
Program will generate attribute as:
first_name char(20) CHARACTER SET WIN1250 NOT NULL COLLATE WIN1250
See also Empty data type.
 

Referential Integrity

You can define integrity rules of a relationship related to changing, adding or deleting a record inside the parent or child entity.

Parent update:

An event where the primary key of the record is going to be changed inside the parent entity. The rules are:

None

No rule.

Restrict

In the case that the primary key is changed inside the parent entity record, and inside of the child entity are records allocated to the original parent record primary key, then the change is not made and db-system reports an error.

Cascade

In the case that the primary key is changed inside the parent entity record, and inside of the child entity are records allocated to the original parent record primary key, then the db-system will change appropriate foreign keys inside of the child entity.

Set NULL

In the case that the primary key is changed inside the parent entity record, and inside of the child entity are records allocated to original the original parent record primary key, then the db-system will set appropriate foreign keys inside of the child entity to NULL.

Set Default

In the case that the primary key is changed inside the parent entity record, and inside of the child entity are records allocated to the original parent record primary key, then the db-system will set appropriate foreign keys inside of the child entity to a default value.

Parent Delete

An event when a record inside of the parent entity is being deleted. The rules are

None

No rule.

Restrict

If a record inside the parent entity is being deleted and inside of child entity are records allocated to parent entity, then the command won't be executed.

Cascade

In case of record deletion inside the parent entity, the records inside of child entity will be deleted as well.

Set NULL

In case of record deletion inside the parent entity, the foreign keys inside of child entity will be set to NULL. Set Default : In case of record deletion inside the parent entity, the foreign keys inside of child entity will be set to default value.

Child Insert

An event when a record inside of the child entity is being added. The rules are:

None

No rule.

Restrict

In case of adding a record into child entity that does not have an related record inside of the parent entity, then the db system reports an error and the command will not be executed.

Child Update

An event when a foreign key of a record inside of the child entity is being changed. The rules are:

None

No rule.

Restrict

In case of changing a foreign key of a record inside of the child entity, and there is no related record inside of the parent entity for the new value, then the db system reports an error and the command will not be executed.

Domains

Interbase example:
create domain number INTEGER default 5 check (value < 100)
create table xx(
item number
)
it is equivalent to record
create table xx(
item integer default 5 check (item < 100)
)

Gallery

Some times you need to save a part of model, or just one entity "aside", for later use in different models.
For example:
Let's say you create an entity Address book, which contains 20 attributes. It appears to you universal enough and you do not want to create it again in the next model.
In that case go to your desktop and mark a random number of entities. Click your right mouse button and go to Add To Gallery on the pop-up menu. Gallery Item dialog box appears. There you fill out the file name (any), your name and some notes, if you have any.

On the next card you can see the gallery item structure.

Here is a list of gallery items. Each contains the Name, Database, Author and Date of creation. When you click on any of the gallery items, a window with more detailed data appears (picture below). You can edit this data.

{bmc CSS_0021.BMP}

If you want to use a gallery item in your model, right-click it with the mouse and drag it on your desktop.
 
You are free to use an item created for any kind of database. It means, that, for example, you can use a gallery item created in the Interbase in a model designed for the Oracle database.

Physical Creation Of Database

The CASE Studio 2.x does not really perform the physical creation of a database. You have to use the utilities that come with your database servers. For example, it is the ISQL for Interbase or the SQL Plus for Oracle.
 
If you are users of Delphi 1,2,3,4,5 and the Paradox tables, you can use a simple utility. You can find its source files in directory : ..\RKSoft\CaseStudio2\delphi. The files are : psql_form.dfm and psql_form.pas.

Triggers

Menu Settings

Quick Edit

When unchecked, it will be saving a changed trigger (procedure or view) content anytime you switch to a different trigger (procedure or view). If left unchecked, then you have to either confirm or cancel every single change.

Fonts

Editor fonts.

Buttons

{bmc CSS_0022.BMP} Confirming the applied changes.
{bmc CSS_0023.BMP} Canceling the applied changes.
{bmc CSS_0024.BMP} Loading text file from disk to editor.
{bmc CSS_0025.BMP} Saving the editor content to disk.
{bmc CSS_0026.BMP} Printing the trigger (procedure or view).
{bmc CSS_0027.BMP} Setting the editor fonts.
{bmc CSS_0004.BMP} {bmc CSS_0005.BMP} Changing the sequence of the trigger (procedure or view) generating process.
{bmc CSS_0028.BMP} The actual trigger (procedure or view) is changed.

Enabled

If checked, the triggers will be generated. If unchecked, the triggers will be ignored.

List

User-defined triggers

The triggers connected straight to an entity. It is the same trigger available to you in the Entity Editor.

Before

Insertions before the created script. Here you can write, for example, a physical creation of database code, connection, etc.

After

Insertions after the created script. {bmc CSS_0029.BMP}

Version Manager - Introduction

How to begin

  1. Create a new model or just open an existing one.
  2. From the Model menu select the Insert Model into Version Manager menu item.
  3. This form (window) appears on your screen.{bmc CSS_0030.BMP}
  4. Insert the project file name into the File field, in a separate directory, if possible. For that use button {bmc CSS_0024.BMP}
  5. Now the model is a part of the project and is controlled by the Version Manager. To know more about the Version Manager just click here.

Version Manager - Work

If you do not know how to insert a model into the Version Manager, start by clicking hereScribble605.

Buttons

{bmc CSS_0025.BMP}

Saves the project on disk. You need not use it, the project will be automatically saved after each change.

OUT

Check out, opening the model (revision) from the repository.

IN

Check in, saving the model (revision) into the repository. When you use Check In on a modified model the following windowScribble625 appears on your screen.

1

A tree structure displaying development of the project. Here the models are arranged by the time of their creation.

2

A tree structure displaying development of the project. Here the models are displayed in full hierarchy.

DETAIL

Name

Revision Name

Version

Revision Number

Created

Date and time of creation of the revision.

Modified

Date and time of last modification of the revision.

NOTE

Any type of text.

Symbols

{bmc CSS_0031.BMP} Revision was opened, but no change occurred inside the model.
 
{bmc CSS_0028.BMP} Revision was opened and a change occurred inside the model. When you use Check In on a modified revision, the following windowsScribble625 appears on your screen.
 
{bmc CSS_0032.BMP} Revision
 
{bmc CSS_0033.BMP} Version
 
If you want to back-up the project, then back-up the complete directory containing your project. If you are opening a new project, create a new directory for that project. By doing so you will eliminate many problems.
 
The project can be:? file with project containing list of individual model files.? files with models (they are created automatically in the same directory with the project file).
 
More on the files and their suffixes here.

{bmc CSS_0034.BMP}

Version Manager - Saving Revision

Save into current revision ‹revision_no›

A changed model is saved into current revision. In case this revision has some successors, the option is gray and cannot be saved. You have to create new version or revision (you could bypass it by saving the revision straight from the desktop, but we do not recommend this).

Save into a new revision

The changed model is saved into the new revision.

Save into new version ‹version_no›

The changed model is saved into new version. The version number is the number of the last created version + 1, in format of "‹ver_no›.0"

Don't save

The changed model is not saved, you lose all changes. {bmc CSS_0035.BMP}

Comparing Versions

TERMS

Newer version

Actual version you will be comparing with others. Its number is located on the top of the form.

Older version

This is a version you are comparing with the newer version. It is from combobox or from button {bmc CSS_0024.BMP} Open older version. Newer and older does not mean the time of creation, but only the relation between the actual and the compared versions. The older version could be virtually newer and vice-versa.

BUTTONS

{bmc CSS_0024.BMP}

Opening the older version. Here you open and compare the older version straight from a file, without using the Version Manager.

G

comparing by GUID. Each object (entity, attribute etc.) has its own unique identifier (GUID). If the objects have the same GUID in two different versions, they are considered as the same object, and the changes between those two objects will be shown (even when you change the object name). If they have different GUID, they are considered as two different objects. This comparing process is good for models in the Version Manager. This way you can compare only the models with a common past, the models that were created separately cannot be compared this way. The option is gray.

N

comparing by an object name. Compared by the name of an object.

F

comparing by a physical name of an object. Compared by a physical name of an object (e.g. Attribute by a column name, entity by a table name). It is good for comparing a hand-created model and a reverse engineering created model.

Combobox

If you compare the Version Manager models, then they are all Manager versions, except for the actual.
 
Warning:
The comparing is done with the older versions saved on disk. If there is any older version with some applied changes open, those changes will be ignored. This does not concern the newer version, of course.
 
{bmc CSS_0036.BMP} Older version is one of the successors of the actual newer version in the Version Manager.
 
{bmc CSS_0037.BMP} Older version is one of the predecessors of the actual newer version in the Version Manager
 
{bmc CSS_0038.BMP} Older version is out of the development line toward the actual newer version.

SYMBOLS IN TREEVIEW

{bmc CSS_0039.BMP} New object, did not occurr in the older version.
 
{bmc CSS_0040.BMP} Object is only in the older version, does not occurr in the newer one.
 
{bmc CSS_0041.BMP} Object contains changes in the newer version, compared to the older one.

COLORS OF REVIEW ON THE RIGHT SIDE

Yellow

Object or its property is new, did not occurr in the older version.

Green

Object or its property did not change in the newer version compared to the older one.

Blue

Object or its property was deleted from the newer version, remains only in the older one.

{bmc CSS_0042.BMP}

Editing Processes

PROCESS

Name

The process name

SPECIFICATION

Text description of the process. If you check the checkbox, you lose the option to further divide this process .

NOTE

Any type of text.

Editing Terminators

Name

The terminator name.

Editing Datastores

Name

The datastore name.

Entity

An entity corresponding to this datastore in the ERD.

Editing Dataflows

Name

The dataflow name.

Flow type

The dataflow type. It can be either Data Flow or Control Flow.

Dataflow Table

The left bar contains a list of processes, the top bar contains a list of datastores and entities. You can see from the table which process is reading or writing from which datastore.

{bmc CSS_0047.BMP}

Files And Their Suffixes

*.dm2

Native format for model saving.

*.dmx

Alternative format for model saving. It is slower, more universal and with its help the older version of the program can load a model from the newer version. We will use it possibly for transition on to CASE Studio 3.0. It is in XML format.

*.dmr

Native format for saving the model in the old version of CASE Studio. The CASE Studio can read it, but cannot save it. *.dg2 File with a gallery. We recommend to back-up this file constantly! It is in XML format. You can set it in the Environment Setup...Scribble508.

*.dp2

File with a project, it is used by the Version Manager. It is in XML format. If you want to back-up the project, then do the complete directory, that is the file *.dp2 and all the files *.dv2 in that directory.

*.dv2

File with a model included in the project. Format is similar to *.dm2. It has a different suffix because it cannot be opened directly, but only through the Version Manager.

*.ts2

File with system templates. These templates are part of the program distribution. It is in XML format. You can set it in the Environment Setup...Scribble508 .

*.tu2

File with user-defined templates. These templates are edited and managed by the user. We recommend to back the file up constantly. It is in XML format. You can set it in the Environment Setup...Scribble508.

*.dd2

File with exported dictionary. Used for dictionary exchange between models. It is in XML format.

Casestud.exe

The CASE Studio program itself.

Css.chm

This help file.

Templ.chm

Help file with templates description. ( in future versions of CASE Studio )

Relationship Types

Identifying

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 shown in a model with rounded corners.
 
Example:
 
// parent entity
Create Table Invoice(
InvoiceNo integer not null,
ExportDate date,
Primary key (NumberInv)
)
 
// child entity, invoice lines
Create Table InvItem(
InvoiceNo integer not null,
LineNumber integer not null,
Amount money,
Primary key (NumberInv, LineNumber)
)
The line number as a unique record identifier is not enough. The child entity has to help itself with the Invoice number. That is the reason for using the Identifying Relationship. An invoice item cannot exist without the invoice itself, therefore an invoice item is a Dependent entity.

Nonidentifying

Primary key migrates from the parent entity to the child entity and does not become a part of the primary key.

Example:

// parent entity

Create Table AddressBook(
BLN char (8) not null,
Name char (30)
Primary key (BLN)
)
 
// child entity
Create table Invoice (
NumberInv integer not null,
BLN char (8),
Primary key (NumberInv)
)
 
The invoice number (NumberInv) as the Invoice unique identificatier is good enough. Therefore the nonidentifying relationship is used. The BLN is only a foreign key. The invoice can exist without being related to a firm, therefore the invoice is an Independent entity.

Informative

Primary key does not migrate at all, no referential integrity or triggers are generated, it is only information about the existence of some relationship.

Contact

WEB:

www.casestudio.com

E-mail:

info@casestudio.com

or

support@casestudio.com

( for registered users )

 

Please write your question in English or German.
 

Reverse Engineering For Paradox

DIRECTORY LIST

Write in this column a list of all directories you want to load their structure from. Do not forget to add a backslash at the end of each directory. Example: C:\Progam\MyProject\Data\

SETTINGS

Indexes

Structure of indexes is loaded also.

Load directories into storage

A directory, which physically contains a table, is loaded into storage for each entity.

Close when loading is finished

After loading table structures is finished, the window closes automatically.

Buttons:

{bmc CSS_0024.BMP}
Adds a directory to the list.
{bmct CSS_0052.BMP}
Refreshes the list.
{bmct CSS_0054.BMP}
Launches the reverse engineering.
{bmct CSS_0055.BMP}
Opens this help file.

Universal Reverse Engineering

This dialog is reached by the following path: File | Reverse Engineering | Universal Reverse Engineering.

Alias

Select an existing Alias from the drop down list or type a new Alias name. Once all the following options are set, the Alias can be saved by clicking the Save button, {bmc CSS_0025.BMP}.

Execute Script

Select an existing script from the drop down list.

Connection Via

Select a connection method from the drop down list. Click the Build button, {bmct CSS_0053.BMP}, to set the specific parameters needed to connect to the database. You can choose from:
Connection via ADO

(The Connection string shows the present settings. Click the Data link properties button to set the properties necessary to connect to the database using ADO.)

or Connection via ODAC.

User name

Name of user connected to the SQL server

Password

User password

Save Password

Save the password with this Alias.

Settings

Here you can select the database objects to be loaded. The choices vary with the chosen script.

Buttons

Connect

Connecting to the database.

Disconnect

Disconnecting from the database. This button is activated after the connection is completed.

Execute

Launching the reverse engineering. This button is activated after the connection is completed.

Help

Opening this help topic. Close when loading is finished - After the reverse engineering is finished, the window closes automatically. {bmc CSS_0049.BMP}
 

Oracle

DB 2 version 7.1

MySQL 3.23

Obsolete Reverse Engineering

The options appearing under File | Reverse Engineering | Obsolete might or might not work depending on the versions of certain software components installed on your computer. It is strongly recommended that the Universal Reverse Engineering option be used instead. Included under Obsolete are:
Oracle via native link

Hoststring

Type in the Hoststring to Oracle here.

Reverse Engineering For Interbase

Interbase via native link

Database

Path to database file (*.gdb)

User Name

User to log on to the database.

Password

That user's password.

Interbase type

Choice of Interbase 4, 6 and 6. The difference is in the support of declaratory referential integrity.

Entities

The entities found in the database.

Settings

The database objects to be reverse engineered and loaded into the model.

Load Triggers

Loads the triggers.

Load Procedures

Loads the procedures.

Indexes

Loads the indexes.

Collation

Loads the sorting method of attributes.

Character set

Loads the national character set of attributes.

Views

Loads the views.

Permissions

Loads the permissions.
The Interbase is unable to recognize to which attribute the Check constraint belongs. Therefore all the Checks are loaded into the entity trigger.

Interbase via BDE

Alias

Alias from BDE
 
The rest is similar to Interbase through native connection.

Reverse Engineering For MS SQL Server

MS SQL via native link

Database server

Name of database server and the database in format

‹server›:‹database›

MS SQL via ODBC

Alias Name of the data source ODBC ODBC Version Setting of ODBC version installed on your computer. You can try both.

MS SQL via ADO

Reverse Engineering

CASE Studio 2 is able to reverse engineer many different database structures. These databases include Interbase by Borland, SQL Server by Microsoft, Oracle by Oracle, Paradox by Borland, and DB2 by IBM. Other databases which support ODBC could be processed.
 
The reverse engineering process will extract the database's entities, attributes, relationships, indexes, triggers, procedures, and other objects depending on the particular database. Not all of those features are supported by all databases.
 
In addition to being able to work with a number of databases, CASE Studio 2 is able to use a number of different communication methods: ODBC, ADO, ODAC, and direct native connections where appropriate. The choice is your's.
 
When you select Reverse Engineering from the File menu you see the following choices:

Universal Reverse Engineering

A general purpose connection to the database. See Reverse Engineering for SQL ServersScribble1110 for more information.

Paradox

Connection to Paradox databases. See Reverse Engineering for ParadoxScribble1100 for more information.

Interbase via Native Link

Connection to Interbase databases. See Reverse Engineering for InterbaseReverse_Engineering_For_Interbase for more information.

Interbase via BDE

Connection to Interbase databases. See Reverse Engineering for InterbaseReverse_Engineering_For_Interbase for more information.

MS SQL via Native Link

Connection to Microsoft SQL Server databases. See Reverse Engineering for MS SQL ServerReverse_Engineering_For_MS_SQL_Server for more information.

MS SQL via ADO

Connection to Microsoft SQL Server databases using ADO. See Reverse Engineering for SQL ServersScribble1110 for more information.

MS SQL via ODBC

Connection to Microsoft SQL Server databases using ODBC. See Reverse Engineering for SQL ServersScribble1110 for more information.

ADO

Connection to any database using the ADO communication methodology.

Obsolete

This shows you a set of database connections which have been replaced by the Universal Reverse Engineering. They are included here only for compatibility.