SQL Server
SQL Server
Module
Implémentation de SQL Server
2009/2010
Module : Implémentation de SQL Server
Chapitre 01 :
SQL Server 2000 est un système de gestion de base des données relationnelle (SGBDR), ce lui qui
confère une très grande capacité à gère les données tout en conservant leur intégrité et leur cohérence.
2
Module : Implémentation de SQL Server
Requête transact SQL
Dialogue
Résultat
Client
Serveur
C) Les plates – formes possible (système d’exploitation) SQL Server
Ils peuvent être développés pour s’exécuter dans les environnements suivants :
Les composants serveur sont pris en charge par des ordinateurs exécutant Windows NT,
Windows2000, ou 95/98, Windows Me
1) Coté server :
SQL Server utilise quatre services pour mettre en place le serveur de données
MSSQL Server : c’est le moteur de la BD. Ce server est chargé d’assurer l’exécution des requêtes, de
garantir l’intégrité des données ainsi leur cohérence.
SQL Server Agent : ce service permet de gérer l’ensemble des taches planifiées dans SQL Server. Ce
service utilise également l’observateur des événements afin de prévenir un utilisateur ou provoque
l’exécution d’une tache corrective.
MSDTC : Microsoft Transaction Cordinator permet de gérer les transactions distribuées sur
plusieurs Serveur SQL.
3
Module : Implémentation de SQL Server
MS Searche
MSDTC optionnel
Serveur
2) Coté client :
SQL Server fournit tout un ensemble d’outils clients qu’il est possible d’installer directement sur un
autre poste de réseau afin de réaliser l’ensemble des opérations d’administration.
L’administrateur de base de données possède plusieurs rôles importants afin d’être capable de réaliser
la meilleur administration possible. Il devra possède de sérieuses compétence en ce qui concerne SQL
Server mais également Windows effet les étapes de dépoilement, installation, planification, recherche
et résolution des problèmes ainsi que l’optimisation ne reposent pas uniquement sur SQL Server mais
bien souvent sur une interaction entre les deux.
- La gestion de la sécurité
- La gestion configuration du Serveur
- La gestion création des bases de données
- Gestion des sauvegardes et des restaurations
4
Module : Implémentation de SQL Server
L'installation de SQL Server 2000 permet de présenter les différentes éditions de SQL Server ainsi
que détailler les options d'installations possibles. Un point tout particulier sera mis en place pour
détailler l'exécution des services associés à SQL Server (Logiciels serveur). Une fois le serveur
installé, il faut s'assurer que l'installation s'est déroulée correctement puis il faut configurer le serveur
et certains outils clients pour réaliser les différentes étapes d'administration.
Les configurations matérielles indiquées ci-dessous minimales. Il faut bien sûr adapter le matériel à
la charge de travail qui sera demandée au serveur SQL par la suite. Cette charge de travail étant
spécifique à chaque utilisation de SQL Server il n'est pas possible d'indiquer des "profiles types"
matériels.
Ordinateur
Mémoire
La quantité de mémoire vive minimum disponible sur le serveur dépend de la plate-forme. Il faut
compter 64Mo si les serveurs utilisent Windows NT 4.0 comme système d'exploration et 256 Mo
lorsqu'il s'agit de Windows 2000.
Espace Disque
5
Module : Implémentation de SQL Server
La quantité d'espace disque occupé est fonction des options d'installation. L'espace disque précisé
ci-dessous ne prend pas en compte des bases de données utilisateur.
- composants de la base de données: entre 95 Mo et 270 Mo (250 Mo pour une installation par
défaut).
- Outils clients : 100 Mo.
- Analysis Services : 50 Mo au minimum et 130 Mo par défaut.
- English Query : 80 Mo.
- Desktop Engine seulement : 80 Mo.
Pour une base de données, les temps de réponses des disques ainsi que leur fiabilité constituent un
choix important de l'architecture matérielle.
Système de fichiers:
NTFS est le système de fichiers recommandé car il est plus performant que la FAT.
Système d'exploitation
Le SGBDR SQL Server 2000 peut s'installer sur différentes plates-formes logicielles.
Le choix de l'édition de SQL Server 2000 à installer est fonction du système d'exploitation utilisé.
Les systèmes d'exploitation sur lesquels il est possible d'installer le moteur SQL Server 2000 sont:
Autres logiciel:
Internet Explorer 5.0 est nécessaire pour les installations de SQL Server 2000.
Il existe six versions différentes de SQL Server 2000. le choix d'une version plutôt qu'une autre se
fera en tenant compte des caractéristiques de la plate-forme d'exécution et du cadre d'utilisation du
serveur SQL.
6
Module : Implémentation de SQL Server
Edition Personnelle : (Win 2000, NT 4.0, Me, XP, 98), Edition Standard: (Windows 2000
exception Win 2000 professional), Edition Entreprise, Edition Développeur, Edition Windows CE,
Edition Desktop Engine.
Pour visualiser toutes les options d'installation, il faut réaliser une installation personnalisée. Lors
de la réalisation d'une installation par défaut, tout les choix par défaut seront pris. Le programme
d'installation se lance automatiquement dés l'insertion du CD-Rom.
Etape n°1:
Menu CD-ROM SQL Server qui appariassent après l'insertion de CD-ROM SQL Server Developer
Edition.
• Composants de SQL Server 2000 : C’est l’option pour installer le serveur SQL en lui-même et/ou
les composants et outils additionnels.
• Composants requis pour SQL Server 2000 : Si vous êtes sous Windows 95, vous pouvez mettre à
niveau votre système d’exploitation pour supporter les outils clients de SQL Server.
• Aide sur l’installation et la mise à niveau : Ouvre le fichier d’aide de SQL Server dans laquelle
vous trouverez entre autre les détails de l’installation du serveur.
• Consulter les notes de mise à jour : Corrections apportées au manuel qui n’ont pas pu être incluses
dans le fichier d’aide original
• Le serveur : C’est le serveur SQL en lui-même et/ou ses outils clients et ses fichiers de
connectivité.
7
Module : Implémentation de SQL Server
• Analysis Services : C’est un outil permettant d’analyser les données du serveur et de modéliser
des dataware house.
• English Query : Cet outil vous permet de formuler vos requêtes en anglais.
On Cliquant sur « suivant » sur la première page. Nous arrivons à l'écran qui nous permettons de
choisir entre :
• Ordinateur local : Installer le serveur SQL sur la machine locale, c’est cette option que nous
choisirons
• Ordinateur distant : Installer le serveur SQL sur une machine distante, ce qui permet d’installer
le serveur SQL sur une autre machine. La procédure est un peu trop complexe à expliquer et sort
du cadre de cet article. Reportez vous à l’aide fournie pour plus de détails.
• Serveur virtuel : Installer un serveur SQL virtuel, permet d’installer, si l’ordinateur fait partie
d’un cluster (et donc que MSCS - Microsoft Cluster Service est installé)
• Créer une nouvelle instance de SQL Serveur ou installer des outils clients.
o C’est le choix que nous allons faire. Cette option va nous permettre d’installer le serveur SQL,
ou les outils clients.
• Mettre à niveau supprimer ou ajouter des composants sur une instance existante de SQL
Server.
o Si une instance de SQL Server est déjà installée sur la machine, vous pourrez modifier son
installation. Nous verrons plus loin ce qu’est une instance SQL
• Options avancées.
o Permet d’accéder aux options avancées. Ces options sortent du cadre de ce cours, mais voici
brièvement leurs rôles :
8
Module : Implémentation de SQL Server
- « Enregistrer un fichier .ISS sans surveillance » : permet de créer un fichier de réponse pour
automatiser une installation. Cette option est utile pour par exemple créer des installations du
MSDE (SQL Server Desktop Engine) et ainsi de redistribuer ce dernier sans avoir besoin de
demander à l’utilisateur de savoir configurer un serveur SQL.
Permet de procéder à des modifications sur des clusters existants, comme modifier le nom ou bien
ajouter ou supprimer des noeuds de clusters.
• Outils clients uniquement : Choisissez cette option si vous ne voulez que les outils clients et
pas le serveur SQL. Utilisez par exemple cette option si vous disposez d’un serveur SQL centralisé
pour n’installer que les outils permettant d’y accéder.
• Server et Outils clients : En plus d’installer les outils clients, on installe par le biais de cette
option le serveur SQL.
Choisissons d’installer le serveur SQL et les outils clients en cochant la deuxième option.
SQL Server permet d’avoir sur la même machine plusieurs « instances ». Cela signifie que sur une
machine quelconque vous pouvez avoir deux ou plus serveurs SQL en simultané. Chacun d’eux
ayant alors ses propres bases de données, et sa propre ruche (une ruche est une clef « racine » de la
base de registre dans laquelle sont stockées toutes les options du serveur SQL). Les instances sont
différenciées par un nom attribué à chacune d’elle. Il est toutefois rare d’avoir besoin d’installer
plusieurs instances sur une même machine.
9
Module : Implémentation de SQL Server
L’instance par défaut est l’instance recherchée sur la machine lorsqu’aucune instance n’est
spécifiée.
Si vous installez SQL Server sur une machine sur laquelle il n’est pas installé et si vous ne
prévoyez pas d’installer d’autres instances sur la machine, gardez l’option « Par défaut » cochée. Il
sera alors plus simple d’accéder à cette base depuis les autres programmes.
Si vous installez une nouvelle instance sur la machine, spécifiez alors un autre nom pour l’instance.
Supposons que c’est l’instance par défaut que nous installons et cliquons sur « suivant ».
o L’option « Par défaut » convient pour la plupart des utilisateurs et comprend les outils clients et
le serveur SQL. Utilise environ 250 Mo d’espace disque (hors données de vos bases de données)
o L’option « Minimum » n’est à sélectionner que si vous manquez vraiment d’espace disque.
Utilise environ 120 Mo d’espace disque.
o L’option « Personnalisé » est utile si vous souhaitez installer des composants spécifiques qui ne
figurent pas dans l’option par défaut ou si vous ne souhaitez installer uniquement ce qui vous
semble nécessaire.
• Dossiers de destination
10
Module : Implémentation de SQL Server
o Le programme récapitule l’utilisation disque que le serveur va prendre (hors fichiers de bases de
données)
L’installation par défaut convient pour la plupart d’entre nous. Vous pouvez sélectionner «
Personnalisé » et voir les différents composants pouvant être installés. Cliquez sur suivant.
Si vous avez choisi d’installer le serveur avec les options par défaut vous devriez arriver à l’écran
suivant (vous aurez d’abord choisi les options d’installation si vous avez cliqué sur « Personnalisé
») :
Vous devez spécifiez le compte utilisé pour faire fonctionner le serveur SQL.
• Choisissez tout d’abord si vous utiliserez les mêmes informations pour chaque service ou si vous
spécifierez séparément ces informations. A de rare exceptions près, vous pouvez utilisez le même
compte pour tous les services.
• Choisissez alors un compte d’exécution de service. Le serveur SQL utilisera alors le compte
spécifié pour s’exécuter. Il requit donc des droits administrateurs sur la machine, et même les
droits d’administrateur du domaine si vous utilisez un cluster de serveurs.
o « Utiliser le compte système local », cette option est intéressante si vous n’utilisez qu’un seul
serveur SQL, ou si vous l’utilisez à des fins de tests. En effet, le compte système local n’a pas
accès aux fonctionnalités réseaux de Windows 2000 et ne pourra donc pas communiquer avec
d’éventuels autres serveurs SQL.
o « Utiliser un compte d’utilisateur de domaine », spécifiez ici un utilisateur ayant les droits
d’administrateur (ou administrateur du domaine si vous utilisez un cluster). Il peut être intéressant
de créer un utilisateur spécifique ayant des droits limités (comme refuser l’ouverture de session par
exemple) afin de pouvoir isoler le compte SQL et détecter plus facilement la source d’un éventuel
piratage. Vous pouvez spécifier soit un utilisateur local, soit un utilisateur du domaine si vous
souhaitez utiliser le même compte pour tous vos serveurs. Dans tous les cas, il faut que vous
spécifiiez le mot de passe du compte.
11
Module : Implémentation de SQL Server
• L’option « démarrage automatique du service » n’est disponible que si vous avez choisi de
configurer séparément chaque service. Vous pourrez toujours modifier les options du serveur après
l’installation pour changer ce paramètre.
o Cochez la case pour que le service ce lance automatiquement lors du démarrage de la machine.
Il faut maintenant configurer l’authentification du serveur via l'écran affiché devant vous:
o Ce mode d’authentification est très utile, surtout en entreprise. En effet, SQL Serveur utilise
Windows pour authentifier les utilisateurs. Il fait ainsi appel à un contrôleur de domaine ou à la
machine locale, et donc gère la sécurité de façon transparente et sûre.
Par exemple, un utilisateur quelconque faisant parti du domaine se connectant à la base de données
via un outil de gestion n’aura pas à rentrer le mot de passe. En effet le système aura identifié et
authentifié l’utilisateur. L’authentification est sûre dans la mesure où tout se fait par Windows et
est donc cryptée par le système d’exploitation.
Le revers de la médaille est qu’il faut obligatoirement avoir ouvert une session sur le domaine pour
avoir le droit d’accéder au serveur. Il y’a également un avantage administratif, puisqu’il suffit de
choisir quels comptes du domaine ont accès au serveur.
o Tous les administrateurs locaux sont donc administrateurs du serveur SQL (les administrateurs
du domaine étant souvent inclus dans ce groupe local, ils le sont aussi en conséquence).
12
Module : Implémentation de SQL Server
o Le compte « sa » et un compte spécial. Il est un compte non Windows ayant totalement accès au
serveur SQL (System Administrator). Il convient donc de lui donner un mot de passe long et
difficile à trouver car c’est une faille potentielle de sécurité. Evitez absolument les mots de passe
vide, sauf si vous utilisez le serveur à des fins de tests.
Nous choisissons de préférence le « mode d’authentification de Windows » qui est beaucoup plus
simple à administrer et plus sécurisé, à moins d’avoir effectivement besoin du mode mixte.
Choisissez le mode qui vous semble le plus judicieux puis cliquez sur suivant.
Le serveur est alors installé. Il est possible que l’on vous demande de relancer l’ordinateur pour
finir l’installation si des fichiers du système d’exploitation ont été mis à jour.
13
Module : Implémentation de SQL Server
Pour désinstaller une installation existante de SQL Server 7.0 ou de SQL Server 2000 (instance
par défaut ou instance nommée)
1. Insérez le CD-ROM de Microsoft® SQL Server™ 2000 dans votre lecteur de CD-ROM. Si le
CD-ROM ne démarre pas automatiquement, double-cliquez sur [Link] dans le répertoire
racine du CD-ROM.
2. Sélectionnez Composants de SQL Server 2000, sélectionnez Installer le serveur, puis le
programme d'installation prépare l'Assistant Installation de SQL Server. À l'écran de
bienvenue, cliquez sur Suivant.
3. Dans la boîte de dialogue Nom de l'ordinateur, sélectionnez Ordinateur local ou
Ordinateur distant.
4. Dans la boîte de dialogue Choix de l'installation, cliquez sur Mettre à niveau, supprimer ou
ajouter des composants sur une instance existante de SQL Server, puis cliquez sur
Suivant.
5. Dans la boîte de dialogue Nom de l'instance, Par défaut est sélectionné si l'instance installée
est une instance par défaut. Pour désinstaller une instance nommée, sélectionnez-la dans la
zone de liste Nom de l'instance, puis cliquez sur Suivant.
6. Dans la boîte de dialogue Installation existante, cliquez sur Désinstaller votre installation
existante, puis cliquez sur Suivant.
7. Le programme d'installation supprime l'installation sélectionnée. Dans la boîte de dialogue
Désinstallation, cliquez sur Suivant, puis dans la boîte de dialogue Installation terminée,
cliquez sur Terminer.
14
Module : Implémentation de SQL Server
(Programme d'installation)
1. Insérez le CD-ROM de Microsoft® SQL Server™ 2000 dans votre lecteur de CD-ROM. Si le
CD-ROM ne démarre pas automatiquement, double-cliquez sur [Link] dans le répertoire
racine du CD-ROM.
2. Sélectionnez Installer les composants de SQL Server 2000.
Si vous utilisez Microsoft Windows® 95, cliquez sur Composants requis pour SQL Server
2000, puis sur Installer Common Controls Library Update (Windows 95 uniquement).
Pour une installation à distance, cliquez sur Ordinateur distant. Vous pouvez ensuite saisir un
nom d'ordinateur ou bien cliquer sur Parcourir pour localiser un ordinateur distant.
5. Dans la boîte de dialogue Choix de l'installation, cliquez sur Créer une nouvelle instance de
SQL Server ou installer des outils client, puis cliquez sur Suivant.
6. Suivez les instructions sur les informations utilisateur, l'accord de licence et les écrans
correspondants.
7. Dans la boîte de dialogue Définition de l'installation, cliquez sur Serveur et Outils clients,
puis sur Suivant.
8. Dans la boîte de dialogue Nom de l'instance, si la case à cocher Par défaut est disponible,
vous pouvez installer l'instance par défaut ou l'instance nommée. Si la case à cocher Par
défaut n'est pas disponible, c'est qu'une instance par défaut a déjà été installée : vous ne pouvez
donc installer qu'une instance nommée.
Pour installer l'instance par défaut, activez la case à cocher Par défaut, puis cliquez sur
Suivant.
15
Module : Implémentation de SQL Server
Pour installer une instance nommée, désactivez la case à cocher Par défaut et saisissez
un nom d'instance dans la zone Nom de l'instance. Cliquez sur Suivant.
9. Dans la boîte de dialogue Type d'installation, cliquez sur Par défaut ou sur Minimale, puis
cliquez sur Suivant.
10. Dans la boîte de dialogue Compte de service, acceptez les paramètres par défaut, saisissez
votre mot de passe de domaine puis cliquez sur Suivant.
11. Dans la boîte de dialogue Mode d'authentification, acceptez les paramètres par défaut puis
cliquez sur Suivant.
12. Quand vous avez terminé la spécification des options, dans la boîte de dialogue Copie de
fichiers, cliquez sur Suivant.
13. Dans la boîte de dialogue Choix du mode de licence, effectuez vos choix en fonction de votre
accord de licence, puis cliquez sur Continuer pour commencer l'installation.
Cliquez sur Aide pour obtenir des informations sur la licence ou bien consultez votre
administrateur réseau.
14. Dans la boîte de dialogue Installation terminée, cliquez sur Oui, je veux redémarrer
l'ordinateur maintenant, puis sur Terminer.
16
Module : Implémentation de SQL Server
1- Entreprise Manager
2- Service Manager
3- Analyseurs de requêtes
Les groupes SQL Server servent à organiser des ensembles de serveurs SQL. La création d’un
groupe de serveurs est aisée. Vous pouvez même y créer des sous-groupes. Si vous faites une
erreur, vous pouvez supprimer un groupe.
17
Module : Implémentation de SQL Server
SQL Server Enterprise Manager est le principal outil administratif de Microsoft® SQL Server™ 2000.
Il fournit une interface utilisateur compatible Microsoft Management Console (MMC)– qui permet aux
utilisateurs d'effectuer les tâches suivantes :
Pour lancer SQL Server Enterprise Manager, à partir de la barre des tâches, via le chemin suivant :
"Tous les programmes" --> "Microsoft SQL Server" --> "Entreprise Manager". Lorsqu'on clique sur
Entreprise Manager, la console se présente comme le montre la figure ci-dessous.
La partie gauche de la fenêtre contient l'explorateur. Les objets qu'il contient sont classés dans une
hiérarchie, que l'on peut développer en cliquant sur le signe +. Si l'explorateur est absent, on le fait
apparaître en cliquant sur l’icône . Dans la partie droite de la fenêtre s'affiche le contenu de l'objet qui
est sélectionné dans la partie gauche.
18
Module : Implémentation de SQL Server
2. Service Manager
SQL Server représente un cas nettement plus complexe qu’IIS : il ne comporte pas un, mais quatre
services. En cliquant sur l'icône du gestionnaire des services qui se trouve dans la partie droite de la
barre des tâches (lorsque le SGBD est installé), on ouvre la fenêtre du "gestionnaire des services"
(Service Manager). Elle se présente comme le montre la figure ci-dessous :
Si nous déroulons la liste des services, nous constatons que ces derniers sont au nombre de quatre :
le service "SQL Server" correspond au moteur du SGBD. Il faut qu'il démarre automatiquement
lorsqu'on met le serveur en marche (comme le montre la figure ci-dessus) ;
le service "Microsoft Search" lance un moteur d'indexation et de recherche en texte intégral. Il faut
qu'il soit en fonctionnement pour que l'on puisse effectuer des recherches en texte libre dans les tables
de la base de données ;
le service "SQL Server Agent" sert aux opérations de maintenance de la base. Il faut qu'il soit en
fonctionnement pour que le plan de maintenance de la base de données puisse s'effectuer ;
le service "Distributed Transaction Coordinator" (DTC en abrégé) surveille les transactions
mettant en jeu deux serveurs. En pratique, il faut qu'il soit en fonctionnement lorsque nous importons
le fichier journal. En effet, cette opération fait appel à la notion de "serveur lié", serveur fictif gérant
le fichier texte du journal. L'importation apparaît alors comme une transaction entre deux serveurs (le
serveur lié et SQL Server), le rôle de DTC consistant à vérifier que la transaction s'effectue
correctement.
En conclusion, nous réglons le gestionnaire des services de telles sortes que les quatre services
démarrent automatiquement.
19
Module : Implémentation de SQL Server
L'Analyseur de requêtes SQL est une interface utilisateur graphique qui permet de concevoir et de
tester de façon interactive les instructions, les lots d'instructions et les scripts Transact-SQL.
L'Analyseur de requêtes peut être appelé à partir de SQL Server Enterprise Manager.
On l'atteint à partir de la barre des tâches, via le chemin suivant : "Tous les programmes" --> "Microsoft
SQL Server" --> "Analyseur de requêtes". Quand on clique sur l’Analyseur de requêtes, la boîte de
dialogue suivante s'affiche :
Nous cliquons sur OK, et l'Analyseur se présente comme le montre la figure ci-dessou
20
Module : Implémentation de SQL Server
La partie gauche de la fenêtre contient l'explorateur. Si ce dernier n'apparaît pas, nous cliquons sur l’icône .
La partie droite est dédiée à la saisie du code SQL relatif à l'objet sélectionné à gauche.
21
Module : Implémentation de SQL Server
1. BD SQL Server :
a) Objet de base de données :
Les BD contiennent un certain nombre d’objets [Link] est possible de regrouper ces objets en trois
grandes catégories :
- Gestion de stockage de données : Tables, type de données, contraintes d’intégrités, valeur par
défaut, règles, index.
- Index
22
Module : Implémentation de SQL Server
1-Niveau Logique :
1- 2- 3- 4- 5- 6-
Master Model Tempdb Msdb Pubs Northwind
Les objets de BD vous aident à stocker vos données et à définir les mécanismes de sécurité
d’amélioration des programmes et de contrôles d’intégrité des données.
23
Module : Implémentation de SQL Server
2-Niveau physique :
1- Un fichier de données principal ou primaire (.mdf) : toute base de données primaire est unique
et elle contient la définition des structures et les données.
2- Fichier de données secondaires (.ndf) : zéro ou plusieurs fichiers .il contient des données
uniquement.
3- Un ou plusieurs fichiers journal de transaction (.idf) : enregistre toutes les informations
requises pour l’annulation d’une transaction sur la base de données ou pour sa restauration.
Pour gérer l’ensemble des données stockées, SQL Server s’utilise lui-même, il existe donc des bases
de données systèmes et sur chaque base utilisateur, quelques tables système. L’insertion et la mise à
jour de données dans ces tables ne s’effectuent jamais directement, mais via des commandes Transacte
SQL ou des procédures stockées.
Toutes les bases de données contiennent un ensemble de tables système afin de gérer des éléments
propres a chaque base. Cet ensemble de tables constitue le catalogue de la base de données. Toutes les
tables qui y participent sont identifiées par un nom qui commence par SYS.
Il existe de plus de catalogue système qui est un ensemble de tables système. Stocké dans la base
Master, il contient des informations concernant le serveur.
[Link] de métadonnées
Pour interroger les données contenues dans les tables système, il est déconseillé de le faire directement
par une requête de type [Link] est préférable de passer par l’utilisation de procédure stockées de
fonction système et de vues du schéma d’information.
24
Module : Implémentation de SQL Server
En tant qu’administrateur il est possible de modifier le contenu des tables système. Cette opération est
à proscrire car elle peut avoir des conséquences irréversible et dramatique. Le seul moyen de remédier
à un tel problème sera alors de restaurer une sauvegarde.
Elles commencent toutes par SP_. Parmi toutes les procédures stockées, citons :
25
Module : Implémentation de SQL Server
Fonction système
Les fonctions système sont utilisables avec des commandes transact SQL. Il est ainsi possible de
récupérer des valeurs concernant la base de données sur laquelle on travaille, sur le serveur ou sur les
utilisateurs. Citons –en quelques-unes :
Schéma d’information
Il s’agit d’un ensemble de vues qui proposent une visualisation des paramètres de façon indépendante
des tables système. En ne faisant pas directement référence aux tables système. On se préserve des
modifications qui peuvent intervenir sur leur structure lors des prochaines versions. De plus, ces vues
sont conformes à la définition du standard ANSI SQL pour les schémas d’information. Chaque vue
présente des métadonnées pour l’ensemble des objets contenus dans la base de données.
26
Module : Implémentation de SQL Server
Une base de données doit posséder un système de sécurité fiable pour gérer les activités qui
peuvent être réalisées et les informations qui peuvent être affichées et modifiées.
L’accès aux bases de données se contrôle à l’aide des éléments du dispositif de sécurité de SQL
Server :
Lorsque SQL Server 2000 est exécuté sous Windows NT ou Windows 2000, Windows XP, les
membres du rôle de serveur fixe sysadmin peuvent spécifier l'un des deux modes d'authentification
suivants
Seule l'authentification Windows est permise. Les utilisateurs ne peuvent pas spécifier un ID de
connexion SQL Server 2000. Il s'agit du mode d'authentification par défaut de SQL Server 2000. Vous
ne pouvez pas spécifier le mode d'authentification Windows pour une instance de SQL Server
fonctionnant sous Windows 98, puisque le système d'exploitation ne prend pas en charge
l'authentification Windows.
Mode mixte
Lorsqu'un utilisateur fournit un ID de connexion SQL Server 2000 au moment de se connecter, il est
authentifié par SQL Server. Dans le cas où il ne fournit pas d'ID de connexion SQL Server 2000, il est
authentifié par Windows.
Ces modes sont définis dans le programme d'installation ou avec SQL Server Enterprise Manager.
Succès fait que seules les connexions effectuées avec succès sont auditées.
Échec fait que seules les tentatives de connexion qui ont échoué sont auditées.
Tous fait que les tentatives de connexion qui ont réussi et celles qui ont échoué sont auditées.
2- Connexion serveur
Chaque utilisateur doit accéder à une instance de Microsoft SQL Serve par le biais d'un compte de
connexion d'accès qui détermine si sa demande est acceptable (authentification). Cette connexion
d'accès doit ensuite être mappée vers un compte utilisateur SQL Server, qui est utilisé pour contrôler
les opérations effectuées dans la base de données (validation des autorisations).
28
Module : Implémentation de SQL Server
29
Module : Implémentation de SQL Server
Chapitre 06 :
I) Historique
Le langage SQL est né à la suite des travaux du mathématicien Codd. Historiquement, les années suivantes sont
importantes :
a) L’analyseur de requête
Il permet d’exécuter des requêtes, de vérifier leur syntaxe et de les stocker dans un fichier .SQL.
30
Module : Implémentation de SQL Server
L’interface utilisateur
La colonne de gauche contient l’explorateur d’objet. Cela permet en permanence d’avoir une description de la
structure des données ainsi qu’un aide mémoire concernant les fonctions et types usuels.
Le deuxième onglet de cette colonne (Modèle) permet d’avoir accès à des modèle de requête type, modèle de
Create Procedure par exemple.
La zone centrale est séparée en deux parties : la zone d’édition et la zone de résultat.
On remarquera que l’analyseur de requête adopte une coloration syntaxique qui facilite l’édition.
Les onglets en bas de l’écran permettent de naviguer entre les différents volets de résultat. Tous ne sont pas
automatiquement générer cela dépend des choix fait dans le menu requête accessible depuis la barre d’outils en
haut de l’écran.
31
Module : Implémentation de SQL Server
- Plan d’exécution : donne un arbre d’exécution de la requête avec le coût estimé de chaque nœud, très
utile pour optimiser une requête.
- Trace et Statistique : renvoi des données très techniques utiles lors du tuning de la base, les fichiers
de trace sont par exemple utilisés avec l’assistant paramétrage d’index.
b) Utilitaire OSQL
OSQL est un outil utilisable en ligne de commande (WIN32), ce qui permet de créer facilement des
batchs l'utilisant.
Cet outil permet de se connecter à un serveur SQL Server 2000 et d'exécuter du code au format du
langage TSQL. Ainsi on peut lancer des commandes de sélection, d'exécution, de mise à jour ou de
suppression à partir de cet outil. Il communique avec SQL Server via la bibliothèque ODBC
(Open DataBase Connectivity). Les résultats sont mis en forme et affichés à l'écran. Sa syntaxe est la
suivante :
Normalement, cet outil se trouve dans le répertoire, sur une installation standard de machine :
Une fois connecté sur le serveur SQL, OSQL possède quelques commandes qui lui sont propres et qui
permettent de travailler avec cet outil.
32
Module : Implémentation de SQL Server
Les instructions DML sont constituées de divers éléments de la syntaxe Transact-SQL, nous allons les détaillés.
Directives de lot
Les directives indiquent comment traiter les instructions TSQL. Les principales directives sont :
- USE « base de données » : permets de préciser sur quelle base de données vont porter les instructions qui
suivent.
- GO : SQL Server interprète l'instruction GO comme un signal pour exécuter les instructions TSQL qui
précèdent. Une commande GO termine un lot d'instructions TSQL. Certaines instructions TSQL doivent
s’exécuter comme des lots, dans ce cas, l’utilisation de la commande GO est obligatoire.
GO
33
Module : Implémentation de SQL Server
- Commentaires
Ce sont des parties de texte insérées dans un jeu d’instruction pour en expliquer le but. Les commentaires
sont des chaines de textes non exécutables.
o Commentaire en ligne
/* Ce programme extrait toutes les lignes de la table products, et affiche le prix unitaire, le prix unitaire
augmenté de 10 % et le nom du produit.*/
USE Northwind
SELECT unitprice, (unitprice * 1.1), productname
FROM Product
GO
- Identificateurs
Ce sont les noms des objets tels que les bases de données, les tables, les colonnes, etc.
o identificateurs standard
Les identificateurs standard peuvent contenir de 1 à 128 caractères, notamment des lettres, des symboles (_, @
ou #) et des nombres. La première lettre doit être alphabétique et aucun espace n'est autorisé dans le
nom. Ils ne doivent correspondre à aucun mot-clé du langage TSQL.
o identificateurs délimités
Un identificateur qui ne respecte pas une ou plusieurs des règles de mise en forme des identificateurs standard
doit toujours être délimité. Les délimiteurs sont [ ] et " ".
- Types de données
Ils déterminent la nature du contenu des objets tels que les colonnes, les variables, les paramètres, etc.
’ Entier
Int 4 octet De -2^31 à 2^31-1
Tinyint 1 octet De 0 à 255 2^8 (2 à la puissance 8)
Smallint 2 octet De -32768 à 32767
Bigint 8 octet De -2^63 à 2^63-1
’ Décimales
Decimal supporte 38 digits
Numeric idem à Decimal
’ Monnétaire
Money 8o ±922337 Milliards
Smallmoney 4o ±21747 Milliards
’ à virgule flottante
Float 8o ±1.74E308
Real 4o ±3.49E38
’ Booleen
Bit 1o valeur binaire (0 ou 1)
’ Spécial
UniqueIdentifier 16o Définit une colonne comme identificateur unique globale (GUID)
Dates : Ce type de donnée représente une date ou une durée.
DateTime 8o De 01/01/1753 à 31/12/9999
SmallDateTime 4o De 01/01/1900 à 06/06/2079
Caractères : Ce type de données est utilisé pour représenter les chaînes de caractères de longueur fixe ou
variable.
Char taille fixe n’excédant pas 8Ko
Varchar taille variable n’excédant pas 8Ko
Nchar unicode taille fixe n’excédant pas 4Ko
Nvarchar unicode taille var. n’excédant pas 4Ko
Text taille variable pouvant excéder 8Ko
Ntext unicode taille var. pouvant excéder 4K
Binaire : Ce type de données est très proche du type de données de caractères en termes de stockage et de
structure, mais le contenu des données est traité sous forme d'une série de valeurs binaires.
Binary taille fixe n’excédant pas 8Ko
VarBinary taille variable n’excédant pas 8Ko
35
Module : Implémentation de SQL Server
- Variables
Éléments permettant de stocker une valeur en vue de son utilisation future. Une variable locale est définie
par l'utilisateur par l’instruction DECLARE , se voit affecter une valeur initiale dans une instruction SET ou
SELECT est utilisée dans l'instruction ou le lot. Le nom d’une variable locale est précédée du caractère @,
tandis que le nom d’une variable globale est précédé de @@.
USE Northwind
DECLARE @EmpID int,@Name char(20)
SET @EmpId = 101
SELECT @Name = 'Dupont'
- Fonctions système
Transact est doté de nombreuses fonctions qui renvoient des résultats, elles sont notées en rose dans l’éditeur de
requête.
Exemple :
Select AVG (prixunitaire) as avgprice from products
GO
select 'ANSI : ', convert(varchar(30),GetDATE(),102)
union
select 'Européen : ', convert(varchar(30),GetDATE(),113)
GO
select user_name(), app_name()
- Opérateurs
Les opérateurs sont des symboles qui effectuent des calculs mathématiques, des concaténations de chaînes et des
comparaisons. Ils peuvent être combinés et utilisés dans des conditions de recherche.
- Les opérateurs arithmétiques effectuent des calculs sur des colonnes numériques ou sur des constantes. On
multiplication(*), division (/), et modulo (%)(le reste de la division d’entiers) et les opérateurs additifs (addition
(+) et soustraction (-).
- Les opérateurs de comparaison comparent 2 expressions. Des comparaisons peuvent être effectuées entre
des variables, colonne et expressions de même type.
On a égal (=), supérieur(>), inférieur(<) , supérieur ou égal (>=), inférieur ou égal(<=) , différent (<>).
36
Module : Implémentation de SQL Server
- Les operateurs de concaténation de chaine(+) concatène des valeurs de chaîne. La chaîne vide n’est
jamais évaluée comme une valeur NULL.
- Les opérateurs Logiques And, OR, et NOT relient des conditions de recherche dans des clauses WHERE
- Le niveau de priorité est le suivant : groupement () ->multiplicatif */% ->additif +- ->concaténation de chaîne
+ ->NOT -> AND -> OR. SQL SERVER traite en premier l’expression ayant le niveau d’imbrication le plus
élevé. En outre, si tous les opérateurs arithmétiques d’une expression partagent le même niveau de priorité,
l’ordre va de droite à gauche.
- Expressions
L’exemple suivant calcule la quantité de produits dans une commande en multipliant le prix unitaire par la
quantité commandée, puis filtre le résultat pour ne retourner que les lignes qui ont une valeur supérieure à 10 000 .
Select orderId, ProductId, (Unitprice * Quantity) as montant from [order details] where (unitprice * quantity) > 10000
Transact prend en charge plusieurs éléments de langage qui contrôlent le flux de la logique dans les
instructions. Il contient aussi l’instruction CASE qui vous permet d’utiliser une logique conditionnelle sur une
seule ligne à la fois dans une instruction SELECT ou UPDATE.
Exemple :
Blocs Begin… end -> ces éléments délimitent une série d’instructions Transact pour les traiter sous forme d’une unité.
Blocs If…Else ->Ces éléments indiquent que SQL server doit exécuter la première alternative si une certaine
condition est vraie. Dans le cas contraire, SQl server doit exécuter la deuxième alternative.
Construction WHILE -> Ces éléments exécutent une instruction de façon répétée tant que la condition spécifiée
est vraie. Les instructions BREAK et CONTINUE contrôlent le fonctionnement des instructions dans une
boucle WHILE.
SQL server réserve un certain nombre de mot clé à son usage personnel si néanmoins vous devez utiliser certain
de ces mot pour un usage qui n’est pas celui définit il suffit de les délimiter par des crochets [].
37
Module : Implémentation de SQL Server
4- Modification de BD
1- la base de données
a) Entreprise Manager
b) Langage Transact-SQL
a) Entreprise Manager
b) Langage Transact-SQL
a) Entreprise Manager
b) Langage Transact-SQL
a) Entreprise Manager
b) Langage Transact-SQL
a) Entreprise Manager
b) Langage Transact-SQL
38
Module : Implémentation de SQL Server
2- La Table
a) Entreprise Manager
b) Langage Transact-SQL
a) Entreprise Manager
b) Langage Transact-SQL
a) Entreprise Manager
b) Langage Transact-SQL
a) Entreprise Manager
a) Entreprise Manager
b) Langage Transact-SQL
a) Entreprise Manager
b) Langage Transact-SQL
a) Entreprise Manager
b) Langage Transact-SQL
a) Entreprise Manager
b) Langage Transact-SQL
39
Module : Implémentation de SQL Server
a) Entreprise Manager
b) Langage Transact-SQL
40
Module : Implémentation de SQL Server
Use master
Exec sp_dboption nom_db, ‘ single user’, true
Pour annuler
Use master
Exec sp_dboption nom_db, ‘ single user’, false
‘@[Link] ’ ,
‘@[Link] ’
Exemple :
41
Module : Implémentation de SQL Server
- À l’aide de TSQL
- À l’aide d’Entreprise Manager
Les types de données qui sont intégrés à SQL Server et directement pris en charge sont les types natifs
Tous les types de données ont une valeur de langueur, soit fixe, soit variable.
Les types de données natif sont : Bit, BigInteger, Integer, SmallInteger, TinyInteger , Money,
SmallMoney, Dec, Décimal, Numérique…..
Les types de données utilisateurs se définissent au niveau de la base de données plutôt qu’à celui
de la table.
Pour créer un type de données utilisateur dans Entreprise Manager, Procédez comme suit :
à l’aide TSQL :
42
Module : Implémentation de SQL Server
Exemple :
Use Master
Exec sp_addtype numérotélé , ‘char(10)’, ‘NOT NULL’
Pour supprimer ou renommer ou afficher propriétés de type de données dans Entreprise
Manager :
1) Démarrez Entreprise Manager, puis sélectionnez la base de données à gérer.
2) Cliquez sur l’objet type de données utilisateur,
3) Les types de données actifs s’affichent dans le volet droit.
4) Cliquez à droit sur le type de données utilisateur à géré pour :
- Supprimer
- Renommer
* à l’aide de TSQL
Pour supprimer :
Use nom_db
Exec sp_droptype nom_type
Pour Renommer :
Use nom_db
Exec sp_rename nom _type_ ancien, nom_type_nouveau
Pour crée une table dans Entreprise Manager, procédez comme suite :
43
Module : Implémentation de SQL Server
Remarque :
Avant de créer une nouvelle table, vous devez être sur votre BD utilisateur.
Exemple :
Use tempdb
CREATE TABLE ABC
(colonne A INT,
Colonne B char(50),
Colonne C datetime)
GO
Exemple :
Use tempdb
CREATE TABLE note
(noteID INT, Note1 real, Note2 real, Moyenne as (note1+note2) / 2, EtudianID INT)
G0
Remarque :
Le mot clé AS permet de créer des colonnes calculé à partir des valeurs d’autres colonnes.
Ou
DROP nom_col
Ou
ALTER COUMN nom_col nouveau_type
Exemple :
Use tempdb
ALTER table ABC
ADD colonneD decimal
GO
45
Module : Implémentation de SQL Server
Introduction
Les contraintes d’intégrité permettent d’assurer des contrôles sur les données saisies dans la base
de données.
1.1 La contrainte PRIMARY KEY : permet de définir une ou plusieurs colonnes comme la clé
primaire d’une table. Elle s’utilise de la façon suivante :
USE tempdb
Create table aze
(colonneA int primary key,
colonneB varchar(30))
GO
Create table def
(colonneD int,
colonneE char(5),
colonneF datetime
contsrainte pkDEF primary key (colonneD,colonneE))
Go
1.2 La contrainte UNIQUE : permet de garantir qu’aucune valeur en double n’est entrée dans
une colonne spécifique. Elle utilise de la façon suivante :
USE tempdb
Create table facture
46
Module : Implémentation de SQL Server
2. Contrainte de domaine
2.1 La contrainte CHECK permet de définir une condition que la valeur doit respecter avant
d’être enregistrée. Elle s’utilise de la façon suivante :
Use Tempdb
Create Table Visite
( Vid Int Identity (1,1) Primary Key,
Vage TinyInt Check(Vage<=120),
Vjour Varchar(20) Check(Vjour in (‘Lundi’,’Mercredi’,’Vendredi’)),
Vpoid Real Check (Vpoid between 5 and 500))
Go
2.2 La contrainte DEFAULT permet de définir une valeur par défaut pour une colonne.
Use tempdb
Create table t1
(
47
Module : Implémentation de SQL Server
3.1 La contrainte FOREGIN KEY appliqué à une colonne, permet de vérifier que la valeur
doit exister dans la colonne référenciée.
Dans le cas contraire, le système renvoie un message d’erreur
Signalant une violation de clé étrangère, sa syntaxe est la suivante :
[FOREIGN KEY nom_colonne]
REFERENCES Table_réf(colonne_réf)]
[ON DELETE {CASCADE | NO ACTION}]
USE tempdb
Create table Père
(Pid Int Identity (1,1) Primary key,
Pnom varchar (30))
GO
Create table fils
(Fid Int Identity (1,1) Primary key,
Fprenom varchar (50),
Pid Int references Père(Pid) ON DELETE CASCADE) GO
48
Module : Implémentation de SQL Server
Une vue peut être considérée comme une requête enregistrée. Ainsi vous pouvez réutiliser une
instruction sans avoir à la redéfinir.
Sa syntaxe suivante :
Exemple :
Remarque :
Lorsque vous créez des vues, tenez compte des restrictions énumérées ci-dessous
- L’instruction CREATE VIEW ne peut pas inclure les clauses COMPUTE ou COMPUTE B;
- L’instruction CREATE VIEW ne peut pas inclure la clause ORDRE BY, sauf si elle est
utilisée avec une clause TOP dans l’instruction SELECT.
49
Module : Implémentation de SQL Server
Exemple :
Use tempdb
GO
Create view vue1
As
Select père,Pnom, fils,Fprenom
FROM Père,fils
GO
Exemple :
USE pubs
DROP VIEW title_view
GO
51
Module : Implémentation de SQL Server
Une procédure stockée est un groupe d’instructions Transact-SQL compilées et stockée sur le
serveur. Les procédures stockées constitue une méthode privilégie pour encapsuler les tâches
répétitives afin de les exécuter efficacement. Elle permet en charge les variable déclarées par
l’utilisateur ; le contrôle de flux et d’autre d’autres fonctionnalistes de programmation.
AS
[BEGIN]
--INSRUCTION
--INSTRUCTION
[END]
Exemple :
CREATE PROC psmoyenne_etudiant
@Etudiantnum int ,
@moyetudiant real OUTPUT
AS
BEGIN
SELECTE @Moyetudiant = AVG (evaluation)
52
Module : Implémentation de SQL Server
FROM Note
WHERE Etudiantnum = @Etudiantnum
END
Exemple :
DECLARE @Moyenne real
EXEC ps_moyenne_etudiant
@Etudiantnum = 10,
@Moyetudiant = @Moyenne OUTPUT
Syntaxe :
ALTER PROC [EDURE] procédure_name
AS
[BEGIN]
--INSRUCTION
--INSTRUCTION
[END]
Syntaxe :
DROP PROCEDURE nom_procédure
53
Module : Implémentation de SQL Server
1. Définition
Une fonction est semblable à une procédure stockée à la différence qu’elle retourne toujours une
valeur.
Les fonctions utilisateur ne permettent pas d'exécuter une série d'actions qui modifient l'état global
des bases de données. Une fonction s’utilise comme une procédure stockée, mais comme une table.
Elles peuvent également être exécutées par le biais d'une instruction EXECUTE, comme les
procédures stockées.
Syntax:
RETURNS scalar_return_data_type
[ AS ]
BEGIN
-- corps_fonction
RETURN scalar_expression
END
Exemple:
54