Note de lecture : Designing Data-Intensive Applications, par Martin Kleppmann

Note : 10 ; Monumental! Book of the year 2021 !

Une somme de connaissances, cet imposant ouvrage, n’est pas moins que cela. Le titre laisse présager que l’on va parler big data. C’est plus subtil que cela, car il s’agit avant tout les principes et mécanismes fondamentaux des grosses architectures data, certes en faisant référence aux classiques du marché, pour comprendre les spectres d’utilisation des différentes solutions. On va donc y parler stockage, systèmes réparties, transactions, streaming, etc. Et ce n’est pas du léger.

Léger, l’ouvrage ne l’est clairement pas vu de l’extérieur (et comme nous le verrons, cela va se gâter à l’intérieur) : 550 pages divisées en 3 parties pour un total de 12 chapitres. Nous avons donc des chapitres très conséquents, il n’y a aucun doute. La première partie traite des fondamentaux. Cela couvre 150 pages sur 4 chapitres. C’est une introduction en douceur, le propos y est tout à fait abordable. Le premier chapitre, fort d’une vingtaine de pages, nous invite à comprendre ce qu’est un système fiable, scalable et maintenable. Il ne s’agit pas juste de généralités, car l’auteur y présente ainsi la structure des données dans les SGBDR, dans un système de streaming tel que Storm. On y apprend ce qu’est un percentile et beaucoup d’autres choses. Bref, un chapitre en douceur mais solide, épaulé par une trentaine de références bibliographiques.

En débutant le chapitre 2, j’ai été frappé par la gravure représentant la table des matières du chapitre. Le premier chapitre en avait une aussi, ainsi qu’en fait tous les chapitres du livre ! Modèles de données et langages de requêtes sont au menu de ce chapitre diablement passionnant. Non seulement on rentre en profondeur dans les structures des différents modèles de données et les paradigmes des langages de requêtes, qu’ils soient déclaratifs ou impératifs, mais l’auteur nous donne un éclairage historique remontant au Codasyl. Brillant.

Lire la suite
Publicité

Note de lecture : Expert Cube Development with Microsoft SQL Server 2008 Analysis Services, parChris Webb, Alberto Ferrari & Marco Russo

Note : 6 ; Peut-être pas expert, mais certainement éclairé.

Comme son nom l’indique, ce livre a pour but de faire de vous un « expert » du décisionnel avec SQL Server et plus précisément avec son sous-ensemble Analysis Services. Expert est certainement prétentieux. Disons, raisonnablement opérationnel. Pour arriver à nos fins, ce texte compte 330 pages sur 10 chapitres. Voyons ce qu’il en est.

Le premier chapitre s’abstrait de SQL Server pour présenter les fondamentaux de la conception de modèles OLAP. Il est assez surprenant de pragmatisme et d’efficacité. La plupart des choses que l’on a besoin de savoir sont couvertes dans ses 36 pages.

Le second chapitre ressemble déjà plus à du Packt publishing : on est guidé pas par pas vers la création d’un premier cube simple. Le 3ème chapitre y fait suite avec des éléments plus complexes comme les SCD.

Les aspects mesures et groupes de mesures complètent le panel de ce que l’on peut faire sur les dimensions au chapitre 4.

Les chapitres 5 à 7 se focalisent sur les aspects analyse. D’abord avec le forage de données au chapitre 5, puis avec l’ajout d’indicateurs calculés au chapitre 6 et enfin avec des opérations de conversion au chapitre 7.

Les 3 derniers chapitres ont une coloration « production ». Ca commence au chapitre 8 avec l’exploration des aspects performance. On y parle partition, agrégations et tuning des requêtes MDX. Le chapitre 9 explore les aspects sécurité de façon assez approfondie, plus qu’on en a le plus souvent besoin. Par contre le sujet de l’accès au cube par http mérite le détour. Le chapitre 10 porte le doux nom de « productionization ». On y parle beaucoup gestion des partitions. Enfin le chapitre 11 aborde le monitoring mais n’est pas inoubliable.

