尊敬的 微信汇率:1円 ≈ 0.046078 元 支付宝汇率:1円 ≈ 0.046168元 [退出登录]
SlideShare a Scribd company logo
Code Generation with Oracle SDDM
Rob van den Berg
Code Generation with Oracle SDDM
Presenter information
VX Company IT Services b.v.
Email rvdberg@vxcompany.com
Twitter twitter.com/rob_vd_berg
Blog rvdbergblog.wordpress.com
Code Generation with Oracle SQL Developer Data Modeler
Introduction
SDDM Features supporting Code Generation
Code Generation
Agenda
Oracle SQL Developer Data Modeler
Introduction
Introduction
Oracle SQL Developer Data Modeler
Main Features - Introduction
Last version as of December 21, 2015 is 4.1.3.901
Free
Create, browse and edit relational models
Create, browse and edit multi-dimensional models
Forward and reverse engineering
Integrated source code control
Since July 1, 2009
Jeff Smith
Heli Helskyaho
– This presentation is about Application Code Generation
– Focussing on:
application code that implements Business Rules
– Code as complex as Entity Rules, Inter Entity Rules,
Change Event Rules, etc.
– In short: Code Beyond DDL
– Supporting: thick database design
(Toon Koppelaars, Bryn Llewellyn)
Oracle SQL Developer Data Modeler
Main Features – Introduction – Presentation subject
Oracle SQL Developer Data Modeler
Setting the stage
Features
supporting
Application
Code
Generation
Oracle SQL Developer Data Modeler
Features – “Oh, pretty pictures – I can do that !!”
– ER diagramming (Barker, Bachman or IE notation)
– Engineering to and from relational models
– Supertypes and subtypes, arcs
– Compare and merge with logical model in another design
Oracle SQL Developer Data Modeler
Features – Logical Models
Explore different kinds of modeling!
– Database design and generation tool
– Model driven approach
– Models:
– Logical
– Data types
– Dimensional
– Relational
– Data Flow diagrams
– Physical models
Oracle SQL Developer Data Modeler
Features
Oracle SQL Developer Data Modeler
Features – Other types of models
– Importing – from Designer, Erwin (XML) and more
– Version Support – team development (Subversion)
Oracle SQL Developer Data Modeler
Features – import your model, put it in your VCS
Bring some color to your designs!
Oracle SQL Developer Data Modeler
Features – Logical Models
Oracle SQL Developer Data Modeler
Features – Logical Models – Actual Footage ! Corporate Identity applied !
Barker (Oracle Designer)
Oracle SQL Developer Data Modeler
Features – Logical Models – Actual Footage ! Corporate Identity applied !
Bachman
Barker (Oracle Designer)
Information Engineering
– Subviews can be used to represent objects related to given
subject area
– Subviews can be nested(linked) thus allowing to build
network (or hierarchy) of related subviews – navigation
between linked subviews is supported
Oracle SQL Developer Data Modeler
Features - Subject Area Management
Oracle SQL Developer Data Modeler
Features - Subviews
Do you have naming standards ?
Get some!
– Name structure for elements in Logical and Relational
models
– Model level restrictions for – name length, possible
characters, used letter case
– Name translation during engineering between logical and
relational models
– Naming templates for table constraints and indexes
– Prefix management
Oracle SQL Developer Data Modeler
Features – Naming Standards
Oracle SQL Developer Data Modeler
Features – Naming Standards
Right mouse menu on design
properties->settings->naming standard
Oracle SQL Developer Data Modeler
Features – Naming Standards
– Supports validation rules;
– Easy exchange and synchronization of domains;
– Assignable to group of attributes and columns
in different models;
– Set “Default value” property at domain level. This can be
updated at column/attribute level.
Oracle SQL Developer Data Modeler
Features - Domains
Example:
domain = Country Codes
mandatory = True
values = (NL = The Netherlands, UK = Great Britain)
default = NL
Oracle SQL Developer Data Modeler
Features – Object Model
The design is stored as an object model
That can be manipulated programmatically
(which is NOT the subject of this presentation)
That can be queried programmatically
Which enables you to synthesize PL/SQL scripts based on the
design and each detailed property of the design
Oracle SQL Developer Data Modeler
Relational Model AFTER some tuning ….
Design import needs tuning? Transform !
– A few transformation scripts are pre-supplied
– Like adding default columns to a range of tables, or
– Like re-ordering columns after engineering from logical
– Add your own transformation scripts
Oracle SQL Developer Data Modeler
Features – Relational Models – Transformation scripts
Oracle SQL Developer Data Modeler
Features – Relational Model – Custom Transformation Scripts
Oracle SQL Developer Data Modeler
Features – Relational Model – Custom Transformation Scripts
Oracle SQL Developer Data Modeler
Oracle Nashorn
Oracle SQL Developer Data Modeler
Code Generation
Code
Generation
Transformations is your Code Generator
– Add a custom transformation
– Set it up to output modeled design to the file system
– Model design properties
– Dynamic properties
Oracle SQL Developer Data Modeler
How to generate code
// Code shown below is JavaScript //
application_name = model.getName();
appfolder = "Documents/Oracle/SDDM/sql/"+application_name+"/";
Oracle SQL Developer Data Modeler
Basic setup: generated code output folder
– C:Oracledatamodelerdatamodelerxmlmetadatadoc
– SQLDeveloperDataModelerScripting.docx
– Index.html
Oracle SQL Developer Data Modeler
Object Model definition
// Code shown below is JavaScript //
application_name = model.getName();
appfolder = "Documents/Oracle/SDDM/sql/"+application_name+"/";
Oracle SQL Developer Data Modeler
Basic setup: generated code output folder
// Code shown below is JavaScript //
runFile = new java.io.FileWriter(appfolder+appname+ "_CREATE_ALL.sql");
run = new java.io.PrintWriter(runFile);
run.println("-----------------------------------------------------------");
run.println("-- Version : 1.0.0");
run.println("-- Proces : Zorgsturing");
run.println("-- File-name : <app_alias>_CREATE_ALL.sql");
run.println("-- Creator : Rob van den Berg");
run.println("-- Creation date : "+ today);
run.println("-- Description : Master create script");
run.println("--");
Oracle SQL Developer Data Modeler
Basic setup: include a master script
Oracle SQL Developer Data Modeler
Created Master Script
// Code shown below is (PL/)SQL //
/*
Maintain table level constraints on ZST_VERTALINGEN_MPG
Change History
Who When What
---------------- ---------- --------
Rob van den Berg 12/05/2016 Creation
*/
-- define check constraints
alter table ZST_VERTALINGEN_MPG add constraint ZST_BR_VMP003_TPL check
(datum_einde is null or (datum_ingang <= datum_einde));
Oracle SQL Developer Data Modeler
Implementation of Tuple Rule
Generated script
ZST_VMP_CON.sql
Oracle SQL Developer Data Modeler
Definition of Tuple Rule
// Code shown below is JavaScript //
tables = model.getTableSet().toArray();
for (var t = 0; t<tables.length;t++){
// check constraints
tccs=table.getCheckConstraints().toArray();
for (var n=0;n<tccs.length;n++){
con.println
( "alter table “ + table_name + " add constraint “ +
table.getProperty(tccs[n].getName()) +
" check (" + tccs[n].getRule() + ");"
);
}
}
Oracle SQL Developer Data Modeler
Let’s generate customized script layout for check constraints
– typical Entity Rule “rows should not OVERLAP”
– Which typically presumes data definition of
– Column start_date NOT NULL
– Column end_date
– Some unique key including start_date
next to (optional) columns identifying the group
– Analist would phrase the rule like
“Thou shalt not enter any conflicting time period (for the
group of tuples identified by X, Y, Z”
Oracle SQL Developer Data Modeler
Definition of Entity Rule
Oracle SQL Developer Data Modeler
Definition of Entity Rule: specify the name identifying the rule
// Code shown below is (PL/)SQL //
/*
Maintain Table ZST_VERTALINGEN_MPG
…
…
--define unique key(s)
alter table ZST_VERTALINGEN_MPG add constraint zst_vmp_un1 unique
( bte_id
, mpg_code
, oms_extern
, datum_ingang
);
Oracle SQL Developer Data Modeler
Implementation of Entity Rule: unique key including start_date
Generated script
ZST_VMP_TAB.sql
START_DATE
OVERLAP can still occur
// Code shown below is (PL/)SQL //
create or replace trigger ZST_VMP_BIR
before insert on ZST_VERTALINGEN_MPG
for each row
begin
-- support insert change event
ZST_VMP_PCK.trg_bir
( p_id => :new.ID
…
, p_datum_ingang => :new.DATUM_INGANG
…
, p_datum_einde => :new.DATUM_EINDE
);
end;
/
Oracle SQL Developer Data Modeler
Implementation of Entity Rule
Generated script
ZST_VMP_TRG.sql
START_DATE
END_DATE
– Triggers generated within each trigger definition file:
– Before insert, update, delete statement
– After insert, update, delete statement
– Same for row triggers
Oracle SQL Developer Data Modeler
Implementation of Entity Rule
// Code shown below is (PL/)SQL //
procedure trg_ais
is
begin
check_br_vmp002_ent;
…
end trg_ais;
Oracle SQL Developer Data Modeler
Implementation of Entity Rule
Generated script
ZST_VMP_PCK.sql
// Code shown below is (PL/)SQL //
…
procedure check_br_vmp002_ent
is
-- Check if any time overlap check does not get violated
-- find record overlapping in time
cursor c_overlap
( v_not_id in ZST_VERTALINGEN_MPG.ID%TYPE
, v_bte_id in ZST_VERTALINGEN_MPG.BTE_ID%TYPE
, v_mpg_code in ZST_VERTALINGEN_MPG.MPG_CODE%TYPE
…
…
Oracle SQL Developer Data Modeler
Implementation of Entity Rule
Generated script
ZST_VMP_PCK.sql
Where did that get me
Generating code
– Is efficient
– Follows standards and guidelines
– Leads to maintainable code. No exceptions.
Oracle SQL Developer Data Modeler
Conclusions
Oracle SQL Developer Data Modeler
Agenda
Improvement
s
Oracle SQL Developer Data Modeler
Improvements – documentation
Oracle SQL Developer Data Modeler
Improvements – documentation
Questions?
Code Generation with Oracle SDDM
Presenter information
VX Company IT Services b.v.
Email rvdberg@vxcompany.com
Twitter twitter.com/rob_vd_berg
Blog rvdbergblog.wordpress.com

More Related Content

What's hot

What’s New in Oracle Database 19c - Part 1
What’s New in Oracle Database 19c - Part 1What’s New in Oracle Database 19c - Part 1
What’s New in Oracle Database 19c - Part 1
Satishbabu Gunukula
 
Conférence: Catalyseurs de l'Intelligence Artificielle et Écosystème des Fram...
Conférence: Catalyseurs de l'Intelligence Artificielle et Écosystème des Fram...Conférence: Catalyseurs de l'Intelligence Artificielle et Écosystème des Fram...
Conférence: Catalyseurs de l'Intelligence Artificielle et Écosystème des Fram...
ENSET, Université Hassan II Casablanca
 
MVC in PHP
MVC in PHPMVC in PHP
MVC in PHP
Vineet Kumar Saini
 
Programming in Spark using PySpark
Programming in Spark using PySpark      Programming in Spark using PySpark
Programming in Spark using PySpark
Mostafa
 
Hibernate presentation
Hibernate presentationHibernate presentation
Hibernate presentation
Manav Prasad
 
Spring Meetup Paris - Back to the basics of Spring (Boot)
Spring Meetup Paris - Back to the basics of Spring (Boot)Spring Meetup Paris - Back to the basics of Spring (Boot)
Spring Meetup Paris - Back to the basics of Spring (Boot)
Eric SIBER
 
MAA Best Practices for Oracle Database 19c
MAA Best Practices for Oracle Database 19cMAA Best Practices for Oracle Database 19c
MAA Best Practices for Oracle Database 19c
Markus Michalewicz
 
Scalable Filesystem Metadata Services with RocksDB
Scalable Filesystem Metadata Services with RocksDBScalable Filesystem Metadata Services with RocksDB
Scalable Filesystem Metadata Services with RocksDB
Alluxio, Inc.
 
What to Expect From Oracle database 19c
What to Expect From Oracle database 19cWhat to Expect From Oracle database 19c
What to Expect From Oracle database 19c
Maria Colgan
 
MongoDB.pptx
MongoDB.pptxMongoDB.pptx
MongoDB.pptx
boulonvert
 
Apache kafka meet_up_zurich_at_swissre_from_zero_to_hero_with_kafka_connect_2...
Apache kafka meet_up_zurich_at_swissre_from_zero_to_hero_with_kafka_connect_2...Apache kafka meet_up_zurich_at_swissre_from_zero_to_hero_with_kafka_connect_2...
Apache kafka meet_up_zurich_at_swissre_from_zero_to_hero_with_kafka_connect_2...
confluent
 
Change Data Capture to Data Lakes Using Apache Pulsar and Apache Hudi - Pulsa...
Change Data Capture to Data Lakes Using Apache Pulsar and Apache Hudi - Pulsa...Change Data Capture to Data Lakes Using Apache Pulsar and Apache Hudi - Pulsa...
Change Data Capture to Data Lakes Using Apache Pulsar and Apache Hudi - Pulsa...
StreamNative
 
Support programmation orientée aspect mohamed youssfi (aop)
Support programmation orientée aspect mohamed youssfi (aop)Support programmation orientée aspect mohamed youssfi (aop)
Support programmation orientée aspect mohamed youssfi (aop)
ENSET, Université Hassan II Casablanca
 
Migrating Oracle database to PostgreSQL
Migrating Oracle database to PostgreSQLMigrating Oracle database to PostgreSQL
Migrating Oracle database to PostgreSQL
Umair Mansoob
 
An Intro into webpack
An Intro into webpackAn Intro into webpack
An Intro into webpack
Squash Apps Pvt Ltd
 
[Pgday.Seoul 2017] 7. PostgreSQL DB Tuning 기업사례 - 송춘자
[Pgday.Seoul 2017] 7. PostgreSQL DB Tuning 기업사례 - 송춘자[Pgday.Seoul 2017] 7. PostgreSQL DB Tuning 기업사례 - 송춘자
[Pgday.Seoul 2017] 7. PostgreSQL DB Tuning 기업사례 - 송춘자
PgDay.Seoul
 
Wide Column Store NoSQL vs SQL Data Modeling
Wide Column Store NoSQL vs SQL Data ModelingWide Column Store NoSQL vs SQL Data Modeling
Wide Column Store NoSQL vs SQL Data Modeling
ScyllaDB
 
Spark Summit EU talk by Ted Malaska
Spark Summit EU talk by Ted MalaskaSpark Summit EU talk by Ted Malaska
Spark Summit EU talk by Ted Malaska
Spark Summit
 
Introduction to MariaDB
Introduction to MariaDBIntroduction to MariaDB
Introduction to MariaDB
JongJin Lee
 
Support de cours technologie et application m.youssfi
Support de cours technologie et application m.youssfiSupport de cours technologie et application m.youssfi
Support de cours technologie et application m.youssfi
ENSET, Université Hassan II Casablanca
 

What's hot (20)

What’s New in Oracle Database 19c - Part 1
What’s New in Oracle Database 19c - Part 1What’s New in Oracle Database 19c - Part 1
What’s New in Oracle Database 19c - Part 1
 
Conférence: Catalyseurs de l'Intelligence Artificielle et Écosystème des Fram...
Conférence: Catalyseurs de l'Intelligence Artificielle et Écosystème des Fram...Conférence: Catalyseurs de l'Intelligence Artificielle et Écosystème des Fram...
Conférence: Catalyseurs de l'Intelligence Artificielle et Écosystème des Fram...
 
MVC in PHP
MVC in PHPMVC in PHP
MVC in PHP
 
Programming in Spark using PySpark
Programming in Spark using PySpark      Programming in Spark using PySpark
Programming in Spark using PySpark
 
Hibernate presentation
Hibernate presentationHibernate presentation
Hibernate presentation
 
Spring Meetup Paris - Back to the basics of Spring (Boot)
Spring Meetup Paris - Back to the basics of Spring (Boot)Spring Meetup Paris - Back to the basics of Spring (Boot)
Spring Meetup Paris - Back to the basics of Spring (Boot)
 
MAA Best Practices for Oracle Database 19c
MAA Best Practices for Oracle Database 19cMAA Best Practices for Oracle Database 19c
MAA Best Practices for Oracle Database 19c
 
Scalable Filesystem Metadata Services with RocksDB
Scalable Filesystem Metadata Services with RocksDBScalable Filesystem Metadata Services with RocksDB
Scalable Filesystem Metadata Services with RocksDB
 
What to Expect From Oracle database 19c
What to Expect From Oracle database 19cWhat to Expect From Oracle database 19c
What to Expect From Oracle database 19c
 
MongoDB.pptx
MongoDB.pptxMongoDB.pptx
MongoDB.pptx
 
Apache kafka meet_up_zurich_at_swissre_from_zero_to_hero_with_kafka_connect_2...
Apache kafka meet_up_zurich_at_swissre_from_zero_to_hero_with_kafka_connect_2...Apache kafka meet_up_zurich_at_swissre_from_zero_to_hero_with_kafka_connect_2...
Apache kafka meet_up_zurich_at_swissre_from_zero_to_hero_with_kafka_connect_2...
 
Change Data Capture to Data Lakes Using Apache Pulsar and Apache Hudi - Pulsa...
Change Data Capture to Data Lakes Using Apache Pulsar and Apache Hudi - Pulsa...Change Data Capture to Data Lakes Using Apache Pulsar and Apache Hudi - Pulsa...
Change Data Capture to Data Lakes Using Apache Pulsar and Apache Hudi - Pulsa...
 
Support programmation orientée aspect mohamed youssfi (aop)
Support programmation orientée aspect mohamed youssfi (aop)Support programmation orientée aspect mohamed youssfi (aop)
Support programmation orientée aspect mohamed youssfi (aop)
 
Migrating Oracle database to PostgreSQL
Migrating Oracle database to PostgreSQLMigrating Oracle database to PostgreSQL
Migrating Oracle database to PostgreSQL
 
An Intro into webpack
An Intro into webpackAn Intro into webpack
An Intro into webpack
 
[Pgday.Seoul 2017] 7. PostgreSQL DB Tuning 기업사례 - 송춘자
[Pgday.Seoul 2017] 7. PostgreSQL DB Tuning 기업사례 - 송춘자[Pgday.Seoul 2017] 7. PostgreSQL DB Tuning 기업사례 - 송춘자
[Pgday.Seoul 2017] 7. PostgreSQL DB Tuning 기업사례 - 송춘자
 
Wide Column Store NoSQL vs SQL Data Modeling
Wide Column Store NoSQL vs SQL Data ModelingWide Column Store NoSQL vs SQL Data Modeling
Wide Column Store NoSQL vs SQL Data Modeling
 
Spark Summit EU talk by Ted Malaska
Spark Summit EU talk by Ted MalaskaSpark Summit EU talk by Ted Malaska
Spark Summit EU talk by Ted Malaska
 
Introduction to MariaDB
Introduction to MariaDBIntroduction to MariaDB
Introduction to MariaDB
 
Support de cours technologie et application m.youssfi
Support de cours technologie et application m.youssfiSupport de cours technologie et application m.youssfi
Support de cours technologie et application m.youssfi
 

Viewers also liked

Oracle SQL Developer Data Modeler - Version Control Your Designs
Oracle SQL Developer Data Modeler - Version Control Your DesignsOracle SQL Developer Data Modeler - Version Control Your Designs
Oracle SQL Developer Data Modeler - Version Control Your Designs
Jeff Smith
 
Oracle Sql Developer Data Modeler 3 3 new features
Oracle Sql Developer Data Modeler 3 3 new featuresOracle Sql Developer Data Modeler 3 3 new features
Oracle Sql Developer Data Modeler 3 3 new features
Philip Stoyanov
 
Dimensional modeling in oracle sql developer
Dimensional modeling in oracle sql developerDimensional modeling in oracle sql developer
Dimensional modeling in oracle sql developer
Jeff Smith
 
Oracle Database In-Memory
Oracle Database In-MemoryOracle Database In-Memory
Oracle Database In-Memory
Trivadis
 
Designing for Performance: Database Related Worst Practices
Designing for Performance: Database Related Worst PracticesDesigning for Performance: Database Related Worst Practices
Designing for Performance: Database Related Worst Practices
Christian Antognini
 
Database application and design
Database application and designDatabase application and design
Database application and design
sieedah
 
Pimping SQL Developer and Data Modeler
Pimping SQL Developer and Data ModelerPimping SQL Developer and Data Modeler
Pimping SQL Developer and Data Modeler
Kris Rice
 
Heli data modeler wildcard2013
Heli data modeler wildcard2013Heli data modeler wildcard2013
Heli data modeler wildcard2013
Andrejs Vorobjovs
 
Your favorite data modeling tool, your partner in crime for Data Warehouse Au...
Your favorite data modeling tool, your partner in crime for Data Warehouse Au...Your favorite data modeling tool, your partner in crime for Data Warehouse Au...
Your favorite data modeling tool, your partner in crime for Data Warehouse Au...
FrederikN
 
My Favorite Oracle SQL Developer Data Modeler Features
My Favorite Oracle SQL Developer Data Modeler FeaturesMy Favorite Oracle SQL Developer Data Modeler Features
My Favorite Oracle SQL Developer Data Modeler Features
Jeff Smith
 
Data control
Data controlData control
Data control
Kyle Hailey
 
Oracle SQL Developer for SQL Server?
Oracle SQL Developer for SQL Server?Oracle SQL Developer for SQL Server?
Oracle SQL Developer for SQL Server?
Jeff Smith
 
PL/SQL All the Things in Oracle SQL Developer
PL/SQL All the Things in Oracle SQL DeveloperPL/SQL All the Things in Oracle SQL Developer
PL/SQL All the Things in Oracle SQL Developer
Jeff Smith
 
Worst Practices in Data Warehouse Design
Worst Practices in Data Warehouse DesignWorst Practices in Data Warehouse Design
Worst Practices in Data Warehouse Design
Kent Graziano
 
Exploring Oracle Database Performance Tuning Best Practices for DBAs and Deve...
Exploring Oracle Database Performance Tuning Best Practices for DBAs and Deve...Exploring Oracle Database Performance Tuning Best Practices for DBAs and Deve...
Exploring Oracle Database Performance Tuning Best Practices for DBAs and Deve...
Aaron Shilo
 
Standards for Production Allocation
Standards for Production AllocationStandards for Production Allocation
Standards for Production Allocation
EnergySys Limited
 
Oracle SQL Developer for the DBA
Oracle SQL Developer for the DBAOracle SQL Developer for the DBA
Oracle SQL Developer for the DBA
Jeff Smith
 
Pennsylvania Banner User Group Webinar: Oracle SQL Developer Tips & Tricks
Pennsylvania Banner User Group Webinar: Oracle SQL Developer Tips & TricksPennsylvania Banner User Group Webinar: Oracle SQL Developer Tips & Tricks
Pennsylvania Banner User Group Webinar: Oracle SQL Developer Tips & Tricks
Jeff Smith
 
Visual Data Vault
Visual Data VaultVisual Data Vault
Visual Data Vault
Michael Olschimke
 
Data Vault: Data Warehouse Design Goes Agile
Data Vault: Data Warehouse Design Goes AgileData Vault: Data Warehouse Design Goes Agile
Data Vault: Data Warehouse Design Goes Agile
Daniel Upton
 

Viewers also liked (20)

Oracle SQL Developer Data Modeler - Version Control Your Designs
Oracle SQL Developer Data Modeler - Version Control Your DesignsOracle SQL Developer Data Modeler - Version Control Your Designs
Oracle SQL Developer Data Modeler - Version Control Your Designs
 
Oracle Sql Developer Data Modeler 3 3 new features
Oracle Sql Developer Data Modeler 3 3 new featuresOracle Sql Developer Data Modeler 3 3 new features
Oracle Sql Developer Data Modeler 3 3 new features
 
Dimensional modeling in oracle sql developer
Dimensional modeling in oracle sql developerDimensional modeling in oracle sql developer
Dimensional modeling in oracle sql developer
 
Oracle Database In-Memory
Oracle Database In-MemoryOracle Database In-Memory
Oracle Database In-Memory
 
Designing for Performance: Database Related Worst Practices
Designing for Performance: Database Related Worst PracticesDesigning for Performance: Database Related Worst Practices
Designing for Performance: Database Related Worst Practices
 
Database application and design
Database application and designDatabase application and design
Database application and design
 
Pimping SQL Developer and Data Modeler
Pimping SQL Developer and Data ModelerPimping SQL Developer and Data Modeler
Pimping SQL Developer and Data Modeler
 
Heli data modeler wildcard2013
Heli data modeler wildcard2013Heli data modeler wildcard2013
Heli data modeler wildcard2013
 
Your favorite data modeling tool, your partner in crime for Data Warehouse Au...
Your favorite data modeling tool, your partner in crime for Data Warehouse Au...Your favorite data modeling tool, your partner in crime for Data Warehouse Au...
Your favorite data modeling tool, your partner in crime for Data Warehouse Au...
 
My Favorite Oracle SQL Developer Data Modeler Features
My Favorite Oracle SQL Developer Data Modeler FeaturesMy Favorite Oracle SQL Developer Data Modeler Features
My Favorite Oracle SQL Developer Data Modeler Features
 
Data control
Data controlData control
Data control
 
Oracle SQL Developer for SQL Server?
Oracle SQL Developer for SQL Server?Oracle SQL Developer for SQL Server?
Oracle SQL Developer for SQL Server?
 
PL/SQL All the Things in Oracle SQL Developer
PL/SQL All the Things in Oracle SQL DeveloperPL/SQL All the Things in Oracle SQL Developer
PL/SQL All the Things in Oracle SQL Developer
 
Worst Practices in Data Warehouse Design
Worst Practices in Data Warehouse DesignWorst Practices in Data Warehouse Design
Worst Practices in Data Warehouse Design
 
Exploring Oracle Database Performance Tuning Best Practices for DBAs and Deve...
Exploring Oracle Database Performance Tuning Best Practices for DBAs and Deve...Exploring Oracle Database Performance Tuning Best Practices for DBAs and Deve...
Exploring Oracle Database Performance Tuning Best Practices for DBAs and Deve...
 
Standards for Production Allocation
Standards for Production AllocationStandards for Production Allocation
Standards for Production Allocation
 
Oracle SQL Developer for the DBA
Oracle SQL Developer for the DBAOracle SQL Developer for the DBA
Oracle SQL Developer for the DBA
 
Pennsylvania Banner User Group Webinar: Oracle SQL Developer Tips & Tricks
Pennsylvania Banner User Group Webinar: Oracle SQL Developer Tips & TricksPennsylvania Banner User Group Webinar: Oracle SQL Developer Tips & Tricks
Pennsylvania Banner User Group Webinar: Oracle SQL Developer Tips & Tricks
 
Visual Data Vault
Visual Data VaultVisual Data Vault
Visual Data Vault
 
Data Vault: Data Warehouse Design Goes Agile
Data Vault: Data Warehouse Design Goes AgileData Vault: Data Warehouse Design Goes Agile
Data Vault: Data Warehouse Design Goes Agile
 

Similar to Generating Code with Oracle SQL Developer Data Modeler

Day2
Day2Day2
Bring your code to explore the Azure Data Lake: Execute your .NET/Python/R co...
Bring your code to explore the Azure Data Lake: Execute your .NET/Python/R co...Bring your code to explore the Azure Data Lake: Execute your .NET/Python/R co...
Bring your code to explore the Azure Data Lake: Execute your .NET/Python/R co...
Michael Rys
 
Rajnish singh(presentation on oracle )
Rajnish singh(presentation on  oracle )Rajnish singh(presentation on  oracle )
Rajnish singh(presentation on oracle )
Rajput Rajnish
 
Rapid SQL Datasheet - The Intelligent IDE for SQL Development
Rapid SQL Datasheet - The Intelligent IDE for SQL DevelopmentRapid SQL Datasheet - The Intelligent IDE for SQL Development
Rapid SQL Datasheet - The Intelligent IDE for SQL Development
Embarcadero Technologies
 
Access Data from XPages with the Relational Controls
Access Data from XPages with the Relational ControlsAccess Data from XPages with the Relational Controls
Access Data from XPages with the Relational Controls
Teamstudio
 
Hamburg Data Science Meetup - MLOps with a Feature Store
Hamburg Data Science Meetup - MLOps with a Feature StoreHamburg Data Science Meetup - MLOps with a Feature Store
Hamburg Data Science Meetup - MLOps with a Feature Store
Moritz Meister
 
BI 2008 Simple
BI 2008 SimpleBI 2008 Simple
BI 2008 Simple
llangit
 
Analytics Metrics delivery and ML Feature visualization: Evolution of Data Pl...
Analytics Metrics delivery and ML Feature visualization: Evolution of Data Pl...Analytics Metrics delivery and ML Feature visualization: Evolution of Data Pl...
Analytics Metrics delivery and ML Feature visualization: Evolution of Data Pl...
Chester Chen
 
Tips and Tricks for Toad
Tips and Tricks for ToadTips and Tricks for Toad
Tips and Tricks for Toad
Aflex Distribution
 
resume
resumeresume
Be a database professional
Be a database professionalBe a database professional
Be a database professional
Sayed Ahmed
 
Data modeling star schema
Data modeling star schemaData modeling star schema
Data modeling star schema
Sayed Ahmed
 
Be a database professional
Be a database professionalBe a database professional
Be a database professional
Sayed Ahmed
 
Continuous Integration and the Data Warehouse - PASS SQL Saturday Slovenia
Continuous Integration and the Data Warehouse - PASS SQL Saturday SloveniaContinuous Integration and the Data Warehouse - PASS SQL Saturday Slovenia
Continuous Integration and the Data Warehouse - PASS SQL Saturday Slovenia
Dr. John Tunnicliffe
 
Continuous Integration and the Data Warehouse - PASS SQL Saturday Slovenia
Continuous Integration and the Data Warehouse - PASS SQL Saturday SloveniaContinuous Integration and the Data Warehouse - PASS SQL Saturday Slovenia
Continuous Integration and the Data Warehouse - PASS SQL Saturday Slovenia
Dr. John Tunnicliffe
 
SQLCLR For DBAs and Developers
SQLCLR For DBAs and DevelopersSQLCLR For DBAs and Developers
SQLCLR For DBAs and Developers
webhostingguy
 
Dr. Jekyll and Mr. Hyde
Dr. Jekyll and Mr. HydeDr. Jekyll and Mr. Hyde
Dr. Jekyll and Mr. Hyde
webhostingguy
 
Sql Injection and Entity Frameworks
Sql Injection and Entity FrameworksSql Injection and Entity Frameworks
Sql Injection and Entity Frameworks
Rich Helton
 
Ow
OwOw
Plantilla oracle
Plantilla oraclePlantilla oracle
Plantilla oracle
Uriel Barrales Garrido
 

Similar to Generating Code with Oracle SQL Developer Data Modeler (20)

Day2
Day2Day2
Day2
 
Bring your code to explore the Azure Data Lake: Execute your .NET/Python/R co...
Bring your code to explore the Azure Data Lake: Execute your .NET/Python/R co...Bring your code to explore the Azure Data Lake: Execute your .NET/Python/R co...
Bring your code to explore the Azure Data Lake: Execute your .NET/Python/R co...
 
Rajnish singh(presentation on oracle )
Rajnish singh(presentation on  oracle )Rajnish singh(presentation on  oracle )
Rajnish singh(presentation on oracle )
 
Rapid SQL Datasheet - The Intelligent IDE for SQL Development
Rapid SQL Datasheet - The Intelligent IDE for SQL DevelopmentRapid SQL Datasheet - The Intelligent IDE for SQL Development
Rapid SQL Datasheet - The Intelligent IDE for SQL Development
 
Access Data from XPages with the Relational Controls
Access Data from XPages with the Relational ControlsAccess Data from XPages with the Relational Controls
Access Data from XPages with the Relational Controls
 
Hamburg Data Science Meetup - MLOps with a Feature Store
Hamburg Data Science Meetup - MLOps with a Feature StoreHamburg Data Science Meetup - MLOps with a Feature Store
Hamburg Data Science Meetup - MLOps with a Feature Store
 
BI 2008 Simple
BI 2008 SimpleBI 2008 Simple
BI 2008 Simple
 
Analytics Metrics delivery and ML Feature visualization: Evolution of Data Pl...
Analytics Metrics delivery and ML Feature visualization: Evolution of Data Pl...Analytics Metrics delivery and ML Feature visualization: Evolution of Data Pl...
Analytics Metrics delivery and ML Feature visualization: Evolution of Data Pl...
 
Tips and Tricks for Toad
Tips and Tricks for ToadTips and Tricks for Toad
Tips and Tricks for Toad
 
resume
resumeresume
resume
 
Be a database professional
Be a database professionalBe a database professional
Be a database professional
 
Data modeling star schema
Data modeling star schemaData modeling star schema
Data modeling star schema
 
Be a database professional
Be a database professionalBe a database professional
Be a database professional
 
Continuous Integration and the Data Warehouse - PASS SQL Saturday Slovenia
Continuous Integration and the Data Warehouse - PASS SQL Saturday SloveniaContinuous Integration and the Data Warehouse - PASS SQL Saturday Slovenia
Continuous Integration and the Data Warehouse - PASS SQL Saturday Slovenia
 
Continuous Integration and the Data Warehouse - PASS SQL Saturday Slovenia
Continuous Integration and the Data Warehouse - PASS SQL Saturday SloveniaContinuous Integration and the Data Warehouse - PASS SQL Saturday Slovenia
Continuous Integration and the Data Warehouse - PASS SQL Saturday Slovenia
 
SQLCLR For DBAs and Developers
SQLCLR For DBAs and DevelopersSQLCLR For DBAs and Developers
SQLCLR For DBAs and Developers
 
Dr. Jekyll and Mr. Hyde
Dr. Jekyll and Mr. HydeDr. Jekyll and Mr. Hyde
Dr. Jekyll and Mr. Hyde
 
Sql Injection and Entity Frameworks
Sql Injection and Entity FrameworksSql Injection and Entity Frameworks
Sql Injection and Entity Frameworks
 
Ow
OwOw
Ow
 
Plantilla oracle
Plantilla oraclePlantilla oracle
Plantilla oracle
 

Recently uploaded

AI WITH THE HELP OF NAGALAND CAN WIN. DOWNLOAD NOW
AI WITH THE HELP OF NAGALAND CAN WIN. DOWNLOAD NOWAI WITH THE HELP OF NAGALAND CAN WIN. DOWNLOAD NOW
AI WITH THE HELP OF NAGALAND CAN WIN. DOWNLOAD NOW
arash10gamer
 
🔥Night Call Girls Pune 💯Call Us 🔝 7014168258 🔝💃Independent Pune Escorts Servi...
🔥Night Call Girls Pune 💯Call Us 🔝 7014168258 🔝💃Independent Pune Escorts Servi...🔥Night Call Girls Pune 💯Call Us 🔝 7014168258 🔝💃Independent Pune Escorts Servi...
🔥Night Call Girls Pune 💯Call Us 🔝 7014168258 🔝💃Independent Pune Escorts Servi...
yuvishachadda
 
Difference in Differences - Does Strict Speed Limit Restrictions Reduce Road ...
Difference in Differences - Does Strict Speed Limit Restrictions Reduce Road ...Difference in Differences - Does Strict Speed Limit Restrictions Reduce Road ...
Difference in Differences - Does Strict Speed Limit Restrictions Reduce Road ...
ThinkInnovation
 
🔥Mature Women / Aunty Call Girl Chennai 💯Call Us 🔝 8094342248 🔝💃Top Class Cal...
🔥Mature Women / Aunty Call Girl Chennai 💯Call Us 🔝 8094342248 🔝💃Top Class Cal...🔥Mature Women / Aunty Call Girl Chennai 💯Call Us 🔝 8094342248 🔝💃Top Class Cal...
🔥Mature Women / Aunty Call Girl Chennai 💯Call Us 🔝 8094342248 🔝💃Top Class Cal...
shivangimorya083
 
Erotic Call Girls Hyderabad🫱9352988975🫲 High Quality Call Girl Service Right ...
Erotic Call Girls Hyderabad🫱9352988975🫲 High Quality Call Girl Service Right ...Erotic Call Girls Hyderabad🫱9352988975🫲 High Quality Call Girl Service Right ...
Erotic Call Girls Hyderabad🫱9352988975🫲 High Quality Call Girl Service Right ...
meenusingh4354543
 
Interview Methods - Marital and Family Therapy and Counselling - Psychology S...
Interview Methods - Marital and Family Therapy and Counselling - Psychology S...Interview Methods - Marital and Family Therapy and Counselling - Psychology S...
Interview Methods - Marital and Family Therapy and Counselling - Psychology S...
PsychoTech Services
 
Call Girls In Tirunelveli 👯‍♀️ 7339748667 🔥 Safe Housewife Call Girl Service ...
Call Girls In Tirunelveli 👯‍♀️ 7339748667 🔥 Safe Housewife Call Girl Service ...Call Girls In Tirunelveli 👯‍♀️ 7339748667 🔥 Safe Housewife Call Girl Service ...
Call Girls In Tirunelveli 👯‍♀️ 7339748667 🔥 Safe Housewife Call Girl Service ...
wwefun9823#S0007
 
Salesforce AI + Data Community Tour Slides - Canarias
Salesforce AI + Data Community Tour Slides - CanariasSalesforce AI + Data Community Tour Slides - Canarias
Salesforce AI + Data Community Tour Slides - Canarias
davidpietrzykowski1
 
Call Girls Goa (india) ☎️ +91-7426014248 Goa Call Girl
Call Girls Goa (india) ☎️ +91-7426014248 Goa Call GirlCall Girls Goa (india) ☎️ +91-7426014248 Goa Call Girl
Call Girls Goa (india) ☎️ +91-7426014248 Goa Call Girl
sapna sharmap11
 
Call Girls Goa👉9024918724👉Low Rate Escorts in Goa 💃 Available 24/7
Call Girls Goa👉9024918724👉Low Rate Escorts in Goa 💃 Available 24/7Call Girls Goa👉9024918724👉Low Rate Escorts in Goa 💃 Available 24/7
Call Girls Goa👉9024918724👉Low Rate Escorts in Goa 💃 Available 24/7
nitachopra
 
Call Girls Hyderabad (india) ☎️ +91-7426014248 Hyderabad Call Girl
Call Girls Hyderabad  (india) ☎️ +91-7426014248 Hyderabad  Call GirlCall Girls Hyderabad  (india) ☎️ +91-7426014248 Hyderabad  Call Girl
Call Girls Hyderabad (india) ☎️ +91-7426014248 Hyderabad Call Girl
sapna sharmap11
 
Bangalore Call Girls ♠ 9079923931 ♠ Beautiful Call Girls In Bangalore
Bangalore Call Girls  ♠ 9079923931 ♠ Beautiful Call Girls In BangaloreBangalore Call Girls  ♠ 9079923931 ♠ Beautiful Call Girls In Bangalore
Bangalore Call Girls ♠ 9079923931 ♠ Beautiful Call Girls In Bangalore
yashusingh54876
 
Classifying Shooting Incident Fatality in New York project presentation
Classifying Shooting Incident Fatality in New York project presentationClassifying Shooting Incident Fatality in New York project presentation
Classifying Shooting Incident Fatality in New York project presentation
Boston Institute of Analytics
 
Hot Call Girls In Bangalore 🔥 9352988975 🔥 Real Fun With Sexual Girl Availabl...
Hot Call Girls In Bangalore 🔥 9352988975 🔥 Real Fun With Sexual Girl Availabl...Hot Call Girls In Bangalore 🔥 9352988975 🔥 Real Fun With Sexual Girl Availabl...
Hot Call Girls In Bangalore 🔥 9352988975 🔥 Real Fun With Sexual Girl Availabl...
nainasharmans346
 
CAP Excel Formulas & Functions July - Copy (4).pdf
CAP Excel Formulas & Functions July - Copy (4).pdfCAP Excel Formulas & Functions July - Copy (4).pdf
CAP Excel Formulas & Functions July - Copy (4).pdf
frp60658
 
Hyderabad Call Girls Service 🔥 9352988975 🔥 High Profile Call Girls Hyderabad
Hyderabad Call Girls Service 🔥 9352988975 🔥 High Profile Call Girls HyderabadHyderabad Call Girls Service 🔥 9352988975 🔥 High Profile Call Girls Hyderabad
Hyderabad Call Girls Service 🔥 9352988975 🔥 High Profile Call Girls Hyderabad
binna singh$A17
 
Fabric Engineering Deep Dive Keynote from Fabric Engineering Roadshow
Fabric Engineering Deep Dive Keynote from Fabric Engineering RoadshowFabric Engineering Deep Dive Keynote from Fabric Engineering Roadshow
Fabric Engineering Deep Dive Keynote from Fabric Engineering Roadshow
Gabi Münster
 
Optimizing Feldera: Integrating Advanced UDFs and Enhanced SQL Functionality ...
Optimizing Feldera: Integrating Advanced UDFs and Enhanced SQL Functionality ...Optimizing Feldera: Integrating Advanced UDFs and Enhanced SQL Functionality ...
Optimizing Feldera: Integrating Advanced UDFs and Enhanced SQL Functionality ...
mparmparousiskostas
 
Mumbai Central Call Girls ☑ +91-9833325238 ☑ Available Hot Girls Aunty Book Now
Mumbai Central Call Girls ☑ +91-9833325238 ☑ Available Hot Girls Aunty Book NowMumbai Central Call Girls ☑ +91-9833325238 ☑ Available Hot Girls Aunty Book Now
Mumbai Central Call Girls ☑ +91-9833325238 ☑ Available Hot Girls Aunty Book Now
radhika ansal $A12
 
IBM watsonx.data - Seller Enablement Deck.PPTX
IBM watsonx.data - Seller Enablement Deck.PPTXIBM watsonx.data - Seller Enablement Deck.PPTX
IBM watsonx.data - Seller Enablement Deck.PPTX
EbtsamRashed
 

Recently uploaded (20)

AI WITH THE HELP OF NAGALAND CAN WIN. DOWNLOAD NOW
AI WITH THE HELP OF NAGALAND CAN WIN. DOWNLOAD NOWAI WITH THE HELP OF NAGALAND CAN WIN. DOWNLOAD NOW
AI WITH THE HELP OF NAGALAND CAN WIN. DOWNLOAD NOW
 
🔥Night Call Girls Pune 💯Call Us 🔝 7014168258 🔝💃Independent Pune Escorts Servi...
🔥Night Call Girls Pune 💯Call Us 🔝 7014168258 🔝💃Independent Pune Escorts Servi...🔥Night Call Girls Pune 💯Call Us 🔝 7014168258 🔝💃Independent Pune Escorts Servi...
🔥Night Call Girls Pune 💯Call Us 🔝 7014168258 🔝💃Independent Pune Escorts Servi...
 
Difference in Differences - Does Strict Speed Limit Restrictions Reduce Road ...
Difference in Differences - Does Strict Speed Limit Restrictions Reduce Road ...Difference in Differences - Does Strict Speed Limit Restrictions Reduce Road ...
Difference in Differences - Does Strict Speed Limit Restrictions Reduce Road ...
 
🔥Mature Women / Aunty Call Girl Chennai 💯Call Us 🔝 8094342248 🔝💃Top Class Cal...
🔥Mature Women / Aunty Call Girl Chennai 💯Call Us 🔝 8094342248 🔝💃Top Class Cal...🔥Mature Women / Aunty Call Girl Chennai 💯Call Us 🔝 8094342248 🔝💃Top Class Cal...
🔥Mature Women / Aunty Call Girl Chennai 💯Call Us 🔝 8094342248 🔝💃Top Class Cal...
 
Erotic Call Girls Hyderabad🫱9352988975🫲 High Quality Call Girl Service Right ...
Erotic Call Girls Hyderabad🫱9352988975🫲 High Quality Call Girl Service Right ...Erotic Call Girls Hyderabad🫱9352988975🫲 High Quality Call Girl Service Right ...
Erotic Call Girls Hyderabad🫱9352988975🫲 High Quality Call Girl Service Right ...
 
Interview Methods - Marital and Family Therapy and Counselling - Psychology S...
Interview Methods - Marital and Family Therapy and Counselling - Psychology S...Interview Methods - Marital and Family Therapy and Counselling - Psychology S...
Interview Methods - Marital and Family Therapy and Counselling - Psychology S...
 
Call Girls In Tirunelveli 👯‍♀️ 7339748667 🔥 Safe Housewife Call Girl Service ...
Call Girls In Tirunelveli 👯‍♀️ 7339748667 🔥 Safe Housewife Call Girl Service ...Call Girls In Tirunelveli 👯‍♀️ 7339748667 🔥 Safe Housewife Call Girl Service ...
Call Girls In Tirunelveli 👯‍♀️ 7339748667 🔥 Safe Housewife Call Girl Service ...
 
Salesforce AI + Data Community Tour Slides - Canarias
Salesforce AI + Data Community Tour Slides - CanariasSalesforce AI + Data Community Tour Slides - Canarias
Salesforce AI + Data Community Tour Slides - Canarias
 
Call Girls Goa (india) ☎️ +91-7426014248 Goa Call Girl
Call Girls Goa (india) ☎️ +91-7426014248 Goa Call GirlCall Girls Goa (india) ☎️ +91-7426014248 Goa Call Girl
Call Girls Goa (india) ☎️ +91-7426014248 Goa Call Girl
 
Call Girls Goa👉9024918724👉Low Rate Escorts in Goa 💃 Available 24/7
Call Girls Goa👉9024918724👉Low Rate Escorts in Goa 💃 Available 24/7Call Girls Goa👉9024918724👉Low Rate Escorts in Goa 💃 Available 24/7
Call Girls Goa👉9024918724👉Low Rate Escorts in Goa 💃 Available 24/7
 
Call Girls Hyderabad (india) ☎️ +91-7426014248 Hyderabad Call Girl
Call Girls Hyderabad  (india) ☎️ +91-7426014248 Hyderabad  Call GirlCall Girls Hyderabad  (india) ☎️ +91-7426014248 Hyderabad  Call Girl
Call Girls Hyderabad (india) ☎️ +91-7426014248 Hyderabad Call Girl
 
Bangalore Call Girls ♠ 9079923931 ♠ Beautiful Call Girls In Bangalore
Bangalore Call Girls  ♠ 9079923931 ♠ Beautiful Call Girls In BangaloreBangalore Call Girls  ♠ 9079923931 ♠ Beautiful Call Girls In Bangalore
Bangalore Call Girls ♠ 9079923931 ♠ Beautiful Call Girls In Bangalore
 
Classifying Shooting Incident Fatality in New York project presentation
Classifying Shooting Incident Fatality in New York project presentationClassifying Shooting Incident Fatality in New York project presentation
Classifying Shooting Incident Fatality in New York project presentation
 
Hot Call Girls In Bangalore 🔥 9352988975 🔥 Real Fun With Sexual Girl Availabl...
Hot Call Girls In Bangalore 🔥 9352988975 🔥 Real Fun With Sexual Girl Availabl...Hot Call Girls In Bangalore 🔥 9352988975 🔥 Real Fun With Sexual Girl Availabl...
Hot Call Girls In Bangalore 🔥 9352988975 🔥 Real Fun With Sexual Girl Availabl...
 
CAP Excel Formulas & Functions July - Copy (4).pdf
CAP Excel Formulas & Functions July - Copy (4).pdfCAP Excel Formulas & Functions July - Copy (4).pdf
CAP Excel Formulas & Functions July - Copy (4).pdf
 
Hyderabad Call Girls Service 🔥 9352988975 🔥 High Profile Call Girls Hyderabad
Hyderabad Call Girls Service 🔥 9352988975 🔥 High Profile Call Girls HyderabadHyderabad Call Girls Service 🔥 9352988975 🔥 High Profile Call Girls Hyderabad
Hyderabad Call Girls Service 🔥 9352988975 🔥 High Profile Call Girls Hyderabad
 
Fabric Engineering Deep Dive Keynote from Fabric Engineering Roadshow
Fabric Engineering Deep Dive Keynote from Fabric Engineering RoadshowFabric Engineering Deep Dive Keynote from Fabric Engineering Roadshow
Fabric Engineering Deep Dive Keynote from Fabric Engineering Roadshow
 
Optimizing Feldera: Integrating Advanced UDFs and Enhanced SQL Functionality ...
Optimizing Feldera: Integrating Advanced UDFs and Enhanced SQL Functionality ...Optimizing Feldera: Integrating Advanced UDFs and Enhanced SQL Functionality ...
Optimizing Feldera: Integrating Advanced UDFs and Enhanced SQL Functionality ...
 
Mumbai Central Call Girls ☑ +91-9833325238 ☑ Available Hot Girls Aunty Book Now
Mumbai Central Call Girls ☑ +91-9833325238 ☑ Available Hot Girls Aunty Book NowMumbai Central Call Girls ☑ +91-9833325238 ☑ Available Hot Girls Aunty Book Now
Mumbai Central Call Girls ☑ +91-9833325238 ☑ Available Hot Girls Aunty Book Now
 
IBM watsonx.data - Seller Enablement Deck.PPTX
IBM watsonx.data - Seller Enablement Deck.PPTXIBM watsonx.data - Seller Enablement Deck.PPTX
IBM watsonx.data - Seller Enablement Deck.PPTX
 

Generating Code with Oracle SQL Developer Data Modeler

  • 1.
  • 2. Code Generation with Oracle SDDM Rob van den Berg
  • 3. Code Generation with Oracle SDDM Presenter information VX Company IT Services b.v. Email rvdberg@vxcompany.com Twitter twitter.com/rob_vd_berg Blog rvdbergblog.wordpress.com
  • 4. Code Generation with Oracle SQL Developer Data Modeler Introduction SDDM Features supporting Code Generation Code Generation Agenda
  • 5. Oracle SQL Developer Data Modeler Introduction Introduction
  • 6. Oracle SQL Developer Data Modeler Main Features - Introduction Last version as of December 21, 2015 is 4.1.3.901 Free Create, browse and edit relational models Create, browse and edit multi-dimensional models Forward and reverse engineering Integrated source code control Since July 1, 2009 Jeff Smith Heli Helskyaho
  • 7. – This presentation is about Application Code Generation – Focussing on: application code that implements Business Rules – Code as complex as Entity Rules, Inter Entity Rules, Change Event Rules, etc. – In short: Code Beyond DDL – Supporting: thick database design (Toon Koppelaars, Bryn Llewellyn) Oracle SQL Developer Data Modeler Main Features – Introduction – Presentation subject
  • 8. Oracle SQL Developer Data Modeler Setting the stage Features supporting Application Code Generation
  • 9. Oracle SQL Developer Data Modeler Features – “Oh, pretty pictures – I can do that !!”
  • 10. – ER diagramming (Barker, Bachman or IE notation) – Engineering to and from relational models – Supertypes and subtypes, arcs – Compare and merge with logical model in another design Oracle SQL Developer Data Modeler Features – Logical Models
  • 11. Explore different kinds of modeling!
  • 12. – Database design and generation tool – Model driven approach – Models: – Logical – Data types – Dimensional – Relational – Data Flow diagrams – Physical models Oracle SQL Developer Data Modeler Features
  • 13. Oracle SQL Developer Data Modeler Features – Other types of models
  • 14. – Importing – from Designer, Erwin (XML) and more – Version Support – team development (Subversion) Oracle SQL Developer Data Modeler Features – import your model, put it in your VCS
  • 15. Bring some color to your designs!
  • 16. Oracle SQL Developer Data Modeler Features – Logical Models
  • 17. Oracle SQL Developer Data Modeler Features – Logical Models – Actual Footage ! Corporate Identity applied ! Barker (Oracle Designer)
  • 18. Oracle SQL Developer Data Modeler Features – Logical Models – Actual Footage ! Corporate Identity applied ! Bachman Barker (Oracle Designer) Information Engineering
  • 19. – Subviews can be used to represent objects related to given subject area – Subviews can be nested(linked) thus allowing to build network (or hierarchy) of related subviews – navigation between linked subviews is supported Oracle SQL Developer Data Modeler Features - Subject Area Management
  • 20. Oracle SQL Developer Data Modeler Features - Subviews
  • 21. Do you have naming standards ? Get some!
  • 22. – Name structure for elements in Logical and Relational models – Model level restrictions for – name length, possible characters, used letter case – Name translation during engineering between logical and relational models – Naming templates for table constraints and indexes – Prefix management Oracle SQL Developer Data Modeler Features – Naming Standards
  • 23. Oracle SQL Developer Data Modeler Features – Naming Standards Right mouse menu on design properties->settings->naming standard
  • 24. Oracle SQL Developer Data Modeler Features – Naming Standards
  • 25. – Supports validation rules; – Easy exchange and synchronization of domains; – Assignable to group of attributes and columns in different models; – Set “Default value” property at domain level. This can be updated at column/attribute level. Oracle SQL Developer Data Modeler Features - Domains Example: domain = Country Codes mandatory = True values = (NL = The Netherlands, UK = Great Britain) default = NL
  • 26. Oracle SQL Developer Data Modeler Features – Object Model The design is stored as an object model That can be manipulated programmatically (which is NOT the subject of this presentation) That can be queried programmatically Which enables you to synthesize PL/SQL scripts based on the design and each detailed property of the design
  • 27. Oracle SQL Developer Data Modeler Relational Model AFTER some tuning ….
  • 28. Design import needs tuning? Transform !
  • 29. – A few transformation scripts are pre-supplied – Like adding default columns to a range of tables, or – Like re-ordering columns after engineering from logical – Add your own transformation scripts Oracle SQL Developer Data Modeler Features – Relational Models – Transformation scripts
  • 30. Oracle SQL Developer Data Modeler Features – Relational Model – Custom Transformation Scripts
  • 31. Oracle SQL Developer Data Modeler Features – Relational Model – Custom Transformation Scripts
  • 32. Oracle SQL Developer Data Modeler Oracle Nashorn
  • 33. Oracle SQL Developer Data Modeler Code Generation Code Generation
  • 34. Transformations is your Code Generator
  • 35. – Add a custom transformation – Set it up to output modeled design to the file system – Model design properties – Dynamic properties Oracle SQL Developer Data Modeler How to generate code
  • 36. // Code shown below is JavaScript // application_name = model.getName(); appfolder = "Documents/Oracle/SDDM/sql/"+application_name+"/"; Oracle SQL Developer Data Modeler Basic setup: generated code output folder
  • 37. – C:Oracledatamodelerdatamodelerxmlmetadatadoc – SQLDeveloperDataModelerScripting.docx – Index.html Oracle SQL Developer Data Modeler Object Model definition
  • 38. // Code shown below is JavaScript // application_name = model.getName(); appfolder = "Documents/Oracle/SDDM/sql/"+application_name+"/"; Oracle SQL Developer Data Modeler Basic setup: generated code output folder
  • 39. // Code shown below is JavaScript // runFile = new java.io.FileWriter(appfolder+appname+ "_CREATE_ALL.sql"); run = new java.io.PrintWriter(runFile); run.println("-----------------------------------------------------------"); run.println("-- Version : 1.0.0"); run.println("-- Proces : Zorgsturing"); run.println("-- File-name : <app_alias>_CREATE_ALL.sql"); run.println("-- Creator : Rob van den Berg"); run.println("-- Creation date : "+ today); run.println("-- Description : Master create script"); run.println("--"); Oracle SQL Developer Data Modeler Basic setup: include a master script
  • 40. Oracle SQL Developer Data Modeler Created Master Script
  • 41. // Code shown below is (PL/)SQL // /* Maintain table level constraints on ZST_VERTALINGEN_MPG Change History Who When What ---------------- ---------- -------- Rob van den Berg 12/05/2016 Creation */ -- define check constraints alter table ZST_VERTALINGEN_MPG add constraint ZST_BR_VMP003_TPL check (datum_einde is null or (datum_ingang <= datum_einde)); Oracle SQL Developer Data Modeler Implementation of Tuple Rule Generated script ZST_VMP_CON.sql
  • 42. Oracle SQL Developer Data Modeler Definition of Tuple Rule
  • 43. // Code shown below is JavaScript // tables = model.getTableSet().toArray(); for (var t = 0; t<tables.length;t++){ // check constraints tccs=table.getCheckConstraints().toArray(); for (var n=0;n<tccs.length;n++){ con.println ( "alter table “ + table_name + " add constraint “ + table.getProperty(tccs[n].getName()) + " check (" + tccs[n].getRule() + ");" ); } } Oracle SQL Developer Data Modeler Let’s generate customized script layout for check constraints
  • 44. – typical Entity Rule “rows should not OVERLAP” – Which typically presumes data definition of – Column start_date NOT NULL – Column end_date – Some unique key including start_date next to (optional) columns identifying the group – Analist would phrase the rule like “Thou shalt not enter any conflicting time period (for the group of tuples identified by X, Y, Z” Oracle SQL Developer Data Modeler Definition of Entity Rule
  • 45. Oracle SQL Developer Data Modeler Definition of Entity Rule: specify the name identifying the rule
  • 46. // Code shown below is (PL/)SQL // /* Maintain Table ZST_VERTALINGEN_MPG … … --define unique key(s) alter table ZST_VERTALINGEN_MPG add constraint zst_vmp_un1 unique ( bte_id , mpg_code , oms_extern , datum_ingang ); Oracle SQL Developer Data Modeler Implementation of Entity Rule: unique key including start_date Generated script ZST_VMP_TAB.sql START_DATE OVERLAP can still occur
  • 47. // Code shown below is (PL/)SQL // create or replace trigger ZST_VMP_BIR before insert on ZST_VERTALINGEN_MPG for each row begin -- support insert change event ZST_VMP_PCK.trg_bir ( p_id => :new.ID … , p_datum_ingang => :new.DATUM_INGANG … , p_datum_einde => :new.DATUM_EINDE ); end; / Oracle SQL Developer Data Modeler Implementation of Entity Rule Generated script ZST_VMP_TRG.sql START_DATE END_DATE
  • 48. – Triggers generated within each trigger definition file: – Before insert, update, delete statement – After insert, update, delete statement – Same for row triggers Oracle SQL Developer Data Modeler Implementation of Entity Rule
  • 49. // Code shown below is (PL/)SQL // procedure trg_ais is begin check_br_vmp002_ent; … end trg_ais; Oracle SQL Developer Data Modeler Implementation of Entity Rule Generated script ZST_VMP_PCK.sql
  • 50. // Code shown below is (PL/)SQL // … procedure check_br_vmp002_ent is -- Check if any time overlap check does not get violated -- find record overlapping in time cursor c_overlap ( v_not_id in ZST_VERTALINGEN_MPG.ID%TYPE , v_bte_id in ZST_VERTALINGEN_MPG.BTE_ID%TYPE , v_mpg_code in ZST_VERTALINGEN_MPG.MPG_CODE%TYPE … … Oracle SQL Developer Data Modeler Implementation of Entity Rule Generated script ZST_VMP_PCK.sql
  • 51. Where did that get me
  • 52. Generating code – Is efficient – Follows standards and guidelines – Leads to maintainable code. No exceptions. Oracle SQL Developer Data Modeler Conclusions
  • 53. Oracle SQL Developer Data Modeler Agenda Improvement s
  • 54. Oracle SQL Developer Data Modeler Improvements – documentation
  • 55. Oracle SQL Developer Data Modeler Improvements – documentation
  • 57. Code Generation with Oracle SDDM Presenter information VX Company IT Services b.v. Email rvdberg@vxcompany.com Twitter twitter.com/rob_vd_berg Blog rvdbergblog.wordpress.com

Editor's Notes

  1. Welcome to my session, It’s the last session of the day, so Hello everybody welcome, welcome welcome, I will introduce myself and get going with the presentation. How are you guys doing today, everybody allright ?
  2. Let’s see. My session will cover Oracle PL/SQL code generation with Oracle SQL Developer Data Modeler in the role of the generator of this code. My name is Rob van den Berg.
  3. I have been working for VX Company for the last 18 years. VX Company is a Oracle Platinum Partner. I have worked on major Oracle implementations as a contractor, in particular for Oracle, whom I’ve been hired to for fourteen years. I have an email address, a twitter handle and a blog site.
  4. These are the main sections my presentation can be subdivided into. I’ll start with an introduction, like I’m doing right now, I’ll cover the features I think are crucial to allow Oracle SQL Data Modeler to generate custom application code, and finally I will get to the core of my presentation showing real examples of generated code and how it was setup that way. No let me tell you right off the bat, this is not a theoretical lecture of how things might be setup. I’ve used Oracle SQL Developer Data Modeler in a production situation to generate complex business rules. And I will show you how.
  5. First I will finish my introduction of this code generation theme I would like to discuss.
  6. The tool itself has evolved in the last years from a both licensed and not so comprehensive designer tool to a free tool with extensive options. It’s in existence sinds 2009, current version is 4.1.3. Both Jeff Smith and Heli Helskyaho have greatly contributed in explaining how this tool can be used. Heli wrote a book published by Oracle Press on the subject. THAT Jeff Smith owns a lively blog site on both SQL Developer and SQL Developer Data Modeler.
  7. My presentation zooms in on just one feature of the tool, the code generation feature. I focus on application code that implements Business Rules, which can be as complex as Entity Rules, Inter Entity Rules, Change Event Rules etcetera. In short: that’s application code which cannot be generated out of the box straight from your design. It goes beyond DDL. Now I have to pause here for a second. Why would we generate application code ? I can explain why I wanted to. It’s because I’m a do-everything-in-the-database guy, just like Toon Koppelaar and Bryn Llewellyn want us to. I’ve you have been able to attend to Bryn’s session, like he did today and many times before, you exactly know why. However, implementing business rules in the database can get repetitive by nature. If you code by hand, you might end up coding the same pattern over and over again. I know because it happened to me. And it happened to me AFTER I had been accustomed to generate application code from within Designer and Headstart for more than ten years. Suddenly I had been hired by a company that couldn’t offer me these tools. So I had to come up with my own replacement for Designer and Headstart. Maybe that situation sounds familiar to anyone?
  8. So which features did I stumble upon which got me going ?
  9. The CORE feature of SQL Developer Data Modeler of course is to visually model a database design. Click and drag entities or tables, draw lines between them representing relationships between them. Rearrange entities, create subviews.
  10. Entity Relationship Modeling with notations which can at the design level be changed according to the visualization method you are used to, like Barker, the notation you know from good old Oracle Designer, or Bachman or Information Engineering. Having designed a logical model, you can generate a relational model from it, or reverse engineer the other way around. Common design features like Supertypes, subtypes and arcs are fully supported. You can open multiple designs in parallel and compare differences between them.
  11. I would certainly encourage you to explore different kinds of modeling which you might not expect SQL Developer Data Modeler would also support.
  12. SQL Developer Data Modeler is a database design and generation tool, supporting a model driven application development approach, not limited to just entity-relationship and data modeling, but also other types of models
  13. This picture presents one example where you can find other types of models in the menu
  14. But wait! We might already HAVE modeled a database design, be it a full entity relationship model, a data model or just an existing data dictionary. Well we can import these models. We can import a data dictionary. For that matter, we can also export these models too. Should you be working in a team, SQL Developer Data Modeler supports putting the desig in version control, using Subversion.
  15. This is a bit of a side step. This is NOT a strictly indispensable feature enabling code generation that we WILL discuss very soon now, but it’s too cool not to mention now
  16. Here we have it: your first logical model build from scratch. But the colours…they more or less precisely lack any corporate identity. Which might or might not be an issue. But if it is… Open Design Properties – Settings – Diagram – Format. As you can see any distinguishable object can be set up to appear in any colour or font as you like. Doubleclick the colour and you see how. The other tab pages present other ways to specify a colour, including entering exact colour numbers.
  17. The result is the apply corporate identity, in this case VX Corporate identiy.
  18. Work with a notation method you are most used to.
  19. In case your design holds really a lot of tables, like more than fifteen, you will be interested in using a method to group tables together visually, which can be done using subviews. Subviews can be given a name.
  20. Like a “Core” subview, showing the “Core” tables and their relations of the application
  21. When you work in a team, you often have to adhere to the company’s coding standards. Make sure coding standards are in place.
  22. Oracle SQL Developer Data Modeler supports configuring and applying these standards. You can setup a naming structure for entities and for tables. You can restrict the length of names for your design. You can restrict which characters are used in a entity name to separate different parts of the name. You can set up how constraints and indexes are named as a derivative of the names or aliases of the tables.
  23. So just open design properties – settings – naming standard and find many options providing you the option to specify standards.
  24. Example of a standard about not using a forbidden word
  25. If you have just imported a design, it might just not be perfect already. Like this one. This one has been resized an aligned on a grid, using the graphical interface, but the content has also been polished quite a bit. I needed tuning.
  26. That’s where Optimus Prime kicks in. Autobot.
  27. Your design might have table name not all upper case. You can apply a pre-supplied transformation script to modify all tables names to upper case.
  28. Or rearrange the order of columns. If you want to start working with transformation scripts, reading and interpreting the pre-supplied scripts, which aren’t very complex, is a good start. As you, a transformation script has a name, and an engine it is supposed to run in. This can be ruby or Mozilla rhino for older versions of Java. If you already have Java 8, the engine is called Nashorn.
  29. You can find more information on Oracle Nashorn on OTN.
  30. Finally we get to the core.
  31. If you need to find out which methods are available, here’s where you can find more information. After installation, you will find the information in the datamodeler/xmlmetadata folder. The html file index.html gives access to all the information which you can browse through.
  32. Create the script, give it a name, and run it by clicking ‘ apply’.
  33. Create a runFile FileWriter object, a run PrintWriter object and call the println method.
  34. Just for the sake of this example, let us generate code to maintain a check constraint. Of course, there’s still no need to do it this way, check constraints are just a maintanable part of a design and code can already be generated for it out of the box, but suppose we need separate files for check constraints belonging to each table with commentary header like shown.
  35. Pass the println method to a previously defined con PrintWriter object for all check constraints of all tables.
  36. Wil je een grafiek toevoegen.
  翻译: