JDNet | Solutions | Emploi | Votre high-tech
 
Linternaute | Copainsdavant
Séminaires & Evénements | Etudes
   

Rechercher  

 
Sociétés Prestataires Carnet Formations Progiciels Encyclo Fonds Guide d'achat Comparateur Téléchargement Livres
Actualités
   2003
   2002
   2001
   Livres
Rubriques
   Java/J2EE
   PHP
   XML
   Client Web
   Technos .NET
   Flash
   Algo/Méthodes
   Outils

Dossiers
   Tous les dossiers

   PHP, Flash, SVG
   Perl / CGI - SSI
   Langages Web
   Services Web
   Sécurité
Ressources
   Interviews

   Téléchargement
   Composants
   Documentation
Contacts
   Rédaction
   Webmaster
© Benchmark Group


Database-SQL-RDBMS HOW-TO pour Linux (PostgreSQL Object Relational Database System), version française.: Livres et Documentations


Page suivante Page précédente Table des matières

24. Livres et Documentations

24.1 Guides utilisateur et Manuels

On trouve dans la distribution PostgreSQL aux formats postscript, HTML et pages de manuel unix les documents suivants. Si vous avez accès à l'internet, vous pouvez trouver les documents indiqués ci-dessous à http://www.postgresql.org/docs

  • Le 'Guide Utilisateur' pour PostgreSQL,
  • Le 'Guide de Réalisation' détaillant la constitution interne de PostgreSQL.
  • Les manuels "en ligne".
  • Le manuels en ligne au format HTML.
  • Également les manuels au format Postscript pour faire des éditions papier.

24.2 Documentation en ligne

  • Liste et description des types de données et des opérateurs par défaut

  • Liste des mots-clés SQL supportés

  • Liste des instructions supportées -

  • Concepts de base des bases de données relationnelles sous PostgreSQL (en implémentation) et des tonnes d'exemples en ligne (requêtes) -

  • Didacticiel pour PostgreSQL.

    Voir également "Didacticiel SQL pour les débutants" dans l'appendice B de ce document Appendix B