Contrairement au livre de Larson, celui-ci fait le choix de se focaliser uniquement sur la construction du cube et non pas sur tout le processus décisionnel qui inclurait alors SSIS. Même si l’on peut arguer que les approches sont différentes et les livres difficilement comparables, je préfère Larson à la fois plus complet et plus pédagogique.

Parmi les points intéressants : des conseils d’usage pour ne pas se retrouver le bac dans l’eau et des liens vers des articles de blog développant tel ou tel aspect…

Expert Cube Developpement with Microsoft SQL Server 2008 Analysis Services

Référence complète : Expert Cube Development with Microsoft SQL Server 2008 Analysis Services – Chris Webb, Alberto Ferrari & Marco Russo – Packt Publishing 2009 – ISBN : 978-1-847197-221

Expert Cube Development with Microsoft SQL Server 2008 Analysis Services

https://www.goodreads.com/book/add_to_books_widget_frame/1847197221?atmb_widget%5Bbutton%5D=atmb_widget_1.png&atmb_widget%5Bhide_friends%5D=on

Note de lecture : PostgreSQL, A comprehensive guide par Korry Douglas & Susan Douglas

Note : 7 ; PostgreSQL de haut en bas!

750 pages sur 21 chapitres, voici un livre que l’on ne peut accuser d’être léger ! Les deux premiers chapitres servent surtout à introduire le SQL à la mode PostgreSQL avec ses spécificités. Le tout est plutôt pédagogique et couvre 130 pages. Pour terminer cette première partie, les chapitres 3 et 4 nous emmènent plus loin sur la structure des bases de données, des clusters et des transactions, ainsi que sur les modèles physiques sous-jacent de PostgreSQL pour comprendre comment en optimiser les performances. Du bon boulot !

Avec la seconde partie, fini de rire! On attaque les API en C pour écrire des fonctions permettant d’étendre PostrgreSQL au chapitre 6. Le retour au SQL (PL/pgSQL pour être exact) est bizarre au chapitre 7, surtout que c’est pour retourner à l’API C au chapitre 8 ! Le propos n’est pas très ais à suivre, il se poursuit au chapitre 9, tandis que le chapitre 10 nous en livre la variante C++. Il ne s’agit ni plus ni moins que de la reprise de ce qui est déjà vu au chapitre 8. Et désolé pour ceux qui espéraient du grand C++ ! Le chapitre 11 nous montre une autre variante de l’interfaçage PostgreSQL en C, via le préprocesseur ecpg qui permet d’écrire directement du SQL dans le code source. Je vous le dit: c’est déroutant! Moins déroutant est le chapitre 12 qui traite de cet interfaçage via le désormais classique ODBC. D’ODBC à JDBC il n’y a qu’un pas, ou un chapitre en l’occurrence, car c’est le chapitre 13 qui traite de l’interfaçage Java. Et l’on a donc la joie de voir la même approche se dérouler pour la 6ème fois ! De Java, on passé à Perl au chapitre 14, toujours avec la même structure de chapitre et le mêle exemple (pour la 7ème fois, donc). Au chapitre 15, c’est au tour de PHP, puis de Tcl/Tk au chapitre 16 (je croyais celui-ci mort et enterré). Enfin Python ferme la marche au chapitre 17.

Après la phase “comique de répétition” des interfaçages, la 3ème partie traite de l’administration. Il est assez curieux que l’on doive attendre le chapitre 19 pour voir traité l’installation du serveur ! Ce chapitre traite par ailleurs des très classiques gestion des utilisateurs, créations de bases avec sauvegarde et restauration de celles-ci. On y traite par ailleurs plutôt efficacement de tout ce qui a trait au paramètres d’exécution du serveur. Enfin le chapitre 20 traite de la localisation (pas seulement la langue, mais aussi les unités de mesure, de monnaie, etc…) tandis que les aspect sécurité ferment la marche au chapitre 21.

