Vous êtes sur la page 1sur 27

Cours de Bases de données AMINA ABOULMIRA

Création d’une base de donnée – SQL Server


3
Sommaire

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


2. Contraintes d’intégrité
3. Types de données système
4. Les schémas
4
Chapitre II.
Fondement de l’administration en SQL
Server
Gérer la base de données
Les bases de données contiennent un certain nombre d’objets logiques. Il est possible de
regrouper ces objets en trois grandes catégories:

 Gestion et stockage des données: tables, type de données, contraintes d’intégrité, valeur par
défaut, règles et index.
 Accès aux données: vues et procédures stockées.
 Gestion de l’intégrité complexe: déclencheur (Trigger).

Une base peut être créée de deux façons différentes :

 Par l’intermédiaire de l’instruction Transact SQL CREATE DATABAE


 Par l’intermédiaire de SQL Server Management Studio.

4
Créer une base de données
La syntaxe Transact-SQL :

CREATE DATABASE nom_bd


ON (
NAME = nom logique de fichier,
FILENAME = chemin de fichier .mdf, Il y a deux types de fichiers pour chaque BD :
L’un .mdf et l’autre. ldf
SIZE = taille en MB , MAXSIZE = taille en MB ,
Les données sont stockées dans un fichier MDF, toutes
FILEGROWTH = pas d’increment en MB ou les transactions, les modifications de la base de données
% ) LOG ON ( SQL Server effectuées par chaque transaction sont
NAME = nom logique de fichier log, stockées dans un fichier LDF
FILENAME = chemin de fichier log .ldf ,
SIZE = taille en MB , MAXSIZE = taille en MB ,
FILEGROWTH = pas d’incrément en MB ou
%)

5
Créer une base de données
Exemple 01 :

Créer une base de données nommée


"baseBiblio". Cette base aura les caractéristiques
suivantes:

Un fichier de données:
 taille initiale: 5 Mo
 croissance du fichier: 15 %
 taille maximale: 20 Mo

Un fichier "Journal":
 taille initiale: 2 Mo
 croissance du fichier: 5%
 taille maximale: illimité
6
Créer une base de données
Exemple 01 :

CREATE DATABASE BaseBiblio


ON ( NAME = 'inscription_Data',
FILENAME = 'C:\inscription_Data.mdf' ,
SIZE = 5MB ,
MAXSIZE = 20MB ,
FILEGROWTH = 15%)
LOG ON ( NAME =
'inscription_log',
FILENAME = 'C:\inscription_log.ldf' ,
SIZE = 2MB ,
MAXSIZE = UNLIMITED,
FILEGROWTH = 5%);

7
Supprimer une base de données

La suppression d’une base de données utilisateur est une opération ponctuelle qui
peut être réalisée, comme la plupart des opérations d’administration soit par SQL
Server Management Studio, soit en Transact SQL.

La suppression de la base de données a pour conséquence de supprimer tous les


fichiers qui correspondent à cette base ainsi que toutes les données contenues dans
cette base.

Cette opération est irréversible et en cas de mauvaise manipulation, il est nécessaire


de remonter une sauvegarde.

8
Supprimer une base de données
C’est par l’intermédiaire de la DROP DATABASE que
commande supprimées les bases de données. seront

La syntaxe Transact-SQL :

use master;
go
drop
database
mabase;

9
Gérer les tables
Une table représente une structure logique dans laquelle les données vont être
rangées. Pour permettre une bonne organisation des informations, chaque table est
constituée de colonnes afin de structurer les données. Chaque colonne est
parfaitement identifiée par son nom, qui est unique à l’intérieur de la table, et
par son type de données.

10
Gérer les tables
Les données sont réparties entre plusieurs Les contraintes d’intégrité
tables. permettent de garantir la cohérence des
données.
Les trois opérations de gestion de table sont :
 La création (CREATE TABLE);
 La modification (ALTER TABLE);
 La suppression (DROP TABLE).

Ces opérations peuvent être réalisées en Transact SQL ou par SQL Server
Management Studio par un utilisateur "dbo" ou ayant reçu le droit
CREATE TABLE.

11
Créer une table
La syntaxe Transact-SQL:
CREATE TABLE nom_table( champ type , ….)

Exemple :
créer les tables suivantes :
Etudiant( code , nom , prenom , date_naiss , note,
numCla) Classe (numCla, libelle )

Solution :
CREATE TABLE Etudiant( code int, nom nvarchar(40), prenom nvarchar(40) ,
date_naiss date , note decimal(4,2) , numCla int)

CREATE TABLE Classe (numCla int, libelle nvarchar(40))

12
Les contraintes d’intégrités : PRIMARY KEY
Contraintes de clé primaire : Cette contrainte permet de définir un identifiant clé
primaire, c’est à dire une ou plusieurs colonnes n’acceptant que des valeurs uniques
dans la table (règle d’unicité ou contrainte d’entité).

Syntaxe :
ALTER TABLE nom_table
ADD CONSTRAINT nom_contrainte PRIMARY KEY(nom_champ);

Exemple :
Le champ code de la table Etudiant

Solution:
ALTER TABLE Etudiant
ADD CONSTRAINT pk_code PRIMARY KEY(code);
40
Les contraintes d’intégrités : FOREIGN KEY
Contraintes de clés étrangères : Cette contrainte permet de définir un identifiant clé
étrangère.
Syntaxe :
ALTER TABLE nom_table
ADD CONSTRAINT nom_contrainte FOREIGN KEY(nom_champ)
REFERENCES nom_table(champ);
Exemple :
Le champ numClade la table etudiant
Solution:
ALTER TABLE Etudiant
ADD CONSTRAINT fk_numClasse FOREIGN KEY(numCla)
REFERENCES classe(numCla);

