SQL SERVER
Pr HAJAR LAZAR
PLAN
I. Initiation au SGBD Microsoft SQL SERVER
II. Utilisation du langage de manipulation de données (LMD)
III. Introduction au langage Transact SQL (T-SQL)
IV. La gestion des utilisateurs
V. Sauvegarde et restauration d’une base de données
SQLSERVER
VI. Sécurité d’une base de données SQLSERVER
Système d’information
Système constitué des ressources
humaines, des ressources matérielles et
des procédures permettant d'acquérir, de
stocker, de traiter et de diffuser les
éléments d'information pertinents au
fonctionnement d'une organisation »
Modélisation des données
La modélisation des données est l'analyse et la conception
de l'information contenue dans le système d'information.
MERISE est une méthode d’analyse et de conception utilisée
dans les projets informatique pour modéliser les SGBD
relationnelles.
UML est plus un “langage” de diagramme orienté objet. Il est
représenté par les objets métiers et les traitements (méthodes)
associés.
Modélisation des données
✓Le modèle entité/association E/A est un formalisme
graphique pour la modélisation de données.
✓Succès dus à :
➢Langage graphique
➢Concepts simples :
▪ Eléments (objets) → entités
▪ Liens entre les éléments (objets) → association
Modélisation des données
Attribut :
• propriété d’une entité.
• prend des valeurs simples, par exemple entiers ou chaînes de caractères
(domaine d'attribut)
Exemple :
✓ Id_Personne
Entité ✓ Nom Attributs
✓ Prénom
✓ Age
✓ Adresse
✓ NumTél
Personne
Modélisation des données
Identifiant / Clé primaire :
• C’est la propriété qui identifie de façon unique chaque occurrence d’entité.
Exemple :
✓ Id_Personne
✓ Nom
Entité ✓ Prénom Attributs
✓ Age
✓ Adresse
✓ NumTél
Personne
Modélisation des données
Association (Relation) :
• C’est un lien entre deux ou plusieurs entités.
Exemple : une personne achète un produit.
Entités
Achète
Personne Produit
Modélisation des données
Association (Relation) :
• C’est un lien entre deux ou plusieurs entités.
Degré d’une Association
Exemple :
Si K est le degré d’une association :
Personne
✓ K = 1 : relation unaire (ou récursive) CIN Être parent
Nom
R E Prénom
Modélisation des données
Association (Relation) :
• C’est un lien entre deux ou plusieurs entités.
Degré d’une Association
Exemple :
Si K est le degré d’une association :
✓ K = 2 : relation binaire
Personne Passport
CIN Possède Num_Pass
Nom Date_emission
A R B Prénom Province
Modélisation des données
Association (Relation) :
• C’est un lien entre deux ou plusieurs entités.
Degré d’une Association
Exemple : Local
Si K est le degré d’une association : Num_Local
Nom
✓ K = 3 : relation ternaire Capacité
A R B Professeur Module
CIN Enseigner Code_Module
Nom Nom
Prénom Niveau
C
Modélisation des données
Cardinalité :
▪ Mesure le degré de participation de l’entité à l’association.
▪ Nous avons 4 possibilités :
Sens de lecture
o 0,1 : au moins zéro, au plus
1 1 4
Client 3 2 Produit
o 0,n : au moins zéro, au plus CodeClient Num_Produit
1,n Achète 0,n
n Nom Nom
Prénom 3 Désignation
o 1,1 : au moins 1, au plus 1 Adresse 2 Fabricant
4 1
o 1,n : au moins 1, au plus n
▪ Cardinalités minimales : 0 et 1 ✓ Un client achète un ou plusieurs produits.
▪ Cardinalités maximales : 1 et n
✓ Un produit est acheté par aucun ou plusieurs client.
Modélisation des données
Résumé
Entités Attributs Identifiants Association Cardinalités
Nom_Auteur Titre
Id_livre
Id_Auteur
1,n 1,1
Auteur Écrire Livre
Pénom_Auteur
Année_Édition
Adresse_Auteur
Modélisation des données
Exercices:
1. Proposer un diagramme du modèle Entité-Association représentant la relation entre
Personne, Voiture, et Fabricant ?
2. À partir de ce diagramme, répondre aux questions
suivantes : Auteur Livre
1,n 1,1 NumLivre
IdAuteur
Écrit Titre
Nom
1. Est-il possible d’avoir des auteurs homonymes ? Prénom
1,1
2. Un auteur peut-il écrit plusieurs livre ?
3. Un livre peut-il correspondre à plusieurs auteurs ?
Édite
4. Est-il possible qu'un éditeur ne publie aucun livre ?
1,n
Dépôt
5. Est-il possible de stocker un livre dans plusieurs Éditeur
dépôts ? Num_Dép
ôt Nom IdÉditeur
6. Est-il possible qu’un dépôt peut être utilisé par de Adresse Nom
nombreux éditeurs ?
Modélisation des données
Corrections:
1. Proposer un diagramme du modèle Entité-Association représentant la relation entre Personne,
Voiture, et Fabricant ?
Modélisation des données
Corrections:
1. Oui, car le nom n’identifie pas les auteurs. Il peut
donc y avoir des homonymes.
2. Oui, il peut le faire car sa cardinalité maximale vaut n.
3. Non, chaque livre correspond à un et un seule auteur,
car sa cardinalité minimale et maximale valent 1.
4. Non, chaque éditeur a publié au moins un livre, car
sa cardinalité minimale prend la valeur 1.
5. Oui, il peut le faire car sa cardinalité maximale vaut
n.
6. Oui, un dépôt peut être utilisé par de nombreux
éditeurs, car sa cardinalité maximale vaut n.
Concepts de base: Les dimensions d'une
application
Interface Stations de travail
Langages de programmation
Traitements Manipulation de données
SGBD
Données Bases de Données
Concepts de base: architecture
client/serveur
Une application qui utilise SQL Server s’appuie sur une architecture
client/serveur
Client: chargé de l’interface (exécuté sur plusieurs postes clients
simultanément)
Serveur: chargé de la gestion des données
Concepts de base: Base de données
BD est un ensemble structuré de données, sur des
supports accessibles par l’ordinateur pour satisfaire
simultanément plusieurs utilisateurs de manière sélective en
un temps opportun.
BD est un ensemble de données reliées entre-elles de
manière logique.
Tout système d’information est construit autour de bases de
données !!
Concepts de base: SGBD
Un Système de Gestion de Bases de Données SGBD est un ensemble
de logiciels (Programmes) permettant aux utilisateurs de définir, créer, maintenir,
contrôler et accéder à la Base de Données.
Concepts de base: SGBD
Objectifs des SGBD
Décrire les données indépendamment des applications
(de manière intrinsèque) ⇒ langage de définition des
données DATA DEFINITION LANGUAGE (DDL)
Manipuler les données interroger et mettre à jour les
données sans préciser d'algorithme d'accès ⇒ langage
de manipulation des données DATA MANIPULATION
LANGUAGE (DML)
Contrôler les données: intégrité, confidentialité, contrôle
des droits d'accès, autorisation ⇒ langage de contrôle
des données DATA CONTROL LANGUAGE (DCL)
Introduction à SQL Server
Système de Gestion de base de données (SGBD) relationnelle
Commercialisé par Microsoft
Sortie en 1989
Comme tous les SGBD:
Garantie les opérations de stockage et CRUD
Mais SQL Server
Gère les relations entre les tables et assure l’intégrité
Garantit la cohérence même en cas de panne
Traitements parallèles
Offre une sécurité forte
Porté sur plusieurs plateformes, dont Windows, Linux et Mac,
Introduction à SQL Server
SQL Server Integration: Outil
d’importation et d’exportation des
données, facile à mettre en place et à
paramétrer
Reporting services: Permet la création
de rapport pour présenter au mieux les
informations contenues dans SQL server
Replication des données permet de
stoker les données sur plusieurs sites
Introduction à SQL Server
Installer le SGBD (3 versions disponibles)
SQL Server: version entreprise (payante)
SQL Express: version gratuite pour application de bureau,
appli web ou appli serveur
SQL Server dev.: fonctionnalités cédées sous licence
Un outil de configuration/administration
SQL Server Management Studio (SSMS): offre une interface
graphique pour administrer la base de données
Un outil pour gérer tous les services
SQL Server Configuration Manager: permet de gérer tous
les services autour de SQL Server
Introduction à SQL Server
SQL Server s’utilise lui-même pour stocker l’ensemble des
données.
Deux types de base de données
Base de données système (ne pas modifier, ni renommer)
Base de données utilisateur
Introduction à SQL Server
Base de données système
master: base principale, ensemble des données stratégiques
(compte utilisateurs, option de configuration, base utilisateurs,
fichiers, etc.)
model ensemble des éléments inscrits dans les bases utilisateurs.
msdb utilisée par l'Agent SQL Server pour planifier des alertes et des
travaux, ainsi que par d'autres fonctionnalités telles que SQL
tempdb espace temporaire de stockage partagé. Elle est récréée
à chaque démarrage.
Base de données utilisateur
Héberge les données des applications métiers
Modèle Relationnel
Pour construire une base de données, il faut :
1. Construire un schéma conceptuel, modélisé sous forme
d’entités et d’associations ;
2. Transformer le schéma E/A en schéma relationnel ;
3. Mettre en œuvre via un SGBD.
Règles de passage du E/A au MR
Règle numéro 1 :
a) Chaque entité d’un modèle E/A devient une relation, c’est à
dire une table.
b) Son identifiant devient la clé primaire de la relation.
c) Les autres propriétés deviennent les attributs de la
relation.
Exemple :
Entité
Relation SGBD
Personne
CIN Nom Prénom
CIN
MA345 Jean Jorden
Nom Personne (CIN, Nom, Prénom, Age)
Prénom …
Règles de passage du E/A au MR
Règle numéro 2 :
Une association de type 1:N :
a) se traduit par la création d’une clé étrangère dans la
relation correspondante à l’entité côté « 1 ».
b) cette clé étrangère référence la clé primaire de la relation
correspondant à l’entité côté « N ».
Exemple :
La clé étrangère est précédée d'un #
1:N
Etudiant Filière
1,1 1,n Schémas
CNE IdFilière
Appartient Relationnels ✓ Etudiant (CNE, Nom, Prénom, #IdFilière)
Nom Nom
Prénom Nb-Etud
✓Filière (IdFilière, Nom, Nb-Etud)
Règles de passage du E/A au MR
Règle numéro 3 :
Une association de type N:N :
a)Création d’une nouvelle table dont la clé primaire est l'ensemble
des identifiants des entités associées.
b)Toute propriété de l'association devient attribut de la nouvelle
table.
Exemple :
N:N
Commande Produit Schémas ✓Commande (IdCom, Date, Montant)
IdCom 1,n Contient 0,n IdProduit Relationnels
Qte
✓Produit (IdProduit, Nom, Prix)
Date Nom
Montant Prix
✓Contenir (#IdCom, #IdProduit,Qte)
Règles de passage du E/A au MR
Règle numéro 4 :
Une association de type 1:1 :
a) Cela dépend fonctionnellement sur l’entité la plus important.
Exemple :
1 Si fonctionnellement, le Chauffeur est le plus important :
1:1
Chauffeur Taxi Schémas
IdChauf 1,1 0,1 IdTaxi Relationnels
Conduit Chauffeur (IdChauf, Nom, Prénom,
Nom Marque
IdTaxi, Marque, Type)
Prénom Type
Règles de passage du E/A au MR
Règle numéro 4 :
Une association de type 1:1 :
a) Cela dépend fonctionnellement sur l’entité la plus important.
Exemple :
2 Si fonctionnellement, le Taxi est le plus important :
1:1
Chauffeur Taxi Schémas
IdChauf 1,1 0,1 IdTaxi Relationnels
Conduit Taxi (IdTaxi, Marque, Type, IdChauf,
Nom Marque
Prénom Type Nom, Prénom)
Règles de passage du E/A au MR
Règle numéro 4 :
Une association de type 1:1 :
a) Cela dépend fonctionnellement sur l’entité la plus important.
Exemple :
3
Si le modèle peut évoluer ou si on a une distinction fonctionnelle
forte entre les entités:
1:1 :
Chauffeur (IdChauf, Nom, Prénom, #IdTaxi)
Chauffeur Taxi Schémas
IdChauf 1,1 0,1 IdTaxi Relationnels Taxi (IdTaxi, Marque, Type)
Conduit
Nom Marque Ou
Prénom Type Chauffeur (IdChauf, Nom, Prénom)
Taxi (IdTaxi, Marque, Type, #IdChauf)
Exercice
Établir le modèle MR (schémas relationnels) du modèle E/A suivant :
Corrigé
✓Auteur (IdAuteur, Nom, Prénom)
✓Livre (NumLivre, Nom, Prénom, #IdAuteur, #IdÉditeur)
✓Éditeur (IdÉditeur, Nom)
✓Dépôt (Num_Dépôt, Nom, Adresse)
✓Stocker (#NumLivre, #IdÉditeur, #Num_Dépôt)
Qualité d’un schéma relationnel :
formes normales
Conception du modèle relationnel (schéma) à partir du
réel
Deux approches
Approche “brute - force” :
- Identifier des attributs d'intérêt
- repartir les attributs dans plusieurs relations
Approche modélisation conceptuelle :
- production d’un modèle conceptuel
- traduction en relationnel (automatique)
- potentiellement : ultérieur raffinement
Qualité d’un schéma relationnel :
formes normales
Dans les deux cas on a besoin de :
- savoir détecter si un schéma relationnel a ou non de
“bonnes propriétés”
- si ce n’est pas le cas : des techniques pour le reconduire à
un “bon” schéma (forme normale)
Quelles sont de “bonnes propriétés” d’un schéma
relationnel?
Qualité d’un schéma relationnel :
formes normales
Exemple: Attributs relatifs à des vendeurs, produits, et
fournitures
V#: numéro de vendeur
Vnom: nom du vendeur
Vville: ville du vendeur
P#: numéro du produit
Pnom: nom du produit
Pville: ville où le produit est stocké
Qte: quantité de produit fournie au vendeur
Qualité d’un schéma relationnel :
formes normales
Un schéma relationnel possible : une seule relation “fourniture”
avec tous les attributs
R (V#, Vnom, Vville, P#, Pnom, Pville, Qte)
C’est une mauvaise modélisation!
1) Redondance
• Vnom et Vville sont déterminés par V#,
si deux fournitures ont le même V# , elles
ont aussi le même Vville et le même
Vnom
• Le vendeur 3 est MagicV et est basé à
Paris, une fois pour chaque fourniture :
redondant
Qualité d’un schéma relationnel :
formes normales
2) Anomalies de mise à jour: Vnom ou Vville pourrait être mis à
jour dans une fourniture et pas dans une autre, ce qui
donnerait une incohérence.
3) Anomalies d’insertion : On ne peut pas stocker un vendeur
s’il ne reçoit pas de fourniture
4) Anomalies de suppression : Si on supprime toutes les
fournitures d’un vendeur, on perd toute l’info sur ce vendeur
Qualité d’un schéma relationnel :
formes normales
Solution : un “bon” schéma
Vendeur ( V, Vnom, Vville ) Clef: V
Produit ( P, Pnom, Pville ) Clef: P
Fourniture( V, P, Qte ) Clef: V# P#
La théorie de la normalisation des bd relationnelles nous donne:
Des formes normales :
• propriétés d’un schémas qui garantissent absence (ou réduction) de
redondance, et des anomalies qui en dérivent
• définies par rapport à un ensemble de contraintes (appelés
dépendances)
Des techniques de normalisation : passage d’un schéma arbitraire
(mauvais) à un schéma en forme normale (typiquement par
décomposition)
Qualité d’un schéma relationnel :
formes normales
La normalisation est un algorithme qui consiste de partir d'une table
universelle composée de la totalité des attributs pour avoir plusieurs
tables.
Cet algorithme de normalisation est constitué des étapes qui vérifient si
les tables sont dans états bien définies. Ces états s'appellent : les
formes normales.
Formes normales :
✓ Les formes normales s’appliquent aux entités et aux associations.
✓ Elles ont pour objectif de vérifier la non redondance de l’information
dans le modèle et de proposer les transformations applicables sans
perte d’informations.
Qualité d’un schéma relationnel :
formes normales
Une relation est en 1ère forme normale si :
✓Elle possède au moins une clé ;
✓Tous ses attributs sont atomiques : ils ne sont pas
des propriétés répétitives ou décomposables.
Valeur Atomique:
• Ne regroupe pas plusieurs valeurs
• Et la subdivision de la donnée initiale n’apporte
pas de valeur complémentaire ou supplémentaire
Qualité d’un schéma relationnel :
formes normales
Deux types de valeurs non atomique:
Premier cas:
Table Etudiant-Cours
Qualité d’un schéma relationnel :
formes normales
Premier cas:
Qualité d’un schéma relationnel :
formes normales
Deux types de valeurs non atomique:
Deuxième cas:
Qualité d’un schéma relationnel :
formes normales
Deux types de valeurs non atomique:
Deuxième cas: Solution 1
Qualité d’un schéma relationnel :
formes normales
Deux types de valeurs non atomique:
Deuxième cas: Solution optimale
Qualité d’un schéma relationnel :
formes normales
Deux types de valeurs non atomique:
Deuxième cas: Solution optimale
Qualité d’un schéma relationnel :
formes normales
Processus de mise en 1ère forme normale :
• Diviser les colonnes multivaleurs pour que chaque
colonne contient des valeurs atomiques
• Faire une duplication de ligne
• Si la relation ne possède aucune clé, ajouter une
L’impact de 1FN sur la table:
• Les attributs composites ou multivalués sont interdits
• Augmentation de la performance du SGBD en évitant
de parcourir les attributs sous forme de liste
Qualité d’un schéma relationnel :
formes normales
Une relation est en 2ère forme normale si :
✓La table soit déjà en 1ère forme normale ;
✓La table possède une clé élémentaire (formée à
partir d'un seul attribut ) ;
✓Si la table possède une clé composée, les autres
attributs doit dépendre de la totalité de cette clé.
Qualité d’un schéma relationnel :
formes normales
Une relation est en 2ère forme normale si :
✓ La table soit déjà en 1ère forme normale ;
Qualité d’un schéma relationnel :
formes normales
Une relation est en 2ère forme normale si :
✓ Identifier la clé primaire
✓ Impossible d’utiliser une seule clé primaire composée d’une seule
colonne
Qualité d’un schéma relationnel :
formes normales
Une relation est en 2ère forme normale si :
✓ Identifier la clé primaire composite
Qualité d’un schéma relationnel :
formes normales
Une relation est en 2ère forme normale si :
✓ Les attributs non clé doivent dépendre complétement de la clé
primaire
Qualité d’un schéma relationnel :
formes normales
Une relation est en 2ère forme normale si :
✓ Les attributs non clé doivent dépendre complétement de la clé
primaire
Qualité d’un schéma relationnel :
formes normales
Une relation est en 2ère forme normale si :
✓ Les attributs non clé doivent dépendre complétement de la clé
primaire
Qualité d’un schéma relationnel :
formes normales
Processus de mise en 2ère forme normale :
• Conserver dans la table initiale les attributs
dépendants de la totalité de la clé.
• Regrouper dans une nouvelle table les
champs dépendants d'une partie de la clé, et
faire cette partie la clé primaire de la nouvelle
table.
Qualité d’un schéma relationnel :
formes normales
Processus de mise en 2ère forme normale :
Table Etudiant
Qualité d’un schéma relationnel :
formes normales
Processus de mise en 2ère forme normale :
Table cours
Qualité d’un schéma relationnel :
formes normales
Processus de mise en 2ère forme normale :
Table Etudiant_Cours
Qualité d’un schéma relationnel :
formes normales
L’impact de 2FN sur la table:
• Elimination des redondances
• Les attributs dépendent complétement de la clé
primaire
Qualité d’un schéma relationnel :
formes normales
Une relation est en 3ère forme normale si :
✓La table soit déjà en 2ème forme normale
✓Tous les attributs non clé dépendent directement
de la clé et pas d’autres attributs (pas de
transitivité).
Dépendance transitive:
Attribut non clé dépend d’un autre attribut non clé
indirectement via son candidat clé
Qualité d’un schéma relationnel :
formes normales
Une relation est en 3ère forme normale
Table Etudiant est en 3eme forme normale
Qualité d’un schéma relationnel :
formes normales
Une relation est en 3ère forme normale
Table Cours n’est pas en 3eme forme normale
Qualité d’un schéma relationnel :
formes normales
Une relation est en 3ère forme normale
Table Cours n’est pas en 3eme forme normale
Qualité d’un schéma relationnel :
formes normales
Processus de mise en 3ère forme normale :
• Conserver dans la table initiale les attributs
dépendants directement de la clé.
• Regrouper dans une nouvelle table les
attributs dépendants transitivement de la clé.
• L’attribut de transition reste dupliqué dans la
table initiale, et devient la clé primaire de la
nouvelle table.
Qualité d’un schéma relationnel :
formes normales
Une relation est en 3ère forme normale
Qualité d’un schéma relationnel :
formes normales
Une relation est en 3ère forme normale
Table Cours
Table Professeur
Qualité d’un schéma relationnel :
formes normales
Une relation est en 3ère forme normale
Table Etudiant_Cours est en 3eme forme normale
Qualité d’un schéma relationnel :
formes normales
Une relation est en boyce-codd si :
✓La table soit déjà en 3ème forme normale
✓Tout attribut qui appartient à la clé ne
dépend pas à l’un des autres attributs non
clé.
Qualité d’un schéma relationnel :
formes normales
Une relation est en boyce-codd si :
✓Tout attribut qui appartient à la clé ne dépend pas
à l’un des autres attributs non clé.
Exemple
Personne(N SS, Pays, Nom, Région)
La région
Clé primaire détermine le pays
Donc on n’est pas en BCFN!!
Qualité d’un schéma relationnel :
formes normales
Processus de mise en Boyce-Codd forme :
• Conserver dans la table initiale tout attribut n’est pas
source d’une dépendance fonctionnelle DF vers
une partie de la clé.
• Remplacer dans la table initiale la partie de la clé
par son attribut source d'une DF.
• Regrouper dans une nouvelle table la partie de la
clé et son attribut source d'une DF, et faire cette
dernière la clé primaire de la nouvelle table.
Qualité d’un schéma relationnel :
formes normales
Processus de mise en Boyce-Codd forme :
Exemple
Personne(N SS, Pays, Nom, Région)
Clé primaire
La région
détermine le pays
BCFN
Personne(N SS, Région, Nom)
Région(Région, pays)
Exercice:
Nous considérons ce schéma relationnel résultant
d’une première enquête :
CLIENT(NumClient, RaisonSociale, NumRepresentant,
Tauxrepresentant)
D’une part chaque CLIENT n’est affecté qu’à un seul
REPRSENTANT
1) Représenter les dépendances fonctionnelles
2) Quelle est la forme normale ?
3) Définir le schéma équivalent en 3e forme normale.
Solution:
Les dépendances fonctionnelles de ce schéma :
NumClient RaisonSociale, NumRepresentant, Tauxrepresentant
NumRepresentant NumClient
NumRepresentant Tauxrepresentant
Cette relation est en 1FN et 2FN (n’est pas en 3FN)
Le schéma équivalent en 3FN est :
Client (NumClient,RaisonSociale,NumRepresentant)
Representant (NumRepresentant,Tauxrepresentant)
Exercice:
Soient la relation
R1(NumMatriculeOuvrier,NomOuvrier,NumRéparation,
NumMachine,TempsPassé,Dateréparation,NomMachine,
NumAtelier,NomAtelier)
1) Représenter les dépendances fonctionnelles
2) Clé primaire de R1 ?
3) Définir le schéma équivalent en 3e forme normale.
Solution:
Les dépendances fonctionnelles de ce schéma :
NumMatriculeOuvrier NomOuvrier
NumRéparation Dateréparation
NumMatriculeOuvrier, NumRéparation TempsPassé
NumRéparation NumMachine
NumMachine NomMachine
NumMachine NomAtelier
NumAtelier NomAtelier
NumMachine NumAtelier
Solution:
❑La clé de cette relation est (NumMatriculeOuvrier,
NumRéparation)
Solution:
Le schéma équivalent en 3FN :
Ouvrier (NumMatriculeOuvrier, NomOuvrier)
reparation( NumRéparation, NumMachine , Dateréparation)
Ouvrier_Repatation (NumMatriculeOuvrier, NumRéparation,
TempsPassé)
Machine(NumMachine, NomMachine , NumAtelier)
Atelier(NumAtelier, NomAtelier)