Bases de Donn´ ees
Module M2104
IUT R&T Villetaneuse
13 f´ evrier 2020
Introduction Objectifs
Objectif d’une base de donn´ees
Stocker les donn´ ees communes ` a plusieurs applications de fa¸ con plus
efficace qu’un syst` eme de fichiers.
Introduction Objectifs
Objectif d’une base de donn´ees
Stocker les donn´ ees communes ` a plusieurs applications de fa¸ con plus
efficace qu’un syst` eme de fichiers.
Introduction Objectifs
Introduction
Base de donn´ ees versus SGBD
Une base de donn´ ees est un ensemble de donn´ ees reli´ ees entre elles, accessibles ` a plusieurs utilisateurs simultan´ ement.
Un SGBD (Syst` eme de Gestion de Bases de Donn´ ees) est un logiciel permettant de :
cr´ eer des bases de donn´ ees les interroger
les mettre ` a jour
assurer les contrˆ oles d’int´ egrit´ e, de concurrence et de s´ ecurit´ e.
Objectifs principaux
int´ egration
ind´ ependance
disponibilit´ e
s´ ecurit´ e
Introduction Objectifs
Introduction
Base de donn´ ees versus SGBD
Une base de donn´ ees est un ensemble de donn´ ees reli´ ees entre elles, accessibles ` a plusieurs utilisateurs simultan´ ement.
Un SGBD (Syst` eme de Gestion de Bases de Donn´ ees) est un logiciel permettant de :
cr´ eer des bases de donn´ ees les interroger
les mettre ` a jour
assurer les contrˆ oles d’int´ egrit´ e, de concurrence et de s´ ecurit´ e.
Objectifs principaux
int´ egration
ind´ ependance
disponibilit´ e
s´ ecurit´ e
Introduction Objectifs
Introduction
Base de donn´ ees versus SGBD
Une base de donn´ ees est un ensemble de donn´ ees reli´ ees entre elles, accessibles ` a plusieurs utilisateurs simultan´ ement.
Un SGBD (Syst` eme de Gestion de Bases de Donn´ ees) est un logiciel permettant de :
cr´ eer des bases de donn´ ees les interroger
les mettre ` a jour
assurer les contrˆ oles d’int´ egrit´ e, de concurrence et de s´ ecurit´ e.
Objectifs principaux
int´ egration
ind´ ependance
disponibilit´ e
s´ ecurit´ e
Introduction Objectifs
Int´ egration & Ind´ ependance
Int´ egration
Dans un syst` eme de traitement de donn´ ees orient´ e fichier,
l’application dialogue avec un grand nombre de fichiers ⇒ risque de duplication ou de perte d’informations
Dans l’approche base de donn´ ees, il y a :
centralisation de toutes les donn´ ees en un r´ eservoir unique de donn´ ees commun ` a toutes les applications
centralisation de tous les contrˆ oles d’int´ egrit´ e et de coh´ erence
Ind´ ependance
Ind´ ependance physique : le niveau utilisateur est transparent ` a un changement :
de support ou de chemin d’acc` es aux donn´ ees
de m´ ethode d’acc` es aux donn´ ees.
Introduction Objectifs
Int´ egration & Ind´ ependance
Int´ egration
Dans un syst` eme de traitement de donn´ ees orient´ e fichier,
l’application dialogue avec un grand nombre de fichiers ⇒ risque de duplication ou de perte d’informations
Dans l’approche base de donn´ ees, il y a :
centralisation de toutes les donn´ ees en un r´ eservoir unique de donn´ ees commun ` a toutes les applications
centralisation de tous les contrˆ oles d’int´ egrit´ e et de coh´ erence
Ind´ ependance
Ind´ ependance physique : le niveau utilisateur est transparent ` a un changement :
de support ou de chemin d’acc` es aux donn´ ees
de m´ ethode d’acc` es aux donn´ ees.
Introduction Objectifs
Disponibilit´ e & S´ ecurit´ e
Disponibilit´ e
Performance : tout utilisateur doit ignorer l’existence d’utilisateurs concurrents.
S´ ecurit´ e
Int´ egrit´ e : protection contre la modification invalide des donn´ ees.
Confidentialit´ e : protection contre l’acc` es ill´ egal aux donn´ ees.
Introduction Objectifs
Disponibilit´ e & S´ ecurit´ e
Disponibilit´ e
Performance : tout utilisateur doit ignorer l’existence d’utilisateurs concurrents.
S´ ecurit´ e
Int´ egrit´ e : protection contre la modification invalide des donn´ ees.
Confidentialit´ e : protection contre l’acc` es ill´ egal aux donn´ ees.
Conception de Bases de Donn´ees
Conception d’une base de donn´ees
Conception de Bases de Donn´ees
Conception de BD
niveau externe
r´ edaction en fran¸cais des besoins (cahier des charges)
⇓
niveau conceptuel
diagramme de classes UML
⇓
niveau logique sch´ ema relationnel
⇓ niveau physique
scripts SQL
Conception de Bases de Donn´ees
Conception de BD
niveau externe
r´ edaction en fran¸cais des besoins (cahier des charges)
⇓
niveau conceptuel
diagramme de classes UML
⇓
niveau logique sch´ ema relationnel
⇓ niveau physique
scripts SQL
Conception de Bases de Donn´ees
Conception de BD
niveau externe
r´ edaction en fran¸cais des besoins (cahier des charges)
⇓
niveau conceptuel
diagramme de classes UML
⇓
niveau logique sch´ ema relationnel
⇓
niveau physique
scripts SQL
Conception de Bases de Donn´ees
Conception de BD
niveau externe
r´ edaction en fran¸cais des besoins (cahier des charges)
⇓
niveau conceptuel
diagramme de classes UML
⇓
niveau logique sch´ ema relationnel
⇓
niveau physique
Conception de Bases de Donn´ees Cahier des charges
Exemple
Cahier des charges
On souhaite d´ evelopper une application informatique de gestion de vols.
Cette application doit permettre de g´ erer l’affectation des pilotes aux diff´ erents vols.
Contraintes
Un pilote ne peut pas assurer deux vols en mˆ eme temps.
Lors d’un vol, il doit y avoir un pilote dans l’avion.
Conception de Bases de Donn´ees Cahier des charges
Exemple
Cahier des charges
On souhaite d´ evelopper une application informatique de gestion de vols.
Cette application doit permettre de g´ erer l’affectation des pilotes aux diff´ erents vols.
Contraintes
Un pilote ne peut pas assurer deux vols en mˆ eme temps.
Lors d’un vol, il doit y avoir un pilote dans l’avion.
Conception de Bases de Donn´ees Classes et Objets
Notion de classe
Personne - nom : String - prenom : String - dateNaissance : Date + age() : int
Une classe est la description formelle d’un
ensemble d’objets ayant des propri´ et´ es
(attributs et m´ ethodes) communes
Une classe peut ˆ etre instanci´ ee : une
instance d’une classe est un objet
Conception de Bases de Donn´ees Classes et Objets
Notion de classe
Personne - nom : String - prenom : String - dateNaissance : Date + age() : int
Une classe est la description formelle d’un
ensemble d’objets ayant des propri´ et´ es
(attributs et m´ ethodes) communes
Une classe peut ˆ etre instanci´ ee : une
instance d’une classe est un objet
Conception de Bases de Donn´ees Classes et Objets
Repr´ esentation graphique
De
- nombreFaces : int + lancer() : int Classe
Visibilit´ e
Nom Attributs Op´ erations
Nom
Le nom de la classe doit ´ evoquer le concept d´ ecrit par la classe ; il
commence par une majuscule.
Conception de Bases de Donn´ees Classes et Objets
Repr´ esentation graphique
De
- nombreFaces : int + lancer() : int Classe
Visibilit´ e
Nom Attributs Op´ erations
Nom
Le nom de la classe doit ´ evoquer le concept d´ ecrit par la classe ; il
commence par une majuscule.
Conception de Bases de Donn´ees Classes et Objets
Attributs — Op´ erations ou m´ ethodes
Attributs
Les attributs d´ efinissent la structure d’un objet : ils r´ epondent ` a la question : Qui suis-je ?
Chaque attribut est d´ efini par un nom, un type, une visibilit´ e et une valeur qui peut diff´ erer d’un objet ` a un autre.
Dans le cas g´ en´ eral, la visibilit´ e d’un attribut est priv´ ee.
Op´ erations ou m´ ethodes
Les op´ erations d´ ecrivent les actions qu’un objet peut effectuer : elles r´ epondent ` a la question : Que puis-je faire ?
Elles peuvent prendre des valeurs en entr´ ee, modifier les attributs et/ou produire des r´ esultats
L’impl´ ementation d’une op´ eration est appel´ ee une m´ ethode. Dans le
cas g´ en´ eral, la visibilit´ e d’une m´ ethode est publique.
Conception de Bases de Donn´ees Classes et Objets
Attributs — Op´ erations ou m´ ethodes
Attributs
Les attributs d´ efinissent la structure d’un objet : ils r´ epondent ` a la question : Qui suis-je ?
Chaque attribut est d´ efini par un nom, un type, une visibilit´ e et une valeur qui peut diff´ erer d’un objet ` a un autre.
Dans le cas g´ en´ eral, la visibilit´ e d’un attribut est priv´ ee.
Op´ erations ou m´ ethodes
Les op´ erations d´ ecrivent les actions qu’un objet peut effectuer : elles r´ epondent ` a la question : Que puis-je faire ?
Elles peuvent prendre des valeurs en entr´ ee, modifier les attributs
et/ou produire des r´ esultats
Conception de Bases de Donn´ees Classes et Objets
Constructeurs
Personne - nom : String
- prenom : String - dateNaissance : Date + Personne()
+ Personne(nom :String, prenom : String, dateNais : Date) + getNom() : String
+ getPrenom() : String + age() : int
Un constructeur est une op´ eration appel´ ee lors de la cr´ eation d’un objet.
Conception de Bases de Donn´ees Classes et Objets
Constructeurs
Personne - nom : String
- prenom : String - dateNaissance : Date + Personne()
+ Personne(nom :String, prenom : String, dateNais : Date) + getNom() : String
+ getPrenom() : String + age() : int
Un constructeur est une op´ eration appel´ ee lors de la cr´ eation d’un objet.
Conception de Bases de Donn´ees Classes et Objets
Notion d’objet
jeanDupont : Personne nom : Dupont
prenom : Jean
dateNaissance : 29/02/1972 getNom() : String
getPrenom() : String age() : int
Un objet est une instance d’une classe dot´ ee de propri´ et´ es : une identit´ e
un ´ etat ou des propri´ et´ es structurelles : attributs et terminaisons d’associations
un comportement : ensemble de m´ ethodes qu’il peut invoquer
Les objets sont les ´ el´ ements d’un programme en cours d’ex´ ecution.
Conception de Bases de Donn´ees Classes et Objets
Notion d’objet
jeanDupont : Personne nom : Dupont
prenom : Jean
dateNaissance : 29/02/1972 getNom() : String
getPrenom() : String age() : int
Un objet est une instance d’une classe dot´ ee de propri´ et´ es : une identit´ e
un ´ etat ou des propri´ et´ es structurelles : attributs et terminaisons d’associations
un comportement : ensemble de m´ ethodes qu’il peut invoquer
Les objets sont les ´ el´ ements d’un programme en cours d’ex´ ecution.
Conception de Bases de Donn´ees Classes et Objets
Notion d’objet
jeanDupont : Personne nom : Dupont
prenom : Jean
dateNaissance : 29/02/1972 getNom() : String
getPrenom() : String age() : int
Un objet est une instance d’une classe dot´ ee de propri´ et´ es : une identit´ e
un ´ etat ou des propri´ et´ es structurelles : attributs et terminaisons d’associations
un comportement : ensemble de m´ ethodes qu’il peut invoquer
Les objets sont les ´ el´ ements d’un programme en cours d’ex´ ecution.
Conception de Bases de Donn´ees Relations entre classes : Associations
Association
D´ efinition
Une association est une relation entre des classes qui d´ ecrit les connexions structurelles entre leurs instances
polygone 1
sommets 3..*
Polygone D´ efini par I Point
Repr´ esentation graphique
Une association binaire est mat´ erialis´ ee par un trait plein entre les classes associ´ ees.
Elle peut avoir un nom : celui-ci figure alors au milieu du lien d’association.
Elle peut avoir un sens de lecture ( I ou J ).
De part et d’autre du lien d’association peuvent figurer des rˆ oles.
Conception de Bases de Donn´ees Relations entre classes : Associations
Association
D´ efinition
Une association est une relation entre des classes qui d´ ecrit les connexions structurelles entre leurs instances
polygone 1
sommets 3..*
Polygone D´ efini par I Point
Repr´ esentation graphique
Une association binaire est mat´ erialis´ ee par un trait plein entre les classes associ´ ees.
Elle peut avoir un nom : celui-ci figure alors au milieu du lien d’association.
Elle peut avoir un sens de lecture ( I ou J ).
De part et d’autre du lien d’association peuvent figurer des rˆ oles.
Conception de Bases de Donn´ees Relations entre classes : Associations
Association
D´ efinition
Une association est une relation entre des classes qui d´ ecrit les connexions structurelles entre leurs instances
polygone 1
sommets 3..*
Polygone D´ efini par I Point
Repr´ esentation graphique
Une association binaire est mat´ erialis´ ee par un trait plein entre les classes associ´ ees.
Elle peut avoir un nom : celui-ci figure alors au milieu du lien d’association.
Elle peut avoir un sens de lecture ( I ou J ).
Conception de Bases de Donn´ees Relations entre classes : Associations
Multiplicit´ e ou cardinalit´ e
polygone 1
sommets 3..*
Polygone D´ efini par I Point
Association binaire
La multiplicit´ e sur la terminaison cible fixe le nombre d’objets de la classe cible pouvant ˆ etre associ´ es ` a un seul objet donn´ e de la classe source (la classe de l’autre terminaison de l’association) :
exactement un : 1 ou 1..1
plusieurs : ∗ ou 0..∗
au moins un : 1..∗
de un ` a six : 1..6
Conception de Bases de Donn´ees Relations entre classes : Associations
Multiplicit´ e ou cardinalit´ e
polygone 1
sommets 3..*
Polygone D´ efini par I Point
Association binaire
La multiplicit´ e sur la terminaison cible fixe le nombre d’objets de la classe cible pouvant ˆ etre associ´ es ` a un seul objet donn´ e de la classe source (la classe de l’autre terminaison de l’association) :
exactement un : 1 ou 1..1 plusieurs : ∗ ou 0..∗
au moins un : 1..∗
de un ` a six : 1..6
Conception de Bases de Donn´ees Relations entre classes : Associations
Association r´ eflexive
Amiti´ e
Amiti´ e Personne
nom : String prenom : String dateNaissance : Date age() : int
Marie:Personne Jean:Personne
D´ efinition
Une association est dite r´ eflexive quand les deux extr´ emit´ es de
l’association aboutissent ` a la mˆ eme classe.
Conception de Bases de Donn´ees Relations entre classes : Associations
Association r´ eflexive
Amiti´ e
Amiti´ e Personne
nom : String prenom : String dateNaissance : Date age() : int
Marie:Personne Jean:Personne
D´ efinition
Une association est dite r´ eflexive quand les deux extr´ emit´ es de
Conception de Bases de Donn´ees Classe-association
Classe-association
employeurs
*
employes
* Entreprise
nom : String
Personne nom : String prenom : String Emploi
dateEmbauche : Date salaire : float
elle n’existe que pour contenir les attributs d’une association
elle est reli´ ee ` a l’association par un trait discontinu
Conception de Bases de Donn´ees Classe-association
Classe-association
employeurs
*
employes
* Entreprise
nom : String
Personne nom : String prenom : String Emploi
dateEmbauche : Date salaire : float
elle n’existe que pour contenir les attributs d’une association
Conception de Bases de Donn´ees Diagramme de classes
Diagramme de classes
diagramme le plus important de la mod´ elisation objet permet de mod´ eliser les classes du syst` eme et leurs relations ind´ ependamment d’un langage de programmation particulier repr´ esente graphiquement les classes interconnect´ ees par des associations ou des relations de g´ en´ eralisation
procure une vue statique du syst` eme (on ne tient pas compte du facteur temporel)
Principaux ´ el´ ements : les classes et leurs relations ou associations
Conception de Bases de Donn´ees Elaboration d’un diagramme de classes´
Elaboration d’un diagramme de classes ´
Trouver les classes du domaine ´ etudi´ e en collaboration avec un expert du domaine : concepts ou substantifs du domaine
Trouver les associations entre classes : verbes ou constructions verbales mettant en relation plusieurs classes (est compos´ e de, travaille pour. . . )
Trouver les attributs des classes : substantifs ou groupes nominaux (la masse d’une voiture, le montant d’une transaction. . . )
Attention : se m´ efier de certains attributs
qui sont en r´ ealit´ e des associations entre classes
Conception de Bases de Donn´ees Elaboration d’un diagramme de classes´
Diagramme de classes : exemple
1..* 1..*
Pilote id pilote : int nom : String adresse : String
Vol id vol : int
villeDepart : String villeArrivee : String heureDepart : String heureArrivee : String Effectue
date Vol : Date
Dans une optique bases de donn´ ees, on ne s’int´ eresse qu’aux attributs des
classes.
Conception de Bases de Donn´ees Elaboration d’un diagramme de classes´
Diagramme de classes : exemple
1..* 1..*
Pilote id pilote : int nom : String adresse : String
Vol id vol : int
villeDepart : String villeArrivee : String heureDepart : String heureArrivee : String Effectue
date Vol : Date
Dans une optique bases de donn´ ees, on ne s’int´ eresse qu’aux attributs des
Conception de Bases de Donn´ees Elaboration d’un diagramme de classes´
Diagramme de classes
Identifiant
Lorsqu’elle est impliqu´ ee dans un projet base de donn´ ees, une classe doit avoir un attribut jouant le rˆ ole d’identifiant unique.
Exemple
id pilote est un identifiant de la classe pilote. Pilote
id pilote : int
nom : String
adresse : String
Conception de Bases de Donn´ees Elaboration d’un diagramme de classes´
Diagramme de classes
Identifiant
Lorsqu’elle est impliqu´ ee dans un projet base de donn´ ees, une classe doit avoir un attribut jouant le rˆ ole d’identifiant unique.
Exemple
id pilote est un identifiant de la classe pilote.
Pilote
id pilote : int
nom : String
adresse : String
Conception de Bases de Donn´ees Sch´ema relationnel
Sch´ ema Relationnel
Sch´ ema Relationnel
fournit sous forme de relations une description simple des classes et de certaines associations du diagramme de classes.
Relation
Une relation R est un ensemble d’attributs. Exemple incomplet
PILOTE(id pilote, nom, adresse)
VOL(id vol, ville d´ epart, ville arriv´ ee, heure d´ epart, heure arriv´ ee)
La relation PILOTE a pour attributs : id pilote, nom et adresse
Conception de Bases de Donn´ees Sch´ema relationnel
Sch´ ema Relationnel
Sch´ ema Relationnel
fournit sous forme de relations une description simple des classes et de certaines associations du diagramme de classes.
Relation
Une relation R est un ensemble d’attributs.
Exemple incomplet
PILOTE(id pilote, nom, adresse)
VOL(id vol, ville d´ epart, ville arriv´ ee, heure d´ epart, heure arriv´ ee)
La relation PILOTE a pour attributs : id pilote, nom et adresse
Conception de Bases de Donn´ees Sch´ema relationnel
Sch´ ema Relationnel
Sch´ ema Relationnel
fournit sous forme de relations une description simple des classes et de certaines associations du diagramme de classes.
Relation
Une relation R est un ensemble d’attributs.
Exemple incomplet
PILOTE(id pilote, nom, adresse)
VOL(id vol, ville d´ epart, ville arriv´ ee, heure d´ epart, heure arriv´ ee)
La relation PILOTE a pour attributs : id pilote, nom et adresse
Conception de Bases de Donn´ees Sch´ema relationnel
Sch´ ema Relationnel
Sch´ ema Relationnel
fournit sous forme de relations une description simple des classes et de certaines associations du diagramme de classes.
Relation
Une relation R est un ensemble d’attributs.
Exemple incomplet
PILOTE(id pilote, nom, adresse)
VOL(id vol, ville d´ epart, ville arriv´ ee, heure d´ epart, heure arriv´ ee)
La relation PILOTE a pour attributs : id pilote, nom et adresse
Conception de Bases de Donn´ees Sch´ema relationnel
Sch´ ema Relationnel
Relation : instanciation
Une relation est instanci´ ee par une table.
Exemple
PILOTE id pilote nom adresse
3 Garratt Perth
4 Durand Paris
5 MacMachin Glasgow
Conception de Bases de Donn´ees Sch´ema relationnel
Sch´ ema Relationnel
Relation : instanciation
Une relation est instanci´ ee par une table.
Exemple
PILOTE id pilote nom adresse
3 Garratt Perth
4 Durand Paris
5 MacMachin Glasgow
Conception de Bases de Donn´ees Sch´ema relationnel
Sch´ ema Relationnel
Cl´ e Primaire
Une cl´ e primaire d’une relation est un attribut ou un groupe d’attributs de la relation qui identifie un tuple unique.
Une relation poss` ede une et une seule cl´ e primaire, mais peut contenir plusieurs cl´ es qui pourraient jouer ce rˆ ole (cl´ es candidates).
Dans le cas d’une relation issue d’une classe, la cl´ e primaire correspond ` a l’identifiant de la classe.
Exemple
PILOTE(id pilote, nom, adresse)
VOL(id vol, ville d´ epart, ville arriv´ ee, heure d´ epart,heure arriv´ ee)
id pilote est la cl´ e primaire de la relation PILOTE.
Conception de Bases de Donn´ees Sch´ema relationnel
Sch´ ema Relationnel
Cl´ e Primaire
Une cl´ e primaire d’une relation est un attribut ou un groupe d’attributs de la relation qui identifie un tuple unique.
Une relation poss` ede une et une seule cl´ e primaire, mais peut contenir plusieurs cl´ es qui pourraient jouer ce rˆ ole (cl´ es candidates).
Dans le cas d’une relation issue d’une classe, la cl´ e primaire correspond ` a l’identifiant de la classe.
Exemple
PILOTE(id pilote, nom, adresse)
VOL(id vol, ville d´ epart, ville arriv´ ee, heure d´ epart,heure arriv´ ee)
id pilote est la cl´ e primaire de la relation PILOTE.
Conception de Bases de Donn´ees Sch´ema relationnel
Sch´ ema Relationnel
Cl´ e Primaire
Une cl´ e primaire d’une relation est un attribut ou un groupe d’attributs de la relation qui identifie un tuple unique.
Une relation poss` ede une et une seule cl´ e primaire, mais peut contenir plusieurs cl´ es qui pourraient jouer ce rˆ ole (cl´ es candidates).
Dans le cas d’une relation issue d’une classe, la cl´ e primaire correspond ` a l’identifiant de la classe.
Exemple
PILOTE(id pilote, nom, adresse)
VOL(id vol, ville d´ epart, ville arriv´ ee, heure d´ epart,heure arriv´ ee)
id pilote est la cl´ e primaire de la relation PILOTE.
Conception de Bases de Donn´ees Sch´ema relationnel
Sch´ ema Relationnel : Contrainte d’Int´ egrit´ e et valeur nulle
Contrainte d’int´ egrit´ e
Tout SGBD relationnel doit v´ erifier l’unicit´ e et le caract` ere d´ efini (non nul) des valeurs de la cl´ e primaire.
Valeur nulle
Lors de l’insertion de tuples dans une relation, il arrive qu’un attribut soit inconnu ou non d´ efini. On introduit alors une valeur
conventionnelle, appel´ ee valeur nulle.
Une cl´ e primaire ne peut pas avoir une valeur nulle.
Conception de Bases de Donn´ees Sch´ema relationnel
Sch´ ema Relationnel : Contrainte d’Int´ egrit´ e et valeur nulle
Contrainte d’int´ egrit´ e
Tout SGBD relationnel doit v´ erifier l’unicit´ e et le caract` ere d´ efini (non nul) des valeurs de la cl´ e primaire.
Valeur nulle
Lors de l’insertion de tuples dans une relation, il arrive qu’un attribut soit inconnu ou non d´ efini. On introduit alors une valeur
conventionnelle, appel´ ee valeur nulle.
Une cl´ e primaire ne peut pas avoir une valeur nulle.
Conception de Bases de Donn´ees Sch´ema relationnel
Sch´ ema Relationnel : Cl´ e ´ Etrang` ere
Cl´ e ´ Etrang` ere
Une cl´ e ´ etrang` ere dans une relation est une cl´ e primaire dans une autre relation.
Exemple
MOD` ELE type constructeur capacit´ e
A340 Airbus 228
B747 Boeing 432
AVION id avion type compagnie
10 A340 Air France
20 B747 British Airways
30 B747 Qantas
type est la cl´ e primaire de la relation MOD` ELE et une cl´ e ´ etrang` ere de la
relation AVION.
Conception de Bases de Donn´ees Sch´ema relationnel
Sch´ ema Relationnel : Cl´ e ´ Etrang` ere
Cl´ e ´ Etrang` ere
Une cl´ e ´ etrang` ere dans une relation est une cl´ e primaire dans une autre relation.
Exemple
MOD` ELE type constructeur capacit´ e
A340 Airbus 228
B747 Boeing 432
AVION id avion type compagnie
10 A340 Air France
20 B747 British Airways
30 B747 Qantas
type est la cl´ e primaire de la relation MOD` ELE et une cl´ e ´ etrang` ere de la
relation AVION.
Conception de Bases de Donn´ees Sch´ema relationnel
Sch´ ema Relationnel : Cl´ e ´ Etrang` ere
Cl´ e ´ Etrang` ere
Une cl´ e ´ etrang` ere dans une relation est une cl´ e primaire dans une autre relation.
Exemple
MOD` ELE type constructeur capacit´ e
A340 Airbus 228
B747 Boeing 432
AVION id avion type compagnie
10 A340 Air France
20 B747 British Airways
30 B747 Qantas
Conception de Bases de Donn´ees Sch´ema relationnel
Sch´ ema Relationnel : Contrainte d’int´ egrit´ e de r´ ef´ erence
Lors de l’insertion d’un tuple dans AVION, le syst` eme doit v´ erifier que la valeur de l’attribut type existe bien dans MOD` ELE
Lors de la suppression d’un tuple dans MOD` ELE, 4 types de contrˆ oles peuvent ˆ etre effectu´ es :
interdire la suppression si la valeur de type existe dans AVION (recommand´ e)
supprimer ces valeurs
avertir l’utilisateur d’une incoh´ erence
remplacer ces valeurs par la valeur nulle
Du diagramme de classes au sch´ema relationnel
Du Diagramme de Classes au Sch´ema Relationnel
Du diagramme de classes au sch´ema relationnel
Diagramme de classes → Sch´ ema relationnel
Classes
Chaque classe du diagramme UML devient une relation contenant tous les attributs de la classe.
Si la classe poss` ede un identifiant, il devient la cl´ e primaire, sinon il faut ajouter une cl´ e primaire arbitraire.
Les m´ ethodes ne sont pas traduites.
Du diagramme de classes au sch´ema relationnel
Diagramme de classes → Sch´ ema relationnel
Association un ` a plusieurs
Ajouter un attribut cl´ e ´ etrang` ere dans la relation de cardinalit´ e N.
Cette cl´ e ´ etrang` ere est la cl´ e primaire de l’autre relation (celle de cardinalit´ e 1).
Association un ` a un
Il faut rajouter un attribut de type cl´ e ´ etrang` ere dans la relation d´ eriv´ ee de la classe de cardinalit´ e minimale ´ egale ` a 1.
Cette cl´ e ´ etrang` ere est la cl´ e primaire de l’autre relation.
Si les deux cardinalit´ es minimales sont ` a z´ ero, on choisit
arbitrairement la relation recevant la cl´ e ´ etrang` ere.
Du diagramme de classes au sch´ema relationnel
Diagramme de classes → Sch´ ema relationnel
Association un ` a plusieurs
Ajouter un attribut cl´ e ´ etrang` ere dans la relation de cardinalit´ e N.
Cette cl´ e ´ etrang` ere est la cl´ e primaire de l’autre relation (celle de cardinalit´ e 1).
Association un ` a un
Il faut rajouter un attribut de type cl´ e ´ etrang` ere dans la relation d´ eriv´ ee de la classe de cardinalit´ e minimale ´ egale ` a 1.
Cette cl´ e ´ etrang` ere est la cl´ e primaire de l’autre relation.
Si les deux cardinalit´ es minimales sont ` a z´ ero, on choisit
arbitrairement la relation recevant la cl´ e ´ etrang` ere.
Du diagramme de classes au sch´ema relationnel
Diagramme de classes → Sch´ ema relationnel
Association plusieurs ` a plusieurs
L’association ou la classe-association devient une relation dont la cl´ e primaire est compos´ ee par la concat´ enation des cl´ es primaires des classes connect´ es ` a l’association.
Ces attributs deviennent cl´ e ´ etrang` eres dans la nouvelle relation.
Les attributs de la classe-association doivent ˆ etre ajout´ es ` a la nouvelle relation.
Ces attributs peuvent faire partie de la cl´ e ´ etrang` ere.
Du diagramme de classes au sch´ema relationnel
Diagramme de classes → Sch´ ema relationnel : Exemple
Diagramme de classes
1..* 1..*
Pilote id pilote : int nom : String adresse : String
Vol id vol : int
villeDepart : String villeArrivee : String heureDepart : String heureArrivee : String Effectue
date Vol : Date
Sch´ ema relationnel
PILOTE(id pilote, nom, adresse)
VOL(id vol, ville d´ epart, ville arriv´ ee, heure d´ epart, heure arriv´ ee)
EFFECTUE(id pilote, id vol, date vol)
Du diagramme de classes au sch´ema relationnel
Diagramme de classes → Sch´ ema relationnel : Exemple
Diagramme de classes
1..* 1..*
Pilote id pilote : int nom : String adresse : String
Vol id vol : int
villeDepart : String villeArrivee : String heureDepart : String heureArrivee : String Effectue
date Vol : Date
Sch´ ema relationnel
PILOTE(id pilote, nom, adresse)
Normalisation
Normalisation
Normalisation Objectifs
Normalisation
Objectifs Eviter : ´
la redondance, c’est-` a-dire la duplication d’informations.
les incoh´ erences par ajout.
la perte d’informations par suppression.
S’assurer qu’un sch´ ema relationnel est correct.
Normalisation D´ependances fonctionnelles
D´ ependances Fonctionnelles
D´ efinition
Soit R(X , Y , Z ) une relation.
Si ` a une valeur de X n’est associ´ ee qu’une seule valeur de Y , on dit que X d´ etermine Y
Notation : X → Y
On dit encore que Y d´ epend fonctionnellement de X.
Normalisation 1`ere Forme Normale
1 ` ere Forme Normale
Une relation est en 1 ` ere forme normale si et seulement si chaque attribut ne contient qu’une seule valeur ` a chaque instant (on n’affecte pas plusieurs valeurs ` a un seul attribut).
AVION id avion type capacit´ e compagnie
10 A340 228 Air France
20 B747 432 British Airways Qantas AVION n’est pas en 1 ` ere forme normale.
AVION1 id avion type capacit´ e compagnie
10 A340 228 Air France
20 B747 432 British Airways
30 B747 432 Qantas
AVION1 est en 1 ` ere forme normale.
Normalisation 1`ere Forme Normale
1 ` ere Forme Normale
Une relation est en 1 ` ere forme normale si et seulement si chaque attribut ne contient qu’une seule valeur ` a chaque instant (on n’affecte pas plusieurs valeurs ` a un seul attribut).
AVION id avion type capacit´ e compagnie
10 A340 228 Air France
20 B747 432 British Airways Qantas
AVION n’est pas en 1 ` ere forme normale.
AVION1 id avion type capacit´ e compagnie
10 A340 228 Air France
20 B747 432 British Airways
30 B747 432 Qantas
AVION1 est en 1 ` ere forme normale.
Normalisation 1`ere Forme Normale
1 ` ere Forme Normale
Une relation est en 1 ` ere forme normale si et seulement si chaque attribut ne contient qu’une seule valeur ` a chaque instant (on n’affecte pas plusieurs valeurs ` a un seul attribut).
AVION id avion type capacit´ e compagnie
10 A340 228 Air France
20 B747 432 British Airways Qantas AVION n’est pas en 1 ` ere forme normale.
AVION1 id avion type capacit´ e compagnie
10 A340 228 Air France
20 B747 432 British Airways
30 B747 432 Qantas
AVION1 est en 1 ` ere forme normale.
Normalisation 1`ere Forme Normale
1 ` ere Forme Normale
Une relation est en 1 ` ere forme normale si et seulement si chaque attribut ne contient qu’une seule valeur ` a chaque instant (on n’affecte pas plusieurs valeurs ` a un seul attribut).
AVION id avion type capacit´ e compagnie
10 A340 228 Air France
20 B747 432 British Airways Qantas AVION n’est pas en 1 ` ere forme normale.
AVION1 id avion type capacit´ e compagnie
10 A340 228 Air France
20 B747 432 British Airways
30 B747 432 Qantas
AVION1 est en 1 ` ere forme normale.
Normalisation 1`ere Forme Normale
1 ` ere Forme Normale
Une relation est en 1 ` ere forme normale si et seulement si chaque attribut ne contient qu’une seule valeur ` a chaque instant (on n’affecte pas plusieurs valeurs ` a un seul attribut).
AVION id avion type capacit´ e compagnie
10 A340 228 Air France
20 B747 432 British Airways Qantas AVION n’est pas en 1 ` ere forme normale.
AVION1 id avion type capacit´ e compagnie
10 A340 228 Air France
20 B747 432 British Airways
Normalisation 2`eme Forme Normale
2 ` eme Forme Normale
Une relation est en 2 ` eme forme normale si et seulement si : elle est en 1 ` ere forme normale
tout attribut n’appartenant pas ` a la cl´ e primaire ne d´ epend pas d’une partie de cette cl´ e.
AVION id avion constructeur type capacit´ e compagnie
10 Airbus A340 228 Air France
20 Boeing B747 432 British Airways
30 Boeing B747 432 Qantas
D´ ependances fonctionnelles : (1) id avion → type (2) id avion → compagnie (3) type → capacit´ e (4)type → constructeur
La relation AVION n’est pas (1 et 2) en 2 ` eme forme normale.
Normalisation 2`eme Forme Normale
2 ` eme Forme Normale
Une relation est en 2 ` eme forme normale si et seulement si : elle est en 1 ` ere forme normale
tout attribut n’appartenant pas ` a la cl´ e primaire ne d´ epend pas d’une partie de cette cl´ e.
AVION id avion constructeur type capacit´ e compagnie
10 Airbus A340 228 Air France
20 Boeing B747 432 British Airways
30 Boeing B747 432 Qantas
D´ ependances fonctionnelles : (1) id avion → type (2) id avion → compagnie (3) type → capacit´ e (4)type → constructeur
La relation AVION n’est pas (1 et 2) en 2 ` eme forme normale.
Normalisation 2`eme Forme Normale
2 ` eme Forme Normale
Une relation est en 2 ` eme forme normale si et seulement si : elle est en 1 ` ere forme normale
tout attribut n’appartenant pas ` a la cl´ e primaire ne d´ epend pas d’une partie de cette cl´ e.
AVION id avion constructeur type capacit´ e compagnie
10 Airbus A340 228 Air France
20 Boeing B747 432 British Airways
30 Boeing B747 432 Qantas
D´ ependances fonctionnelles : (1) id avion → type (2) id avion → compagnie (3) type → capacit´ e (4)type → constructeur
La relation AVION n’est pas (1 et 2) en 2 ` eme forme normale.
Normalisation 2`eme Forme Normale
2 ` eme Forme Normale
Une relation est en 2 ` eme forme normale si et seulement si : elle est en 1 ` ere forme normale
tout attribut n’appartenant pas ` a la cl´ e primaire ne d´ epend pas d’une partie de cette cl´ e.
AVION id avion constructeur type capacit´ e compagnie
10 Airbus A340 228 Air France
20 Boeing B747 432 British Airways
30 Boeing B747 432 Qantas
D´ ependances fonctionnelles :
(1) id avion → type
(2) id avion → compagnie
(3) type → capacit´ e
Normalisation 2`eme Forme Normale
2 ` eme Forme Normale
AVION id avion constructeur type capacit´ e compagnie
10 Airbus A340 228 Air France
20 Boeing B747 432 British Airways
30 Boeing B747 432 Qantas
D´ ependances fonctionnelles : (1) id avion → type (2) id avion → compagnie (3) type → capacit´ e (4)type → constructeur
La relation AVION est en 2 ` eme forme normale. Remarque
la v´ erification de la deuxi` eme forme normale n’a de sens que dans le cas o` u
la cl´ e primaire est constitu´ ee de plusieurs attributs.
Normalisation 2`eme Forme Normale
2 ` eme Forme Normale
AVION id avion constructeur type capacit´ e compagnie
10 Airbus A340 228 Air France
20 Boeing B747 432 British Airways
30 Boeing B747 432 Qantas
D´ ependances fonctionnelles : (1) id avion → type (2) id avion → compagnie (3) type → capacit´ e (4)type → constructeur
La relation AVION est en 2 ` eme forme normale. Remarque
la v´ erification de la deuxi` eme forme normale n’a de sens que dans le cas o` u
la cl´ e primaire est constitu´ ee de plusieurs attributs.
Normalisation 2`eme Forme Normale
2 ` eme Forme Normale
AVION id avion constructeur type capacit´ e compagnie
10 Airbus A340 228 Air France
20 Boeing B747 432 British Airways
30 Boeing B747 432 Qantas
D´ ependances fonctionnelles : (1) id avion → type (2) id avion → compagnie (3) type → capacit´ e (4)type → constructeur
La relation AVION est en 2 ` eme forme normale.
Remarque
la v´ erification de la deuxi` eme forme normale n’a de sens que dans le cas o` u
la cl´ e primaire est constitu´ ee de plusieurs attributs.
Normalisation 2`eme Forme Normale
2 ` eme Forme Normale
AVION id avion constructeur type capacit´ e compagnie
10 Airbus A340 228 Air France
20 Boeing B747 432 British Airways
30 Boeing B747 432 Qantas
D´ ependances fonctionnelles : (1) id avion → type (2) id avion → compagnie (3) type → capacit´ e (4)type → constructeur
La relation AVION est en 2 ` eme forme normale.
Remarque
la v´ erification de la deuxi` eme forme normale n’a de sens que dans le cas o` u
Normalisation 3`eme Forme Normale
3 ` eme Forme Normale
Une relation est en 3 ` eme forme normale si et seulement si : elle est en 2 ` eme forme normale et
tout attribut n’appartenant pas ` a la cl´ e ne d´ epend pas d’un attribut non cl´ e.
AVION id avion constructeur type capacit´ e compagnie
10 Airbus A340 228 Air France
20 Boeing B747 432 British Airways
D´ ependances fonctionnelles : (1) id avion → type (2) id avion → compagnie (3) type → capacit´ e (4) type → constructeur
La relation AVION n’est pas (3 et 4) en 3 ` eme forme normale.
Normalisation 3`eme Forme Normale
3 ` eme Forme Normale
Une relation est en 3 ` eme forme normale si et seulement si : elle est en 2 ` eme forme normale et
tout attribut n’appartenant pas ` a la cl´ e ne d´ epend pas d’un attribut non cl´ e.
AVION id avion constructeur type capacit´ e compagnie
10 Airbus A340 228 Air France
20 Boeing B747 432 British Airways
D´ ependances fonctionnelles : (1) id avion → type (2) id avion → compagnie (3) type → capacit´ e (4) type → constructeur
La relation AVION n’est pas (3 et 4) en 3 ` eme forme normale.
Normalisation 3`eme Forme Normale
3 ` eme Forme Normale
Une relation est en 3 ` eme forme normale si et seulement si : elle est en 2 ` eme forme normale et
tout attribut n’appartenant pas ` a la cl´ e ne d´ epend pas d’un attribut non cl´ e.
AVION id avion constructeur type capacit´ e compagnie
10 Airbus A340 228 Air France
20 Boeing B747 432 British Airways
D´ ependances fonctionnelles : (1) id avion → type (2) id avion → compagnie (3) type → capacit´ e (4) type → constructeur
La relation AVION n’est pas (3 et 4) en 3 ` eme forme normale.
Normalisation 3`eme Forme Normale
3 ` eme Forme Normale
Une relation est en 3 ` eme forme normale si et seulement si : elle est en 2 ` eme forme normale et
tout attribut n’appartenant pas ` a la cl´ e ne d´ epend pas d’un attribut non cl´ e.
AVION id avion constructeur type capacit´ e compagnie
10 Airbus A340 228 Air France
20 Boeing B747 432 British Airways
D´ ependances fonctionnelles : (1) id avion → type (2) id avion → compagnie (3) type → capacit´ e
→
Normalisation 3`eme Forme Normale
3 ` eme Forme Normale
MOD` ELE type constructeur capacit´ e
A340 Airbus 228
B747 Boeing 432
AVION id avion type compagnie
10 A340 Air France
20 B747 British Airways
30 B747 Qantas
D´ ependances fonctionnelles : id avion → type, id avion → compagnie, type → constructeur, type → capacit´ e
MODELE et AVION sont en 3 ` eme forme normale.
Normalisation 3`eme Forme Normale
3 ` eme Forme Normale
MOD` ELE type constructeur capacit´ e
A340 Airbus 228
B747 Boeing 432
AVION id avion type compagnie
10 A340 Air France
20 B747 British Airways
30 B747 Qantas
D´ ependances fonctionnelles : id avion → type, id avion → compagnie, type → constructeur, type → capacit´ e
MODELE et AVION sont en 3 ` eme forme normale.
Normalisation 3`eme Forme Normale
3 ` eme Forme Normale
MOD` ELE type constructeur capacit´ e
A340 Airbus 228
B747 Boeing 432
AVION id avion type compagnie
10 A340 Air France
20 B747 British Airways
30 B747 Qantas
D´ ependances fonctionnelles : id avion → type, id avion → compagnie, type → constructeur, type → capacit´ e
MODELE et AVION sont en 3 ` eme forme normale.
Normalisation
R` egles sur les Relations
Tuples et attributs
1
chaque tuple d’une relation est unique
2
l’ordre des tuples dans une relation n’a pas de signification
3
chaque attribut prend ses valeurs dans un seul domaine
4
un domaine peut correspondre ` a plusieurs attributs
Domaine
Un domaine est un ensemble de valeurs identifi´ ees par un nom. D´ efinition du domaine :
en intension (exemples : entier, r´ eel, chaˆıne de caract` eres, . . . )
en extension (exemple : villes = {Paris, Marseille, Lyon})
Normalisation
R` egles sur les Relations
Tuples et attributs
1
chaque tuple d’une relation est unique
2
l’ordre des tuples dans une relation n’a pas de signification
3
chaque attribut prend ses valeurs dans un seul domaine
4
un domaine peut correspondre ` a plusieurs attributs Domaine
Un domaine est un ensemble de valeurs identifi´ ees par un nom.
D´ efinition du domaine :
en intension (exemples : entier, r´ eel, chaˆıne de caract` eres, . . . )
en extension (exemple : villes = {Paris, Marseille, Lyon})
Alg`ebre relationnelle
Alg`ebre relationnelle
Alg`ebre relationnelle
Alg` ebre Relationnelle
L’alg` ebre relationnelle utilise une collection d’op´ erateurs qui agissent sur des relations et produisent des relations comme r´ esultat.
Op´ erateurs
unaires : projection, s´ election
ensemblistes : union, produit, diff´ erence, intersection
binaires (ou n-aires) : jointure, division
Alg`ebre relationnelle
Alg` ebre Relationnelle
L’alg` ebre relationnelle utilise une collection d’op´ erateurs qui agissent sur des relations et produisent des relations comme r´ esultat.
Op´ erateurs
unaires : projection, s´ election
ensemblistes : union, produit, diff´ erence, intersection
binaires (ou n-aires) : jointure, division
Alg`ebre relationnelle Projection
Projection
La projection d’une relation R sur un ensemble d’attributs {A i } de R est un sous-ensemble de R r´ eduit aux sous-tuples ne contenant que les attributs de {A i }.
Suppression dans les tuples de tous les attributs n’appartenant pas ` a {A i }, puis suppression des doublons.
Notation : Π A
1,...,A
n(nom-relation)
Alg`ebre relationnelle Projection
Exemple
Quels sont les diff´ erents types d’avions ?
AVION id avion constructeur type capacit´ e compagnie
10 Airbus A340 228 Air France
20 Boeing B747 432 British Airways
30 Boeing B747 432 Qantas
AVION id avion constructeur type capacit´ e compagnie
10 Airbus A340 228 Air France
20 Boeing B747 432 British Airways
30 Boeing B747 432 Qantas
Π
type(AVION) type
A340
B747
Alg`ebre relationnelle Projection
Exemple
Quels sont les diff´ erents types d’avions ?
AVION id avion constructeur type capacit´ e compagnie
10 Airbus A340 228 Air France
20 Boeing B747 432 British Airways
30 Boeing B747 432 Qantas
AVION id avion constructeur type capacit´ e compagnie
10 Airbus A340 228 Air France
20 Boeing B747 432 British Airways
30 Boeing B747 432 Qantas
Π
type(AVION) type
A340
B747
Alg`ebre relationnelle Projection
Exemple
Quels sont les diff´ erents types d’avions ?
AVION id avion constructeur type capacit´ e compagnie
10 Airbus A340 228 Air France
20 Boeing B747 432 British Airways
30 Boeing B747 432 Qantas
AVION id avion constructeur type capacit´ e compagnie
10 Airbus A340 228 Air France
20 Boeing B747 432 British Airways
30 Boeing B747 432 Qantas
Π
type(AVION) type
A340
Alg`ebre relationnelle S´election
S´ election
La s´ election sur une relation R suivant une condition C portant sur des
attributs de R est un sous-ensemble de R dont les tuples satisfont C .
Notation : σ C (R)
Alg`ebre relationnelle S´election
Exemple
Quels avions peuvent accueillir au moins 300 passagers ?
AVION id avion constructeur type capacit´ e compagnie
10 Airbus A340 228 Air France
20 Boeing B747 432 British Airways
30 Boeing B747 432 Qantas
AVION id avion constructeur type capacit´ e compagnie
10 Airbus A340 228 Air France
20 Boeing B747 432 British Airways
30 Boeing B747 432 Qantas
σ
capacit´e≥300 (AVION)
Alg`ebre relationnelle S´election
Exemple
Quels avions peuvent accueillir au moins 300 passagers ?
AVION id avion constructeur type capacit´ e compagnie
10 Airbus A340 228 Air France
20 Boeing B747 432 British Airways
30 Boeing B747 432 Qantas
AVION id avion constructeur type capacit´ e compagnie
10 Airbus A340 228 Air France
20 Boeing B747 432 British Airways
30 Boeing B747 432 Qantas
σ
capacit´e≥300 (AVION)
Alg`ebre relationnelle Union
Union
L’union est une op´ eration ensembliste portant sur 2 relations R 1 et R 2 de mˆ eme sch´ ema. R 1 ∪ R 2 est la relation de mˆ eme sch´ ema contenant les tuples de R 1 et ceux de R 2 : Copie des tuples de R 1 et de R 2 , puis suppression des doublons.
Quels sont tous les pilotes ? P AF id nom adresse
1 Dupond Nice 2 Smith Londres 3 Garratt Perth
P BA id nom adresse
3 Garratt Perth
4 Durand Paris
5 MacMachin Glasgow P AF∪P BA id nom adresse
1 Dupond Nice
2 Smith Londres
3 Garratt Perth
4 Durand Paris
5 MacMachin Glasgow
Alg`ebre relationnelle Union
Union
L’union est une op´ eration ensembliste portant sur 2 relations R 1 et R 2 de mˆ eme sch´ ema. R 1 ∪ R 2 est la relation de mˆ eme sch´ ema contenant les tuples de R 1 et ceux de R 2 : Copie des tuples de R 1 et de R 2 , puis suppression des doublons.
Quels sont tous les pilotes ? P AF id nom adresse
1 Dupond Nice 2 Smith Londres 3 Garratt Perth
P BA id nom adresse
3 Garratt Perth
4 Durand Paris
5 MacMachin Glasgow
P AF∪P BA id nom adresse
1 Dupond Nice
2 Smith Londres
3 Garratt Perth
4 Durand Paris
5 MacMachin Glasgow
Alg`ebre relationnelle Union
Union
L’union est une op´ eration ensembliste portant sur 2 relations R 1 et R 2 de mˆ eme sch´ ema. R 1 ∪ R 2 est la relation de mˆ eme sch´ ema contenant les tuples de R 1 et ceux de R 2 : Copie des tuples de R 1 et de R 2 , puis suppression des doublons.
Quels sont tous les pilotes ? P AF id nom adresse
1 Dupond Nice 2 Smith Londres 3 Garratt Perth
P BA id nom adresse
3 Garratt Perth
4 Durand Paris
5 MacMachin Glasgow P AF∪P BA id nom adresse
1 Dupond Nice
2 Smith Londres
3 Garratt Perth
Alg`ebre relationnelle Produit
Produit
Le produit est une op´ eration ensembliste portant sur 2 relations R 1 et R 2 . R 1 × R 2 est la relation ayant pour sch´ ema la concat´ enation des sch´ emas de R 1 et R 2 , et pour tuples toutes les combinaisons de tuples de R 1 et R 2 . L’op´ eration produit n’est que tr` es rarement utilis´ ee.
R
1A B C a1 b1 c1 a2 b2 c2 a3 b3 c3
R
2D E d1 e1 d2 e2
R
1× R
2A B C D E
a1 b1 c1 d1 e1
a1 b1 c1 d2 e2
a2 b2 c2 d1 e1
a2 b2 c2 d2 e2
a3 b3 c3 d1 e1
a3 b3 c3 d2 e2
Alg`ebre relationnelle Produit
Produit
Le produit est une op´ eration ensembliste portant sur 2 relations R 1 et R 2 . R 1 × R 2 est la relation ayant pour sch´ ema la concat´ enation des sch´ emas de R 1 et R 2 , et pour tuples toutes les combinaisons de tuples de R 1 et R 2 . L’op´ eration produit n’est que tr` es rarement utilis´ ee.
R
1A B C a1 b1 c1 a2 b2 c2 a3 b3 c3
R
2D E d1 e1 d2 e2
R
1× R
2A B C D E
a1 b1 c1 d1 e1
a1 b1 c1 d2 e2
a2 b2 c2 d1 e1
a2 b2 c2 d2 e2
a3 b3 c3 d1 e1
a3 b3 c3 d2 e2
Alg`ebre relationnelle Produit
Produit
Le produit est une op´ eration ensembliste portant sur 2 relations R 1 et R 2 . R 1 × R 2 est la relation ayant pour sch´ ema la concat´ enation des sch´ emas de R 1 et R 2 , et pour tuples toutes les combinaisons de tuples de R 1 et R 2 . L’op´ eration produit n’est que tr` es rarement utilis´ ee.
R
1A B C a1 b1 c1 a2 b2 c2 a3 b3 c3
R
2D E d1 e1 d2 e2
R
1× R
2A B C D E
a1 b1 c1 d1 e1
a1 b1 c1 d2 e2
a2 b2 c2 d1 e1
a2 b2 c2 d2 e2
a3 b3 c3 d1 e1
a3 b3 c3 d2 e2
Alg`ebre relationnelle Diff´erence
Diff´ erence
La diff´ erence est une op´ eration ensembliste portant sur 2 relations R 1 et R 2 de mˆ eme sch´ ema. R 1 \ R 2 est la relation ayant le mˆ eme sch´ ema que R 1
et R 2 , et pour tuples ceux appartenant ` a R 1 et pas ` a R 2 .
Quels sont les pilotes d’Air France ne travaillant pas pour British Airways ? P AF id nom adresse
1 Dupond Nice 2 Smith Londres 3 Garratt Perth
P BA id nom adresse
3 Garratt Perth
4 Durand Paris
5 MacMachin Glasgow P AF\P BA id nom adresse
1 Dupond Nice
2 Smith Londres
Alg`ebre relationnelle Diff´erence
Diff´ erence
La diff´ erence est une op´ eration ensembliste portant sur 2 relations R 1 et R 2 de mˆ eme sch´ ema. R 1 \ R 2 est la relation ayant le mˆ eme sch´ ema que R 1
et R 2 , et pour tuples ceux appartenant ` a R 1 et pas ` a R 2 .
Quels sont les pilotes d’Air France ne travaillant pas pour British Airways ? P AF id nom adresse
1 Dupond Nice 2 Smith Londres 3 Garratt Perth
P BA id nom adresse
3 Garratt Perth
4 Durand Paris
5 MacMachin Glasgow
P AF\P BA id nom adresse
1 Dupond Nice
2 Smith Londres
Alg`ebre relationnelle Diff´erence
Diff´ erence
La diff´ erence est une op´ eration ensembliste portant sur 2 relations R 1 et R 2 de mˆ eme sch´ ema. R 1 \ R 2 est la relation ayant le mˆ eme sch´ ema que R 1
et R 2 , et pour tuples ceux appartenant ` a R 1 et pas ` a R 2 .
Quels sont les pilotes d’Air France ne travaillant pas pour British Airways ? P AF id nom adresse
1 Dupond Nice 2 Smith Londres 3 Garratt Perth
P BA id nom adresse
3 Garratt Perth
4 Durand Paris
5 MacMachin Glasgow P AF\P BA id nom adresse
1 Dupond Nice
2 Smith Londres
Alg`ebre relationnelle Intersection
Intersection
L’intersection est une op´ eration ensembliste portant sur 2 relations R 1 et R 2 de mˆ eme sch´ ema. R 1 ∩ R 2 est la relation ayant le mˆ eme sch´ ema que R 1
et R 2 , et pour tuples ceux appartenant ` a la fois ` a R 1 et ` a R 2 .
Quels sont les pilotes travaillant pour Air France et British Airways ? P AF id nom adresse
1 Dupond Nice 2 Smith Londres 3 Garratt Perth
P BA id nom adresse
3 Garratt Perth
4 Durand Paris
5 MacMachin Glasgow P AF∩P BA id nom adresse
3 Garratt Perth
Alg`ebre relationnelle Intersection
Intersection
L’intersection est une op´ eration ensembliste portant sur 2 relations R 1 et R 2 de mˆ eme sch´ ema. R 1 ∩ R 2 est la relation ayant le mˆ eme sch´ ema que R 1
et R 2 , et pour tuples ceux appartenant ` a la fois ` a R 1 et ` a R 2 . Quels sont les pilotes travaillant pour Air France et British Airways ?
P AF id nom adresse 1 Dupond Nice 2 Smith Londres 3 Garratt Perth
P BA id nom adresse
3 Garratt Perth
4 Durand Paris
5 MacMachin Glasgow
P AF∩P BA id nom adresse
3 Garratt Perth
Alg`ebre relationnelle Intersection