24.3 Documents de Référence: Ouvrages de référence utiles :

  • "Understanding the New SQL: A Complete Guide" (Comprendre le Nouveau SQL: Un Guide Complet)- par Jim Melton et Alan R.Simon

  • "A Guide to THE SQL STANDARD" (Un Guide du STANDARD SQL) - par C.J.Date

  • SQL - The Standard Handbook, (Le Manuel Standard) November 1992

  • SQL Instant Reference, (Référence Immédiate SQL) 1993

  • C.J.Date, "An introduction to Database Systems" (Une introduction aux Systèmes de Bases de Données) (6th Edition), Addison-Wesley, 1995, ISBN 0-201-82458-2

  • Stefan Stanczyk, "Theory and Practice of Relational Databases", (Théorie et pratique des bases de Données Relationnelles) UCL Press Ltd, 1990, ISBN 1-857-28232-9

  • "The Practical SQL Handbook" (Le Manuel Pratique de SQL) Third Edition, Addison Wesley Developers Press ISBN 0-201-44787-8

  • Michael Stonebraker, "Readings in Database Systems" (lectures sur les Systèmes de Bases de Données), Morgan Kaufmann, 1988, ISBN 0-934613-65-6

  • C.J.Date, "Relational Database - Selected Readings" (Bases de Données Relationnelles - Morceaux choisis), Addison-Wesley, 1986, ISBN 0-201-14196-5

  • Nick Ryan and Dan Smith, "Database Systems Engineering", (Ingénierie de Systèmes de Bases de Données), International Thomson Computer Press, 1995, ISBN 1-85032-115-9

  • Bipin C. Desai, "An introduction to Database Systems", (Une introduction aux systèmes de bases de données) West Publishing Co., 1990, ISBN 0-314-66771-7

  • Joe Celko "INSTANT SQL Programming" (Programmation SQL IMMEDIATE)

  • Michael Gorman "Database Management Systems: Understanding and Applying Database" (Systèmes de Gestion de Bases de Données : comprendre et appliquer les bases de données)

  • Michael Gorman "Enterprise Database for a Client/Server Environment" (Base de Données d'Entreprise pour un Environnement Client/Serveur) QED and John Wiley

Des centaines d'autres titres concernant SQL sont disponibles! Vérifiez-le dans une librairie.

24.4 Documents de Spécifications ANSI/ISO SQL - SQL 1992, SQL 1998

Les documents de Spécifications ANSI/ISO SQL sont situés à l'endroit indiqué ci-dessous.

24.5 Syntaxe de l'ANSI/ISO SQL 1992

Voir l'Appendice A de ce document Appendix A

24.6 Syntaxe de l'ANSI/ISO SQL 1998

Les spécifications de SQL 1998 (SQL 3) sont encore en cours de développement. Voir le paragraphe 'Electronic Access to the SQL3 Working Draft' de ce document document à SQL 1998

24.7 Didacticiel SQL pour les débutants

Voir l'Appendice B de ce document Appendix B

24.8 Extension Temporelle à SQL92

Ce répertoire contient les spécifications pour une extension temporelle au langage SQL-92 standard. Ce nouveau langage est appelé TSQL2.

Les spécifications du langage présentées ici correspondent à la version finale du langage.

La correspondance doit être adressée au bureau du Comité de Conception du Langage TSQL2, Richard T.Snodgrass, Department of Computer Science, University of Arizona, Tucson, AZ 85721,

Les affiliations et les adresses électroniques des membres du Comité de Conception du langage TSQL2 peuvent être trouvées, dans un chapitre séparé, à la fin des spécifications du langage.

Le contenu du répertoire est le suivant :

spec.dvi,.ps Spécifications du langage TSQL2, publié en Septembre, 1994

bookspec.ps Spécifications du langage TSQL2, telles qu'elles apparaissent dans le livre sur TSQL2, publié en Septembre, 1995 (voir ci-dessous).

sql3 proposition de modification soumise au comités ANSI et ISO SQL3.

Un ensemble de commentaires, associés aux spécifications du langage, parle des décisions de conception, fournit des exemples, et traite de la façon dont le langage peut être implanté. Ces commentaires sont, à l'origine, des propositions faites au Comité de Conception du Langage TSQL2. Ils poursuivent actuellement un objectif différent: fournir des exemples de syntaxe, expliquer les nombreuses décisions prises durant la conception du langage, et comparer TSQL2 aux nombreuses autres propositions de langage faites au cours des quinze dernières années. Il faut insister sur le fait que ces commentaires ne font pas partie intégrante des spécifications du langage TSQL2 en lui-même, mais plutôt qu'elles le complètent et constituent un apport. Le mot de la fin est donné par les spécifications de TSQL2 proprement dit.

Les commentaires, ainsi que les spécifications du langage, plusieurs index, et d'autres éléments de support ont été publiés dans un livre :

Snodgrass, R.T., éditeur, The TSQL2 Temporal Query Language, (Le Langage de Requêtes Temporel TSQL2) Kluwer Academic Publishers, 1995, 674+xxiv pages.

Les commentaires d'évaluation sont donnés sous forme abrégée dans le livre; La totalité des commentaires est fournie dans le fichier eval.ps situé dans ce répertoire

Le fichier tl2tsql2.pl est un programme prolog qui traduit la logique temporelle autorisée en TSQL2. Ce programme a été écrit par Michael Boehlen

On peut le contacter pour obtenir un papier qui décrit cette traduction. C'est une version tout à fait ancienne du programme. Les nouvelles versions sont disponibles à

(the TimeDB and Tiger systems).

24.9 Partie 0 - Acquisition des Documents ISO/ANSI SQL

Ce document vous explique comment acquérir (légalement) une copie de la norme SQL-92 et comment acquérir une copie du Brouillon de Travail du SQL3 "actuel".

La norme ANSI est protégée par un copyright de l'ANSI, et la norme ISO par un copyright de l'ISO.

Il y a deux (2) normes SQL courantes, une publication ANSI et une publication ISO. Les deux normes sont identiques mot-pour-mot excepté pour quelques sujets triviaux tel que le titre du document, les en-tête de page, la phrase "International Standard" au lieu de "American Standard", et ainsi de suite.

Achat du Standard SQL-92

La norme ISO, ISO/IEC 9075:1992, Information Technology - Database Languages - SQL, est actuellement (Mars, 1993) disponible et en stock à l'ANSI :

au prix de US$ 230.00. La version ANSI, ANSI X3.135-1992, American National Standard for Information Systems - Database Language SQL, n'était pas disponible en stock au moment de la rédaction, mais il devrait l'être entre fin Mars et début Mai, 1993). Il devrait coûter US$ 225.00.

Si vous achetez l'un ou l'autre document à l'ANSI, il y aura un supplément de 7% pour le traitement (soit environ US$ 9.10). Les frais d'envoi à l'étranger accroîtront sans doute le coût. ANSI exige des sociétés un document de commande écrit pour chaque commande; d'un autre côté, vous pouvez envoyer un chèque tiré sur une banque US en dollars US, qu'ils encaisseront avant d'expédier votre commande. (Il y a une exception : si votre organisation est membre de l'ANSI, alors l'ANSI enverra les documents et une facture à votre compagnie.)

La norme ISO est aussi disponible en dehors des États-Unis à partir de représentations nationales locales (entités de standardisation du pays) qui sont membres soit de l'ISO (International Organization for Standardization) soit de l'IEC (International Electrotechnical Commission). Des copies de la liste des représentations nationales, avec leurs adresses, sont disponibles de l'ANSI ou d'autres entités nationales. Ils sont aussi disponibles à l'ISO :

Si vous préférez commander la norme d'une façon plus facile et plus rapide, il vous faudra payer pour ce privilège. Vous pouvez commander le ISO/IEC 9075:1992, Information Technology - Database Languages - SQL, à :

pour un prix de US$ 308.00. Je ne sais pas si le port est compris ou non, mais je parierais que l'envoi international (au moins) sera en supplément. Ils peuvent vous envoyer un document très rapidement et acceptent même les "plus grandes cartes de crédit". Global n'a pas encore la version ANSI pas plus qu'un prix ou qu'une date prévisible de disponibilité (bien que je l'attende dans les quelques semaines suivant la publication par l' ANSI et à un prix aux alentours de US$ 300.00).