Dans ce livre, les aspects interfaçage avec différents langage tienne la plus grande part du livre. Aussi celui-ci vous sera surtout utile si vous utilisez la base de données de manière programmatique, surtout en C. Mais j’ai aussi trouvé plutôt bien traité les aspects lies à l’usage interactif, à la configuration et à la maintenance de PostgreSQL.

postgresql-comprehensive-guide

Référence complète : PostgreSQL, A comprehensive guide to building, programming and administering PostgreSQL databases – Korry Douglas & Susan Douglas – Developer’s Library 2003 – ISBN: 978-0-7357-1257-7

PostgreSQL


https://www.goodreads.com/book/add_to_books_widget_frame/0735712573?atmb_widget%5Bbutton%5D=atmb_widget_1.png&atmb_widget%5Bhide_friends%5D=on

Google moves from MySQL to MariaDB

nosql:

Jack Clark for TheRegister quoting Google senior systems engineer, Jeremy Cole’s talk at VLDB:

“Were running primarily on [MySQL] 5.1 which is a little outdated, and so we’re moving to MariaDB 10.0 at the moment,”

I’m wondering how much of this decision is technical and how much is political. While Jack Clark’s points to the previous “disagreements” between Google and Oracle, when I say political decisions I mean more than this: access to the various bits of the code (e.g. tests, security issues), control over the future of the product, etc.

Original title and link: Google moves from MySQL to MariaDB (NoSQL database©myNoSQL)

J’avais déjà évoqué la chose précédemment, aujourd’hui le mouvement est clairement enclenché : c’est la totalité des instances MySQL qui passent sur MariaDB !

Les raisons qui conduisant à ce changement n’ont probablement pas la limpidité de la déclaration officielle. Le “vieillissant” MySQL est certainement l’un des facteurs, cela m’étonnerait que ce soit le principal. Pour ma part j’évoquerais en priorité :

  • Une dépendance à Oracle qui gêne le géant de Mountain View
  • Un manque pratiquement total de possibilité d’agir sur la base de code, les tests n’étant plus accessibles.

En contrepoint, le fait de travailler avec un petit éditeur qui a besoin d’une solide référence et qui est donc prêt à se plier au désidérata du géant de l’Internet a un intérêt évident…

Google moves from MySQL to MariaDB

Note de lecture : SQL Server Statistics, par Holger Schmeling

Note : 5 ; Bref, mais pointu et complet !

Pour bien fonctionner, l’exécution des requêtes s’appuie sur des plans d’exécution qui sont eux-mêmes optimisés par l’optimiseur du serveur : quel table doit-on requêter en premier, doit-on filtrer avant ou après, utiliser un index ou scanner la table, etc… Et l’optimiseur ne fait pas cela dans le vide, il utilise les statistiques des tables.

Ce court livret qui compte moins de 50 pages ne traite que des statistiques : quelles son-elles, comment sont-elles mises à jour et quand et comment sont-elles exploitées par le moteur de requête. Ce texte est tellement court, que l’auteur parle à plusieurs moment « d’article » dans le texte. Mais bon, il a un ISBN, donc… 

Comprendre, c’est bien, savoir agir, c’est mieux ! L’auteur nous initie aux possibilités d’action sur les statistiques : les procédures stockées, les tables de statistiques et histogrammes elles-mêmes ainsi que les activations / désactivations totales et partielles de celles-ci, sans compter les statistiques filtrées.

Le livre compte deux parties, la seconde (un peu plus courte) est une série de problèmes / solutions qui reprennent et parfois approfondissent les points vus dans la première.

Le livre est court et de bonne tenue. J’ai juste deux petits regrets :

  • J’aurais aimé une ou deux (pourquoi pas 3 ?) études de cas avec des plans d’exécution, la mise en reliefs des statistiques correspondantes, les actions et la mise en lumière des différences de résultats.
  • L’auteur évoque à quelques reprises des outils plus pointus et même des DMV non documentées. On aurait pu y plonger.

