Expose SQL

Embed Size (px)

Text of Expose SQL

Architecture client serveur Expos : Langage SQL

PlanIntroduction I. Historique.II. III. IV. V.

02 03 04 06 08 27 33 39

Normes SQL.. Structure du langage Commandes SQL Comparaison des fonctions SQL sur quelques systmes de gestion de bases de donnes relationnelles

Conclusion Rfrences

Page 1

Architecture client serveur Expos : Langage SQL

IntroductionDevant laccroissement des collectes dinformations lectroniques en vue de diverses exploitations, il devenait urgent de mettre en place un systme capable dorganiser et de stocker un nombre considrable dinformations. En 1970, ce besoin a t vcu dans les laboratoires dIBM et a donn naissance un systme capable dentretenir les fichiers contenant les informations tout en masquant les dtails complexes et fastidieux lis leurs gestions, permettant ainsi lutilisateur daccder simplement aux informations via un langage dinterrogation. Cette premire tape a introduit de nouvelles notions comme les bases de donnes, le modle relationnel et le systme de gestion de base de donnes. Par la suite diverses socits ont propos leur solution de gestion des donnes, leur langage pour lextraction des donnes. Le langage SQL (Structured Query Language) (Langage de requtes Structur) est le fruit dannes de rflexion sur la problmatique de manipulation des donnes. Formalis et normalis, il est n dans les annes 1980 et a t rapidement adopt par la majorit des diteurs. Ses dernires normalisations lont fait sorienter vers ce que lon appelle dsormais le relationnel objet, cest--dire lintroduction de certains principes de la programmation objet au sein des bases de donnes relationnelles. La normalisation laisse la possibilit aux producteurs de systmes de gestion de bases de donnes (SGBD) d'y ajouter des instructions spcifiques et non normalises. En raison de cette possibilit, ainsi que de l'volution de la norme au cours des annes, les diteurs de SGBD ajoutent souvent des possibilits avant que celle-ci fassent objet de normes, ce qui provoque des variations dans la comprhension et l'interprtation qui est faite d'un code source en SQL par les diffrents logiciels de SGBD. Aprs un bref historique du langage SQL, nous donnerons des syntaxes de quelques commandes pour aboutir une comparaison de certaines fonctions dans des SGBD.

Page 2

Architecture client serveur Expos : Langage SQL

I. HistoriqueComme beaucoup de technologies de linformatique aujourdhui matures, les bases de donnes relationnelles sont nes des travaux dIBM entre les annes 1960 et 1970. De nombreuses recherches ont t menes au cours de cette priode sur des modles de donnes hirarchiques, rseaux et relationnels. Le relationnel a t unanimement adopt par la suite et programm laide du langage SQL. La thorie sur laquelle repose SQL a t nonce par le professeur Edgar Frank Codd (1924-2003), un mathmaticien dOxford, alors quil travaillait comme chercheur pour IBM au laboratoire de San Jose. Larticle A relational model of data for large shared data banks , publi en juin 1970 dans la revue Association for Computing Machinery, fait toujours office de rfrence et a initi tous les travaux qui ont suivi et qui perdurent. Codd voulait crer un systme o linterrogation des donnes utilisait le vocable anglais. Les travaux de la NASA (National Aeronautics and space Adminstration) (Administration Nationale de laronautique et de lespace), sur la base de donnes modlisant les rochers rapports du voyage sur la lune, a aid au dveloppement de ce langage en lui donnant de la crdibilit. Ds 1974, IBM entamait un prototype de bases de donnes relationnelles appel System/R. Ce projet se termina en 1979, prouvant ainsi la viabilit dun tel systme. Le langage de programmation utilis par IBM pour System/R fut appel SEQUEL (Structured English Query Language) rebaptis par la suite SQL (Structured Query Language). Comme tout langage, SQL a eu ses concurrents, le plus connu fut QUEL du SGBD Ingres du dbut des annes 1980.

Page 3

Architecture client serveur Expos : Langage SQL