Achat d'une copie du Document de Travail SQL3

Vous pouvez acheter une copie du document de travail SQL3 au secrétariat de l'ANSI X3, CBEMA (Computer and Business Equipment Manufacturers Association). Leur objectif est d'avoir la "plus récente" version du document de travail de SQL3 disponible et de la vendre pour environ US$ 60.00 à US$ 65.00. Vous pouvez contacter CBEMA à:

Lynn Barra peut aussi être contactée par téléphone au +1.202.626.5738 pour une demande de copie, bien qu'un courrier soit probablement plus courtois.

Accès Électronique au Document de Travail SQL3

La plus récente version (à la date de rédaction) du document de travail SQL3 (à la fois ANSI et ISO, et de toutes ses parties) est disponible par "ftp anonyme" ou par "ftpmail" sur:

Dans ce répertoire , il y a de nombreux fichiers. Ce sont des fichiers PostScript et "texte ordinaire" (pas très bien formatés, mais lisibles sur un écran sans logiciel spécifique).

En général, vous pouvez trouver des fichiers avec des noms tels que :

A mesure que de nouvelles versions des documents sont produites le "mar94" changera pour indiquer la nouvelle date de publication (e.g., "aug94" est la date attendue de la prochaine publication suivant "mar94").

De plus, pour les lecteurs ne pouvant pas obtenir une liste de répertoire par FTP, nous avons ajouté un fichier ayant pour nom :

dans le même répertoire. Ce fichier (surprise!) contient une liste du répertoire.

Récupérer les Fichiers Directement par Ftp

Voici un exemple sur la façon d'utiliser FTP. Spécifiquement, il montre comment se connecter à gatekeeper.dec.com, aller au répertoire où le document de base est gardé et à transférer ce document sur votre machine. Notez que votre machine doit pouvoir accéder à l'internet pour faire cela. Le nom de connexion est 'ftp' et le mot de passe est votre adresse e-mail (on appelle quelquefois cela 'ftp anonyme'). La commande 'type binaire' est utilisée pour s'assurer qu'aucuns bits ne seront supprimés du (des) fichier(s) reçu(s). La commande 'get' récupère un fichier à la fois. Les commentaires dans le script ci-dessous sont placés entre les signes < ... >, < comme ceci > .

Récupération de Fichiers Sans Faire un ftp Direct

Digital Equipment Corporation, comme plusieurs autres compagnies, fournit un service de ftp par courrier électronique. La réponse peut prendre plusieurs jours, mais cela fournit un service équivalent à ftp pour ceux qui n'ont pas un accès direct au ftp par Internet. L'adresse du serveur est:

ftpmail@decwrl.dec.com

Le script suivant récupérera la dernière version PostScript du document SQL3 :

Le script suivant récupérera la dernière version PostScript du document SQL3 :

La première ligne du script commande au serveur de vous retourner les fichiers demandés; vous devrez remplacer "joe.programmer@imaginary-corp.com" par votre adresse Internet. Le fichier x3h2-93-091.ps, dans cet exemple, est retourné sous forme de 34 messages e-mail séparés, "compressés" et "uuencodés". Si votre environnement ne dispose pas des outils pour reconstruire de tels fichiers, alors, il vous faudra récupérer le fichier sous forme de texte pur en utilisant le script suivant:

Mais, attention, le fichier .ps vous sera probablement envoyé en plus de 70 morceaux!

Pour récupérer un fichier particulier, autre que x3h2-93-091.ps, remplacez simplement "x3h2-93-091.ps" par le nom du fichier désiré. Pour obtenir la liste de tous les fichiers disponibles dans un répertoire, remplacez "get x3h2-93-091.ps" par "dir".

24.10 Partie 1 - Etat Actuel de l'ISO/ANSI SQL

Ce chapitre constitue une source d'information à propos du processus de normalisation de SQL et de son état actuel.

État Actuel

Le développement pour améliorer SQL afin d'en faire un langage complet pour la définition et la gestion d'objets persistants et complexes. Ceci comprend : les hiérarchies de généralisation et de spécialisation, l'héritage multiple, les types de données définies par l'utilisateur, les déclencheurs et les assertions, le support des systèmes à base de connaissances, les requêtes récursives, et des outils complémentaires d'administration de données. Cela inclue également la spécification des types de données abstraits (ADTs), des identificateurs d'objets, des méthodes, de l'héritage, du polymorphisme, de l'encapsulation et de tous les autres moyens normalement associés à la gestion d'objets.

A l'automne 1996, plusieurs parties de SQL3 ont été soumises à un vote de l'ISO CD. Ce sont SQL/Framework, SQL/Foundation et SQL/Bindings. Ce vote échoua (comme prévu) avec environ 900 commentaires. Fin Janvier, un comité de rédaction traita un grand nombre de solutions aux problèmes qui furent soit incluses avec les commentaires du vote ou soumises en tant que documents séparés. Depuis le comité de rédaction DBL n'a pas pu traiter tous les commentaires et sa durée a été augmentée. La fin du comité de rédaction est prévue pour la fin Juillet 1997, à Londres.

A la suite du comité de rédaction de Juillet, on attend qu'un vote final du CD soit demandé pour ces parties de SQL. Le processus du CD Final prendra environ 6 mois et un comité de rédaction du DBL, après lesquels il y aura un vote IS et un très rapide vote IS.

Les procédures ISO ont changé depuis SQL/92, et les comités SQL travaillent encore selon les règles du processus.

Si tout va bien, ces parties du SQL3 deviendront une norme officielle ISO/IEC en fin 1998, mais le programme est très serré.

En 1993, les comités de développement ANSI et ISO ont décidé de d'éclater le développement futur de SQL en une norme multi-parties. Ces parties sont :

  • Partie 1: Structure Description non technique de la manière dont le document doit être structuré.
  • Partie 2: Base Spécifications de base, incluant toutes les nouvelles fonctionnalités ADT.
  • Partie 3: SQL/CLI Interface du niveau appel (Call Level Interface).
  • Partie 4: SQL/PSM Spécifications des procédures enregistrées
  • Partie 5: SQL/Bindings SQL Dynamique et SQL Embedded SQL liens venant de SQL-92.
  • Partie 6: SQL/XA Une spécialisation de l'interface populaire XA développée par X/Open
  • Partie 7:SQL/Temporal Ajoute les capacités liées au temps à la norme SQL.

Aux USA, la totalité de SQL3 est en cours de traitement à la fois comme projet ("D") national et comme projet ISO. La fin de SQL3 est attendue pour courant 1999.

Le SQL/CLI et le SQL/PSM sont en cours de traitement aussi rapidement que possible comme addenda à SQL-92. Aux USA, ils sont traités uniquement comme projet International. SQL/CLI a été terminé en 1995. SQL/PSM devrait être terminé fin 1996.

En plus du travail sur SQL3, quelques projets additionnels sont poursuivis :

  • SQL/MM Un effort en cours pour définir une norme multi-media utilisant les possibilités de SQL3 ADT.
  • Accès aux données à distance (RDA)

Comités et Processus de Standardisation

Il y a effectivement de nombreux comités de normalisation de par le monde. Il y a un groupe international de normalisation SQL faisant partie de l'ISO. Un certain nombre de pays on des comités qui se consacrent à SQL. Ces pays (habituellement) envoient des représentants aux réunions ISO/IEC JTC1/SC 21/WG3 DBL. Les pays qui participent activement au processus de normalisation ISO SQL sont :

  • Australie
  • Brésil
  • Canada
  • France
  • Allemagne
  • Japon
  • Corée
  • Pays-Bas
  • Angleterre
  • États-Unis

Validation NIST

Les implémentations SQL sont validées (aux États-Unis) par le National Institute of Standards and Testing (NIST). Le NIST possède une suite de tests de validation pour le niveau de base SQL-92. Les détails exacts des exigences de la validation NIST sont définis comme un Federal Information Processing Standard (FIPS). Les exigences actuelles pour SQL sont définies dans le document FIPS 127-2. Les versions Postscript et Texte de ce document peuvent être obtenues au NIST. La Liste des Produits Validés à jour peut également être obtenue au NIST.

Publications et Articles sur le Standard SQL

Il y a deux versions de la norme SQL. Les deux sont disponibles à l'ANSI:

  • ISO/IEC 9075:1992, "Information Technology --- Database Languages --- SQL"
  • ANSI X3.135-1992, "Database Language SQL"

Les deux versions de la norme SQL sont identiques sauf la page de garde et les références aux autres normes. Les deux versions sont disponibles au :

En supplément à la norme SQL-92, il y a maintenant un Technical Corrigendum (correction d'erreurs) :

Le TC 1 doit aussi être disponible à l'ANSI. Il n'y a qu'une version du TC 1 -- qui s'applique à la fois aux versions ISO et ANSI de SQL-92.

En supplément à ces normes, plusieurs livres ont été écrits sur la norme SQL 1992. Ces livrent donnent une description bien plus lisible de la norme que celle donnée par le norme elle-même.

Standards connexes

Un certain nombre d'autres normes présentent de l'intérêt pour la communauté SQL. Cette section contient des pointeurs donnant des informations sur ces efforts. Ces pointeurs seront plus nombreux à mesure que des informations complémentaires seront disponibles sur le web.

  • SQL Environnements (FIPS 193) - (Environnements SQL)
  • Next Generation Repository Systems (X3H4) - (Systèmes Dépositaires de la Prochaine Génération) Une version des Nouvelles appelant à une participation au "Développement des Standards pour les Systèmes Dépositaires de la Prochaine Génération."

24.11 Partie 2 - Fondements ISO/ANSI SQL

Une partie importante de l'effort pour SQL3 réside dans le document de base SQL :

  • Capacités de Base SQL/PSM (venant de SQL/PSM-92)
  • Nouveaux types de données
  • Déclencheurs
  • Sous-tables
  • Types de Données Abstraits (ADT)
  • Capacités Orientées Objets

Il y a plusieurs pré-requis pour les capacités orientées objets :

  • Capacité de pouvoir définir des opérations complexes
  • Stockage des opérations complexes dans la base de données
  • Appels de Procédures Externes ­ Quelques opérations peuvent ne pas exister dans SQL ou peuvent nécessiter des interactions externes

Ces capacités sont définies comme faisant partie de SQL/PSM

Une grande quantité de travail est en cours de réalisation pour affiner le modèle objet SQL-3 et l'aligner sur le modèle objet proposé par l'ODMG. Cet effort est décrit dans les papiers X3H2 et ISO DBL : Accommoder SQL3 et ODMG. Une mise à jour récente sur le Fusionneur SQL3/OQL est également disponible.

Planification de SQL3

Le travail sur SQL3 se poursuit normalement, mais la publication de la norme finale se situe encore à un horizon de plusieurs années.

  • Le vote International pour passer du Brouillon de Travail au Brouillon du Comité (CD) aura lieu à l'automne 1996.
  • On s'attend à ce que le vote génère de nombreux commentaires
  • Un second vote sera probablement nécessaire
  • Le vote pour le Brouillon du Standard International devrait avoir lieu à la mi-1998
  • Le Standard International doit être terminé à la mi-1999.

Le programme de la version ANSI sera similaire.

24.12 Partie 3 - Interface d'Appel SQL ISO/ANSI

SQL/CLI est une interface de programmation d'appel pour les bases de données SQL. Il est conçu pour accéder aux bases de données à partir d'applications fermées. CLI a, à l'origine, été créé par un sous-comité du groupe SQL Access (SAG). Les spécifications de SAG/CLI ont été publiées, en 1992, en tant que spécifications Microsoft Open DataBase Connectivity (ODBC) en 1992. En 1993, le SAG a soumis le CLI aux comités ANSI et ISO SQL. (Le groupe "SQL Access Group" a maintenant été fusionné avec le consortium X/Open.)

SQL/CLI fournit une norme internationale pour :

  • Un CLI dépendant de l'implémentation pour accéder aux bases de données SQL
  • Des outils Client-serveur pour accéder facilement à une base de données au moyen de Bibliothèques de Lien Dynamique
  • Supporter et encourager un riche ensemble d'outils Client-serveur

Planification de SQL/CLI

Le processus de normalisation de SQL/CLI se poursuit à une vitesse aveuglante.

  • SQL/CLI est un addendum à la norme SQL de 1992 (SQL-92)
  • Achevé comme norme ISO en 1995
  • ISO/IEC 9075-3:1995 Information technology -- Database languages -- SQL -- Partie 3: Call-Level Interface (SQL/CLI)
  • L'effort actuel porte sur l'ajout des fonctionnalités SQL3 à SQL/CLI

24.13 Partie 4 - Modules Mémorisés Persistants ISO/ANSI SQL

SQL/PSM étend SQL en ajoutant :

  • Des extensions de langage procédural
  • Des procédures mémorisées multi-instructions
  • Des appels de procédures et de fonctions externes

SQL/PSM apporte, en plus du fait d'être un bon outil de développement d'application, une base pour des fonctionnalités orientées objet dans SQL3.

Procédures mémorisées et multi-instructions

Multi-instructions et procédures mémorisées offrent une grande variété d'avantages dans un environnement client/serveur :

  • Performance - Puisqu'une procédure mémorisée peut effectuer de multiples instructions SQL, les interactions sur le réseau, avec le client, sont réduites.
  • Sécurité - On peut donner à un utilisateur le droit d'appeler une procédure mémorisée qui met à jour une table ou un ensemble de tables mais lui refuser le droit de mettre à jour les tables directement
  • Code partagé - Le code d'une procédure mémorisée n'a pas à être réécrit ni re-testé pour chaque outil d'un client qui accède à la base de données.
  • Contrôle - Fournit un point unique de définition et de contrôle dans la logique de l'application.

Extensions de Langage Procédural

Le langage procédural ajoute la puissance d'un langage de programmation traditionnel à SQL grâce à des instructions de contrôle de flot et à d'autres constructions utilisées en programmation.

Instructions de contrôle de flot

  • If-then-else (si-alors-sinon)
  • Instructions de boucle
  • Prise en compte de erreurs
  • Instruction de choix multiple (Case)
  • Blocks (Begin-End blocks)

Les extensions de langage procédural comprennent d'autres constructions des langages de programmation :

  • Déclaration des variables
  • Instructions d'affectation de valeur
  • Lecture de diagnostiques sur les processus et l'état

De plus, toutes les instructions SQL traditionnelles peuvent être inclues dans de procédures multi-instructions.

Appels de Fonctions et de Procédures externes

Une fonctionnalité souvent mentionnée dans la liste des souhaits pour de nombreuses base de données et produits et qui est implémentée dans quelques-uns, est la capacité de pouvoir augmenter les fonctionnalités du logiciel de base de données d'origine par des appels à des procédures externes écrites par les utilisateurs.

  • Cela permet à un site ou a une application en particulier d'ajouter leurs propres fonctions base de données
  • Peuvent être utilisées tout au long des applications bases de données

Le bénéfice de cette capacité est de donner accès, pour la base de données (et, par là, aux applications base de données), à un riche ensemble de procédures et de fonctions trop nombreuses pour être définies par un comité de normalisation.

Planification de SQL/PSM

SQL/PSM évolue rapidement :

  • SQL/PSM est un addendum à SQL-92
  • Un vote international pour faire passer SQL/PSM de Brouillon de Norme Internationale à Norme Internationale s'est achevé en fin janvier 1996.
  • Une réunion de travail en mai 1996 n'a pas apporté de solution à tous les commentaires
  • La poursuite de la réunion de travail du PSM est programmée du 30 septembre au 4 octobre 1996
  • Le programme est serré, mais il y a des chances que le PSM le publie en 1996.
  • Sa désignation officielle sera : ISO/IEC DIS 9075-4:199? Information technology -- Database languages -- SQL -- Partie 4: SQL Persistent Stored Modules (SQL/PSM)
  • L'ajout du support de SQL/PSM dans les fonctionnalités de SQL3 est en bonne voie.

24.14 Partie 5 - ISO/ANSI SQL/Liens

Pour en faciliter l'accès, la description des liens avec le langage de programmation a été mise dans un document séparé. La version actuelle consiste simplement en un extrait concernant les liens dynamiques et intégrés de SQL-92.

Un certain nombre de sujets concernant les liens avec le langage de programmation restent en suspens.

Pour les langage de programmation traditionnels, il existe des transformations pour les types de données de SQL-92. Cependant, des transformations doivent être définis entre les objets SQL et les variables des langages de programmation.

Pour les langages orientés objets, la transformation doit être définie pour les types de données courants SQL et entre le modèle objet SQL et le modèle objet du langage orienté objet.

Le modèle objet doit se stabiliser avant de résoudre ces problèmes.

Les liens avec le langage feront partie intégrante de SQL3.

24.15 Partie 6 - Interface de Spécialisation (SQL/XA) ISO/ANSI SQL XA)

