Chap6 BDD

Télécharger au format pdf ou txt
Télécharger au format pdf ou txt
Vous êtes sur la page 1sur 31

Plan du cours

• Historique
• Pourquoi utiliser une base de données?
• Définitions
Généralités sur les bases de • Objectifs d’un SGBD
données • Fonctionnalités d’un SGBD
• Niveaux de représentation des données
• Processus de modélisation d’un BD
• Modèles de structuration des données
• Modèle Entité-Association
ESI – Structures de fichiers et structures de données (SFSD) • Modèle Relationnel
N. EL-ALLIA
1 • Algèbre relationnel 2

Historique Historique
• De tout temps, toute organisation (société) a cherché • Jusqu’aux années 60: organisation classique en
à structurer ses informations. fichiers gérés par des SGF (système de gestion de
fichiers)
• Au début (avant l’avènement de l’informatique):
informations sous formes de fiches uniquement, • années 60: 1ère génération de SGBD :
classées par ordre alphabétique, chronologique, Au début de l’apparition des bases de données, le
…(qui existent encore !), niveau conceptuel est très lié à la représentation des
données sur les supports physiques 
• Puis avec les supports informatiques
– modèle hiérarchique, modèle réseau
 infos mémorisées sur supports magnétiques, …
Il faut les organiser pour pouvoir travailler dessus • 1970 - 1980: 2ème génération :
(retrouver telle info, voir sa valeur, supprimer, mettre à plus indépendant des supports :
jour, …)  notion de fichiers. – modèle relationnel
3 4

1
Historique Pourquoi utiliser une base de données?
La démarche classique consiste à réaliser pour un
• débuts des années 80: 3ère génération :
type d'information, un programme d'application.
– modèle à objets,
Exemple : Une université doit conserver un volume
élevé d’information:
noms, prénom, année d’entrée, adresse de
l’étudiant, nom, prénom, année d’embauche,
grade des enseignants, et des salariés, …etc
• Ces informations se retrouvent dans différents
systèmes de traitement de fichiers.

5 6

Pourquoi utiliser une base de données? Pourquoi utiliser une base de données?
• De plus, certaines informations sont souvent
- Système de gestion de la scolarité,
conservées en plusieurs endroits.
- Système de comptabilité (paie),
Duplication de données  redondance
- Système des emprunts de la bibliothèque,
Gaspillage au niveau du volume de fichiers
- Système de gestion de personnel,…etc
 fichiers multiples
• Pour obtenir une information, on doit:
1) déterminer le système à consulter
2) trouver la bonne information concernée.
Perte de temps  fichiers multiples

7 8

2
Définitions Définitions
Base de données: • Lourdeur d’accès aux données.
Une base de données est un gros ensemble • Manque de sécurité (accès direct aux fichiers)
d’informations structurées mémorisées sur un support • Pas de contrôle de concurrence (comment palier aux
permanent et qui peut être partagée par plusieurs problèmes d’accès simultané par plusieurs utilisateurs)
applications et qui est interrogeable par le contenu. Il est donc nécessaire d’avoir recours à un logiciel
chargé de gérer les fichiers constituant une base de
L’utilisation de fichiers classiques pourrait sembler données, de prendre en charge les fonctionnalités de
pouvoir apporter une solution à ce problème. Mais protection et de sécurité et de fournir les différents
l’utilisation directe de gros fichiers soulève de gros types d’interfaces nécessaires à l’accès aux données.
problèmes . Ce logiciel est le Système de Gestion des Bases de
Données (SGBD).

9 10

Définitions Définitions
Définition d’un SGBD: Les SGBD assurent d’autres fonctions importantes,
notamment :
Un Système de Gestion de Bases de Données (SGBD)
est un logiciel de haut niveau permettant aux - la protection de la base de données
utilisateurs:  La protection implique à la fois:
- de structurer, la protection du système contre les pannes logicielles et
- d’insérer, matérielles
- de modifier, et la protection sécuritaire contre les accès illicites ou
- de rechercher de manière efficace des données malveillants.
spécifiques, au sein d’une grande quantité - et son entretien à long terme
d’informations, stockées sur mémoires secondaires  Une grande base de données peut être utilisées de
partagée de manière transparente par plusieurs nombreuses années.
utilisateurs. Le SGBD doit donc être capable d’entretenir et
11 de faire évoluer ses propres structures dans la durée. 12

3
Objectifs d’un SGBD Objectifs d’un SGBD
1.Indépendance des programmes aux données : 4. Partage et sécurité des données :
- Dépendance physique. - Simultanéité lecture/écriture.
- Dépendance logique. - Confidentialité (authentification, droits d'accès, …).
2. Simplicité des Manipulations des données : - Gestion de la concurrence des transactions.
- Langage non procédural. - Restauration après pannes (journal, sauvegarde).
- Recherche, Insertion et Mise à jour. 5. Redondance contrôlée des données :
3. Efficacité des accès aux données : - Sauvegarde des données.
- Temps de réponse.
- Débit global.

13 14

Objectifs d’un SGBD Fonctionnalités d’un SGBD


6. Conception facilité des applications : 1) Définition du schéma de données en utilisant les
- Conception visuelle des BD. modèles de données du SGBD.
- Conception des traitements. 2) Opérations sur les données : recherches, mises-à-
- Dictionnaire de données. jour, etc.
7. Facilité de l’administration système de la BD : 3) Partager les données entre plusieurs utilisateurs
- Outils d'audit et de tunning. (mécanismes de transaction).
- Visualisation des plans d ’accès. 4) Optimiser les performances par le réglage de
- Élaboration de statistiques l’organisation physique des données.

15 16

4
Niveaux de représentation des données Niveaux de représentation des données
Niveau externe:

création de vues (parties de la base de données) sur


lesquelles des groupes d’utilisateurs ont le droit de
travailler (interroger, insérer, modifier et/ou supprimer )
selon les autorisations

 géré par le concepteur de la BD

 le travail sur les vues est effectué par les utilisateurs.

17 18

Niveaux de représentation des données Niveaux de représentation des données


Niveau conceptuel ou - Il utilise des structures Niveau interne ou niveau physique:
niveau logique: relativement simples qui - Accès aux données, gestion sur mémoire
sont très complexes au secondaire (fichiers) des données, des index
- Les données sont niveau physique. - Partage de données et gestion de la concurrence
considérées de façon d’accès
sémantique (d'après contenu  conçu par le - Reprise sur pannes (fiabilité)
effectif et les relations qui les concepteur de la - Distribution des données et interopérabilité (accès
relient). BD aux réseaux)
- Il permet de décrire toute
la BD:  géré par l’administrateur de la BD
· Les entités
· Les types de données
· Les relations
· Les opérations des usagers
· Les contraintes

19 20

5
Niveaux de représentation des données Niveaux de représentation des données
Exemple: Analogie des niveaux avec déclaration de types Au niveau conceptuel
Déclaration d’un enregistrement en C : L'enregistrement est décrit par son contenu significatif et ses
typedef struct relations.
{ char nom[15];
char rue[25];
char ville[15]; Au niveau physique
}Client; L'enregistrement est décrit comme un bloc d'emplacement
Au niveau externe mémoires consécutifs (mots ou octets)
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

21 22

Processus de modélisation d’une BD Processus de modélisation d’une BD


1) Collection des besoins et analyse 2) Design Conceptuel

- Collection des besoins des - Création du schéma conceptuel basé


utilisateurs. sur le modèle Entité-Relation.
· Spécifiques
· Détaillés - Description concise des
· Complets besoins des utilisateurs :
· des types de données,
- Analyse du problème: · des relations
· On se questionne sur · des contraintes.
quelles informations nous - Facile à comprendre de
voulons stocker? l'utilisateur.
- Aucune implantation.
Il est seulement une
Représentation graphique.
23 24

6
Processus de modélisation d’une BD Processus de modélisation d’une BD
3) Implantation du modèle 4) Conception physique
- Déterminer la structure - Spécification des structures
de la BD: de stockage interne et de
· relationnelle, l'organisation des fichiers
· réseau de la BD.
· hiérarchique.

- Le choix du SGBD dicte


donc la structure interne
(physique) de la BD.
- Transformation du schéma
conceptuel du modèle de données
haut niveau au modèle d'implantation de données.

25 26

Processus de modélisation d’une BD Processus de modélisation d’une BD


Pourquoi une méthode de conception? Exemple1 de mauvaise conception
• Plusieurs façons d’aborder la conception d’une BD: N° Nom Prénom Ville Pays Immatriculation Marque Couleur
– Intuition + création directe de la BD 1 Flen aaa Alger ALG 16-106-1000 Renault Rouge
2 Ait Ait Tizi ALG 15-109-5200 Peugeot Vert
– Suivre une méthode de conception (MCD, MLD, MPD) 3 Ben Ben Oran ALG 31-103-1400 Renault Rouge
• Entité/Association (E/A) 4 Flen aaa Alger ALG 16-112-2500 Renault Jaune
• Merise
• UML • Redondance des données et incohérence potentielle
• Suivre son intuition peut conduire à des erreurs: – Personne répétée pour chaque voiture :
– Redondances ex. Si Flen aaa change de ville et qu’une seule ligne est mise à jour…
– Valeurs nulles – Redondance Ville/Pays : impact d’une erreur de saisie
– Difficulté de gestion • Anomalies de mises à jour et besoin de valeurs nulles.
– Impossibilité de répondre à certaines questions – Comment insérer une personne sans voiture ?
• Une fois la base de données crée, difficile à modifier – Sémantique de calculs avec des valeurs nulles…
• Les outils de conception sont une aide précieuse – Comment supprimer la dernière voiture d'une personne ?
27 28

7
Processus de modélisation d’une BD Processus de modélisation d’une BD
Exemple2 de mauvaise conception En résumé: Cycle de vie d ’une base de données
N° Nom Prénom Ville Pays Enfant1 Enfant2 Enfant3 NbEnfants
1 Flen aaa Alger ALG Pipo Lolo 2
2 Ait Ait Tizi ALG Sissi 1
3 Ben Ben Oran ALG Sam Titi Yoyo 3
4 Moh Med Alger ALG 0

• Redondance cachée
– Nombre d’enfants vs enfants
• Difficulté de gestion
– Comment gérer les personnes ayant plus de 3 enfants !
– Comment afficher la liste des enfants ?

29 30

Modèles de structuration des données Modèles de structuration des données


La modélisation des données permet de décrire Modèle logique orienté objet
correctement l'architecture d'une BD. - Niveau conceptuel et externe
· les données; - Grande flexibilité
· leurs relations; · description des structures
· leur sémantique; · explication des contraintes

· les contraintes. - Très grand nombre de modèles


Deux grands modèles de structuration : · modèle Entités-Relations (E-R)

· Modèle logique orienté objet


· Modèle logique orienté enregistrement

31 32

8
Modèles de structuration des données Modèle Entité/Association
Modèle logique orienté enregistrement - Origine: Peter Chen (1976).
- Niveau conceptuel et interne de la BD; - La méthode permet de distinguer les entités qui
- Se rapproche de la structure physique des données; constituent la base de données, et les associations
- Trois modèles les plus connus : (relations) entre ces entités.
· Modèle relationnel;
- Ces concepts permettent de donner une structure à
la base.
· Modèle hiérarchique;
· Modèle réseau. Ces concepts de base sont:
– Entité
– Attribut
– Type d’entité
– Association (relation)
– Type d’association
– Cardinalités
33 34

Modèle Entité/Association Modèle Entité/Association


Entité Attributs
Une entité est un objet, une chose concrète ou - Propriétés qui compose l’entité ou l’association
abstraite qui peut être reconnue distinctement et qui est Exemple:
caractérisée par son unicité. Etudiant : Matricule, Nom, Prénom, Adresse
On peut distinguer deux types d’entités : Compte CCP : Numéro, Solde
- Entités concrètes (visible, palpable): pièce mécanique, personne - Comporte des domaines de valeurs autorisées
- Entités abstraites (non visible): période de temps, action Exemple:
Nom : chaîne de 12 caractères
Exemple:
Numéro : ensemble d’entiers positifs
L’étudiant: Ben Moh, Matricule 89/201
Cours : Structure de Fichiers à l’ESI - Types d’attributs:
• Valeur simple ou valeurs multiples
• Dérivé
• Simple (atomique) ou composé (composite)
35 36

9
Modèle Entité/Association Modèle Entité/Association
Attributs Attributs
- Composite: composé de plusieurs autres attributs de base. - Valeur simple: possède qu’une seule valeur (valeur
- Atomique: pas divisible. unique).
Exemple: Âge possède une seule valeur.
- Valeurs multiples: possède un ensemble de valeurs
pour la même entité
Exemple: Couleur pour une voiture (rouge, verte, bleue,
jaune,etc…)
- Dérivé: attribut qui est en étroite relation avec un
autre attribut.
Exemple: Âge et date de naissance.

37 38

Modèle Entité/Association Modèle Entité/Association


Attributs clès Attributs clès
- Ensemble d'un ou plusieurs attributs qui permet - Super Clé : Tout ensemble d'un ou plusieurs attributs
d'identifier de façon unique une entité dans qui permet d'identifier de façon unique
l'ensemble des entités. une entité dans l'ensemble des entités.
Exemple: Remarque: Chaque entité possède au moins une
Le matricule de l'entité ÉTUDIANT suffit de distinguer un super clé qui est l'ensemble de tous ses attributs.
étudiant d'un autre.
- Clé : C'est une super clé à laquelle on ne peut plus
- Caractéristiques d’une clé enlever d'attributs.
• Super clé Exemple : L'ensemble d'attributs {Matricule, Nom, Age}
• Clé secondaire ou clé candidate est une super clé de l’entité ÉTUDIANT, mais pas une clé.
• Clé primaire
- Clé Candidate : Clé possédant les caractéristiques
pour être une clé primaire
39 40

10
Modèle Entité/Association Modèle Entité/Association
Attributs clès Type d'entités
Clé Primaire : - Ensemble d'entités du même type.
- La clé désignée parmi les clés candidates par le Exemple:
concepteur de la base de données pour identifier de Employé: ensemble des personnes qui travaille pour une
façon unique une entité. compagnie.
- soulignée dans le schéma de E/A.
Exemple:
ÉTUDIANT{Matricule, Nom, Age}
• Super Clé: {Matricule, Nom, Age} ou {Matricule, Nom}
• Clé: {Matricule}
• Clé candidate: {Matricule}
• Clé primaire: {Matricule}
41 42

Modèle Entité/Association Modèle Entité/Association


• Représentation graphique de l’entité et de l’attribut Relation
Une relation associe plusieurs entités.
Exemple:
L’étudiant Flen « suit » le cours SFSD

Etudiant Cours
Matricule Code
Nom Suivre Intitulé
Prénom. Crédit
… …

43 44

11
Modèle Entité/Association Modèle Entité/Association
Relation Réflexive Type de Relation
Appelée aussi cyclique ou récursive. Un type de relations est un ensemble de relations qui
Exemple : agissent sur les mêmes types d’entités.
– FILIATION(père: PERSONNE, fils: PERSONNE) Ici, l’ensemble de relations (r1,r2) représente un type
Dans une occurrence
d’association une personne
de relation.
– Compose(composant: PRODUIT,
peut assumer un des deux rôles composé: PRODUIT)
père ou fils.

45 46

Modèle Entité/Association Modèle Entité/Association


Degré du type relation Exemple d’une relation tertiaire
Cette relation associe trois entités (Enseignant, Cours et Salle),
Le degré du type de relation est le nombre de types elle signifie qu’un enseignant A donne cours B dans la salle C.
(classes) d'entités participantes.
Enseignant Cours
Exemple: Supposons maintenant que : Matricule Donner Code
Le degré du type de relations « Suit » est égale à deux. - (Enseignant, Cours): l’instance Nom Intitulé
Prénom. Crédit
(A,B) signifie l’enseignant A … …
- Une relation de degré deux est appelé relation Salle
donne le cours B
binaire. - (Enseignant, Salle): l’instance (A,C) signifie
Numéro

- Une relation de degré trois est appelé relation l’enseignant A enseigne à la salle C …
ternaire. - (Cours, Salle): l’instance (B,C) signifie que le cours B est
donné à la salle C
- Une relation peut être de n'importe quel degré. En - Les 3 instances (A,C), (A,B) et (C,B) n'implique pas
général, elles sont binaires. nécessairement que l'instance (A,B,C) existe dans la relation
ternaire ABC. (voir explication au tableau)
47 48

12
Modèle Entité/Association Modèle Entité/Association
Attributs d’une relation Cardinalité
Une relation peut posséder des attributs. Exprime le nombre minimum et le nombre maximum de
participations de chaque occurrence d’entité à une
association (min, max).

49 50

Modèle Entité/Association Modèle Entité/Association


Cardinalité Cardinalité
Les seuls cardinalités admises sont donc : Exemple:
0,1 : une occurrence du type-entité peut exister tout en étant Personne Livre
impliquée dans aucune association et peut être impliquée 0,n 1,1
Num Est Num
dans au maximum une association. Nom Titre
l’auteur
0,n : c’est la cardinalité la plus ouverte ; une occurrence du type- Prénom. Année
Adresse ISBN
entité peut exister tout en étant impliquée dans aucune
association et peut être impliquée, sans limitation, dans
plusieurs associations. - Un livre ne peut posséder qu’un seul et unique auteur.
1,1 : une occurrence du type-entité ne peut exister que si elle est - Une personne peut ne pas être l’auteur d’aucun livre et peut
impliquée dans exactement (au moins et au plus) une être l’auteur de plusieurs livres
association.
1,n : une occurrence du type-entité ne peut exister que si elle est
impliquée dans au moins une association.
51 52

13
Modèle Entité/Association Modèle Entité/Association
Cardinalité Les rations de cardinalité
Exemple:
Personne Livre
Num 1,n 1,n Num
Est
Nom l’auteur Titre
Prénom. Année
Adresse ISBN

- Un livre possède au minimum un auteur jusqu’à plusieurs


auteurs
- Une personne est l’auteur d’au moins un livre jusqu’à plusieurs
livres.

53 54

Modèle Entité/Association Modèle Entité/Association


Les ratios de cardinalité Les ratios de cardinalité

55 56

14
Modèle Entité/Association Modèle Entité/Association
Les ratios de cardinalité Les ratios de cardinalité

57 58

Modèle Entité/Association Modèle Entité/Association


Les ratios de cardinalité Les ratios de cardinalité

59 60

15
Modèle Entité/Association Modèle Entité/Association
Mise en situation un exemple: Mise en situation un exemple:
Considérons la base de données d’une université pour Cette BD pourrait être organisée, en 2 entités et 2
maintenir l'information concernant les étudiants et leurs relations, comme suit:
cours. Entité ÉTUDIANT: Information sur chaque étudiant.
Chaque étudiant suit un certain nombre de cours. Entité COURS: Information sur chaque cours.
Un cours peut posséder certains pré-requis.
Pour chaque cours effectués, un étudiant doit avoir un Relation RÉSULTAT: Résultat pour les cours des
résultat. (voir au tableau) étudiants.
Relation PRÉ-REQUIS: Les pré-requis de chaque
cours.

61 62

Modèle Entité/Association Modèle Entité/Association


Mise en situation un exemple: Mise en situation un exemple:
Pour définir cette BD, il faut spécifier les données Le modèle Entité/Association de cette BD est:
(attributs) à stocker dans chaque entité:
ÉTUDIANT: Matricule Etudiant
Cours
Nom Matricule (1,N) Suivre (1,N) Code
Prénom Nom - Résultat Nom
Adresse Prénom.
Crédit
Adresse
COURS: Code du cours (0,N)
Nom du cours
Crédit (0,N)
Pré-requis

63 64

16
Modèle Entité/Association Modèle Relationnel
Conclusion sur le modèle E/A 1. Introduction
Le modèle E/A est utilisé dans la plupart des méthodes 2. Evolution du modèle relationnel
d’analyse/conception : OMT, CASE, MERISE, etc. La 3. Définitions
syntaxe varie, mais on retrouve toujours les mêmes 4. Contraintes relationnelles
éléments fondamentaux.
5. Opérations sur une BD relationnelles
Dans le cadre des bases de données, le modèle E/A
est utilisé dans la phase de conception. Il permet de 6. Manipulation des données
spécifier la structure des informations qui vont être
contenues dans la base et d’offrir une représentation
abstraite indépendante du modèle logique qui sera
choisi ensuite. Le modèle E/A a cependant
l’inconvénient majeur de ne pas proposer d’opérations
sur les données 65 66

Modèle Relationnel Modèle Relationnel


1. Introduction 2. Evolution du modèle relationnel
- Développé par Codd en 1970 • Années 1980
– Maturation de la technique relationnelle.
- Modèle logique orienté enregistrement – 1986 : Première Norme SQL (SQL86)
– 1989 : Standardisation de SQL (SQL89).
- Constitué de tableaux appelés relations.
• Années 1990
- Simple: la relation est la seule structure du modèle. – 1992 : Norme SQL2 (SQL92)
– Amélioration constante de la technologie relationnelle.
- La définition de relation est plus générale qu’au modèle – Support de la distribution et du parallélisme.
E-R. – 1999 : Le relationnel-objet Norme SQL3 (SQL99)
– Nouveaux domaines d’application: entrepôts de données et
- Il définit l’Algèbre Relationnelle sur laquelle est basé décisionnel, Web, Multimédia, Mobiles, etc.
SQL (Structured Query Language), le langage • Années 2000
standard de manipulation (LMD) et de description des – Norme SQL 2003 :
données (LDD) de tous les SGBD Relationnels • SQL Routines and Types Using the Java Programming Language
• XML-Related Specifications (SQL/XML)
actuels. 67 – Norme SQL 2008 68

17
Modèle Relationnel Modèle Relationnel
3. Définitions • Attribut
Dans le modèle relationnel, les données sont stockées Les attributs nomment les colonnes d’une relation. Il
dans des tables (tableau à deux dimensions). servent à la fois à indiquer le contenu de cette colonne,
Chaque colonne de la table est nommée et à la référencer quand on effectue des opérations. Le
indépendamment de son ordre, qui n'a aucune incidence nom d’un attribut peut apparaître dans plusieurs
dans ce modèle. On nomme attribut le nom donné à une schémas de relations.
colonne de la table. Chaque attribut possède un domaine de valeurs
Une ligne de la table contient des valeurs pour chacun (D1,D2,..., Dn).
des attributs. Chacune de ces lignes est appelée n-uplet Exemple:
ou tuple.
Les attributs: Matricule, Nom, Prénom, Date de
L'ensemble des n-uplets d'une table se nomme relation. naissance, … sont des attributs d’étudiant
Une BD relationnelle est formée d'un ensemble de
relations 69 70

Modèle Relationnel Modèle Relationnel


• Domaine de valeur • Schéma de relation
Un domaine de valeur est un ensemble d’instances Le schéma d’une relation R est défini par le nom de la
d’un type élémentaire. Exemple : les entiers, les réels, relation et la liste des attributs avec pour chaque
les chaînes de caractères, etc. La notion de ‘type attribut son domaine :
élémentaire’ s’oppose à celle de type structuré : il est R(A1 : D1, . . . , An : Dn) ou R(A1, . . . , A1)
interdit en relationnel de manipuler des valeurs Exemple:
instances de graphes, de listes, d’enregistrements, etc.
VEHICULE(Nom:CHAR(20),Type:CHAR(10),Année:ENTIER)
En d’autres termes le système de types est figé et
ETUDIANT(Matricule, Nom, Date_naiss, Groupe)
fourni par le système.
Un schéma de relation définit l'intention de la relation
Exemple:
• Schéma de BD
L'ensemble des nombres entiers, l'intervalle de
nombres réels [0:0; 10000:0] et l'ensemble {rouge; Le schéma d’une base de données est l’ensemble des
vert; bleu} constituent des exemples de domaines. 71 schémas de ses relations. 72

18
Modèle Relationnel Modèle Relationnel
• Relation • Produit cartésien
Une relation r de schéma R(A1;A2; … ;An) est un sous- Le produit cartésien d'un ensemble de domaines D1,
ensemble du produit cartésien des domaines de R, D2,…, Dn, noté D1 xD2 x…xDn, est l'ensemble de n-
càd. R  Dom(A1)x Dom(A2)x…xDom(An). uplets (ou tuples) <v1, v2,…, vn> tels que vi ∈ Di.
On dit aussi que r est une instance du schéma de • Degré d’une relation
relation R. Une instance de table représente une Le degré de la relation est le nombre d'attributs (n)
extension de la relation dans son schéma relationnel
• Tuple ou n_uplet Exemple:
Un n-uplet correspond à une ligne d'une relation. Il est Cette relation est de degré 7 :
composé de n éléments : ÉTUDIANT(Matricule, Nom, Prénom, Date_naiss,
(v1, v2,..., vn) où v1ϵD1, v2ϵD2, ..., vnϵDn Téléphone, Adresse, Promotion)

73 74

Modèle Relationnel Modèle Relationnel


Exemple - En résumé:
ETUDIANT(Matricule, Nom, Date_naiss, Groupe)

Nom de la relation Nom des attributs

ETUDIANTS
Table Matricule Nom Date_naiss Groupe

Attributs

Population Matricule Nom Date_naiss Groupe


12546 Toto 25/01/81 A1
Tuple ou 24323 Tata 23/04/80 C1
occurence
43587 Titi 20/09/80 A2 75 76

19
Modèle Relationnel Modèle Relationnel
4. Contraintes relationnelles 4. Contraintes relationnelles
- Il existe 4 types de contraintes: 4.1 Contraintes de domaines
· de domaines - La valeur de chaque attribut dans un tuple est
· de clés atomique (non divisible)
· d’intégrité entité  Attributs composites ou multivalués non acceptés

· d’intégrité de référence - La valeur doit respecter le format des données du


domaine de l’attribut (entier, réel, date, caractère).
- Elles doivent être vérifiées par chaque instance du
schéma. - Un attribut peut ne pas être renseigné pour un tuple:
on dit alors qu'il a une valeur nulle
Exemple : on ne connaît pas la date de naissance de Tata
 L’attribut n’est pas défini pour le tuple en question
 La valeur de l’attribut n’est pas encore connue
77 78

Modèle Relationnel Modèle Relationnel


4. Contraintes relationnelles 4. Contraintes relationnelles
4.2 Contraintes de clés 4.3 Contraintes d’intégrité entité
- Chaque tuple dans une relation doit être unique. - stipulent qu'aucune clé primaire ne doit être nulle.
- Toute relation doit posséder une clé qui identifie un 4.4 Contraintes d'intégrité de référence
tuple de façon unique. - contraintes spécifiées entre deux relations et utilisées
- Une relation peut posséder plusieurs clés candidates. pour maintenir la consistance entre les tuples de deux
· A la limite, l’ensemble de tous les attributs constitue une clé.
relations.
- La clé choisie est appelé clé primaire.
· Elle est soulignée dans la relation.
- concept de clé étrangère (Foreign Key).
Exemple:
ETUDIANT(Nom,Prénom,Matricule,Adresse,DateNaissance)

79 80

20
Modèle Relationnel Modèle Relationnel
5. Opérations sur une BD relationnelle 6. Manipulation des données
- Langage de définition des données (définition et MAJ Pour manipuler les relations, nous avons besoin d’un
du schéma) : langage adapté dont la particularité est de savoir
- création et destruction d’une relation ou d’une base manipuler aisément ces tableaux de données. Ce
- ajout, suppression d’un attribut langage constitue l’algèbre relationnelle.
- définition des contraintes (clés, références, ...)
L’algèbre relationnelle est le langage interne d’un
- Langage de manipulation des données SGBD relationnel. Ce langage consiste en un
- saisie des n-uplets d’une relation ensemble d’opérations qui permettent de manipuler
- affichage d’une relation
des relations, considérées comme des ensembles de
- modification d’une relation: insertion, suppression et maj
des n-uplets tuples : on peut ainsi faire l’union ou la différence de
- requêtes: consultation d’une ou de plusieurs relations deux relations, sélectionner une partie de la relation,
- Gestion des transactions et Gestion des vues effectuer des produits cartésiens ou des projections,
81 etc. 82

Modèle Relationnel Modèle Relationnel


6. Manipulation des données 6. Manipulation des données
Une propriété fondamentale de chaque opération est Une requête est une expression algébrique qui
qu’elle prend une ou deux relations en entrée, et s’applique à un ensemble de relations (la base de
produit une relation en sortie. Cette propriété permet de données) et produit une relation finale (le résultat de la
composer des opérations: requête). On peut voir l’algèbre relationnelle comme un
on peut appliquer une sélection au résultat d’un produit langage de programmation très simple qui permet
cartésien, puis une projection au résultat de la sélection d’exprimer des requêtes sur une base de données
et ainsi de suite. relationnelle. On parle de langage assertionnel car ils
En fait on peut construire des expressions algébriques permettent de définir les données que l’on souhaite
arbitrairement complexes qui permettent d’exprimer sans dire comment y accéder.
des manipulations sur un grand nombre de relations.

83 84

21
Modèle Relationnel Algèbre Relationnelle
6. Manipulation des données L'algèbre relationnelle est le langage interne d'un
Deux classes : SGBD relationnel. Elle se compose d'opérateurs de
• Les langages procéduraux: permettent de définir: manipulation des relations.
- l'information Ces opérateurs sont regroupés en deux familles :
- une méthode de recherche dans la base
- la façon d’accéder à l’information - les opérateurs ensemblistes (union, différence,
Exemple: algèbre relationnelle intersection et produit cartésien)
langage opérationnel, une requête s’écrit comme une - et les opérateurs relationnels (sélection,
succession d’opérations effectuées sur des relations
projection, jointure et division).
• Les langages non-procéduraux: permettent de définir:
- l'information désirée, mais le système de BD se charge de la
procédure de recherche.
Exemple: calcul relationnel
langage non-procédural permettant d'expliciter le résultat que
85
l'on désire sans spécifier la séquence des opérations à effectuer. 86

Algèbre Relationnelle Algèbre Relationnelle


Union ∪ Union ∪
• Arguments: 2 relations de même schéma : règles :
R(A1, . . . , Am) S(A1, . . . , Am) - R et S doivent présenter le même nombre d'attributs
• Notation: R∪S - les domaines du i ième attribut de R et du i ième attribut
• Schéma de T= R ∪ S: T(A1, . . . , A1) de S doivent être identiques
• Valeur de T: Union ensembliste sur D1×…× Dm : - ne créé pas de doublons (tuples identiques)
T = {t | t ∈ R ∨ t ∈ S} Exemple:

87 88

22
Algèbre Relationnelle Algèbre Relationnelle
Différence − Différence −
• Arguments : 2 relations de même schéma : Exemple:
R(A1, . . . , Am) S(A1, . . . , Am)
• Notation: R−S
• Schéma de T = R − S : T(A1, . . . , Am)
• Valeur de T : Différence ensembliste sur D1×…×Dm :
T = {t | t ∈ R ∧ t  S}
La différence signifie: on veut ’rejeter’ quelque chose,
on ’ne veut pas’ des lignes ayant telle propriété.

89 90

Algèbre Relationnelle Algèbre Relationnelle


Intersection ∩ Intersection ∩
• Arguments: 2 relations de même schéma : R ∩ S = R – (R - S) = S – (S - R)
R(A1, . . . , Am) S(A1, . . . , Am) Exemple:
• Notation: R∩S
• Schéma de T = R ∩ S: T(A1, . . . , Am)
• Valeur de T: Intersection ensembliste sur D1×…× Dm :
T = {t | t ∈ R ∧ t ∈ S}

Cette opération peut être dérivée de l’opération


différence: R ∩ S = R – (R - S) = S – (S - R)

91 92

23
Algèbre Relationnelle Algèbre Relationnelle
Produit cartésien × Produit cartésien ×
• Arguments : 2 relations quelconques : • Valeur de T = R × S : ensemble de tous les n-uplets
R(A1, . . . , An) S(B1, . . . , Bk ) ayant n + k composants (attributs)
• Notation: R×S - dont les n premiers composants forment un n-
• Schéma de T = R × S : T(A1,. . . , An, B1,. . . , Bk ). uplet de R
- On introduit les règles de renommage suivantes pour - et les k derniers composants forment un n-uplet
lever les éventuelles ambiguités sur le schéma de T: de S.
- Si le produit cartésien est le produit d’une relation
avec elle-même alors le nom de la relation est
numéroté pour identifier les deux rôles (par 1 et 2).
- Si les relations ont des attributs en commun, les noms
des attributs en commun sont préfixés par le nom de la
relation d’origine. 93 94

Algèbre Relationnelle Algèbre Relationnelle


Produit cartésien × Sélection/restriction σ
Exemple: • Sélection est un opérateur unaire
• Sélection avec une condition C sur les attributs d’une
relation R: on garde les n-uplets de R dont les attributs
satisfont la condition C.
• Notation: σC(R)
• La condition C d’une sélection σC(R) est une formule
logique qui relie des termes de la forme (Ai θ Aj) ou
(Ai θ a) avec les connecteurs logiques et (∧) et ou (∨)
où:
- Ai et Aj sont des attributs de la relation R,
- a est un élément (une valeur) du domaine de Ai,
- θ est un prédicat de comparaison (=,<,≤,>,≥, ≠).
95 96

24
Algèbre Relationnelle Algèbre Relationnelle
Sélection/restriction σ Sélection/restriction σ
Exemple: Exemple:
a) On sélectionne les n-uplets dans la relation R tels b) On sélectionne les n-uplets tels que
que l’attribut B vaut “b” :

97 98

Algèbre Relationnelle Algèbre Relationnelle


Sélection/restriction σ Projection π
Exemple: • Projection sur une partie (un sous-ensemble) des
c) On sélectionne les n-uplets tels que la 1re et la 2e attributs d’une relation R.
colonne sont identiques : • Notation : πA1,...,Ak (R)
A1,…,Ak sont des attributs (du schéma) de la relation R.
La projection “élimine” tous les autres attributs
(colonnes) de R.

99 100

25
Algèbre Relationnelle Algèbre Relationnelle
Projection π Projection π
Exemple: Exemple:
a) On élimine la colonne C dans la relation R : b) On élimine la colonne B dans la relation R (on garde
A et C) :

Le résultat est une relation (un ensemble) : le n-uplet


(a,b) n’apparaît qu’une seule fois dans la relation
πA,B(R), bien qu’il existe deux n-uplets (a,b,c) et (a,b,e)
dans R.
101 102

Algèbre Relationnelle Algèbre Relationnelle


Jointures Jointures
1. Jointure naturelle 1. Jointure naturelle
• Notation: R S Exemple:
• Arguments: 2 relations quelconques :
R(A1,..., Am, X1,..., Xk )
S(B1,..., Bn, X1,..., Xk )
où X1,...,Xk sont les attributs en commun.
• Schéma de T = R S: T(A1,..., Am, B1,..., Bn, X1,..., Xk)
• Valeur de T = R S: ensemble de tous les n-uplets
ayant m+n+k attributs dont les m premiers et k
derniers composants forment un n-uplet de R et les
n+k derniers composants forment un n-uplet de S.
103 104

26
Algèbre Relationnelle Algèbre Relationnelle
Jointures Jointures
1. Jointure naturelle 1. Jointure naturelle
Soit U = {A1,..., Am, B1,..., Bn, X1,..., Xk} l’ensemble des Exemple:
attributs des 2 relations et V = {X1,..., Xk} l’ensemble
des attributs en commun

Notation : R.X signifie “l’attribut X de la relation R”.

105 106

Algèbre Relationnelle Algèbre Relationnelle


Jointures Jointures
1. Jointure naturelle 2. Théta jointure
L’algorithme général: • Arguments: deux relations qui ne partagent pas
d’attributs :
R(A1,…, Am) S(B1,…, Bn)
• Notation: R Ai θ Bj S, θ ∈ {=, ≠,<,≤,>,≥}
• Schéma de T = R AI θ BJ S : T(A1,…, Am, B1,…, Bn)
• Valeur de T = R AI θ BJ S : T = σ Ai θ Bj (R × S)
• Équijointure : θ est l’égalité

