Architecture SQL Server

 



Introduction
Membre de la famille de produit BackOffice, SQL Server est le produit de gestion de base de données relationnelle de Microsoft.
SQL Server est forme de plusieurs composants:
DB-Library: Interface de programmation (API) pour C & Visual Basic.
ODBC, OLEDB, ADO: API standard pour C & Visual Basic.
Net-library: Interface réseau de bas niveau.
SQL Server Engine: Moteur de base de données.
SQL Distributed Management Objects: API pour les tâches d'administration pour C++ & Visual Basic (API sous forme de modèle COM Automation).
Open Data Services: API pour les procédures stockées étendues (DLL) et pour les applications serveurs comme les passerelles d'accès.
SQL Executive: Gestion de la réplication et plannification des taches administratives.
Entreprise Manager: Console d'administration SQL Server.

Le moteur
Il tire partie des services de base de Windows NT comme la sécurité, les threads, la gestion mémoire et les entrées sorties (le produit a été développé conjointement avec Windows NT et il est le produit système de référence). C'est un service NT qui utilise les threads et non les processus comme les autres systèmes. Il s'occupe des domaines suivants:
- gestion des utilisateur
- gestion des fichiers: toutes les données sont stcokées sur disque dans des pages de données (SQL 6.5: 2ko, SQL 7: 8 ko).
- gestion du réseau: connexion, envoi des requêtes ...
- langage Transact SQL: procédures stockées, requêtes, déclencheurs ...
- transactions, verrous des pages et des tables, index, curseurs, analyse et optimisation des requêtes ...
- intégrité des données, clés, contraintes, domaines ...

Remarque: 
Il est possible de créer des bases de données sur support amovible : CD-ROM, ZIP et même sur une disquette !

Les verrous
Il existe 3 niveau d'isolation qui décrivent comment doivent réagir les transactions qui s'éxecutent en même temps:
- READ UNCOMMITED: ce niveau est le plus permissif et tous les codes de retour sont à examiner pour éventuellement soumettre la requête de nouveau au serveur. Ce mode permet de visualiser toutes les données, validées ou non validées (dirty reads). Equivalent à un SELECT NOLOCK.
- READ COMMITED: c'est le niveau par défaut. Il ne lit que les données validées.
- REPETEABLE READ: ce niveau assure au sein d'une trasanction, q'une requête éxecutée 2 fois donnera le même résultat. Equivalent à un SELECT HOLDLOCK. Les verrous sont maintenus plus longtemps.

Il existe 3 classes de verrous:
- SHARED LOCK: (verrou partagé) toute page de données requise est vérrouillés, lue et le verrou est libéré.
- EXCLUSIVE LOCK: (verrou exclusif) ils sont utilisés pour les opérations de mise à jour (INSERT, UPDATE, DELETE). C'est un accès exclusif.
- UPDATE LOCK: (verrou de mise à jour) ils sont utilisés sur une instruction UPDATE qui pose le verrou, lit la page, obtient un verrou exclusif et réalise la modification. Pendant qu'un verrou de ce type est posé, d'autres verrous sont autorisés mais pas de verrou exclusif.


© 2001 Christophe Pichaud. All rights reserved.