II. Normes SQLLe langage SQL est normalis depuis 1986. Cette norme sest enrichie au fil du temps (publication X3.135-1986 de lANSI reprise par lISO peu de mois aprs : ISO 90751987). Cette premire mouture, appele SQL86 ou SQL1 (une centaine de pages), tait le rsultat de compromis entre constructeurs, mais fortement influence par le dialecte dIBM. En 1989, dimportantes mises jour furent faites en matire dintgrit rfrentielle (ANSI X3.135-1989 et ISO/IEC 9075:1989). La deuxime norme (appele SQL92 ou SQL2 dun volume denviron 600 pages) fut finalise en 1992. Elle dfinissait quatre niveaux de conformit : le niveau dentre (entry level), les niveaux intermdiaires (transitional et intermediate levels) et le niveau suprieur (full level). Les langages SQL des principaux diteurs sont tous conformes au premier niveau et ont beaucoup de caractristiques relevant des niveaux suprieurs. Les groupes de travail X3H2 de lANSI et WG3 de lISO se penchrent, partir de 1993, sur les extensions apporter la prcdente norme. Les optimistes prvoyaient SQL3 pour 1996 Rien ne se passa comme prvu. Il fallut attendre 1999 pour voir tablir le projet SQL:1999 appel communment SQL3 (volume de 1 600 pages lpoque). Ce retard fut probablement d aux difficults des nombreux protagonistes (Oracle, IBM, Microsoft, Digital, Computer Associates, etc.) remettre en cause leur mode de pense, et aux risques quils pressentaient de ne pouvoir assurer la compatibilit des bases de leurs clients. Les volutions de lancienne norme ne sont pas limites aux seules extensions objet. Bien dautres mcanismes ont t introduits dans ce projet (gographie, temps, rel, sries temporelles, multimdia, OLAP, donnes et routines externes). SQL:1999 est dsormais une norme (au sens International Standard de lISO) qui apparat dans le domaine Information technology Database languages SQL. Elle porte principalement la rfrence ISO/IEC 9075. Peu aprs, une nouvelle version de SQL (SQL:2003), apportant des modifications mineures, apparut. Ses apports concernent lauto-incrment des cls, de nouvelles fonctions dites analytiques, les colonnes calcules, lordre MERGE combinant UPDATE et INSERT et surtout un support complet de XML.

Page 4

Architecture client serveur Expos : Langage SQL

Depuis 2006, des modules ont t rviss et publis, mais il ny a pas encore proprement parler de norme. La norme internationale SQL est passe par un certain nombre de rvisions : Anne 1986 Nom ISO/CEI 9075:1986 Appellation Commentaires

SQL-86 ou dit par l'ANSI puis adopt par l'ISO en1987. SQL-87 SQL-89 ou Rvision mineure. SQL-1 SQL-92 ou Rvision majeure. SQL2

1989

ISO/CEI 9075:1989

1992

ISO/CEI 9075:1992

1999

Expressions rgulires, requtes rcursives, dclencheurs, types non-scalaires et quelques SQL-99 ou ISO/CEI 9075:1999 fonctions orientes objet (les deux derniers points SQL3 sont quelque peu controverss et pas encore largement implments). Introduction de fonctions pour la manipulation XML, window functions , ordres standardiss et ISO/CEI 9075:2003 SQL:2003 colonnes avec valeurs auto-produites (y compris colonnes d'identit). Ajout de quelques fonctions de fentrage (ntile, lead, lag, first value, last value, nth value), ISO/CEI 9075:2008 SQL:2008 limitation du nombre de ligne (OFFSET / FETCH), amlioration mineure sur les types distincts, curseurs et mcanismes d'auto incrments.

2003

2008

.

III. Structure du langage SQLPage 5

Architecture client serveur Expos : Langage SQL

SQL est un langage compos de deux parties bien distinctes et, dans ces deux parties, de diverses subdivisions. La premire partie de SQL est constitue de la partie dclarative du langage, cest--dire dordres SQL que le SGBDR doit excuter. En dautres termes, on spcifie ce que lon veut obtenir ou faire, et cest la machine qui dcide comment elle doit lexcuter. La seconde partie est constitue dun langage plus classique de type procdural dans lequel on retrouve les notions de fonctions, mthodes, procdures, etc.

III.1 SQL dclaratifLa partie dclarative de SQL est, elle-mme, subdivise en quatre parties : Le DDL (Data Definition Language) ou LDD (Langage de Dfinition de Donnes), cest-dire les ordres SQL permettant de crer (CREATE), modifier (ALTER) ou supprimer (DROP) les objets de la base. Les instructions de manipulation des objets de la base - description de la structure, l'organisation et les caractristiques de la base de donnes - commencent avec les mots cls CREATE, ALTER ou DROP qui correspondent aux oprations d'ajouter, modifier ou supprimer un objet. Ces mots cls sont immdiatement suivis du type de lobjet manipuler - TABLE, VIEW, INDEX, Le DML (Data Manipulation Language) ou LMD (Langage de Manipulation de Donnes), cest--dire les ordres SQL permettant dajouter (INSERT), de modifier (UPDATE), de supprimer (DELETE) ou dextraire des donnes (SELECT). Les instructions de manipulation du contenu de la base de donnes commencent par les mots cls SELECT, UPDATE, INSERT ou DELETE qui correspondent respectivement aux oprations de recherche de contenu, modification, ajout et suppression. Divers mots cls tels que FROM, JOIN et GROUP permettent d'indiquer les oprations d'algbre relationnelle effectuer en vue d'obtenir le contenu manipuler.

Page 6

Architecture client serveur Expos : Langage SQL

Le DCL (Data Control Language) ou LCD (Langage de Contrle de Donnes), cest-dire les ordres SQL permettant de dfinir les privilges affrents aux utilisateurs (GRANT, REVOKE). Les mots cls GRANT et REVOKE permettent d'autoriser des oprations certaines personnes, d'ajouter ou de supprimer des autorisations. Enfin, le TCL (Transaction Control Language) ou LCT (Langage de Contrle des Transactions) permet de grer des transactions englobant des ordres des trois premires subdivisions. Les mots cls COMMIT et ROLLB