Available since indyco 4.3.0.0


The DDL import is a feature of the web logical builder that enables the conversion of the physical definition of a database into the corresponding logical schema.

Here is a step-by-step guide on how to use this feature.


Import Procedure


- In the main menu go to "File > Import from DDL".



- Filling out the import form:



Project Name: Enter the project name in the designated field.

SQL Dialect: Select the SQL dialect from the dropdown menu. Currently, the only supported dialect is Oracle.

SQL File: Click on Select file and select the .sql file from the appearing window. This file should contain the necessary DDL statements to create and define the database structures.


- Confirming the import:


After filling out all the required fields, click "Next". Indyco will read the SQL file and import the specified schema definitions.


Error Handling during Grammar Parsing


During the process of grammar parsing, if errors are detected, they are reported in a dedicated form that opens after clicking the "Next" button. 


At this point, the user can choose to proceed while ignoring the errors or return to the previous step, this enables them to address the errors or make necessary adjustments before attempting the import again.



Relation inference algorithm

By going in the advanced section, you can enable the relation inference algorithm. By defining prefixes for the tables, the algorithm is able to identify Fact Tables, Dimension Tables, and Foreign Keys (FKs). 

If the same FK appears in both a Fact Table and a Dimension Table, a 1-N relation will be added between Fact and Dimension. 

This way, it is not necessary to explicitly specify all relations; it is sufficient to give 

consistent names to tables fields.


For example, importing following ddl file 

CREATE TABLE FT_ORDERS (
    ID_order VARCHAR2(255),
    customer VARCHAR2(255),
    ID_book VARCHAR2(255)
);

CREATE TABLE DT_BOOK (
  ID_book VARCHAR2(255),
  authName VARCHAR2(255),
  title VARCHAR2(255)
);


specifying respective prefixes



we get the following logical model: