SlideShare a Scribd company logo
Copyright	©	2015,	Oracle	and/or	its	affiliates.	All	rights	reserved.		|	
Applica?on	Development	
with	
Oracle	Database	
Gerald	Venzl			(						@GeraldVenzl)	
	
Senior	Principal	Product	Manager	
Oracle	Database	Systems	
	
November,	2017
Copyright	©	2015,	Oracle	and/or	its	affiliates.	All	rights	reserved.		|	
Safe	Harbor	Statement	
The	following	is	intended	to	outline	our	general	product	direc?on.	It	is	intended	for	
informa?on	purposes	only,	and	may	not	be	incorporated	into	any	contract.	It	is	not	a	
commitment	to	deliver	any	material,	code,	or	func?onality,	and	should	not	be	relied	upon	
in	making	purchasing	decisions.	The	development,	release,	and	?ming	of	any	features	or	
func?onality	described	for	Oracle’s	products	remains	at	the	sole	discre?on	of	Oracle.	
Oracle	Confiden?al	–	Internal/Restricted/Highly	Restricted	 2
Copyright	©	2015,	Oracle	and/or	its	affiliates.	All	rights	reserved.		|	
Program	Agenda	
Overview	and	History	
Vision	
Data	Management	Strategy	
Oracle	and	Modern	Development	
Open	Source	ini?a?ves	
Developer	centric	func?onali?es	
Q	&	A	
1	
2	
3	
4	
5	
3	
6	
7
Copyright	©	2015,	Oracle	and/or	its	affiliates.	All	rights	reserved.		|	
Program	Agenda	
Overview	and	History	
Vision	
Data	Management	Strategy	
Oracle	and	Modern	Development	
Open	Source	ini?a?ves	
Developer	centric	func?onali?es	
Q	&	A	
1	
2	
3	
4	
5	
4	
6	
7
Copyright	©	2015,	Oracle	and/or	its	affiliates.	All	rights	reserved.		|	
1977:	So_ware	Development	Laboratories
Oracle Confidential – Do Not Distribute 5
Copyright	©	2015,	Oracle	and/or	its	affiliates.	All	rights	reserved.		|	
Con?nuous	Oracle	Database	Innova?ons	
Preserving	customer’s	investment	though	each	new	Compu<ng	Era	
Stored	Procedures	
Par??oning	
Parallel	Query	
Unstructured	Data	
Resource	Management	
Real	Applica?on	Clusters	
Data	Guard	
XML	
Big	Data	SQL	
Mul?tenant	
In-Memory	
JSON	
Big	Data	&	Cloud	Internet	Client-Server	
6
Copyright	©	2014	Oracle	and/or	its	affiliates.	All	rights	reserved.		|	
Stored	Procedures	&	Triggers	
Referen<al	Integrity	
Distributed	Transac<ons	
AQ	
LOBs	
Spa<al	
	
Online	Opera<ons	
RAC	
Data	Guard	
Flashback	
Self-Managing	Database	
Enterprise	Manager	
Resource	Management	
	
Automa<c	Storage	Mgmt	
Encryp<on	
Real	Applica<on	Tes<ng	
Row	Compression	
Columnar	Compression	
Smart	Scans	
Flash	Cache	
R	
PaSern	Matching	
OpenSource	Drivers	
JSON	
REST	Data	Services	
NoSQL	Database	
Applica<on	Con<nuity	
Migra<on	Framework	
HTML5	–	Desktop	&	Browser	
Javascript	
Opensource	
Cloud	
Java				.NET				PHP				XML				APEX	
Mul<tenant	Database				
In-Memory	Column	Store	
Release	 1985	–	1997:	6,	7	and	8	 1998	–	2012:	8i,	9i,	10g,	11g					 2013	-	2015:	12c	
Developer	 	
	
	
Engine	
Applica?on	Development	Over	The	Years	
Internet	
Mobile	&	
Cloud	
OLTP	throughput	(Row	Locking,	MVRC)	
Parallel	Query	
Par<<oning	
Open	Source	Drivers	(Python,	Node.js	and	R)
Copyright	©	2015,	Oracle	and/or	its	affiliates.	All	rights	reserved.		|	
Program	Agenda	
Overview	and	History	
Vision	
Data	Management	Strategy	
Oracle	and	Modern	Development	
Open	Source	ini?a?ves	
Developer	centric	func?onali?es	
Q	&	A	
1	
2	
3	
4	
5	
8	
6	
7
Copyright	©	2015,	Oracle	and/or	its	affiliates.	All	rights	reserved.		|	
Development	
Services	
Cloud	to	On-Premise,	Clustering,	
	Security,	High	Availability,	
Zero	Data	Loss,	Administra?on	
Data	Support	
Node.js,	Python,	.NET,	Java,	
PHP,	Ruby,	PL/SQL,	C,	C++,	
Perl,	ORDS,	APEX,	SODA	
Rela?onal,	JSON,	XML,	
Spa?al,	Graph,	Text,	
Binary	
Planorm	Services	
Analy?cal	Services	
SQL,	In-Memory,	R,	
Advanced	Analy?cs,	
OLAP	
Oracle	Database	as	a	Planorm
Copyright	©	2015,	Oracle	and/or	its	affiliates.	All	rights	reserved.		|	
Program	Agenda	
Overview	and	History	
Vision	
Data	Management	Strategy	
Oracle	and	Modern	Development	
Open	Source	ini?a?ves	
Developer	centric	func?onali?es	
Q	&	A	
1	
2	
3	
4	
5	
10	
6	
7
Copyright	©	2015,	Oracle	and/or	its	affiliates.	All	rights	reserved.		|	 11	
“Polyglot	persistence	will	occur	over	the	enterprise	as	different	applica7ons	use	different	data	
storage	technologies.	It	will	also	occur	within	a	single	applica7on	as	different	parts	of	an	
applica7on’s	data	store	have	different	access	characteris7cs.”	
	
Mar?n	Fowler	&	Pramod	Sadalage,	Feb.	2012			
hSp://mar<nfowler.com/ar<cles/nosql-intro-original.pdf
Copyright	©	2015,	Oracle	and/or	its	affiliates.	All	rights	reserved.		|	
Source:	The	future	is:	NoSQL	Databases	Polyglot	Persistence	
hpp://mar?nfowler.com/ar?cles/nosql-intro-original.pdf
Copyright	©	2015,	Oracle	and/or	its	affiliates.	All	rights	reserved.		|	
Two	Approaches	to	Polyglot	Persistence	
13	
Rela?onal	
Database	
Key-value	
Store	
Graph	Database	
JSON/XML	
Database	
Single-model	
	
Mul?-model	
Rela?onal	Data	
Key-value	Data	
Graph	Data	
JSON	&	XML	Data
Copyright	©	2015,	Oracle	and/or	its	affiliates.	All	rights	reserved.		|	
Considera?ons	for	Polyglot	Persistence	
14	
Mul?-model	Polyglot:	
• Benefits	of	consolida<on	and	standardiza<on	
• Standardized	administra?on	
• Consistent	data	security	policies	
• Simple	integra?on	across	mul?ple	data	formats		
• Transac?ons	and	data	consistency	
Single-model	Polyglot:	
• Benefits	of	specializa<on	
• Specialized	APIs	
• Specialized	data	formats	
• Specialized	access	methods	and	indexes
Copyright	©	2015,	Oracle	and/or	its	affiliates.	All	rights	reserved.		|	
Evolu?on	of	data	management	
1970s	
Cobol	
ISAM	
Rela<onal	
SQL	
Object	DBs	
Mul<-Model	
SQL	
XML	
XPath	
Mul<-Model	
SQL	
JSON	
Mul<-Model	
SQL	
C			o			m			p			l			e			x			i			t			y
Copyright	©	2015,	Oracle	and/or	its	affiliates.	All	rights	reserved.		|	
Evolu?on	of	data	management	
1970s	
Cobol	
ISAM	
Rela<onal	
SQL	
1980s	
Object	DBs	
Mul<-Model	
SQL	
XML	
XPath	
Mul<-Model	
SQL	
JSON	
Mul<-Model	
SQL	
C			o			m			p			l			e			x			i			t			y
Copyright	©	2015,	Oracle	and/or	its	affiliates.	All	rights	reserved.		|	
Evolu?on	of	data	management	
1970s	
Cobol	
ISAM	
Rela<onal	
SQL	
1980s	
Object	DBs	
Mul<-Model	
SQL	
XML	
XPath	
Mul<-Model	
SQL	
JSON	
Mul<-Model	
SQL	
1990s	
C			o			m			p			l			e			x			i			t			y
Copyright	©	2015,	Oracle	and/or	its	affiliates.	All	rights	reserved.		|	
Evolu?on	of	data	management	
1970s	
Cobol	
ISAM	
Rela<onal	
SQL	
1980s	
Object	DBs	
Mul<-Model	
SQL	
XML	
XPath	
Mul<-Model	
SQL	
JSON	
Mul<-Model	
SQL	
C			o			m			p			l			e			x			i			t			y	
1990s
Copyright	©	2015,	Oracle	and/or	its	affiliates.	All	rights	reserved.		|	
Evolu?on	of	data	management	
1970s	
Cobol	
ISAM	
Rela<onal	
SQL	
1980s	
Object	DBs	
Mul<-Model	
SQL	
XML	
XPath	
Mul<-Model	
SQL	
JSON	
Mul<-Model	
SQL	
2000s	
C			o			m			p			l			e			x			i			t			y	
1990s
Copyright	©	2015,	Oracle	and/or	its	affiliates.	All	rights	reserved.		|	
Evolu?on	of	data	management	
1970s	
Cobol	
ISAM	
Rela<onal	
SQL	
1980s	
Object	DBs	
Mul<-Model	
SQL	
XML	
XPath	
Mul<-Model	
SQL	
JSON	
Mul<-Model	
SQL	
2000s	
C			o			m			p			l			e			x			i			t			y	
1990s
Copyright	©	2015,	Oracle	and/or	its	affiliates.	All	rights	reserved.		|	
Evolu?on	of	data	management	
1970s	
Cobol	
ISAM	
Rela<onal	
SQL	
1980s	
Object	DBs	
Mul<-Model	
SQL	
XML	
XPath	
Mul<-Model	
SQL	
JSON	
Mul<-Model	
SQL	
2000s	 2010s	
C			o			m			p			l			e			x			i			t			y	
1990s
Copyright	©	2015,	Oracle	and/or	its	affiliates.	All	rights	reserved.		|	
Mul?-model	prevails	over	?me	
C			o			m			p			l			e			x			i			t			y	
1970s	
Rela<onal	
SQL	
1980s	
Object	DBs	
Mul<-Model	
SQL	
XML	
XPath	
Mul<-Model	
SQL	
JSON	
Mul<-Model	
SQL	
1990s	 2000s	 2010s	 20??	
Cobol	
ISAM	
Mul<-Model	
SQL	
Next	“big”	
thing
Copyright	©	2015,	Oracle	and/or	its	affiliates.	All	rights	reserved.		|	
Polyglot	Persistence	Market	Trends	
•  Single-model	architectures	are	most	pervasive	for	‘edge’	applica?ons	
– New	business	&	workload	requirements	
•  Business	applica?ons	naturally	converge	to	mul?-model	architectures	
– Today’s	‘edge’	applica?ons	are	tomorrow’s	mainstream	business	applica?ons	
– Efficiencies	of	mul?-model	architecture	override	advantages	of	special-purpose	
systems	over	?me	
•  There	will	always	be	single-model	polyglot	architectures	
– Because	there	are	always	new	‘edge’	applica?ons	
– Oracle’s	single-model	architectures:		
• Oracle	Berkeley	DB,	Oracle	NoSQL	Database,	Essbase,	Oracle	Big	Data	Spa?al	and	
Graph	
23
Copyright	©	2015,	Oracle	and/or	its	affiliates.	All	rights	reserved.		|	
•  Oracle	supports	mul?ple	single-model	
data	stores	
–  Rela?onal	
–  Key/Value	
–  XML	
Oracle	Product	Strategy	for	Polyglot	Persistence	
Support	Both	–	Customer	chooses	which	one	to	use	
Mul?-model	
•  Oracle	Database	supports	mul?-model	
persistence	
–  Rela?onal	
–  XML		
–  JSON	
–  Text	
–  Graph	&	Spa?al	
•  Oracle	Database	provides	integrated	
access	to	all	database	objects	
-  Spa?al	
-  Graph	
-  OLAP	
Single-model	
	
•  Oracle	integrates	single-model	polyglot	
environments	via	Big	Data	SQL	
Spa?al	
Graph	
OLAP	
NoSQL	
Rela?onal	
XML
Copyright	©	2015,	Oracle	and/or	its	affiliates.	All	rights	reserved.		|	
Program	Agenda	
Overview	and	History	
Vision	
Data	Management	Strategy	
Oracle	and	Modern	Development	
Open	Source	ini?a?ves	
Developer	centric	func?onali?es	
Q	&	A	
1	
2	
3	
4	
5	
25	
6	
7
Copyright	©	2015,	Oracle	and/or	its	affiliates.	All	rights	reserved.		|	
2017	most	popular	development	languages	
26	
Stackoverflow	
1	JavaScript 	4	PHP	
2	Java 	 	5	C#	
3	Python	 	6	C++
Copyright	©	2015,	Oracle	and/or	its	affiliates.	All	rights	reserved.		|	
Oracle	Database	12c	for	the	Developer	
LANGUAGE	 DRIVER	
C	 OCI,	ODPI-C	
C++	 OCCI	
Java	 JDBC	
.NET	 ODP.NET	
Node.js	 node-oracledb	
Python	 cx_Oracle	
PHP	 OCI8,	PDO_OCI	
R	 ROracle	
Go	 goracle,	rana,	maSn	
Rust	 mimir	
Ruby	 ruby-oci8	
Perl	 DBD::Oracle		
Suppor<ng	all	major	development	environments	and	APIs	
…	and	ODBC,	OLE	DB,	
Pro*C,	Pro*COBOL,	
Pro*Fortran,	SQLJ		
	
	
Open	Source	Drivers	
(Third-party	maintainers)	
Open	Source	Drivers	
(Oracle	contribu?ons)		
Oracle	provided	Drivers
Copyright	©	2015,	Oracle	and/or	its	affiliates.	All	rights	reserved.		|	
	JSON	
