34
Exploiting the Exploiting the Advantages of SQL:1999 Advantages of SQL:1999 Dick Snoke Dick Snoke Sr. Consulting IT Sr. Consulting IT Specialist / IBM Specialist / IBM Informix User Forum 2005 Moving Forward With Informix Atlanta, Georgia December 8-9, 2005

Exploiting the Advantages of SQL:1999 Dick Snoke Sr. Consulting IT Specialist / IBM Informix User Forum 2005 Moving Forward With Informix Atlanta, Georgia

Embed Size (px)

Citation preview

Page 1: Exploiting the Advantages of SQL:1999 Dick Snoke Sr. Consulting IT Specialist / IBM Informix User Forum 2005 Moving Forward With Informix Atlanta, Georgia

Exploiting the Advantages of Exploiting the Advantages of SQL:1999SQL:1999

Dick SnokeDick SnokeSr. Consulting IT Specialist / Sr. Consulting IT Specialist /

IBMIBM

Informix User Forum 2005 Moving Forward With Informix

Atlanta, Georgia December 8-9, 2005

Page 2: Exploiting the Advantages of SQL:1999 Dick Snoke Sr. Consulting IT Specialist / IBM Informix User Forum 2005 Moving Forward With Informix Atlanta, Georgia

IBM Software Group | DB2 Information Management Software

Topics

Context

The SQL Language Standard

Distinct Types

Handling Hierarchical Data

Advanced SQL: The CASE clause

Advanced SQL: SKIP… FIRST…

Advanced SQL: Sequences

User-Defined Routines – some examples

Data Storage and Access Methods

Securing your data and DBMS

Data Federation and Replication

Page 3: Exploiting the Advantages of SQL:1999 Dick Snoke Sr. Consulting IT Specialist / IBM Informix User Forum 2005 Moving Forward With Informix Atlanta, Georgia

IBM Software Group | DB2 Information Management Software

Context

Objects as a way of thinking about data

DBMS’s as a way of holding data

SQL as a way of using your data

Page 4: Exploiting the Advantages of SQL:1999 Dick Snoke Sr. Consulting IT Specialist / IBM Informix User Forum 2005 Moving Forward With Informix Atlanta, Georgia

IBM Software Group | DB2 Information Management Software

The SQL Language Standard – a brief history

SQL-86, SQL-89 and SQL-92 The beginning up to a widely supported version

Intermediate Standards CLI-95 Call Level Interface (ODBC)

PSM-96 Stored Procedure Language

OL-98 Object Language Bindings (Java)

SQL:1999 The immediate past standard

SQL:2003 The current standard

SQL:2005 The next steps along the path

Page 5: Exploiting the Advantages of SQL:1999 Dick Snoke Sr. Consulting IT Specialist / IBM Informix User Forum 2005 Moving Forward With Informix Atlanta, Georgia

IBM Software Group | DB2 Information Management Software

What’s New in the SQL:1999 and SQL:2003 Standards?

Reorganized into a core and packages

Packages include Enhanced datetime facilities

Enhanced integrity management

OLAP facilities

PSM (Persistent Stored Modules)

CLI (Call-level Interface)

Basic object support

Enhanced object support

Active database

SQL/MM (multimedia) support

Page 6: Exploiting the Advantages of SQL:1999 Dick Snoke Sr. Consulting IT Specialist / IBM Informix User Forum 2005 Moving Forward With Informix Atlanta, Georgia

IBM Software Group | DB2 Information Management Software

New in SQL:1999 or SQL:2003

Arrays

Multisets

Sequences

These things are standard SQL now!!

Page 7: Exploiting the Advantages of SQL:1999 Dick Snoke Sr. Consulting IT Specialist / IBM Informix User Forum 2005 Moving Forward With Informix Atlanta, Georgia

IBM Software Group | DB2 Information Management Software

Distinct Types

Examples of distinct types: My employee id, 5A8727, as an integer

Currency, $4950.40 US, as money

An account number, AEW6978, as a character string

SQL Example:

create distinct type EMP_ID as integer with comparison;

Page 8: Exploiting the Advantages of SQL:1999 Dick Snoke Sr. Consulting IT Specialist / IBM Informix User Forum 2005 Moving Forward With Informix Atlanta, Georgia

IBM Software Group | DB2 Information Management Software

Why Does that Matter?

Your schema becomes understandable Names and data types understood by the application designers

Some SQL errors are more easily detected Integers can always be added, but should they always be added?

Page 9: Exploiting the Advantages of SQL:1999 Dick Snoke Sr. Consulting IT Specialist / IBM Informix User Forum 2005 Moving Forward With Informix Atlanta, Georgia

IBM Software Group | DB2 Information Management Software

Handling Hierarchies – Objects in the database

A classic problem for relational DBMS’s

IDS allows an elegant solution

Why does this matter? Simplify the overall application by simplifying the SQL

Let the DBMS do the set processing

Don’t code in the application what the DBMS already does well

Avoid some data movement

Page 10: Exploiting the Advantages of SQL:1999 Dick Snoke Sr. Consulting IT Specialist / IBM Informix User Forum 2005 Moving Forward With Informix Atlanta, Georgia

IBM Software Group | DB2 Information Management Software

Goyal

Vella

Snoke

TBH

Acosta

Munns

Thorne

Elix

Caldera

Truax

Knox

Woods

0’Connell

TBH

Jones

Royal

Smith

Kvidt

Example: An Org Chart

Page 11: Exploiting the Advantages of SQL:1999 Dick Snoke Sr. Consulting IT Specialist / IBM Informix User Forum 2005 Moving Forward With Informix Atlanta, Georgia

IBM Software Group | DB2 Information Management Software

A Useful Labeling and Traversing Scheme

Use a numbering scheme to delineate the hierarchy 1.0 is the root node

1.x are the children of that node

x.y are the children of node x.

x.1 is less than x.2

x.2.5 is less than x.3.0

A set of functions that understands this numbering scheme can traverse a hierarchy.

Page 12: Exploiting the Advantages of SQL:1999 Dick Snoke Sr. Consulting IT Specialist / IBM Informix User Forum 2005 Moving Forward With Informix Atlanta, Georgia

IBM Software Group | DB2 Information Management Software

1.0

1.1

1.1.1

1.1.2

1.1.3

1.1.4

1.1.5

1.2

1.2.1

1.2.2

1.2.3

1.2.4

1.3

1.3.1

1.3.2

1.3.3

1.3.4

1.3.5

Example: An Org Chart

Page 13: Exploiting the Advantages of SQL:1999 Dick Snoke Sr. Consulting IT Specialist / IBM Informix User Forum 2005 Moving Forward With Informix Atlanta, Georgia

IBM Software Group | DB2 Information Management Software

The NODE type and functions

Node is a user-defined type

Functions are isancestor, isparent, ischild, descendant

All take two nodes as input

all return Boolean values

getmember, getparent

ancestors - returns all the parents up to the root

The type and functions can be added to either DB2 or IDS

Page 14: Exploiting the Advantages of SQL:1999 Dick Snoke Sr. Consulting IT Specialist / IBM Informix User Forum 2005 Moving Forward With Informix Atlanta, Georgia

IBM Software Group | DB2 Information Management Software

Hierarchy Using the Node datatype

CREATE TABLE employee2 (

Serial_Number char(6)

Employee_id Node,

Last_Name varchar(30),

….

PRIMARY KEY(Employee_Id)

);

Page 15: Exploiting the Advantages of SQL:1999 Dick Snoke Sr. Consulting IT Specialist / IBM Informix User Forum 2005 Moving Forward With Informix Atlanta, Georgia

IBM Software Group | DB2 Information Management Software

Queries using the node type and functions

My chain of command:

select name from employee awhere a.Employee_id in (ancestors (select b.Employee_id

from employee b where b.lastname = ‘Snoke’))

order by a.Employee_id;

My immediate manager:

select a.name, a.Employee_id from employee awhere a.Employee_id = getparent (select b.Employee_id

from employee b where b.lastname = ‘Snoke);

Page 16: Exploiting the Advantages of SQL:1999 Dick Snoke Sr. Consulting IT Specialist / IBM Informix User Forum 2005 Moving Forward With Informix Atlanta, Georgia

IBM Software Group | DB2 Information Management Software

Why does this matter?

Let the database object model match the application object model.

Simplify the overall application by simplifying the SQL

Let the DBMS do the set processing Don’t code in the application what the DBMS already does well

Avoid some data movement

Page 17: Exploiting the Advantages of SQL:1999 Dick Snoke Sr. Consulting IT Specialist / IBM Informix User Forum 2005 Moving Forward With Informix Atlanta, Georgia

IBM Software Group | DB2 Information Management Software

Data Storage and Access

IDS uses its own Relational Storage Access Method (RSAM)

Other schemes may be added using the Virtual Table Interface For data not in the DBMS

For alternative storage structures

Other indexing schemes may be added using the Virtual Index Interface Coppereye’s indexing is just this

Page 18: Exploiting the Advantages of SQL:1999 Dick Snoke Sr. Consulting IT Specialist / IBM Informix User Forum 2005 Moving Forward With Informix Atlanta, Georgia

IBM Software Group | DB2 Information Management Software

Data Storage and Access

Use MQ queues as tables in the database

in SQL functions

See The Informix Built-in Datablade Modules User Guide for details and restrictions

An alternative to other messaging options Example: put data from a queue into the database using

Less code to develop. Let the DBMS do the work for you!

insert into my_order_table(clob_col) VALUES(MQReadClob());

Page 19: Exploiting the Advantages of SQL:1999 Dick Snoke Sr. Consulting IT Specialist / IBM Informix User Forum 2005 Moving Forward With Informix Atlanta, Georgia

IBM Software Group | DB2 Information Management Software

Why does this matter?

No need to develop messaging software

No need to write much application code to do queue operations

Still the need to USE the data.

Focus on the use of the data, not the mechanics of data movement

Page 20: Exploiting the Advantages of SQL:1999 Dick Snoke Sr. Consulting IT Specialist / IBM Informix User Forum 2005 Moving Forward With Informix Atlanta, Georgia

IBM Software Group | DB2 Information Management Software

Securing Your Data

Encryption App-DBMS traffic

Data on the disk

User Authentication trust,

OS authentication,

a PAM

LDAP

Roles and Default Roles

Page 21: Exploiting the Advantages of SQL:1999 Dick Snoke Sr. Consulting IT Specialist / IBM Informix User Forum 2005 Moving Forward With Informix Atlanta, Georgia

IBM Software Group | DB2 Information Management Software

Why Does This Matter Anyway?

Security is becoming a legal requirement.

You may be able to reduce your costs not developing your own software

simplifying administration

Page 22: Exploiting the Advantages of SQL:1999 Dick Snoke Sr. Consulting IT Specialist / IBM Informix User Forum 2005 Moving Forward With Informix Atlanta, Georgia

IBM Software Group | DB2 Information Management Software

Federation and Replication

Let the DBMS handle distributed data and distributing the data

Federation == Synonyms

Replication == Enterprise Replication (ER)

IDS now has functions for using Websphere MQ Event publishing

Reliable delivery of data

Page 23: Exploiting the Advantages of SQL:1999 Dick Snoke Sr. Consulting IT Specialist / IBM Informix User Forum 2005 Moving Forward With Informix Atlanta, Georgia

IBM Software Group | DB2 Information Management Software

Why Does This Matter Anyway?

It’s built in. No need to purchase other software

No need to write your own software

It’s comprehensive Covers all data types

Allows for multi-site updates

Does not require all systems available all the time.

Solves problems of workload balancing

distribution or consolidation of data

business continuity

Page 24: Exploiting the Advantages of SQL:1999 Dick Snoke Sr. Consulting IT Specialist / IBM Informix User Forum 2005 Moving Forward With Informix Atlanta, Georgia

IBM Software Group | DB2 Information Management Software

Advanced SQL – Several for the Price of One

Use CASE to perform multiple updates in one statement

update staff set manager = CASE when dept = 10 and job = 'Mgr‘

then (select id from staff where job ='CEO')

when dept = 15 and job != 'Mgr'

then (select id from staff where job = 'Mgr' and dept = 15)

when dept = 20 and job != 'Mgr'

then (select id from staff where job = 'Mgr' and dept = 20)

when dept = 38 and job != 'Mgr'

then (select id from staff where job = 'Mgr' and dept = 38)

when (dept = 15 or dept = 20 or dept = 38) and job = 'Mgr'

then 210 … END ;

Page 25: Exploiting the Advantages of SQL:1999 Dick Snoke Sr. Consulting IT Specialist / IBM Informix User Forum 2005 Moving Forward With Informix Atlanta, Georgia

IBM Software Group | DB2 Information Management Software

Advanced SQL – Several for the Price of One

Use CASE to do multiple counts in one pass

SELECT count (CASE when score > 90 then 1

ELSE null

END) as moregb90,

count (CASE when score = 90 then 1

ELSE null

END) as equalgb90,

count (CASE when score < 70 then 1

ELSE null

END) as minorgb90,

count (CASE when test_nbr = 500 then 1

ELSE null

END) as equalgb500

FROM test_taken;

Page 26: Exploiting the Advantages of SQL:1999 Dick Snoke Sr. Consulting IT Specialist / IBM Informix User Forum 2005 Moving Forward With Informix Atlanta, Georgia

IBM Software Group | DB2 Information Management Software

Advanced SQL - SKIP… FIRST…

Not the same results!!

SKIP and FIRST processed after the result set is determined

SKIP and FIRST can be used individually too

SELECT SKIP 4 FIRST 2lname, company

FROM customerORDER BY lname;

SELECT SKIP 4 FIRST 2lname, company

FROM customerORDER BY company;

Page 27: Exploiting the Advantages of SQL:1999 Dick Snoke Sr. Consulting IT Specialist / IBM Informix User Forum 2005 Moving Forward With Informix Atlanta, Georgia

IBM Software Group | DB2 Information Management Software

Advanced SQL - Sequences

Use in place of serial data types for greater control

A distinct datatype, but similar to int8

Independent of transactions ROLLBACK does not undo generated values

Syntax:

CREATE SEQUENCE idnumbers

INCREMENT BY 1000

START VALUE 1000

MAXVALUE 99000

NOCYCLE;

GRANT ALTER ON idnumbers to dsnoke;

INSERT INTO EMP VALUES (“Snoke”, idnumbers.NEXTVAL);

SELECT first 1 idnumbers.CURRVAL from employee;

Page 28: Exploiting the Advantages of SQL:1999 Dick Snoke Sr. Consulting IT Specialist / IBM Informix User Forum 2005 Moving Forward With Informix Atlanta, Georgia

IBM Software Group | DB2 Information Management Software

User-Defined Routines

aka stored procedures

Written in the language of your choice

Used in the SQL statements of the application, triggers, etc.

Executed by the DBMS during SQL statement processing

Page 29: Exploiting the Advantages of SQL:1999 Dick Snoke Sr. Consulting IT Specialist / IBM Informix User Forum 2005 Moving Forward With Informix Atlanta, Georgia

IBM Software Group | DB2 Information Management Software

Why does this matter anyway?

Make the DBMS capable of doing what you want it to do The right operators

The right aggregates

The right predicates

Simple, understandable SQL easier design maintenance and enhancement

Less Data Movement No need to bring large numbers of tuples back to the application

Less data to be stored No need to have columns for quarter, promotion, etc.

Better code maintenance Only one function instead of many predicates to maintain.

Page 30: Exploiting the Advantages of SQL:1999 Dick Snoke Sr. Consulting IT Specialist / IBM Informix User Forum 2005 Moving Forward With Informix Atlanta, Georgia

IBM Software Group | DB2 Information Management Software

UDR Examples – Specialized Calendars

Calendar periods for dates: Fiscal quarters, retail promotions, product development schedules

Create functions that given a date return the period:

CREATE FUNCTION quarter (date indate) returning int

RETURN case when indate > 09/30/02 and indate < 01/01/03 then 4

when indate > 06/30/02 and indate < 10/01/02 then 3

when indate > 03/31/02 and indate < 07/01/02 then 2

when indate > 12/31/01 and indate < 04/01/02 then 1

else 0

end case;

Then use those functions to simplify your SQL:

SELECT … WHERE quarter(txn_date) < 3;

SELECT … WHERE promo(txn_date) = “Christmas”;

Page 31: Exploiting the Advantages of SQL:1999 Dick Snoke Sr. Consulting IT Specialist / IBM Informix User Forum 2005 Moving Forward With Informix Atlanta, Georgia

IBM Software Group | DB2 Information Management Software

UDR Examples: Other Things

The NODE routines described earlier

Other datablades Spatial

egrep bladelet

Text search

MQ messaging

Page 32: Exploiting the Advantages of SQL:1999 Dick Snoke Sr. Consulting IT Specialist / IBM Informix User Forum 2005 Moving Forward With Informix Atlanta, Georgia

IBM Software Group | DB2 Information Management Software

References

Jacques’ book

Paul’s book

Melton’s books

DeveloperWorks

Redbooks

Page 33: Exploiting the Advantages of SQL:1999 Dick Snoke Sr. Consulting IT Specialist / IBM Informix User Forum 2005 Moving Forward With Informix Atlanta, Georgia

IBM Software Group | DB2 Information Management Software

Questions?

Page 34: Exploiting the Advantages of SQL:1999 Dick Snoke Sr. Consulting IT Specialist / IBM Informix User Forum 2005 Moving Forward With Informix Atlanta, Georgia

Exploiting the Advantages of Exploiting the Advantages of SQL:1999SQL:1999

Dick SnokeDick [email protected]@us.ibm.com

Informix User Forum 2005 Moving Forward With Informix

Atlanta, Georgia December 8-9, 2005