Vous êtes sur la page 1sur 15

Architecture d’une base de

données SQL Server


Pr. C. El Amrani
Introduction

• Une base de données peut être définie selon plusieurs points de vu :


• Administrateur, c'est un ensemble de fichiers contenant des données
organisées, qui doivent être sauvegardées, nettoyées, réorganisées,
sécurisées, etc.
• Utilisateur, c'est un espace, lui permettant d'enregistrer des informa-
tions et de les retrouver quand il en a besoin.
• Développeur, c'est un ensemble de tables contenant des données,
d'index permettant d'accélérer leur récupération et de procédures
permettant d'y travailler de la manière la plus rapide et la plus sûre.

• Une base de données SQL Server est constituée d'au moins deux
fichiers :
• un fichier de données, avec une extension .MDF
• un fichier de journal avec une extension .LDF

Administration SQL Server


2
Introduction
Une base de donnée SQL Server est composée de plusieurs familles
d'objets:
• Les tables, contenant des données
• Les index, servant à retrouver, trier, regrouper rapidement les données
• Les déclencheurs (triggers), permettant d'exécuter des opérations particulières lors de
l'insertion, la modification ou la suppression de données
• Les types de données définis par l'utilisateur (UDDT), servant de référentiel à plusieurs
tables
• Les valeurs par défaut (Defaults), autorisant le système à insérer des valeurs dans les
colonnes non renseignées par l'utilisateur
• Les vues, ou pseudo-tables (Views), offrant une vue particulière des données aux
utilisateurs
• Les fonctions définies par l'utilisateur (UDF), permettant de renvoyer soit une valeur, soit
une table
• Les procédures stockées, exécutées par l'utilisateur pour produire un résultat donné
• Les diagrammes (Diagrams), qui visualisent les relations entre les tables.
• Schémas (à partir de SQL Server 2005/2008), contient un objet Base de Données, comme
une table une vue, etc.

Administration SQL Server


3
Création d’une Base de donnée
create database db1 on(name=db1data, filename='C:\data\db1data.mdf',size=1, maxsize=5, filegrowth=1)
Allouer 1 Mo au fichier de données

log on(name=db1log, filename='C:\backup\db1log.ldf',Size=1, maxsize=5, filegrowth=1)


Allouer 1 Mo au fichier de journal des transactions

alter database db1 modify file(name=db1data, size=2 MB)


Augmente la taille du fichier db1data à 2 Mo dbcc

dbcc shrinkdatabase (db1,10)


Réduit la taille de la base db1 pour atteindre 10% d’espace libre après réduction

drop database db1


Supprime la base de données db1 et tous ses fichiers

alter database db1 modify name=db2


Renomme la base de données db1 en db2

sp_helpdb ‘db2’
Donne des informations sur la base de données

db2 alter database db2 set read_only


Active l’option read only de la base de données db2

Administration SQL Server


4
Types de donnée

Type de donnée Type de données système


Binaire binary[(n)] varbinary[(n)]

Caractère char[(n)] varchar[(n)] Text

Unicode nchar nvarchar ntext

Date et heure datetime smalldatetime

Numérique exact decimal [(p[, s])] decimal [(p[, s])]

Numérique en virgule flottante float[(n)] real

Entier bigint int smallint tinyint

Monétaire money smallmoney

Image image

bit timestamp unique identifier cursor


Spécial
sql_variant table

Administration SQL Server


5
Création des tables
Une table peut contenir 1024 colonnes au maximum, le nombre de
lignes étant limité par la capacité de stockage du serveur. On peut
créer jusqu’à 2 milliards de tables par base

Exemple :
create table Clients
( nom char(30) Not Null,
prenom char(30) Null,
ville char(25) Not Null )

Administration SQL Server


6
Création des types de données définis par
l’utilisateur (UDDT)

Les types de données définis par l’utilisateur sont liés à une base de
données
Les TDDU permettent de constituer un référentiel de travail pour la
création de tables
Les TDDU peuvent avoir une valeur par défaut et une règle de
Validation

Exemple :
sp_addtype CodePostal, ‘char(5)’, ‘NOT NULL’
créé un type appelé CodePostal, de type char(5), n’acceptant pas des valeurs
NULL

sp_rename ancien_nom, nouveau_non, ‘USERDATATYPE’


renomme le TDDU

sp_droptype CodePostal
supprime le TDDU

Administration SQL Server


7
Les valeurs par défaut

Contrainte default
La contrainte default permet de définir la valeur par défaut attachée à une colonne de la
table.
Exemple :
create table commande
( DateComm DateTime default (GETDATE()),
Montant float(10) default 0,
NumCli int )
La colonne DateComm est initialisée avec la date système (fonction getdate()), et la
colonne montant avec la valeur 0.
alter table commande
add constraint DefNumCli default 0 for NumCli
ajoute une contrainte default à la colonne NumCli
alter table commande
drop constraint DefNumCli
supprime la contrainte DefNumCli

