Souvent, je me suis aperçu que beaucoup de personnes se posaient des questions simples sur Microsoft SQL Server, comme par exemple : “Depuis quand existe SQL Server ?”, “Quelles versions y a-t-il ?”, “C’est quoi les services d’SQL Server” ?
C’est pour toutes ces questions que l’on se pose de temps en temps que je vous propose ce petit article sur le sujet.

image_server

Image extraite du Coach SQL Server du site de Microsoft

 

24 ans d’histoire

Voici un petit historique de la naissance de MS SQL Serveur jusqu’à aujourd’hui.

En 1987, Microsoft et Sybase annoncent leur partenariat technique et marketing. De cette union est né en 1989, SQL Server 1.0 en 16 bits sur OS/2. Puis, 2 ans plus tard, la version 1.1 sort.

Avec l’arrivée des Système d’exploitation Windows NT (NT 3.1 en 1993), en 1993 sort la version SQL Server 4.21. Depuis cette version, Microsoft attribut à chaque projet un nom de code. Cette version avait pour nom de code : SQLNT.

Puis en 1995, sous le nom de code SQL95, sort SQL server 6.0 et enchaine l’année suivante avec la version 6.5 dont le nom code est Hydra.
Le projet Sphink, abouti en 1998 à SQL Serveur 7.0 et sous le nom de code Plato, sort en 1999 SQL serveur 7.0 OLAP Tools.

En 2000, la version 8.0 d’SQL Serveur sort sous le nom de SQL Server 2000 et ayant eu le nom de code Shiloh et est la première version à pouvoir être lancé sur un environnement 64 bits.

SQL server 2005 (nom de code Yukon) est le successeur de SQL Server 2000 et à pour version 9.0. Elle sort en même temps que Visual Studio 2005 et inclus nativement la manipulation de données en XML. Il permet également d’exposer des données à travers des web services en utilisant des paquets TDS encapsulé dans des requêtes SAOP. L’outil SQL Server Management Studio (SSMS) est également inclus dans les versions payantes et permet d’administrer les différents moteurs SQL Server. Nous reviendrons plus en détail dans un autre article sur cet outil.

En 2008, Microsoft sort la version 10.0 sous le nom SQL Server 2008 (nom de code Katmai). Cette version vise à rendre la gestion des données d’auto-tuning, auto-organisation et auto-maintenance avec le développement de SQL Server Always On technologies, afin d’être le plus près possible du zéro temps d’arrêt. D’autres évolutions sont également présentes comme le FILESTREAM et les types de données géographiques qui seront détaillées dans un autre article.

Les 2 derniers nés sont SQL Azure (version 10.25 – nom de code Matrix) et SQL server 2008 R2 (version 10.5 – nom de code Kilimanjaro) arrivé l’année dernière. SQL Azure est la base de données utilisée pour l’offre de Cloud Computing : Windows Azure (externalisation des ressources informatiques d’une entreprise vers des datacenters distants). On utilise la base de données comme service. SQL server 2008 R2 propose un ensemble d’améliorations connu sous le nom d’AMM (Application and Multi-server Management) visant à réduire le coût et la complexité de la gestion des serveurs de bases de données et applications. SQL 2008 R2 a également un ensemble de nouveaux outils comme PowerPivot pour Excel et SharePoint, Master Data Services, StreamInsight, ReportBuilder 3.0 ou encore Reporting Services Add-in pour SharePoint.

Le prochain bébé à sortir est le projet Denali avec la version 11 d’SQL server qui n’a pas encore de nom officiel mais que l’on peut déjà tester car il sortira dans quelques mois.

Grâce à tous ces petits, papa Microsoft a su se faire une place dans le monde des bases de données et des services associés.
Dans ce chapitre, je n’aborde pas l’ensemble des services pack associés à chaque version et je n’évoque que des versions majeures de SQL serveur soit 12 versions en 22 ans. Vous trouverez ci-dessous un petit tableau récapitulatif des années, noms, versions et Service Pack sur SQL Server.

Tableau_des_versions2

Après ce point historique, nous ne savons toujours pas ce qu’est Microsoft SQL Server. Le chapitre suivant va présenter sommairement SQL server.

Microsoft SQL Server c’est quoi ?

SQL server est un système de gestion de base de données relationnelles et utilise pour ces requêtes le langage Transact-SQL (aussi connu sous le nom T-SQL). Ce langage est compatible avec le PL/SQL d’Oracle et prend en charge les procédures stockées et les triggers. SQL Server permet de gérer des bases de données transactionnelles (OLTP – OnLine TransactionProcessing) et décisionnelles (OLAP- OnLine Analytical Processing). Les bases de données sont contenues dans des fichiers sur le serveur et portent par défaut les extensions suivantes :

  • MDF (Main Database File) pour le premier fichier de données
  • NDF (Next Database File) pour les autres fichiers de données
  • LDF (Log Database File) pour les fichiers du journal de transaction

SQL Server s’appuie par défaut sur le système d’authentification de Windows et utilise les services sous Windows pour leur exécution (exemple ci-dessous).

services_SQL2

 

Microsoft commercialise ce système de plusieurs manières ayant chacun son adaptation aux différents types d’entreprise sous forme d’éditions.

