Présentation de SQL Server 2005 pour le développeur de
bases de données
Matt Nunn
Microsoft Corporation
Juillet 2004
Concerne :
Microsoft SQL Server 2005
Développement de bases de données SQL Server
Microsoft .NET Framework
Microsoft Visual Studio 2005
Microsoft ADO.NET 2.0
Résumé : Ce document présente une vue d'ensemble des nouvelles fonctionnalités de développement de base
de données de Microsoft SQL Server 2005. (14 pages imprimées)
Sommaire
Une nouvelle conception du développement de bases de données
Intégration à .NET Framework
Technologies XML
Nouvelle structure applicative
Améliorations du langage
Conclusion
Une nouvelle conception du développement de bases de données
La commercialisation de la version bêta 2 de Microsoft SQL Server 2005 bouleverse le monde du
développement de bases de données. En effet, en tant que développeur de bases de données, vous pouvez
désormais localiser votre code directement en fonction de sa fonctionnalité, accéder aux données dans des
formats natifs comme XML ou créer des systèmes complexes qui exploitent la puissance du serveur de bases de
données. Le développement de bases de données devient plus intégré que jamais, et vous avez maintenant à
portée de main tous les outils dont vous avez besoin.
Le présent document décrit quelques-unes des nouvelles fonctionnalités de SQL Server 2005 qui vous
permettront de construire une nouvelle catégorie d'application de bases de données.
Intégration à .NET Framework
La version bêta 2 de Microsoft SQL Server 2005 permet désormais aux programmeurs de bases de données
d’exploiter la bibliothèque de classes et les langages de programmation du Microsoft .NET Framework pour
intégrer des fonctionnalités à l'intérieur du serveur. Grâce à l'intégration du CLR (Common Language Runtime),
vous pouvez utiliser le langage .NET Framework de votre choix pour coder vos procédures stockées, fonctions
et déclencheurs. Microsoft Visual Basic .NET et C# vous offrent tous deux des fonctionnalités telles que les
constructions orientées objet, la gestion des exceptions structurée, les tableaux, les espaces de noms et les
classes. En outre, .NET Framework fournit des milliers de classes et de méthodes intégrant des capacités
étendues que vous pouvez facilement utiliser côté serveur. Nombre de tâches qui étaient délicates ou difficiles à
effectuer en Transact-SQL sont facilitées par le code géré. De plus, deux nouveaux types d'objet de base de
données les agrégations et les types définis par l'utilisateur sont disponibles. Vous pouvez à présent mieux
mettre à profit les connaissances et les compétences que vous avez acquises pour écrire du code de processus.
Pour résumer, SQL Server 2005 bêta 2 vous permet d'étendre le serveur de base de données pour y effectuer
plus facilement les calculs et opérations appropriés.
Cette intégration de SQL Server avec le CLR procure plusieurs avantages majeurs :
Modèle de programmation amélioré : Les langages de programmation qui sont compatibles avec
.NET Framework sont, à bien des égards, plus riches que Transact-SQL car ils offrent des constructions et
des capacités jusqu'ici indisponibles pour les développeurs SQL.
Amélioration de la fiabilité et de la sécurité : Le code géré s'exécute dans un environnement CLR qui
est hébergé par le moteur de base de données. Les objets de base de données .NET Framework sont ainsi
plus fiables et mieux sécurisés que les procédures stockées étendues des précédentes versions de
SQL Server.
Types définis par l'utilisateur et agrégations : L'hébergement du CLR permet de disposer de ces deux
nouveaux objets de base de données qui renforcent les capacités de stockage et d'interrogation de SQL
Server.
Environnement de développement commun : Le développement de base de données est intégré dans
l'environnement de développement Microsoft Visual Studio 2005. Vous utilisez les mêmes outils pour
développer et déboguer les objets et scripts de base de données, et pour écrire des composants et des
services .NET Framework de couche intermédiaire ou de couche client.
Performances et capacité à monter en charge : Grâce au fait que le code géré est compilé en code
natif avant son exécution, des gains de performance considérables sont possibles dans certains cas de
figure.
En utilisant des langages tels que Visual Basic .NET et C#, vous pouvez tirer parti de l'intégration du CLR pour
écrire du code dont la logique est plus complexe et qui est mieux adapté aux tâches de calcul. De plus, ces
langages offrent des capacités orientées objet comme l'encapsulation, l'héritage et le polymorphisme. Il est
désormais facile de classer le code lié en classes et espaces de noms, ce qui vous permet de mieux gérer votre
existant lorsque vous travaillez sur de grandes quantités de code. Cette possibilité d'organiser le code sur les
plans logique et physique en assemblages et espaces de noms constitue un avantage considérable. Elle vous
permettra en effet de mieux trouver et corréler différents éléments de code dans une grande implémentation
de base de données.
Le code géré est plus efficace que Transact-SQL pour le traitement des chiffres et la gestion d'une logique
d'exécution complexe. Il offre une prise en charge étendue pour le traitement des chaînes, des expressions
régulières, etc. Autre avantage : les fonctionnalités disponibles dans la bibliothèque de classes .NET Framework
vous procurent désormais un accès total à des milliers de classes et de routines prédéfinies, et ce à partir de
n'importe quelle procédure stockée, déclencheur ou fonction définie par l'utilisateur. Des fonctionnalités aussi
variées que fonction améliorées de traitement des chaînes, fonctions mathématiques, opérations de date, accès
aux ressources système, algorithmes de chiffrement avancés, accès aux fichiers, traitement des images et
manipulation des données XML vous sont facilement accessibles à partir des procédures stockées gérées,
fonctions, déclencheurs et agrégations.
L'un des principaux avantages du code géré est la sécurité de type. Avant l'exécution du code géré, le CLR
effectue plusieurs contrôles au cours d'un processus dit de « vérification », afin de s'assurer qu'il peut être
exécuté sans risque. Ainsi, par exemple, le CLR vérifie le code pour éviter toute lecture dans la mémoire
aucune écriture n'a été effectuée.
Choix entre Transact-SQL et le code géré
Dorénavant, pour écrire des procédures stockées, des déclencheurs et des fonctions définies par l'utilisateur,
vous allez être confronté à un choix : utiliser soit le langage traditionnel Transact-SQL soit un langage de
programmation qui soit compatible avec .NET Framework, comme Visual Basic .NET ou C#. Votre décision
dépendra du cas précis qui se présentera alors ; dans certaines situations, vous devrez utiliser Transact-SQL, et
dans d'autres le code géré.
Transact-SQL est mieux adapté lorsque le code effectue principalement un accès aux données avec peu ou pas
de logique procédurale. Les langages de programmation qui sont compatibles avec .NET Framework
conviennent mieux aux fonctions et procédures à fort pourcentage de calcul qui se caractérisent par une
logique complexe, ou pour les cas où vous voulez tirer parti de la bibliothèque de classes .NET Framework.
L'emplacement du code est également important. À l'instar du Transact-SQL, le code géré s'exécute sur le
serveur. Cela rapproche les fonctionnalités et les données et vous permet de tirer pleinement parti de la
puissance de traitement du serveur. Autre avantage : le trafic entre les données et la couche intermédiaire est
allégé. Par la simple exécution des calculs à proximité des données, cette méthode peut être particulièrement
avantageuse pour un système dépendant des E/S. Les fonctions CLR bénéficient également du processeur de
requête SQL Server, qui peut paralléliser et optimiser l'exécution. En revanche, vous pouvez préférer éviter de
placer des tâches à fort taux d'utilisation processeur sur votre serveur de base de données. La plupart des
clients étant aujourd'hui très puissants, vous profiterez de cette puissance de traitement en plaçant autant de
code que possible sur le client. Il n'existe pas de réponse universelle.
Services Web
Dans SQL Server 2005, vous avez la possibilité de développer des services Web XML dans la couche base de
données en transformant le serveur SQL afin qu’il se mette à l’écoute du protocole HTTP. Cela procure un
nouveau type de capacité d'accès aux données aux applications qui sont centrées autour des services Web.
Dans SQL Server 2005 bêta 2, vous pouvez utiliser HTTP pour accéder directement à SQL Server, sans passer
par un logiciel intermédiaire tel que Microsoft Internet Information Services (IIS). SQL Server expose une
interface de service Web pour permettre l'exécution des instructions SQL et l'invocation des fonctions et des
procédures. Les résultats des requêtes sont retournés au format XML et peuvent tirer parti de l'infrastructure de
services Web de Visual Studio.
ADO.NET
La nouvelle version d'ADO.NET comporte un grand nombre de nouveautés. Depuis la toute nouvelle prise en
charge des notifications de modification de requête jusqu'aux jeux de résultats actifs multiples (MARS),
ADO.NET passe à un niveau supérieur pour l'accès aux jeux de données et leur manipulation.
Prise en charge de la notification ADO.NET
SQL Server 2005 bêta 2 introduit la prise en charge de notification pour les requêtes SQL Server. Vous pouvez
utiliser cette fonctionnalité pour envoyer une commande à SQL Server, et pour demander qu'une notification
soit générée si la ré-exécution d'une même commande ne produit pas des résultats identiques à ceux obtenus
initialement. Vous utilisez pour cela un objet de dépendance qui détecte à quel moment les données sous-
jacentes sont modifiées. Vous pouvez inclure aux commandes qui sont envoyées au serveur via n'importe
laquelle des API client - ADO.NET, OLE DB, Open Database Connectivity (ODBC), Microsoft ActiveX Data
Objects (ADO) ou SOAP - une balise qui demande une notification. Pour chaque instruction exécutée dans le
cadre de la demande, le serveur crée un « abonnement de notification » qui se déclenche une fois pour chaque
instruction qui est incluse dans la demande. Les notifications sont livrées via une file d'attente SQL Service
Broker que les applications peuvent interroger. Elles utilisent des services d'activation ou des instructions de
blocage qui indiquent à quel moment les notifications sont disponibles. Les notifications de requête sont utiles
pour l'activation de la mise en cache des résultats dans des applications telles que les sites Web pilotés par
base de données.
Jeux de résultats actifs multiples
Les jeux de résultats actifs multiples (MARS) permettent d'avoir plusieurs demandes en attente par connexion
et surtout, plusieurs jeux de résultats par défaut ouverts par connexion. Ce sont des jeux de résultats à
transmettre uniquement et en lecture seule. Pour les jeux de résultats par défaut, les pilotes clients extraient
les données de manière transparente par grands segments (segment de taille tampon TDS Tabular Data
Stream) pour que les demandes d'application soient satisfaites sans aller-retour avec le serveur (comme dans
le cas des curseurs de serveur). L'application peut utiliser un modèle de programmation ligne par ligne simple
sans compromettre les performances.
La fonctionnalité de jeux de résultats actifs multiples supprime la restriction actuelle qui veut qu'un jeu de
résultats par défaut ouvert empêche le pilote d'envoyer des demandes au serveur tant que le jeu de résultats
n'est pas intégralement terminé.
Prise en charge de l'isolement de capture instantanée
SQL Server 2005 bêta 2 offre un nouveau niveau d'isolement de capture instantanée. L'isolement de capture
instantanée est un mécanisme de gestion des versions de lignes qui stocke les versions des données pour les
lecteurs de données. Ce nouveau niveau d'isolement procure les avantages suivants :
disponibilité accrue des données pour les applications en lecture seule, opérations de lecture non
bloquantes autorisées dans un environnement OLTP,
détection automatique et obligatoire des conflits pour les transactions d'écriture,
migration simplifiée des applications d'Oracle vers SQL Server.
Par exemple, le verrouillage peut entraîner des blocages entre les applications qui lisent et écrivent les mêmes
données de façon simultanée. Si une transaction modifie une ligne, l'autre ne peut pas lire la ligne avant la
validation de l'écriture. Avec l'isolement de capture instantanée, le lecteur peut accéder à la valeur validée
précédente de la ligne.
Le niveau d'isolement de capture instantanée est pris en charge et exposé via ADO, OLE DB, SQLOLEDB, Shape
Provider, SQLODBC, le fournisseur managé OLE DB et le fournisseur managé SQL.
SQL Management Objects
Le modèle SMO (SQL Management Objects) est le modèle d'objet de gestion de SQL Server 2005. SMO offre
des améliorations importantes sur le plan de la conception et de l'architecture pour le modèle d'objet de gestion
SQL Server. Simple à utiliser, c'est un modèle d'objet néanmoins élaboré, basé sur le code géré
.NET Framework. SMO est le principal outil de développement d'applications de gestion de base de données
utilisant .NET Framework. SMO est utilisé par chaque boîte de dialogue de SQL Server Management Studio, et
chaque action d'administration que vous pouvez effectuer dans SQL Server Management Studio peut également
l'être avec SMO.
Le nouveau modèle d'objet SMO et les API WMI (Microsoft Windows Management Instrumentation) remplacent
SQL-DMO. Lorsque cela est possible, SMO incorpore des objets similaires à SQL-DMO dans un but de
simplification. Vous pouvez toujours utiliser SQL Server 2005 bêta 2 avec SQL-DMO, mais SQL-DMO ne sera
pas mis à jour pour gérer des fonctionnalités spécifiques à SQL Server 2005.
SMO et SQL-DMO
Le modèle d'objet SMO est une suite logique du travail effectué dans SQL-DMO. SMO est compatible sur le plan
des fonctionnalités avec SQL-DMO, dans le sens qu'il contient nombre d'objets identiques. Quoique la
conception SQL-DMO d'origine ait été conservée au maximum, SMO offre davantage de fonctionnalités que
1 / 14 100%
La catégorie de ce document est-elle correcte?
Merci pour votre participation!

Faire une suggestion

Avez-vous trouvé des erreurs dans linterface ou les textes ? Ou savez-vous comment améliorer linterface utilisateur de StudyLib ? Nhésitez pas à envoyer vos suggestions. Cest très important pour nous !