SQL Serveur 2008
SQL Serveur 2008
SQL Serveur 2008
SQL Server
Plan
CHAPITRE 1 INTRODUCTION SQL SERVEUR ............................................... 8
1.1 INTRODUCTION ................................................................................................. 8
1.2 QUELQUES RAISONS DE PASSER LA VERSION 2008 ............................................. 8
Support de XML................................................................................................................. 8
Indexation des vues ............................................................................................................ 8
Lanalyseur des requtes (queries) ..................................................................................... 9
Lintgrit rfrentielle en cascade .................................................................................... 9
Les classements dfinis par base de donnes ..................................................................... 9
Les fonctions dfinies par lutilisateur ............................................................................... 9
Les dclencheurs instead of................................................................................................ 9
1.3 OUTILS DE GESTION. ......................................................................................... 9
Mainframe ........................................................................................................................ 14
Client-serveur de fichiers ................................................................................................. 15
Client-serveur de donnes ................................................................................................ 15
Architecture Client-Serveur ............................................................................................. 16
1.6.1.1 Serveur intelligent ............................................................................................ 16
1.6.1.2 Client intelligent ............................................................................................... 16
1.6.1.3 Architectures distribues .................................................................................. 16
Systmes transactionnels OLTP (OnLine Transation Processing) ................................. 16
Systmes dcisionnels OLAP (On Line Analytical Processing) ...................................... 17
CHAPITRE 2 INSTALLATION DE SQL SERVEUR 2008 ................................... 18
2.1 DITIONS DE SQL SERVEUR 2008.................................................................... 18
http://msdn.microsoft.com/en-US/library/ms143685(v=SQL.100).aspx ......................... 18
Express ............................................................................................................................. 18
Workgroup ....................................................................................................................... 18
Standard ............................................................................................................................ 19
SQL Server
Entreprise ......................................................................................................................... 19
Developer ......................................................................................................................... 19
Web .................................................................................................................................. 19
2.2 CONFIGURATIONS MINIMALES. .......................................................................... 19
2.3 LES OPTIONS DINSTALLATION. .......................................................................... 20
Mthode dinstallation...................................................................................................... 21
Choix des composants ...................................................................................................... 23
Nom de linstance............................................................................................................. 24
Choix du compte de dmarrage des services SQL Serveur.............................................. 25
Mode dauthentification ................................................................................................... 26
Vrification de linstallation............................................................................................. 26
CHAPITRE 3 ARCHITECTURE DE SQL SERVEUR .......................................... 28
3.1 LES OUTILS .................................................................................................... 28
Le gestionnaire de services............................................................................................... 28
Microsoft SQL Server Management Studio ..................................................................... 28
Analyseur de requtes ...................................................................................................... 29
Gnrateur de profils SQL ............................................................................................... 31
3.2 ALLOCATION DESPACE .................................................................................... 31
SQL Server
Cl primaire. ..................................................................................................................... 59
Cl trangre. ................................................................................................................... 60
Contrainte UNIQUE ......................................................................................................... 62
4.7 MODIFIER UNE TABLE ...................................................................................... 63
Utilisation ......................................................................................................................... 72
Modification ..................................................................................................................... 72
4.12 FONCTIONS DFINIES PAR LUTILISATEUR ......................................................... 73
SQL Server
SQL Server
SQL Server
SQL Server
CHAPITRE 1
INTRODUCTION SQL SERVEUR
1.1 Introduction
La mise niveau de SQL Serveur 2000, 2005 vers SQL Serveur 2008 est simple.
Les structures de donnes ont peu volu et la mise niveau sassimile plus un
transfert de base de donnes qu une mise niveau.
Compte tenu des instances multiples du moteur de SQL Serveur il est tout fait
possible de faire tourner, en mme temps sur le serveur, SQL Serveur 7, SQL
Serveur 2000, Serveur 2005 et SQL Serveur 2008.
Lors dune mise niveau, il est fortement recommand de sauvegarder les bases de
donnes avant doprer la mise niveau.
Vous pouvez aussi installer une instance nomme de SQL Serveur 2008 qui
fonctionnera en parallle avec dautres SQL Serveur. Les moteurs tournant en
mme temps vous permettent une mise niveau des bases de donnes sans
risquela seule contrainte : lespace disque.
Dans ce chapitre, nous nous limiterons linstallation du SQL Serveur 2008 sur
une machine qui ne contient pas danciennes versions.
SQL Server
SQL Server
10
SQL Management Studio a t entirement repens pour tirer parti des nouvelles
fonctionnalits de SQL Serveur.
Sparation des bases de donnes systmes, procdures stockes et celles
personnelles.
Cration et modification en mode graphique des tables, des vues, des procdures
stockes
De nombreux assistants tels que pour limportation et lexportation de donnes,
pour la mise en place de la rplication
Cration et gestion des serveurs lis
SQL Server
11
SQL Server
12
Transact-SQL
Des innovations ont t apportes dans les transactions SQL telles que :
SQL Server
13
Rgles d`intgrit
Les donnes stockes dans une table doivent tre cohrentes et valides. Les rgles
d`intgrits servent contrler ces caractristiques.
SQL Server
14
1.5.1.4 Index.
Les index sont l pour acclrer les recherches (p.ex. : recherche par thme dans
un livre on consulte lindex qui donne la liste des pages). Si un trop grand nombre
dindex, la mise jour peut dgrader les performances.
Si plusieurs index sur une table, pour les recherches le moteur lembarras du
choix. Mais si on fait une mise jour, une insertion, une suppression
lactualisation des index ralentira les oprations. Rflchir aux index crer en
fonction du type doprations excuter et de leur frquence. Les index utiliss par
SQL Serveur est b-tree (arbre quilibre).
SQL Server
15
Client-serveur de fichiers
Dans les annes 80, apparition des PC. Ils conviennent pour lmulation de
terminaux passifs et de machine autonome. Permets des traitements locaux et
lexcution de programmes do soulage le serveur.
Il y a aussi lapparition des rseaux locaux. Les entreprises qui ne possdent pas de
Mainframe, squipent de ce type de systme (IBM et PC compatible). Pour crer des
ressources sur le rseau local, il faut partager (Novell, Windows Workgroups) avec
ou sans serveur ddi.
Avec larrive des bases de donnes dBase, Paradox, Foxpro, Access
Larchitecture des serveurs de fichier un inconvnient les donnes se trouvent sur
le serveur et lapplication est excute sur le poste client. Si une requte se fait sur
une grosse table, elle transite sur le rseau pour tre traite localement. On peut
saturer pendant quelque seconde le rseau.
Client-serveur de donnes
Sur les mainframes, la totalit du traitement jusqu laffichage se fait sur le serveur
engorgement niveau serveur
Sur rseaux locaux base de serveurs de fichiers, traitement a lieu sur le poste
client engorgement du rseau.
Dans une architecture client-serveur le traitement des donnes est rparti entre le
client et le serveur. Une requte sur une table est prise en charge par le serveur qui
renvoie le rsultat vers le client. Le client possde la logique des traitements du
rsultat (mise en forme, calcul complmentaire, prsentation).
Seul SQL Serveur met en uvre une architecture client-serveur, Access, FoxPro
travaille en serveur de fichier.
Remarque :
SQL Server
16
Access est capable de diffuser les donnes via le rseau Internet, mais cest le pilote
ODBC qui rend le miracle possible.
La communication entre le client et le serveur est assure par le Middleware
mdiateur qui gre plusieurs tches :
Envoi des requtes au serveur et transfert des rsultats vers le client.
Transformation des types de donnes
Gestion des transactions, des curseurs
Ouverture et fermeture des connexions
De plus en plus, on fournit aux clients des moyens transparents de connexion aux
bases de donnes. Celui de Microsoft est ODBC (Open Data Base Connectivity).
ODBC permet de concevoir des applications sans connatre le type de serveur SQL.
Elle permet de grer de simple connexion transparente une base de donnes mais
aussi de grer des data bases distribues et rparties sur plusieurs serveurs.
Architecture Client-Serveur
Cette
SQL Server
17
Les applications sont axes vers lcriture : insertions, mises jour, suppressions
de donnes et ceci doit se faire le plus rapidement possible do une forte
normalisation et peu dindex pour ne pas ralentir la mise jour.
Une transaction est ralise si toutes les instructions sont ralises. Si une
instruction ne lest pas, la transaction est annule. La transaction est isole et
invisible pendant lexcution. Pour cela on utilise un systme de verrouillage
18
SQL Server
CHAPITRE 2
INSTALLATION DE SQL SERVEUR 2008
2.1 ditions de SQL Serveur 2008
SQL Serveur existe en six ditions : Express (32 ou 64 bits), Workgroup (32 ou 64
bits), Standard (32 ou 64 bits), Entreprise (32 ou 64 bits), Developer (32 ou 64 bits),
Web (32 ou 64 bits).
Fonctionnalits des diffrentes versions.
Fonctionnalit
Gestion max. de
processeurs
Taille max de la base de
donnes
Prise en charge du 64 bits
Gestion max de la taille
mmoire
Rplication
Partitionnement
Express
Workgroup
Standard
Entreprise
1 prend en
charge
multicore
2 prend en
charge
multicore
4 prend en
charge
multicore
illimite
4Go
illimite
illimite
illimite
Avec WOW
Avec WOW
intgre
intgre
1Go
4Go
Limit suivant
O.S.
Limit suivant
O.S.
1 abonn
25 abonns
oui
oui
non
non
non
oui
http://msdn.microsoft.com/en-US/library/ms143685(v=SQL.100).aspx
Express
Systme de bases de donnes gratuit qui peut tre redistribu pour servir de bases
de donnes client. Solution pour le remplacement dAccess.
Workgroup
Solution destine aux petits organismes qui travaillent avec de faibles volumes de
donnes sans limite de taille ni dutilisateurs.
19
SQL Server
Standard
Cest la version de base installer sur un serveur. Possde les fonctionnalits pour
le stockage de donnes des petites et moyennes entreprises. Est limit par rapport
la version Enterprise
Entreprise
Prend en charge les grands environnements de traitement de bases de donnes. Ne
possde aucune limite et possde les fonctionnalits la plus compltes.
Developer
Possde toutes les fonctionnalits de la version Enterprise. Mais ne propose quune
licence pour le test et le dveloppement pas pour la mise en production.
Web
Possde toutes les fonctionnalits de la version Enterprise. Mais destin au serveur
Web .
Processeur
Vitesse du processeur
Mmoire RAM
Enterprise
PIII ou suprieur
1 GHz
2 GHz Recommand
512 Mo
2 Go Recommand
Developer
PIII ou suprieur
1 GHz
2 GHz Recommand
512 Mo
2 Go Recommand
Standard
PIII ou suprieur
1 GHz
2 GHz Recommand
512 Mo
2 Go Recommand
Workgroup
PIII ou suprieur
1 GHz
2 GHz Recommand
512 Mo
2 Go Recommand
Express
PIII ou suprieur
1 GHz
2 GHz Recommand
256 Mo
1Go Recommand
20
SQL Server
Enterprise
Developer
Standard
Workgroup
Express
Windows 2000
Non
Non
Non
Non
Non
Non
Oui
Oui
Oui
Oui
Non
Oui
Oui
Oui
Oui
Non
Oui
Oui
Oui
Oui
Non
Oui
Non
Non
Oui
Windows XP Professionnel
SP2
Non
Oui
Oui
Oui
Oui
Oui
Oui
Oui
Oui
Oui
Oui
Oui
Oui
Oui
Oui
Oui
Oui
Oui
Oui
Oui
Oui
Oui
Oui
Oui
Oui
Non
Non
Non
Non
Non
Non
Oui
Oui
Oui
Oui
Oui
Oui
Oui
Oui
Oui
Non
Non
Oui
Oui
Oui
Oui
Oui
Oui
Oui
Oui
La slection des options : crer une nouvelle instance, installation des outils,
mise jour dune installation
Votre nom et celui de votre organisme
Les composants installer (outils client, serveur et outils clients, connectivit
seule)
Les comptes de connexion
SQL Server
21
Mthode dinstallation
En fonction du systme dexploitation de la machine et de ldition de SQL Server
dautres fonctionnalits doivent tre installes avant linstallation de SQL Serveur.
Le programme d'installation de SQL Server installe les composants logiciels
suivants requis par le produit :
.NET Framework 3.5 SP11 (qui inclut .NET Framework 2.0 SP2)
Le programme d'installation de SQL Server ncessite
Microsoft Windows Installer 4.5 ou version ultrieure
Microsoft Internet Explorer 6.0 SP1 ou version ultrieure
Le programme d'installation de SQL Server n'installera pas les composants requis
suivants pour SQL Server Express. Vous devez installer ces composants
manuellement avant d'excuter le programme d'installation de SQL Server.
Installer Windows Installer
..chemin\x86\redist\Windows Installer\x86
SQL Server
22
Framework
..chemin\x86\redist\ DotNetFrameworks
Installation de SQL Serveur : chemin\SQL Server x86\Servers\setup.exe
SQL Server
23
SQL Server
24
Nom de linstance
On peut installer 16 instances SQL Serveur par machine et en coexistence avec des
versions antrieures. Par exemple SQL Serveur 7 avec 2008 ou SQL Serveur 2005
avec 2008.
Linstance par dfaut est le nom de la machine au niveau systme dexploitation. Si
on utilise un autre nom, il faut respecter quelle rgle :
Ni Default ni MSSQLServer
Moins de 16 caractres
Commencer par une lettre ou & ou _ ou #
Lemploi de plusieurs instances augmente la charge dadministration et duplique les
composants ainsi que les bases de donnes systmes.
Lemploi dinstances nommes est indiqu lors de :
Test de plusieurs versions SQL Serveur sur une mme machine
Test de services packs
Lorsque les clients exigent leurs propres bases de donnes systmes et
utilisateurs
SQL Server
25
SQL Server
26
Mode dauthentification
Le moteur de SQL Serveur fonctionne sous deux modes de connexion : Windows ou
mixte.
Le mode Windows : seuls les utilisateurs authentifis par le systme
dexploitation Windows peuvent se connecter SQL Serveur.
Offre le niveau de scurit le plus lev.
Vrification de linstallation.
Vrifier que le service MSSQLServer est dmarr correctement avec les outils du
service dadministrations.
SQL Server
Remarque :
En cas de problme, la lecture de fichiers :
c:\Program Files\Microsoft SQL Server\Nom_Instance\Log\errorlog
Permet de connatre le pourquoi de larrt du serveur
c:\Program Files\Microsoft SQL Server\Nom_Instance\Log\SQLAgent.out
Erreur survenue
27
28
SQL Server
CHAPITRE 3
ARCHITECTURE DE SQL SERVEUR
3.1 Les outils
Le gestionnaire de services
SQL Serveur possde son propre gestionnaire de services accessible depuis le menu
de dmarrage. Cest linterface qui permet dactiver ou de dsactiver les services :
SQL Server
Agent SQL (gestionnaire dautomatisation des tches)
SQL Server
29
Analyseur de requtes
Permet de passer les requtes et de rcuprer les rsultats. Lors du lancement de
lanalyseur il faut se faire reconnatre du serveur. Lanalyseur de requtes ne
comprend que deux sortes de requtes : celles crites en T-SQL ou les demandes
dexcution de procdure stockes.
Un explorateur dobjets permet de visualiser : les tables, les colonnes des tables, les
vues, les procdures stockes
Pour excuter la requte soit : CTRL E, ALT X ou point dexclamation
SQL Server
Affichage de Statistique
30
31
SQL Server
Fichier de donnes
Fichier de journal
Fichier virtuel
(256 Ko minimum)
Page (8 Ko)
32
SQL Server
3.2.1.1 Extension
Une extension est un bloc de 64Ko qui contient des donnes des tables ou des
index. Il y a deux types dextensions :
Extension mixte : elle est partage par plusieurs tables ou index. Elle peut
contenir jusqu 8 tables ou index diffrents
Extension uniforme : elle est alloue entirement une table ou un index.
Les 8 pages qui sy trouvent contiennent uniquement des donnes
appartenant une table.
Extension mixte
Extension mixte
Extension uniforme
Table1
Table2
Index
3.2.1.3 Page
Une extension contient 8 pages de donnes. Dans la page sont stockes les lignes
de la table ou de lindex sauf champs de types texte et image. Au sein dune page il
peut y avoir en fonction de leur taille un ou plusieurs enregistrements en sachant
quun enregistrement est intgralement compris dans une page.
La taille dune page est de 1024*8=8192 octets. Lespace utile est de 8060 car
chaque page possde un en-tte de 96 octets et 36 octets de gestion. Taille retenir
lors de la conception des tables. Si chaque enregistrement dune table est de 4050
octets, il ny aura que 1 enregistrement par page 2* 4050 8100 suprieur * 8060
do 4010 octets perdus (50% de lespace perdu).
33
SQL Server
Lorsquune page contient plus dun enregistrement (ils sont stocks en squence),
chaque enregistrement est rfrenc par un offset qui est plac en fin de page et qui
contient le numro du premier octet de chaque enregistrement.
En-tte 96 octets
Enr. 1
Enr. 2
Enr. 3
4870
367
96
Table doffset
IAM
Donnes
34
SQL Server
Extension
IAM
Donnes
SQL Server
35
3.3.1.1 Automatique
Si loption autoshrink est active SQL Serveur rduit automatiquement la taille de
la base de donnes ds quil constate un volume despace libre important.
La rduction dun fichier deux rgles :
Les donnes sont rorganises dans le fichier
Le fichier ne peut tre rduit en dessous de sa taille initiale.
SQL Server
36
3.3.1.2 Manuelle
On peut rduire la taille du fichier en dessous de sa taille initiale.
Les donnes sont rorganises dans le fichier. On ne peut pas rduire la taille si la
taille finale est infrieure celle de la base Model. On peut utiliser la base pendant
que son fichier rtrcit. La rduction dun fichier entrane immdiatement celle de
la base de donnes. Opration sans risque.
Syntaxe :
DBCC SHRINKFILE
( { file_name | file_id }
{ [ , target_size ]
| [ , { EMPTYFILE | NOTRUNCATE | TRUNCATEONLY } ]
}
)
Exemple :
dbcc shrinkfile (Gestion_data) ou dbcc shrinkfile (1)
Renvoie la taille du fichier en pages de 8 Ko et le nombre de pages utilises
dbcc shrinkfile (Gestion_data, 250)
Rduit la taille du fichier de 400Mo 250Mo avec taille initial
On peut aussi rduire le journal de transaction.
Informations sur les fichiers de base de donnes.
Les informations sur les fichiers se trouvent dans la table sysfiles (on peut utiliser
la procdure sp_helpfile). Chaque base de donnes contient une table sysfiles qui
est responsable de sa rpartition sur le disque. Ceci permet quen cas de problme,
on puisse rattacher ces bases au nouveau systme.
SQL Server
37
Journal de transaction.
Le journal de transaction permet la restauration automatique du systme, il
contient lhistorique de toutes les modifications apportes la base de donnes.
Toutes les bases de donnes possdent son journal de transactions (.LDF). A
chaque fois quil y a une modification, lopration est consigne dans le journal des
transactions.
La transaction est envoye par le client.
Les enregistrements modifier par la transaction sont lus, sont mis jour et
restent en mmoire aprs modification
La transaction est sauve dans le journal
Ds que la transaction est valide (commit) elle est enregistre sur le disque.
Impossible davoir une base de donnes sans journal, mais on peut vider le journal
afin quil garde une taille rduite, pour cela il y a deux moyens :
Choisir le modle de rcupration simple
Excuter la commande backup log nom_base_de donnes with truncateonly.
MASTER :
Contient toutes les informations ncessaires au fonctionnement du serveur. En cas
de perte, le moteur SQL ne dmarre plus, do la reconstruire ou attacher version
de sauvegarde.
La base de donnes Master est compose de 16 tables qui assurent :
La scurit daccs,
Les connexions,
Gre le verrouillage,
Deux fichiers master.mdf et mastlog.ldf
MODEL :
Elle sert de modle aux nouvelles bases cres. Elle est compose de 18 tables
systmes (ou catalogues de base de donnes). Ces tables se trouvent dans toutes les
SQL Server
38
bases, y compris dans master car le contenu de model est copi intgralement dans
toute nouvelle base.
Deux fichiers model.mdf et modellog.ldf
La taille de model est de 1,13 Mo, cela veut dire quaucune base ne peut tre plus
petite que model.
Remarque :
Si lon veut que toutes les bases contiennent des objets particuliers (tables, rgles,
valeur, utilisateur autoris) ajoutez-les dans model et lors de la cration de
nouvelle base elle contient lintgralit de model.
TEMPDB :
Base de stockage temporaire pour le tri, sous requtes, regroupement
Deux fichiers Tempdb.mdf et Templog.ldf
MSDB :
Base utilise par lAgent SQL pour les tches automatises, les vnements
traiter, personne contacter en cas de problme.
Deux fichiers Msdb.mdf et Msdblog.ldf
SQL Server
39
CHAPITRE 4
ARCHITECTURE DUNE BASE DE DONNES
SQL Serveur est un systme de gestion de bases de donnes relationnelle (SGBDR).
Les options du moteur SQL Serveur sont stockes dans une base de donnes
(Master) ainsi que les clients autoriss, rfrences aux bases de donnes existantes.
4.1 Dfinition
Une base de donnes pour :
Un administrateur :
Cest un ensemble de fichiers contenant des donnes organises qui doivent tre
sauvegardes, nettoyes, scurises
Un utilisateur :
Cest un espace lui permettant denregistrer des informations et de les retrouver.
Un dveloppeur :
Cest ensemble de tables contenant des donnes, dindex permettant dacclrer
leur rcupration et de procdures.
Une base de donnes SQL Serveur est constitue dau moins deux fichiers :
Un fichier de donnes (*.MDF)
Un fichier de journal (*.LDF)
Elle est compose :
De tables contenant des donnes,
Dindex servant retrouver, trier, regrouper rapidement les donnes,
De dclencheurs excutant des oprations lors dinsertion, de modification
et/ou de suppression,
De types de donnes dfinis par lutilisateur,
De valeur par dfaut autorisant le systme insrer des valeurs dans les
colonnes non renseignes par le client,
De vues,
De fonctions dfinies par lutilisateur,
De procdures,
De diagrammes relation entre les tables
Elle ne contient ni formulaires, ni objets graphiques, elle a besoin dune application
frontale (VB, VC++)
SQL Server
40
SQL Server
41
SQL Server
42
Syntaxe
ALTER DATABASE database
{ ADD FILE < filespec > [ ,...n ] [ TO FILEGROUP filegroup_name ]
| ADD LOG FILE < filespec > [ ,...n ]
| REMOVE FILE logical_file_name
| ADD FILEGROUP filegroup_name
| REMOVE FILEGROUP filegroup_name
| MODIFY FILE < filespec >
| MODIFY NAME = new_dbname
| MODIFY FILEGROUP filegroup_name {filegroup_property | NAME =
new_filegroup_name }
| SET < optionspec > [ ,...n ] [ WITH < termination > ]
| COLLATE < collation_name >
}
Exemple:
ALTER DATABASE gestion
MODIFY FILE
(NAME = gestion_data, SIZE = 20MB)
ALTER DATABASE Gestion
ADD FILE
( NAME = gestion_data1,
FILENAME = 'c:\Program Files\Microsoft SQL Server\...\ Data\gestion_data1.ndf',
SIZE = 5MB, MAXSIZE = 100MB, FILEGROWTH = 5MB)
Pour plus dinformation consultez laide en ligne de lanalyseur Transact SQL
SQL Server
43
NOTRUNCATE
Permet de conserver l'espace de fichier libr dans les fichiers de la base de
donnes.
TRUNCATEONLY
Tout lespace inutilis dans les fichiers de donnes est libr par le systme
d'exploitation. target_percent est ignor lorsque l'instruction TRUNCATEONLY est
utilise.
Exemple :
Cet exemple diminue la taille des fichiers dans la base de donnes utilisateur
UserDB pour permettre de conserver un espace libre de 10 % dans les fichiers de
UserDB.
DBCC SHRINKDATABASE (UserDB, 10)
Si on active loption rduction automatique, le systme rcupre automatiquement
de lespace non allou pour le restituer au systme. Ne peut tre fait que
manuellement avec linstruction shrinkfile. La rduction automatique na lieu que
sil y a 25% despace inutilis.
Il est possible de rduire une base de donnes avec SQL Server Management.
SQL Server
44
SQL Server
45
Il existe trois procdures stockes pour dtacher et attacher une base de donnes.
Une procdure pour dtacher : librer des fichiers pour les copier ou les dplacer.
Et deux procdures pour attacher : lier des fichiers SQL Serveur.
Syntaxe et exemple :
sp_detach_db [ @dbname = ] 'dbname'
[ , [ @skipchecks = ] 'skipchecks' ]
Sp_detach gestion, false
false : fait la mise jour des index de statistiques.
sp_attach_db [ @dbname = ] 'dbname'
, [ @filename1 = ] 'filename_n' [ ,...16 ]
Sp_attach_db gestion,
e:\data\gestiondata.mdf,
f:\ data\gestiondata1.ndf,
g:\ data\gestionlog.ldf
Attache trois fichiers la base gestion
sp_attach_single_file_db [ @dbname = ] 'dbname'
, [ @physname = ] 'physical_name'
sp_attach_single_file_db 'gestion'
, 'e:\data\gestiondata.mdf'
Attache le fichier gestion et cre un fichier journal.
SQL Serveur propose aussi ces oprations en mode graphique.
SQL Server
46
Pour attacher une base de donnes on peut aussi crer une nouvelle base de
donnes et attacher les fichiers.
create database for attach
Exemple :
CREATE DATABASE ESSAI
ON PRIMARY
(FILENAME = 'C:\Program Files\Microsoft SQL Server\...\Data\gestion_data.mdf')
FOR ATTACH
SQL Server
47
SQL Server
48
ANSI_NULL_DEFAULT ON | OFF
Si ON : CREATE TABLE colonne autorise les valeurs NULL.
ANSI_PADDING ON | OFF
Si ON : les chanes sont compltes la mme longueur avant leur comparaison ou
insertion. Si OFF : les chanes ne sont pas compltes.
ANSI_WARNINGS ON | OFF
Si ON : erreurs ou avertissements sont mis.
ARITHABORT ON | OFF
Si ON : requte s'arrte lorsqu'un dpassement de capacit ou une division par zro
se produit
SQL Server
Syntaxe :
CREATE TABLE
[ database_name.[ owner ] . | owner. ] table_name
( { < column_definition >
| column_name AS computed_column_expression
| < table_constraint > ::= [ CONSTRAINT constraint_name ] }
| [ { PRIMARY KEY | UNIQUE } [ ,...n ]
)
[ ON { filegroup | DEFAULT } ]
[ TEXTIMAGE_ON { filegroup | DEFAULT } ]
Exemple :
CREATE TABLE [dbo].[T_Client] (
Nom char (30) NOT NULL ,
Prnom char (20) NULL ,
Adresse char (50) NOT NULL ,
CP char (5) NOT NULL ,
Ville char (25) NOT NULL )
On peut crer des colonnes virtuelles, lavantage est que les donnes de ces
colonnes ne sont pas stockes.
Exemple :
Calcul dun prix TTC partir dune colonne HTVA et une colonne TVA.
CREATE TABLE [dbo].[produit] (
nom char (10),
PrixHTVA float NULL ,
TVA float NULL,
Prix as PrixHTVA*(1+TVA))
49
50
SQL Server
1 8000 octets
ANSI longueur fixe 8000 caractres
2 8000 octets
Unicode longueur fixe 4000 caractres
1 8000 octets
ANSI longueur variable 8000 caractres
: 2 8000 octets
Unicode longueur variable 4000 caractres
: jusqu 2 G0
ANSI longueur variable 2 E30
: jusqu 2 G0
Unicode longueur variable 2 E29
: jusqu 2 G0
ANSI longueur variable 2 E30
: jusqu 2 G0
Unicode longueur variable 2 E29
Il y existe dautres types de donnes dfinies dans SQL Serveur, voir laide en ligne
SQL Server
51
Remarque :
Il est impossible de crer un TDDU partir dun autre TDDU
Une fois cr, il est impossible de modifier un TDDU
Pour quil soit pris en compte pour toutes les nouvelles bases de donnes, placer le
dans la base de donnes MODEL. Tout objet dfini dans cette base se retrouve dans
les nouvelles bases de donnes.
La procdure stocke sp_addtype cre un type de donnes dfini par l'utilisateur
Syntaxe :
sp_addtype [ @typename = ] type,
[ @phystype = ] system_data_type
[ , [ @nulltype = ] 'null_type' ]
[ , [ @owner = ] 'owner_name' ]
Exemple : sp_addtype Code_Postal, 'char (5)', 'NOT NULL'
Renommer un TDDU
Il est possible de renommer lobjet avec SQL Server Management (interface
graphique) ou avec la procdure stocke sp_rename
Syntaxe :
SQL Server
52
Supprimer un TDDU
Avec linterface graphique, slectionner lobjet, choisir loption delete
Avec la procdure stocke sp_droptype
Syntaxe :
sp_droptype [ @typename = ] 'type'
Exemple : Sp_droptype CP
Contrainte DEFAULT
La contrainte DEFAULT permet de dfinir une valeur par dfaut attacher une
colonne de la table.
SQL Server
53
Exemple :
CREATE TABLE Commande
(Date_Commande datetime default getdate(),
Montant decimal default 0 not null,
Numcli int)
ALTER TABLE Commande
ADD CONSTRAINT Defnumcli default 0 for numcli
On ajoute une contrainte DEFAULT en spcifiant un nom Defnumcli la
contrainte au lieu que ce soit SQL Serveur qui cre le nom.
ALTER TABLE Commande
DROP CONSTRAINT [DF__commande__dateco__1A14E395]
On supprime une contrainte.
SQL Server
54
SQL Server
Cration
CREATE
Exemple
CREATE
55
dune valeur par dfaut dans une base courante, en utilisant linstruction
DEFAULT
:
DEFAULT CP as 1000
En utilisant la procdure stocke sp_bindefault, on peut lier une valeur par dfaut
une colonne ou un TDDU :
Syntaxe :
sp_bindefault [ @defname = ] 'default' ,
[ @objname = ] 'object_name'
[ , [ @futureonly = ] 'futureonly_flag' ]
Exemple : sp_bindefault cp, Code_Postal
La valeur par dfaut a t lie au TDDU.
sp_bindefault cp,'[Commande]..[Code_Postal]'
La valeur par dfaut est lie la colonne Code_Postal de la table Commande.
Remarque :
Le flag futurronly est utilis dans le cas ou il existe dj des valeurs par dfaut
dans une colonne
56
SQL Server
Exemple :
sp_unbindefault Code_Postal Valeur par dfaut dtache du type de donnes.
sp_unbindefault
colonne de table.
Rgles de validation
Les rgles de validation assurent lintgrit de domaine.
Permet de limiter les valeurs de saisies par rapport une plage dtermine
Permet dimposer un format de saisie.
Par exemple, imposer que ge soit compris entre 18 et 65ans ou bien que numro
de tlphone soit du format ## ###.##.##.
On dispose de deux possibilits
La contrainte check
La rgle de validation RULE
Contrainte CHECK
Elle est dfinie lors de la cration ou de la modification dune table. Une colonne
peut avoir plusieurs contraintes CHECK. La cration peut se faire par SQL Server
Management ou par du code Transact-SQL.
SQL Server
57
Cration de RULE
La cration de RULE ou la cration de rgle de validation pour les colonnes est
quivalente la contrainte CHECK ; on la cre, on lattache une colonne ou aux
types de donnes. La syntaxe est similaire une condition WHERE.
Avec SQL Server Management, les deux oprations se droulent dans une bote de
dialogue. Puis on associe la rgle une colonne ou un type de donnes. Donner
un nom pertinent la rgle.
SQL Server
Syntaxe :
CREATE RULE rule
AS condition_expression
Exemple :
CREATE RULE CpRule
As @cp like [0-9][0-9][0-9][0-9][0-9]
@ nom : reprsente une variable locale
CREATE RULE Age
as@Age >=18 and @Age<=65
Syntaxe
Pour lier la rgle une colonne ou un TDDU, on utilise la procdure stocke
sp_bindrule.
Syntaxe :
sp_bindrule [ @rulename = ] 'rule' ,
[ @objname = ] 'object_name'
Exemple :
sp_bindrule CpRule,Type_CP
On attache la rgle CpRule au type utilisateur Type_CP
sp_bindrule CpRule,'Personnel.[CP]'
On attache la rgle CpRule la colonne Code_Postal de la table personnelle
58
SQL Server
59
Cl primaire.
La contrainte Primary Key indique au systme que la table dispose dune colonne
ou un groupe de colonnes permettant didentifier de manire unique chaque
enregistrement de la table. (Remarque : la contrainte unique le permet aussi)
On peut la crer ou la supprimer avec SQL Server Management ou avec les
commandes Transact-SQL CREATE TABLE ou ALTER TABLE.
La cration dune cl primaire induit celle dun index unique (le type de lindex est
cluster ou non, en SQL Serveur lindex cluster est par dfaut). La colonne ou groupe
de colonnes naccepte pas la valeur NULL et naccepte pas de doublons dans les
colonnes.
SQL Server
60
Syntaxe :
[ CONSTRAINT constraint_name ]
{ [ { PRIMARY KEY }
[ CLUSTERED | NONCLUSTERED ]
{ ( column [ ASC | DESC ] [ ,...n ] ) }
[ WITH FILLFACTOR = fillfactor ]
[ ON { filegroup | DEFAULT } ]
Exemple :
CREATE TABLE Test
(Numcli int primary key)
Crer une cl primaire le nom est gnr par le systme
CREATE TABLE Test
(Numcli int constraint PKNumcli primary key clustered)
Crer une cl primaire le nom est PKNumcli et lindex est de type cluster
CREATE TABLE Test
(Nom char (25),
Prenom char (25),
Constraint PKey primary key (Nom,Prenom))
Crer une cl primaire composite
Cl trangre.
Cette contrainte permet de grer lintgrit rfrentielle. La notion de cl trangre
sappuie sur une relation de cl primaire (la table Parent doit avoir une contrainte
Primary Key ou Unique Key pour que la cration de cl trangre puisse se faire).
On ne peut relier une cl trangre qua une cl primaire ou unique.
On peut la crer ou la supprimer avec SQL Server Management ou avec les
commandes Transact-SQL CREATE TABLE ou ALTER TABLE.
Avec SQL Server Management il propose la liste des cls primaires ou contraintes
unique pouvant servir crer une relation.
Dans SQL Serveur, il est possible de crer, de supprimer et de modifier une cl
trangre partir du diagramme de donnes.
SQL Server
61
Avec les commandes Transact-SQL, on utilise les mots Foreign Key et References.
Syntaxe :
[ CONSTRAINT constraint_name ]
FOREIGN KEY
[ ( column [ ,...n ] ) ]
REFERENCES ref_table [ ( ref_column [ ,...n ] ) ]
[ ON DELETE { CASCADE | NO ACTION } ]
[ ON UPDATE { CASCADE | NO ACTION } ]
Exemple :
CREATE TABLE Enfant
(Numcli int References Parent(numcli))
Crer une cl trangre, le nom est gr par le systme faisant rfrence la
colonne Numcli de la table Parent. Cette colonne doit tre une cl primaire ou une
contrainte unique.
CREATE TABLE Enfant
(Numcli int,
Foreign Key (numcli) References Parent(numcli))
CREATE TABLE Enfant
(Nom char(25),
Prenom char(25),
Constraint FKey Foreign Key (Nom,Prenom) References Parent(Nom,Prenom)
On delete cascade)
SQL Server
62
Contrainte UNIQUE
Cette contrainte assure lunicit des lignes comme Primary Key mais accepte les
valeurs NULL. Les colonnes possdant une contrainte unique peuvent servir de
source une relation.
On peut la crer ou la supprimer avec SQL Server Management ou avec les
commandes Transact-SQL CREATE TABLE ou ALTER TABLE.
Avec SQL Server Management, choisir le radio contrainte et non index. Dans le
premier cas, on cre une contrainte unique qui peut tre source dune relation avec
lindex unique non.
SQL Server
63
Syntaxe :
[ CONSTRAINT constraint_name ]
{ UNIQUE }
[ CLUSTERED | NONCLUSTERED ]
{ ( column [ ASC | DESC ] [ ,...n ] ) }
[ WITH FILLFACTOR = fillfactor ]
[ ON { filegroup | DEFAULT } ]
Exemple :
CREATE TABLE Test
(NumComm int unique)
CREATE TABLE Test
(Nom char(25),
Prenom char(25),
Constraint UniNomPren unique clustered (Nom,Prenom))
Crer une contrainte unique composite
Aprs la cration dune contrainte unique, il est impossible de crer des doublons y
compris des valeurs NULL, un seul NULL est autoris.
64
SQL Server
Ajout dune colonne avec une valeur par dfaut. Toutes les lignes existantes dans la
table recevront une valeur par dfaut. La colonne cre naccepte pas la valeur
NULL.
Exemple :
ALTER TABLE Personnel
ADD DateModif datetime not null default getdate()
On ajoute la colonne DateModif la table Personnel et on affecte la date du jour
pour les lignes existantes.
SQL Server
65
Conversion explicite
Conversion implicite
Conversion interdite
Requiert la conversion explicite CAST
SQL Server
66
Pour visualiser les relations existantes entre les tables, slectionner le lien et choisir
proprits.
On peut placer des annotations (commentaires) sur le diagramme. Noublier pas de
sauvegarder le diagramme. On peut imprimer le diagramme.
SQL Server
67
SQL Server
68
DROP_EXISTING |
STATISTICS_NORECOMPUTE |
SORT_IN_TEMPDB
Exemple :
CREATE CLUSTERED INDEX Nom_Pren
ON Personnel (Nom, Prnom)
On cre un index clustered composite de nom Nom_Pren avec les colonnes Nom et
Prnom de la table Personnel
Par dfaut cest le type non clustered.
Index clustered
Il est construit sur une table dont les enregistrements sont tris suivant la cl
dindex. La table est trie pendant la construction de lindex. La particularit est
que le niveau feuille est confondu avec les feuilles de donnes donc inutile davoir
un niveau feuille distinct, la table est trie. Une autre caractristique des index
clustered est que chaque valeur de cl est unique. Si plusieurs valeurs sont
identiques, les cls sont rendues uniques par lajout dune colonne (compteur
interne).
Le fait que la table soit trie nest pas sans consquence pour les performances en
insertion et mise jour. En revanche grce au tri physique des enregistrements la
rcupration de donnes avec la clause between est rapide.
Il ne peut avoir quun index clustered par table.
SQL Server
69
Il ne trie pas les donnes de la table. Cest lindex par dfaut, chaque ligne du
niveau feuille contient une valeur de cl et une rfrence lenregistrement
correspondant.
La rfrence est un numro de ligne sous la forme :
Numro de Fichier : Numro de Page : Numro dEnregistrement
Par exemple 1 :134 :12 ,douzime enregistrement de la page 134 du fichier 1.
Sil existe un index clustered la rfrence est la cl clustered de lenregistrement.
Une fois le niveau feuille atteint la recherche continue dans lindex clustered grce
la cl rcupr dans lindex non clustered.
Exemple :
Soit un index clustered sur le numro client et un index non clustered sur la ville.
Si on recherche les clients Bruxellois, le systme cherche dans lindex non
clustered les numros des clients (rfrence clustered) dont la ville est Bruxelles (cl
non clustered) puis parcours lindex clustered avec les numros obtenus.
La premire opration utilisation de lindex non clustered pour restreindre la
recherche aux clients bruxellois. La deuxime opration est utilisation de lindex
clustered pour piloter la recherche des enregistrements sur le numro de client
Il peut avoir 249 index non clustered par table.
SQL Server
70
On peut crer, modifier des vues soit avec SQL Server Management, soit avec du
code Transact- SQL.
Syntaxe
Syntaxe :
CREATE VIEW [ < database_name > . ] [ < owner > . ] view_name [ ( column [ ,...n ] )
]
[ WITH {ENCRYPTION | SCHEMABINDING | VIEW_METADATA }]
AS
select_statement
[ WITH CHECK OPTION ]
Exemple :
CREATE VIEW vue1
As
Select Nom, Produit, Ville
From Client inner join Commande
On Client.NumCli=Commande.NumCli
Remarque :
La clause with encryption : permet de crypter le code
Schemabinding : les objets sous-jacents sont lis la vue la structure ne peut tre
modifi si la modification un impact sur la vue.
View_metadata : utilis pour optimiser les relations ODBC
Une vue sutilise avec une instruction Select. Les instructions de modification
(Insert, Delete, Update) ne peuvent mettre jour quune seule table sous-jacente. Si
la vue est multi tables Insert et Delete est impossible. Update est admis sil fait
rfrence dans la clause set des colonnes dune mme table.
Impossible de mettre jour et dinsrer des enregistrements dans les colonnes
calcules.
Si la vue ne slectionne pas la totalit des colonnes, linsertion nest possible que si
les colonnes exclues sont NULL ou valeur par dfaut.
SQL Server
71
Avec version prcdente, il fallait pour modifier une vue la supprimer puis la
recrer avec la perte des permissions sur la vue problme de gestion.
Pour modifier une vue, avec SQL Server Management slectionner la vue choisir
loption modifier vue. Avec du code Transact- SQL
Syntaxe :
ALTER VIEW [ < database_name > . ] [ < owner > . ] view_name [ ( column [ ,...n ] ) ]
[ WITH
{ ENCRYPTION | SCHEMABINDING | VIEW_METADATA }]
AS
select_statement
[ WITH CHECK OPTION ]
Exemple :
ALTER VIEW vue1
As
Select Nom, Prnom, Ville, Produit
From client inner join commande
On client.NumCli=Commande.NumCli
Syntaxe :
Syntaxe
CREATE PROC [ EDURE ] procedure_name [ ; number ]
[ { @parameter data_type }
[ VARYING ] [ = default ] [ OUTPUT ]
SQL Server
72
] [ ,...n ]
[ WITH
{ RECOMPILE | ENCRYPTION
| RECOMPILE , ENCRYPTION
}
]
[ FOR REPLICATION ]
AS
sql_statement [ ...n ]
Exemple :
Create proc nouveau_client
As
Create proc commande @commande int
As
Crer une procdure commande avec une variable entire
Utilisation
Lappel dune procdure se fait par le mot cl EXEC[UTE] suivie du nom.Les
procdures ne sont pas recompiles moins de les forcer.
Syntaxe :
[ [ EXEC [ UTE ] ]
{
[ @return_status = ]
{ procedure_name [ ;number ] | @procedure_name_var
}
[ [ @parameter = ] { value | @variable [ OUTPUT ] | [ DEFAULT ] ]
[ ,...n ]
[ WITH RECOMPILE ]
Exemple :
EXEC Commande 4
Modification
Pour modifier une procdure, on peut soit la supprimer et la recrer (perte des
permissions), soit utilis linterface graphique SQL Server Management choisir
loption proprit de la procdure.
Syntaxe :
ALTER PROC [ EDURE ] procedure_name [ ; number ]
[ { @parameter data_type }
[ VARYING ] [ = default ] [ OUTPUT ]
] [ ,...n ]
[ WITH
{ RECOMPILE | ENCRYPTION
| RECOMPILE , ENCRYPTION
}
]
[ FOR REPLICATION ]
SQL Server
73
AS
sql_statement [ ...n ]
Alter proc nouveau_client
As
Exemple :
Alter proc commande @commande int, @code bit
As
Fonctions scalaires
Elle renvoie une seule valeur et accepte jusqu 1024 paramtres. Elle sutilise
comme une fonction systme. Elle peut tre utilise dans une expression, dans un
select, une condition where ou une colonne calcule. Elles sont types sauf les
type : timestamp, table, cursor ou type dfini par lutilisateur.
Syntaxe :
CREATE FUNCTION [ owner_name. ] function_name
( [ { @parameter_name [AS] scalar_parameter_data_type [ = default ] } [ ,...n ] ] )
RETURNS scalar_return_data_type
[ WITH { ENCRYPTION | SCHEMABINDING } [ [,] ...n] ]
[ AS ]
BEGIN
function_body
SQL Server
74
RETURN scalar_expression
END
Exemple :
CREATE Function PTTC (@PHT money,@TVA float)
Returns money
As
Begin
Return @PHT*CAST((1+@TVA)as money)
End
Calcul le prix TTC partir du PHT et du taux de TVA
Select produit, dbo.PTTC(unitprice,0.21) as PPTC from Products
Lappel de la fonction doit tre prcd du nom du propritaire uniquement pour les
fonctions scalaires.
La fonction peut tre aussi utilise dans la cration de table.
Exemple :
CREATE TABLE Produits
( Idproduit int,
Nom char(20),
PHT money,
TVA float,
PTTC as dbo.PTTC(PHT,TVA))
Create function pttc (@pht money,@TypeTVA int)
Returns money
As
Begin
Declare @ TauxTVA float
Declare @ Sortie money
Select @TauxTVA=TauxTVA from TVA where TypeTVA=@TypeTVA
Set @Sortie=@pht*cast((1+@TauxTVA)as money)
Return @Sortie
End
On recherche le taux de TVA dans une table partir du TypeTVA
Fonctions tables
A linverse du type scalaire, elles renvoient plusieurs valeurs sous forme de table. Il
y a deux sous-types les inlines et multi-instructions. Elles peuvent tre utilises
la place dune table ou dune vue dans la clause FROM.
SQL Server
75
Trigger insert.
Sexcute chaque instruction Insert initie par le client, par une procdure ou par
le systme. Lors de linsertion, lenregistrement est insre dans la table destination
et une table temporaire (inserted). Elle nexiste que pendant le temps de linsertion
et de lexcution du trigger. La table disparat lorsque le dclencheur termine son
excution.
La table inserted est utilise pour vrifie la cohrence. Ce type de trigger est utilis
pour la vrification des rgles dintgrit rfrentielle.
Exemple :
Dans une commande le systme vrifie dans la table client que le client existe si
pas de problme, la transaction se termine sinon le trigger annule la transaction
[rollback ]supprime lenregistrement insr.
76
SQL Server
Table Destination
Table Inserted
Trigger delete
Sexcute chaque instruction Delete initie par le client, par une procdure ou
par le systme. Lors dune suppression, lenregistrement est supprim de la table
source et insrer dans une table temporaire (deleted). Elle nexiste que pendant le
temps de la suppression et de lexcution du trigger. La table disparat lorsque le
dclencheur termine son excution.
La table deleted est utilise pour rcuprer les valeurs sil y a lieu. Ce type de trigger
est utilis pour assurer les rgles dintgrit rfrentielle.
Exemple :
Lors de la suppression dun client Le trigger vrifie que le client na pas de
commande si pas de problme, la transaction se termine sinon le trigger annule la
transaction lenregistrement reprend sa place dans la table.
Table Source
Table Deleted
Trigger update
Sexcute chaque instruction Update initie par le client, par une procdure ou
par le systme. Lors de la mise jour, lenregistrement est supprim de la table
source et insrer dans une table temporaire (deleted) alors que le nouvel
enregistrement est insr dans la table destination et la table inserted. Succession
de Delete et Insert.
Le triggers peut tre mis en uvre pour autoriser ou interdire la modification dune
ou plusieurs colonnes par certains utilisateurs.
Tous ces types de dclencheurs sont en mode AFTER, sexcutent aprs que laction
utilisateur a eu lieu. Pas de dclencheur BEFORE comme dans oracle mais un
dclencheur INSTEAD OF.
77
SQL Server
Table Destination
Table Inserted
Table Deleted
SQL Server
78
Cest une simple fentre ou lon lintroduit le code. Il ne figure pas parmi les
dossiers des objets comme les procdures car ils sont associs une table. Pour les
crer, il faut passer par le dossier table, pointer la table et passer par le menu
contextuel.
La syntaxe est plus simple que celle des procdures car pas question de
paramtres. Beaucoup dinstructions ne sont pas autorises dans le code du
trigger : CREATE, ALTER, DROP, GRANT, REVOKE, SELECT INTO,
La syntaxe sapplique aux trois types de dclencheur.
Syntaxe :
CREATE TRIGGER trigger_name
ON { table | view }
[ WITH ENCRYPTION ]
{
{ { FOR | AFTER | INSTEAD OF } { [ INSERT ] [ , ] [ UPDATE ] [ , ] [ DELETE] }
[ WITH APPEND ]
[ NOT FOR REPLICATION ]
AS
sql_statement [ ...n ] }
|
{ { FOR | AFTER | INSTEAD OF } { [ INSERT ] [ , ] [ UPDATE ]}
[ WITH APPEND ]
[ NOT FOR REPLICATION ]
AS
[ { IF UPDATE ( column )
[ { AND | OR } UPDATE ( column ) ]
[ ...n ]
| IF ( COLUMNS_UPDATED ( ) { bitwise_operator } updated_bitmask )
{ comparison_operator } column_bitmask [ ...n ]
}]
sql_statement [ ...n ]
}
}
Exemple :
CREATE TRIGGER inser_commande on commandes
for insert
as
Le trigger sexcute tout seul, linsu de lutilisateur qui a initi linstruction
Update, Insert ou Delete. Dans le cas o un trigger met jour une table qui son
tour lance un autre dclencheur qui 'effet de boule de neige', on est limit 32
niveaux au-del la transaction est annul.
Pour inhiber le dclenchement imbriqu, il faut mettre le paramtre systme nested
triggers faux. Soit via linterface graphique, soit avec la procdure stocke
sp_configure "nested trigger",0.
Le temps dexcution dun trigger est court son code est pr compil et optimis.
Avec les triggers il convient de ne pas en abuser et de se limiter des oprations
simples.
SQL Server
79
80
SQL Server
CHAPITRE 5
LA SAUVEGARDE ET LA RESTAURATION
5.1 Introduction
La sauvegarde occupe une place importante dans les tches dadministration. La
perte dune base de donnes a des rpercussions importantes pour une socit.
Cest une des oprations les plus importantes du systme, mcanisme simple de
sauvegarde et gestion de sauvegarde. Personne nest labri dun crash du disque
dur ou dune mauvaise manipulation.
Sauvegarder quoi ?
Les bases de donnes cres, mais aussi les bases systmes si on fait de la
rplication et les journaux de transactions pour tenir compte des modifications
apportes aux donnes.
Quand ?
Tous les jours ou toutes les semaines cela dpend des bases de donnes, si donnes
frquemment mises jour, de lespace allou au journal de transactions, de la
confiance accorde aux bandes de sauvegarde, le temps de sauvegarde
La base de donnes master est la cl de vote de SQL Serveur.
Exemple :
Plan de sauvegarde incrmental
Dimanche
Lundi
Mardi
Mercredi
Jeudi
Vendredi
Samedi
sauvegarde
sauvegarde
sauvegarde
sauvegarde
sauvegarde
sauvegarde
sauvegarde
81
SQL Server
diffrentielle de la base tous les jours. Lavantage est que la sauvegarde du journal
est plus rapide que celle de la base, sauvegarder le journal et le vider contribue ne
conserver en permanence quun journal de faible volume. La sauvegarde
diffrentielle est plus rapide quune sauvegarde complte.
Exemple :
Plan de sauvegarde diffrentielle et incrmentale
Dimanche sauvegarde complte de la base 12h00
Lundi
sauvegarde du journal de 8h00 20h00 toutes les 2 heures
sauvegarde diffrentielle de la base 22h00
Mardi
Mercredi
Jeudi
Vendredi
Samedi
82
SQL Server
Type de sauvegarde
Modle
FULL
BULK_LOGGED
SIMPLE
Complte
Requis (ou
sauvegarde de
fichiers)
Requis (ou
sauvegarde de
fichiers)
Requis
Diffrentielle
Journal des
transactions
Fichiers /
Fichiers
diffrentiels
Optionnel
Requis
Optionnel
Optionnel
Requis
Optionnel
Optionnel
Interdit
Interdit
SQL Server
83
SQL Server
84
'\\..\Tape1'. Possible de sauvegarder plusieurs bases sur une mme bande ou une
base sur plusieurs bandes.
Unit de disque :
La cration dune unit sur disque se rsume la cration dun fichier local ou
fichier situ dans un rpertoire partag distant. Le fichier nest cr que lors de la
premire sauvegarde.
SQL Server
85
5.7 La sauvegarde
Lorsque les units sont cres, on peut passer la sauvegarde des informations :
Base de donnes complte
Base de donnes en mode diffrentiel
Journal de transactions
Un fichier
SQL Server
86
Groupe de fichier
SQL Server
87
SQL Server
88
sauvegarde est une opration qui ne conserve quun journal de transaction de faible
volume.
La sauvegarde avec linterface graphique se droule comme la sauvegarde dune
base de donnes.
Avec le code Transact- SQL, il est similaire que pour les bases de donnes avec
dautres options spcifiques aux journaux. Lunit de sauvegarde peut tre une
unit existante ou une variable contenant un nom dunit ou nom dunit physique.
Syntaxe :
BACKUP LOG { database_name | @database_name_var }
{ [ WITH { NO_LOG | TRUNCATE_ONLY } ]
TO < backup_device > [ ,...n ]
[ WITH
[ BLOCKSIZE = { blocksize | @blocksize_variable } ]
[ [ , ] DESCRIPTION = { 'text' | @text_variable } ]
[ [ ,] EXPIREDATE = { date | @date_var }
| RETAINDAYS = { days | @days_var } ]
[ [ , ] PASSWORD = { password | @password_variable } ]
[ [ , ] FORMAT | NOFORMAT ]
[ [ , ] { INIT | NOINIT } ]
[ [ , ] MEDIADESCRIPTION = { 'text' | @text_variable } ]
[ [ , ] MEDIANAME = { media_name | @media_name_variable } ]
[ [ , ] MEDIAPASSWORD = { mediapassword | @mediapassword_variable } ]
[ [ , ] NAME = { backup_set_name | @backup_set_name_var } ]
[ [ , ] NO_TRUNCATE ]
[ [ , ] { NORECOVERY | STANDBY = undo_file_name } ]
[ [ , ] { NOREWIND | REWIND } ]
[ [ , ] { NOSKIP | SKIP } ]
[ [ , ] { NOUNLOAD | UNLOAD } ]
[ [ , ] RESTART ]
[ [ , ] STATS [ = percentage ] ]
]
}
Exemple:
BACKUP LOG Mabase to Sauvelog
truncate_only : vide la partie inactive du journal sans la sauvegarder. On perd la
capacit de recharger une sauvegarde de la base et des journaux. Cette option est
utilise lors de test ou de dveloppement. Sauvegarder toujours la base aprs un
Backup Log with truncate_only sinon on ne pourra pas faire dautres Backup Log
no_log : vide la partie inactive du journal mais la transaction Backup Log nest pas
enregistre dans le journal, nenregistre pas le fait que le journal a t vid. Utiliser
lorsque le journal est satur pour continuer travailler
no_truncate : lorsquil y a dfaillance de la base et le journal est accessible. On
sauvegarde le journal et on recharge la base et journal jusquau moment de la
dfaillance.
SQL Server
89
SQL Server
90
5.9 La restauration
La restauration ne peut se faire en production seule, le dbo peut tre connect.
Lors de la restauration, il faut dconnecter tous les utilisateurs.
La restauration de la base de donnes restitue le contenu complet de la base de
donnes. Elle ne doit pas tre en exploitation lors de la restauration. On peut
utiliser linterface graphique ou le code Transact-SQL . Il est possible de consulter le
contenu avant restauration.
SQL Server
91
SQL Server
92
Une fois valide lunit, il est possible de visualiser le contenu de lunit afin de
slectionner la sauvegarde restaurer.
SQL Server
93
Pour obtenir des informations sur lunit de sauvegarde ce qui revient consulter
son en-tte. Soit avec linterface graphique voir prcdemment soit avec linstruction
restore headeronly.
Restauration avec le code Transact-SQL.
Syntaxe :
RESTORE DATABASE { database_name | @database_name_var }
[ FROM < backup_device > [ ,...n ] ]
[ WITH
[ RESTRICTED_USER ]
[ [ , ] FILE = { file_number | @file_number } ]
[ [ , ] PASSWORD = { password | @password_variable } ]
[ [ , ] MEDIANAME = { media_name | @media_name_variable } ]
[ [ , ] MEDIAPASSWORD = { mediapassword | @mediapassword_variable } ]
[ [ , ] MOVE 'logical_file_name' TO 'operating_system_file_name' ]
[ ,...n ]
[ [ , ] KEEP_REPLICATION ]
[ [ , ] { NORECOVERY | RECOVERY | STANDBY = undo_file_name } ]
[ [ , ] { NOREWIND | REWIND } ]
[ [ , ] { NOUNLOAD | UNLOAD } ]
[ [ , ] REPLACE ]
[ [ , ] RESTART ]
[ [ , ] STATS [ = percentage ] ]
]
Exemple :
RESTORE DATABASE Mabase from SauveBase
SQL Server
[
[
[
[
[
[
[
[
[
[
94
, ] { NOREWIND | REWIND } ]
, ] { NOUNLOAD | UNLOAD } ]
, ] RESTART ]
, ] STATS [= percentage ] ]
, ] STOPAT = { date_time | @date_time_var }
| [ , ] STOPATMARK = 'mark_name' [ AFTER datetime ]
| [ , ] STOPBEFOREMARK = 'mark_name' [ AFTER datetime ]
]
]
Exemple :
RESTORE LOG Mabase from SauveLog
On a une sauvegarde du journal le mardi 21h00 et on veut revenir ltat dans
lequel la base tait 12h45 le mardi. On restore la sauvegarde de la base du
dimanche par backup database, on restaure le journal du lundi par un backup log
et on restaure celui du mardi avec loption with stopat 'date heure'
SQL Server
[
[
[
[
[
[
[
[
[
[
,
,
,
,
,
95
] { NOREWIND | REWIND } ]
] { NOUNLOAD | UNLOAD } ]
] REPLACE ]
] RESTART ]
] STATS [ = percentage ] ]
]
Il est possible de restaurer partiellement une base de donnes. Lintrt rside de ne
pas restaurer lintgralit de la base si lon souhaite accder qu un sousensemble des donnes.
Syntaxe :
RESTORE DATABASE { database_name | @database_name_var }
< file_or_filegroup > [ ,...n ]
[ FROM < backup_device > [ ,...n ] ]
[ WITH
{ PARTIAL }
[ [ , ] FILE = { file_number | @file_number } ]
[ [ , ] PASSWORD = { password | @password_variable } ]
[ [ , ] MEDIANAME = { media_name | @media_name_variable } ]
[ [ , ] MEDIAPASSWORD = { mediapassword | @mediapassword_variable } ]
[ [ , ] MOVE 'logical_file_name' TO 'operating_system_file_name' ]
[ ,...n ]
[ [ , ] NORECOVERY ]
[ [ , ] { NOREWIND | REWIND } ]
[ [ , ] { NOUNLOAD | UNLOAD } ]
[ [ , ] REPLACE ]
[ [ , ] RESTRICTED_USER ]
[ [ , ] RESTART ]
[ [ , ] STATS [= percentage ] ]
]
5.11 Automatisation
SQL Serveur met disposition un gestionnaire de tches automatises. Il y a deux
moyens dautomatiser la sauvegarde.
Crer un travail qui excute un backup database ou un log partir de la
fentre sauvegarder la base de donnes.
SQL Server
96
Un travail planifi se compose dun nom, dune catgorie, dune tape et dune
planification.
Donner un nom et une catgorie au nouveau travail.
SQL Server
97
SQL Server
98
99
SQL Server
CHAPITRE 6
CONNEXIONS ET SCURIT
SQL Serveur propose divers niveaux de protection des donnes. Protger laccs au
serveur en fonction du profil, lutilisateur aura ou non accs certaines bases de
donnes. A lintrieur dune base de donnes, il naura pas forcment le loisir
daccder et de modifier les informations.
SQL Server
100
Chaque utilisateur a un nom (le mme que son nom de connexion sauf dbo), un
identifiant systme permet dtablir une relation unique avec master..sysxlogins
(sid) et un identifiant dutilisateur (userid ou uid) servant la relation avec la table
des droits (sysprotects). On rentre dans la base que sil existe une relation entre
sysusers et sysxlogins.
Pour connatre les noms de connexion disponibles sur un serveur utiliser la
procdure sp_helplogins ou cliquer sur le dossier connexions de SQL Server
Management.
Le ticket dentre la base de donnes consiste en un nom de connexion et un nom
dutilisateur.
SQL Server
101
Connexions
Les noms de connexion sont stocks dans la table sysxlogins. Les colonnes 'dbid' et
'langage' personnalisent laccs au systme (identifie la langue de lutilisateur
connect ce qui permet pour une mme application de retourner des messages dans
des langues diffrentes). Dbid dfinit une base de donnes par dfaut pour un
utilisateur, il sera plac automatiquement dans cette base lors de la connexion.
Cration dun nom de connexion avec linterface graphique.
Ouvrir le dossier scurit
Slectionner connexions dans ce dossier, il y a les noms de connexion dfinis
sur le systme
Choisir nouvelle connexion, on peut au mme moment crer les noms
dutilisateur et dfinir les rles auquel appartient le compte de connexion
SQL Server
102
SQL Server
103
En code Transct-sql
La cration dun compte de connexion nentrane pas la cration du nom utilisateur
associ. Il y a deux procdures pour crer un compte de connexion :
Pour un compte authentifi par le SQL Serveur sp_addlogin
Pour un compte authentifi par Windows sp_grantlogin
Syntaxe :
sp_addlogin [ @loginame = ] 'login'
[ , [ @passwd = ] 'password' ]
[ , [ @defdb = ] 'database' ]
[ , [ @deflanguage = ] 'language' ]
[ , [ @sid = ] sid ]
[ , [ @encryptopt = ] 'encryption_option' ]
Exemple :
sp_addlogin 'garcia', 'garcia','gestion',null
Cette procdure cre un compte 'garcia' avec mot de passe 'garcia', base par dfaut
'gestion' et la langue est par dfaut celle du serveur.
sid : force lutilisation dun identifiant particulier. Paramtre utilis pour transfrer
des comptes dun serveur un autre et de garder le mme identifiant
0x0123456789
encryptopt : d active le cryptage du mot de passe skip_encryption
Exemple :
EXEC sp_addlogin Margaret, Rose
SELECT CONVERT(VARBINARY(32), password)
FROM syslogins
WHERE name = 'Margaret'
0x2131214A212B57304F5A552A3D513453
SQL Server
104
Syntaxe :
sp_grantlogin [@loginame =] 'login'
Exemple :
sp_grantlogin 'isib/garcia'
Ce nest pas possible de prciser une base et une langue par dfaut (base Master et
langue du systme serveur) pour modifier, utiliser la procdure sp_defaultdb et
sp_defaultlanguage.
Syntaxe :
sp_defaultdb [ @loginame = ] 'login' ,
[ @defdb = ] 'database'
sp_defaultlanguage [ @loginame = ] 'login'
[ , [ @language = ] 'language' ]
Exemple :
sp_defaultdb 'isib/garcia','gestion'
sp_defaultlanguage 'isib/garcia','french'
SQL Server
105
SQL Server
106
Rle serveur
Ces rles sont qualifis de fixe, car impossible : de supprimer, de modifier,
dajouter. Leur but est daccorder des utilisateurs des droits dadministration
limits du serveur.
Il existe neuf rles serveur.
bulkadmin
dbcreator
diskadmin
processadmin
public
securityadmin
serveradmin
setupadmin
sysadmin
SQL Server
107
SQL Server
108
Owner : membres ont tous les droits sur les objets de la base
Public : rle auquel appartiennent tous les utilisateurs de la base, personne
ne peut tre enlev de ce rle
Securityadmin : membres grent les rles et les autorisations sur les objets
de la base
En plus de public, un utilisateur peut appartenir plusieurs autres rles.
SQL Server
109
SQL Server
110
Syntaxe :
sp_addrole [ @rolename = ] 'role'
[ , [ @ownername = ] 'owner' ]
Exemple :
EXEC sp_addrole 'Managers'
On peut aussi utilis : sp_addgroup [ @grpname = ] 'group'
Le remplissage du rle
Syntaxe :
sp_addrolemember [ @rolename = ] 'role' ,
[ @membername = ] 'security_account'
Exemple:
sp_addrolemember 'Engineering', 'Michael'
On peut aussi utilis :
sp_changegroup [ @grpname = ] 'role'
, [ @username = ] 'user'
sp_changegroup 'developers', 'Albert'
Rappel, un utilisateur qui nest pas intgrer un rle appartient Public la
procdure sp_addrolemember permet de le faire entrer dans un nouveau rle en
plus de Public. Pour changer un utilisateur de rle, il faut laffecter au nouveau rle
et
le supprimer
de lancien ceci ce fait en utilisant la procdure
sp_droprolemember.
Syntaxe :
sp_droprolemember [ @rolename = ] 'role' ,
[ @membername = ] 'security_account'
Exemple :
sp_droprolemember 'Sales', 'Jonb'
Supprimer un rle
Il faut tout abord supprimer tous les membres du rle, le rle ne doit pas contenir
dutilisateur sinon une erreur est donne. Avec linterface graphique, slectionner le
rle supprimer, choisir supprimer le rle. Le rle est supprim de la table
sysusers de la base.
Avec le code Transact-SQL, utiliser la procdure sp_droprole.
Syntaxe :
sp_droprole [ @rolename = ] 'role'
Ou
sp_dropgroup [ @rolename = ] 'role'
SQL Server
111
112
SQL Server
Autorisations dinstruction
Les autorisations dinstruction agissent sur :
create database
create table
create view
create procedure
create function
create default
create rule
backup database
backup log
Seul un administrateur systme peut transmettre le droit de crer des bases de
donnes.
Pour donner des autorisations dinstruction aux utilisateurs dune base de donnes,
choisir la base, choisir proprits dans la fentre, slectionner longlet
autorisations.
On trouve la liste des rles symboliss par une cl et des utilisateurs de la base de
donnes, il ne reste plus qu donner ou retirer des droits.
Marqueur de case
Vide
Coche noire
Croix rouge
Signification
Pas dautorisation
Autorisation accorde
Autorisation enleve
Remarque : loption crer une base de donnes napparat que dans la base Master
un utilisateur ne peut crer une base de donnes que sil est membre de la base
Master.
Il est possible de donner ou retirer des droits avec le code Transact_SQL. Avec le
mot cl all toutes les instructions dautorisations sont ajoutes, enleves ou
rvoques. Si on donne des droits Public tous les utilisateurs sont concerns par
ces attributions.
SQL Server
113
Syntaxe :
GRANT { ALL | statement [ ,...n ] }
TO security_account [ ,...n ]
GRANT CREATE DATABASE, CREATE TABLE
TO Mary, John, [Corporate\BobJ]
Autorisation dobjet
Il sapplique la manipulation dobjets. Donne des utilisateurs ou des rles des
droits dutilisation des tables, vues et procdures.
Affectation des autorisations dobjet par utilisateur
Avec linterface graphique SQL Server Management,
Slectionner le serveur, la base de donnes puis le dossier rles ou
utilisateurs
Choisir le rle ou utilisateur souhait
Slectionner proprits, choisir autorisations.
La fentre apparat, choisir les droits.
SQL Server
114
Pour les tables, il est possible de descendre au niveau de la colonne, avec linterface
SQL Server Management,
Choisir la table dans la fentre proprits cliquer sur les colonnes
Donner des autorisations dobjet avec Transact-sql. La syntaxe est identique aux
autorisations dinstruction.
SQL Server
Syntaxe :
GRANT
{ ALL [ PRIVILEGES ] | permission [ ,...n ] }
{
[ ( column [ ,...n ] ) ] ON { table | view }
| ON { table | view } [ ( column [ ,...n ] ) ]
| ON { stored_procedure | extended_procedure }
| ON { user_defined_function }
}
TO security_account [ ,...n ]
[ WITH GRANT OPTION ]
[ AS { group | role } ]
Exemple:
GRANT INSERT, UPDATE, DELETE
ON authors
TO Mary, John, Tom
Syntaxe:
DENY
{ ALL [ PRIVILEGES ] | permission [ ,...n ] }
{
[ ( column [ ,...n ] ) ] ON { table | view }
| ON { table | view } [ ( column [ ,...n ] ) ]
| ON { stored_procedure | extended_procedure }
| ON { user_defined_function }
}
TO security_account [ ,...n ]
[ CASCADE ]
Exemple :
DENY SELECT, INSERT, UPDATE, DELETE
ON authors
TO Mary, John, Tom
Syntaxe :
REVOKE [ GRANT OPTION FOR ]
{ ALL [ PRIVILEGES ] | permission [ ,...n ] }
{
[ ( column [ ,...n ] ) ] ON { table | view }
| ON { table | view } [ ( column [ ,...n ] ) ]
| ON { stored_procedure | extended_procedure }
| ON { user_defined_function }
}
{ TO | FROM }
security_account [ ,...n ]
[ CASCADE ]
[ AS { group | role } ]
Exemple :
REVOKE SELECT ON Budget_Data TO Mary
115
SQL Server
116
SQL Server
117
Modes de scurit.
Il existe deux types dauthentification
Celle de SQL Serveur dite sans confiance : lutilisateur indique son nom et
mot de passe qui sont valids par SQL Serveur indpendamment de son
profil de connexion Windows.
Lautre Windows dite avec confiance, SQL Serveur rcupre les informations
didentification de la connexion dans la base de comptes de Windows et
vrifie par rapport sa propre base de comptes. A aucun moment
lutilisateur ne sidentifie par rapport SQL Serveur.
On est en mode de scurit mixte. Si on change de mode il faut redmarrer le
serveur SQL pour que le nouveau mode entre en action il y a deux mode de
scurit :
Pour connatre le mode de connexion, ouvrir une fentre de requte sous la base
Master et excuter la procdure exec xp_loginconfig.
SQL Server
118
Lauthentification SQL Serveur nest possible quen mode mixte dans lequel laccs
peut tre tabli avec ou sans confiance. Le droulement du mode mixte dpend des
renseignements transmis dans la boite de connexion :
Si le client tape des informations dans la boite de connexion, SQL Serveur
vrifie la paire nom de connexion et mot de passe dans la table sysxlogins.
SQL Serveur est en mode sans confiance.
Si le client laisse la boite vide SQL Serveur passe en mode avec confiance et
demande le nom de lutilisateur Windows.
SQL Server
119
120
SQL Server
CHAPITRE 7
RCUPRATION & MISE JOUR
DE DONNES DISTRIBUES
SQL Serveur offre des moyens pour daccder des donnes sur des :
SQL Serveur locaux,
Stockes sur dautres plates-formes SQL Serveur,
Des formats trangers SGBDR
Des systmes de fichiers
121
SQL Server
SQL Serveur
OLE-DB
Fournisseur OLE-DB
Fournisseur OLE-DB
pour ODBC
ODBC
Pilote ODBC
Serveur de donnes
Serveur de donnes
Les paramtres :
Nom fournisseur (fournisseur OLE-DB employ pour ce serveur)
Nom produit (informatif nom du logiciel de donnes)
Source de donnes : nom de la source laquelle on souhaite se connecter
o pour Access fichier *.mdb,
o pour Oracle nom de lalias SQL.NET
Chane du fournisseur (facultatif,)
Emplacement (facultatif)
Catalogue (facultatif)
122
SQL Server
SQL Serveur ne vrifie pas laccs au serveur lors de la cration, mais lutilisation
pour vrifier si les paramtres sont les bons, ouvrir le dossier du serveur li et
cliquer sur son dossier tables. Si la liste des tables apparat, cest que la connexion
est tablie.
On peut dfinir un serveur li avec la procdure sp_addlinkedserver.
Syntaxe :
sp_addlinkedserver [ @server = ] 'server'
[ , [ @srvproduct = ] 'product_name' ]
[ , [ @provider = ] 'provider_name' ]
[ , [ @datasrc = ] 'data_source' ]
[ , [ @location = ] 'location' ]
[ , [ @provstr = ] 'provider_string' ]
[ , [ @catalog = ] 'catalog' ]
Nom des fournisseurs OLE-DB
SQL Serveur
SQLOLEDB
Oracle
MSDAORA
Access/Jet
Microsoft.Jet.OLEDB.4.0
MSDASQL
Systme de fichiers
MSIDXS
Feuilles
Excel.
de
calcul
Microsoft Microsoft.Jet.OLEDB.4.0
DB2OLEDB
SQL Server
123
Avec DSN :
Crer un DSN Systme (qui est indpendant de la connexion et de lemplacement de
stockage des informations) laide de ladministrateur de source de donnes ODBC.
Une fois dfinie on peut se servir du DSN dans SQL Server Management.
Crer un nouveau serveur li, choisir fournisseur OLE-DB pour ODBC et fournir le
nom de la source de donnes.
Sans DSN :
Les informations dun DSN font rfrences :
Au pilote,
Au nom du serveur,
A la base de donnes
Aux informations de scurit
Une chane de connexion ODBC sont ces paramtres spares par (;)
Exemple :
Driver=nom_pilote;server=nom_serveur;database=nom_base;
uid=nom_utilisateur;pwd=mot_passe
Pour connatre le pilote, il suffit de rcuprer le nom du pilote dans la chane de
connexion ODBC sans crer un DSN.
La liste de tous les pilotes se trouve dans :
\HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBCINST.INI
SQL Server
124
Il y a des options pour les serveurs lis, on peut les activer avec SQL Server
Management ou avec la procdure sp_serveroption
Syntaxe :
sp_serveroption [@server =] 'server'
,[@optname =] 'option_name'
,[@optvalue =] 'option_value'
Il est remarquer quil y a aussi des options pour le fournisseur OLE-DB
SQL Server
125
En utilisant la procdure
sp_addlinkedsrvlogin [ @rmtsrvname = ] 'rmtsrvname'
[ , [ @useself = ] 'useself' ]
[ , [ @locallogin = ] 'locallogin' ]
[ , [ @rmtuser = ] 'rmtuser' ]
[ , [ @rmtpassword = ] 'rmtpassword' ]
Remarque si on a plac une scurit sur la base Access, il faut mettre en
correspondance les comptes de connexion SQL Serveur avec les utilisateurs
dclars sous Access avec la procdure prcdente ou avec SQL Server
Management.
SQL Serveur :
Serveur.BaseDeDonnees.Proprietaire.Table
Serveur.BaseDeDonnees.Proprietaire.Vue
Serveur.BaseDeDonnees.Proprietaire.Procedure
Avec Access :
ServeurTable
ServeurRequte
Avec Excel :
Serveurfeuille$
Serveurnom_plage_nomme
SQL Server
Avec Oracle
Serveur..proprietaire.table
126
SQL Server
127
CHAPITRE 8
IMPORTATION ET EXPORTATION DE DONNEES
Limportation et lexportation sont des procds trs importants qui permettent de
charger dans un serveur des donnes en provenance dune source extrieure. Cela
permet de faire fonctionner un systme dinformations constitu de plusieurs
serveurs et de sources htrognes.
8.1 BCP
Lutilitaire BCP (Bulk Copy Program) permet de crer des fichiers dexport pour une
importation en mode BULK INSERT.
Cest la mthode la plus rapide et la plus simple dimporter et dexporter des fichiers
textes. Exploitable en mode ligne de commande. Les paramtres sont sensibles la
casse.
BCP est limit la transformation de donnes complexes et la gestion des erreurs
Ce systme est beaucoup moins convivial et surtout moins souple que DTS.
errs max]
[-f format fich.]
[-e fichier err]
prem ligne] [-L dern ligne]
[-b taille lot]
type orig]
[-c type caract]
[-w type caract larg]
spcif page de code] [-t indic fin champ] [-r indic fin ligne]
fich entre] [-o fich sortie]
[-a taille paquet]
nom serveur] [-U nom utilisateur] [-P mot passe]
connexion approuve] [-v version] [-R rgional activ]
conserv valrs nulles] [-E conserv valrs identit]
"conseils chargmnt"]
[-q identif entre guillem]
conserv car nontexte orig] [-Version de format de fichier V]
SQL Server
128
Exemple :
BCP pubs..authors out c:\auteur.txt -c Splutonsql Usa P
-c : mode caractre, le champ est converti en type char
-n : mode natif les champs conserve leur type
-w : unicode les champs convertient en type nchar
-t : sparateur de champ caractre doit tre mis entre guillemets sil sagit dun
caractre imprimable ( t" ;" , \t :tabulation)
-r sparateur denregistrements \n retour la ligne
En utilisant le mode caractre ou unicode il est possible de rcuprer le fichier par
Excel, Word.
BCP pubs..authors out c:\auteur.txt -c Splutonsql T
Avec une authentification NT/2000
BCP pubs..authors out c:\auteur1.txt w t" ;" r\n Splutonsql T
129
SQL Server
Il est possible de crer un fichier de format et lutiliser avec un fichier source pour
importer les donnes vers une base de donnes.
130
SQL Server
SOURCE
OLE-DB
DESTINATION
OLE-DB
Pompe donnes
SQL Server
131
Mise en place
Clic droit sur une base puis slectionnez toutes les tches on aperoit loption
importer des donnes et exporter des donnes.
SQL Server
132
On choisit les tables sources et leur destination. Si la table destination nexiste pas
elle est ensuite cre automatiquement.
Davantage doptions sont accessibles depuis longlet transformer, cela permet par
exemple de configurer les types des colonnes lorsque lon importe depuis un fichier
texte.
SQL Server
133
Tous les choix tant effectus, nous pouvons procder une excution immdiate, ou
enregistrer le tout dans un lot que lon pourra excuter plus tard.
SQL Server
134
SQL Server
135
136
SQL Server
CHAPITRE 9
LA RPLICATION
La rplication est un mcanisme asynchrone de transfert de donnes entre les
serveurs. A linverse des transferts synchrones des serveurs lis ou distants.
Le principe de la rplication est de mettre disposition des donnes sur plusieurs
serveurs afin de faciliter laccs.
Serveur de
Publication
Serveur de
Distribution
Serveur
dAbonnement
(Editeur)
(Distributeur)
(Abonn)
Editeur
Distributeur
Abonn
SQL Server
137
9.1 La distribution
La premire tape mettre en uvre pour la rplication est de crer le distributeur
qui contient la base de distribution. Quand on installe un distributeur gard en
prsence le nom du serveur, elle apparat dans chaque bote de dialogue.
Rplication,
Choisir configurer la distribution
SQL Server
138
SQL Server
139
SQL Server
140
SQL Server
141
SQL Server
142
Rplication
Choisir configurer la publication
SQL Server
143
9.4 La publication
Il faut disposer dun distributeur et configurer une machine en tant quditeur.
Les articles sont lentit de base de la publication, un article peut-tre :
Une table, une projection, une slection, un objet (procdure, vue, fonction dfinie).
Un ensemble darticles constitue une publication.
Outils, rplication
Choisir configurer la publication, la distribution et les abonns
Ou laide de lassistant configuration de publication et de distribution.
SQL Server
144
9.5 Publications
Les publications sont les informations publies. La premire opration est dactiver
le type de rplication autorise
pour la base
rpliquer. Sous le terme
transactionnel se cache le terme capture direct. La fentre des publications donne
la liste des bases pour la publication.
Des quune base est active pour la rplication, elle apparat dans larborescence
avec une main de partage.
La cration dune publication se fait laide de lassistant cration de publication :
Outils, rplication, nouvelle, publication
Ou avec lassistant cration de publication
Ou choisir base de donnes, nouvelle, publication
SQL Server
145
Dans les deux premiers cas, il faut choisir la base de donnes pour la publication.
Dans le dernier cas, la base est choisie et lassistant dmarre.
SQL Server
146
La seconde question est la mise jour des abonns (pour les ditions Serveur et
Entreprise)
Le type dabonns la publication est le format dexportations des donnes pour les
abonns. Pour des abonns SQL Serveur le format est natif SQL Serveur pour des
abonns Access et Oracle le format est ASCII.
Choisir le ou les articles faisant partie de la publication : par dfaut la liste propose
que les tables. Si on dsire rpliquer les procdures ou les vues cocher la case.
Choisir les objets faisant partie de la publication.
SQL Server
147
SQL Server
148
SQL Server
149
Expiration de labonnement
Cette option se trouve dans longlet gnral. Quand un serveur sabonne une
publication il doit synchroniser les articles. La dure dexpiration indique le dlai au
del duquel lagent de distribution pour cet abonn choue.
Utilisateurs autoriss
Les utilisateurs autoriss sabonner une publication sont cits dans longlet
liste daccs aux publications. Cette liste doit contenir au moins les comptes
susceptibles de crer des abonnements partir de la publication et celui du service
SQL Server Agent. Par dfaut, un agent fonctionne en mode authentification
Windows avec le compte du service SQL Server Agent.
SQL Server
150
Articles
Larticle est lentit de base de la publication. Pour crer un article, la table sousjacente doit comporter une cl primaire. La procdure stocke sp_addarticle cre
des articles dont la table ne possde pas de cl primaire uniquement pour des
publications par capture instantane ou par fusion.
Exemple :
sp_addarticle 'gestion','clients','clients',@force_invalidate_snapshot =1
Un article possde certaines proprits :
Un nom
Une description
Un nom de destination
Une slection de colonnes
Condition de restriction
Une procdure qui remplace les commandes : insert, delete, update
Un script pour la synchronisation
Filtres sur les lignes permet dcrire les clauses de restrictions sur les tables. On
choisit la table et on complte la clause.
SQL Server
151
9.6 Labonnement
Labonnement consiste demander la distribution de certaines informations
rpliques. Il peut tre demand par labonn, abonnement extrait (pull
subscription) ou provoqu par lditeur : abonnement envoy (push subscription)
On peut sabonner une publication complte ou un article particulier.
Abonnement extrait
Lintrt de labonnement extrait est que lon a le choix des abonnements partir
dun diteur, cest labonn qui travaille les travaux de distribution se trouvent sur
labonn.
Pour sabonner :
Outils rplication,
Choisir extraire un abonnement pour nom_serveur
Ou utiliser lassistant cration dun abonnement extrait
Pour un nouvel abonnement lassistant extraction dmarre.
SQL Server
152
SQL Server
153
SQL Server
154
SQL Server
155
Cration de labonnement
Une bote de dialogue saffiche et indique que la tche sest bien droule,
labonnement est prt tre synchronis.
SQL Server
156
Un diteur peut forcer labonnement dun serveur. La dmarche est la mme que
par abonnement extrait.
Outils rplication, publications
Slectionner la publication
Choisir envoyer un nouvel abonnement
Utiliser lassistant cration dun abonnement envoy.
Dans le premier cas, on devra crer une nouvelle publication
Dans le deuxime cas, on devra indiquer la publication envoyer. Slectionner la
publication ou lon souhaite abonner un serveur puis cliquer sur envoyer un
nouvel abonnement.
Remarque :
La distribution la demande nest pas possible normal la distribution est initie par
le distributeur.
SQL Server
157
Il ajoute ou sil elle existe une colonne de type rowguid et cre un index sur
cette colonne et sen sert pour suivre les nouvelles insertions sur lditeur et
les abonns
Ct abonn
Larrt de la rplication cte abonn consiste supprimer ses abonnements. On ne
peut supprimer que les abonnements extraits. Se placer sur labonn ouvrir dossier
SQL Server
158
Ct diteur
Dans le cas dabonnements envoys, on se place sur lditeur ouvrir dossier
publications de la base publi proprits onglet abonnement, slectionner
labonnement supprimer.
On supprime ensuite les publications
outils rplication crer et grer les
publications, slectionner les publications et supprimer. Cela annule les
publications mais ne met pas en cause le rle de lditeur. Pour supprimer le rle de
lditeur se placer sur distributeur et choisir outils rplication configurer la
publication de la distribution et les abonnes onglet diteurs dcochez la case
SQL Serveur propose de supprimer les publications et les abonnements en suspens.
Ct distributeur
Abonns et diteur supprims, dsactiver la distribution. Outils rplications
dsactiver la publication.
159
SQL Server
CHAPITRE 10
SQL PROFILER
10.1 SQL Profiler
Le gnrateur de profils (SQL Profiler) sinsre entre les clients et un serveur donn.
Il intercepte toutes les requtes envoyes par les clients au serveur et les stocke
dans un fichier ou une table ou bien les renvoie la console.
SQL
Filtre
Gnrateur
de profils
SQL
SQL
Serveur
Donnes
Console ou
Fichier
SQL Server
160
Une trace est enregistre (si on le souhaite) dans un fichier ( *.trc) ou une table
dune base de donnes, dans lesquels sont inscrites les instructions interceptes
entre le client et le serveur, pour une analyse ultrieure.
SQL Server Profiler vous propose de nouvelles mthodes pour limiter une trace.
Vous avez galement accs plusieurs vnements trace. Vous pouvez y accder en
crant une trace et en cliquant sur l'onglet vnements.
Le gnrateur de profils (SQL Profiler) va beaucoup plus loin que SQL Trace en ce
sens quil permet :
la cration et lutilisation de nombreux filtres
le regroupement de multicritres
la sauvegarde, dans une table ou un fichier, des traces ou des seules
instructions reues
lanalyse des instructions contenues dans une procdure stocke.
Vous vous servirez de SQL Profiler comme une source de loptimiseur dindex, pour
reprer les requtes les plus lentes, identifier les processus bloquants ou encore
enregistrer la charge de travail dun serveur.
SQL Server
161
CHAPITRE 11
DVELOPPER UNE APPLICATION SQL SERVEUR
11.1 Introduction
ASP (Active Server Page) est un standard de Microsoft qui permet de dvelopper des
applications Web interactives, c'est--dire dont le contenu est dynamique.
Une page Web ASP (dont lextension est .asp) aura un contenu pouvant tre
diffrent selon certains paramtres (des informations stockes dans une base de
donnes, les prfrences de l'utilisateur, ...) tandis que page Web dite classique
(dont l'extension est .htm ou .html) affichera continuellement la mme information.
ASP est un langage de script puissant, il fait partie des langages interprts (comme
le Basic et le JavaScript), excut du ct du serveur (tout comme les scripts CGI,
PHP, ...) et non du ct client (les scripts crits en JavaScript ou les applets Java
s'excutent dans le navigateur de la personne connecte un site).
Les ASP sont intgrables au sein d'une page Web en html l'aide de balises
spciales permettant au serveur Web de savoir que le code, compris l'intrieur de
ces balises, doit tre interprt afin de renvoyer du code html au navigateur du
client.
Ainsi, les Active Server Pages s'inscrivent dans une architecture 3-tier, ce terme
compliqu signifie qu'un serveur supportant les Active Server Pages peut servir
d'intermdiaire entre le navigateur du client et une base de donnes en permettant
un accs transparent celle-ci grce la technologie ADO (ActiveX Data Object),
qui fournit les lments ncessaires la connexion au systme de gestion de bases
de donnes, la manipulation des donnes grce au langage SQL.
Aujourdhui, Il est facile de crer des pages Web. Il existe de nombreux outils
capables de crer automatiquement des pages simples ou des sites complets
(FrontPage, en est un exemple).
Mais lorsquon saventure au-del des concepts de base, les choses se compliquent,
notamment pour maintenir les informations jourIl faut essayer dautomatiser
cette tche au maximum.
Une solution : utiliser conjointement les bases de donnes et les techniques de
publication html.
De manire gnrale, maintenir une prsence sur le Web est une tche difficile. En
effet, crer et animer un site Web demande beaucoup de temps et dnergie et, en
rgle gnrale, des moyens financiers importants.
SQL Server
162
163
SQL Server
CHAPITRE 12
LES PAGES WEB DYNAMIQUES
12.1 Cration
Il faut trouver le moyen de connecter la base de donnes au Web afin de crer
dynamiquement chaque page en utilisant les donnes stockes dans la base.
En thorie, il suffit de relier simplement le serveur Internet la base de donnes de
sorte quil renvoie le contenu de la base sur demande. Ainsi lutilisateur, qui ouvre
une page Web, visualise les dernires valeurs des enregistrements de la base de
donnes.
Dun pont entre les deux, ce pont est cr avec une application Internet.
SQL Server
164
Microsoft dbWeb
DLL OLEISAPI
Scripts Server ActiveX
12.5 Caractristiques
Active Server Page est la dernire technologie propose par Microsoft pour
construire des pages Web agrables, dynamiques et interactives destination dun
site World Wide Web (www) ou Intranet.
Cest exactement ce quil faut pour attirer lattention des visiteurs et des
annonceurs publicitaires.
Par rapport aux mthodes traditionnelles, les ASP sont puissantes et
relativement faciles mettre en uvre. Il sagit en fait dune technologie
attrayante qui rend nombre de mthodes antrieures obsoltes.
Cest une technologie qui noblige pas les concepteurs abandonner leurs
anciennes applications (IDC, CGI, ).
SQL Server
165
Compatibilit avec les autres technologies, ce qui est pratique pour un site en cours
de migration vers ASP.
SSI (Server-side Includes) est un terme gnrique utilis pour dcrire la faon dont
les lments peuvent tre insrs dans une page Web.
On peut, par exemple, crer un fichier texte contenant une fraction de code
frquemment utilis, puis linsrer dans une page Web avec une instruction SSI.
SQL Server
166
Le code source de la page html est identique celui du fichier stock sur le disque
dur du serveur.
167
SQL Server
CHAPITRE 13
ASP, CE QUI FAIT LA DIFFRENCE
13.1 Les balises dune page ASP
<HTML>
<HEAD>
</HEAD>
<BODY>
<%%>
<SCRIPT LANGUAGE= >
</SCRIPT>
<SCRIPT LANGUAGE= RUNAT=SERVER>
SQL Server
168
Tout ce qui tait impossible faire en script ou trop long excuter peut tre
remplac par lutilisation dun objet crit dans tout autre langage.
Les objets crs en vue dune telle utilisation sont gnralement appels composant
Active Server.
169
SQL Server
CHAPITRE 14
INSTALLER ACTIVE SERVER PAGE
Active Server Pages est une des composantes essentielles de Microsoft. Il est apparu
ds les versions 3.0 et 4.0 dInternet Information Server (IIS), le serveur Web intgr
au systme dexploitation Windows NT Server 4.
Nanmoins, dans le cas de NT Server 4, il est ncessaire de disposer du Service
Pack 2 ou 3.
Mais ASP fait aussi partie des dernires versions des serveurs Web associs
Windows NT Workstation 4 (Peer Web Services) et Windows 95 (Personal Web
Server).
Pour utiliser ASP, il faut d'abord installer sur votre PC IIS (Windows 2000 ou XP
pro) ou le Personal Web Server (Win 95, 98, Me ou XP) : il est sur votre CD Windows
ou tlchargeable ! (22.73 Mo)
Tout va dpendre de votre systme dexploitation :
Win 95
EasyPHP
Non disponible
Win 98
PWS sur le CD
EasyPHP
Non disponible
Win Me
EasyPHP
Non disponible
IIS5 sur le CD
.NET Framework
Win XP
IIS
EasyPHP
Win XP Pro
IIS5 sur le CD
EasyPHP
ou IIS5 & PHP
.NET Framework
WinServer 2003
IIS6
IIS6
Mac OS
Emulation iASP
Explications
sur PHP.net
???
Unix/Linux
SQL Server
170
14.2 Aperu
Pour configurer le serveur, direction le Panneau de configuration
/Outils d'administration/Gestionnaire des Services Internet !
La version d'IIS5 fournie avec Win2000 PRO ne gre qu'un site Web, contrairement
SQL Server
171
la version SERVER qui permet de grer plusieurs sites Web sur une seule et
mme machine. Sur la capture d'cran, nous n'avons alors qu'un seul site Web,
celui par dfaut d'administration, comme vu prcdemment. Nous avons des
Rpertoires virtuels , cest--dire des pointeurs sur des rpertoires qui ne sont
pas dans le chemin par dfaut c:\inetpub\wwwroot\, par exemple mon rpertoire
DL qui se trouve sur mon bureau sera accessible via http://localhost/DL/;
ensuite les rpertoires et les fichiers normaux se trouvant eux directement dans
le chemin par dfaut du serveur.
SQL Server
172
Si l'on clique sur 'Configuration', on peut paramtrer la dure d'une session (20
minutes par dfaut) et la dure d'excution des scripts, gnralement 2 ou 3
secondes suffisent amplement une boucle pour gnrer une centaine d'crans de
texte via une base de donnes.
IIS5 ne prend comme fichier de base que les default.asp, .html, etc,
il est intressant d'y ajouter les fichiers
index.asp,
index.html
et index.htm,
histoire d'tre l'abri...
Si vous commettez une erreur de script ASP, IIS5 vous gnrera une belle page
Microsoft, assez explicite, que l'on pourra remplacer par une page perso ou bien
dsactiver la page. De ce fait, vous aurez toujours les mmes messages d'erreur,
mais le serveur va tout de mme rendre la page jusqu' l'erreur, comme a, l'on
sait plus prcisment l'endroit o le script a plant, simple et efficace (Erreur 500100 )
SQL Server
173
174
SQL Server
CHAPITRE 15
LOBJET CONNECTION
Dfinir une connexion une base de donnes est une opration simple. La premire
tape consiste crer une instance de lobjet Connection, implment par le
composant Active Database :
Set oConn = Server.CreateObject("ADODB.Connection")
Avec la mthode Create.Object, nous dfinissons une variable contenant une
rfrence linstance de lobjet Connection.
Server.CreateObject("ADODB.Connection")
Server.CreateObject("ADODB.Connection")
Server.CreateObject("ADODB.Connection")
SQL Server
175
15.3 Le DSN
Le systme DSN simplifie beaucoup la manipulation des bases de donnes dans les
scripts puisquon fait simplement rfrence un alias plutt qu lensemble des
paramtres ncessaires pour identifier la base de donnes.
En fait, cest le DSN qui joue le rle dintermdiaire entre le script et ODBC.
Nous verrons plus tard comment ajouter une base de donnes au systme DSN.
Voici maintenant une instruction Execute base sur une commande SQL :
oConn.Execute "DELETE * FROM Contact WHERE State = LA "
Lorsquon excute une commande, ADO doit interroger la source de donnes pour
savoir quoi faire, ce qui a pour effet de ralentir le processus global. Pour contrer ce
problme, on peut donner une valeur au paramtre Options. ADO connat alors le
type dinstruction et acclre son excution.
Attention, pour utiliser le nom des constantes dans le code, et non leur valeur, il
faut inclure un fichier de dfinition avec un Server-Side Include (SSI).
Ce fichier est fourni avec ASP (Adovbs.inc pour VBScript et Adojavas.inc pour
Jscript). On les trouve normalement dans lun des rpertoires dASP
(ASPSamp/Samples)
Il suffit de taper :
SQL Server
176
Si on ne le fait pas, ASP sen charge automatiquement ds que la variable est hors
de porte (selon les cas, aprs lenvoi de la page, la fin de lapplication).
SQL Server
177
178
SQL Server
CHAPITRE 16
LOBJET RECORDSET
En plus de crer des requtes qui modifient, ajoutent ou suppriment des
enregistrements, il est galement souvent intressant de pouvoir envoyer, via ADO,
des valeurs de la source de donnes vers la page.
Pour ce faire, il faut dfinir un objet Recordset. Un recordset est identique une
table en mmoire contenant des enregistrements (ou lignes) subdiviss en champs
(ou colonnes).
Les deux mthodes dj vues (connection et command) crent automatiquement
des recordsets. Mais on peut aussi crer un recordset directement, sans ouvrir de
connexion, ni excuter de commande.
AbsolutePosition,
BOF,
EOF,
Bookmark,
SQL Server
179
SQL Server
180
La mthode MOVE
La mthode Move dplace le pointeur denregistrement de n positions, vers lavant
(nombre positif) ou vers larrire (nombre ngatif), relativement lenregistrement
courant. Noublions pas linfluence du choix du curseur.
oRs.Move 7 se dplace en avant de 7 enregistrements
varMyBookmark = oRs.Bookmark
SQL Server
181
oRs.Move 3
oRs.Move 7
oRsMove 1, varMyBookmark
oRs.MoveNext
Loop
La boucle sexcute indfiniment (MoveNext) jusqu ce que la valeur de EOF soit
vraie. On vite ainsi toute erreur (fin de recordset et recordset vide).
SQL Server
182
183
SQL Server
CHAPITRE 17
CONNEXION UNE BASE DE DONNES
(PAR LA PRATIQUE)
Pour se connecter une base de donnes, on utilise lobjet Connection, qui permet
avant toute autre chose de raliser une connexion.
Cet objet doit recevoir un ensemble dinformations qui expliquent comment oprer
la connexion avec la base de donnes.
On peut utiliser plusieurs objets Connection pointant vers des sources de donnes
diffrentes.
<%
Dim dcnDB 'AS ADODB.Connection
Dim DbLocation 'As String
la
mthode
DbLocation="C:\WEBSHARE\WWWROOT\monsite\fpdb\my.mdb
Set dcnDB = Server.CreateObject("ADODB.Connection")
dcnDB.ConnectionString =
"Provider=Microsoft.Jet.OLEDB.4.0;" _
On active la connexion
par la mthode Open
SQL Server
184
SQL Server
185
<%
Dim dcnDB 'AS ADODB.Connection
Set dcnDB = Server.CreateObject("ADODB.Connection")
dcnDB.ConnectionString = "File Name=..\base1.udl"
dcnDB.Open (ci-dessus : pour fichier de liaison de donnes)
186
SQL Server
Ce code ouvre un jeu denregistrements en lecture seule, utilis dans le cas o lon
souhaiterait dfinir simplement une srie de donnes dans un formulaire.
On peut utiliser les mthodes Execute, Open avec diffrents paramtres.
Lorsquon excute une commande, ADO interroge la source de donnes pour savoir
quoi faire, ce qui a pour effet de ralentir le processus. Pour contrer ce problme on
peut fournir des paramtres ; ADO connat alors le type dinstruction et acclre
son excution.
Le code suivant utilise des arguments avec des valeurs qui conviennent mieux
certaines requtes. Pour que cela fonctionne, il faut inclure le fichier adovbs.inc.
Exemple:
<!--#include file="../adovbs.inc"
<%
Dim rsQuery 'As ADODB.Recordset
Set rsQuery = Server.CreateObject("ADODB.Recordset")
rsQuery.Open "select * from identification ", dcnDB,
adOpenKeySet ,
adLockOptimistic
adOpenKeySet (ajout, modifier, supprimer des enregistrements)
adLockOptimistic (verrouillage des records lors de lappel de la mthode update)
Une autre mthode est de dfinir les arguments utiliss par la mthode Open
laide du type Const.
Exemple:
<%
Const adOpenForwardOnly = 0
Const adOpenKeyset = 1 (ajouter enregistrement)
Const adLockReadOnly = 1
Const adLockOptimistic = 3 (locker enregistrement pendant mise jour)
Dim rsQuery 'As ADODB.Recordset
Set rsQuery = Server.CreateObject("ADODB.Recordset")
rsQuery.Open "select * from identification ", dcnDB, adOpenKeySet, adLockOptimistic
SQL Server
187
SQL Server
188
CHAPITRE 18
LA RECHERCHE TEXTE LIBRE
La majorit des informations stockes numriquement le sont sous forme de
donnes de texte non structures, dans des fichiers de texte brut et des documents
mis en forme. Jusqu' prsent la plupart de ces donnes de texte taient stockes
dans des systmes de fichiers, mais plusieurs entreprises commencent les stocker
dans des bases relationnelles. Ainsi, tout le monde peut bnficier des avantages
lis l'utilisation d'une base de donnes, notamment
l'accs haute performance,
la gnration de requtes,
les interfaces utilisateurs simples fondes sur des applications et destines
aux utilisateurs finaux et
l'accs distance scuris.
La recherche de texte intgral permet aux dveloppeurs de fournir un accs
cohrent aux donnes structures et non structures depuis leurs applications.
Grce la recherche de texte intgral, les utilisateurs finaux peuvent explorer du
texte stock dans la base de donnes mme quand celui-ci est un document mis en
forme, ce qui offre plusieurs avantages :
Cration de requtes de texte intgral fondes sur des donnes de texte brut
stockes dans des tables relationnelles
Cration de requtes de texte intgral uniformment intgres dans le
langage T-SQL ; les requtes simples peuvent combiner des paradigmes de
recherche de texte intgral et classique
Recherche dans toutes les colonnes indexes en texte intgral d'une table
Accs programm aux informations relatives la requte (numro de rsultat
correspondant, pondration par mots de recherche, )
Top_N_By_Rank, pour renvoyer les premiers rsultats N par numros, idal
pour amliorer les performances.
Requtes de texte intgral sur des documents mis en forme (par exemple, des
documents Office et HTML) stocks dans des colonnes BLOB de la base de
donnes et enregistrs pour tre indexs en texte intgral. SQL Serveur est
fourni avec des filtres destins aux fichiers HTML, texte et aux documents
Office. Par ailleurs, les dveloppeurs peuvent crire leurs propres filtres par
le biais de la spcification IFilter.
SQL Serveur introduit galement des modifications dans le suivi des index en texte
intgral afin de rduire le besoin de donnes compltes et incrmentielles.
189
SQL Server
CHAPITRE 19
CARACTERISTIQUES XML/HTTP POUR SQL
SERVEUR
SQL Server
190
Les vues standards de SQL Serveur vous permettent de crer et sauver des
dclarations select qui prsentent des donnes aux clients de Transact-SQL, en
cachant les dtails ou comment les donnes sont assembles et traites. Les vues
XML fournissent un service semblable pour les clients XML qui utilisent
spcialement des schmas XML annots.
Les schmas annots permettent aux requtes XPath d'tre formules et bases sur
une structure XML standard dcrite dans un schma de document. Les annotations
spciales dressent une carte des lments et attributs dcrits dans le schma aux
tables et colonnes des bases de donnes relationnelles de SQL Serveur. Les vues
XML vous permettent essentiellement de traiter vos bases de donnes comme de
grands documents XML, en vous donnant encore la performance bnfique d'un
moteur relationnel.
191
SQL Server
CHAPITRE 20
SOURCES
http://www.labo-microsoft.org/articles/SQL_Server_Database/
http://support.microsoft.com/search/default.aspx?query=sql+serveur&mod
e=r&catalog=LCID%3D1033
http://www.microsoft.com/france/serveur/sql/
http://support.microsoft.com/kb/955829/fr
http://msdn.microsoft.com/fr-fr/library/bb500435(v=SQL.100).aspx