Connaître le fonctionnement des statistiques n’est pas un « game changer » la plupart du temps. L’auteur le dit d’ailleurs : par défaut ce que fait SQL Server marche très bien dans la grande majorité des cas. Mais le ratio temps de lecture / amélioration des compétences est vraiment excellent. Pourquoi s’en priver ?

sqlserver-statistics

Référence complète : SQL Server Statistics – Holger Schmeling – Simple Talk Publishing 2010 – ISBN : 

SQL Server Statistics

http://www.goodreads.com/book/add_to_books_widget_frame/18461962?atmb_widget%5Bbutton%5D=atmb_widget_1.png&atmb_widget%5Bhide_friends%5D=on

MariaDB, plus fort que MySQL

On ne peut pas dire qu’Oracle se soit attiré la réputation d’une société ayant bien compris le modèle Open-Source. Parmi d’autres, MySQL en est une bonne illustration.

Ayant acquis la base Open Source par le biais de l’acquisition de Sun Microsystems, il me parait que le géant de la base de données a cherché avant tout à en faire un produit, plutôt qu’un projet open source. 3 éléments me confortent dans cette opinion :

  • Oracle seul décide de la roadmap MySQL
  • MySQL est positionné par l’éditeur en alternative à Microsoft SQL Server. Une stratégie perdante, car les produits ont un positionnement très différent.
  • Oracle verrouille les développements (patch ou fork) en ne releasant plus les cas de tests depuis plus d’un an !

La fondation MariaDB

Dès le rachat de Sun, le créateur de MySQL Michael “Monty” Widenius a créé le projet MariaDB. Comme il l’explique son but à l’origine était de conserver la communauté historique des développeurs du noyau MySQL, noyau qui était en passe de disparaitre.

J’avoue que bien que ce fork ait maintenant plus de 3 ans, il a échappé à mon radar. Pas seulement au mien visiblement, car il semble que son existence fut jusqu’à une date récente assez discrète. Il aura fallu la création de la fondation MariaDB pour booster sa visibilité.

Aujourd’hui MariaDB offre une alternative à MySQL

  • Compatible au niveau binaire
  • Offrant de nouvelles fonctionnalités marquantes.
  • Plus active que la base historique sur le volet des bus fixes.

MySQL semble avoir un peu perdu de vue sa nature première : non pas une base de données, mais un conteneur de moteur de bases de données. Tandis que MySQL vogue avec ses vieillissants MyISAM et Innodb, MariaDB nous propose de nouveaux engines: Aria, XTraDB (une évolution d’InnoDB), FederatedX (un engins utilisant d’autres SGBD en back-end), OQGRAPH (un moteur optimisé pour gérer les hiérarchies et les graphes) et SphinxSE.

Google à la rescousse

La communauté open source n’est pas la seule à s’inquiéter de la mainmise d’Oracle sur MySQL. Des sociétés de taille respectables pour lesquelles MySQL est une brique importante ont eu la même démarche.

L’annonce la plus marquante est sans aucun doute celle de Google annonçant un support au projet. Concrètement il s’agit d’y consacrer un développeur. Par rapport aux moyens dont dispose le géant du Web et l’importance structurelle de MySQL dans ses infrastructures, cela parait anecdotique, mais le message est là. D’après Widemius, d’autres société sont prêtes à aller dans le même sens, mais on n’a pas de noms…

Une alternative encore verte

Pour assoir une emprise sur le marché, il faut un packaging de bonne qualité. La fondation MariaDB propose des packaging prêts à l’emploi pour les plateformes Linux (Red Hat, Fedora, Debian, Ubuntu…) et Windows.

Mais point de distribution Mac ! Il faut passer par Homebrew avec compilation des sources et quelques petites manipulations … Ca ne va pas tout seul, autant le dire. Bref, ça va en rebuter quelques un. La fondation MariaDB explique que cette absence est due à leurs moyens limités.

