the sql standard (iso/iec 9075) s j cannan technical manager s j cannan technical manager where it...

50
The SQL Standard (ISO/IEC 9075) S J Cannan Technical Manager Where it is and where it is going

Upload: elfrieda-dickerson

Post on 29-Dec-2015

222 views

Category:

Documents


3 download

TRANSCRIPT

Page 1: The SQL Standard (ISO/IEC 9075) S J Cannan Technical Manager S J Cannan Technical Manager Where it is and where it is going

The SQL Standard (ISO/IEC 9075)

S J Cannan

Technical Manager

S J Cannan

Technical Manager

Where it isandwhere it is going

Page 2: The SQL Standard (ISO/IEC 9075) S J Cannan Technical Manager S J Cannan Technical Manager Where it is and where it is going

The SQL Standard (ISO/IEC 9075)

Goal: Portability of SQL applications

Effect: Increase and stabilisation of the database market

Mechanism: Joint efforts between implementers and users

Joint effort among several countries

Page 3: The SQL Standard (ISO/IEC 9075) S J Cannan Technical Manager S J Cannan Technical Manager Where it is and where it is going

Past History

1987 SQL1989 SQL + Integrity Enhancement1992 SQL (2)1995 SQL/CLI1996 SQL/PSM1999 SQL (3)2000 SQL/OLB2000 SQL/OLAP2000 SQL/MED

1987 SQL1989 SQL + Integrity Enhancement1992 SQL (2)1995 SQL/CLI1996 SQL/PSM1999 SQL (3)2000 SQL/OLB2000 SQL/OLAP2000 SQL/MED

The SQL Standard (ISO/IEC 9075)

Page 4: The SQL Standard (ISO/IEC 9075) S J Cannan Technical Manager S J Cannan Technical Manager Where it is and where it is going

Current Structure

ISO/IEC 9075-1 Framework

ISO/IEC 9075-2 Foundation

ISO/IEC 9075-3 Call-level interface

ISO/IEC 9075-4 Persistent Stored Modules

ISO/IEC 9075-5 Language Bindings

ISO/IEC 9075-9 Management of External Data

ISO/IEC 9075-10 Object Language Bindings

ISO/IEC 9075:Amd1 SQL/OLAP

The SQL Standard (ISO/IEC 9075)

Page 5: The SQL Standard (ISO/IEC 9075) S J Cannan Technical Manager S J Cannan Technical Manager Where it is and where it is going

WorkingDraft

Proposals

FinalCommittee

Draft

CommitteeDraft

Comments

InternationalStandard

Comm

ents

Yes/NoDraft

InternationalStandard

TechnicalCorrigenda

Proposals

NWI

The SQL Standard (ISO/IEC 9075)

The Standardisation Process

Page 6: The SQL Standard (ISO/IEC 9075) S J Cannan Technical Manager S J Cannan Technical Manager Where it is and where it is going

ISO/IEC 9075-1:Framework (SQL/Framework)

Description of Parts

Terminology

Basic Concepts

Basic Conformance Clause

The SQL Standard (ISO/IEC 9075)

Page 7: The SQL Standard (ISO/IEC 9075) S J Cannan Technical Manager S J Cannan Technical Manager Where it is and where it is going

ISO/IEC 9075-2: Foundation (SQL/Foundation)

Data Definition

Data Manipulation

Data Access Control

Transaction Management

Information Schema

Miscellaneous

The SQL Standard (ISO/IEC 9075)

Page 8: The SQL Standard (ISO/IEC 9075) S J Cannan Technical Manager S J Cannan Technical Manager Where it is and where it is going

ISO/IEC 9075-2: MOOSE

Large Objects

Arrays

User-defined types

Subtypes and inheritance

Encapsulation

Substitutability

Transforms

Large Objects

Arrays

User-defined types

Subtypes and inheritance

Encapsulation

Substitutability

Transforms

The SQL Standard (ISO/IEC 9075)

Page 9: The SQL Standard (ISO/IEC 9075) S J Cannan Technical Manager S J Cannan Technical Manager Where it is and where it is going

ISO/IEC 9075-2: Data Access

Data Manipulation Statements

INSERT

UPDATE

DELETE

SELECT