14
Les contraintes d’intégrités : CHECK
Contraintes de validation : Les contraintes de validations (CHECK) vont permettre
de définir un certain nombre de règles simples de gestion des données.
Syntaxe :
ALTER TABLE nom_table
ADD CONSTRAINT nom_contrainte
CHECK(règles);
Exemple :
Définir la règle suivante : La note de l’étudiant doit être compris entre 0et 20
Solution:
ALTER TABLE etudiant
ADD CONSTRAINT contrainte_note
CHECK(note between 0 and 20);

15
Les contraintes d’intégrités : INDEX
Les index : Les index vont permettre d’accéder plus rapidement aux
différentes informations.

Syntaxe :
CREATE INDEX nom_index ON nom_table(nom_champ);

Exemple :
Définir un index pour le champ numClade la table Etudiant

Solution:
CREATE INDEX ix_numCla ON Etudiant(numCla);

16
Exercice pratique :
Dans Microsoft SQL Server :
 Créer la base de données bdetablissement
 Créer les 3 tables suivantes avec toutes les contraintes possibles

etudiant (NumEtd INT , nom nvarchar(23),prenom


nvarchar(23),adresse nvarchar(123),ville nvarchar(23))

matiere (NumMat INT , libelle nvarchar(23))

notation (NumEtd INT,NumMat INT,note decimal(4,2),dateEvaluer


datetime)

 Insérer les enregistrements dans ses 3 tables

17
Solution:
create database bdetablisement;

create table etudiant (NumEtd INT primary key, nom


nvarchar(23),prenom nvarchar(23),adresse nvarchar(123),ville
nvarchar(23));

create table matiere (NumMat INT primary key, libelle nvarchar(23));

create table notation (NumEtd INT,NumMat INT,note


decimal(2,2),dateEvaluer datetime,
Constraint pk_NumEtd_NumMat primary key (NumEtd,NumMat),
Constraint fk_NumEtd foreign key (NumEtd) references
etudiant( NumEtd),
Constraint fk_NumMat foreign key (NumMat) references
matiere( NumMat)) ;
18
Types de données système
SQL Server propose un certain nombre de synonymes par rapport à ses propres
types de base. Les synonymes sont souvent présents pour assurer la compatibilité
avec le standard ISO.
Types de données utilisateur
Il est possible de définir ses propres types de données, soit par
l’intermédiaire de Management Studio, soit par la commande CREATE
TYPE.

Syntaxe :
CREATE TYPE nom_type FROM type_base { null / not null}

20
Types de données utilisateur
Exemple :
Définir un "type de données utilisateur" nommé texte de type nvarchar(20)
non null et attribuer ce type aux champs nom de la table etudiant ?

Solution:
CREATE TYPE texte FROM nvarchar(20) not null
ALTER TABLE Etudiant
ALTER COLUMN nom texte

21
Les règles
●Une règle est un objet qui permet de spécifier les valeurs acceptables qui peuvent être insérées dans
une colonne.

●Syntaxe:
●CREATE RULE nom_regle AS condition_expression

●N.B: la procédure sp_binderule (nom_regle, table.champ )permet d’attribuer la règle à un


champ donné en argument

22
Les règles
Exemple:
Créer la règle suivante « la note de l’étudiant doit être compris entre 0 et 20
» Puis, attribuer la règle au champ note de la table notation

Solution:
CREATE RULE regle_note AS @note between 0 and 20
exec sp_bindrule ‘regle_note’,‘notation.note‘

Remarque: On peut utiliser d’autre méthode pour appliquer cette règle en utilisant la
contrainte check

50
La valeur par défaut
La valeur par défaut permet de préciser la valeur qui va être positionnée dans
la colonne si aucune information n’est précisée lors de l’insertion de la ligne.
Syntaxe :
CREATE DEFAULT nom_val_defaut AS valeur
N.B: la procédure sp_bindefault (nom_val_defaut , table.champ ) permet d’attribuer la
valeur par défaut à un champ donné en argument
Exemple :
Créer la valeur par défaut suivante: valDefautNom (Valeur = ‘anonyme’) et attribuer cette
valeur par défaut au champ nom dans la table Etudiant.
Solution:
CREATE DEFAULT valDefautNom AS ‘anonyme’
exec sp_bindefault ‘valDefautNom’,'Etudiant.nom‘
Remarque: la 2eme méthode on utilise la contrainte default:
ALTER TABLE Etudiant
ADD CONSTRAINT valDefautNom DEFAULT ‘anonyme’
FOR nom

24
Les schémas
●Un schéma est ensemble logique d’objets à l’intérieur d’une base de données à la manière de
bibliothèque package ou des espaces de noms.
●Par exemple : dbo.Etudiant signifier que l’objet table etudiant est liée au schéma dbo.

●Syntaxe :
●CREATE SCHEMA mon_Schema

●Exemple :
●Créer le schéma ecole
●Puis, Ajouter à ce schéma la table professeur ( code , nom )

●Solution:
●CREATE SCHEMA ecole
●CREATE TABLE ecole.professeur( code int , nom nvarchar(40))

25
Les schémas : Séquence
●Une séquence est un objet lié au schéma défini par l'utilisateur qui génère une séquence de valeurs
numériques (exemple : 12,14,16,18,20,…)
●Syntaxe :
●Creation d’une sequence
●CREATE SEQUENCE schema_name . sequence_name AS integer_type
●START WITH <constant>
●INCREMENT BY <constant>
●MINVALUE <constant> | NO MINVALUE MAXVALUE
<constant> | NO MAXVALUE CYCLE | NO
CYCLE

26
Merci
150

Vous aimerez peut-être aussi