Autre point faible : la documentation. Bon, elle existe, toutefois. Mais elle n’est pas vraiment au niveau. Pas de vrai autorail et les informations d’installations et de configurations sont assez éparses. Dans l’ensemble, les informations sont rassemblées sur le site ask monty. Bref, il y a encore à faire.

Côté bouquins, j’ai trouvé 2 titres sur MariaDB. Rien à voir avec la pléthore de livres sur MySQL.

Y aller ou pas ?

Aujourd’hui, je ne conseillerais à personne d’aller volontairement vers du MySQL, à moins que ce choix soit subordonné à un autre. Nombreux sont en effet les projets pour lesquels MySQL est sinon le choix par défaut, du moins un choix “pré-packagé”.

D’un autre côté, des distributions Linux commencent à venir avec MariaDB comme base par défaut en lieu et place de MySQL. De plus, il y a la “compatibilité binaire” revendiquée par MariaDB. Mais celle-ci doit encore se vérifier de contexte en contexte.

Côté Java, à priori MariaDB est toujours compatible avec le connecteur JDBC de MySQL. Mais il existe aussi un connecteur JDBC natif Maria DB.

La situation pour les autres langages est moins claire. Il existe bien un connecteur C dans ce qui est produit par la fondation, mais pour Python, Perl, etc… Il faut à priori utiliser les utilitaires gravitant autour de MySQL et faire des essais. Si l’on va faire un tour du côté de Stackoverflow, on voit que les choses ne sont pas si simples.

La tendance actuelle est un passage vers PostgreSQL (). Cette base est mieux qu’une alternative et est de plus en plus privilégiée à MySQL, non comme solution de replis mais en tant que solution techniquement meilleure.

Il me semble cependant qu’au vu de la roadmap déjà réalisée par MariaDB et de celle à venir, que cette alternative mérite considération, malgré les faiblesses dont il est fait mention.

Note de lecture : The Ingres Papers, Michael Stonebraker edt.

Note 4 :Les principes fondamentaux d’architecture d’une base de données… d’il y a 30 ans !

Il fut un temps où la course entre les bases de données relationnelles se jouait entre Oracle et Ingres ! Ce temps est passé, Oracle a gagné. Ecrit par le père de Ingres (INteractive Graphics and REtrieval System), ce livre rassemble des articles détaillant l’architecture les problématiques et choix techniques d’Ingres. Comme on peut s’y attendre (Michael Stonebraker est professeur à Berkeley), les articles ont une coloration très académique. L’ensemble des 22 articles couvrant 425 pages sont regroupés en 6 sections :

  • Section 1 : Design of relational systems : Cette section relate les choix fondamentaux d’Ingres, la rétrospective sur les choix et erreurs faits durant la conception d’Ingres.
  • Section 2 : Supporting studies on relational systems : Cette section aborde des problématiques spécifiques sur les bases de données telles que le verrouillage, les performances, le système de gestion des requêtes et l’interface avec l’operating system. De nombreux point de recherches d’optimum sont abordés (granularité de verrouillage, taille de cache), d’optimisation de compilation, etc..
  • Section 3 : Distributed database systems : Cette section rassemble des articles sur des aspects avancées d’Ingres : répartition physique des données, gestion des requêtes distribuées redondance et commit sur plusieurs bases.
  • Section 4 : User interface for database systems : Cette section relate le développement d’un language de requête interactif (EQUEL) sur Ingres et d’un portail, sorte de buffer de requêtes prêtes à être utilisées. Les principes de construction de Schémas de base et de constructions d’applications à l’aide de formulaires (FADS) terminent cette section.
  • Section 5 : Extended semantics for the relational model : Cette section explore de nouvelles sémantiques au-dessus de la sémantique relationnelle, telles que la conception assistée par ordinateur ou la gestion de relations hypothétiques qui sont des sortes de « vues » sur les relations. Un autre sujet d’intérêt est la gestion des documents, permettant non seulement la gestion d’information de grande taille, mais également leur manipulation (recherche, division ou concaténation).
  • Section 6 : Database design : Cette section aborde quelques questions avancées tels que la conversion d’un modèle logique en modèle physique ou la recherche de chemins d’accès sur la base.

