mardi 6 mai 2008

V. Création et gestion de base de données

Une base de données permet de stocker un ensemble de données. Les objets de base de données permettent de structurer vos données et à définir les mécanismes de sécurité, d’améliorer et de contrôler l’intégrité des données.

Parmi ces objets nous avons :

  • Les tables : ensembles de lignes associées à des colonnes
  • Les contraintes : permettent de définir des valeurs relatives autorisées dans les colonnes et vont constituer le mécanisme standard pour garantir l’intégrité des données.
  • Les valeurs par défaut définissent une valeur stockée dans une colonne si aucune autre valeur n’est fournie au moment de l’ajout.
  • Les index constituent des structures de stockage offrant un accès rapide pour l’extraction des données.
  • Les vues permettent de visualiser des données provenant d’une ou de plusieurs tables de la même base de données.
  • Les fonctions définies par l’utilisateur vont permettre de renvoyer soit une valeur scalaire soit une table.
  • Les procédures stockées sont un ensemble d’instructions nommées en Transact-SQL pré-compilées devant être exécutées ensemble.
  • Les délencheurs représentent une forme spéciale de procédure stockée exécutée automatiquement lorsqu’un utilisateur modifie les données d’une table ou d’une vue.

A. Création de base de données


1. Fichiers de la base de données

Une base de données est un espace de stockage. Il y a deux fichiers importants :

a) Fichiers de données primaires (.mdf)

Ils contiennent des informations sur le démarrage de la base de données (objets de base de données et les données intégrées dans la base de données).

b) Fichiers de données secondaires (.ndf)

Ils ne sont pas obligatoires mais peuvent intervenir pour pouvoir stocker les données utilisateur.

c) Fichiers journaux (.ldf)

Ils servent à récupérer les détails sur toutes les transactions effectuées sur les base et fournissent les modifications apportées à votre base de données.


2. Groupes de fichiers

C’est un ensemble de fichiers. Il y a 2 groupes :

a) Groupes de fichiers primaires

Ils contiennent des fichiers de données primaires. Le groupe de fichiers secondaires contient des données secondaires .

b) Groupes de fichiers définis par l’utilisateur

Ce groupe de fichiers est créé dans l’optique de rassembler ou pour regrouper des fichiers qui ne font pas partie du groupe de fichiers primaires ou secondaires.

Remarque : Lors de la création d’une base de données, il y a un fichiers de données primaires et un journal de transaction qui sont créés par défaut.


3. Création d’une base de données

La création d’une base de données peut se faire via l’interface graphique de Management Studio ou directement par Transact-SQL.

a) Management Studio

Lancer Management Studio

Faire un clic droit sur Base de données – Nouvelle base de données

Renseigner le champ nom : _espdb

Cliquer sur OK

b) Transact-SQL

Cliquer sur Nouvelle Requête

Taper le code suivant :

Create database _espdb

On

(name=_espdb_dat,

Filename= 'C:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\DATA\_espdb_dat.mdf',

Size=10,

Maxsize=50,

Filegrowth=5)

Log on

(name=_espdb_log,

Filename= 'C:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\DATA\_espdb_log.ldf',

Size=5MB,

Maxsize=25MB,

Filegrowth=5MB)


Cliquer sur l’icône Analyser pour vérifier la syntaxe

Si aucune erreur n’est signalée cliquer sur Exécuter

Faire un clic droit sur la base de données _espdbPropriétés



4. Les schémas

Le schéma représente un espace de nommage pour les objets de la base de données. Toutes les bases de données créées ont un shéma, le schéma par défaut s’appelle dbo.

Pour accéder à un objet de la base de données il faut mettre nomschéma.nomobjetBaseDeDonnées ou nomBaseDeDonnées.nomschéma.nomObjetBaseDeDonnées

Pour créer un schéma il faut faire un clic droit sur _espdb -- Nouvelle Requête et saisir ce qui suit :

create schema MySales

create table MySales.Salesdat

(SalesId int not null Primary Key,

SalesAmount float not null)



B. Gestion de base de données

La gestion d’une base de données inclut des activités telles que l’ajout, la suppression de fichiers et de groupes de fichiers ainsi que la modification de la taille de fichiers et de groupe de fichiers. La base de données peut être supprimée si elle n’est plus utilisée.

Les secondes opérations de gestion sont relatives au déplacement d’un serveur de base de données à une autre ou d’une instance SQL SERVER vers une autre instance sur le même serveur.

En plus des tâches de maintenance régulière il arrive parfois qu’un administrateur de base de données doit accomplir d’autres tâches telles que le contrôle de la performance d’exécution des requêtes ou le contrôle de la quantité d’espace de disque libre.

Une telle analyse permet d’améliorer les performances de la base de données. L’administrateur de base de données est également responsable pour l’obtention des infos sur l’efficacité des index créés.

L’une des tâches fondamentales est de pouvoir maintenir la taille de la base de données. Une des méthodes utilisées pour y parvenir est de libérer l’espace non utilisé. Cette espace libre peut alors être utilisée pour enregistrer d’autres objets de la base de données.

Il faut aussi effectuer des contrôles d’intégrité de la base de données pour assurer que les données sont fiables et consistantes.


1. Modification d’une base de données

Il est nécessaire d’ajouter ou de modifier un fichier ou un groupe de fichiers ou encore supprimer un fichier de la base de données. Pour effectuer ces opérations on utilise l’instruction Alter database.

Ajout d’un groupe de fichiers :

Alter database _espdb

add filegroup EmpFG

Ajouter un ficher au groupe de fichers créé :

Alter database _espdb

add file (

name=EmpFGFile1,

filename='C:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\DATA\EmpFGFile1.ndf',

size=10,

maxsize=100,

filegrowth=10)

Ajout d' un fichier à EmpFG

Alter database _espdb

add file (

name=EmpFGFile2,

filename='C:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\DATA\EmpFGFile2.ndf',

size=10,

maxsize=100,

filegrowth=10)

to filegroup EmpFG


Remarque : Il ne peut y avoir qu’un seul fichier de données primaires .mdf par base de données.

Actualiser la base de données et faire un clic droit dessus – Propriétés – Fichiers



2. Suppression de base de données

Taper la commande : drop database nomBaseDeDonnées


3. Migration d’une base de données


a) Création d’une seconde instance

Lancer le setup.exe

Sélectionner SQL Server Database Services

Cliquer sur Suivant



Sélectionner Instance nommée

Saisir ESP22

Cliquer sur Suivant



Sélectionner le compte système par défaut

Cliquer sur Suivant



Sélectionner le mode mixte

Saisir « esp » comme mot de passe

Cliquer sur Suivant



Cliquer sur Suivant



Cliquer sur Installer



Cliquer sur Suivant



Cliquer sur Terminer



Démarrer Management Studio

Cliquer sur Connexion – Parcourir – Moteur de base de données

Choisir la nouvelle instance

Cliquer sur OK

b) Migration d’une base de données

Nous allons détacher la base de données _espdb sur l’instance ESP2 et le faire migrer sur la nouvelle instance ESP22. Pour ce faire :

Faire un clic droit sur _espdb Propriétés Options

Aller sur Restreindre l’accès et choisir l’option Single (Ceci permet de bloquer les accès à la base de données)

Cliquer sur OK -- Oui


Faire un clic droit sur _espdb – Tâches – Détacher

Activer mettre à jour

Décocher conserver les catalogues

Cliquer sur OK


Aller sur la nouvelle instance

Faire un clic droit sur Base de données – Joindre—Ajouter

Aller dans MSSQL – Data

Sélectionner _espdb_dat.mdf

Cliquer sur OK


Pour réaliser cette tâche avec Transact-SQL il faut faire :

Sp_detach_db ‘_espdb’ , true


4. Gestion des statistiques

a) Création de statistiques

Les statistiques peuvent être créés pour des colonnes spécifiques d’une table ou d’une vue. Pour créer une statistique il faut taper la commande create statistics.

REMARQUE : A partir de Management Studio aller dans Aide puis Index et taper create statistics. Vous verrez toutes les fonctionnalités de cette commande.


Création de groupe de statistiques dans la table AdventureWorks

Cliquer sur Nouvelle Requête

Taper le code qui suit :

create statistics ContactEmail

on Person.Contact(ContactID,EmailAddress)



Renvoyer l’ensemble des groupes de statistiques de la table Person.Contact

Taper Sp_helpstats'Person.Contact','All'



Voir le contenu du groupe de statistiques

Taper dbcc show_statistics('Person.Contact','ContactEmail')



b) Mise à jour des statistiques

On utilise la commande

update statistics Person.Contact ContactEmail



5. Réduction d’une base de données

Il devient essentiel de vérifier la taille de la taille de la base de données lorsque le volume de données s’accroît. L’administrateur de base de données doit contrôler la taille de la base de données pour améliorer les performances.

Pour réduire la taille d’un fichier il faut taper la commande

