0% ont trouvé ce document utile (0 vote)
122 vues86 pages

Introduction à l'algèbre relationnelle

Ce document introduit les concepts de base des bases de données et des systèmes de gestion de bases de données. Il présente l'historique des bases de données, les niveaux d'abstraction des données, les composants des SGBD et donne des exemples.
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
122 vues86 pages

Introduction à l'algèbre relationnelle

Ce document introduit les concepts de base des bases de données et des systèmes de gestion de bases de données. Il présente l'historique des bases de données, les niveaux d'abstraction des données, les composants des SGBD et donne des exemples.
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

École Nationale Polytechnique de Constantine

Deuxième année classe préparatoire

Introduction à l’algèbre
relationnelle et les bases de
données
DR. MOHAMED MAHDI BENMOUSSA
Plan

• Introduction
• Origine
• Historique
• Définitions et concepts de base
• Algèbre relationnelle
• Bases de données relationnelles
• Langage SQL
Intérêt du cours Introduction
Gestion des
données

Utilisation
Utilisation
des bases
des fichiers
de données

Système de Système
gestions des de gestion
bases de données des fichiers
Système de gestion de fichiers Introduction

Avant les
Utilisation
bases de
des fichiers
données

Inconvénients :
Coût : • Connaître l’organisation
• Système rigide des fichiers
• Situation contraignantes • Ecrire un programme pour
• Gestion longue et couteuse manipuler les fichiers
• Données mal définit • Nouvelles applications
• … implique nouveaux
fichiers et programmes
Passage aux bases de données Introduction
Pourquoi les
bases de
données (BD)
Résoudre les
Apporter des
limites de
progrès
l’utilisation des
technique
fichiers

Accès des
Maniabilité et données à
mis à jour facile n’importe quel
moment
Utilisation de
systèmes de gestion
de bases de
données
Historique Introduction

1970 :
• Début SGBD réseaux et
hiérarchiques proches des
1960 :
fichiers
Système de gestion de
• Pas d’interrogation des bases s’il
fichiers sophistiqués
n’y a pas la position et sans
programme

1990 :
• SGBD relationnel
1980 :
domine le marché
Apparition des SGBD relationnels
• Début des SGBD
orientés objet
Définition Introduction

Base de données : ensemble cohérent, intégré, partagé de données structurés


définies pour les besoins d’une application.
Système de gestion de base de données (SGBD) : logiciel permettant de couvrir les
besoins suivants :
• Définir une représentation des informations aptes à être stocké
• Interroger et manipuler (insérer, supprimer, mettre à jour) de grandes quantités de données
• Garantir la longévité et l’accessibilité de manière concurrente (plusieurs utilisateurs simultanés)
et sûre.
Objectifs des BD et SGBD Introduction
• Accès aux données sans savoir programmer
• Efficacité des accès aux données (interrogation/réponse rapide)
• Administration décentralisée des données
• Devisions  résolution plus facile

• Non-redondance des données (pour la gestion des mises à jour)


• Cohérence des données (contraintes d’intégrité)
• Partageabilité des données (plusieurs accès aux données en même temps)
• Sécurité des données (droit d’accès et accès contrôlé)
• Résistance aux pannes (gestion des pannes, récupérations de panne en cas de
problèmes)
Concepts de base Introduction
Afin d’assurer ces objectifs, trois niveaux de description des données définis par la
norme ANSI/SPARC :
Niveau interne :
• Description du stockage des données au niveau des unités de stockages (disques)
• Structure décrite de façon très détaillée
• Chemin d’accès pour la BD
• Appellation « schéma interne »

Niveau conceptuel :
• Description de la structure de toutes les données qui existent dans la BD
• Description des propriétés (relation entre bases) sémantiques
• Ps : pas de prise en compte de l’utilité de la base ou son implémentation
• Appellation « schéma conceptuel »
Concepts de base Introduction

Niveau externe :
• Description pour chaque utilisateur de sa conception des données
• Présentation des données sous plusieurs vues
• Appellation « schéma externe (vue) »
Architecture d’un SGBD Introduction

Interface
Interface d’accès
utilisateur physique
Besoin
utilisateur
SGBD BD

• Analyse/vérification des • Stockage et accès aux


requêtes bases de données
• Convivialité de • Optimisation des
l’interface performances
• Puissance des langages
utilisés
Composants des SGBD Introduction
Chaque SGBD comporte un certain nombre de composants logiciels quel que soit le
modèle de données :
Description des données :
• Constituer d’outils (langages) permettant de décrire la vision des données de chaque
utilisateur (intégration d’une vision globale)
• Outils également pour décrire le stockage physique des données
Récupération des données :
• Interrogation et modifications des données ainsi que leurs optimisations
• Composition de langages de manipulation de données spécifiques et d’extension de
langage classique
• Gestion également des problèmes de sécurité
Sauvegarde/récupération après panne :
• Outils pour sauvegarder et restaurer de façon explicite une BD
• Mécanismes de restaurer l’état d’une base tant qu’une modification n’est pas
terminée
Composants des SGBD Introduction

Accès concurrents aux données :


• Contrôle de la concurrence des accès aux données
• Chaque utilisateur doit attendre le moins possible ses données en ayant l’assurance
d’avoir des données cohérentes en cas de mises à jour simultanées de la base
Exemples Introduction

BD:
• Ensemble des informations relatives à une entreprise
• Liste du personnel
• Liste des clients
• Liste des produits

• Dossiers médicaux hospitaliers


SGBD:
• PC : Access, Foxpro, paradox, …
• Gro système : Oracle, DB2n, Sybase, SQL server, …
• Freewares et sharewares : MySQL, MSQL, …
Niveau d’abstraction des données Introduction

Vue 1 Vue 2 Niveau externe

Schéma Niveau logique ou


conceptuel conceptuel

Niveau interne ou
Schéma
physique
interne

BD
Exemple Introduction
Analogie des niveaux avec déclaration de types :
Déclaration d'un enregistrement en C :
typedef struct
{ char nom[15];
char rue[25];
char ville[15];
}Client;
Au niveau externe :
L'enregistrement est décrit par des vues :
• Vue #1 : tous les clients demeurant dans la ville X
• Vue #2 : tous les clients ayant le même nom de famille
• Vue #3 : tous les clients demeurant sur la rue Y
Exemple Introduction
Au niveau conceptuel :
L'enregistrement est décrit par son contenu significatif et ses relations
Client

Nom Ville
Au niveau Physique : Rue
L'enregistrement est décrit comme un bloc d'emplacement mémoires consécutifs (mots
ou octets)

Nom Rue Ville


Tremplay 3ième Avenue Montréal
Audet Des érables Loretteville
Voyer 51ième rue New-York
Conception des BD Introduction
 Les BD constituent le cœur du système d’information. La conception de ces bases est la tâche la plus
ardue du processus de développement du système d’information.
 Les méthodes de conception préconisent une démarche en étapes et font appel à des modèles pour
représenter les objets qui composent les systèmes d’information, les relations existantes entre ces
objets ainsi que les règles sous-jacentes.

 La modélisation se réalise en trois étapes principales qui qui correspondent à trois niveaux
d’abstraction différents.
I. Niveau conceptuel : représente le contenu de la base en
termes conceptuels, indépendamment de toute
considération informatique.
II. Niveau logique (relationnelle) : résulte de la traduction
du schéma conceptuel en un schéma propre à un type de BD.
III. Niveau physique : est utilisé pour décrire les méthodes
d’organisation et d’accès aux données de la base.
Conception des BD Introduction
I)- Modélisation conceptuel:
 La modélisation est une étape fondamentale de la conception de la BD dans la mesure où, d’une part,
on y détermine le contenu de la BD et, d’autre part, on y définit la nature des relations entre les
concepts principaux.

 Les éléments de base du modèle ER (entité-relation) ou E-A (entité-association) sont les suivants :
1. Les entités : définit comme un objet pouvant être identifie distinctement. Il existe deux catégories : entités régulières (son
existence ne dépend pas de l’existence d’une autre entité) et entités faibles (son existence dépend de l’existence d’une
autre entité)
2. Les attributs : caractéristiques ou propriétés des entités. Un attribut peut être obligatoire ou facultatif et avoir un domaine
de valeurs
3. Type de relation et cardinalités : représentent les liens existants entre les entités. Les relations sont caractérisées, comme
les entités, par un nom et éventuellement des attributs. Cardinalité est le nombre de participation d’une entité à une
relation (un à un, un à plusieurs, plusieurs à plusieurs, zéro à un et zéro à plusieurs).
4. L’identifiant : parmi tous les attributs de l’entité, l’identifiant est un attribut ou un ensemble d’attributs permettant de
déterminer une et une seule entité à l’intérieur de l’ensemble. Graphiquement les identifiants sont les attributs soulignés.
L’entité faible aura un identifiant composé de l’entité dont elle dépend et d’un autre attribut.
Conception des BD Introduction
I)- Modélisation conceptuel: exemple
Conception des BD Introduction
I)- Modélisation conceptuel: exemple

 Une situation à modéliser peut avoir plusieurs schéma différents, chaque modèle présentant des
avantages et des inconvénients.
 Pour mesurer la qualité d’une modélisation ER il existe plusieurs critères à utiliser de manière
combinée :
 L’expressivité : traduit la richesse sémantique du schéma. Peut être caractérisée par exemple par le
nombre de concepts et/ou contraintes exprimés dans le tableau
 La minimalité : tend à privilégier les schémas avec un nombre de redondances minimales
 La lisibilité : consiste à évaluer la représentation graphique proprement dite
 La simplicité : privilégie les schémas contenant un nombre de concepts minimum. On peut la
mesurer par exemple en calculant le nombre d’entités d’associations présent sur un schéma.
Conception des BD Introduction
I)- Modélisation conceptuel: construction d’un schéma conceptuel
1. Déterminer la liste des entités

2. Pour chaque entité :


1. Établir la liste des attributs
2. Par ceux-ci, déterminer un identifiant

3. Déterminer les relations entre les entités


4. Pour chaque relation :
1. Dresser la liste des attributs propres à la relation
2. Vérifier la dimension et définir les cardinalités

5. Vérifier le schéma obtenu, notamment :


1. Supprimer les transitivités
2. S’assurer que le schéma est connexe
3. S’assurer qu’il répons au demandes

6. Valider avec les utilisateurs


Conception des BD Introduction
II)- Modélisation logique relationnelle :
 Dans le modèle relationnel, les entités du schéma conceptuel sont transformées en tableaux à deux
dimensions. Le modèle relationnel s’appui sur trois concepts fondamentaux : le domaine, l’attribut et
la relation ou la table.

1. Domaine : ensemble de valeur défini en extension ou en intension. Un domaine peut être simple ou
composé. Un domaine est simple si tous les éléments sont atomiques. Par exemple : l’ensemble des
salariés peut être définit en extension par employé, agent de maîtrise ou cadre. Un domaine est
composé si les éléments peuvent être décomposés. Par exemple : une date est décomposée d’un
jour, un mois et une année
2. Attribut : chaque colonne est appelée attribut et contient un ensemble des valeurs d’un domaine.
Chaque ligne représente un tuple.
3. Relation ou table : une relation est un tableau à deux dimensions. Le degré de la relation est le
nombre de colonnes ou des domaines considérés.
Conception des BD Introduction
II)- Modélisation logique relationnelle :
Conception des BD Introduction
II)- Modélisation logique relationnelle :
 Les contraintes d’intégrité : permettent d’assurer la cohérence des données. Les contraintes d’intégrité
sont :
 Contrainte de domaine : restriction de l’ensemble des valeurs possibles d’un attribut.
 Contrainte de clé : définit un sous-ensemble minimal des colonnes tel que la table ne puisse contenir deux lignes ayant
même valeurs pour ces colonnes. Il y a trois types de clés :
 Clé primaire : ensemble minimum d’attributs qui permet de distinguer chaque n-uplet de la table par rapport à tous les autres. Chaque table doit avoir une clé
primaire.
 Clé candidate : ensemble minimum d’attributs susceptibles de jouer le rôle de la clé primaire.
 Clé étrangère : fait référence à la clé primaire d’une autre table

 Contrainte obligatoire : précise qu’un attribut ou plusieurs attributs doivent toujours avoir une valeur
 Contrainte d’intégrité référentielle ou d’inclusion : lie deux colonnes ou deux ensembles de colonnes de deux tables
différentes.

 Théorème de la normalisation : permet de définit formellement la qualité des tables au regard du


problème posé par la redondance des données. La théorie de la normalisation s’appui sur la
dépendance fonctionnelle. Définition d’un ensemble de formes normales caractérisant les tables
relationnelles.
Conception des BD Introduction
I. Modélisation logique relationnelle :

 Théorème de la normalisation :
 Première forme normale : si elle ne contient que des attributs atomiques.
 Deuxième forme normale : si elle ne contient que des attributs atomiques et, si de plus, il n’existe
pas de dépendance fonctionnelle entre une partie d’une clé et une colonne non clé de la table.
 Troisième forme normale : si elle ne contient que des attributs atomiques, s’il n’existe pas de
dépendance fonctionnelle entre une partie d’une clé et une colonne non clé de la table et si, de
plus, aucune dépendance fonctionnelle entre les colonnes non clé.
 Ainsi plus une table est normalisée moins elle comporte de redondances et donc de risques
d’incohérence sémantiques dans les schémas relationnels.
Conception des BD Introduction
II)- Modélisation logique relationnelle : Règles de conception d’un schéma relationnel
 Règle 1 : toute entité est traduite en une table relationnelle dont les caractéristiques sont les suivantes
:
1. Le nom de la table est le nom de l’entité
2. La clé de la table est l’identifiant de l’entité
3. Les autres attributs de la table forment les autres colonnes de la table
Conception des BD Introduction
II)- Modélisation logique relationnelle : Règles de conception d’un schéma relationnel
 Règle 2 : Toute relation binaire plusieurs à plusieurs
est traduite en une table relationnelle dont les
caractéristiques sont les suivantes :
1. Le nom de la table est le nom de la relation
2. La clé de la table est formée de la concaténation des
identifiants des entités participant à la relation
3. Les attributs spécifiques de la relation forment les autres
colonnes de la table

 Une contrainte d’intégrité référentielle est générée


entre chaque colonne clé de la nouvelle table et de
la table d’origine de cette clé.
Conception des BD Introduction
II)- Modélisation logique relationnelle : Règles de conception d’un schéma relationnel
 Règle 3 : Toute relation binaire un à plusieurs
est traduite :
1. Sois par un report de clé : l’identifiant de l’entité participant à
la relation côté N est ajoutée comme colonne supplémentaire
à la table représentant l’autre entité. Cette colonne est parfois
appelée clé étrangère. Le cas échéant, les attributs spécifiques
à la relation sont eux aussi ajoutés à la même table
2. Sois par une table spécifique dont les caractéristiques sont
les suivantes
1. Le nom de la table est le nom de la relation
2. La clé de la table est l’identifiant de l’entité participent à la relation côté 1
3. Les attributs spécifiques de la relation forment les autres colonnes de la table
Conception des BD Introduction
II)- Modélisation logique relationnelle : Règles de conception d’un schéma relationnel
 Règle 4 : Toute relation binaire un à un est traduite, au
choix, par l’une des trois solutions suivantes :
1. Fusion des tables des entités qu’elle relie
2. Report de clé d’une table dans l’autre
3. Création d’une table spécifique reliant les clés des deux entités
Algèbre relationnelle Introduction

 Langage procédural : indique comment construire une nouvelle relation à partir d’une
ou plusieurs relations existantes (relation est une base de données)
 Langage abstrait, avec des opérations qui travaillent sur une (ou plusieurs) relation(s)
pour définir une nouvelle relation sans changer la (ou les) relation(s) original(s)
 Le résultat de toute opération est une relation (propriété de fermeture) et qui
implique qu’il n’y a pas de doublons dans le résultat et permet l’écriture d’expressions
de calcul.
 L’algèbre relationnelle utilise les opérateurs classiques de manipulation des
ensembles (union, intersection, différence et produit cartésien). Elle introduit
également des opérateurs propres aux bases de données (sélection, projection,
jointure et division). Ces opérateurs sont soit unaires soit binaires.
Algèbre relationnelle Introduction
Opérateurs
Opérations ensemblistes
fondamentales
Union
Sélection
Intersection
Projection
Différence
Produit cartésien
produit
Union
-
différence
Opérateurs
Autres opérations relationnels
Jointure Sélection
Intersection Projection
Division Jointure
… division
… -
Algèbre relationnelle Introduction
Opérateurs ensemblistes :
 Les opérateurs ensemblistes correspondent aux opérateurs habituels de la théories
des ensembles
 Ces opérateurs sont l’union, l’intersection et la différence
 Le schéma suivant illustre l’effet des trois premiers opérateurs sur des tables de
mêmes schémas. Le résultat état la partie colorée.
Algèbre relationnelle Introduction
Opérateurs ensemblistes : Opérateur Union
 Soient r et s, deux relations de schémas respectifs R et S. Les schémas R et S doivent
être union-compatibles.
 Deux relations sont dites « union-compatibles » si elles ont le même schéma de
relation, c’est-à-dire qu’elles ont le même nombre d’attributs et que ceux-ci ont le
même domaine.
 L’union des deux relations « 𝑅 ∪ 𝑆 » produit une nouvelle relation de schéma
identique à R et à S possédant les enregistrements appartenant à R ou à S ou aux
deux relations.
Algèbre relationnelle Introduction
Opérateurs ensemblistes : Opérateur Union
 Type opération : binaire
 Syntaxe : « 𝑅 ∪ 𝑆 »
 Sémantique : réunit dans une même relation les tuples de R et ceux de S (sans
doublons)
 Schéma : schéma (𝑅 ∪ 𝑆) = schéma (𝑅) = schéma (𝑆)
 Précondition : schéma (𝑅) = schéma (𝑆)
Algèbre relationnelle Introduction
Opérateurs ensemblistes : Opérateur Union
Exemple :
 Supposons que nous disposons de 2 tables produit : produit1 et produit2 exprimant le
fait que les produits sont stockés dans deux dépôts différents.
 Question : lister tous les produits.
 Réponse : réaliser l’union des deux tables de produit.
Algèbre relationnelle Introduction
NP LibP Coul Poids PU Qtes
Produit 1 P001 Robinet Gris 5 18.000 1200
P002 Prise Blanc 1.2 1.500 1000
P003 Câble Blanc 2 25.000 1500
P004 Peinture Blanc 25 33.000 900

NP LibP Coul Poids PU Qtes


P004 Poignée Gris 3 12.000 1300
Produit 2 P005 Serrure Jaune 2 47.000 1250
P006 Verrou Gris 1.7 5.500 2000
P007 Fer Noir 50 90.000 800
Algèbre relationnelle Introduction
Produit1 ∪ Porduit 2 Représentation Graphique :

NP LibP Coul Poids PU Qtes


P001 Robinet Gris 5 18.000 1200
P002 Prise Blanc 1.2 1.500 1000
P003 Câble Blanc 2 25.000 1500
P004 Peinture Blanc 25 33.000 900
P005 Poignée Gris 3 12.000 1300
P006 Serrure Jaune 2 47.000 1250
P007 Verrou Gris 1.7 5.500 2000
P008 Fer Noir 50 90.000 800
Algèbre relationnelle Introduction
Opérateurs ensemblistes : Opérateur intersection
 Soient r et s, deux relations de schémas respectifs R et S. Les schémas R et S doivent
être union-compatibles.
 L’intersection des deux relations « 𝑅∩𝑆 » produit une nouvelle relation de schéma
identique à R et à S possédant les enregistrements appartenant à R et à S
conjointement.
 Type opération : binaire
 Syntaxe : 𝑅∩𝑆
 Sémantique : sélectionne les tuples qui sont à la fois dans R et S
 Schéma : schéma (𝑅∩𝑆) = schéma (𝑅) = schéma (𝑆)
 Précondition : schéma (𝑅) = schéma (𝑆)
Algèbre relationnelle Introduction
Opérateurs ensemblistes : Opérateur Intersection
Exemple :

 Supposons que nous disposons de 2 tables produit 1 et produit 2 donnant


respectivement les produits achetés par le client 1 et le client 2
 Question : lister tous les produits identiques achetés par les 2 clients
 Réponse : réaliser l’intersection des deux tables produit 1 et produit 2
Algèbre relationnelle Introduction
NP LibP Coul Poids PU Qtes
Produit 1 P001 Robinet Gris 5 18.000 1200
P002 Prise Blanc 1.2 1.500 1000
P003 Câble Blanc 2 25.000 1500
P004 Peinture Blanc 25 33.000 900

NP LibP Coul Poids PU Qtes


Produit 2
P004 Prise Blanc 1.2 1.500 1000
P005 Peinture Blanc 25 33.000 900
P006 Verrou Gris 1.7 5.500 2000
Représentation
P007 Fer Noir 50 90.000 800
Graphique :
Produit 1∩ NP LibP Coul Poids PU Qtes
𝑃𝑟𝑜𝑑𝑢𝑖𝑡2 P001 Prise Blanc 1.2 1.500 1000
P002 Peinture Blanc 25 33.000 900
Algèbre relationnelle Introduction
Opérateurs ensemblistes : Opérateur différence
 Soient r et s, deux relations de schémas respectifs R et S. Les schémas R et S doivent
être union-compatible.
 La différence des deux relations « R – S » produit une nouvelle relation de schéma
identique à R ou à S possédant les enregistrements présents dans R mais pas dans S.
 Type d’opération : binaire
 Syntaxe : « R – S »
 Sémantique : sélectionne des tuples de R qui ne sont pas dans S
 Schéma : schéma (R – S) = schéma (R) = schéma (S)
 Précondition : schéma(R) = schéma(S)
Algèbre relationnelle Introduction
Opérateurs ensemblistes : Opérateur différence
Exemple :
 Supposons que nous disposons de 2 tables produit : produit 1 et produit 2 donnant
respectivement les produits achetés par le client 1 et le client 2
 Question : lister tous les produits achetés par le client 1 et que le client 2 n’a pas
acheté
 Réponse : réaliser la différence entre les deux tables de produit
Algèbre relationnelle Introduction
NP LibP Coul Poid PU Qtes
Produit 1 s
P001 Robinet Gris 5 18.000 1200
P002 Prise Blanc 1.2 1.500 1000
P003 Câble Blanc 2 25.000 1500
P004 Peinture Blanc 25 33.000 900
P005 Poignée Gris 3 12.000 1300
P006 Serrure Jaune 2 47.000 1250
Produit 2
NP LibP Coul Poids PU Qtes
P004 Poignée Gris 3 12.000 1300
P005 Serrure Jaune 2 47.000 1250
P006 Verrou Gris 1.7 5.500 2000
P007 Fer Noir 50 90.000 800
Algèbre relationnelle Introduction
Produit1 ∪ Porduit 2 Représentation Graphique :

NP LibP Coul Poid PU Qtes


s
P001 Robinet Gris 5 18.000 1200
P002 Prise Blanc 1.2 1.500 1000
P003 Câble Blanc 2 25.000 1500
P004 Peinture Blanc 25 33.000 900
Algèbre relationnelle Introduction
Opérateurs ensemblistes : Opérateur produit cartésien
 Le produit cartésien est un opérateur issu de la théorie des ensembles et défini
comme suit :
 Si A et B deux ensembles, leur produit cartésien A x B contient toutes les paires (a, b) avec a ϵ A et b
ϵB
 Ceci signifie que le produit cartésien permet d’obtenir toutes les combinaisons possibles entre les
éléments de deux ensembles

 Soient r et s, deux relations de schémas respectifs R et S. Les schémas R et S doivent


être disjoints c’est-à-dire ne pas avoir d’attributs communs.
 Le produit cartésien des deux relations R x S produit une nouvelle relation de schéma
Z égale à l’union des schémas R et S et possédant comme enregistrements, la
concaténation des enregistrements de R avec ceux de S.
Algèbre relationnelle Introduction
Opérateurs ensemblistes : Opérateur produit cartésien
 Type opération : binaire
 Syntaxe : R x S
 Sémantique : chaque tuple de R est combiné avec chaque tuple de S
 Schéma : schéma (R x S) = schéma (R) ∪ schéma (S)
 Précondition : R et S n’ont pas d’attributs de même nom (sinon, renommage des
attributs avant de faire le produit)
Algèbre relationnelle Introduction
Opérateurs ensemblistes : Opérateur produit cartésien
Exemple :
 Supposons maintenant que nous disposons de 2 tables produit et client
 Question : lister tous les achats possibles des clients (produits pouvant être achetés
par tous les clients)
 Réponse : réaliser le produit cartésien entre les deux tables produit et client. Pour
simplifier, nous avons réduit le nombre de tubles.
Algèbre relationnelle Introduction
Produit Client
NP LibP Coul Poid PU Qtes NCl NomCl AdrCl
s CL01 BATAM Alger
P001 Robinet Gris 5 18.000 1200 CL02 BATIMENT Tunis
P002 Prise Blanc 1.2 1.500 1000 CL03 AMS Maroc
Client x Produit
NCl NomCl AdrCl NP LibP Coul Poids PU Qtes
CL01 BATAM Alger P001 Robinet Gris 5 18.000 1200
CL01 BATAM Alger P002 Prise Blanc 1.2 1.500 1000
CL02 BATIMENT Tunis P001 Robinet Gris 5 18.000 1200
CL02 BATIMENT Tunis P002 Prise Blanc 1.2 1.500 1000
CL03 AMS Maroc P001 Robinet Gris 5 18.000 1200
CL03 AMS Maroc P002 Prise Blanc 1.2 1.500 1000
Algèbre relationnelle Introduction
Opérateurs de BD : Renommage (α)
 Le renommage ou l’affectation permet de renommer les attributs d’une relation pour
résoudre des problèmes de compatibilité entre noms d’attributs de deux relations
opérandes d’une opération binaire.
 Type opération : unaire
 Syntaxe : α [ancien_nom : nouveau_nom] R
 Sémantique : les tuples de R avec un nouveau nom de l’attribut
 Schéma : schéma (α[n, m] R) a le même schéma que R avec n renommé en m
 Précondition : le nouveau nom n’existe pas déjà dans R
Algèbre relationnelle Introduction
Produit 2 = α[LibP : DésigP] Produit 1
NP LibP Coul Poids PU Qtes
P001 Robinet Gris 5 18.000 1200
Produit 1 P002 Prise Blanc 1.2 1.500 1000
P003 Câble Blanc 2 25.000 1500
P004 Peinture Blanc 25 33.000 900
P005 Poignée Gris 3 12.000 1300
NP DésigP Coul Poids PU Qtes
P001 Robinet Gris 5 18.000 1200
P002 Prise Blanc 1.2 1.500 1000
P003 Câble Blanc 2 25.000 1500 Produit 2
P004 Peinture Blanc 25 33.000 900
P005 Poignée Gris 3 12.000 1300
Algèbre relationnelle Introduction
Opérateurs de BD : Sélection (σ)
 La sélection appelée encore restriction est un opérateur unaire qui prend en entrée