Les sujets abordés dans ce livre accusent clairement le poids des ans ! Il n’en reste pas moins que lorsque l’on a un peu la fibre du chercheur, ces sujets font envie et donnent envie d’aller regarder comment ces problèmes sont abordés dans les bases de données modernes ! Le niveau du propos reste souvent obscur au béotien, hélas, dû au fait qu’il s’agit d’articles de recherche. Aussi décroche-t-on souvent du texte et c’est dommage ! C’est aussi ce qui justifie ma note un peu sévère. J’aurais préféré un texte reformulé afin de le rendre plus abordable, ceci sans dégrader sa teneur technique. Les texte universitaires se font trop souvent un point d’honneur à être hermétiques !

Ingres-papers

Référence complète : The Ingres Papers, Anatomy of a relational database system – Michael Stonebraker edt. – Addison Wesley 1986 – ISBN : 0-201-07185-1

The Ingres Papers: Anatomy of a Relational Database System

http://www.goodreads.com/book/add_to_books_widget_frame/0201071851?atmb_widget%5Bbutton%5D=atmb_widget_1.png&atmb_widget%5Bhide_friends%5D=on

Note de lecture : The Definitive Guide to SQLite, par Michael Owens

Note : 4 ; Une ouvrage assez insipide sur le sujet.

SQLite est de très loin la base de données la plus répandue au monde. Open-Source et dédiée à être embarquée, elle se retrouve entre autre chose au sein de tous les smartphones ! Cet ouvrage qui lui est destiné à pour but de couvrir le sujet. Voyons cela.

Le texte est long de 360 pages auxquelles il faut ajouter 60 pages d’annexes. Les chapitres sont plutôt des gros morceaux car l’ouvrage n’en compte que 9 !

On commence en douceur par un premier chapitre de seulement 15 pages adressant la liste des fonctionnalités et de l’architecture de SQLite.

Le second chapitre est le réel commencement de l’ouvrage. Ses 30 pages traitent des distributions de l’outil et même de la reconstruction des binaires, ainsi que des commandes de bases de la ligne de commande. Ce n’est pas un chapitre inoubliable, d’autant qu’il est émaillé de copies d’écrans aussi nombreuses que gigantissimes.

A propos de meubler, le chapitre 3 n’est pas mal non plus : c’est un chapitre introductif au modèle relationnel, déconnecté du sujet SQLite sensu-stricto. Je dirais qu’il n’est ni bon ni mauvais, mais simplement inutile pour ceux qui connaissent déjà le modèle relationnel.

On reste toujours sur de la logique relationnelle au chapitre 4, mais au moins avec de la mise en pratique sur SQLite : création de bases, de contraintes, types de données, etc… C’est un chouia laborieux, surtout du fait que ce chapitre est exagérément long (il compte 100 pages).

Faire du SQL c’est bien, mais SQLite est surtout fait pour être attaqué par des APIs. C’est l’objet des chapitres suivant : le 6 qui ne compte que 30 pages et présente le fonctionnement général des API en C et en Python. Les chapitres 7 et 8 qui comptent chacun 50 pages se focalisent spécifiquement sur les APIs C : les « core API » sont couvertes au chapitre 7 (dont j’oserais dire que c’est le plus important du livre), tandis que le 8 couvre des APIs étendues dont on n’a pas forcément besoin tous les jours… Dans ces deux chapitres, les extraits de code font bien plus que les explications textuelles.

Je n’ai personnellement pas tellement besoin des « langage extension » couvertes au chapitre 8. Les 40 pages de cette partie sont surtout dédiées à des usages en Perl, Python et PHP.

