Je suis Charlie

Autres trucs

Accueil

Seulement les RFC

Seulement les fiches de lecture

Mon livre « Cyberstructure »

Ève

Fiche de lecture : A guide to the SQL standard

Auteur(s) du livre : C.J. Date, Hugh Darwen
Éditeur : Addison-Wesley

Première rédaction de cet article le 24 octobre 2002


Alors qu'il existe plein de livres sur tel ou tel SGBD et ses fonctions rigolotes (une dizaine d'O'Reilly différents pour Oracle, quatre livres sur PostgreSQL, qui n'en avait aucun un an auparavant), il existe peu de livres se concentrant sur le langage SQL et ses caractéristiques indépendantes du SGBD.

Bien sûr, on peut toujours lire le standard lui-même. D'abord, il faut le trouver (ce n'est pas un RFC, il n'est pas en ligne, il semble qu'on ne puisse même pas obtenir une forme machine, même en payant). Ensuite, il faut le lire. Des centaines de pages écrites serrées, sans souci pédagogique, avec un vocabulaire complètement non standard (comme "authID" au lieu de "user").

Bref, un guide est le bienvenu. "A guide to the SQL standard" ne vise pas les débutants complets, ni ceux qui veulent une solution pratique tout de suite. C'est plutôt un livre pour ceux qui veulent approfondir les choses, un livre pour les language lawyers qui adorent discuter pendant des heures un détail de la norme, mais qui manquent de tripes pour lire la norme elle-même.

On y trouvera tous les concepts du SQL standard (et c'est toujours un sujet d'émerveillement de voir que les choses les plus utiles de SQL comme les stored procedures sont absolument non standards), chacun détaillé en profondeur avec beaucoup d'exemples.

La discussion sur NULL, qui a introduit la logique tri-valuée dans SQL (vrai, faux, bof), est très représentative : c'est fou ce qu'une décision aussi simple peut entrainer comme conséquences. Un quizz pour les pros de SQL : s'il y a des NULL dans les tuples récupérés, est-ce que COUNT(*) et AVG(*) ignorent les NULL ou pas ? (La discussion figure dans le livre.)

Le livre n'est pas tout récent, et j'ignore ce qui s'est fait en matière de normalisation SQL depuis quelques années, donc il y a peut-être des changements. Les exemples de SQL embarqué sont écrit en PL/1 :-)

Version PDF de cette page (mais vous pouvez aussi imprimer depuis votre navigateur, il y a une feuille de style prévue pour cela)

Source XML de cette page (cette page est distribuée sous les termes de la licence GFDL)