![](images/mssql.jpg)
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.