The SQL Standard (ISO/IEC 9075)

Page 10: The SQL Standard (ISO/IEC 9075) S J Cannan Technical Manager S J Cannan Technical Manager Where it is and where it is going

Comparison (=, <, >, <=, >=, <>)value BETWEEN [A]SYMMETRIC value2 AND value3value IN subquery or (value-list)value [NOT] LIKE pattern [ESCAPE char]row-value IS [NOT] NULLrow-value comp-op ALL|[SOME|ANY] subqueryEXISTS subqueryUNIQUE subqueryrow-value MATCH [UNIQUE]

[SIMPLE|PARTIAL|FULL] subqueryrow-value1 OVERLAPS row-value2value [NOT] SIMILAR TO pattern [ESCAPE char]row-value1 IS DISTINCT FROM row-value2value IS [NOT] OF ( type-list )

The SQL Standard (ISO/IEC 9075)

ISO/IEC 9075-2:Predicates

Page 11: The SQL Standard (ISO/IEC 9075) S J Cannan Technical Manager S J Cannan Technical Manager Where it is and where it is going

SensitivityASENSITIVESENSITIVEINSENSITIVE

implies READ ONLY

Holdable

ORDER BYcolumns not in select listexpressions

The SQL Standard (ISO/IEC 9075)

ISO/IEC 9075-2: Cursors

Page 12: The SQL Standard (ISO/IEC 9075) S J Cannan Technical Manager S J Cannan Technical Manager Where it is and where it is going

WITH New_Price AS (SELECT Source, Destination, Carrier, Cost * discount_rate AS New_CostFROM Flights f join Discounts d on d.carrier=f.carrier ) SELECT a.Source, a.Destination, a.Carrier, a.New_Cost, b.Carrier, b.New_CostFROM New_Price a, New_Price bWHERE (a.Source, a.Destination) =(b.Source, b.Destination) AND a.Carrier <> b.Carrier AND a.NewCost >= b.New_Cost

The SQL Standard (ISO/IEC 9075)

ISO/IEC 9075-2: Common Table Expressions

Page 13: The SQL Standard (ISO/IEC 9075) S J Cannan Technical Manager S J Cannan Technical Manager Where it is and where it is going

• Fixpoint theory• Unique solutions

• Transformation on the right hand side of a recursive definition must be monotonically increasingDisallow:

• negation that crosses recursion• aggregation that crosses recursion• INTERSECT ALL• EXCEPT ALL• EXCEPT DISTINCT (on right hand side)• FULL OUTER JOIN (LEFT|RIGHT with

recursion on right|left)The SQL Standard (ISO/IEC 9075)

ISO/IEC 9075-2: Recursion

Page 14: The SQL Standard (ISO/IEC 9075) S J Cannan Technical Manager S J Cannan Technical Manager Where it is and where it is going

ISO/IEC 9075-2: Recursion

WITH RECURSIVE Even (N) AS ( VALUES (0) UNION SELECT M + 1 FROM Odd ) Odd (M) AS ( SELECT N + 1 FROM Even )SELECT * FROM Even WHERE N < 12;

Mutual Recursion

The SQL Standard (ISO/IEC 9075)

ISO/IEC 9075-2: Recursion

Page 15: The SQL Standard (ISO/IEC 9075) S J Cannan Technical Manager S J Cannan Technical Manager Where it is and where it is going

SELECT CASE WHEN abbreviation = ‘CA’ THEN ‘California’ WHEN abbreviation = ‘SD’ THEN ‘South Dakota’ WHEN ... ELSE ‘Unknown’END FROM statesWHERE ...

SELECT emp_name, deptno FROM employeeWHERE ( CASE bonus + commission WHEN 0 THEN NULL ELSE salary/(bonus+commission) ) > 10

Used to “implement” COALESCESELECT COALESCE (nickname, first_name, surname, ‘Unknown’) FROM people

The SQL Standard (ISO/IEC 9075)

ISO/IEC 9075-2: F261 Case expression

Page 16: The SQL Standard (ISO/IEC 9075) S J Cannan Technical Manager S J Cannan Technical Manager Where it is and where it is going

Enhances query capabilities

CUBE

ROLLUP

GROUPING SETS