une relation r de schéma R et produit en sortie une nouvelle relation de même
schéma R ayant comme enregistrements ceux de r satisfaisant la condition de
sélection.
 Le but de sélectionner un ensemble de tuples d’une relation, en fonction d’un critère
de sélection (prédicat ou expression logique de prédicats).
 La condition de sélection utilise les opérateurs de comparaison (=, <, <=, >, >=, !=), les
connecteurs logiques (et, ou, non) et les parenthèses
Algèbre relationnelle Introduction
Opérateurs de BD : Sélection (σ)
 Type opération : unaire
 Syntaxe : σ [p] R, p : prédicat de sélection (condition de sélection)
 Sémantique : crée une nouvelle relation de population l’ensembles des tuples de R
qui satisfont le prédicat p
 Schéma : schéma (résultat) = schéma (opérande)
 Population : population (résultat) ⊆ population (opérande)
Algèbre relationnelle Introduction
Opérateurs de BD : Sélection (σ)

Exemple :
 Supposons que nous disposons de la table produit.
 Question : Lister tous les produits dont le prix unitaire est < 33.000
 Réponse : il faut réaliser une sélection sur les tuples dont le prix unitaire est < 33.000
 σ[p] Produit avec p = PU < 33.000
Algèbre relationnelle Introduction
Opérateurs de BD : Sélection (σ) NP LibP Coul Poid PU Qtes
s
P001 Robinet Gris 5 18.000 1200
P002 Prise Blanc 1.2 1.500 1000
Produit1 P003 Câble Blanc 2 25.000 1500
P004 Peinture Blanc 25 33.000 900
P005 Poignée Gris 3 12.000 1300
P006 Serrure Jaune 2 47.000 1250
NP LibP Coul Poid PU Qtes
s
P001 Robinet Gris 5 18.000 1200
Produit2
P002 Prise Blanc 1.2 1.500 1000
P003 Câble Blanc 2 25.000 1500 Produit2 = σ[p] Produit avec p=PU < 33.000
P005 Poignée Gris 3 12.000 1300
Algèbre relationnelle Introduction
Opérateurs de BD : Sélection (σ)
Exemple : Lister tous les ouvrages dont Représentation graphique
Le genre est BD et dont l’éditeur est
Eyrolles

CodeOuv Titre Genre Editeur Collection


255 Bases de données relationnelles BD Eyrolles info
786 Réseaux Téléinformatiques Réseaux Hermes Telec
355 Bases de données orientés objet BD Dunod Info
800 Bases de données réparties BD Eyrolles info
241 Programmation C++ programmation Dunod Info
Algèbre relationnelle Introduction
Opérateurs de BD : Sélection (∏)

 La projection est un opérateur unaire qui prend en entrée une relation r de schéma R
(A1; A2; …;An) et produit en sortie une nouvelle relation de schéma (A1; A2; …;Ai;Aj)
inclus dans R ayant comme enregistrements ceux de r restreints à ce sous-schéma
(A1; A2; ..;Ai;Aj).

 Le but de la projection état de ne retenir que certains attributs dans une relation
(c’est-à-dire un ensemble de colonnes). A l’issue d’une projection, la relation
résultante peut contenir des doublons.
Algèbre relationnelle Introduction
Opérateurs de BD : Sélection (∏)
 Type opération : unaire
 Syntaxe : ∏ *attributs+ R (attributs : liste l’ensemble des attributs de R à conserver
dans le résultat.)
 Notation fonctionnelle : R ,liste d’attributs-
 Sémantique : crée une nouvelle relation de population l’ensemble des tuples de R
réduits aux seuls attributs de la liste spécifiée
 Schéma : Schéma (résultat) ⊆ schéma (opérande)
 Résultat : nombre tuples (résultat) = nombre tuples (opérande) (en comptant les
doublons)
Algèbre relationnelle Introduction
Opérateurs de BD : Sélection (∏)
Exemple :
 Supposons maintenant que nous disposons de la table produit
 Question : Lister toutes les désignations de produit
 Réponse : il faut réaliser une projection sur la table produit pour ne garder que
l’attribut
 LibP : ∏ [LibP] (Produit1)
Algèbre relationnelle Introduction
Opérateurs de BD : Sélection (∏) NP LibP Coul Poid PU Qtes
s
Produit2 = ∏[LibP] (Produit1)
P001 Robinet Gris 5 18.000 1200
P002 Prise Blanc 1.2 1.500 1000
Produit1 P003 Câble Blanc 2 25.000 1500
P004 Peinture Blanc 25 33.000 900
LibP P005 Poignée Gris 3 12.000 1300
P006 Serrure Jaune 2 47.000 1250
Robinet
Prise
Câble
Produit2
Peinture
Poignée
Serrure
Algèbre relationnelle Introduction
Opérateurs de BD : Division (/)

 Le résultat de la division d’une relation R(X, Y) par une relation S(Y) est relation Q(X)
définie par :
 Le schéma de Q est constitué de tous les attributs de R n’appartenant pas à S
 Les tuples qj de Q tels que, quels que soit les tuples si de S, le tuple (qj, si) est un
tuple de R (c’est-à-dire QXS ⊆ R)
 La division traite les requêtes de style « les … tels que TOUS les »
Algèbre relationnelle Introduction
Opérateurs de BD : Division (/)
 Type d’opération : binaire
 Syntaxe : R / S, soient R(A1, …, An) et S (A1, …, Am) avec n > m et A1, …, Am des
attributs de même nom dans R et S
 R / S =,<am+1, am+2, …, an> / ∀ <a1, a2, …, am> ∈ S, existe <a1, a2, …, am, am+1, …,
an> ∈ R}
 Sémantique : crée une nouvelle relation de population des tuples dont la
concaténation avec les n-uplets de S appartiennent à R
 Schéma : schéma (résultat) ⊆ schéma (opérande)
 Résultat : nombre tuples (résultat) <= nombre tuple (opérande)
Algèbre relationnelle Introduction
Opérateurs de BD : Division (/)
Exemple :
 Question : quels sont les commandes qui portent sur tous les produits
 Réponse : Diviser la relation ligne_Cmd par la relation produit (ne contenant pas de
NP).
Algèbre relationnelle Introduction
Opérateurs de BD : Division (/) NCmd NP Qte
Représentation graphique Ligne_Cmd C001 P001 250
Ligne_Cmd / Produit Produit C001 P002 300
C001 P003 100
NCmd Qte NP C001 P004 200
C001 P001 P001 C001 P005 550
C001 P002 P002 C001 P006 50
C001 P003 P003 C001 P007 100
C001 P004 P004 C001 P008 150
C001 P005 P005 C004 P009 70
C001 P006 P006 C004 P010 90
C001 P007 P007 C005 P011 650
C001 P008 P008 C005 P012 100
Algèbre relationnelle Introduction
Opérateurs de BD : Jointure (⋈)
 Soient r et s deux relations de schémas respectifs R et S. La jointure de R et S, selon
une condition que doivent vérifier les valeurs des tuples est l’ensemble des tuples du
produit cartésien R x S satisfaisant cette condition. Donc on peut la considérer comme
un produit cartésien suivi d’une sélection.
 La relation résultant de la jointure possède comme schéma l’union des deux schémas
R et S et comme enregistrements la concaténation des enregistrements de R avec
ceux de S qui répondent à la condition de sélection.
 La condition de sélection utilise les opérateurs de comparaison (=, <, <=, >, >=, !=), les
connecteurs logiques (et, ou, non) et les parenthèses.
 Lorsque le critère de sélection est l’égalité, on parle d’équi-jointure sinon on parle de
thétajointure.
Algèbre relationnelle Introduction
Opérateurs de BD : Jointure (⋈)
 Type opération : binaire
 But : créer toutes les combinaisons significatives entre tuples de deux relation (le
critère de combinaison est explicitement défini en paramètre de l’opération)
 Syntaxe : R ⋈ [p] S, p : prédicat de sélection (condition de jointure)
 Sémantique : combine certains tuples qui répondent à une condition
 Schéma : schéma (R ⋈ [P] S) = schéma (R) ∪ schéma (S)
Algèbre relationnelle Introduction
Opérateurs de BD : Jointure (⋈)
Exemple :
Le langage SQL Introduction
Introduction :
 SQL : Structured Query Language
 Accéder aux données de la base de données
 Langage adapté aux bases de données relationnelles
 Existe sur tous les SGBD relationnels (Oracle, Access, …)
 Défini par une norme ISO
 Il est utilisé dans les bases de données Oracles depuis 1979
Le langage SQL Introduction
Caractéristiques de SQL :

 SQL est un langage de définition de données (LDD), c’est-à-dire qu’il permet de créer
des tables dans une base de données relationnelle, ainsi que d’en modifier ou en
supprimer.
 SQL est un langage de manipulation de données (LMD), cela signifie qu’il permet de
sélectionner, insérer, modifier ou supprimer des données dans une table d’une base
de données relationnelle.
 Il est possible avec SQL de définir des permissions au niveau des utilisateurs d’une
base de données. On parle de DCL (Data control language).
Le langage SQL Introduction
Définition de données (LDD) : création de table
 Pour créer une table, on utilise le couple de mots-clés « CREATE TABLE :
CREATE TABLE NomTable (
NomColonne1 TypeDonnée1 (longueur1),
NomColonne2 TypeDonnée2 (longueur2),
...
constraint nom_contrainte1 type_contrainte1, . . . );
Le langage SQL Introduction
Définition de données (LDD) : création de table
 Il est possible de créer une table en insérant directement des lignes lors de la
création. On récupère les lignes à insérer avec « AS SELECT » :
CREATE TABLE NomTable (
NomColonne1 TypeDonnée1 (longueur1),
NomColonne2 TypeDonnée2 (longueur2),
...
);
AS SELECT NomChamp1, NomChamp2, . . .
FROM NomTable2
WHERE . . . ;
Le langage SQL Introduction
Définition de données (LDD) : création de table
 Type de données :

VARCHAR(size) Données caractères de longueur variable


CHAR(size) Données caractères de longueur fixe
NUMBER(p,s) Numérique de longueur variable
DATE Valeurs de date et d’heure
LONG Numérique de grande longueur
RAW Binaire
BLOB Binaire jusqu’à 4 Go
BFILE Binaire stocké dans un fichier externe (4Go)
Le langage SQL Introduction
Définition de données (LDD) : création de table avec insertion
 Exemple :
