Vous êtes sur la page 1sur 94

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)
Algèbre relationnelle
• L’algèbre relationnelle est le langage de
manipulation utilisé par le SGBD pour effectuer des
opérations sur les relations (tables).
• Les requêtes SQL soumises par l’utilisateur sont
traduites par le SGBD en opérations de l’algèbre
relationnelle.
• Localiser des données dans la base qui répondent à
certains critères.
• Exemple: Personnes qui ont Samir Personne
CIN Nom Prénom
comme prénom MA345 NAJI Kaouter
FJ653 RABEH Samir
RV481 LIMAM Fadi

Algèbre relationnelle: Union U
L’union de deux tables est l'ensemble des occurrences qui appartiennent
soit à la première table, soit à la deuxième, soit aux deux tables. C’est la
traduction du OU logique.

Formalisme : Exemple :
R1 Nom Prénom
R = R1 U R2
NAJI Kaouter
ou RABEH Samir
R Nom Prénom

NAJI Kaouter
R = UNION (R1 , R2) LIMAM Fadi
RABEH Samir

LIMAM Fadi

R2 Nom Prénom SALEM Rajae


Remarque : NAJI Kaouter LMALKI Mounir
Pas de duplication des n-uplets.
SALEM Rajae

LMALKI Mounir
Algèbre relationnelle: Intersection ∩
L'intersection de deux relations est l'ensemble des occurrences
qui sont présentes dans les deux relations. C’est la traduction du
ET logique.
.
Formalisme : Exemple : R1 Nom Prénom

NAJI Kaouter
R = R1 ∩ R2 RABEH Samir

ou LIMAM Fadi
R Nom Prénom

R = INTERSECTION NAJI Kaouter

(R1, R2) R2 Nom Prénom

NAJI Kaouter

NAJI Rajae

LMALKI Mounir
Algèbre relationnelle: Différence –
La différence entre deux tables est l'ensemble des occurrences
qui appartiennent à une table sans appartenir à la seconde.
Attention, cette opération a un sens.
R1 Nom Prénom
Formalisme : Exemple :
NAJI Kaouter

R = R1 - R2 RABEH Samir
R1-R2 Nom Prénom
RABEH Samir
ou LIMAM Fadi

R = DIFFERENCE (R1, R2) R2 Nom Prénom


R2-R1 Nom Prénom
NAJI Kaouter
NAJI Rajae
NAJI Rajae
.
Remarque : LIMAM Fadi

L’opération différence est non


commutative
Algèbre relationnelle: Produit cartésien x
Le produit cartésien de 2 tables consiste à combiner
toutes les possibilités d’associations d’occurrences des 2
tables. Chaque ligne de R1 sera concaténée à chaque ligne de
R2.
Formalisme : Exemple :
x( + ) = x + x
R = R1 x R2 R1 Nom Prénom

ou NAJI
RABEH
Kaouter
Samir

R = PRODUIT (R1, R2) R1xR2 Nom Prénom Age Ville

NAJI Kaouter 19 Er-riche

R2 Age Ville
NAJI Kaouter 21 Rissani
19 Er-riche
21 Rissani RABEH Samir 19 Er-riche

RABEH Samir 21 Rissani


Algèbre relationnelle: Sélection σ
La sélection consiste à extraire d’une relation les occurrences
satisfaisant aux critères de sélection.

Formalisme :
Exemple : R1 Nom Prénom Age Ville
R2 = SELECTION (R1, critère(s)) SABER IMRANE 19 Er-riche

ou On aimerait avoir les personnes NAJI Kaouter 21 Rissani

habitant à Rissani RABEH Samir 17 Tinghir


R2 = σ critère(s)(R1) ? JABRI Yassine 25 Rissani

✓σ Ville = ‘Rissani(R1)
Critères de sélection : R2 Nom Prénom Age Ville
✓SELECTION (R1, Ville =
Opérateurs de comparaison : ‘Rissani
NAJI Kaouter 21 Rissani

JABRI Yassine 25 Rissani


✓ <, <=, =, >, >=, ? )