Expressions in ORDER BY

The SQL Standard (ISO/IEC 9075)

ISO/IEC 9075-2: OLAP

Page 17: The SQL Standard (ISO/IEC 9075) S J Cannan Technical Manager S J Cannan Technical Manager Where it is and where it is going

Find the total sales per region and sales manager during each month of 1996, with subtotals for each month, and concluding with the grand total:

SELECT month, region, sales_mgr, SUM (price) FROM Sales WHERE year = 1996 GROUP BY ROLLUP (month, region, sales_mgr);

The SQL Standard (ISO/IEC 9075)

ISO/IEC 9075-2: OLAP

Page 18: The SQL Standard (ISO/IEC 9075) S J Cannan Technical Manager S J Cannan Technical Manager Where it is and where it is going

MONTH REGION SALES_MGR SUM(price)April Central Chow 25000April Central Smith 15000April Central - 40000April NorthWest Smith 15000April NorthWest - 15000April - - 55000May Central Chow 25000May Central - 25000May NorthWest Smith 15000May NorthWest - 15000May - - 40000- - - 95000

The SQL Standard (ISO/IEC 9075)

ISO/IEC 9075-2: OLAP

Page 19: The SQL Standard (ISO/IEC 9075) S J Cannan Technical Manager S J Cannan Technical Manager Where it is and where it is going

Find the total sales per region and sales manager during each month of 1996, with subtotals for each month, region and sales manager and concluding with the grand total:

SELECT month, region, sales_mgr, SUM(price) FROM Sales WHERE year = 1996 GROUP BY CUBE (month, region, sales_mgr);

The SQL Standard (ISO/IEC 9075)

ISO/IEC 9075-2: OLAP

Page 20: The SQL Standard (ISO/IEC 9075) S J Cannan Technical Manager S J Cannan Technical Manager Where it is and where it is going

The SQL Standard (ISO/IEC 9075)

MONTH REGION SALES_MGR SUM(price)April Central Chow 25000April Central Smith 15000April Central - 40000April NorthWest Smith 15000April NorthWest - 15000April - Chow 25000April - Smith 30000April - - 55000May Central Chow 25000May Central - 25000May NorthWest Smith 15000May NorthWest - 15000May - Chow 25000May - Smith 15000May - - 40000- Central Chow 50000- Central Smith 15000- Central - 65000- NorthWest Smith 30000- NorthWest - 30000- - Chow 50000- - Smith 45000- - - 95000

ISO/IEC 9075-2: OLAP

Page 21: The SQL Standard (ISO/IEC 9075) S J Cannan Technical Manager S J Cannan Technical Manager Where it is and where it is going

ISO/IEC 9075-2: Data Protection

PrivilegesGRANT, REVOKESELECT, UPDATE, DELETE, INSERT,

REFERENCE, UNDER, TRIGGER, USAGE

RolesCREATE, GRANT, REVOKE, DROP

The SQL Standard (ISO/IEC 9075)

Page 22: The SQL Standard (ISO/IEC 9075) S J Cannan Technical Manager S J Cannan Technical Manager Where it is and where it is going

Enhanced security mechanisms

Simplifies definition of complex sets of privileges

CREATE/DROP role

GRANT/REVOKE privileges to roles

GRANT/REVOKE roles to users and other roles

The SQL Standard (ISO/IEC 9075)

ISO/IEC 9075-2: Roles

Page 23: The SQL Standard (ISO/IEC 9075) S J Cannan Technical Manager S J Cannan Technical Manager Where it is and where it is going

ISO/IEC 9075-2: Data Description

The Information Schema

short name views

The Definition Schema

The SQL Standard (ISO/IEC 9075)

Page 24: The SQL Standard (ISO/IEC 9075) S J Cannan Technical Manager S J Cannan Technical Manager Where it is and where it is going

ISO/IEC 9075-2: Miscellaneous

Transaction Statements

Connection Statements

Diagnostic Statements

The SQL Standard (ISO/IEC 9075)

Page 25: The SQL Standard (ISO/IEC 9075) S J Cannan Technical Manager S J Cannan Technical Manager Where it is and where it is going

ISO/IEC 9075-3: Call Level Interface (SQL/CLI)

“SQL for Shrink-wrapped software”

Resource control

SQL connection control

Execution of SQL statements

Diagnostics

SQL implementation information

The SQL Standard (ISO/IEC 9075)

Page 26: The SQL Standard (ISO/IEC 9075) S J Cannan Technical Manager S J Cannan Technical Manager Where it is and where it is going

Application

CLI Driver

Database Management System

Server

Client

Call

Return

Call

Return

The SQL Standard (ISO/IEC 9075)

ISO/IEC 9075-3: Call Level Interface (SQL/CLI)

Page 27: The SQL Standard (ISO/IEC 9075) S J Cannan Technical Manager S J Cannan Technical Manager Where it is and where it is going

Flow of control

Assignments

Condition handlers

Signal and Resignal conditions

SQL path specification

Declarations

ISO/IEC 9075-4: Persistent Stored Modules (SQL/PSM)

The SQL Standard (ISO/IEC 9075)

Page 28: The SQL Standard (ISO/IEC 9075) S J Cannan Technical Manager S J Cannan Technical Manager Where it is and where it is going

ISO/IEC 9075-5: Host Language Bindings (SQL/Bindings)

Embedded SQL Static SQL Dynamic SQL

Support for: Ada, C, COBOL,

FORTRAN, MUMPS, Pascal, PL/I

Direct SQL

The SQL Standard (ISO/IEC 9075)

Page 29: The SQL Standard (ISO/IEC 9075) S J Cannan Technical Manager S J Cannan Technical Manager Where it is and where it is going

Embedded SQL

SQL ModuleStandard

Programming Language

Precompiler

The SQL Standard (ISO/IEC 9075)

ISO/IEC 9075-5: Host Language Bindings (SQL/Bindings)

Page 30: The SQL Standard (ISO/IEC 9075) S J Cannan Technical Manager S J Cannan Technical Manager Where it is and where it is going

ISO/IEC 9075:Conformance

• Core

• Features

• Packages

The SQL Standard (ISO/IEC 9075)

Page 31: The SQL Standard (ISO/IEC 9075) S J Cannan Technical Manager S J Cannan Technical Manager Where it is and where it is going

• All of SQL:1992 Entry level• Some Transitional SQL:1992 features• Some Intermediate SQL:1992 features• Some Full SQL:1992 features• The following new features of SQL:1999

• Distinct data types• WITH HOLD cursors• SQL-invoked routines (no PATHs)

• CALL statement • RETURN statement• ROUTINES and PARAMETERS view• SQL-invoked routines written in SQL and an external

language • Value expression in order by clause

The SQL Standard (ISO/IEC 9075)

ISO/IEC 9075: Conformance

Page 32: The SQL Standard (ISO/IEC 9075) S J Cannan Technical Manager S J Cannan Technical Manager Where it is and where it is going

PKG001 Enhanced datetime facilitiesPKG002 Enhanced integrity managementPKG003 OLAP facilitiesPKG004 PSMPKG005 CLIPKG006 Basic object supportPKG007 Enhanced object supportPKG008 Active databasePKG009 SQL/MM support

The SQL Standard (ISO/IEC 9075)

ISO/IEC 9075: Conformance

Packages

Page 33: The SQL Standard (ISO/IEC 9075) S J Cannan Technical Manager S J Cannan Technical Manager Where it is and where it is going

ISO/IEC 9075-9: SQL/Management of External Data

Datalink data type

Foreign tables

Foreign servers

Foreign data wrappers

User mappings

The SQL Standard (ISO/IEC 9075)

Page 34: The SQL Standard (ISO/IEC 9075) S J Cannan Technical Manager S J Cannan Technical Manager Where it is and where it is going

Simple embedding of static SQL statements in Java programs

Permit assembly of binary components produced by different tools

Binary portabilityHardwareOperating SystemsDatabase Systems

Co-exist with JDBCThe SQL Standard (ISO/IEC 9075)

ISO/IEC 9075-10:Object Language Bindings (SQL/OLB)

Objectives

Page 35: The SQL Standard (ISO/IEC 9075) S J Cannan Technical Manager S J Cannan Technical Manager Where it is and where it is going

ISO/IEC 9075-10:Object Language Bindings (SQL/OLB)