Administration SQL Server


8
Les valeurs par défaut

create default On peut aussi créer une valeur par défaut sans la rattacher immédiatement à une colonne.
Exemple :
create default DefCodePostal as ‘90000’

on peut associer la valeur par défaut DefCodePostal au TDDU CodePostalType :


sp_bindefault DefCodePostal, CodePostalType
sp_bindefault DefCodePostal, ‘Clients.Cp’
associe la valeur par défaut DefCodePostal à la colonne Cp de la table Clients. Les deux points
indiquent que la table Clients appartient au propriétaire de la base de données.

pour supprimer la valeur par défaut :


drop default DefCodePostal

pour délier la valeur par défaut du TDDU CodePostalType :


sp_unbindefault CodePostalType
pour délier la valeur par défaut de la colonne Cp de la table Clients :
sp_unbindefault ‘Clients.Cp’

Il faut d’abord délier la valeur par défaut, avant de pouvoir la supprimer.

Administration SQL Server


9
Les règles de validation

Les règles de validation assurent l’intégrité de domaine. Elles peuvent jouer deux rôles :
 limiter les valeurs saisies par rapport à une plage déterminée
 imposer un format de saisie
Contrainte check
Exemple 1 :
Create table test
( Nom char(25) ,
Age int check (age > 18)
Ville char)
Exemple 2 :
alter table test
add constraint ccville
check (ville in (‘tanger’, ‘rabat’, ‘fes’))

alter table test


drop constraint ccville
Supprime la contrainte ccville de la table test

Administration SQL Server


10
Les règles de validation

create rule: on peut créer des règles de validation indépendantes des


colonnes de la base de données. Puis
on peut les attacher aux colonnes ou aux types de données.
Exemple :
create rule AgeRule
as @age>=18 and @age<=65

sp_bindrule VilleRule, ‘Client.Ville’


attache la règle VilleRule à la colonne Ville de la table Client.

sp_unbindrule ‘Client.Ville’
délie la règle attachée à la colonne Ville

drop rule VilleRule


supprime la règle de validation VilleRule

Administration SQL Server


11
Les clés

Clé primaire:
Exemple :
create table test
( Nom char(25),
Prénom chakr(25) ,
constraint Pkey primary key (nom, prenom)

Clé étrangère:
Exemple :
create table test
( NumCli int,
constraint fk1 foreign key (NumCli) references test1(NumCli1) )

Clé unique: la contrainte unique assure l’unicité de chacune des lignes, la différence avec la clé primaire
c’est que la clé unique accepte en plus les valeurs NULL.
Exemple :
create table test
( matricule int,
constraint UniMat unique (matricule) )

Administration SQL Server


12
Modification d’une table

Ajouter une colonne:


Exemple :
alter table Clients
(add telephone2 varchar(15) NULL)

Modifier le type de données:


Exemple :
alter table Clients
alter column DateDeModif smalldatetime

Supprimer une colonne:


Exemple :
alter table Clients
drop column DateDeModif

Administration SQL Server


13
Les index

Un index sert à récupérer rapidement une information.

Il faut respecter quelques règles pour le choix des index :


 Ne pas créer d’index pour des tables de moins de 200-300 lignes
 Ne pas créer d’index sur une colonne qui ne possède que quelques valeurs différentes
 Indexer les colonnes qui interviennent souvent dans les clauses WHERE et ORDER BY
 Indexer les colonnes de jointure (si le SGBDR ne le fait pas automatiquement)

Il existe deux types d’index sous SQL Server : clustered (ou index ordonné) et non
clustered (ou index non ordonné). Ce dernier est l’index par défaut.

Exemple :
create clustered index NomPrenomIdx
on clients (nom, prenom)

créé un index composite appelé NomPrenomIdx, avec les colonnes nom,


prenom de la table clients

Administration SQL Server


14
Les vues

Une vue est une requête SELECT à laquelle on a donné un nom, et dont on peut se servir
comme s’il s’agissait d’une table.
Exemple :
create view vue1
as
select nom, produit, ville
from clients join commandes
on clients.numclients=commandes.numcli

Exemple : (modifier une vue)


alter view vue1
as
select nom, prenom, produit, ville
from clients join commandes
on clients.numclients=commandes.numcli

Exemple: (supprimer une vue)


drop view vue1 {restrict | cascade}
restrict : si la vue intervient dans la définition d’une autre vue ou dans une contrainte d’intégrité, la
commande sera rejetée.
cascade : la vue sera supprimée ainsi que toutes les vues et contraintes où la vue intervient.

Administration SQL Server


15

Vous aimerez peut-être aussi