On termine l’ouvrage par une vingtaine de pages consacrées au SQLite internal, sujet qui pourrait être intéressant s’il était bien traité, ce qui n’est pas le cas. On pourra toujours se consoler avec les 60 pages d’annexes qui paraissent bien faite mais dont je ne saurais dire aujourd’hui si elles sont utilisables efficacement.

definitive-guide-sqlite

Voilà un livre qui, sans être mauvais ne va pas me laisser un souvenir inoubliable.

Référence complète : The Definitive Guide to SQLite – Michael Owens – Apress 2006 – ISBN : 978 1 59059 673 9

The Definitive Guide to SQLite

http://www.goodreads.com/book/add_to_books_widget_frame/1590596730?atmb_widget%5Bbutton%5D=atmb_widget_1.png

Note de lecture : Pro SQL Server 2008 XML, par Michael Coles – Apress 2008 – ISBN : 1-59059-983-7 ; EAN13 : 978-159059-983-9

Note : 5 ; On reste quand même sur sa faim !

Le support XML de SQL Server est bien plus riche qu’on pourrait le penser de prime abord. Les 350 pages de ce livre nous proposent d’en faire le tour ! L’auteur a essayé de « tailler large » et adresse non seulement les fonctionnalités internes de SQL Server, mais aussi l’écosystème proche : la CLR, SOAP et http, ainsi que la gestion de données géographiques et LINQ, tous deux nouveaux sur SQL Server 2008.

Si le chapitre 1 traite de rappels sur XML que l’on peut passer, le chapitre 2 a la bonne idée de présenter une « vieille » fonctionnalité : la clause FOR XML, et de décliner les possibilités de celles-ci telles qu’on y penserait pas !

Les choses (très) sérieuses commencent au chapitre 3, avec la présentation du type XML. Forcément, on arrive rapidement à la présentation de XML Schéma. A la fois trop longue et pas assez, celle-ci ne saurait remplacer un tutorial (ou un livre) dédié. Le chapitre suivant est dédié à la gestion des collections XML. Probablement un des gros points faibles du livre, on passe trop rapidement sur la gestion interne SQL Server des schémas XML, pour ne pas évoquer la gestion des validations des types XML…

XQUery est correctement abordée dans les chapitres 5 et 6, et la façon d’écrire des requêtes TSQL permettant de lier des types SQL à des variables XQuery est largement abordé et illustré. Bravo. Le chapitre qui suit traite de l’optimisation du traitement de ce XML via l’indexation, un chapitre pas très facile à aborder avec l’exposé des plans d’exécution, mais toutefois intéressant.

Les 5 chapitres restant ont peu retenu mon attention, car un peu au-delà de mon intérêt pour SQL Server. Le chapitre 8 traite du processing XSLT à l’aide de la CLR, tandis que le chapitre 9 évoque l’accès à SQL Server via SOAP (avec une forte prévention quand à la disparition de cette fonctionnalité dans une version future). Le chapitre 10 est encore plus éloigné de mes centres d’intérêt, car il traite de .NET, et les exemples en Visual Basic…

On arrive au chapitre 11 et au support GML. Une fonctionnalité intéressante pour peu que l’on ait l’occasion de l’utiliser ce qui n’est hélas pas mon cas. Mais il s’agit de toute façon que d’une courte introduction.

L’ouvrage se conclut par deux chapitres pas vraiment indispensables. Le chapitre 12 aborde SQLXML, une fonctionnalité moribonde et vouée à disparaitre. Le chapitre 13 évoque les outils utilisables pour éditer et utiliser les fonctionnalités. Léger et pas vraiment indispensable.

Je ne rangerais pas ce livre dans les déceptions : j’y ai trouvé ce que j’y cherchais, et la matière y est très correctement traitée à un ou deux bémols près. Il y a beaucoup de matière à élaguer aussi, l’auteur ayant rempli la musette pour faire un ouvrage consistant. Si j’enlève la matière périphérique et y ajoute un peu de volume pour mieux traiter les points faibles, je serais arrivé à un livre de 250 pages au lieu des 350 actuels. Cela reste un bon ratio et une acquisition valable.

