Denodo is a Data Virtualization environment that simplifies the process of moving data from one place to another. This is done through configurable layers containing various views, which are based on table definitions that live in source systems. The upper layers of views should represent business needs and require solid data modeling. These layers act as an interface, and are usually designed top-down, meaning fields are first defined and the implementation (data) of the interface is associated later.

Denodo scripts can be generated by CaseTalk. Below you'll find the example model, the relational diagram and the generated Denodo Script.

Facts

[Allocation]

"Student John Hartman was allocated project P203."

"Student Peter Johnson was allocated project P101."

[Birthdate]

"Peter Johnson is born on 01-01-1960."

[Description]

"Project P101 concerns developing a timekeeping system."

"Project P110 concerns introducing an RDBMS into a business."

"Project P120 concerns converting a dBASE system to Foxpro."

"Project P200 concerns developing a technical information system."

"Project P203 concerns writing course material on FCO-IM."

"Project P204 concerns implementing a design for a database."

[Employment]

"Mary Bakeris employed as teacher BAK."

[Mentorship]

"The mentor of student Elsa Doyle is BAK."

"The mentor of student Fred Smith is GPB."

"The mentor of student John Hartman is BLC."

"The mentor of student Maria Jones is VRM."

"The mentor of student Peter Johnson is BLC."

[Preferences]

"The first preference of student John Hartman is project P203."

"The first preference of student Peter Johnson is project P101."

"The second preference of student John Hartman is project P101."

"The second preference of student Peter Johnson is project P203."

"The third preference of student John Hartman is project P200."

"The third preference of student Peter Johnson is project P110."

[Preferred Nouns]

"Peter Johnson is he/him."

[Project]

"The school is offering project P101."

"The school is offering project P110."

"The school is offering project P120."

"The school is offering project P200."

"The school is offering project P203."

"The school is offering project P204."

[Student]

"There is a student Elsa Doyle."

"There is a student Fred Smith."

"There is a student John Hartman."

"There is a student Maria Jones."

"There is a student Peter Johnson."

Generated Denodo VQL

CREATE OR REPLACE MATERIALIZED TABLE t_Person

(

firstname:text,

lastname:text,

Birthdate:text,

noun:text,

teacher_code:text

)

FOLDER = '/CaseTalk//Examples'

DESCRIPTION = '[Requirements]

100% availability

[Expressions]

"<firstname> <lastname> is born on <Birthdate>."

"<firstname> <lastname> is <noun>."

"<firstname> <lastname>is employed as teacher <teacher_code>."

[Rules]

"<Person> is identified by <firstname> and <lastname>."

"<Person> is unique on <teacher_code>."

"<teacher_code> in <Person> is a subset of <Teacher>."

'

CONSTRAINT 'Primary Key' PRIMARY KEY('firstname', 'lastname')

;

INSERT INTO t_Person

(firstname, lastname, Birthdate, noun, teacher_code)

VALUES

('Peter', 'Johnson', '01-01-1960', 'he/him', null),

('Mary', 'Baker', null, null, 'BAK');

CREATE OR REPLACE INTERFACE VIEW e_Person (

   firstname:text, # firstname

   lastname:text, # lastname

   FactExpression:text # Derived from CaseTalk Model Expressions

   FactLocale:text # Derived from CaseTalk Model Expressions

)

SET IMPLEMENTATION v_Person(

   firstname = firstname,

   lastname = lastname,

   FactExpression = concat(

     cast(firstname as varchar), ' ', cast(lastname as varchar), ' is born on ', cast(Birthdate as varchar), '.', '\n',

     cast(firstname as varchar), ' ', cast(lastname as varchar), ' is ', cast(noun as varchar), '\n',

     cast(firstname as varchar), ' ', cast(lastname as varchar), 'is employed as teacher ', cast(teacher_code as varchar))

);

For more technical documentation regarding the creation of virtual views visit: www.denodo.com

If you're interested in more information, or have questions, please contact us.

CaseTalk

We make IT better. Together!