Based on JSQL

Extends Java to include SQL constructs as statements and expressions

A JSQL translator that transforms those JSQL clauses into standard Java code that accesses the database through a call interface

An alternative to JDBC (JavaSoft)

Static instead of Dynamic

Tighter integration

The SQL Standard (ISO/IEC 9075)

Page 36: The SQL Standard (ISO/IEC 9075) S J Cannan Technical Manager S J Cannan Technical Manager Where it is and where it is going

Simple

Static

compile time syntax and type checking

Strongly typed cursors

iterators

Pre-compilation

Permits vendor customisation

at deployment

The SQL Standard (ISO/IEC 9075)

ISO/IEC 9075-10:Object Language Bindings (SQL/OLB)

Advantages

Page 37: The SQL Standard (ISO/IEC 9075) S J Cannan Technical Manager S J Cannan Technical Manager Where it is and where it is going

ISO/IEC 9075-10:Object Language Bindings (SQL/OLB)

SQLJprogram

SQLChecker

Java Frontend

SQLJ Translator

Java Class Files

SQLJ Profiles

SQLJ JAR FILE

Profile Customizer

Utility

SQLJ Customizations

SQLJ translator framework

Page 38: The SQL Standard (ISO/IEC 9075) S J Cannan Technical Manager S J Cannan Technical Manager Where it is and where it is going

ISO/IEC 9075Amd1:SQL/OLAP

• ROLLUP

• CUBE

• Unary grouped table aggregate functions• Binary grouped table aggregate functions• Inverse distribution functions• What-if functions• Numeric Functions

• WindowsThe SQL Standard (ISO/IEC 9075)

Page 39: The SQL Standard (ISO/IEC 9075) S J Cannan Technical Manager S J Cannan Technical Manager Where it is and where it is going

WindowsCumulative sum and centred average:

SELECT SH.Territory, SH.Month, SH.Sales,SUM (SH.Sales) OVER Wa AS Cumulative_sum,AVG (SH.Sales) OVER Wb AS Centred_averageFROM Sales_history AS SHWINDOW WRoot AS ( PARTITION BY SH.Territory ORDER BY SH.Month ASC ), Wa AS ( W12root ROWS UNBOUNDED PRECEDING ), Wb AS ( W12root ROWS BETWEEN 1 PRECEDING AND 1 FOLLOWING);The SQL Standard (ISO/IEC 9075)

ISO/IEC 9075Amd1:SQL/OLAP

Page 40: The SQL Standard (ISO/IEC 9075) S J Cannan Technical Manager S J Cannan Technical Manager Where it is and where it is going

SQL 4

The SQL Standard (ISO/IEC 9075)

?Revised SQL 3

+

SQL/JRTJava in Database Procedures

Java Data types in SQL

SQL/XML

SQL/Replication

SQL/Temporal

Page 41: The SQL Standard (ISO/IEC 9075) S J Cannan Technical Manager S J Cannan Technical Manager Where it is and where it is going

Direct use of existing Java libraries

Any Java static method callable as a stored procedure

Portable across DBMS’s

Deployable across tiers

Implementation transparent for user

Equivalent functionality

Body of SQLJ stored procedure routines can use JDBC and/or SQLJ to access SQL, or Java computation

ISO/IEC 9075:SQL/JRT

The SQL Standard (ISO/IEC 9075)

Page 42: The SQL Standard (ISO/IEC 9075) S J Cannan Technical Manager S J Cannan Technical Manager Where it is and where it is going

– Use Java classes as SQL data types for:• Columns of SQL tables and views.• Parameters of SQL routines.

– Advantage to SQL:• A type extension mechanism.• A supplement to SQL:1999 ADTs.

– Advantage to Java:• Direct support for Java objects in SQL databases.• No need to map Java objects to SQL scalar or

BLOB types.

The SQL Standard (ISO/IEC 9075)

ISO/IEC 9075:SQL/JRT

Page 43: The SQL Standard (ISO/IEC 9075) S J Cannan Technical Manager S J Cannan Technical Manager Where it is and where it is going

– Specifications for the representation of SQL data (specifically rows and tables of rows, as well as views and query results) in XML form, and vice versa.