pro-sqlserver2008-xml-apress

Référence complète : Pro SQL Server 2008 XML – Michael Coles – Apress 2008 – ISBN : 1-59059-983-7 ; EAN13 : 978-159059-983-9

Pro SQL Server 2008 XML


http://www.goodreads.com/book/add_to_books_widget_frame/1590599837?atmb_widget%5Bbutton%5D=atmb_widget_1.png&atmb_widget%5Bhide_friends%5D=on

Note de lecture : Pro SQL Server 2005 Service Broker, par Klaus Aschenbrenner

Note : 7 ; Une approche complète et didactique du sujet: bravo!

Je n’attends généralement aucun miracle de ce type de livre qui ressemble trop à un texte commandé par l’éditeur. Dans le cas présent, je me suis trompé. Déjà, et c’est important, l’auteur maîtrise parfaitement son sujet, il fait ensuite preuve d’indiscutable qualités pédagogiques, ce qui est bien plus inattendu ! Le livre est volumineux, car il compte 435 pages pour un sujet somme toutes pointu. Mais le livre se veut exhaustif sur le sujet. C’est aussi pourquoi le livre est divisé en deux parties, la première, le « programming model » étant l’introduction, la seconde « Advanced service broker programming » intéressera l’expert ou le DBA. Nous avons donc deux livres en un, en quelques sortes. C’est une bonne chose, car les livres APress sont souvent assez chers.

La première partie est composée de 7 chapitres totalisant 220 pages. Les deux premiers nous offrent un tour complet technique et fonctionnel de Service Broker. C’est un vrai plaisir, et l’on a une idée très clair du fonctionnement et des possibilités de l’outil à cet issu. Le 3ème chapitre complète le tableau en présentant les différentes briques de programmation permettant de mettre en place un service de messagerie : messages, queues, contrats et services. En réalité, on est déjà capable de mettre en œuvre un « hello world » assez élaboré arrivé à ce stade. Le chapitre 4 dédié à l’activation permet d’avoir une vision claire sur les possibilités de déploiement et d’administration des services (cela sera complété en seconde partie). Les 3 derniers chapitres sont consacrés à des sujets déjà avancés : l’écriture de services en .NET avec C#, la gestion des transactions et des services distribués.

Je ne suis pas bien sûr d’être la bonne audience pour la seconde partie, le niveau est un peu élevé pour moi. Il traite de sujets aussi avancés et complexes que les autorisations et l’encryptage, l’architecture SODA (Service Oriented database Architecture, pour le coup ça m’intéresse à nouveau), le développement d’applications en grandeur réelle, la scalabilité et les performances.

Je n’hésite pas à le dire, voici un très bon livre. Le propos est clair et précis, les exemples assez nombreux et pas trop touffus, ils illustrent bien le propos. De plus, l’auteur n’a pas hésité à ajouter de nombreux diagrammes pour expliquer l’architecture ou la cinématique, ce qui manque notoirement souvent à de tels ouvrages. Par contre, et c’est un bon symptôme, il a souvent renoncé aux sacro-saintes copies d’écran, sauf quand elles apportaient réellement quelque chose !

Si Service Broker vous intéresse, c’est LE livre. Une nouvelle édition adressant SQL Server 2012 est bien évidemment parue depuis. Malgré le considérable enbompoint qu’elle a pris au passage, je ne doute guère que la qualité restera au rendez-vous ! Pour Klaus Aschenbrenner, « pro, ça veut dire pro ».

pro-sqlserver2005-service-broker

Référence complète : Pro SQL Server 2005 Service Broker, Learn how to program distributed message applications with SQL Server 2005 Service Broker – Klaus Aschenbrenner – Apress 2007 – ISBN : 1-59059-842-3 ; EAN : 978 1 59059 842 9

Pro SQL Server 2005 Service Broker


http://www.goodreads.com/book/add_to_books_widget_frame/1590598423?atmb_widget%5Bbutton%5D=atmb_widget_1.png