Cette spécification devrait normaliser l'interface de programmation d'application (API) entre un Gestionnaire de Transaction global et le Gestionnaire de Ressources SQL. Il devrait normaliser les appels de fonction, en s'appuyant sur la sémantique de l'ISO/IEC 10026, "Distributed Transaction Processing", qu'un Gestionnaire de Ressources SQL devrait supporter pour la validation en deux phases. Le document de base est dérivé d'une publication de l'X/Open, avec sa permission, qui spécifie explicitement les paramètres d'entrée, de sortie et la sémantique, en termes de types de données SQL, pour les fonctions suivantes : xa_close, xa_commit, xa_complete, xa_end, xa_forget, xa_open, xa_prepare, xa_recover, xa_rollback, et xa_start.

ISO essaye actuellement de coller aux spécifications XA de l'X/Open. Ce processus de suivi, au plus près, consiste à adopter les spécifications de l'industrie sans changements. Le vote pour l'XA à l'ISO SC21, JTC 1 a débuté le 27 avril 1995 et se termine le 27 octobre 1995. Si les spécifications XA sont approuvées par 75% des votants, et par 2/3 des membres participants de JTC 1, cela deviendra une Norme Internationale. Si le vote est approuvé, SQL/XA pourrait devenir une norme en 1996.

24.16 Partie 7 - ISO/ANSI SQL Temporel

Le SQL Temporel traite des données en relation avec le temps. Conceptuellement, cela consiste à dire qu'il est utile d'aller chercher des données pour découvrir l'allure qu'elles avaient à un certain moment. L'origine du SQL Temporel réside dans un papier de décembre 1994 de Rick Snodgrass qui en décrivait les concepts.

X3 Annonce l'Approbation d'un Nouveau Projet, ISO/IEC 9075 Partie 7 : SQL/Temporel est un communiqué de presse concernant le SQL/Temporel.