– Specifications associated with mapping SQL schemata to and from XML schemata. This may include performing the mapping between existing arbitrary XML and SQL schemata.

– Specifications for the representation of SQL Schemas in XML.

– Specifications for the representation of SQL actions (insert, update, delete).

– Specifications for messaging for XML when used with SQL.

– Specifications of the (perhaps “a”) manner in which SQL language can be used with XML.

The SQL Standard (ISO/IEC 9075)

ISO/IEC 9075:SQL/XML

Scope

Page 44: The SQL Standard (ISO/IEC 9075) S J Cannan Technical Manager S J Cannan Technical Manager Where it is and where it is going

SQL/Replication

1-TierC/S

N-TierC/S

MobileDevices

Head-OfficeServers

Web &Thin-Client

Relational Transport Layer

no new relational concepts; business-rule driven

every site a peer; update-anywhere

every site autonomous, all transactions local; no point of failure

automatic, transparent; just add a database wherever needed

all a user’s favourite tools: Java/VB/HTML/X/C++/Perl/Delphi/…, 1-tier/N-tier/Web/Windows/Unix…; OLTP/OLAP/DSS/…

An “Ideal” DistributedSystem

The SQL Standard (ISO/IEC 9075)

Page 45: The SQL Standard (ISO/IEC 9075) S J Cannan Technical Manager S J Cannan Technical Manager Where it is and where it is going

SQL/Replication

The SQL Standard (ISO/IEC 9075)

good (if ‘local and one server’

is enough)

immediate

one site

one site

one site

Performance

DataCurrency

Autonomy/Availability

Points ofFailure

Scalability

poor for updates

immediate

poor

many

< 20 sites

local

parallelisedpropagation

full, local

any subset live(repl. clustering,

failover)

1000+(auto detection,

auto config,dyn. load bal.)

local

propagated

full, local (if update-anywhere)

one or many(for repl.)

< 100 sites(hub/spoke)

CentralServer

Traditional Synchronous:

N-PhaseCommit

Queue-BasedAsynchronous

Replication

IdealAsynchronous

Replication

Approaches

Page 46: The SQL Standard (ISO/IEC 9075) S J Cannan Technical Manager S J Cannan Technical Manager Where it is and where it is going

LocalDatabase

Size

10% changeper month

4:1 compression

RequiredBandwidth for

Trickle Replication

(Office Hours)

1 GBWorkgroup

Server1.1M / day

28.8Kmodem

50 MBMobileLaptop

60K / dayCell, 28.8K

modem

1 TBHeadquarters /

Warehouse1G / day 256K ISDN

RegionalServer

20 GB 23M / day56K

modem

Rate of Change

The SQL Standard (ISO/IEC 9075)

SQL/Replication

Page 47: The SQL Standard (ISO/IEC 9075) S J Cannan Technical Manager S J Cannan Technical Manager Where it is and where it is going

SQL/Replication

SingleSystemImage

DecreasinglyConsistent

Image

single server, or 2PC

single “master” for all changes

“multi-master,” update-anywhere

hub-and-spoke

log replaynet change

parallelised

IncreasingPropagation

Time

conflic

tsco

nflic

t avoid

ance

The SQL Standard (ISO/IEC 9075)

Page 48: The SQL Standard (ISO/IEC 9075) S J Cannan Technical Manager S J Cannan Technical Manager Where it is and where it is going

One Valid Time Line

Transaction Time Line

Upwards compatible

Structural constraints

Simple Syntax

No interest according to database vendors

Religious wars in standards body The SQL Standard (ISO/IEC 9075)

ISO/IEC 9075-7: Temporal (SQL/Temporal)

Page 49: The SQL Standard (ISO/IEC 9075) S J Cannan Technical Manager S J Cannan Technical Manager Where it is and where it is going

SQL/MM

Multimedia & Application PackagesBased on the facilities of SQL:1999A multi-part standard

Multimedia & Application PackagesBased on the facilities of SQL:1999A multi-part standard

Full TextSpatialStill ImageStill GraphicsAnimationFull Motion VideoSeismicMusic

Data Mining

Page 50: The SQL Standard (ISO/IEC 9075) S J Cannan Technical Manager S J Cannan Technical Manager Where it is and where it is going

end…