Les différentes éditions, leurs caractéristiques et les licences

Dans ce chapitre, nous nous basons sur les éditions de production d’SQL Server 2008.

Edition Entreprise : Destiné aux grandes entreprises ou ayant besoin de l’ensemble des services et outils de la plate-forme SQL Server 2008.

Edition Standard : Destiné aux petites et moyennes entreprise n’ayant pas besoin de toutes les fonctionnalités qu’offre la l’édition Entreprise. Il existe également la version SQL Server Standard for Small Business pour les PME de moins de 75 postes de travail.

Edition Workgroup : Destiné à de petits projets départementaux à fonctionnalités limitées.

Edition Express : Version gratuite redistribuable pour des applications embarquées ou des besoins sommaires en matière de base de données pour des applications sur serveur avec peu d’utilisateurs.

Edition Compact : Base de données embarquées

L’édition développeur est la même que l’édition Entreprise mais ne peut pas être mise sur un environnement de production.

Il existe une version d’évaluation de 180 jours pour pouvoir effectuer des tests et voir toute la panoplie de fonctionnalités d’SQL Server.

Les différentes éditions ont également des caractéristiques (limites) matériels et logiciels dont voici un petit tableau non exhaustif des 5 principales caractéristiques. Ces différences sont également dans chaque composant serveur.
caracteristiquesEdition2

Et les fameuses licences, comment ça marche… En fait, SQL Server supporte 3 types de licences qu’on appelle CALs (Licence d’Accès Client en français) :

Licence par utilisateur : Chaque personne physique se servant d’une application utilisant SQL Server est considérée comme un utilisateur. Le nombre de connexion à la base est limité à ce nombre maximum d’utilisateur de licence définie.

Licence par périphérique : Chaque périphérique physique (PC, serveur, portable, Tablet PC, etc..) accédant directement ou indirectement à SQL Server est considéré comme un utilisateur de la base de données

Licence par processeur : SQL Server utilise le nombre de processeurs pour mesurer le nombre de licence et peut accepter un nombre indéfini d’utilisateurs. La solution idéale pour des applications Web.

Le choix du type de licence à définir dépend de l’architecture que l’on souhaite mettre en place suivant l’utilisation des bases de données du serveur.

Architecture

SQL Server est un système client-serveur pour transmettre des requêtes entre une application cliente et SQL Server depuis n’importe quel périphérique que ce soit le poste de travail, un serveur d’application ou du mobile.

Architecture

Chaque instance d’SQL serveur à 4 bases de données systèmes (master, model, tempdb et msdb) et une ou plusieurs base de données utilisateurs.

BdD

SQL server utilise un protocole de niveau application entre le client et le server SQL qui se nomme TDS (Tabular Data Stream ou flux de données tabulaires en français).

Un plus bien utile pour vous aider à bien structurer votre plateforme de base de données…
Microsoft dans le cadre de notre partenariat, nous a mis à disposition un guide de bonnes pratiques à prendre en compte lors de nos conceptions d’infrastructure autour d’SQL server afin de bien pouvoir définir l’architecture dont vous avez besoin. Ci-dessous, vous trouverez le schéma de base du guide issu directement du site de Microsoft.
Ee354216_image1en-usTechNet_10

Ceci améliore la qualité de services que nous apportons à tous nos clients sur la plateforme SQL Server.
Microsoft SQL Server est une plateforme complète pour solutions de données. Elle est constituée de nombreux composants que nous allons maintenant détailler.

Les composants SQL server

SQL Server n’est pas qu’une simple base de données mais un ensemble de composants sous forme de services.

Outre le moteur de base de données relationnelles, il a également un services prenant en charge les applications de traitement analytique en ligne et l’exploration de données appelé SQL server Analysis Services (SSAS).

Il y a également un moteur permettant de d’effectuer des imports, des exports et des transformations de données connu sous le sigle SSIS soit SQL server Integration Services.

Grâce à l’outil Notification Services, l’utilisateur abonné reçoit des notifications pour des événements spécifiques à partir de données d’événement et d’abonnement sous toute forme de communication (email, texte, etc..).

Le Service Broker fourni un système de file de messages intégré. Il permet de créer des fonctionnalités de traitements asynchrones des données définies par l’utilisateur et fourni également de l’orchestration avancée de processus métier.

SQL Server Reporting Services (SSRS) génère des rapports depuis la base de données pour ensuite être affichés sur une page web, envoyé par mail ou dans un fichier Excel.

La réplication permet de copier et distribuer des données d’une base vers une autre qu’elles soient sur le même serveur ou un autre serveur. Par la suite, on peut synchroniser ces bases pour garantir leur cohésion.

Dans SQL Server, on peut également implémenter des solutions de base de données à l’aide de code managé écrit en .Net grâce au CLR .Net (Common Language Runtime .Net).
Le fait d’avoir le langage http en natif permet une connexion directement au Serveur SQL.

Une autre fonctionnalité intégrée est la recherche de texte intégral (Full Text Search) qui permet d’indexer de manière flexible des requêtes de données textuelles par mot clé.

 

… plus d’infos dans les prochaines publications et dbi services est bien entenu à votre disposition pour les conseils et les déploiements d’infrastructures SQL Server au sein de votre entreprise, n’hésitez pas à nous contacter…