JSON	Support	in	Oracle	Database	
Powerful	SQL	Analy<cs	
JSON	
Data	accessed	
via	RESTful	
service	or	na?ve	
API’s	
Data	persisted	in	database	
In	JSON	
Data	analyzed	via	SQL	
Oracle	Database	12c	
SQL	
Public	 28
Copyright	©	2015,	Oracle	and/or	its	affiliates.	All	rights	reserved.		|	
JSON	Support	in	Oracle	Database	
Fast	Applica?on	Development	+	Powerful	SQL	Access	
Public	 29	
Applica?on	developers:	
Access	JSON	documents	using	REST	API	
POST /my_database/my_schema/customers HTTP/1.0
Content-Type: application/json
Body:
{
"firstName": "John",

“lastName”: "Smith",

"age": 25,

"address": {

"streetAddress": "21 2nd Street",

"city": "New York",

"state": "NY",

"postalCode": "10021“,

"isBusiness" : false },

"phoneNumbers": [

{"type": "home",

"number": "212 555-1234“ },

{"type": "fax",

"number": "646 555-4567“ } ]
}
SELECT
c.json_document.firstName,
c.json_document.lastName,
c.json_document.address.city
FROM customers c;
firstName lastName address.city
----------- ----------- --------------
“John” “Smith” “New York”
Analy?cal	tools	and	business	users:		
Query	JSON	using	SQL		
	JSON
Copyright	©	2015	Oracle	and/or	its	affiliates.	All	rights	reserved.		|	
Oracle	vs	Mongo	DB	
Oracle	 Mongo	DB	
Document-store	:	Store,	index,	and	query	JSON	documents	 ✓	 ✓
Simple	Document-Centric	API’s	and	REST	support	 ✓	 ✓
Query	by	Example	(QBE)	capability	 ✓	 ✓	
Joins	within	Documents,	Within	Collec?ons	and	Across	Collec?ons	 ✓	 Within	Documents	Only	
Joins	with	Rela?onal,	XML,	Spa?al	and	Text	Content	 ✓	 Limited	Support	for	Text	
Standardized	Query	Language	 ✓	
Integra?on	with	Industry	Leading	BI,	Analy?cal	and	Repor?ng	
tools	
✓	
Concurrency	Control,	ACID	Transac?ons,	Read	Consistency	 ✓	
Enterprise	Backup/Recovery	and	Disaster	Recovery	 ✓	
Architected	for	consolida?on	and	mul?tenancy	 ✓
30
Copyright	©	2015	Oracle	and/or	its	affiliates.	All	rights	reserved.		|	
REST	in	a	nutshell	
Oracle	Confiden?al	–	Internal/Restricted/Highly	Restricted	 31	
Conn
establishment
Ackn
Request
Response
Conn
close
Ackn
31	
Request
Response
Conventional communication RESTful communication
Copyright	©	2015	Oracle	and/or	its	affiliates.	All	rights	reserved.		|	
REST	in	a	nutshell	
32	
GET /apex/coffeeshop/order HTTP/1.1
Accept: */*
Accept-Encoding: gzip, deflate
Connection: keep-alive
Host: db.us2.oraclecloud.com
HTTP/1.1 200 OK
Content-Type: application/json
Content-Language: en
Server: Oracle-Application-Server-11g
{
"items": [
{
"city": "San Francisco",
"sale_amount": 16.9,
"state": "CA"
} ]
}
Copyright	©	2015	Oracle	and/or	its	affiliates.	All	rights	reserved.		|	
Oracle	REST	Data	Services	
33	
REST-enable	your	data	
	JSON	
Oracle	Database	
(Rela?onal)	
Oracle	Database	
(Document	Store)	
Oracle	NoSQL	Database	
Oracle	
REST	Data	Services	
REST
Copyright	©	2015	Oracle	and/or	its	affiliates.	All	rights	reserved.		|	
Oracle	REST	Data	Services	
HTTP(s)	API	App-Dev	with	Rela?onal	Tables	in	Oracle	Database	
{		“custno”:		1001,	
				“name”:			“Scop	King”,	
				“address”:		“500	Main	street,	Innova?on	CA”,	
				“orders”:	[	{	“orderno”:		404,	
																							“orderdate”:	“Feb	27,	2014”,	
																							“status”:	“in	process”}	}	}		
																				{	“orderno”:		303,	
																						“orderdate”:	“Feb	26,	2014”,	
																						“status”:	“in	process”}	]	}	
JSON	
HTTP(s)	
hpps://myhost/myapp/hr/customerorders/1001	
Oracle	REST	
Data	Services	
SQL	
ORDS	maps	standard	URI	requests	to	corresponding	rela?onal	SQL	(not	schemaless):	e.g.	SQL	SELECT	from	customers	and	orders	table.	
ORDS	also	transforms	the	SQL	results	into	the	highly	popular	JavaScript	Object	Nota?on	(JSON),	other	formats	include	HTML,	binary	and	CSV.	
Fully	commiped	to	suppor?ng	any	and	all	standards	required	by	Fusion	/	SaaS	/	FMW;	we	are	ac?vely	engaged	in	the	ongoing	dialog.	
SQL	result	to	
JSON	
transforma?on	
URI	Request	or	HTTP(s)	post	
mapped	to	SQL	request	
JDBC	
Connec?on	
Pool	
URI		
Module	
Template	
Context	Root
Copyright	©	2014	Oracle	and/or	its	affiliates.	All	rights	reserved.		|	
Oracle	REST	Data	Services	
Example:	Query	returning	JSON	for	customer	1001	
	
{	“custno”:		1001,	
			“name”:			“Scop	King”,	
			“address”:		“500	Oracle	Parkway,	Redwood	Shores,	CA,	94065”,	
				“country”:	“USA”,	
				“class”:	“A”,	
				“orders”:	[	{	“orderno”:		303,	
																						“orderdate”:	“Feb	26,	2014”,	
																						“status”:	“in	process”},	
																				{	“orderno”:			202,	
																						“orderdate”:		“Jan	16,	2014”,	
																						“status”:	“processed”},	
																				{	“orderno”:			101,	
																							“orderdate”:		“Dec	2,	2013”,	
																							“status”:	“processed”}	]	}	
hpp://myhost/myapplica?on/custorders/simplequery	{	custno:	1001}		
•  Map	URI	request	to	data	access	template	
•  Bind	custno	(1001)	to	bindcustno	
•  Execute	select	statement	below	
•  Note	embedded	cursor	expression	
•  Set	format	to	JSON	
	
JSON	Result	
select	c.*,	
				cursor(	
								select	*	
								from	orders	o	
								where	o.custno	=	c.custno)	
							orders	
						from	customers	c	
									where	c.custno	=	:bindcustno	
Data	Access	Template
Copyright	©	2015	Oracle	and/or	its	affiliates.	All	rights	reserved.		|	
•  Developer	Focus	
–  BASE	&	ACID	txns	
–  Tables	/	JSON	/	Binary	
–  C,	Java,	Python	&	
Node.js	APIs	
–  Secondary	Indexes	
•  Opera?ons	Focus	
–  Elas?c	Configura?on	
–  Secure	Access	
–  Data	Center	Support	
–  Online	management	
•  Differen?a?ng	Features	
–  ACID	transac?ons	
–  Online	rolling	upgrades	
–  Streaming	large	object	support	
–  Strong	Oracle	technology	Integra<on	
–  Engineered	Systems	and	Commodity	HW	
36	
Applica?on	
Storage	Nodes	
Datacenter	B	
Storage	Nodes	
Datacenter	A	
Applica?on	
NoSQL	DB	Driver	
Applica?on	
NoSQL	DB	Driver	
Applica?on	
Oracle’s	commitment	to	Single-model	Polyglot	
Oracle	NoSQL	Database	
http://www.oracle.com/us/products/database/nosql/
Copyright	©	2015	Oracle	and/or	its	affiliates.	All	rights	reserved.		|	
Oracle’s	commitment	to	Single-model	Polyglot	
Oracle	Big	Data	Spa<al	&	Graph	
•  Massively-Scalable	Graph	Database	
–  Scales	to	trillions	of	edges	
–  Apache	HBase	
–  Oracle	NoSQL	Database	
•  In-Memory	Graph	Analy?cs	
–  More	than	30	graph	analysis	algorithms	
•  Simple,	standard	interfaces	
–  Java	
–  Tinkerpop:	Blueprints,	Gremlin,	Rexster	
–  Python	
37	
Detecting Components and
Communities
Ranking/Walking
Evaluating Communities
∑	 ∑	
Path-Finding
www.oracle.com/database/big-data-spatial-and-graph
Copyright	©	2015	Oracle	and/or	its	affiliates.	All	rights	reserved.		|	
Oracle	on	Docker	
•  Oracle	Database	is	fully	supported	on	Docker	
– Oracle	Linux	7	
– Red	Hat	Enterprise	Linux	7	
•  Oracle	image	on	Docker	Store	
•  Docker	build	files	on	GitHub
Copyright	©	2015	Oracle	and/or	its	affiliates.	All	rights	reserved.		|	
Oracle	on	Docker	
•  Docker	container	contains	single-PDB	CDB	
•  PDB	can	be	plugged,	unplugged,	etc.	
•  PDB	can	move	bi-direc?onal
Copyright	©	2015	Oracle	and/or	its	affiliates.	All	rights	reserved.		|	
Docker	Store	
•  Oracle	12.1.0.2	images	are	available	on	Docker	Store	Registry	
– hpps://store.docker.com		
– 12.2.0.1	coming	soon	(currently	going	through	tes?ng)
Copyright	©	2015	Oracle	and/or	its	affiliates.	All	rights	reserved.		|	
Docker	build	files	available	on	GitHub	
•  Repository:	hpps://github.com/oracle/docker-images	
•  Build	files	for	12.2.0.1	EE/SE2,	12.1.0.2	EE/SE2,	11.2.0.2	XE
Copyright	©	2014	Oracle	and/or	its	affiliates.	All	rights	reserved.		|	
LiveSQL.oracle.com	
42	
The	full	power	of	Oracle	SQL	in	your	browser
Copyright	©	2015,	Oracle	and/or	its	affiliates.	All	rights	reserved.		|	
Program	Agenda	
Overview	and	History	
Vision	
Data	Management	Strategy	
Oracle	and	Modern	Development	
Open	Source	ini?a?ves	
Developer	centric	func?onali?es	
Q	&	A	
1	
2	
3	
4	
5	
43	
6	
7
Copyright	©	2015,	Oracle	and/or	its	affiliates.	All	rights	reserved.		|	
Oracle	On	GitHub		
Oracle	Confiden?al	–	Internal/Restricted/Highly	Restricted	 44	
www.github.com/oracle	
•  Official	Oracle	representa?on	on	
GitHub	
•  Examples	and	tools	for	Docker,	
Java,	SQL,	Python,	Node.js,	PL/SQL	
•  Repos	regularly	added	
•  Main	source	for	Open	Source	
components
Copyright © 2014 Oracle and/or its affiliates. All rights reserved. |
Introducing	Simple	Oracle	Document	Access	(SODA)	
•  An	abstract	API	defini?on	for	
– Collec?on	Management:	Ability	to	create	and	drop	collec?ons	
– Create,	Retrieve,	Update	and	Delete	(CRUD)	opera?ons	on	documents	
– List	opera?ons	on	collec?ons	
– Query-by-Example	(QBE)	for	searching	collec?ons	
– U?lity	and	control	func?ons	
•  Create	and	Drop	Indexes	
•  Bulk	Insert	
•  Implementa?ons	currently	available	for	JAVA	and	REST	
•  Support	for	NODE.js	and	other	languages	forthcoming
Copyright © 2014 Oracle and/or its affiliates. All rights reserved. |
SODA	for	Java	
•  SODA	implementa?on	for	the	Java	Developer	
•  Developers	can	store	JSON	documents	in	the	Oracle	Database	without	
learning	JDBC	or	SQL	
•  Uses	a	standard	JDBC	connec?on	to	talk	to	the	database	
•  Supports	transac?ons	
•  Enables	hybrid	applica?on	development	
– Mix	and	Match	SODA	and	JDBC	based	opera?ons	in	a	single	applica?on
Copyright © 2014 Oracle and/or its affiliates. All rights reserved. |
node-oracledb	
for	Node.js	
47
Copyright © 2014 Oracle and/or its affiliates. All rights reserved. |
node-oracledb	
•  A	simple,	stable	Oracle	Database	driver	with	out-of-the	box	performance	
•  Ongoing	contribu?ons	from	Oracle	
– Support	for	latest	Oracle	Database	features	
– 26	releases	since	January	2015	
•  Modular	design	
– Underlying,	simple	DB	access	layer	based	on	OCI	
	
48	
v	1.13.1	released	04/2017
Copyright © 2014 Oracle and/or its affiliates. All rights reserved. |
node-oracledb	
•  Open	source	development,	release	and	support	under	Apache	2.0	license	
– GitHub	repository	(www.github.com/oracle/node-oracledb)	
– Installable	from	NPM	registry	(www.npmjs.com/package/oracledb)	
– Approx.	monthly	release	cycle	
			Users	can	contribute	under	the	Oracle	Contributor	Agreement.	
			Thanks	to	all	who	have	contributed	code,	documenta7on	and	ideas	
	
49
Copyright © 2014 Oracle and/or its affiliates. All rights reserved. |
cx_Oracle	
for	Python	
50
Copyright © 2014 Oracle and/or its affiliates. All rights reserved. |
cx_Oracle	
•  A	simple,	stable	Oracle	Database	driver	with	out-of-the	box	performance	
•  Ongoing	contribu?ons	from	Oracle	
– Support	for	latest	Oracle	Database	features	
•  Modular	design	
– Underlying,	simple	DB	access	layer	based	on	OCI	
	
51	
v	5.3	released	04/2017
Copyright © 2014 Oracle and/or its affiliates. All rights reserved. |
cx_Oracle	
•  Open	source	development,	release	and	support	under	BSD	license	
– GitHub	repository	(hpps://github.com/oracle/python-cx_Oracle)	
– Installable	from	NPM	registry	(hpps://oracle.github.io/python-cx_Oracle/)	
– Approx.	monthly	release	cycle	
			Users	can	contribute	under	the	Oracle	Contributor	Agreement.	
			Thanks	to	all	who	have	contributed	code,	documenta7on	and	ideas	
	
52
Copyright © 2014 Oracle and/or its affiliates. All rights reserved. |
•  Open	Source	Community	Edi<on	
–  Licensed	under	the	Apache	V	2.0	license	
–  Support	via	the	community	
–  Oracle	Support	can	be	purchased	addi?onally	
•  Commercial	Enterprise	Edi<on	
–  Oracle	Support	already	included	
–  Addi?onal	Enterprise	integra?on	technologies	
53	
Applica?on	
Storage	Nodes	
Datacenter	B	
Storage	Nodes	
Datacenter	A	
Applica?on	
NoSQL	DB	Driver	
Applica?on	
NoSQL	DB	Driver	
Applica?on	
Oracle	NoSQL	Database	
http://www.oracle.com/us/products/database/nosql/
Copyright	©	2015,	Oracle	and/or	its	affiliates.	All	rights	reserved.		|	
Program	Agenda	
Overview	and	History	
Vision	
Data	Management	Strategy	
Oracle	and	Modern	Development	
Open	Source	ini?a?ves	
Developer	centric	func?onali?es	
Q	&	A	
1	
2	
3	
4	
5	
54	
6	
7
Copyright	©	2014	Oracle	and/or	its	affiliates.	All	rights	reserved.		|	
Overall	
55	Public
Copyright	©	2014	Oracle	and/or	its	affiliates.	All	rights	reserved.		|	
128-byte	iden?fiers	for	objects	
56	
CREATE TABLE VERY_VERY_LONG_TABLE_NAME_IDENTIFIER_THAT_IS_58_BYTES_LONG
(
VERY_VERY_LONG_TEXT_COLUMN_WITH_DATA_TYPE_VARCHAR2_THAT_IS_72_BYTES_LONG VARCHAR2(25)
);
Table VERY_VERY_LONG_TABLE_NAME_IDENTIFIER_THAT_IS_58_BYTES_LONG created.
INSERT INTO VERY_VERY_LONG_TABLE_NAME_IDENTIFIER_THAT_IS_58_BYTES_LONG
VALUES ('Hello World!');
1 row inserted.
SELECT * FROM VERY_VERY_LONG_TABLE_NAME_IDENTIFIER_THAT_IS_58_BYTES_LONG;
VERY_VERY_LONG_TEXT_COLUM
-------------------------
Hello World!
Public
Copyright	©	2016,	Oracle	and/or	its	affiliates.	All	rights	reserved.		|	
Case-insensi?ve	Database	and	Column-level	Colla?on	
Greatly	simplifies	migra<on	of	case-insensi<ve	func<onality	of	3rd-party	products	
57	
•  Linguis?c-sensi?ve	opera?ons,	
e.g.,	comparison	and	sor?ng,	on	
the	column	honor	the	declared	
colla?on	
•  Unspecified	column	colla?on	is	
inherited	from	the	default	colla?on	
property	of	the	parent	table	or	
schema	
•  COLLATE	operator	can	be	used	to	
cast	an	explicit	colla?on	anywhere	
in	an	expression	
CREATE TABLE product
( id NUMBER,
name VARCHAR2(50) COLLATE BINARY_CI,
comments VARCHAR2(500)
) DEFAULT COLLATION BINARY;
SELECT name, comments FROM product
WHERE name LIKE '%BASE%' OR
comments COLLATE BINARY_CI LIKE '%REPORT%';
NAME COMMENTS _
Oracle Database
Activity-Based Management
Business Intelligence Replaces Reports
_CI	=	case-insensi?ve	
Inherits	BINARY	
Public
Copyright	©	2014	Oracle	and/or	its	affiliates.	All	rights	reserved.		|	
PL/SQL	deprecate	pragma	
CREATE PROCEDURE p AUTHID DEFINER IS
PRAGMA DEPRECATE (p, 'p is deprecated. You must use p2 instead.');
BEGIN
DBMS_Output.Put_Line('p');
END p;
PLW-06019: entity P is deprecated
CREATE PROCEDURE q authid Definer is
BEGIN
p();
DBMS_Output.Put_Line('q');
END q;
PLW-06020:
reference to a deprecated entity: p is deprecated. You must use p2 instead.
Public	 58
Copyright	©	2015	Oracle	and/or	its	affiliates.	All	rights	reserved.		|	 59	
•  Approxima?ons	for	expensive	aggregate	
calcula?ons:	
APPROX_COUNT_DISTINCT	(12.1)	
APPROX_PERCENTILE	
APPROX_MEDIAN	
–  6-13X	faster,	accuracy	typically	within	<	1%	
•  Use	with	ZERO	code	changes	
–  approx_for_aggrega?on	=	TRUE		
•  Accuracy	and	error	rate	provided	
New	in	12.2	Approximate	Query	Processing		
Delivers	significantly	faster	analysis	for		
interac<ve	and	highly		
itera<ve	data	explora?on	
±	0.0127	98%
Copyright © 2014 Oracle and/or its affiliates. All rights reserved. |
Oracle	Database	12	Temporal	Support	
Transac<on	Time	Temporal	
(Flashback	Data	Archive)	
§  Tracks transactional changes to a
table over its lifetime
§  Typically used for compliance and
auditing
§  Enables the users to see the data as
it was at a point in time in the past
Valid	Time	Temporal	
§  Enables user to model & query data
for “real world validity”
§  Typically used for insurance policies,
financial markets, trade data & future
changes
§  Users can model concepts such as the
“Life time of an insurance policy”
Copyright	©	2015,	Oracle	and/or	its	affiliates.	All	rights	reserved.		|	
Valid	Time	Temporal	
Example	
CREATE TABLE customers(
custid NUMBER,
custname VARCHAR2(30),
custaddr1 VARCHAR2(50),
custaddr2 VARCHAR2(50),
custcity VARCHAR2(50),
custstate VARCHAR2(2),
custzip VARCHAR2(20),
start_time TIMESTAMP,
end_time TIMESTAMP,
PERIOD FOR cust_valid_time (start_time, end_time));
Copyright	©	2015,	Oracle	and/or	its	affiliates.	All	rights	reserved.		|	
INSERT INTO CUSTOMERS VALUES(1,'Acme Inc.','123 Any
Street','Suite 17','Anytown','AS','99999', TO_TIMESTAMP('01-
JAN-15’) ,NULL);
cus<d	 custname	 custaddr1	 custaddr2	
	
custcity	 custstate	 custzip	 start_<me	 end_<me	
1	 Acme	Inc	 123	Any	
Street	
Suite	17	 Anytown	 CA	 99999	 01-JAN-15	
Valid	Time	Temporal	
Example
Copyright	©	2015,	Oracle	and/or	its	affiliates.	All	rights	reserved.		|	
cus<d	 custname	 custaddr1	 custaddr2	
	
custcity	 custstate	 custzip	 start_<me	 end_<me	
1	 Acme	Inc	 123	Any	
Street	
Suite	17	 Anytown	 CA	 99999	 01-JAN-15	 31-MAY-15	
UPDATE customers
SET end_time = TO_TIMESTAMP('31-MAY-15’)
WHERE custid = 1;
Valid	Time	Temporal	
Example
Copyright	©	2015,	Oracle	and/or	its	affiliates.	All	rights	reserved.		|	
INSERT INTO CUSTOMERS VALUES(1,'Acme Inc.',’456 Another Street',
NULL,'Anytown','AS','99998', TO_TIMESTAMP('01-JUN-15’) ,NULL);
cus<d	 custname	 custaddr1	 custaddr2	
	
custcity	 custstate	 custzip	 start_<me	 end_<me	
1	 Acme	Inc	 123	Any	
Street	
Suite	17	 Anytown	 CA	 99999	 01-JAN-15	 31-MAY-15	
1	 Acme	Inc	 456	
Another	
Street	
Anytown	 CA	 99998	 01-JUN-15	
Valid	Time	Temporal	
Example
Copyright	©	2015,	Oracle	and/or	its	affiliates.	All	rights	reserved.		|	
SELECT custaddr1, custaddr2, custcity, custstate, custzip
FROM customers WHERE custid = 1;
cus<d	 custname	 custaddr1	 custaddr2	
	
custcity	 custstate	 custzip	 start_<me	 end_<me	
1	 Acme	Inc	 123	Any	
Street	
Suite	17	 Anytown	 CA	 99999	 01-JAN-15	 31-MAY-15	
1	 Acme	Inc	 456	
Another	
Street	
Anytown	 CA	 99998	 01-JUN-15	
Valid	Time	Temporal	
Example
Copyright	©	2015,	Oracle	and/or	its	affiliates.	All	rights	reserved.		|	
EXEC DBMS_FLASHBACK_ARCHIVE.ENABLE_AT_VALID_TIME('CURRENT');
SELECT custid, start_time, end_time
FROM customers WHERE custid=1;
cus<d	 custname	 custaddr1	 custaddr2	
	
custcity	 custstate	 custzip	 start_<me	 end_<me	
1	 Acme	Inc	 123	Any	
Street	
Suite	17	 Anytown	 CA	 99999	 01-JAN-15	 31-MAY-15	
1	 Acme	Inc	 456	
Another	
Street	
Anytown	 CA	 99998	 01-JUN-15	
Valid	Time	Temporal	
Example
Copyright	©	2015,	Oracle	and/or	its	affiliates.	All	rights	reserved.		|	
SELECT custid, start_time, end_time
FROM customers
AS OF PERIOD FOR cust_valid_time TO_TIMESTAMP('03-JUN-15');
cus<d	 custname	 custaddr1	 custaddr2	
	
custcity	 custstate	 custzip	 start_<me	 end_<me	
1	 Acme	Inc	 123	Any	
Street	
Suite	17	 Anytown	 CA	 99999	 01-JAN-15	 31-MAY-15	
1	 Acme	Inc	 456	
Another	
Street	
Anytown	 CA	 99998	 01-JUN-15	
Valid	Time	Temporal	
Example
Copyright	©	2015,	Oracle	and/or	its	affiliates.	All	rights	reserved.		|	
Select * from
Employees MATCH_RECOGNIZE (
…
PATTERN(X+ Z{2})
…
)
•  Scalable	discovery	of	business	event	sequences	
– Clickstream	logs:	sessioniza?on,	search	behaviour	
– Financial	transac?ons:	fraud	detec?on,	double	
bopom	(“W”)	stock	analysis	
– Telco:	dropped	calls	
– Medical	sensors:	automated	medical	observa?ons	
and	detec?ons	
Paperns	are	defined	
using	regular	
expressions	
Ascending	Order	
SQL	Papern	Matching	
Simplified	Analysis	of	Data
Copyright	©	2015,	Oracle	and/or	its	affiliates.	All	rights	reserved.		|	
SQL	Papern	Matching	
Example:	Find	Double	Bopom	(W)	
•  Find	double	bopom	(W)	
paperns	and	report:	
•  Beginning	and	ending	date	
of	the	papern	
•  Average	Price	Increase	in	
the	second	ascent		
•  Modify	the	search	to	find	
only	paperns	that	lasted	
less	than	a	week	
PATTERN (X+ Y+ W+ Z+)
DEFINE X AS (price < PREV(price))
days
Stock price
X
Copyright	©	2015,	Oracle	and/or	its	affiliates.	All	rights	reserved.		|	
SQL	Papern	Matching	
•  Find	double	bopom	(W)	
paperns	and	report:	
•  Beginning	and	ending	date	
of	the	papern	
•  Average	Price	Increase	in	
the	second	ascent		
•  Modify	the	search	to	find	
only	paperns	that	lasted	
less	than	a	week	
PATTERN (X+ Y+ W+ Z+)
DEFINE X AS (price < PREV(price))
Y AS (price > PREV(price))
days
X	 Y	
Stock price
Example:	Find	Double	Bopom	(W)
Copyright	©	2015,	Oracle	and/or	its	affiliates.	All	rights	reserved.		|	
SQL	Papern	Matching	
•  Find	double	bopom	(W)	
paperns	and	report:	
•  Beginning	and	ending	date	
of	the	papern	
•  Average	Price	Increase	in	
the	second	ascent		
•  Modify	the	search	to	find	
only	paperns	that	lasted	
less	than	a	week	
days
SELECT first_x, last_z
FROM ticker MATCH_RECOGNIZE (
PARTITION BY name ORDER BY time
MEASURES FIRST(x.time) AS first_x
LAST(z.time) AS last_z
ONE ROW PER MATCH
PATTERN (X+ Y+ W+ Z+)
DEFINE X AS (price < PREV(price))
Y AS (price > PREV(price))
W AS (price < PREV(price))
Z AS (price > PREV(price))
X	 Y	 W Z	
Stock price
Example:	Find	Double	Bopom	(W)
Copyright	©	2015,	Oracle	and/or	its	affiliates.	All	rights	reserved.		|	
SQL	Papern	Matching	
1 9 13 19 days
Stock price
SELECT first_x, last_z
FROM ticker MATCH_RECOGNIZE (
PARTITION BY name ORDER BY time
MEASURES FIRST(x.time) AS first_x,
LAST(z.time) AS last_z
ONE ROW PER MATCH
PATTERN (X+ Y+ W+ Z+)
DEFINE X AS (price < PREV(price)),
Y AS (price > PREV(price)),
W AS (price < PREV(price)),
Z AS (price > PREV(price)))
First_x Last_z
1 9
13 19
•  Find	double	bopom	(W)	
paperns	and	report:	
•  Beginning	and	ending	date	
of	the	papern	
•  Average	Price	Increase	in	
the	second	ascent		
•  Modify	the	search	to	find	
only	paperns	that	lasted	
less	than	a	week	
Example:	Find	Double	Bopom	(W)
Copyright	©	2015,	Oracle	and/or	its	affiliates.	All	rights	reserved.		|	
next = lineNext.getQuantity();
}
if (!q.isEmpty() && (prev.isEmpty() || (eq(q, prev) && gt(q, next)))) {
state = "S";
return state;
}
if (gt(q, prev) && gt(q, next)) {
state = "T";
return state;
}
if (lt(q, prev) && lt(q, next)) {
state = "B";
return state;
}
if (!q.isEmpty() && (next.isEmpty() || (gt(q, prev) && eq(q, next)))) {
state = "E";
return state;
}
if (q.isEmpty() || eq(q, prev)) {
state = "F";
return state;
}
return state;
}
private boolean eq(String a, String b) {
if (a.isEmpty() || b.isEmpty()) {
return false;
}
return a.equals(b);
}
private boolean gt(String a, String b) {
if (a.isEmpty() || b.isEmpty()) {
return false;
}
return Double.parseDouble(a) > Double.parseDouble(b);
}
private boolean lt(String a, String b) {
if (a.isEmpty() || b.isEmpty()) {
return false;
}
return Double.parseDouble(a) < Double.parseDouble(b);
}
public String getState() {
return this.state;
}
}
BagFactory bagFactory = BagFactory.getInstance();
@Override
public Tuple exec(Tuple input) throws IOException {
long c = 0;
String line = "";
String pbkey = "";
V0Line nextLine;
V0Line thisLine;
V0Line processLine;
V0Line evalLine = null;
V0Line prevLine;
boolean noMoreValues = false;
String matchList = "";
ArrayList<V0Line> lineFifo = new ArrayList<V0Line>();
boolean finished = false;
DataBag output = bagFactory.newDefaultBag();
if (input == null) {
return null;
}
if (input.size() == 0) {
return null;
}
Object o = input.get(0);
if (o == null) {
return null;
}
//Object o = input.get(0);
if (!(o instanceof DataBag)) {
int errCode = 2114;
SELECT first_x, last_z
FROM ticker MATCH_RECOGNIZE (
PARTITION BY name ORDER BY time
MEASURES FIRST(x.time) AS first_x,
LAST(z.time) AS last_z
ONE ROW PER MATCH
PATTERN (X+ Y+ W+ Z+)
DEFINE X AS (price < PREV(price)),
Y AS (price > PREV(price)),
W AS (price < PREV(price)),
Z AS (price > PREV(price) AND
z.time - FIRST(x.time) <= 7 ))
250+	Lines	of	Java	 12	Lines	of	SQL	
Less	code,	easier	to	maintain,	faster	to	write	
SQL	Papern	Matching	
More	power	to	directly	applied	to	your	data
Copyright	©	2015,	Oracle	and/or	its	affiliates.	All	rights	reserved.		|	
PL/SQL	in	SQL	
PL/SQL	func?ons	embedded	in	“with”	clause	
WITH
FUNCTION get_domain(url VARCHAR2) RETURN VARCHAR2 IS
pos BINARY_INTEGER;
len BINARY_INTEGER;
BEGIN
pos := INSTR(url, 'www.');
len := INSTR(SUBSTR(url, pos + 4), '.') - 1;
RETURN SUBSTR(url, pos + 4, len);
END;
SELECT
DISTINCT get_domain(catalog_url)
FROM
orders;
Copyright	©	2015,	Oracle	and/or	its	affiliates.	All	rights	reserved.		|	
IDENTITY	
Auto	increment	for	Oracle	
•  Create	a	table	with	an	id	column	that	is	always	populated	
•  Create	a	table	with	an	id	column	that	is	populated	if	not	provided	
CREATE TABLE t1
(id NUMBER GENERATED AS IDENTITY,
first_name VARCHAR2(30)
);
CREATE TABLE t2
(id NUMBER GENERATED BY DEFAULT AS IDENTITY
(START WITH 100 INCREMENT BY 10),
first_name varchar2(30)
);
Copyright	©	2015,	Oracle	and/or	its	affiliates.	All	rights	reserved.		|	
32k	VARCHAR2/NVARCHAR2	
Longer	strings	to	store	
•  Enable	32k	VARCHAR2	support	
•  Create	a	table	with	32k	VARCHAR2	
ALTER SYSTEM set MAX_STRING_SIZE = EXTENDED scope = SPFILE;
CREATE TABLE Applicants
(id NUMBER GENERATED AS IDENTITY,
first_name VARCHAR2(30),
last_name VARCHAR2(30),
application DATE,
CV VARCHAR2(32767)
);
Copyright	©	2015,	Oracle	and/or	its	affiliates.	All	rights	reserved.		|	
Row	Limit	
SQL	Standard	for	row	limi?ng	
•  Select	only	the	first	5	rows	
•  Select	only	the	first	5%	of	rows	including	rows	that	“?e”	
SELECT employee_id, last_name
FROM employees
ORDER BY employee_id
FETCH FIRST 5 ROWS ONLY;
SELECT employee_id, last_name, salary
FROM employees
ORDER BY salary
FETCH FIRST 5 PERCENT ROWS WITH TIES;
Copyright	©	2015,	Oracle	and/or	its	affiliates.	All	rights	reserved.		|	
•  JMS	support	
•  PL/SQL,	OCI,	JDBC,	.NET	support	
•  Integrated	with	the	Database	
•  Messaging	Gateway	
Oracle	Advanced	Queuing	(AQ)	
Messaging	and	No?fica?on	in	the	Database	
PL/SQL
JMS
Copyright	©	2015,	Oracle	and/or	its	affiliates.	All	rights	reserved.		|	
•  A	single	logical	queue	with	many	“shards”	
– A	“shard”	is	a	way	of	obtaining	higher	concurrency	and	throughput	via	horizontal	
par??oning.	
•  Automa?c	management	of	session	affinity	to	shards	
•  Automa?c	management	of	table	par??ons	to	avoid	conten?on	
•  Automa?c	management	of	par??on	instance	affinity	
•  Integrated	with	the	database	to	op?mize	performance	
	
AQ-JMS	Sharded	Queues	
New	with	12.1.0.2
Copyright	©	2015,	Oracle	and/or	its	affiliates.	All	rights	reserved.		|	
•  Higher	throughput	
•  Less	system	resource	consump?on	
•  Many	enqueuers	and	dequeuers	across	mul?ple	RAC	instances	
•  Large	number	of	subscribers	
AQ-JMS	Sharded	Queues	
Key	benefits
Copyright	©	2015,	Oracle	and/or	its	affiliates.	All	rights	reserved.		|	
AQ	Sharded	Queues	
Architecture	for	Scalability	and	Performance	
Instance	1	
Part	Shard
ENQ DEQ
Part	Shard
ENQ DEQ
Part	Shard
ENQ DEQ
Instance	2	
Instance	3	
Single	logical	queue	model	
Physical	Queue:	par??ons	mapped	to	
shards	with	instance	affinity	on	RAC	
ENQ
ENQ
ENQ
DEQ
DEQ
DEQ
Copyright	©	2015,	Oracle	and/or	its	affiliates.	All	rights	reserved.		|	
•  Higher	throughput	
•  Less	system	resource	consump?on	
•  Large	number	of	subscribers	
•  Event-based	listener	with	fewer	database	connec?ons	
•  Many	concurrent	enqueuers	and	dequeuers	across	mul?ple	RAC	instances	
•  Backwards	Compa?ble	for	Standard	JMS	based	applica?ons	
– just	recreate	the	AQ	in	the	database	
AQ-JMS	Sharded	Queues	
Key	benefits	
1,024	
2,048	
4,096	
8,192	
16,384	
32,768	
65,536	
131,072	
1	 2	 4	 8	 16	 32	 64	 128	
dequeues/second
dequeuer threads
Nonsharded	-	1	node	
Sharded	-	4	nodes	
JMS Queue with
same number of
enq and deq threads
committing after every
10 operations
Copyright	©	2015	Oracle	and/or	its	affiliates.	All	rights	reserved.		|	
Analy?c	Views	
Oracle	Confiden?al	–	Internal/Restricted/Highly	Restricted	 83	
•  Moves	business	logic	(Aggrega?ons,	
Hierarchies,	Calcula?ons)	back	into	
database	
•  Simple	SQL	for	complex	analy?c	queries	
– no	joins	or	GROUP-BY	clauses	necessary	
•  Works	on	top	of	pre-exis?ng	tables	or	
views	
– no	persistent	storage	
•  Built-in	data	visualiza?on	via	APEX
Copyright	©	2016	Oracle	and/or	its	affiliates.	All	rights	reserved.		|	
Analy?c	Views	
•  A	new	type	of	view	in	the	Oracle	Database	
– Business	model	and	calcula?on	rules	are	embedded	within	the	Analy?c	View	
•  Analy?c	Views	as	easily	queried	with	simple	SQL	and	MDX	
– With	a	smart	Analy?c	View,	SQL	genera?on	is	easy	
– MDX	Provider	(OLE	DB	for	OLAP)	supports	Excel	PivotTable	connec?ons	
•  Access	data	from	tables,	views,	external	tables	and	Big	Data	SQL	
– Use	Analy?c	Views	to	organize	and	present	a	wide	variety	of	data	
A	new	type	of	view	in	the	Oracle	Database	
84	Oracle	Confiden<al	–	Internal	and	Highly	Restricted
Copyright	©	2015	Oracle	and/or	its	affiliates.	All	rights	reserved.		|	
Analy?c	Views	
Easier	Access	To	Your	Data	
Oracle	Confiden?al	–	Internal/Restricted/Highly	Restricted	 85	
CSV	
Your	Data	
Analy?c	
View	
Organized	
&	
Enhanced	
SQL	
Simple	SQL	 Your	
Applica?ons
Copyright	©	2016	Oracle	and/or	its	affiliates.	All	rights	reserved.		|	
Three	New	Database	Objects	
•  Apribute	Dimensions	
–  Map	to	data	objects	with	
dimension	/	apribute	data	
–  Iden?fy	the	roles	of	columns	
•  Hierarchies	
–  Organizes	levels	into	
aggrega?on	and	drill	paths	
–  A	new	type	of	view	that	can	
be	queried	with	SQL	
•  Analy?c	Views	
–  Maps	to	data	objects	with	
fact	/	measure	data	
–  A	new	type	of	view	that	an	
can	be	queries	with	SQL	and	
MDX	
Total	
Region	
Country	 Country	
Region	
Country	 Country	Apribute	
Dimension	
Data	
Sources	
Apributes	
Keys	
Levels	
Descrip?ons	
Analy?c	
View	
Fact	Tables	
Hierarchies	
Aggrega?on	
Rules	
Measures	
Calcula?ons	
86	Oracle	Confiden<al	–	Internal	and	Highly	Restricted
Copyright	©	2016	Oracle	and/or	its	affiliates.	All	rights	reserved.		|	
Three	New	Database	Objects	
•  Apribute	Dimensions	 •  Hierarchies	 •  Analy?c	Views	
Total	
Region	
Country	 Country	
Region	
Country	 Country	Apribute	
Dimension	
Data	
Sources	
Apributes	
Keys	
Levels	
Descrip?ons	
Analy?c	
View	
Fact	Tables	
Hierarchies	
Aggrega?on	
Rules	
Measures	
Calcula?ons	
87	Oracle	Confiden<al	–	Internal	and	Highly	Restricted	
CREATE	OR	REPLACE	HIERARCHY	time_hier	
		CLASSIFICATION	caption	VALUE	'CALENDAR'	
		CLASSIFICATION	description	VALUE'CALENDAR'	
USING	time_attr_dim	
	(month	CHILD	OF	
		quarter	CHILD	OF	
		year)	
CREATE	OR	REPLACE	ATTRIBUTE		
DIMENSION	time_attr_dim	
USING	time_dim	
ATTRIBUTES	
	(year_id	
			CLASSIFICATION	caption	VALUE	'YEAR_ID'	
			CLASSIFICATION	description	VALUE	'YEAR	ID',	
		year_name	
				CLASSIFICATION	caption	VALUE	'YEAR_NAME'	
				CLASSIFICATION	description	VALUE	'Year',		
				…)	
LEVEL	month	
		CLASSIFICATION	caption	VALUE	'MONTH'	
		CLASSIFICATION	description	VALUE	'Month'	
		KEY	month_id	
		…	
		DETERMINES	(month_end_date,	
				quarter_id,	
				season,	
				season_order,	
				month_of_year,	
				month_of_quarter)	…	
CREATE	OR	REPLACE	ANALYTIC	VIEW	sales_av	
		CLASSIFICATION	caption	VALUE	'Sales	AV'	
		CLASSIFICATION	description	VALUE		
																														'Sales	Analytic	View'	
		CLASSIFICATION	created_by	VALUE	'George	Jones'	
USING	sales_fact	
DIMENSION	BY	
		(time_attr_dim	
				KEY	month_id	REFERENCES	month_id	
				HIERARCHIES	(	
						time_hier	DEFAULT,	
						time_season_hier,	
						time_year_season_hier,	
						time_month_of_qtr_hier),	
						…	
			)	
MEASURES	
	(sales	FACT	sales	
				CLASSIFICATION	caption	VALUE	'Sales'	
				CLASSIFICATION	description	VALUE	'Sales'	
				CLASSIFICATION	format_string		
																		VALUE	'$999,999,999,999.99',	
		units	FACT	units	
				CLASSIFICATION	caption	VALUE	'Units'	
				CLASSIFICATION	description	VALUE	'Units	Sold'	
				CLASSIFICATION	format_string		
																		VALUE	'999,999,999,999',		
…
Copyright	©	2015	Oracle	and/or	its	affiliates.	All	rights	reserved.		|	
Analy?c	Views	
Organize	and	Enhance	Data	
•  Transforms	data	into	a	business	model	and	presenta?on	layer	in	the	
database	
– Data	is	organized	for	easy	access	and	naviga?on	
– Data	is	easily	extended	with	interes?ng	calcula?ons	and	aggrega?ons	
– Data	is	easily	queried	with	simple	SQL	
•  Easily	defined	with	SQL	
– Complete	applica?ons	defined	with	just	a	few	SQL	statements	
– Supported	by	SQL	Developer	
	 Oracle	Confiden?al	–	Internal/Restricted/Highly	Restricted	 88
Copyright	©	2015	Oracle	and/or	its	affiliates.	All	rights	reserved.		|	
Analy?c	Views	
BeSer	for	Everyone	
•  For	the	data	warehouse	architect	and	developer	
– Easily	extend	star	schema	with	aggregate	data	and	calcula?ons	
•  For	the	applica?on	developer	
– Simplifies	metadata	management	and	SQL	genera?on	
•  For	the	business	user	
– Built-in,	browser-based	data	visualiza?on	via	APEX	applica?on	
Oracle	Confiden?al	–	Internal/Restricted/Highly	Restricted	 89
Copyright	©	2015	Oracle	and/or	its	affiliates.	All	rights	reserved.		|	
Analy?c	Views	
•  How	would	you	build	this	
applica?on?	
– Analysis	of	health	insurance	coverage	
rates	in	the	United	States	
– Coverage	rates	by	?me,	coun?es	and	
states	
– Geographic	comparisons	
– Measure	improvement	over	?me	
– Interac?ve	data	visualiza?on	tools	for	
end	users	
Oracle	Confiden?al	–	Internal/Restricted/Highly	Restricted	 90	
Health	Insurance	Coverage	Rates	by	State,	2014
Copyright	©	2015	Oracle	and/or	its	affiliates.	All	rights	reserved.		|	
Analy?c	Views	
•  This	applica?on	can	be	built	with	5	
SQL	statements	
– Create	2	hierarchies	(4	SQL	statements)	
– Create	1	analy?c	view	(1	SQL	
statement)	
•  Instantly	accessible	via	APEX	based	
data	visualizer	
•  En?rely	in	the	Database	
Oracle	Confiden?al	–	Internal/Restricted/Highly	Restricted	 91	
Data	
Tables,	Views,	etc.	
Analy?c	View	
Simple SQL
Copyright	©	2015	Oracle	and/or	its	affiliates.	All	rights	reserved.		|	
Analy?c	Views	
Simple	SQL	
Oracle	Confiden?al	–	Internal/Restricted/Highly	Restricted	 92	
Fact	data	is	selected	from	
analy?c	views	using	SQL	
Analy?c	views	are	views	on	top	
of	a	star	schema.		
No	storage	structures	
SELECT time_hier.member_name AS TIME,
geog_hier.member_name AS GEOGRAPHY,
pct_insured
FROM insured_av HIERARCHIES(time_hier,geog_hier)
WHERE time_hier.level_name = 'YEAR'
AND geog_hier.level_name = 'STATE')
ORDER BY time_hier.hier_order ,
geog_hier.hier_order;
Copyright	©	2015	Oracle	and/or	its	affiliates.	All	rights	reserved.		|	
Analy?c	Views	
Simple	SQL	
Oracle	Confiden?al	–	Internal/Restricted/Highly	Restricted	 93	
The	HIERARCHIES	clause	
specifies	the	dimensions	and	
hierarchies	for	this	query	
No	JOIN	or	GROUP	BY	clauses	in	
analy?c	view	queries	
SELECT time_hier.member_name AS TIME,
geog_hier.member_name AS GEOGRAPHY,
pct_insured
FROM insured_av HIERARCHIES(time_hier,geog_hier)
WHERE time_hier.level_name = 'YEAR'
AND geog_hier.level_name = 'STATE'
ORDER BY time_hier.hier_order ,
geog_hier.hier_order;
Copyright	©	2015	Oracle	and/or	its	affiliates.	All	rights	reserved.		|	
Analy?c	Views	
Simple	SQL	
Oracle	Confiden?al	–	Internal/Restricted/Highly	Restricted	 94	
Standardized	columns	such	as	
‘member_name’	are	selected	
from	the	hierarchies		
A	typical	star	query	would	
instead	select	a	column	such	as	
‘?me.year’	
SELECT time_hier.member_name AS TIME,
geog_hier.member_name AS GEOGRAPHY,
pct_insured
FROM insured_av HIERARCHIES(time_hier,geog_hier)
WHERE time_hier.level_name = 'YEAR'
AND geog_hier.level_name = 'STATE'
ORDER BY time_hier.hier_order ,
geog_hier.hier_order;
Copyright	©	2015	Oracle	and/or	its	affiliates.	All	rights	reserved.		|	
Analy?c	Views	
Simple	SQL	
Oracle	Confiden?al	–	Internal/Restricted/Highly	Restricted	 95	
Levels	of	aggrega?on	are	
specified	in	the	WHERE	clause	
When	filtering	on	the	level	
‘State’	for	the	?me	hierarchy,	
the	member	named	will	include	
California,	New	York,	etc	
SELECT time_hier.member_name AS TIME,
geog_hier.member_name AS GEOGRAPHY,
pct_insured
FROM insured_av HIERARCHIES(time_hier,geog_hier)
WHERE time_hier.level_name = 'YEAR'
AND geog_hier.level_name = 'STATE'
ORDER BY time_hier.hier_order ,
geog_hier.hier_order;
Copyright	©	2015	Oracle	and/or	its	affiliates.	All	rights	reserved.		|	
Analy?c	Views	
Simple	SQL	
Oracle	Confiden?al	–	Internal/Restricted/Highly	Restricted	 96	
To	drill,	just	update	the	WHERE	
clause.	Everything	else	remains	
the	same.		
The	calcula?ons	automa?cally	
use	new	hierarchy	levels.		
SELECT time_hier.member_name AS TIME,
geog_hier.member_name AS GEOGRAPHY,
pct_insured
FROM insured_av HIERARCHIES(time_hier,geog_hier)
WHERE time_hier.level_name = 'YEAR'
AND geog_hier.level_name = 'COUNTY'
ORDER BY time_hier.hier_order ,
geog_hier.hier_order;
Copyright	©	2015	Oracle	and/or	its	affiliates.	All	rights	reserved.		|	
Analy?c	Views	
Simple	SQL	
Oracle	Confiden?al	–	Internal/Restricted/Highly	Restricted	 97	
SELECT time_hier.member_name AS TIME,
geog_hier.member_name AS GEOGRAPHY,
pct_insured_diff_us_avg
FROM insured_av HIERARCHIES(time_hier,geog_hier)
WHERE time_hier.level_name = 'YEAR'
AND geog_hier.level_name = 'COUNTY'
ORDER BY time_hier.hier_order ,
geog_hier.hier_order;
To	select	a	calcula?on,	just	
select	columns		
Calcula?ons	are	express	in	the	
analy?c	view	so	they	can	just	be	
selected	in	the	query
Copyright	©	2015	Oracle	and/or	its	affiliates.	All	rights	reserved.		|	
Analy?c	Views	
Embedded	Calcula<ons	
•  Easily	create	new	measures	
– Simplified	syntax	based	on	
business	model	
– Includes	dimensional	and	
hierarchical	func?ons	
98	Oracle	Confiden?al	–	Internal	
SHARE_OF(pct_uninsured HIERARCHY
geog_hier
MEMBER country ['USA']) – 1)
Add	Percent	Uninsured	
Difference	from	US	Average	
with	a	single	line	of	code
Copyright	©	2015	Oracle	and/or	its	affiliates.	All	rights	reserved.		|	
Analy?c	Views	
Embedded	Calcula<ons	
99	Oracle	Confiden?al	–	Internal	
LAG_DIFF_PERCENT(pct_insured)
OVER (HIERARCHY time_hier
OFFSET 1 ACROSS ANCESTOR AT LEVEL year)
Add	?me	series	calcula?ons	
with	a	single	line	of	code
Copyright	©	2016	Oracle	and/or	its	affiliates.	All	rights	reserved.		|	 100	
“Standard”	and	Analy?c	Views	
“Standard”	View	 Analy<c	View	
Data	Sources	(FROM)	 Yes	 Yes	
Joins	 Yes	 Yes	
Business	Model-Based	Calcula?ons	 No	 Yes	
Automa?c	Hierarchical	Columns	 No	 Yes	
Automa?c	Mul?-Level	Aggrega?on	 No	 Yes	
Automa?c	Filter	Expansion	 No	 Yes	
Automa?c	Outer	Join	 No	 Yes	
Automa?c	Order	of	Calcula?on	 No	 Yes	
Presenta?on	Metadata	 No	 Yes	
Oracle	Confiden<al	–	Internal	and	Highly	Restricted
Copyright	©	2015,	Oracle	and/or	its	affiliates.	All	rights	reserved.		|	
JSON	Support	
101	Public
Copyright	©	2015	Oracle	and/or	its	affiliates.	All	rights	reserved.		|	
JSON	Queries	using	SQL	
•  Simple	Queries	
	
	
•  Advanced	queries	using	JSON	path	expressions	
	
	
– Complies	with	SQL:2016	syntax	
102	
SELECT j.PO_DOCUMENT
FROM J_PURCHASEORDER j
WHERE j.PO_DOCUMENT.PONumber = 1600;
SELECT JSON_VALUE(PO_DOCUMENT,
'$.LineItems[0].Part.UnitPrice’ returning NUMBER(5,3))
FROM J_PURCHASEORDER p
WHERE JSON_VALUE(PO_DOCUMENT, '$.PONumber' RETURNING
NUMBER(10)) = 1600;
Copyright	©	2016,	Oracle	and/or	its	affiliates.	All	rights	reserved.		|	
JSON	integra?on	with	PL/SQL	
•  New	PL/SQL	objects	enable	fine	grained	manipula?on	of	JSON	content		
– JSON_OBJECT_T	:	for	working	with	JSON	objects	
– JSON_ARRAY_T	:	for	working	with	JSON	Arrays	
– JSON_OBJECT_T	and	JSON_ARRAY_T	are	subtypes	of	JSON_ELEMENT_T	
•  These	objects	provide	a	set	of	methods	for	manipula?ng	JSON	
•  Piecewise	updates	of	JSON	documents	now	supported	in	PL/SQL	
	
Public	 103
Copyright	©	2016,	Oracle	and/or	its	affiliates.	All	rights	reserved.		|	
JSON	integra?on	with	PL/SQL	
WITH FUNCTION updateTax(JSON_DOC in VARCHAR2 ) RETURN VARCHAR2 IS
jo JSON_OBJECT_T;
price NUMBER;
taxRate NUMBER;
BEGIN
jo := JSON_OBJECT_T(JSON_DOC);
taxRate := jo.get_Number('taxRate');
price := jo.get_Number('total');
jo.put('totalIncludingTax', price * (1+taxRate));
RETURN jo.to_string();
END;
ORDERS AS (
SELECT '{"taxRate":0.175,"total":10.00}' JSON_DOCUMENT
FROM dual
)
SELECT JSON_DOCUMENT, updateTax(JSON_DOCUMENT)
FROM ORDERS;
JSON_DOCUMENT UPDATETAX(JSON_DOCUMENT)
------------------------------- ---------------------------------------------------------
{"taxRate":0.175,"total":10.00} {"taxRate":0.175,"total":10.00,"totalIncludingTax":11.75} 	
Public	 104
Copyright	©	2016,	Oracle	and/or	its	affiliates.	All	rights	reserved.		|	
Data	Guide:	Understanding	your	JSON	documents	
•  Metadata	discovery:	discovers	the	structure	of	
collec?on	of	JSON	documents		
– Op?onal:	deep	analysis	of	JSON	for	List	of	Values,	ranges,	
sizing	etc.	
•  Automa?cally	Generates	
– Virtual	columns		
– Rela?onal	views	
•  De-normalized	rela?onal	views	for	arrays	
– Reports/Synopsis	of	JSON	structure	
Public	 105
Copyright	©	2016,	Oracle	and/or	its	affiliates.	All	rights	reserved.		|	 106	
	
Data	Guide:	Automa?c	Schema	Inference	
SQL> desc MOVIE_TICKETS
NAME TYPE
--------------------- -----------
BOOKING_ID RAW(16)
BOOKING_TIME TIMESTAMP(6)
BOOKING_DETAILS VARCHAR2(4000)
Table	containing	
JSON	documents	
JSON	DataGuide	 Table	enhanced	with	
virtual	columns	
SQL> desc MOVIE_TICKETS
NAME TYPE
--------------------- -----------
BOOKING_ID RAW(16)
BOOKING_TIME TIMESTAMP(6)
BOOKING_DETAILS VARCHAR2(4000)
BOOKING_DETAILS$Movie VARCHAR2(16)
BOOKING_DETAILS$Theater VARCHAR2(16)
BOOKING_DETAILS$Adults NUMBER
BOOKING_DETAILS$Time VARCHAR2(32){
"Theater":"AMC 15",
"Movie":"Jurrasic World 3D",
"Time“:2015-11-26T18:45:00",
"Tickets":{
"Adults":2
}
}
	
DBMS_JSON.AddVC(
‘MOVIE_TICKETS’,
‘BOOKING_DETAILS’);	
Public
Copyright	©	2016,	Oracle	and/or	its	affiliates.	All	rights	reserved.		|	
JSON	Search	Index	:	A	universal	index	for	JSON	content	
•  Supports searching on JSON using key, path and value
•  Supports range searches on numeric values
•  Supports full text searches:
–  Full boolean search capabilities (and, or, and not)
–  Phrase search, proximity search and "within field" searches.
–  Inexact queries: fuzzy match, soundex and name search.
–  Automatic linguistic stemming for 32 languages
–  A full, integrated ISO thesaurus framework
Public	 107	
CREATE SEARCH INDEX JSON_SEARCH_INDEX
ON J_PURCHASEORDER (PO_DOCUMENT) FOR JSON;
Copyright	©	2016,	Oracle	and/or	its	affiliates.	All	rights	reserved.		|	
Query	Op?miza?ons	for	JSON	
Exadata	Smart	Scans	
•  Exadata	Smart	Scans	execute	por?ons	of	SQL	queries	
on	Exadata	storage	cells	
•  JSON	query	opera?ons	‘pushed	down’	to	Exadata	
storage	cells	
•  Massively	parallel	processing	of	JSON	documents	
In-Memory	Columnar	Store	
•  Virtual	columns,	included	those	generated	using	JSON	
Data	Guide	loaded	into	In-Memory	Virtual	Columns	
•  JSON	documents	loaded	using	a	highly	op?mized	In-
Memory	binary	format	
•  Query	opera?ons	on	JSON	content	automa?cally	
directed	to	In-Memory	
Public	 108
Copyright	©	2016,	Oracle	and/or	its	affiliates.	All	rights	reserved.		|	
Na?ve	JSON	Genera?on	
•  JSON	genera?on	func?ons	available:	
– JSON_OBJECT	/	JSON_OBJECTAGG	
– JSON_ARRAY	/	JSON	_ARRAYAGG	
Public	 109	
SQL> SELECT JSON_OBJECT('Id' is EMPLOYEE_ID, 'FirstName' is FIRST_NAME,
2 'LastName' is LAST_NAME) JSON
3 FROM HR.EMPLOYEES
4 WHERE EMPLOYEE_ID = 100;
	
JSON
------------------------------------------------------------------------------
{ "Id" : 100 , "FirstName" : "Steven" , "LastName" : "King" }
	
SQL>
Copyright	©	2014	Oracle	and/or	its	affiliates.	All	rights	reserved.		|	
Mul?tenant	
110	Public
Copyright	©	2014	Oracle	and/or	its	affiliates.	All	rights	reserved.		|	
Applica?on	Containers	
Public	 111	
the	brooklyn	bean	V2	
Programs	replicated	across	PDBs
Copyright	©	2014	Oracle	and/or	its	affiliates.	All	rights	reserved.		|	
•  Applica?on	Container	comprises	
– Applica?on	Root	(Master)	
– Applica?on	PDBs	(for	each	Tenant)	
– Applica?on	Seed	(for	provisioning)	
•  PDBs	share	applica?on	objects	
– Code,	metadata	and	data	
•  Further	simplifies	management	
– Apply	updates	to	applica?on	container	
– Sync	tenant	PDBs	from	central	master	
•  Suitable	for	all	applica?ons	
– SaaS,	franchise,	divisional,	etc.	
Public	 112	
Applica?on	Containers	
Root	container	for	your	applica<ons
Copyright	©	2014	Oracle	and/or	its	affiliates.	All	rights	reserved.		|	
Applica?on	Containers	
Public	 113	
Share	&	propagate	across	mul<ple	PDBs	
Account	
Type	
	
	
•  Credit	
•  Debit	
•  Check	
•  Savings	
Bank	
Account	
Person	
Bank	
Card	
PDB$SEED	 APP	
ROOT	 PDB1	 PDB2	 PDB3
Copyright	©	2014	Oracle	and/or	its	affiliates.	All	rights	reserved.		|	
What	is	an	Applica?on	Container	?	
	
•  An	Applica?on	container	is	a	collec?on	of	PDBs	consis?ng	of	Applica?on	Root	and	all	
Applica?on	PDBs	associated	with	it	
Public	 114	
CDB$ROOT	
App	Root	 AppPDB	1	 AppPDB	2	 PDB1	
CDB$ROOT	
APP	Root	 PDB1	
AppPDB	1	 AppPDB	2	
Physical	Representa?on	
Logical	Representa?on
Copyright	©	2014	Oracle	and/or	its	affiliates.	All	rights	reserved.		|	
Applica?on	Containers	
•  Applica?on	Root	PDB	for	defining	applica?on	master		
– Metadata	and	common	data	shared	across	tenant	PDBs	
•  Install	one	copy	of	your	applica?on	
•  Instant	provisioning	of	an	Applica?on	PDB/Tenant	(with	a	seed	PDB)	
•  Container	Data	views	for	repor?ng	across	PDBs	(CONTAINERS	clause	
based)	
•  Supports	in-place	simple	patching	
•  Supports	Unplug/Plug	upgrade	across	Applica?on	Root	
Public	 115	
The	future	of	Database	Applica<on	Development
Copyright	©	2015,	Oracle	and/or	its	affiliates.	All	rights	reserved.		|	
Sharding	
116	Public
Copyright	©	2015,	Oracle	and/or	its	affiliates.	All	rights	reserved.		|	
Oracle	Database	Sharding	
117	
Oracle	Database	for	web-scale	applica<ons	
One	giant	database	par??oned	into	many	small	
databases	(shards)	
Customers	Americas	
Customers	
Customers	Europe	
Customers	Asia	
•  RAC	and	Data	Guard	meet	needs	of	over	99%	of	
applica?ons	while	preserving	applica?on	transparency	
•  Some	Global-Scale	OLTP	applica?ons	prefer	to	shard	
massive	databases	into	a	farm	of	smaller	databases	
–  Avoid	scalability	or	availability	edge	cases	of	a	single	large	
database	
–  Willing	to	customize	data	model	and	applica?ons	to	enable	
transac?ons	to	be	automa?cally	routed	to	the	right	shard	
•  Na?ve	SQL	for	sharding	tables	across	up	to	1000	Shards	
-  Rou?ng	of	SQL	based	on	shard	key,	and	cross	shard	queries	
-  Online	addi?on	and	reorganiza?on	of	shards	
-  Linear	scalability	of	data,	workload,	users	with	isola?on	
Public
Copyright	©	2015,	Oracle	and/or	its	affiliates.	All	rights	reserved.		|	
Applica?on	Suitability	for	Sharding	
OLTP	Applica<ons	with	the	Following	Characteris<cs	
•  Applica?ons	for	massive	scale	
– E.g.	e-commerce,	mobile,	social	etc.	
•  Applica?ons	must	be	shard-aware	
•  Primary	usage	papern	
– Single-shard	opera?ons	based	on	shard	key	,	e.g.	customer_id,		account_id	etc.	
118	Public
Copyright	©	2015,	Oracle	and/or	its	affiliates.	All	rights	reserved.		|	 119	
Oracle	Sharding	Automated	Distribu?on	
Enhanced	SQL	syntax	for	Sharding	
…
CREATE SHARDED TABLE Customers
( CustId VARCHAR2(60) NOT NULL,
FirstName VARCHAR2(60),
LastName VARCHAR2(60),
…
PRIMARY KEY(CustId),
)
PARTITION BY CONSISTENT HASH (CustId)
…
•  SQL	syntax	for	crea?ng	sharded	tables	
•  Not	proprietary	APIs	as	with	NoSQL	
•  Crea?on	of	a	sharded	table	automa?cally	
par??ons	data	across	shards	
•  Transparent	resharding	as	data	grows	
•  Choice	of	sharding	methods:	
•  System	managed	-	consistent	hash	
•  User	defined	-	range,	list	
•  Composite	-	range-hash,	list-hash	
•  Common	reference	data	(e.g.	Price	List)	is	
automa?cally	duplicated	on	all	shards	
•  Supports	shard	placement	in	specific		
geographies	to	sa?sfy	government	data	privacy	
…	
…	
Public
Copyright	©	2015,	Oracle	and/or	its	affiliates.	All	rights	reserved.		|	
120	
Sharded	Schema	
Customers	 Orders	 Line	Items	
Products	
Sharded	
Duplicated	
Public
Copyright	©	2015,	Oracle	and/or	its	affiliates.	All	rights	reserved.		|	
Sharded	Table	Family	–	Enhanced	SQL	DDL	Syntax	
	
CREATE LOOKUP TABLE Products(
SKU NUMBER(4) PRIMARY KEY,
Product VARCHAR2(20),
Price NUMBER(6,2))
)
TABLESPACE dupl ;
CREATE SHARDED TABLE Customers
( CustNo NUMBER NOT NULL,
Name VARCHAR2(50),
….
Class VARCHAR2(3),
CONSTRAINT RootPK PRIMARY
KEY(CustNo)
)
PARTITION BY CONSISTENT HASH (CustNo)
PARTITIONS AUTO
TABLESPACE SET ts1 ;
CREATE SHARDED TABLE Orders
( OrderNo NUMBER(5),
CustNo NUMBER(3),
OrderDate DATE ,
…
CONSTRAINT CustFK FOREIGN KEY
(CustNo)
REFERENCES Customers(CustNo)
)
PARTITION BY REFERENCE (CustFK) ;
121	Public
Copyright	©	2015,	Oracle	and/or	its	affiliates.	All	rights	reserved.		|	
Coordinator		
DB	
App	Tier	
Rou?ng	Tier	
122	
Rou?ng	Support	on	Client	for	Highest	Speed		
	
Applica?on	
Server	
Shard	Directors	
•  Clients	pass	sharding	key	(e.g.	Customer	ID)	
to	Connec?on	pool,	connec?on	is	routed	to	
the	right	shard
•  Fast:	caching	key	ranges	on	client	ensures	
that	most	accesses	go	directly	to	the	shard	
•  Scalable:	easily	scales	with	more	clients	and	
shards		
•  Supports	UCP,	OCI,	ODP.NET,	and	JDBC		
Sharding	key	
…	
…	
Public	
Data	
Tier
Copyright	©	2015,	Oracle	and/or	its	affiliates.	All	rights	reserved.		|	
Data	
Tier	
123	
•  If	client	does	not	pass	shard	key	to	
Connec?on	pool,	the	connec?on	is	made	
to	the	coordinator	database
•  Coordinator	parses	SQL	and	will	proxy/
route	request	to	one	or	more	shards	
•  Supports	shard	pruning	and	scaper-
gather
•  For	developer	convenience	and	not	for	
high	performance	
•  Supports	many	but	not	all	Queries	
•  No	Update	support	
Coordinator		
DB	
App	Tier	
Rou?ng	Tier	
Applica?on	
Server	
Shard	Directors	
…	
…	
Public	
Non-Shard	Key	Access	&	Cross-Shard	Queries
Copyright	©	2015,	Oracle	and/or	its	affiliates.	All	rights	reserved.		|	
Program	Agenda	
Overview	and	History	
Vision	
Data	Management	Strategy	
Oracle	and	Modern	Development	
Open	Source	ini?a?ves	
Developer	centric	func?onali?es	
Q	&	A	
1	
2	
3	
4	
5	
124	
6	
7
Copyright	©	2015,	Oracle	and/or	its	affiliates.	All	rights	reserved.		|	 125
Copyright	©	2015,	Oracle	and/or	its	affiliates.	All	rights	reserved.		|	 126
Application Development with Oracle Database

More Related Content

What's hot

Oracle Solaris Cloud Management and Deployment with OpenStack
Oracle Solaris Cloud Management and Deployment with OpenStackOracle Solaris Cloud Management and Deployment with OpenStack
Oracle Solaris Cloud Management and Deployment with OpenStack
OTN Systems Hub
 
Java EE Next - BeJUG JavaOne Afterglow 2016
Java EE Next - BeJUG JavaOne Afterglow 2016Java EE Next - BeJUG JavaOne Afterglow 2016
Java EE Next - BeJUG JavaOne Afterglow 2016
David Delabassee
 
OOW16 - Leverage Oracle Integration Cloud Service for Oracle E-Business Suite...
OOW16 - Leverage Oracle Integration Cloud Service for Oracle E-Business Suite...OOW16 - Leverage Oracle Integration Cloud Service for Oracle E-Business Suite...
OOW16 - Leverage Oracle Integration Cloud Service for Oracle E-Business Suite...
vasuballa
 
Oracle Solaris Overview
Oracle Solaris OverviewOracle Solaris Overview
Oracle Solaris Overview
OTN Systems Hub
 
OOW16 - Planning Your Upgrade to Oracle E-Business Suite 12.2 [CON1423]
OOW16 - Planning Your Upgrade to Oracle E-Business Suite 12.2 [CON1423]OOW16 - Planning Your Upgrade to Oracle E-Business Suite 12.2 [CON1423]
OOW16 - Planning Your Upgrade to Oracle E-Business Suite 12.2 [CON1423]
vasuballa
 
OOW16 - Build, Deploy, and Manage Smartphone Applications for Oracle E-Busine...
OOW16 - Build, Deploy, and Manage Smartphone Applications for Oracle E-Busine...OOW16 - Build, Deploy, and Manage Smartphone Applications for Oracle E-Busine...
OOW16 - Build, Deploy, and Manage Smartphone Applications for Oracle E-Busine...
vasuballa
 
OOW16 - Faster and Better: Oracle E-Business Suite Desktop Integration Enhanc...
OOW16 - Faster and Better: Oracle E-Business Suite Desktop Integration Enhanc...OOW16 - Faster and Better: Oracle E-Business Suite Desktop Integration Enhanc...
OOW16 - Faster and Better: Oracle E-Business Suite Desktop Integration Enhanc...
vasuballa
 
TLV - Whats new in MySQL 8
TLV - Whats new in MySQL 8TLV - Whats new in MySQL 8
TLV - Whats new in MySQL 8
Mark Swarbrick
 
Découvrons Oracle Cloud Platform for Integration - Oracle Integration Cloud
Découvrons Oracle Cloud Platform for Integration - Oracle Integration CloudDécouvrons Oracle Cloud Platform for Integration - Oracle Integration Cloud
Découvrons Oracle Cloud Platform for Integration - Oracle Integration Cloud
Sanae BEKKAR
 
OOW16 - Simplified and Touch-Friendly User Interface in Oracle E-Business Sui...
OOW16 - Simplified and Touch-Friendly User Interface in Oracle E-Business Sui...OOW16 - Simplified and Touch-Friendly User Interface in Oracle E-Business Sui...
OOW16 - Simplified and Touch-Friendly User Interface in Oracle E-Business Sui...
vasuballa
 
AIOUG : OTNYathra - Troubleshooting and Diagnosing Oracle Database 12.2 and O...
AIOUG : OTNYathra - Troubleshooting and Diagnosing Oracle Database 12.2 and O...AIOUG : OTNYathra - Troubleshooting and Diagnosing Oracle Database 12.2 and O...
AIOUG : OTNYathra - Troubleshooting and Diagnosing Oracle Database 12.2 and O...
Sandesh Rao
 
OOW16 - Oracle E-Business Suite 12 Upgrade Experience for a 14 TB Oracle E-Bu...
OOW16 - Oracle E-Business Suite 12 Upgrade Experience for a 14 TB Oracle E-Bu...OOW16 - Oracle E-Business Suite 12 Upgrade Experience for a 14 TB Oracle E-Bu...
OOW16 - Oracle E-Business Suite 12 Upgrade Experience for a 14 TB Oracle E-Bu...
vasuballa
 
OOW16 - Oracle E-Business Suite Integration Best Practices [CON6709]
OOW16 - Oracle E-Business Suite Integration Best Practices [CON6709]OOW16 - Oracle E-Business Suite Integration Best Practices [CON6709]
OOW16 - Oracle E-Business Suite Integration Best Practices [CON6709]
vasuballa
 
OOW16 - Migrating and Managing Customizations for Oracle E-Business Suite 12....
OOW16 - Migrating and Managing Customizations for Oracle E-Business Suite 12....OOW16 - Migrating and Managing Customizations for Oracle E-Business Suite 12....
OOW16 - Migrating and Managing Customizations for Oracle E-Business Suite 12....
vasuballa
 
Introducing New AI Ops Innovations in Oracle 19c Autonomous Health Framework ...
Introducing New AI Ops Innovations in Oracle 19c Autonomous Health Framework ...Introducing New AI Ops Innovations in Oracle 19c Autonomous Health Framework ...
Introducing New AI Ops Innovations in Oracle 19c Autonomous Health Framework ...
Sandesh Rao
 
Manufacturing Digitization
Manufacturing DigitizationManufacturing Digitization
Manufacturing Digitization
Keith Kiattipong
 
NZOUG-GroundBreakers-2018 - Troubleshooting and Diagnosing 18c RAC
NZOUG-GroundBreakers-2018 - Troubleshooting and Diagnosing 18c RACNZOUG-GroundBreakers-2018 - Troubleshooting and Diagnosing 18c RAC
NZOUG-GroundBreakers-2018 - Troubleshooting and Diagnosing 18c RAC
Sandesh Rao
 
[2015 Oracle Cloud Summit] 2. Innovate with Oracle Platform as a Service
[2015 Oracle Cloud Summit] 2. Innovate with Oracle Platform as a Service[2015 Oracle Cloud Summit] 2. Innovate with Oracle Platform as a Service
[2015 Oracle Cloud Summit] 2. Innovate with Oracle Platform as a Service
Oracle Korea
 
Rapid private cloud with oracle vm and oracle openstack for oracle linux
Rapid private cloud with oracle vm and oracle openstack for oracle linuxRapid private cloud with oracle vm and oracle openstack for oracle linux
Rapid private cloud with oracle vm and oracle openstack for oracle linux
OTN Systems Hub
 
[Oracle Webcast] Discover the Oracle Blockchain Platform through the eyes of ...
[Oracle Webcast] Discover the Oracle Blockchain Platform through the eyes of ...[Oracle Webcast] Discover the Oracle Blockchain Platform through the eyes of ...
[Oracle Webcast] Discover the Oracle Blockchain Platform through the eyes of ...
Sanae BEKKAR
 

What's hot (20)

Oracle Solaris Cloud Management and Deployment with OpenStack
Oracle Solaris Cloud Management and Deployment with OpenStackOracle Solaris Cloud Management and Deployment with OpenStack
Oracle Solaris Cloud Management and Deployment with OpenStack
 
Java EE Next - BeJUG JavaOne Afterglow 2016
Java EE Next - BeJUG JavaOne Afterglow 2016Java EE Next - BeJUG JavaOne Afterglow 2016
Java EE Next - BeJUG JavaOne Afterglow 2016
 
OOW16 - Leverage Oracle Integration Cloud Service for Oracle E-Business Suite...
OOW16 - Leverage Oracle Integration Cloud Service for Oracle E-Business Suite...OOW16 - Leverage Oracle Integration Cloud Service for Oracle E-Business Suite...
OOW16 - Leverage Oracle Integration Cloud Service for Oracle E-Business Suite...
 
Oracle Solaris Overview
Oracle Solaris OverviewOracle Solaris Overview
Oracle Solaris Overview
 
OOW16 - Planning Your Upgrade to Oracle E-Business Suite 12.2 [CON1423]
OOW16 - Planning Your Upgrade to Oracle E-Business Suite 12.2 [CON1423]OOW16 - Planning Your Upgrade to Oracle E-Business Suite 12.2 [CON1423]
OOW16 - Planning Your Upgrade to Oracle E-Business Suite 12.2 [CON1423]
 
OOW16 - Build, Deploy, and Manage Smartphone Applications for Oracle E-Busine...
OOW16 - Build, Deploy, and Manage Smartphone Applications for Oracle E-Busine...OOW16 - Build, Deploy, and Manage Smartphone Applications for Oracle E-Busine...
OOW16 - Build, Deploy, and Manage Smartphone Applications for Oracle E-Busine...
 
OOW16 - Faster and Better: Oracle E-Business Suite Desktop Integration Enhanc...
OOW16 - Faster and Better: Oracle E-Business Suite Desktop Integration Enhanc...OOW16 - Faster and Better: Oracle E-Business Suite Desktop Integration Enhanc...
OOW16 - Faster and Better: Oracle E-Business Suite Desktop Integration Enhanc...
 
TLV - Whats new in MySQL 8
TLV - Whats new in MySQL 8TLV - Whats new in MySQL 8
TLV - Whats new in MySQL 8
 
Découvrons Oracle Cloud Platform for Integration - Oracle Integration Cloud
Découvrons Oracle Cloud Platform for Integration - Oracle Integration CloudDécouvrons Oracle Cloud Platform for Integration - Oracle Integration Cloud
Découvrons Oracle Cloud Platform for Integration - Oracle Integration Cloud
 
OOW16 - Simplified and Touch-Friendly User Interface in Oracle E-Business Sui...
OOW16 - Simplified and Touch-Friendly User Interface in Oracle E-Business Sui...OOW16 - Simplified and Touch-Friendly User Interface in Oracle E-Business Sui...
OOW16 - Simplified and Touch-Friendly User Interface in Oracle E-Business Sui...
 
AIOUG : OTNYathra - Troubleshooting and Diagnosing Oracle Database 12.2 and O...
AIOUG : OTNYathra - Troubleshooting and Diagnosing Oracle Database 12.2 and O...AIOUG : OTNYathra - Troubleshooting and Diagnosing Oracle Database 12.2 and O...
AIOUG : OTNYathra - Troubleshooting and Diagnosing Oracle Database 12.2 and O...
 
OOW16 - Oracle E-Business Suite 12 Upgrade Experience for a 14 TB Oracle E-Bu...
OOW16 - Oracle E-Business Suite 12 Upgrade Experience for a 14 TB Oracle E-Bu...OOW16 - Oracle E-Business Suite 12 Upgrade Experience for a 14 TB Oracle E-Bu...
OOW16 - Oracle E-Business Suite 12 Upgrade Experience for a 14 TB Oracle E-Bu...
 
OOW16 - Oracle E-Business Suite Integration Best Practices [CON6709]
OOW16 - Oracle E-Business Suite Integration Best Practices [CON6709]OOW16 - Oracle E-Business Suite Integration Best Practices [CON6709]
OOW16 - Oracle E-Business Suite Integration Best Practices [CON6709]
 
OOW16 - Migrating and Managing Customizations for Oracle E-Business Suite 12....
OOW16 - Migrating and Managing Customizations for Oracle E-Business Suite 12....OOW16 - Migrating and Managing Customizations for Oracle E-Business Suite 12....
OOW16 - Migrating and Managing Customizations for Oracle E-Business Suite 12....
 
Introducing New AI Ops Innovations in Oracle 19c Autonomous Health Framework ...
Introducing New AI Ops Innovations in Oracle 19c Autonomous Health Framework ...Introducing New AI Ops Innovations in Oracle 19c Autonomous Health Framework ...
Introducing New AI Ops Innovations in Oracle 19c Autonomous Health Framework ...
 
Manufacturing Digitization
Manufacturing DigitizationManufacturing Digitization
Manufacturing Digitization
 
NZOUG-GroundBreakers-2018 - Troubleshooting and Diagnosing 18c RAC
NZOUG-GroundBreakers-2018 - Troubleshooting and Diagnosing 18c RACNZOUG-GroundBreakers-2018 - Troubleshooting and Diagnosing 18c RAC
NZOUG-GroundBreakers-2018 - Troubleshooting and Diagnosing 18c RAC
 
[2015 Oracle Cloud Summit] 2. Innovate with Oracle Platform as a Service
[2015 Oracle Cloud Summit] 2. Innovate with Oracle Platform as a Service[2015 Oracle Cloud Summit] 2. Innovate with Oracle Platform as a Service
[2015 Oracle Cloud Summit] 2. Innovate with Oracle Platform as a Service
 
Rapid private cloud with oracle vm and oracle openstack for oracle linux
Rapid private cloud with oracle vm and oracle openstack for oracle linuxRapid private cloud with oracle vm and oracle openstack for oracle linux
Rapid private cloud with oracle vm and oracle openstack for oracle linux
 
[Oracle Webcast] Discover the Oracle Blockchain Platform through the eyes of ...
[Oracle Webcast] Discover the Oracle Blockchain Platform through the eyes of ...[Oracle Webcast] Discover the Oracle Blockchain Platform through the eyes of ...
[Oracle Webcast] Discover the Oracle Blockchain Platform through the eyes of ...
 

Similar to Application Development with Oracle Database

DevOps - Developer Cloud Service Demo
DevOps - Developer Cloud Service DemoDevOps - Developer Cloud Service Demo
DevOps - Developer Cloud Service Demo
Mee Nam Lee
 
Manual oracle
Manual oracleManual oracle
Manual oracle
Milan Mergildo Rivera
 
OOW16 - Oracle E-Business Suite: Technology Certification Primer and Roadmap ...
OOW16 - Oracle E-Business Suite: Technology Certification Primer and Roadmap ...OOW16 - Oracle E-Business Suite: Technology Certification Primer and Roadmap ...
OOW16 - Oracle E-Business Suite: Technology Certification Primer and Roadmap ...
vasuballa
 
Extending Hortonworks with Oracle's Big Data Platform
Extending Hortonworks with Oracle's Big Data PlatformExtending Hortonworks with Oracle's Big Data Platform
Extending Hortonworks with Oracle's Big Data Platform
DataWorks Summit/Hadoop Summit
 
Oracle Solaris Build and Run Applications Better on 11.3
Oracle Solaris  Build and Run Applications Better on 11.3Oracle Solaris  Build and Run Applications Better on 11.3
Oracle Solaris Build and Run Applications Better on 11.3
OTN Systems Hub
 
The Rise of Adaptive Marketing
The Rise of Adaptive MarketingThe Rise of Adaptive Marketing
The Rise of Adaptive Marketing
Demandbase
 
Why MySQL High Availability Matters
Why MySQL High Availability MattersWhy MySQL High Availability Matters
Why MySQL High Availability Matters
Mark Swarbrick
 
ODA Target Markets – Partnering to Win
ODA Target Markets – Partnering to WinODA Target Markets – Partnering to Win
ODA Target Markets – Partnering to Win
MarketingArrowECS_CZ
 
Slidedeck Datenanalyse mit Oracle R Enterprise for Beginners - DOAG2015
Slidedeck Datenanalyse mit Oracle R Enterprise for Beginners - DOAG2015Slidedeck Datenanalyse mit Oracle R Enterprise for Beginners - DOAG2015
Slidedeck Datenanalyse mit Oracle R Enterprise for Beginners - DOAG2015
Nadine Schoene
 
Time-series Analytics using Matrix Profile and SAX
Time-series Analytics using Matrix Profile and SAXTime-series Analytics using Matrix Profile and SAX
Time-series Analytics using Matrix Profile and SAX
SUPREET OBEROI
 
Data archival tool
Data archival toolData archival tool
Data archival tool
Soumendu Gorai
 
Cómo terminar tu Planeación Financiera antes de las 6PM
Cómo terminar tu Planeación Financiera antes de las 6PMCómo terminar tu Planeación Financiera antes de las 6PM
Cómo terminar tu Planeación Financiera antes de las 6PM
OracleOfficeOfFinance
 
Overview Oracle Identity Management tijdens AMIS Simplified Security seminar
Overview Oracle Identity Management tijdens AMIS Simplified Security seminarOverview Oracle Identity Management tijdens AMIS Simplified Security seminar
Overview Oracle Identity Management tijdens AMIS Simplified Security seminar
Getting value from IoT, Integration and Data Analytics
 
OOW16 - Migrating and Managing Customizations for Oracle E-Business Suite 12....
OOW16 - Migrating and Managing Customizations for Oracle E-Business Suite 12....OOW16 - Migrating and Managing Customizations for Oracle E-Business Suite 12....
OOW16 - Migrating and Managing Customizations for Oracle E-Business Suite 12....
vasuballa
 
Modern App Development with Oracle Cloud
Modern App Development with Oracle CloudModern App Development with Oracle Cloud
Modern App Development with Oracle Cloud
Juan Carlos Ruiz Rico
 
MySQL London Tech Tour March 2015 - Big Data
MySQL London Tech Tour March 2015 - Big DataMySQL London Tech Tour March 2015 - Big Data
MySQL London Tech Tour March 2015 - Big Data
Mark Swarbrick
 
Building beacon-enabled apps with Oracle MCS
Building beacon-enabled apps with Oracle MCSBuilding beacon-enabled apps with Oracle MCS
Building beacon-enabled apps with Oracle MCS
Steven Davelaar
 
Why cloud?
Why cloud?Why cloud?
Why cloud?
Lilly V.
 
OOW15 - Migrating and Managing Customizations for Oracle E-Business Suite 12.2
OOW15 - Migrating and Managing Customizations for Oracle E-Business Suite 12.2OOW15 - Migrating and Managing Customizations for Oracle E-Business Suite 12.2
OOW15 - Migrating and Managing Customizations for Oracle E-Business Suite 12.2
vasuballa
 
Extensibility in the cloud – power to the business user
Extensibility in the cloud – power to the business userExtensibility in the cloud – power to the business user
Extensibility in the cloud – power to the business user
Getting value from IoT, Integration and Data Analytics
 

Similar to Application Development with Oracle Database (20)

DevOps - Developer Cloud Service Demo
DevOps - Developer Cloud Service DemoDevOps - Developer Cloud Service Demo
DevOps - Developer Cloud Service Demo
 
Manual oracle
Manual oracleManual oracle
Manual oracle
 
OOW16 - Oracle E-Business Suite: Technology Certification Primer and Roadmap ...
OOW16 - Oracle E-Business Suite: Technology Certification Primer and Roadmap ...OOW16 - Oracle E-Business Suite: Technology Certification Primer and Roadmap ...
OOW16 - Oracle E-Business Suite: Technology Certification Primer and Roadmap ...
 
Extending Hortonworks with Oracle's Big Data Platform
Extending Hortonworks with Oracle's Big Data PlatformExtending Hortonworks with Oracle's Big Data Platform
Extending Hortonworks with Oracle's Big Data Platform
 
Oracle Solaris Build and Run Applications Better on 11.3
Oracle Solaris  Build and Run Applications Better on 11.3Oracle Solaris  Build and Run Applications Better on 11.3
Oracle Solaris Build and Run Applications Better on 11.3
 
The Rise of Adaptive Marketing
The Rise of Adaptive MarketingThe Rise of Adaptive Marketing
The Rise of Adaptive Marketing
 
Why MySQL High Availability Matters
Why MySQL High Availability MattersWhy MySQL High Availability Matters
Why MySQL High Availability Matters
 
ODA Target Markets – Partnering to Win
ODA Target Markets – Partnering to WinODA Target Markets – Partnering to Win
ODA Target Markets – Partnering to Win
 
Slidedeck Datenanalyse mit Oracle R Enterprise for Beginners - DOAG2015
Slidedeck Datenanalyse mit Oracle R Enterprise for Beginners - DOAG2015Slidedeck Datenanalyse mit Oracle R Enterprise for Beginners - DOAG2015
Slidedeck Datenanalyse mit Oracle R Enterprise for Beginners - DOAG2015
 
Time-series Analytics using Matrix Profile and SAX
Time-series Analytics using Matrix Profile and SAXTime-series Analytics using Matrix Profile and SAX
Time-series Analytics using Matrix Profile and SAX
 
Data archival tool
Data archival toolData archival tool
Data archival tool
 
Cómo terminar tu Planeación Financiera antes de las 6PM
Cómo terminar tu Planeación Financiera antes de las 6PMCómo terminar tu Planeación Financiera antes de las 6PM
Cómo terminar tu Planeación Financiera antes de las 6PM
 
Overview Oracle Identity Management tijdens AMIS Simplified Security seminar
Overview Oracle Identity Management tijdens AMIS Simplified Security seminarOverview Oracle Identity Management tijdens AMIS Simplified Security seminar
Overview Oracle Identity Management tijdens AMIS Simplified Security seminar
 
OOW16 - Migrating and Managing Customizations for Oracle E-Business Suite 12....
OOW16 - Migrating and Managing Customizations for Oracle E-Business Suite 12....OOW16 - Migrating and Managing Customizations for Oracle E-Business Suite 12....
OOW16 - Migrating and Managing Customizations for Oracle E-Business Suite 12....
 
Modern App Development with Oracle Cloud
Modern App Development with Oracle CloudModern App Development with Oracle Cloud
Modern App Development with Oracle Cloud
 
MySQL London Tech Tour March 2015 - Big Data
MySQL London Tech Tour March 2015 - Big DataMySQL London Tech Tour March 2015 - Big Data
MySQL London Tech Tour March 2015 - Big Data
 
Building beacon-enabled apps with Oracle MCS
Building beacon-enabled apps with Oracle MCSBuilding beacon-enabled apps with Oracle MCS
Building beacon-enabled apps with Oracle MCS
 
Why cloud?
Why cloud?Why cloud?
Why cloud?
 
OOW15 - Migrating and Managing Customizations for Oracle E-Business Suite 12.2
OOW15 - Migrating and Managing Customizations for Oracle E-Business Suite 12.2OOW15 - Migrating and Managing Customizations for Oracle E-Business Suite 12.2
OOW15 - Migrating and Managing Customizations for Oracle E-Business Suite 12.2
 
Extensibility in the cloud – power to the business user
Extensibility in the cloud – power to the business userExtensibility in the cloud – power to the business user
Extensibility in the cloud – power to the business user
 

More from gvenzl

Supercharge your Code to get optimal Database Performance
Supercharge your Code to get optimal Database PerformanceSupercharge your Code to get optimal Database Performance
Supercharge your Code to get optimal Database Performance
gvenzl
 
Top 10 SQL Performance tips & tricks for Java Developers
Top 10 SQL Performance tips & tricks for Java DevelopersTop 10 SQL Performance tips & tricks for Java Developers
Top 10 SQL Performance tips & tricks for Java Developers
gvenzl
 
Oracle Database features every developer should know about
Oracle Database features every developer should know aboutOracle Database features every developer should know about
Oracle Database features every developer should know about
gvenzl
 
Oracle Database on Docker - Best Practices
Oracle Database on Docker - Best PracticesOracle Database on Docker - Best Practices
Oracle Database on Docker - Best Practices
gvenzl
 
Dockerizing Oracle Database
Dockerizing Oracle Database Dockerizing Oracle Database
Dockerizing Oracle Database
gvenzl
 
Running Oracle Database on Docker
Running Oracle Database on DockerRunning Oracle Database on Docker
Running Oracle Database on Docker
gvenzl
 

More from gvenzl (6)

Supercharge your Code to get optimal Database Performance
Supercharge your Code to get optimal Database PerformanceSupercharge your Code to get optimal Database Performance
Supercharge your Code to get optimal Database Performance
 
Top 10 SQL Performance tips & tricks for Java Developers
Top 10 SQL Performance tips & tricks for Java DevelopersTop 10 SQL Performance tips & tricks for Java Developers
Top 10 SQL Performance tips & tricks for Java Developers
 
Oracle Database features every developer should know about
Oracle Database features every developer should know aboutOracle Database features every developer should know about
Oracle Database features every developer should know about
 
Oracle Database on Docker - Best Practices
Oracle Database on Docker - Best PracticesOracle Database on Docker - Best Practices
Oracle Database on Docker - Best Practices
 
Dockerizing Oracle Database
Dockerizing Oracle Database Dockerizing Oracle Database
Dockerizing Oracle Database
 
Running Oracle Database on Docker
Running Oracle Database on DockerRunning Oracle Database on Docker
Running Oracle Database on Docker
 

Recently uploaded

GraphSummit Singapore | The Art of the Possible with Graph - Q2 2024
GraphSummit Singapore | The Art of the  Possible with Graph - Q2 2024GraphSummit Singapore | The Art of the  Possible with Graph - Q2 2024
GraphSummit Singapore | The Art of the Possible with Graph - Q2 2024
Neo4j
 
GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...
GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...
GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...
Neo4j
 
How to use Firebase Data Connect For Flutter
How to use Firebase Data Connect For FlutterHow to use Firebase Data Connect For Flutter
How to use Firebase Data Connect For Flutter
Daiki Mogmet Ito
 
Cosa hanno in comune un mattoncino Lego e la backdoor XZ?
Cosa hanno in comune un mattoncino Lego e la backdoor XZ?Cosa hanno in comune un mattoncino Lego e la backdoor XZ?
Cosa hanno in comune un mattoncino Lego e la backdoor XZ?
Speck&Tech
 
Artificial Intelligence for XMLDevelopment
Artificial Intelligence for XMLDevelopmentArtificial Intelligence for XMLDevelopment
Artificial Intelligence for XMLDevelopment
Octavian Nadolu
 
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Albert Hoitingh
 
“I’m still / I’m still / Chaining from the Block”
“I’m still / I’m still / Chaining from the Block”“I’m still / I’m still / Chaining from the Block”
“I’m still / I’m still / Chaining from the Block”
Claudio Di Ciccio
 
Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...
Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...
Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...
James Anderson
 
Full-RAG: A modern architecture for hyper-personalization
Full-RAG: A modern architecture for hyper-personalizationFull-RAG: A modern architecture for hyper-personalization
Full-RAG: A modern architecture for hyper-personalization
Zilliz
 
UiPath Test Automation using UiPath Test Suite series, part 5
UiPath Test Automation using UiPath Test Suite series, part 5UiPath Test Automation using UiPath Test Suite series, part 5
UiPath Test Automation using UiPath Test Suite series, part 5
DianaGray10
 
Video Streaming: Then, Now, and in the Future
Video Streaming: Then, Now, and in the FutureVideo Streaming: Then, Now, and in the Future
Video Streaming: Then, Now, and in the Future
Alpen-Adria-Universität
 
Mind map of terminologies used in context of Generative AI
Mind map of terminologies used in context of Generative AIMind map of terminologies used in context of Generative AI
Mind map of terminologies used in context of Generative AI
Kumud Singh
 
National Security Agency - NSA mobile device best practices
National Security Agency - NSA mobile device best practicesNational Security Agency - NSA mobile device best practices
National Security Agency - NSA mobile device best practices
Quotidiano Piemontese
 
Uni Systems Copilot event_05062024_C.Vlachos.pdf
Uni Systems Copilot event_05062024_C.Vlachos.pdfUni Systems Copilot event_05062024_C.Vlachos.pdf
Uni Systems Copilot event_05062024_C.Vlachos.pdf
Uni Systems S.M.S.A.
 
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdf
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdfUnlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdf
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdf
Malak Abu Hammad
 
Enchancing adoption of Open Source Libraries. A case study on Albumentations.AI
Enchancing adoption of Open Source Libraries. A case study on Albumentations.AIEnchancing adoption of Open Source Libraries. A case study on Albumentations.AI
Enchancing adoption of Open Source Libraries. A case study on Albumentations.AI
Vladimir Iglovikov, Ph.D.
 
GraphSummit Singapore | Neo4j Product Vision & Roadmap - Q2 2024
GraphSummit Singapore | Neo4j Product Vision & Roadmap - Q2 2024GraphSummit Singapore | Neo4j Product Vision & Roadmap - Q2 2024
GraphSummit Singapore | Neo4j Product Vision & Roadmap - Q2 2024
Neo4j
 
Communications Mining Series - Zero to Hero - Session 1
Communications Mining Series - Zero to Hero - Session 1Communications Mining Series - Zero to Hero - Session 1
Communications Mining Series - Zero to Hero - Session 1
DianaGray10
 
Climate Impact of Software Testing at Nordic Testing Days
Climate Impact of Software Testing at Nordic Testing DaysClimate Impact of Software Testing at Nordic Testing Days
Climate Impact of Software Testing at Nordic Testing Days
Kari Kakkonen
 
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...
Neo4j
 

Recently uploaded (20)

GraphSummit Singapore | The Art of the Possible with Graph - Q2 2024
GraphSummit Singapore | The Art of the  Possible with Graph - Q2 2024GraphSummit Singapore | The Art of the  Possible with Graph - Q2 2024
GraphSummit Singapore | The Art of the Possible with Graph - Q2 2024
 
GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...
GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...
GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...
 
How to use Firebase Data Connect For Flutter
How to use Firebase Data Connect For FlutterHow to use Firebase Data Connect For Flutter
How to use Firebase Data Connect For Flutter
 
Cosa hanno in comune un mattoncino Lego e la backdoor XZ?
Cosa hanno in comune un mattoncino Lego e la backdoor XZ?Cosa hanno in comune un mattoncino Lego e la backdoor XZ?
Cosa hanno in comune un mattoncino Lego e la backdoor XZ?
 
Artificial Intelligence for XMLDevelopment
Artificial Intelligence for XMLDevelopmentArtificial Intelligence for XMLDevelopment
Artificial Intelligence for XMLDevelopment
 
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
 
“I’m still / I’m still / Chaining from the Block”
“I’m still / I’m still / Chaining from the Block”“I’m still / I’m still / Chaining from the Block”
“I’m still / I’m still / Chaining from the Block”
 
Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...
Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...
Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...
 
Full-RAG: A modern architecture for hyper-personalization
Full-RAG: A modern architecture for hyper-personalizationFull-RAG: A modern architecture for hyper-personalization
Full-RAG: A modern architecture for hyper-personalization
 
UiPath Test Automation using UiPath Test Suite series, part 5
UiPath Test Automation using UiPath Test Suite series, part 5UiPath Test Automation using UiPath Test Suite series, part 5
UiPath Test Automation using UiPath Test Suite series, part 5
 
Video Streaming: Then, Now, and in the Future
Video Streaming: Then, Now, and in the FutureVideo Streaming: Then, Now, and in the Future
Video Streaming: Then, Now, and in the Future
 
Mind map of terminologies used in context of Generative AI
Mind map of terminologies used in context of Generative AIMind map of terminologies used in context of Generative AI
Mind map of terminologies used in context of Generative AI
 
National Security Agency - NSA mobile device best practices
National Security Agency - NSA mobile device best practicesNational Security Agency - NSA mobile device best practices
National Security Agency - NSA mobile device best practices
 
Uni Systems Copilot event_05062024_C.Vlachos.pdf
Uni Systems Copilot event_05062024_C.Vlachos.pdfUni Systems Copilot event_05062024_C.Vlachos.pdf
Uni Systems Copilot event_05062024_C.Vlachos.pdf
 
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdf
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdfUnlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdf
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdf
 
Enchancing adoption of Open Source Libraries. A case study on Albumentations.AI
Enchancing adoption of Open Source Libraries. A case study on Albumentations.AIEnchancing adoption of Open Source Libraries. A case study on Albumentations.AI
Enchancing adoption of Open Source Libraries. A case study on Albumentations.AI
 
GraphSummit Singapore | Neo4j Product Vision & Roadmap - Q2 2024
GraphSummit Singapore | Neo4j Product Vision & Roadmap - Q2 2024GraphSummit Singapore | Neo4j Product Vision & Roadmap - Q2 2024
GraphSummit Singapore | Neo4j Product Vision & Roadmap - Q2 2024
 
Communications Mining Series - Zero to Hero - Session 1
Communications Mining Series - Zero to Hero - Session 1Communications Mining Series - Zero to Hero - Session 1
Communications Mining Series - Zero to Hero - Session 1
 
Climate Impact of Software Testing at Nordic Testing Days
Climate Impact of Software Testing at Nordic Testing DaysClimate Impact of Software Testing at Nordic Testing Days
Climate Impact of Software Testing at Nordic Testing Days
 
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...
 

Application Development with Oracle Database