CREATE TABLE service (
IdService CHAR(3),
NomService VARCHAR(30),
CONSTRAINT pk_service PRIMARY KEY (IdService));
CREATE TABLE employe (
IdEmploye NUMBER(5),
NomEmploye VARCHAR(30),
Indice NUMBER(3),
DateEmbauche DATE DEFAULT SYSDATE,
IdService CHAR(3),
CONSTRAINT pk_employe PRIMARY KEY (IdEmploye),
CONSTRAINT fk_emp_ser FOREIGN KEY (IdService) REFERENCES service(IdService),
CONSTRAINT ck_emp_indice CHECK (indice BETWEEN 100 AND 900));
Le langage SQL Introduction
Définition de données (LDD) : Suppression
 Suppression complète de la table : définition et données

DROP TABLE nom_table;

 Suppression aussi des contraintes de références


DROP TABLE nom_table CASCADE CONSTRAINTS;
Le langage SQL Introduction
Définition de données (LDD) : Modification de la structure
 Ajout de colonnes

ALTER TABLE nom_table ADD (colonne1 type1, colonne2 type2);

 Modification de colonnes
ALTER TABLE nom_table MODIFY (colonne1 type1, colonne2 type2);

 Suppression de colonnes
ALTER TABLE nom_table DROP COLUMN (colonne1, colonne2);
Le langage SQL Introduction
Définition de données (LDD) : Modification de la structure
 Exemples :

ALTER TABLE client ADD (ChiffreAffaire NUMBER (10,2));


ALTER TABLE client MODIFY (nom VARCHAR(60));
ALTER TABLE etudiant MODIFY (idDiplome CONSTRAINT nn_etu_dip NOT NULL);
ALTER TABLE client DROP COLUMN (ChiffreAffaire));
Le langage SQL Introduction
Définition de données (LDD) : Contraintes
 Types de contraintes :

constraint nomcontrainte {
unique | primary key ( col1*,col2+…)
| foreign key ( col1*,col2+…)
references [schema+.table ( col1*,col2+…)
[ON DELETE CASCADE] | check (condition)
}

 La dernière contrainte concerne la suppression de tous les fils (c’est-à-dire les


références des tables dépendantes de la table mère)
Le langage SQL Introduction
Définition de données (LDD) : Contraintes
 Ajout de contraintes (comme à la création d’une table):

ALTER TABLE nom_table


ADD CONSTRAINT nom_contrainte type_contrainte;

 Suppression de contraintes :
ALTER TABLE nom_table
DROP CONSTRAINT nom_contrainte;
Le langage SQL Introduction
Définition de données (LDD) : Contraintes
 Exemples :

ALTER TABLE client


ADD CONSTRAINT fk_client_cat
FOREIGN KEY (idCat)
REFERENCES categorie(idCat);
ALTER TABLE client
DROP CONSTRAINT fk_client_cat;
Le langage SQL Introduction
Définition de données (LDD) : Contraintes
 Activation et désactivation de contraintes :
 Les contraintes existent toujours dans le dictionnaire de données mais ne sont pas
actives
 Chargement de données volumineuses extérieures à la base

ALTER TABLE nom_table


DISABLE CONSTRAINT nom_contrainte;

ALTER TABLE nom_table


ENABLE CONSTRAINT nom_contrainte;
Le langage SQL Introduction
Langage de manipulation de données (LMD) : Insertion
 Insertion ou ajout de ligne(s) dans une table
INSERT INTO nom_table [(liste des colonnes)]
VALUES (liste des valeurs);

 Exemple :
INSERT INTO service (idSer, nomSer)
VALUES (50, ‘réseaux et Systèmes’);

INSERT INTO service


VALUES (60, ‘Analyse et Conception’);

INSERT INTO service INSERT INTO service (idSer)


VALUES (70, NULL); ↔ VALUES (70);
Le langage SQL Introduction
Langage de manipulation de données (LMD) : Insertion
 Insertion dans une table en utilisant le contenu d’une autre table (ou d’autres tables)
INSERT INTO etudiant_deug
SELECT * FROM (liste des valeurs)
WHERE * cycle = 1;

INSERT INTO etudiant_deug (nomd, prenomd, cycled)


SELECT nom,prenom,cycle FROM etudiant
WHERE * cycle = 1;
Le langage SQL Introduction
Langage de manipulation de données (LMD) : Udapte
 Mise à jour de ligne (s) d’une table UPDATE nom_table
SET (colonne1 = valeur1 *,colonne2 = valeur2,…+)
[WHERE prédicat;]

 Exemple :
UPDATE employe
SET nom = ‘Michel’, adresse = ‘toulouse’
WHERE idEmp = 100;

UPDATE employe
SET salaire = salaire * 1.1
WHERE idSer = ‘info’;
Le langage SQL Introduction
Langage de manipulation de données (LMD) : Suppression
 Suppression de ligne (s) d’une table DELETE FROM nom_table
[WHERE prédicat;]

 Exemples :

DELETE FROM employe


WHERE idEmp = 100;

DELETE FROM employe;


Le langage SQL Introduction
Langage d’interrogation de données (LID) :
 Ordre SELECT
 Sélection : restriction sur les lignes
 Projection : fonctions de groupage et restrictions sur les groupages
 Ordres de Tris
 Fonction chaînes et calculs
 Mise en page des résultats
Références Introduction
 Bases de données : algèbre relationnelle, Faîçal Felhi
 Introduction aux bases de données
 Cours de bases de données : algèbre relationnelle, Elisabetta De Maria
 Cours de bases de données relationnelles
 Introduction pratique aux bases de données relationnelles : Andreas Meier

Vous aimerez peut-être aussi