dbcc shrinkfile

Pour réduire la taille d’une base de données il faut taper la commande

dbcc shrinkdatabase

EXEMPLE : faire un clic droit sur AdventureWorks – Tâches – Réduire – Fichier

Cocher l’option Réorganiser les pages avant de libérer l’espace inutilisé

Mettre 1Mo

Cliquer sur OK


6. Expansion de la base de données

Avec l’accroissement du volume des données dans la base de données, les fichiers d’enregistrement peuvent atteindre leur taille maximale, il est donc nécessaire d’augmenter la taille de la base de données pour admettre plus de données.

Faire un clic droit sur AdventureWorks – Propriétés -- Fichiers



7. Réalisation de vérification d’intégrité de la base de données

dbcc permet en plus de réduire la taille de la base de données, de contrôler l’intégrité d’une base de données.

dbcc checkdb permet de contrôler la cohérence et l’intégrité de la base de données.

dbcc checkalloc permet de contrôler la cohérence de l’allocation de l’espace disque d’une base de données particulière

dbcc table est identique à dbcc checkdb à la différence qu’elle contrôle une seule vue indexée ou un index particulier.


8. Automatisation de la base de données avec un agent SQL Server

Un administrateur de base de données est responsable d’assurer la cohérence, la fiabilité et l’actualisation des données d’une base de données. Pour ce faire certaines tâches administratives doivent être effectuées périodiquement. Dans cette optique il est possible d’automatiser leur exécution grâce à SQL Server Agent.


Etude de cas : En tant qu’administrateur de base de données vous devez souvent démarrer ou arrêter le service de texte intégral sur votre serveur de base de données. Pour ce faire, vous avez décidé de créer un travail avec SQL Server Agent. Quand le travail est exécuté, vous devez envoyer une notification à l’administrateur système de votre entreprise à l’aide du service de messagerie de windows. L’adresse IP de la machine de l’administrateur système est 10.10.10.142.

Pour résoudre ce problème, des tâches suivantes devront être effectuées


a) Création d’un opérateur

La création d’un travail pour expédier une notification à l’administrateur quand le service de texte intégral démarre nécessite la création d’un opérateur.

Pour ce faire il faut :

Aller dans l’explorateur d’objets de Management Studio

Faire un clic droit sur Agent SQL Server

Cliquer sur Démarrer puis sur OUI

Dérouler Agent SQL Server

Faire un clic droit sur Opérateurs

Cliquer sur Nouvel opérateur


Renseigner les informations suivantes :

Nom : kiki

Adresse : Net Send



NB : Il faut que le service Windows Messenger soit configuré préalablement.


b) Création d’un travail

Faire un clic droit sur Travaux – Nouveau Travail

Renseigner les informations suivantes :

Nom : Démarrer service de recherche de texte intégral

Propriétaire : DEV1\sgedd

Description : Travail de service de recherche de texte intégral



Cliquer sur Etapes – Nouveau



Renseigner les informations suivantes :

Nom de l’étape: Démarrer service de recherche de texte intégral

Type : Système d’exploitation

Commande : Net Start msftesql$ESP2



Cliquer sur OK puis Notifications



Choisir l’opérateur kiki

Choisir l’option « Lorsque le travail est terminé »



Faire un clic droit sur Démarrer service de recherche de texte intégral

Cliquer sur Afficher l’historique -- Fermer



Etude de cas : En tant qu’administrateur, vous voulez accomplir une activité impliquant l’insertion en vrac dans la base de données AdventureWorks. Quand vous l’accomplissez elle échoue par manque d’espace dans la base de données tempdb.Vous souhaitez donc une alerte dans la base de données tmpdb. Cette alerte doit être lancée dès que la base de données tempdb n’a que 10Mo d’espace libre. L’alerte doit délivrer le message « Augumenter la taille de la base de données tempdb pour résoudre le problème ».


c) Création d’une alerte

Faire un clic droit sur Agent SQL Server

Cliquer sur Alerte – Nouvelle alerte

Nom : tempdbalerte

Type : Alerte de condition de performance SQL Server

Objet : MSSQL$ESP2 : Databases

Compteur : Data File(s) Size(KB)

Instance : tempdb

Alerte : devient égal à

Valeur : 100 000


Aller sur l’onglet Réponses

Cocher « Notifier les opérateurs »

Cocher Net Send


Aller sur l’onglet Options

Cocher Net Send

Noter « Augumenter la taille de la base de données tempdb »

Cliquer sur OK



Aucun commentaire: