Hello!

Inspiré(e) de prendre part à la discussion ? Ou de poser une question ou demander de l’aide ?

Alors bienvenues dans les grands sujets des forums de La Bulle : m’inscrire.

Cette partie du forum n’est pas compatible avec les bloqueurs publicitaires

Félicitations à vous, de préférer les accès payants plutôt que la gratuité par la publicité, c’est honnorable et cohérent de votre part. Malheureusement, l’accès payant par micropaiement (qui serait d’environ 1 cent pour 20 pages consultées) n’est pour l’instant pas encore mis en place, et l’accès gratuit sans publicité, est réservé aux membres actif(ve)s du forum. En attendant, si vous souhaitez poursuivre votre visite chez nous, vous pouvez ajouter le site à votre liste blanche, ou encore mieux, désactiver le bloqueur partout. Pour ajouter le site à votre liste blanche, pour Firefox (similaire pour les autres navigateurs), rendez‑vous en bas à gauche de la fenêtre de votre navigateur, et cliquez sur le menu comme dans l’exemple de l’image ci‑dessous, puis rechargez la page, en appuyant sur F5.

Le standard SQL
Auteur Message
Administrateur
Avatar de l’utilisateur
  • Genre : Télétubbie
  • Messages : 22173
Jeu 28 Jan 2016 21:23
Message Le standard SQL
Je connaissais une source pour un brouillon de la norme SQL1992, mais sans savoir si cette norme est pertinente. J’ai posé la question quelques part, et voici la réponse :

Simon a écrit : 
Given what you wrote you should definitely read SQL1992. It is the core standard for SQL and you will find some ways in which SQLite is not SQL1992. However most SQL implementations implement most things in SQL1992.

There are later standards for SQL and SQLite and other SQL implementations include some of the features in them. But at this point different implementations start to diverge from one-another far more.

Simon.


SQL92 est donc la version SQL de référence, et j’indique alors la source que je connais : sql1992.txt (andrew.cmu.edu)

Ce n’est qu’un brouillon, mais il n’est même plus possible d’acheter la version officielle, qui n’est plus disponnible à l’ISO : ISO/IEC 9075:1992 (iso.org)

ISO a écrit : 
Status: Withdrawn


Il faudra alors se contenter de l’ébauche.

Un petit plus, avec un document sur la normalisation des tables : A Simple Guide to Five Normal Forms in Relational Database Theory (bkent.net), William Kent, Septembre 1982.

Ne pas s’arrêter à la date, c’est un formalisme, c’est toujours valable.

Ce n’est pas un standard, c’est un formalisme, d’ailleurs pas nécessairement lié à SQL, car lui pré‑existant. Cette normalisation est de plus en usage, pas seulement avec les bases de données, elle s’applique aussi à la modélisation des relations entre les données, dans d’autres domaines, comme les structures et les conteneurs dans les logiciels.

Image
Hibou57

« La perversion de la cité commence par la fraude des mots » [Platon]
Profil Site Internet
Administrateur
Avatar de l’utilisateur
  • Genre : Télétubbie
  • Messages : 22173
Ven 29 Jan 2016 15:53
Message Re: Le standard SQL
Hibou a écrit : 
[…]

Ce n’est qu’un brouillon, mais il n’est même plus possible d’acheter la version officielle, qui n’est plus disponnible à l’ISO : […]

Alors surprise, cependant que le document du standard SQL92 n’est plus disponible, au moins certaines parties du standard SQL 2011, sont disponibles sans charges (ça doit être récent). Je ne parle pas de brouillons, mais de documents téléchargeables sur le site de l’ISO.

Je les mentionne en rappelant quand‑même le bémol plus haut : SQL1992 reste quand‑même la référence, avec laquelle il y a déjà quelques divergences, qui sont encore plus importantes avec les versions ultérieures du standard, qui n’est le plus souvent que partiellement implémenté, ou alors d’une manière non‑standard. Sans compter que la version de 1992, semble beaucoup plus accessible à la compréhension !

Retour à SQL2011 … La licence à laquelle il faut adhérer pour télécharger les documents, interdit la redistribution. Ces documents sont mis à disposition pour un usage strictement privé. Il reste possible de les imprimer, mais toujours pour seulement pour un usage privé. Ne ré‑hébergé pas ces documents, c’est interdit, il ne faut les faire connaitre qu’à travers ces liens d’origine.


Image
Hibou57

« La perversion de la cité commence par la fraude des mots » [Platon]
Profil Site Internet
Administrateur
Avatar de l’utilisateur
  • Genre : Télétubbie
  • Messages : 22173
Ven 29 Jan 2016 16:04
Message Re: Le standard SQL
Et un ancien livre publié chez O’Reilly, sur SQL99, qui contrairement à ce que son titre indique, ne couvre pas tout SQL, mais sa partie principale : SQL-99 Complete, Really (woqutech.com). En version HTML, ce n’est pas du PDF.

— Édit 2017‑11‑20 —

Le document initialement sur mariadb.com n’y est plus disponible mais se trouve maintenant sur woqutech.com.

Image
Hibou57

« La perversion de la cité commence par la fraude des mots » [Platon]
Profil Site Internet
Administrateur
Avatar de l’utilisateur
  • Genre : Télétubbie
  • Messages : 22173
Ven 29 Jan 2016 17:24
Message Re: Le standard SQL
Utile quand on ne sait plus où en est avec les contraintes de nommage (« puis‑je nommer telle table ou telle colonne ainsi ou est‑ce un mot réservé ? »), une liste des mots réservés par versions de SQL, en pensant bien que divers systèmes de base de données, ont leurs propres mots réservés en plus : SQL Reserved Words Overview (developer.mimer.se).

Image
Hibou57

« La perversion de la cité commence par la fraude des mots » [Platon]
Profil Site Internet
Administrateur
Avatar de l’utilisateur
  • Genre : Télétubbie
  • Messages : 22173
Ven 29 Jan 2016 21:04
Message Re: Le standard SQL
Comme mémo, l’incontournable représentation des jointures SQL avec une représentation ensembliste, celle des diagrammes de Venn : Visual Representation of SQL Joins (codeproject.com), C.L. Moffatt, 2009.

Image
Hibou57

« La perversion de la cité commence par la fraude des mots » [Platon]
Profil Site Internet
Administrateur
Avatar de l’utilisateur
  • Genre : Télétubbie
  • Messages : 22173
Lun 20 Nov 2017 14:34
Message Re: Le standard SQL
Un court historique des versions de SQL : SQL history (cs.colostate.edu). Résumé encore plus brièvement :

  • En 1970, est formalisé un modèle relationnel pour les banques de données.
  • À la fin des années 1970, un premier langage est créé en vu de faire de ce modèle, une réalité pratique [1].
  • En 1986, ce premier langage devient un standard de l’ANSI.
  • En 1987, ce premier langage devient un standard de l’ISO.
  • En 1989, une mise à jour est standardisée . Sont introduits, le DDL, le langage de définition de données, ainsi que les contraintes d’intégrité.
  • En 1992, une révision importante étend le langage de définition de données et rend le langage plus orthogonal. C’est le SQL‑92 ou SQL 2, le SQL le plus standard encore maintenant.
  • En 1999, une révision étend les types de données prédéfinies [2] et introduit les requêtes récursives. C’est le SQL:1999 ou SQL 3. À partir de cette version, le standard n’est plus que partiellement suivi.
  • En 2003, une révision introduit entres autres choses, le type de donnée XML.
  • En 2006, une révision améliore le support de XML.
  • En 2008, une révision introduit les troncatures de table.
  • En 2011, une révision introduit la notion de temps, pas comme type de donnée, mais comme date limite de validité de données.


[1] Ce premier langage ne correspondait qu’au DML, le langage de manipulation de données.

[2] Mais SQL reste non‑strictement typé, il ne s’agit que d’indications de types.

Image
Hibou57

« La perversion de la cité commence par la fraude des mots » [Platon]
Profil Site Internet
Administrateur
Avatar de l’utilisateur
  • Genre : Télétubbie
  • Messages : 22173
Mer 20 Déc 2017 19:17
Message Re: Le standard SQL
Les “Common Table Expressions”, CTE, n’existaient pas en SQL‑92, elles ont été introduites avec SQL:1999. C’est en tous les cas ce que semble sous‑entendre cette page de documentation de SQLite, tout à la fin : SQL As Understood By SQLite: WITH clause (sqlite.org).

sqlite.org a écrit : 
The SQL:1999 spec requires that the RECURSIVE keyword follow WITH in any WITH clause that includes a recursive common table expression. However, for compatibility with SqlServer and Oracle, SQLite does not enforce this rule.

Image
Hibou57

« La perversion de la cité commence par la fraude des mots » [Platon]
Profil Site Internet
Administrateur
Avatar de l’utilisateur
  • Genre : Télétubbie
  • Messages : 22173
Jeu 21 Déc 2017 17:43
Message Re: Le standard SQL
Pas un document faisant autorité, mais un tableau précieux aide‑mémoire, sur la granularité des contraintes d’intégrité dans les bases de données : Deferrable SQL Constraints in Depth (begriffs.com). Voir le premier tableau peu après la table des matières.

Image
Hibou57

« La perversion de la cité commence par la fraude des mots » [Platon]
Profil Site Internet
Administrateur
Avatar de l’utilisateur
  • Genre : Télétubbie
  • Messages : 22173
Sam 23 Déc 2017 16:11
Message Re: Le standard SQL
Hibou a écrit : 
Les “Common Table Expressions”, CTE, n’existaient pas en SQL‑92, elles ont été introduites avec SQL:1999. […]

Le brouillon final du standard SQL:1999, alias SQL3 (à ne pas confondre avec le moteur de base de données SQlite3), est disponible ici : ISO/IEC 9075-2:1999 (pdx.edu) [PDF]. Le document dit « Partie 2 », mais pourtant tout semble y être. Comme dit précédemment, la version officielle n’est plus disponible, même pas à la vente, alors ne reste que les brouillons finaux.

Un document plus court, résumant des différences entre SQL92 et SQL:1999 : SQL:1999, formerly known as SQL3 (uchile.cl) [PDF].

Image
Hibou57

« La perversion de la cité commence par la fraude des mots » [Platon]
Profil Site Internet
Administrateur
Avatar de l’utilisateur
  • Genre : Télétubbie
  • Messages : 22173
Sam 23 Déc 2017 16:32
Message Re: Le standard SQL
Hibou a écrit : 
[…] Le document dit « Partie 2 », mais pourtant tout semble y être. […]

Oui, l’essentiel y est. Le standard SQL:1999, est en trois parties :

  • La partie 1, “framework”, décrit le cadre d’application.
  • La partie 2, “foundation”, décrit l’essentiel.
  • La partie 3, “call level interface”, est pour une liaison standard entre les applications et les moteurs de base de données.

La partie 1 est un préalable à la partie 2, mais la partie 2 peut être consultée sans avoir accès à la partie 1. La partie 3 est en pratique de peu d’intérêt, comme la plupart des librairies logicielles ont leur propre API.

La partie 3 intéresserait les développeurs de librairies logicielles, mais il semble exister au moins un standard similaire défini par l’Open Group ; alors soit le standard ISO n’est pas universel, soit il existe d’autre source que l’ISO pour cette troisième partie qui reste accessoire en pratique.

Donc avec le PDF SQL:1999 Part 2 et le fichier texte SQL92 pour lequel un lien est donné dans le premier message, il y a largement l’essentiel.

Image
Hibou57

« La perversion de la cité commence par la fraude des mots » [Platon]
Profil Site Internet
cron