Plusieurs personnes se sont posé la question de la nécessité de la prise en charge de la gestion du temps dans SQL3 (comme cela a été proposé par DBL RIO-75, demandant qu'une nouvelle partie de SQL prenne en charge les bases de données temporelles). Le sentiment est que les types de données abstraits (ADT) sont suffisants pour gérer les questions de temps. Dans ce papier, je démontre, par des exemples concrets, que l'utilisation de colonnes typées, avec des types de données abstraits, est inadaptée pour des requêtes temporelles. En particulier, beaucoup de requêtes temporelles courantes sont soit difficiles à simuler en SQL, soit nécessitent d'intégrer SQL dans un langage procédural. Des solutions alternatives sont exposées dans TSQL2, une extension temporelle à SQL-92.

INTRODUCTION

La prise en charge d'un instant de validité va au-delà de celle de types de données temporels abstraits (ADT temporel). Avec ce dernier, on spécifie qu'une colonne sera celle consacrée au domaine temporel, tel que la DATE ou un INTERVALLE (je donnerai des exemples bientôt). Avec un instant de validité, les lignes d'une table varient en fonction du temps, reflétant les modifications de la réalité. Le timbre dateur associé à une ligne d'une table à instant de validité est interprété par le langage d'interrogation comme l'instant où la combinaison des valeurs dans les colonnes d'une ligne était valide. Ce timbre dateur implicite permet d'exprimer des requêtes de manière simple et intuitive.

ÉTUDE DE CAS - ENREGISTREMENT DE L'INFORMATION COURANTE

Le bureau du personnel (BP) salarié de l'université de l'Arizona possède un certain nombre d'informations, dans une base de données, dont le nom de chaque employé, son salaire actuel ainsi que son titre. On peut représenter cela dans une simple table.

Étant donné cette table, retrouver le salaire d'un employé est une opération aisée.

Maintenant, le BP souhaite enregistrer les dates de naissance. Pour ce faire, on ajoute une colonne à la table, ce qui donne le schéma suivant.

Retrouver la date de naissance d'un employé est analogue à retrouver son salaire.

ÉTUDE DE CAS - ENREGISTREMENT DE L'INFORMATION HISTORIQUE

Le BP souhaite informatiser l'historique de l'emploi. Pour ce faire, ils ajoutent deux colonnes, l'une pour indiquer quand l'information contenue dans le ligne est devenue valide, l'autre indiquant la fin de validité de cette information.

Employee (Name, Salary, Title, DateofBirth, Start DATE, Stop DATE)

Pour le modèle de données, ces nouvelles colonnes sont identiques à la date de naissance. Cependant, leur présence à des conséquences à grande échelle.

ÉTUDE DE CAS - PROJECTION

Pour trouver le salaire actuel d'un salarié, les choses sont plus difficiles.

Cette requête est plus compliquée que la précédente. Le coupable se situe, de toute évidence, dans ces deux nouvelles colonnes. Le BP veut fournir à chaque employé l'historique de leur salaire. Pour chaque personne, spécifiquement, il est nécessaire de déterminer les intervalles correspondants à chacun des salaires. Malheureusement, cela n'est pas possible en SQL. Un employé peut avoir un nombre arbitraire de changements de titre entre deux changements de salaire.

Notez qu'il y a trois lignes pour lesquelles le salaire de Bob reste constant à $ 70,000. De là, le résultat sera de deux lignes pour Bob.

Une alternative est de donner à l'utilisateur une édition des informations Salaire et Titre, et de laisser l'utilisateur déterminer quand son salaire a changé. Cette alternative n'est ni très attirante ni très réaliste. Une seconde alternative est d'utiliser SQL autant que possible.

répéter

La boucle trouve des intervalles qui se chevauchent ou sont adjacents et, doivent donc être fusionnés. La boucle est exécutée log N fois dans le pire des cas, où N est le nombre de lignes dans une chaîne de lignes de valeur équivalente qui se chevauchent ou sont adjacentes. Le lecteur peut simuler cette requête sur la table de l'exemple pour se convaincre de sa vérité.

Une troisième alternative consiste à utiliser SQL uniquement pour ouvrir un curseur sur la table. Une liste chaînée de périodes est entretenue, chacune avec un salaire. La liste chaînée doit être initialisée vide.

Répéter tout au long de la liste chaînée, édition des dates et des salaires

La liste chaînée peut ne pas être nécessaire au cas où le curseur est ORDER BY Start.

Dans tous les cas, la requête, tout ce qu'il y a de naturelle, est tout à fait difficile à exprimer en utilisant les possibilités offertes par SQL-92. La requête est triviale en TSQL2.

ÉTUDE DE CAS - JOINTURE

Une approche plus drastique consiste à éviter le problème d'extraction de l'historique du salaire en réorganisant le schéma pour séparer les informations de salaire, de titre, et de date de naissance (dans ce qui suit, nous ignorerons la date de naissance pour raison de simplicité).

La table Employee1 est la suivante.

Voici un exemple de la table Employee2.

Avec cette modification, aller chercher l'information de salaire d'un employé devient maintenant facile.

Mais qu'en est-il si le BP veut une table des salaires, des intervalles de titre (c'est-à-dire, supposons que le BP veuille qu'une table soit calculée dans la forme de la Figure 1)? Une alternative est d'éditer les deux tables, et de laisser l'utilisateur en calculer les combinaisons. Une seconde alternative est d'utiliser entièrement SQL. Malheureusement, cette requête doit faire une étude de cas sur la manière dont chaque ligne de Employee1 se chevauche avec chaque ligne de Employee2; il y a quatre cas possibles.

Prendre en compte, d'une façon correcte, tous les cas constitue une tâche qui relève du challenge. En TSQL2, réaliser une jointure temporelle correspond simplement à ce que l'on peut espérer.

ÉTUDE DE CAS - AGRÉGATS

Maintenant, on demande au BP quel est le salaire maximum ? Avant d'ajouter les données de temps, c'était facile.

Maintenant que l'historique du salaire est enregistré, nous obtiendrons quelque chose comme l'historique du salaire maximum à travers le temps. Le problème est que, naturellement, SQL ne fournit pas d'agrégats temporels. Le moyen simple de réaliser cela consiste à éditer l'information, et à chercher, à la main, le maximum. Une alternative consiste à être plus astucieux et à convertir l'instantané de la requête agrégée en une requête non agrégée, puis à convertir le résultat en requête temporelle. La requête non agrégée retrouve les salaires pour lesquels un salaire plus élevé n'existe pas.

Convertir cette requête en une requête temporelle est loin d'être évident. Ce qui suit constitue une approche possible.

Cette approche crée une table auxiliaire. Nous ajoutons à cette table la période inférieure soustraite d'une période et la partie supérieure soustraite d'une période. Nous supprimons alors toutes les périodes qui se chevauchent avec une ligne définie dans la sous-requête, de ce fait réalisant le NOT EXISTS(n'existe pas). Finalement nous générons à partir de la table auxiliaire les périodes maximales, de la même façon que l'information de salaire avait été calculée ci-dessus. Comme on peut l'imaginer, un tel code SQLest extrêmement inefficace à l'exécution, compte tenu des requêtes complexes imbriquées contenant des prédicats d'inégalité.

Une troisième alternative consiste à utiliser le moins possible SQL, et plutôt de calculer le maximum désiré dans un langage hôte en utilisant des curseurs.

La requête en TSQL2 est de nouveau simple et intuitive.

RÉSUMÉ

Dans la plupart des applications de base de données on manipule des données qui changent en fonction du temps. La prise en compte de l'instant de validité est absente de SQL. Beaucoup de requêtes temporelles ordinaires sont difficiles à simuler en SQL, ou requièrent du SQL intégré dans un langage procédural, ceci étant dû au manque de support des tables avec instant de validité dans son modèle de données et dans la structure des requêtes.

Ailleurs, nous avons montré que l'ajout du support de l'instant de validité ne requiert que peu de modifications dans l'implémentation des SGDB, peut radicalement simplifier un certain nombre de requêtes et en permettre d'autres, et peut, plus tard, permettre des optimisations dans les structures de mémoires, les méthodes d'indexation et les stratégies d'optimisation qui peuvent entraîner des améliorations notables dans les performances.

Avec une nouvelle partie de SQL3 supportant les informations qui varient avec le temps, permettant une meilleure gestion des données temporelles par SQL3, nous pouvons commencer à apporter une réponse à de telles application.

-- Le Comité de Normalisation Accrédité X3, Technologie de l'Information, annonce l'approbation d'un nouveau projet concernant le support de SQL/Temporel , ISO/IEC 9075 Partie 7, le travail devant être réalisé au sein du Comité Technique X3H2, Bases de Données. Cette proposition de norme concerne un nouvelle partie de la norme naissante SQL3, e.g., Partie 7, SQL Temporel, et spécifie les extensions au langage SQL pour gérer le stockage, l'extraction et la manipulation des données temporelles dans un environnement de base de données SQL.

La prochaine réunion du comité X3H2 est planifié pour la période du 11 au 14 Mars 1996 dans le Kansas.

Les questions concernant ce projet doivent être envoyées au président de X3H2 :

Un appel initial pour de possibles brevets ou autres sujets pertinents (copyrights, trademarks) est sur le point d'être émis. Soumettez, s'il vous plaît, les informations à ce propos au secrétariat de X3 à :

24.17 Partie 8 - SQL MULTIMEDIA ISO/ANSI (SQL/MM)

Un nouveau projet international de normalisation ISO/IEC pour le développement d'une bibliothèque de classe SQL pour les applications multi-media a été approuvé début 1993. Cette nouvelle activité de normalisation, appelée SQL Multi-media (SQL/MM), spécifiera les paquetages de définition de types de données abstraites SQL (ADT) en utilisant les fonctions fournies dans les spécifications SQL3 naissantes pour ADT. SQL/MM a pour objectif de normaliser des bibliothèques de classes pour la science et l'ingénierie, le traitement des textes et des documents, ainsi que des méthodes pour la gestion d'objets multi-media tels que les images, les sons, les animations, la musique et la vidéo. Il fournira vraisemblablement un lien entre le langage SQL et les objets multi-media définis par les autres entités de normalisation du JTC1 (e.g. SC18 pour les documents, SC24 pour les images, et SC29 pour les photographies et les images animées).

Le Plan du Projet pour SQL/MM prévoit que ce sera une norme multi-parties dont le nombre de parties pourra évoluer. La partie 1 consistera en un cadre spécifiant comment les autres parties doivent être architecturé. Chacune de ces autres parties sera consacrée à un paquetage d'application SQL spécifique. En août 1994, la structure existante était la suivante :

  • Partie 1: Cadre - Description non technique de la manière dont le document est structuré.
  • Partie 2: Méthodes pour le Texte et ADT (types de données abstraits) pour le traitement des textes. Environ 45 pages.
  • Partie 3: Méthodes Spatiales et ADT pour la gestion des données spatiales Environ 200 pages avec l'active contribution d'experts en Données Spatiales de 3 entités nationales.
  • Partie 4: Méthode à Usage Général et ADT pour les nombres complexes, et des fonctionnalités incluant la trigonométrie et les fonctions exponentielles les vecteurs, les ensembles etc. Actuellement environ 90 pages.

On assiste à des efforts de normalisation dans le domaine des informations Spatiales et Géographiques :

  • ANSI X3L1 - Systèmes d'Information Géographique. Mark Ashworth de Unisys est chargé de la liaison entre X3L1 et ANSI X3H2. Il est également le rédacteur des parties 1, 3, and 4 du brouillon de SQL/MM.
  • ISO TC 211 - Information géographique/Géomatique.

Page suivante Page précédente Table des matières

[22 février 2002, JDNet]

Société | Contacts | Publicité | Presse | Recrutement | Tous nos sites | Données personelles
Pour tout problème de consultations, écrivez au Webmaster.
© Benchmark Group, 4 rue diderot 92156 Suresnes Cedex