107 108

27
Algèbre Relationnelle Algèbre Relationnelle
Jointures Jointures
2. Théta jointure 2. Théta jointure
Exemple Théta jointure: R A ≤ CS  σ A ≤ C (R × S) Exemple Equijointure: R A=DS  σ B=D(R × S)

109 110

Algèbre Relationnelle Algèbre Relationnelle


Renommage Division ÷
• Notation: ρ • Arguments: 2 relations :
• Arguments : 1 relation : R(A1,…, An) R(A1,..., Am, X1,..., Xk )
• Schéma de T = ρAi→BiR : T(A1,…, Ai-1, Bi , Ai+1,…, An) S(X1,..., Xk )
• Valeur de T = ρAi→BiR : T = R. La valeur de R est où tous les attributs de S sont des attributs de R.
inchangée. • Notation: R ÷ S
Seul le nom de l’attribut Ai a été remplacé par Bi • Schéma de T = R ÷ S : T(A1,..., Am)
• Valeur de T = R ÷ S :
R ÷ S = {(a1,..., am) | ∀(x1,..., xk ) ∈ S : (a1,..., am,
x1,..., xk) ∈ R}
pour qu’un tuple t apparaisse dans le résultat T de la division,
les valeurs dans t doivent apparaître en combinaison avec tous
les tuples de S.
111 112

28
Algèbre Relationnelle Algèbre Relationnelle
Division ÷ Division ÷
- La division s’exprime en fonction du produit cartésien, Exemple: R ÷ S = R1 − R2 avec
de la projection et de la différence :

T = R ÷ S = R1 − R2 où

Remarque : le produit cartésien T × S doit être contenu


dans la table R.

113 114

Algèbre Relationnelle Algèbre Relationnelle


- La sélection a pour effet de supprimer des lignes, En résumé, cinq de ces huit opérateurs forment les
mais chaque ligne garde l’ensemble de ses attributs. opérateurs de base (ce sont l’union, la différence, le
produit cartésien, la restriction et la projection) tandis
La différence «on veut ’rejeter’ quelque chose, on ’ne que les trois autres, appelés opérateurs dérivés,
veut pas’ des lignes ayant telle propriété) s’obtiennent plus ou moins facilement par combinaison
des opérateurs de base :

Les cinq opérateurs de base permettent de répondre à


toutes les questions que l’on peut poser avec la logique
du premier ordre (c’est-à-dire sans les fonctions) : on
115 dit que l’algèbre relationnelle est complète. 116

29
Algèbre Relationnelle Algèbre Relationnelle
En réalité, nous n’utiliserons dans nos requêtes que les En outre, ils trouvent leur application dans la
opérateurs les plus maniables : ce sont l’union et la conception des ordinateurs de base de données : les
différence pour l’insertion et la suppression de tuples opérateurs de l’algèbre relationnelle et leurs formes
dans la base et la restriction, la projection et la jointure dérivées n’y sont pas mis en œuvre sous forme
pour la recherche sélective de tuples. logicielle, mais implantées directement dans des
Les opérateurs de l’algèbre relationnelle ne présentent composants matériels de l’ordinateur.
pas seulement un intérêt sur le plan théorique. Leur
portée pratique est aussi importante. par exemple,
nous en aurons besoin pour optimiser les requêtes au
niveau du langage des systèmes de bases de données
relationnelles

117 118

Algèbre Relationnelle Algèbre Relationnelle


Exemple1: Exemple1:
Soit les trois tables suivantes : 7.La liste des noms de clients ayant commandés un produit vert
– CLIENTS(nclt, nom, age, adresse) ou bien rouge.
– PRODS(nprod, design, couleur, volume) 8.La liste des noms de clients ayant commandés au moins deux
– CMDS(nclt, nprod, qte, date). produits.
1.La liste des noms de clients qui ont un age > 20. 9.La liste des clients qui ont un age > 50 et qui n’ont pas
2.La liste des noms de clients ayant commandés le produit commandé un produit vert.
numéro 13. 10.La liste des noms de clients qui ont commandé tous nos
3.La liste des noms de clients ayant commandés un produit de produits.
couleur rouge. 11.La liste des noms de clients qui ont commandé tous nos
4.La couleur des produits commandés par monsieur Dupont. types de pince.
5.La liste des noms de clients ayant commandés au moins un 12.Le Nombre de clients habitant à paris.
produit. 13.Le nclt et le nom du ou des clients les plus jeunes de la table
6.La liste des noms de clients ayant commandés un produit vert client
ou rouge. 119 120

30
Algèbre Relationnelle
Exemple2 de travail:
ETUDIANT (Num_Etudiant integer, Nom char(20),
Adresse varchar(50))
COURS (Num_Cours integer, Nom char(20))
PROFS (Num_Prof integer, Nom char(20), Adresse
varchar(50))
COURS_SUIVI (Num_Etudiant integer, Num_Cours
integer)
COURS_ENSEIGNES (Num_Prof integer, Num_Cours
integer)

121

31

Vous aimerez peut-être aussi