Opérateurs logiques :
✓ ET, OU (entre deux comparaisons)
✓ NON (pour renverser la comparaison)
Algèbre relationnelle: Projection Π
La projection d'une relation consiste en la mise en place d'une
nouvelle relation en ne retenant que certaines colonnes
(attributs) et en supprimant les occurrences en double.
Formalisme : R1 Nom Prénom Age Ville
Exemple :
R2 = PROJECTION (R1, SABER IMRANE 19 Er-riche
NAJI Kaouter 21 Rissani
colonne 1, colonne 2, … ) SABER IMRANE 19 Er-riche

ou NAJI Kaouter 21 Rissani

R2 = Π colonne1, colonne2, … R2 Nom Age

(R1) SABER 19
NAJI 21

Remarque : On aimerait avoir les Noms et Ages


▪ R1 est la table utilisée par la projection. de toutes les personnes de R1 ?
▪ R2 est la table résultat. ✓Π Nom, Age (R1)
▪ Pas de duplication des occurrences. ✓PROJECTION (R1, Nom, Age)
Algèbre relationnelle: Division /
La division permet de trouver les occurrences d’une table qui
sont associées à toutes les occurrences d’une autre table (qui
le plus souvent est le résultat d’une sélection).
Formalisme :
Exemple :
R = DIVISION (R1, R2)
ou R1 Nom Note

SABER 14
R = R1/ R2 R1/R2 Nom
NAJI 17
R2 Note
RIDANI 12 09 SABER
14
JABRI 09

NAJI 14
Remarque : SABER 09
▪ L’opération Division est non commutative
Algèbre relationnelle: Jointure ►◄
La jointure consiste à créer une nouvelle table à partir de deux
tables ayant un champ commun (attribut) et vérifiant un critère
de jointure.
Formalisme :
R = JOINTURE R1, R2 (R1.attr_jointure op_comparaison R2.attr_jointure)
R = R1 ►◄ R2 (R1.attr_jointure op_comparaison R2.attr_jointure)

Exemple : R = R1 ►◄ R2 (R1.Cours = R2.Cours)


R1 Cours Profs R2 Étudiant Cours Note R Cours Profs Étudiant Note

Informatique Naji Mounir Biologie 14


Biologie Jabri Mounir 14
Biologie Jabri Naoual Biologie 10
Biologie Jabri Naoual 10
Chimie Fadili Khadija Physique 16

Géologie Salmi Hafid Chimie 09 Chimie Fadili Hafid 09


Algèbre relationnelle: exercice
 CJH (IdCours, Jour, Heure)
 CS (IdCours, IdSalle)
 ENA (IdEtudiant, Nom, Adresse)
 CEN (IdCours, IdEtudiant, Note)
Algèbre relationnelle: exercice 1
1. Donner les résultats des projections suivantes :
R1 = πCJH (IdCours)
R2 = πENA (IdEtudiant)

2. Donner le résultat R3 de la restriction σCEN (IdCours =


’Algo’)

3. Donner le résultat R4 de la jointure CJH × CS (CJH.IdCours =


CS.IdCours)

4. Donner le résultat R6 de la suite d’opérations suivante :


R5 = πCEN (IdEtudiant, IdCours)
R6 = R5 ÷ R1
Algèbre relationnelle: exercice 1
5. Donner le résultat R11 de la suite d’opérations suivante :
R7 = R2 × R1
R8 = R7 – R5
R9 = πR5 (IdEtudiant)
R10 = πR8 (IdEtudiant)
R11 = R9 – R10

6) Comparez le résultat de 4 avec celui de 5 que représente-t-


il ?
Algèbre relationnelle: exercice 2
Exprimer les requêtes ci-dessous dans le langage algébrique:

1. Donner les noms des étudiants qui suivent le cours ‘Algo’.


2. Donner les notes en ‘Archi’ des étudiants dont le nom est
‘Titi’.
3. Donner les couples (jour, heure) pour lesquels la salle ‘S1’
est occupée par un cours.
4. Donner les identifiants des étudiants qui n’ont que des
notes ‘A’
5. Donner la salle où se trouve ‘Toto’ le lundi à 9h.

Vous aimerez peut-être aussi